Hello,
from the end paragraph of link https://simtk-confluence.stanford.edu/d ... cle+Models it is clear what happens when there is a rigid-tendon assumption in openSim since from IK geometry data MT length are determined and from there subtracting L(T)(tendon length): L(M)cos(alpha) can be found since there is an assumption L(M)sin(alpha)=h which allows it.
Is this last assumption always valid? How can the fiber length and pennation angle be univocally determined if tendon length is allowed to change (as in more realistic simulations as CMC)?
Pennation angle and muscle length
- michela gardi
- Posts: 9
- Joined: Wed Aug 25, 2021 5:14 am
- Thomas Uchida
- Posts: 1797
- Joined: Wed May 16, 2012 11:40 am
Re: Pennation angle and muscle length
Muscle fiber length is a state. Please see the first reference listed at the bottom of that page.
- michela gardi
- Posts: 9
- Joined: Wed Aug 25, 2021 5:14 am
Re: Pennation angle and muscle length
Sorry, but it is not clear to me. What is the consequence of muscle are states? How is the penation angle calculated?
- Thomas Uchida
- Posts: 1797
- Joined: Wed May 16, 2012 11:40 am
Re: Pennation angle and muscle length
Please see the documentation and Millard 2013 paper regarding the "fixed-width pennation model" assumption. Pennation can be calculated once fiber length is known (https://github.com/opensim-org/opensim- ... l.cpp#L126):
Code: Select all
double MuscleFixedWidthPennationModel::
calcPennationAngle(double fiberLength) const
{
double phi = 0;
double optimalPennationAngle = get_pennation_angle_at_optimal();
// This computation is only worth performing on pennated muscles.
if(optimalPennationAngle > SimTK::Eps) {
if(fiberLength > m_minimumFiberLength) {
double sin_phi = m_parallelogramHeight/fiberLength;
phi = (sin_phi < m_maximumSinPennation) ?
asin(sin_phi) : get_maximum_pennation_angle();
} else {
phi = get_maximum_pennation_angle();
}
}
return phi;
}