OpenSim  OpenSim 3.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
OpenSim::Muscle::MuscleLengthInfo Struct Reference

The MuscleLengthInfo struct contains information about the muscle that is strictly a function of the length of the fiber and the tendon, and the orientation of the muscle fiber. More...

#include <Muscle.h>

Public Member Functions

 MuscleLengthInfo ()

Public Attributes

double fiberLength
double fiberLengthAlongTendon
double normFiberLength
double tendonLength
double normTendonLength
double tendonStrain
double pennationAngle
double cosPennationAngle
double sinPennationAngle
double fiberPotentialEnergy
double tendonPotentialEnergy
double musclePotentialEnergy
double fiberPassiveForceLengthMultiplier
double fiberActiveForceLengthMultiplier
SimTK::Vector userDefinedLengthExtras

Friends

std::ostream & operator<< (std::ostream &o, const MuscleLengthInfo &mli)

Detailed Description

The MuscleLengthInfo struct contains information about the muscle that is strictly a function of the length of the fiber and the tendon, and the orientation of the muscle fiber.

w.r.t. a fixed orientation of the tendon.

The function that populates this struct, calcMuscleLengthInfo, is called at a point when only the position and orientation of the system are known. This function is the first one that is called of the functions calcMuscleLengthInfo, calcFiberVelocityInfo and calcMuscleDynamicInfo. The velocity and acceleration of the muscle's path will not be known when this function is called.

    NAME                    DIMENSION         UNITS      
     fiberLength              length            m   
     fiberLengthAlongTendon   length            m           [1]
     normFiberLength          length/length     m/m         [2]

     tendonLength             length            m
     normTendonLength         length/length     m/m         [3]
     tendonStrain             length/length     m/m         [4]

     pennationAngle           angle             rad         [5]
     cosPennationAngle        NA                NA          
     sinPennationAngle        NA                NA          

     fiberPotentalEnergy      force*distance    J (Nm)   
     tendonPotentalEnergy     force*distance    J (Nm)      
     musclePotentalEnergy     force*distance    J (Nm)

     fiberPassiveForceLengthMultiplier   force/force     N/N           [6]
     fiberActiveForceLengthMultiplier    force/force     N/N           [7]

    userDefinedLengthExtras     NA              NA            [8]

[1] fiberLengthAlongTendon is the length of the muscle fiber as projected on the tendon.

[2] normFiberLength is the fiberLength normalized with respect to the optimalFiberLength,

normFiberLength = fiberLength / optimalFiberLength

N.B. It is assumed that the optimalFiberLength of a muscle is also its resting length.

[3] normTendonLength is the tendonLength normalized with respect to the tendonSlackLength

normTendonLength = tendonLength / tendonSlackLength

[4] Tendon strain is defined using the elongation of the material divided by its resting length. This is identical to the engineering definition of strain. Thus a tendonStrain of 0.01 means that the tendon is currently 1% longer than its resting length.

tendonStrain = (tendonLength-tendonSlackLength)/tendonSlackLength

[5] The orientation of the muscle fiber is defined w.r.t. a fixed orientation of the tendon. A pennation angle of 0 means that the fiber is collinear to the tendon. It is normal for the pennation angle to range between 0 and Pi/2 radians.

  Fiber                 Tendon

|===================||--------------—| Pennation = 0

 ||-------------------|                Pennation = SimTK::Pi/3 

(60 degrees)

[6] The fiberPassiveForceLengthMultiplier represents the elastic force the fiber 
    generates normalized w.r.t. the maximum isometric force of the fiber.
    Is typically specified by a passiveForceLengthCurve. 

[7] The fiberActiveForceLengthMultiplier is the scaling of the maximum force a fiber 
    can generate as a function of its length. This term usually follows a 
    curve that is zero at a normalized fiber length of 0.5, is 1 at a 
    normalized fiber length of 1, and then zero again at a normalized fiber
    length of 1.5. This curve is generally an interpolation of experimental
    data.

[8] This vector is left for the muscle modeler to populate with any
    computationally expensive quantities that are computed in 
    calcMuscleLengthInfo, and required for use in the user defined functions 
    calcFiberVelocityInfo and calcMuscleDynamicsInfo. None of the parent 
    classes make any assumptions about what is or isn't in this field 
    - use as necessary.

Constructor & Destructor Documentation

OpenSim::Muscle::MuscleLengthInfo::MuscleLengthInfo ( )
inline

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  o,
const MuscleLengthInfo mli 
)
friend

Member Data Documentation

double OpenSim::Muscle::MuscleLengthInfo::cosPennationAngle
double OpenSim::Muscle::MuscleLengthInfo::fiberActiveForceLengthMultiplier
double OpenSim::Muscle::MuscleLengthInfo::fiberLength
double OpenSim::Muscle::MuscleLengthInfo::fiberLengthAlongTendon
double OpenSim::Muscle::MuscleLengthInfo::fiberPassiveForceLengthMultiplier
double OpenSim::Muscle::MuscleLengthInfo::fiberPotentialEnergy
double OpenSim::Muscle::MuscleLengthInfo::musclePotentialEnergy
double OpenSim::Muscle::MuscleLengthInfo::normFiberLength
double OpenSim::Muscle::MuscleLengthInfo::normTendonLength
double OpenSim::Muscle::MuscleLengthInfo::pennationAngle
double OpenSim::Muscle::MuscleLengthInfo::sinPennationAngle
double OpenSim::Muscle::MuscleLengthInfo::tendonLength
double OpenSim::Muscle::MuscleLengthInfo::tendonPotentialEnergy
double OpenSim::Muscle::MuscleLengthInfo::tendonStrain
SimTK::Vector OpenSim::Muscle::MuscleLengthInfo::userDefinedLengthExtras

The documentation for this struct was generated from the following file: