Hi!
I am trying to reproduce calculations of active and passive forces and force-length-velocity surface using the fiber length. Most of fibers during different movements have fiber length below the 'optimal_fiber_length' (for example, lower body model, Gait2354). If we use 'function representing passive force-length behavior of muscle fibers' from *.osim file, then we are not supposed to have passive force. But OpenSim Plotter shows that the passive force exists even for fiber length below optimal. Considering my experimental experience, this is reasonable.
I could not figure out how to use the shape factors for active and passive force-length relationships, and force-velocity shape factor. Perhaps, the shape factors may lead some light on my problem:
how to calculate the forces using fiber length?
Hoping to get a help,
Natalia
Shape factor for Force-Length relationships
- Natalia Kosterina
- Posts: 13
- Joined: Mon May 16, 2011 3:03 am
Re: Shape factor for Force-Length relationships
From Thelen2003Muscle implementation:
These are supposed to correspond to Thelen, JBME 2003.
Code: Select all
double Thelen2003Muscle::calcPassiveForce(const SimTK::State& s, double aNormFiberLength) const
{
double passive_force;
if (aNormFiberLength>(1+_fmaxMuscleStrain)) { // Switch to a linear model at large forces
double slope=(_kShapePassive/_fmaxMuscleStrain)*(exp(_kShapePassive*(1.0+_fmaxMuscleStrain-1.0)/_fmaxMuscleStrain)) / (exp(_kShapePassive));
passive_force=1.0+slope*(aNormFiberLength-(1.0+_fmaxMuscleStrain));
}
else
passive_force = (exp(_kShapePassive*(aNormFiberLength-1.0)/_fmaxMuscleStrain)) / (exp(_kShapePassive));
return passive_force;
}
Code: Select all
double Thelen2003Muscle::calcActiveForce(const SimTK::State& s, double aNormFiberLength) const
{
double x=-(aNormFiberLength-1.)*(aNormFiberLength-1.)/_kShapeActive;
return exp(x);
}