Hi all,
I am trying to run the Forward Dynamics tool with no muscle activation. To accomplish this I have overwritten previously generated "controls" and "states" files with columns containing only zeros. When this did not work (muscle forces were still reported and the model still moved under FD), I edited the model file to allow the "min_control" to be zero for all of the muscles. This had no effect.
Can anyone please suggest a method to remove muscle activation so that the model will experience no motion or muscle force under FD?
Also, what practical effect does the "solve for equilibrium actuator states" checkbox have? I have experienced it drastically effect the outcome of the FD run, but do not really know why, and there is no explanation of it elsewhere (that I've found).
Thanks,
Alex
Zeroing Muscle Activation
- Craig Goehler
- Posts: 2
- Joined: Thu Feb 14, 2008 12:33 pm
RE: Zeroing Muscle Activation
Even if you run the simulation with zero activation, there will still be the passive components of muscle force.
If your ultimate goal is for the model to not be affected by muscle forces, then you have to remove the muscles from the model or at the very least make sure that they are not Enabled in the GUI.
Additionally, gravity is still present so even without muscle forces the model will move due to the weight of the bones unless you lock the coordinates. But if you do that, then there is no reason to run a Forward Dynamic simulation since you have removed the ability to move and all actuators acting on the system.
The "solve for equilibrium actuator states" solves for the muscle fiber length state values so that that they are in equilibrium with their tendon. But if you remove the muscles, checking this box will essentially do nothing to your simulation.
If your ultimate goal is for the model to not be affected by muscle forces, then you have to remove the muscles from the model or at the very least make sure that they are not Enabled in the GUI.
Additionally, gravity is still present so even without muscle forces the model will move due to the weight of the bones unless you lock the coordinates. But if you do that, then there is no reason to run a Forward Dynamic simulation since you have removed the ability to move and all actuators acting on the system.
The "solve for equilibrium actuator states" solves for the muscle fiber length state values so that that they are in equilibrium with their tendon. But if you remove the muscles, checking this box will essentially do nothing to your simulation.
- Sina Porsa
- Posts: 99
- Joined: Thu Feb 03, 2011 7:21 pm
Re: Zeroing Muscle Activation
Hi Craig
According to your post: "The solve for equilibrium actuator states solves for the muscle fiber length state values so that that they are in equilibrium with their tendon." Does it mean
(Muscle active force + muscle passive force)*cos(pennation angle) = (tendon elastic force)
I still cannot understand what it means, It would be great if you could explain it to me.
Cheers
Sina
According to your post: "The solve for equilibrium actuator states solves for the muscle fiber length state values so that that they are in equilibrium with their tendon." Does it mean
(Muscle active force + muscle passive force)*cos(pennation angle) = (tendon elastic force)
I still cannot understand what it means, It would be great if you could explain it to me.
Cheers
Sina
- Edith Arnold
- Posts: 44
- Joined: Fri Apr 06, 2007 2:07 pm
Re: Zeroing Muscle Activation
Hi guys,
This explanation of solving for equilibrium states is not quite correct. There are two different types of equilibrium being discussed here and there is ambiguity in the tag name that obfuscates the issue a bit.
Type 1: The muscle and tendon are in equilibrium such that
Force_muscle*cos(pen) = Force_tendon = Force_muscletendon
Type 2: Static equilibrium that goes with
This tag behaves slightly differently in other tools. In Analyze, this static equilibrium is recalculated at every time step. So if you take the results of a forward simulation, then pass them through an analysis with this tag checked, you will see some changes in the fiber length, especially when velocity effects are high.
Back to your original question, Alex...
Before going any further, I just want to understand why you're using Forward and whether that's the right tool for the job. Could you tell me a little more about what you are trying to model/simulate here? What question are you trying to answer? What inputs do you have and what are you trying to solve for?
If you eliminate all the muscle forces in your simulation, but leave gravity in, you should see the model fall under the influence of gravity. This should be the first test you run to make sure you are running a forward simulation with no muscle forces. A simple way to do that would be to change all the <isDisabled> false </isDisabled> tags for muscles in the model file to <isDisabled> true </isDisabled>.
If it's not falling and the muscles are turning on, you're pulling an old file somewhere. Check your paths in the tool window or setup file and make sure they're being refreshed. If you are trying to get the model to maintain a position in forward dynamics when gravity is applied, you will need some forces to do that. Typically things like muscle forces, joint torques, ground reaction forces, or contact forces are used.
-Edith
This explanation of solving for equilibrium states is not quite correct. There are two different types of equilibrium being discussed here and there is ambiguity in the tag name that obfuscates the issue a bit.
Type 1: The muscle and tendon are in equilibrium such that
This is always true and is intrinsic to the muscle model because the muscle and tendon are in series. So(Muscle active force + muscle passive force)*cos(pennation angle) = (tendon elastic force)
Force_muscle*cos(pen) = Force_tendon = Force_muscletendon
Type 2: Static equilibrium that goes with
In Forward, setting this tag to true computes the initial states of the actuator (activation and fiber length) that place it in equilibrium for your other initial conditions (joint position, velocity, and excitation) overwriting whatever initial condition you had for fiber length and activation. If you do not set this tag to true, it is possible that in the first time step the IC of the fiber length is not quite right for all the other conditions and you'll see a jump in it in the first few times steps of your solution as it settles out. This only affects the first time step."solve for equilibrium actuator states"
This tag behaves slightly differently in other tools. In Analyze, this static equilibrium is recalculated at every time step. So if you take the results of a forward simulation, then pass them through an analysis with this tag checked, you will see some changes in the fiber length, especially when velocity effects are high.
Back to your original question, Alex...
Before going any further, I just want to understand why you're using Forward and whether that's the right tool for the job. Could you tell me a little more about what you are trying to model/simulate here? What question are you trying to answer? What inputs do you have and what are you trying to solve for?
If you eliminate all the muscle forces in your simulation, but leave gravity in, you should see the model fall under the influence of gravity. This should be the first test you run to make sure you are running a forward simulation with no muscle forces. A simple way to do that would be to change all the <isDisabled> false </isDisabled> tags for muscles in the model file to <isDisabled> true </isDisabled>.
If it's not falling and the muscles are turning on, you're pulling an old file somewhere. Check your paths in the tool window or setup file and make sure they're being refreshed. If you are trying to get the model to maintain a position in forward dynamics when gravity is applied, you will need some forces to do that. Typically things like muscle forces, joint torques, ground reaction forces, or contact forces are used.
-Edith
- John Rogers
- Posts: 45
- Joined: Fri Feb 24, 2012 11:47 am
Re: Zeroing Muscle Activation
Hello Edith and all,
All the following questions came up because I am trying to decide whether to check a box in an analysis of CMC results.
The effect of checking "Solve for equilibrium for actuator states" is not clear to me.
This check box appears in the forward dynamics GUI and the analyze GUI.
Is the check box setting the variable "solve_for_equilibrium_for_auxiliary_states" to true if checked, false if unchecked?
What are "AUXILIARY" states?
Are only some of the states being solved?
If I understand you correctly Edith, this variable has different effects in different tools.
In Forward Dynamics it sets ONLY the initial state?
In Analysis, it solves for every time step?
"solve_for_equilibrium_for_auxiliary_states" appears in a CMC setup file I am looking at. Does CMC use this variable too? If so, how?
Edith you said
Thanks,
John
All the following questions came up because I am trying to decide whether to check a box in an analysis of CMC results.
The effect of checking "Solve for equilibrium for actuator states" is not clear to me.
This check box appears in the forward dynamics GUI and the analyze GUI.
Is the check box setting the variable "solve_for_equilibrium_for_auxiliary_states" to true if checked, false if unchecked?
What are "AUXILIARY" states?
Are only some of the states being solved?
If I understand you correctly Edith, this variable has different effects in different tools.
In Forward Dynamics it sets ONLY the initial state?
In Analysis, it solves for every time step?
"solve_for_equilibrium_for_auxiliary_states" appears in a CMC setup file I am looking at. Does CMC use this variable too? If so, how?
Edith you said
well, if you already have a complete forward simulation, wouldn't setting this variable mess up your result? Why would you ever check it?...forward simulation, then pass them through an analysis with this tag checked...
Thanks,
John