OpenSim::RigidTendonMuscle Class Reference

A class implementing a RigidTendonMuscle actuator with no states. More...

#include <RigidTendonMuscle.h>

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

List of all members.

Public Member Functions

 RigidTendonMuscle ()
 Default constructor.
 RigidTendonMuscle (const std::string &aName, double aMaxIsometricForce, double aOptimalFiberLength, double aTendonSlackLength, double aPennationAngle)
 Convenicencec Contructor.
 RigidTendonMuscle (const RigidTendonMuscle &aRigidTendonMuscle)
 Copy constructor.
virtual ~RigidTendonMuscle ()
 Destructor.
virtual Objectcopy () const
 Copy this muscle and return a pointer to the copy.
void setName (const std::string &aName)
RigidTendonMuscleoperator= (const RigidTendonMuscle &aRigidTendonMuscle)
 Assignment operator.
void copyData (const RigidTendonMuscle &aRigidTendonMuscle)
 Copy data members from one RigidTendonMuscle to another.
virtual void updateFromXMLNode ()
 Override of the default implementation to account for versioning.
virtual double getTendonLength (const SimTK::State &s) const
 Get the length of the tendon.
virtual double getFiberLength (const SimTK::State &s) const
virtual double getNormalizedFiberLength (const SimTK::State &s) const
virtual double getFiberForce (const SimTK::State &s) const
 Compute the force generated by the RigidTendonMuscle fibers.
virtual double getActiveFiberForce (const SimTK::State &s) const
 Get the active force generated by the RigidTendonMuscle fibers.
virtual double getPassiveFiberForce (const SimTK::State &s) const
virtual double getActiveFiberForceAlongTendon (const SimTK::State &s) const
 Get the active force generated by the RigidTendonMuscle fibers along the direction of the tendon.
virtual double getPassiveFiberForceAlongTendon (const SimTK::State &s) const
 Get the passive force generated by the RigidTendonMuscle fibers along the direction of the tendon.
virtual double getTendonForce (const SimTK::State &s) const
virtual double getActivation (const SimTK::State &s) const
 get the activation (control) value for this RigidTendonMuscle
virtual void setActivation (SimTK::State &s, double activation) const
virtual double computeActuation (const SimTK::State &s) const
 Compute the actuation (i.e.
virtual double computeIsometricForce (SimTK::State &s, double activation) const
virtual void equilibrate (SimTK::State &s) const
virtual OpenSim::Array
< std::string > 
getRecordLabels () const
 Methods to query a Force for the value actually applied during simulation The names of the quantities (column labels) is returned by this first function getRecordLabels().
virtual OpenSim::Array< double > getRecordValues (const SimTK::State &state) const
 Given SimTK::State object extract all the values necessary to report forces, application location frame, etc.
 OPENSIM_DECLARE_DERIVED (RigidTendonMuscle, PathActuator)

Protected Member Functions

virtual void computeForce (const SimTK::State &state, SimTK::Vector_< SimTK::SpatialVec > &bodyForces, SimTK::Vector &generalizedForce) const
 Apply the RigidTendonMuscle's force at its points of attachment to the bodies.
virtual void setup (Model &aModel)
 Perform set up functions after model has been deserialized or copied.
virtual void createSystem (SimTK::MultibodySystem &system) const
 allocate and initialize the SimTK state for this acuator.
virtual void initState (SimTK::State &s) const
 This is called after a SimTK System and State have been created for the Model.
virtual void setDefaultsFromState (const SimTK::State &state)
 Set all default values for this object to match those in a specified State.

Protected Attributes

PropertyObjPtr< Function_activeForceLengthCurveProp
Function *& _activeForceLengthCurve
PropertyObjPtr< Function_passiveForceLengthCurveProp
Function *& _passiveForceLengthCurve
PropertyObjPtr< Function_forceVelocityCurveProp
Function *& _forceVelocityCurve

Detailed Description

A class implementing a RigidTendonMuscle actuator with no states.

The path information for a RigidTendonMuscle is contained in the base class, and the force-generating behavior should is defined in this class. The force (muscle tension) assumes rigid tendon so that fiber-length and velocity are kinematics dependent and the force-length force-velocity relationships are evaluated directly. The control of this mode is its activation. Force production is instantaneous with no excitation-to-activation dynamics.

Author:
Ajay Seth
Version:
1.0

Constructor & Destructor Documentation

RigidTendonMuscle::RigidTendonMuscle (  ) 

Default constructor.

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

Convenicencec Contructor.

Convenience Constructor.

RigidTendonMuscle::RigidTendonMuscle ( const RigidTendonMuscle aRigidTendonMuscle  ) 

Copy constructor.

Parameters:
aRigidTendonMuscle RigidTendonMuscle to be copied.
RigidTendonMuscle::~RigidTendonMuscle (  )  [virtual]

Destructor.


Member Function Documentation

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

Compute the actuation (i.e.

activation causing tenson) of this muscle.

Implements OpenSim::Muscle.

void RigidTendonMuscle::computeForce ( const SimTK::State &  state,
SimTK::Vector_< SimTK::SpatialVec > &  bodyForces,
SimTK::Vector &  generalizedForce 
) const [protected, virtual]

Apply the RigidTendonMuscle's force at its points of attachment to the bodies.

Reimplemented from OpenSim::Muscle.

double RigidTendonMuscle::computeIsometricForce ( SimTK::State &  s,
double  activation 
) const [virtual]

Implements OpenSim::Muscle.

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

Copy this muscle and return a pointer to the copy.

The copy constructor for this class is used.

Returns:
Pointer to a copy of this Delp1990Muscle.

Implements OpenSim::Muscle.

void RigidTendonMuscle::copyData ( const RigidTendonMuscle aRigidTendonMuscle  ) 

Copy data members from one RigidTendonMuscle to another.

Parameters:
aRigidTendonMuscle RigidTendonMuscle to be copied.

Reimplemented from OpenSim::Muscle.

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

allocate and initialize the SimTK state for this acuator.

Reimplemented from OpenSim::Muscle.

virtual void OpenSim::RigidTendonMuscle::equilibrate ( SimTK::State &  s  )  const [inline, virtual]

Implements OpenSim::Muscle.

double RigidTendonMuscle::getActivation ( const SimTK::State &  s  )  const [virtual]

get the activation (control) value for this RigidTendonMuscle

Implements OpenSim::Muscle.

double RigidTendonMuscle::getActiveFiberForce ( const SimTK::State &  s  )  const [virtual]

Get the active force generated by the RigidTendonMuscle fibers.

Returns:
Current active force of the RigidTendonMuscle fibers.

Reimplemented from OpenSim::Muscle.

double RigidTendonMuscle::getActiveFiberForceAlongTendon ( const SimTK::State &  s  )  const [virtual]

Get the active force generated by the RigidTendonMuscle fibers along the direction of the tendon.

Returns:
Current active force of the RigidTendonMuscle fibers along tendon.

Reimplemented from OpenSim::Muscle.

double RigidTendonMuscle::getFiberForce ( const SimTK::State &  s  )  const [virtual]

Compute the force generated by the RigidTendonMuscle fibers.

This accounts for pennation angle. That is, the fiber force is computed by dividing the actuator force by the cosine of the pennation angle.

Returns:
Force in the RigidTendonMuscle fibers.

Reimplemented from OpenSim::Muscle.

double RigidTendonMuscle::getFiberLength ( const SimTK::State &  s  )  const [virtual]

Implements OpenSim::Muscle.

double RigidTendonMuscle::getNormalizedFiberLength ( const SimTK::State &  s  )  const [virtual]

Implements OpenSim::Muscle.

double RigidTendonMuscle::getPassiveFiberForce ( const SimTK::State &  s  )  const [virtual]

Implements OpenSim::Muscle.

double RigidTendonMuscle::getPassiveFiberForceAlongTendon ( const SimTK::State &  s  )  const [virtual]

Get the passive force generated by the RigidTendonMuscle fibers along the direction of the tendon.

Returns:
Current passive force of the RigidTendonMuscle fibers along tendon.

Reimplemented from OpenSim::Muscle.

virtual OpenSim::Array<std::string> OpenSim::RigidTendonMuscle::getRecordLabels (  )  const [inline, virtual]

Methods to query a Force for the value actually applied during simulation The names of the quantities (column labels) is returned by this first function getRecordLabels().

Reimplemented from OpenSim::Muscle.

virtual OpenSim::Array<double> OpenSim::RigidTendonMuscle::getRecordValues ( const SimTK::State &  state  )  const [inline, virtual]

Given SimTK::State object extract all the values necessary to report forces, application location frame, etc.

used in conjunction with getRecordLabels and should return same size Array

Reimplemented from OpenSim::Muscle.

virtual double OpenSim::RigidTendonMuscle::getTendonForce ( const SimTK::State &  s  )  const [inline, virtual]

Implements OpenSim::Muscle.

double RigidTendonMuscle::getTendonLength ( const SimTK::State &  s  )  const [virtual]

Get the length of the tendon.

Returns:
Current length of the tendon.

Reimplemented from OpenSim::Muscle.

void RigidTendonMuscle::initState ( SimTK::State &  state  )  const [protected, virtual]

This is called after a SimTK System and State have been created for the Model.

It must be implementd to set initial values of state variables.

Parameters:
state the State to initialize

Reimplemented from OpenSim::Muscle.

OpenSim::RigidTendonMuscle::OPENSIM_DECLARE_DERIVED ( RigidTendonMuscle  ,
PathActuator   
)

Reimplemented from OpenSim::Muscle.

RigidTendonMuscle & RigidTendonMuscle::operator= ( const RigidTendonMuscle aRigidTendonMuscle  ) 

Assignment operator.

Parameters:
aRigidTendonMuscle The RigidTendonMuscle from which to copy its data
Returns:
Reference to this object.

Reimplemented from OpenSim::Muscle.

void RigidTendonMuscle::setActivation ( SimTK::State &  s,
double  activation 
) const [virtual]

Implements OpenSim::Muscle.

void RigidTendonMuscle::setDefaultsFromState ( const SimTK::State &  state  )  [protected, virtual]

Set all default values for this object to match those in a specified State.

It must be implemented/overriden to set any default values defined by each subclass.

Parameters:
state the State from which to take values that should become the defaults for this object

Reimplemented from OpenSim::Muscle.

void OpenSim::RigidTendonMuscle::setName ( const std::string &  aName  ) 

Reimplemented from OpenSim::Muscle.

void RigidTendonMuscle::setup ( Model aModel  )  [protected, virtual]

Perform set up functions after model has been deserialized or copied.

Parameters:
aModel The model containing this RigidTendonMuscle.

Reimplemented from OpenSim::Muscle.

void RigidTendonMuscle::updateFromXMLNode (  )  [virtual]

Override of the default implementation to account for versioning.

Override default implementation by object to intercept and fix the XML node underneath the model to match current version.

Reimplemented from OpenSim::Muscle.


Member Data Documentation


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