getMuscleStiffness function

Provide easy-to-use, extensible software for modeling, simulating, controlling, and analyzing the neuromusculoskeletal system.
POST REPLY
User avatar
Jonathan Mortensen
Posts: 32
Joined: Wed Jul 06, 2016 1:33 pm

getMuscleStiffness function

Post by Jonathan Mortensen » Wed Nov 02, 2016 8:39 am

Hi everyone,

I'm trying to understand how joints are stabilized from activation of opposing muscle groups. So far, my understanding is that muscles get stiffer when they are subject to higher activation levels. This muscle stiffness generates joint stiffness even when opposing muscles cancel each other out and result in a zero net torque about the joint.

I'm using the matlab interface and the getMuscleStiffness() function to compare stiffness of muscles with and without activation. My code looks like this:

osimModel.updMuscles().get(i).setActivation(state,0)
osimModel.updMuscles().get(i).getMuscleStiffness(state)

osimModel.updMuscles().get(i).setActivation(state,1)
osimModel.updMuscles().get(i).getMuscleStiffness(state)

The problem that I am running into is that some of the muscles in my model get stiffer with activation and some do not. The getMuscleStiffness function returns zero stiffness for all muscles when activation is set to zero. However, getMuscleStiffness returns a non-zero value for only some of the muscles when the activation levels change. I can't see any major differences in the muscle settings. I am using the Millard2012AccelerationMuscle.

If anyone could give me a reason for the behavior I am seeing, that would be great.
Thanks.

User avatar
Thomas Uchida
Posts: 1777
Joined: Wed May 16, 2012 11:40 am

Re: getMuscleStiffness function

Post by Thomas Uchida » Thu Nov 03, 2016 6:26 pm

Hi, Jonathan.

I suspect the issue has to do with the lengths of the fiber and/or tendon. The muscle stiffness will be zero if either of the following is zero: (a) the stiffness of the fiber in the direction of the tendon; or (b) the stiffness of the tendon. These terms will (and should) be zero if a small change in length has no effect on the generated force (e.g., if the fiber is very short).

Here is the code that computes muscle stiffness for the Millard2012AccelerationMuscle, if you are interested in the equations: https://github.com/opensim-org/opensim- ... .cpp#L1067.

Note that the Millard2012AccelerationMuscle has been marked "experimental" because it has not been extensively tested. You may want to switch to the Millard2012EquilibriumMuscle, if possible.

Regards,
Tom

POST REPLY