Hi all,
I am looking at the effect of muscle forces have on the stability of the spinal column upon impacts.
I was wondering, how can I ensure my model's muscles to be producing the required force for a given state (activation, length) at the first time step of a forward simulation. This is because I require the muscles to be generating the appropriate force given the model's state upon impact and not still ramping up due to the activation dynamics "lag". Is this handled somehow internally through setSolveForEquilibrium(true)...?
I have tested this by locking my model's coordinates then applying the required muscle activations directly to the model and simulate forward across a short time period (constant across the dt; e.g. a = 0.25 for dt = 100 ms). This generates what I expect to be the appropriate forces (when compared to minimal activation) at the start of the simulation however the active and passive fibre forces change up to +/- <30% by the end of the 100 ms simulation. From what I can tell this is from changes in the fibre lengths in the muscle model as force is produced and not a lag caused by the activation dynamics as there is no ramping up of the initial force. Is this thinking correct?
If not is there another way of "initialising" the model that someone has come across before?
If you have any suggestions or ideas I would appreciate your thoughts!
Thank you,
Pavlos
Correct muscle forces given model state at first time step of forward simulation
- Pavlos Silvestros
- Posts: 43
- Joined: Sun Oct 16, 2016 4:10 am
- Nicholas Bianco
- Posts: 1051
- Joined: Thu Oct 04, 2012 8:09 pm
Re: Correct muscle forces given model state at first time step of forward simulation
Hi Pavlos,
These are all great questions. Are you using the Millard2012EquilibriumMuscle or another muscle? The Millard muscle solves for the fiber length that provides muscle-tendon equilibrium for a prescribed activation value. However, this initial equilibrium is computed assuming static equilibrium (i.e., zero muscle-tendon velocity), but this assumption won't be true for your whole 100ms simulation. While your initial state may be in static equilibrium, the muscle forces may change (i.e., lag) due to activation dynamics (as you say) or tendon compliance dynamics as your progress the simulation forward. For example, you may be prescribing muscle activations that cause the muscle fiber to contract and stretch the tendon, which could increase active fiber force (due to the prescribed activation level) and decrease passive force (since the fiber is shortening).
How long are spinal muscle tendons? If they are short compared to muscle fibers, then you may not need to worry about having tendon compliance enabled. We typically disable tendon compliance in muscles with small tendon slack lengths compared to optimal fiber length in gait applications.
-Nick
These are all great questions. Are you using the Millard2012EquilibriumMuscle or another muscle? The Millard muscle solves for the fiber length that provides muscle-tendon equilibrium for a prescribed activation value. However, this initial equilibrium is computed assuming static equilibrium (i.e., zero muscle-tendon velocity), but this assumption won't be true for your whole 100ms simulation. While your initial state may be in static equilibrium, the muscle forces may change (i.e., lag) due to activation dynamics (as you say) or tendon compliance dynamics as your progress the simulation forward. For example, you may be prescribing muscle activations that cause the muscle fiber to contract and stretch the tendon, which could increase active fiber force (due to the prescribed activation level) and decrease passive force (since the fiber is shortening).
How long are spinal muscle tendons? If they are short compared to muscle fibers, then you may not need to worry about having tendon compliance enabled. We typically disable tendon compliance in muscles with small tendon slack lengths compared to optimal fiber length in gait applications.
-Nick
- Pavlos Silvestros
- Posts: 43
- Joined: Sun Oct 16, 2016 4:10 am
Re: Correct muscle forces given model state at first time step of forward simulation
Hey Nick,
Thank you for getting back to me!
I am currently using Thelen2003Muscle but will be transitioning to the Millard2012EquilibriumMuscle shortly. Alright, as long as the initial state is in static equilibrium for the level of muscle activation prescribed I think that is a good starting point. I may have misphrased my initial post but I don't aim to maintain the same level of muscle force throughout the 100 ms simulation as the impact will cause kinematic changes to the muscles and thus force generation. My main concern was that the muscles would be producing the correct level of force (or at least ball-park due to being in static equilibrium but not accounting for fibre velocity) at the start of the simulation, which seems to be the case.
In terms of neck muscle tendons it's a bit of a mixed bag when compared to neck optimal muscle fibre lengths. Tendon slack length can range between ~20% to 150% of optimal fibre lengths.
Cheers,
Pavlos
Thank you for getting back to me!
I am currently using Thelen2003Muscle but will be transitioning to the Millard2012EquilibriumMuscle shortly. Alright, as long as the initial state is in static equilibrium for the level of muscle activation prescribed I think that is a good starting point. I may have misphrased my initial post but I don't aim to maintain the same level of muscle force throughout the 100 ms simulation as the impact will cause kinematic changes to the muscles and thus force generation. My main concern was that the muscles would be producing the correct level of force (or at least ball-park due to being in static equilibrium but not accounting for fibre velocity) at the start of the simulation, which seems to be the case.
In terms of neck muscle tendons it's a bit of a mixed bag when compared to neck optimal muscle fibre lengths. Tendon slack length can range between ~20% to 150% of optimal fibre lengths.
Cheers,
Pavlos