OpenSim::Schutte1993Muscle Class Reference

A class implementing a SIMM muscle. More...

#include <Schutte1993Muscle.h>

Inheritance diagram for OpenSim::Schutte1993Muscle:
OpenSim::ActivationFiberLengthMuscle OpenSim::Muscle OpenSim::PathActuator OpenSim::Actuator OpenSim::Actuator_ OpenSim::Force OpenSim::ModelComponent OpenSim::Object

List of all members.

Public Member Functions

 Schutte1993Muscle ()
 Default constructor.
 Schutte1993Muscle (const std::string &aName, double aMaxIsometricForce, double aOptimalFiberLength, double aTendonSlackLength, double aPennationAngle)
 Constructor.
 Schutte1993Muscle (const Schutte1993Muscle &aMuscle)
 Copy constructor.
virtual ~Schutte1993Muscle ()
 Destructor.
virtual Objectcopy () const
 Copy this muscle point and return a pointer to the copy.
Schutte1993Muscleoperator= (const Schutte1993Muscle &aMuscle)
 Assignment operator.
void copyData (const Schutte1993Muscle &aMuscle)
 Copy data members from one Schutte1993Muscle to another.
virtual double getTimeScale () const
virtual double getDamping () const
virtual bool setTimeScale (double aTimeScale)
 Set the scale factor for normalizing time.
virtual bool setActivation1 (double aActivation1)
 Set the time constant of ramping up of muscle force.
virtual bool setActivation2 (double aActivation2)
 Set the time constant of ramping up and ramping down of muscle force.
virtual bool setDamping (double aDamping)
 Set the damping factor related to maximum contraction velocity.
virtual double getDamping ()
virtual void computeEquilibrium (SimTK::State &s) const
 Compute the equilibrium states.
virtual double computeActuation (const SimTK::State &s) const
 Compute the actuation for the muscle.
virtual double computeIsometricForce (SimTK::State &s, double activation) const
 computeIsometricForce: this function finds the force in a muscle, assuming static equilibrium.
virtual FunctiongetActiveForceLengthCurve () const
 Get the active force-length curve.
virtual bool setActiveForceLengthCurve (Function *aActiveForceLengthCurve)
 Set the active force-length curve.
virtual FunctiongetPassiveForceLengthCurve () const
 Get the passive force-length curve.
virtual bool setPassiveForceLengthCurve (Function *aPassiveForceLengthCurve)
 Get the passive force-length curve.
virtual FunctiongetTendonForceLengthCurve () const
 Get the tendon force-length curve.
virtual bool setTendonForceLengthCurve (Function *aTendonForceLengthCurve)
 Get the tendon force-length curve.
virtual int getStateVariableYIndex (int index) const
 Get the YIndex of a state variable allocated by this ModelComponent.
 OPENSIM_DECLARE_DERIVED (Schutte1993Muscle, ActivationFiberLengthMuscle)

Protected Member Functions

virtual void setup (Model &aModel)
 Perform some set up functions that happen after the object has been deserialized or copied.
virtual void createSystem (SimTK::MultibodySystem &system) const
 allocate and initialize the SimTK state for this acuator.
virtual SimTK::Vector computeStateVariableDerivatives (const SimTK::State &s) const
 Compute the derivatives of the muscle states.

Protected Attributes

PropertyDbl _timeScaleProp
 Scale factor for normalizing time.
double & _timeScale
PropertyDbl _activation1Prop
 Parameter used in time constant of ramping up of muscle force.
double & _activation1
PropertyDbl _activation2Prop
 Parameter used in time constant of ramping up and ramping down of muscle force.
double & _activation2
PropertyDbl _dampingProp
 Damping factor related to maximum contraction velocity.
double & _damping
PropertyObjPtr< Function_tendonForceLengthCurveProp
Function *& _tendonForceLengthCurve
PropertyObjPtr< Function_activeForceLengthCurveProp
Function *& _activeForceLengthCurve
PropertyObjPtr< Function_passiveForceLengthCurveProp
Function *& _passiveForceLengthCurve

Static Protected Attributes

static const int STATE_ACTIVATION = 0
static const int STATE_FIBER_LENGTH = 1

Detailed Description

A class implementing a SIMM muscle.

Author:
Peter Loan
Version:
1.0

Constructor & Destructor Documentation

Schutte1993Muscle::Schutte1993Muscle (  ) 

Default constructor.

Schutte1993Muscle::Schutte1993Muscle ( const std::string &  aName,
double  aMaxIsometricForce,
double  aOptimalFiberLength,
double  aTendonSlackLength,
double  aPennationAngle 
)

Constructor.

Schutte1993Muscle::Schutte1993Muscle ( const Schutte1993Muscle aMuscle  ) 

Copy constructor.

Parameters:
aMuscle Schutte1993Muscle to be copied.
Schutte1993Muscle::~Schutte1993Muscle (  )  [virtual]

Destructor.


Member Function Documentation

double Schutte1993Muscle::computeActuation ( const SimTK::State &  s  )  const [virtual]

Compute the actuation for the muscle.

This function assumes that computeDerivatives has already been called.

Implements OpenSim::ActivationFiberLengthMuscle.

void Schutte1993Muscle::computeEquilibrium ( SimTK::State &  s  )  const [virtual]

Compute the equilibrium states.

This method computes a fiber length for the muscle that is consistent with the muscle's activation level.

Reimplemented from OpenSim::Actuator_.

double Schutte1993Muscle::computeIsometricForce ( SimTK::State &  s,
double  aActivation 
) const [virtual]

computeIsometricForce: this function finds the force in a muscle, assuming static equilibrium.

Using the total muscle-tendon length, it finds the fiber and tendon lengths so that the forces in each match. This routine takes pennation angle into account, so its definition of static equilibrium is when tendon_force = fiber_force * cos(pennation_angle). This funcion will modify the object's values for length, fiberLength, and passiveForce.

Parameters:
aActivation Activation of the muscle.
Returns:
The isometric force in the muscle.

Implements OpenSim::ActivationFiberLengthMuscle.

SimTK::Vector Schutte1993Muscle::computeStateVariableDerivatives ( const SimTK::State &  s  )  const [protected, virtual]

Compute the derivatives of the muscle states.

Parameters:
rDYDT the state derivatives are returned here.

Reimplemented from OpenSim::ModelComponent.

Object * Schutte1993Muscle::copy (  )  const [virtual]

Copy this muscle point and return a pointer to the copy.

The copy constructor for this class is used.

Returns:
Pointer to a copy of this Schutte1993Muscle.

Implements OpenSim::ActivationFiberLengthMuscle.

void Schutte1993Muscle::copyData ( const Schutte1993Muscle aMuscle  ) 

Copy data members from one Schutte1993Muscle to another.

Parameters:
aMuscle Schutte1993Muscle to be copied.

Reimplemented from OpenSim::ActivationFiberLengthMuscle.

void Schutte1993Muscle::createSystem ( SimTK::MultibodySystem &  system  )  const [protected, virtual]

allocate and initialize the SimTK state for this acuator.

Reimplemented from OpenSim::ActivationFiberLengthMuscle.

Function * Schutte1993Muscle::getActiveForceLengthCurve (  )  const [virtual]

Get the active force-length curve.

Returns:
Pointer to the active force-length curve (Function).
virtual double OpenSim::Schutte1993Muscle::getDamping (  )  [inline, virtual]
virtual double OpenSim::Schutte1993Muscle::getDamping (  )  const [inline, virtual]
Function * Schutte1993Muscle::getPassiveForceLengthCurve (  )  const [virtual]

Get the passive force-length curve.

Returns:
Pointer to the passive force-length curve (Function).
int Schutte1993Muscle::getStateVariableYIndex ( int  index  )  const [virtual]

Get the YIndex of a state variable allocated by this ModelComponent.

The default implementation throws an exception, so subclasses that allocate state variables must override it.

Parameters:
index the index of the state variable (0 to getNumStateVariables()-1)

Reimplemented from OpenSim::ModelComponent.

Function * Schutte1993Muscle::getTendonForceLengthCurve (  )  const [virtual]

Get the tendon force-length curve.

Returns:
Pointer to the tendon force-length curve (Function).
virtual double OpenSim::Schutte1993Muscle::getTimeScale (  )  const [inline, virtual]
OpenSim::Schutte1993Muscle::OPENSIM_DECLARE_DERIVED ( Schutte1993Muscle  ,
ActivationFiberLengthMuscle   
)
Schutte1993Muscle & Schutte1993Muscle::operator= ( const Schutte1993Muscle aMuscle  ) 

Assignment operator.

Returns:
Reference to this object.

Reimplemented from OpenSim::ActivationFiberLengthMuscle.

bool Schutte1993Muscle::setActivation1 ( double  aActivation1  )  [virtual]

Set the time constant of ramping up of muscle force.

Parameters:
aActivation1 The time constant of ramping up of muscle force.
Returns:
Whether the time constant was successfully changed.
bool Schutte1993Muscle::setActivation2 ( double  aActivation2  )  [virtual]

Set the time constant of ramping up and ramping down of muscle force.

Parameters:
aActivation1 The time constant of ramping up and ramping down of muscle force.
Returns:
Whether the time constant was successfully changed.
bool Schutte1993Muscle::setActiveForceLengthCurve ( Function aActiveForceLengthCurve  )  [virtual]

Set the active force-length curve.

Parameters:
aActiveForceLengthCurve Pointer to an active force-length curve (Function).
Returns:
Whether active force-length curve was successfully changed.
bool Schutte1993Muscle::setDamping ( double  aDamping  )  [virtual]

Set the damping factor related to maximum contraction velocity.

Parameters:
aDamping The damping factor related to maximum contraction velocity.
Returns:
Whether the damping factor was successfully changed.
bool Schutte1993Muscle::setPassiveForceLengthCurve ( Function aPassiveForceLengthCurve  )  [virtual]

Get the passive force-length curve.

Parameters:
aPassiveForceLengthCurve Pointer to a passive force-length curve (Function).
Returns:
Whether passive force-length curve was successfully changed.
bool Schutte1993Muscle::setTendonForceLengthCurve ( Function aTendonForceLengthCurve  )  [virtual]

Get the tendon force-length curve.

Parameters:
aTendonForceLengthCurve Pointer to a tendon force-length curve (Function).
Returns:
Whether tendon force-length curve was successfully changed.
bool Schutte1993Muscle::setTimeScale ( double  aTimeScale  )  [virtual]

Set the scale factor for normalizing time.

Parameters:
aTimeScale The scale factor for normalizing time.
Returns:
Whether the scale factor was successfully changed.
void Schutte1993Muscle::setup ( Model aModel  )  [protected, virtual]

Perform some set up functions that happen after the object has been deserialized or copied.

Parameters:
aModel model containing this Schutte1993Muscle.

Reimplemented from OpenSim::ActivationFiberLengthMuscle.


Member Data Documentation

Parameter used in time constant of ramping up of muscle force.

Parameter used in time constant of ramping up and ramping down of muscle force.

Damping factor related to maximum contraction velocity.

Scale factor for normalizing time.

const int Schutte1993Muscle::STATE_ACTIVATION = 0 [static, protected]
const int Schutte1993Muscle::STATE_FIBER_LENGTH = 1 [static, protected]

The documentation for this class was generated from the following files:

Generated on Sun Sep 25 00:19:45 2011 for OpenSim by  doxygen 1.6.1