Hi all,
I've been running forward dynamic simulations to investigate the action of two muscles acting as synergists but I've come across a problem that makes little sense to me.
I firstly obtain the controls and initial states of one muscle through CMC. I use these results to active one muscle. Then I include a second muscle which I leave inactive but will have identical fibre lengths and velocity as the activated muscle. The passive properties of the second muscle are set to be negligible. Assuming the second muscle is inactive and has negligible passive properties, it should not produce any force or compute to a spanned joint moment.
When I obtain the results of the forward simulations, the activated muscle contributes to the joint moments as predicted. However, for some reason, the second muscle produces active fibre force causing the total joint moment to be overestimated. I double checked the passive fibre force, resultant controls and states files and all show that the second muscle was inactive and had negligible passive force. I also made sure that the fibres were still operating in the F-L force producing regions.
Has anyone come across this situation and found a way to rectify the problem? I've tried a few different combinations and nothing has worked so far.
UPDATE: I noticed the active fibre force in the inactive muscle correlates to normalised fibre velocity. Is this possible?
Thanks in advance!
Adrian
Active fibre force in a muscle with no activation
- Adrian Lai
- Posts: 46
- Joined: Tue Mar 13, 2012 11:33 am
- Ross Miller
- Posts: 372
- Joined: Tue Sep 22, 2009 2:02 pm
Re: Active fibre force in a muscle with no activation
Hi Adrian,
Have you checked on the activation of the second muscle? I have not used it recently, but if I remember correctly, CMC has a fairly high "minimum value" for muscle activation. I believe it is 0.02 or something around there. This is presumably for numerical reasons. It may be that the "inactive" muscle actually has just a very low activation level.
Ross
Have you checked on the activation of the second muscle? I have not used it recently, but if I remember correctly, CMC has a fairly high "minimum value" for muscle activation. I believe it is 0.02 or something around there. This is presumably for numerical reasons. It may be that the "inactive" muscle actually has just a very low activation level.
Ross
- Adrian Lai
- Posts: 46
- Joined: Tue Mar 13, 2012 11:33 am
Re: Active fibre force in a muscle with no activation
Hi Ross,
Thanks for the suggestion.
Yes, I have checked the activations of the second muscle following the simulations. I double checked that the second muscle is not excited in the input controls file and is not active in the output states file.
I use CMC to obtain the excitations that drive the controls of the first muscle and the kinematics which I prescribe to the model. I don't run into the CMC's "minimum value" problem because the second muscle is only included when I run forward dynamics.
Adrian
Thanks for the suggestion.
Yes, I have checked the activations of the second muscle following the simulations. I double checked that the second muscle is not excited in the input controls file and is not active in the output states file.
I use CMC to obtain the excitations that drive the controls of the first muscle and the kinematics which I prescribe to the model. I don't run into the CMC's "minimum value" problem because the second muscle is only included when I run forward dynamics.
Adrian
- Brad Humphreys
- Posts: 79
- Joined: Thu Feb 03, 2011 11:32 am
Re: Active fibre force in a muscle with no activation
Which muscles are these (Millard, Thelen, Schutte)? Just a thought, but have you looked at the force in the tendon (series elastic element)? If your active element is initially too short and the tendon is not near slack, it could still produce force (at least initially). Unless you equilibrate the muscle prior to FD.
Brad
Brad
- Adrian Lai
- Posts: 46
- Joined: Tue Mar 13, 2012 11:33 am
Re: Active fibre force in a muscle with no activation
Hi Brad,
Thanks for the suggestion!
Adrian
I'm using the Millard2012EquilibriumMuscle model.bradh wrote:Which muscles are these (Millard, Thelen, Schutte)?
I've equated the muscle forces with zero tendon slack length and ignored tendon compliance to remove any influence from the series elastic element.bradh wrote:Just a thought, but have you looked at the force in the tendon (series elastic element)? If your active element is initially too short and the tendon is not near slack, it could still produce force (at least initially). Unless you equilibrate the muscle prior to FD.
Thanks for the suggestion!
Adrian
- Brad Humphreys
- Posts: 79
- Joined: Thu Feb 03, 2011 11:32 am
Re: Active fibre force in a muscle with no activation
Are you using the API to set the activation? There is an issue with setActivation Milard2012 muscle: https://simtk.org/forums/viewtopic.php?f=91&t=5308
This mentions OpenSim3.3, but I know it is present in 3.4 also and that the mentioned work around does work.
Brad
This mentions OpenSim3.3, but I know it is present in 3.4 also and that the mentioned work around does work.
Brad
- Adrian Lai
- Posts: 46
- Joined: Tue Mar 13, 2012 11:33 am
Re: Active fibre force in a muscle with no activation
Hi Brad,
For now, I'm applying excitations through the standard forward dynamics tool. I've set all the default activations for all the actuators to 0 but it unfortunately made no difference.
Thanks for the heads up. I'm hoping to transfer my whole workflow into the matlab API in the future.
Adrian
For now, I'm applying excitations through the standard forward dynamics tool. I've set all the default activations for all the actuators to 0 but it unfortunately made no difference.
Thanks for the heads up. I'm hoping to transfer my whole workflow into the matlab API in the future.
Adrian
- Adrian Lai
- Posts: 46
- Joined: Tue Mar 13, 2012 11:33 am
Re: Active fibre force in a muscle with no activation
I just wanted to let people following this thread that I found the issue.
Similar to the thread that Brad referred to, it was not the default activation that was set incorrectly but a minimum activation value that I didn't have in my Millard model.
The default value for this variable is set to 0.01. So even though all my excitations and activation results all had values of 0, the minimum value overrode those values, which resulted in active muscle fibre force.
Thank you everyone for your help!
Adrian
Similar to the thread that Brad referred to, it was not the default activation that was set incorrectly but a minimum activation value that I didn't have in my Millard model.
The default value for this variable is set to 0.01. So even though all my excitations and activation results all had values of 0, the minimum value overrode those values, which resulted in active muscle fibre force.
Thank you everyone for your help!
Adrian
- Dimitar Stanev
- Posts: 1096
- Joined: Fri Jan 31, 2014 5:14 am
Re: Active fibre force in a muscle with no activation
Hi,
You are correct, because the activation is clamped between min < a < 1. As you can check:
https://github.com/opensim-org/opensim- ... e.cpp#L312
Unfortunately, if you have a look at the equation (2) from:
http://simtk-confluence.stanford.edu:80 ... cle+Models
There seems to be an ill condition when the activation approaches to 0. From my understanding the minimum value should never be 0. It is strange that now that you are able to set the activation to 0 the forward dynamics tool runs. Maybe the OpenSim team can clarify this and how it is handled internally. I suppose that in the denominator there is something like a * fl(..) + c.
Regards
You are correct, because the activation is clamped between min < a < 1. As you can check:
https://github.com/opensim-org/opensim- ... e.cpp#L312
Unfortunately, if you have a look at the equation (2) from:
http://simtk-confluence.stanford.edu:80 ... cle+Models
There seems to be an ill condition when the activation approaches to 0. From my understanding the minimum value should never be 0. It is strange that now that you are able to set the activation to 0 the forward dynamics tool runs. Maybe the OpenSim team can clarify this and how it is handled internally. I suppose that in the denominator there is something like a * fl(..) + c.
Regards