A class implementing a RigidTendonMuscle actuator with no states. More...
#include <RigidTendonMuscle.h>
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 Object * | copy () const |
Copy this muscle and return a pointer to the copy. | |
void | setName (const std::string &aName) |
RigidTendonMuscle & | operator= (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 |
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.
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.
aRigidTendonMuscle | RigidTendonMuscle to be copied. |
RigidTendonMuscle::~RigidTendonMuscle | ( | ) | [virtual] |
Destructor.
double RigidTendonMuscle::computeActuation | ( | const SimTK::State & | s | ) | const [virtual] |
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.
Implements OpenSim::Muscle.
void RigidTendonMuscle::copyData | ( | const RigidTendonMuscle & | aRigidTendonMuscle | ) |
Copy data members from one RigidTendonMuscle to another.
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.
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.
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.
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.
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.
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.
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.
aRigidTendonMuscle | The RigidTendonMuscle from which to copy its data |
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.
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.
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.
Function*& OpenSim::RigidTendonMuscle::_activeForceLengthCurve [protected] |
Function*& OpenSim::RigidTendonMuscle::_forceVelocityCurve [protected] |
Function*& OpenSim::RigidTendonMuscle::_passiveForceLengthCurve [protected] |