OpenSim Moco  0.4.0
Public Member Functions | Protected Member Functions | List of all members
OpenSim::MocoInitialForceEquilibriumGoal Class Reference

Description

For all Muscle components with explicit tendon compliance dynamics, constrain (or minimize) the error computed from the muscle-tendon force equilibrium equation.

This goal ensures that the initial normalized tendon force state variable is chosen such that equilibrium is satisfied; otherwise, the initial state may not be valid. This is an endpoint constraint goal by default.

Inheritance diagram for OpenSim::MocoInitialForceEquilibriumGoal:
OpenSim::MocoGoal

#include <Moco/Moco/MocoGoal/MocoInitialForceEquilibriumGoal.h>

Public Member Functions

 MocoInitialForceEquilibriumGoal (std::string name)
 
- Public Member Functions inherited from OpenSim::MocoGoal
 MocoGoal (std::string name)
 
 MocoGoal (std::string name, double weight)
 
void setEnabled (bool enabled)
 Set whether this goal is used in the problem.
 
bool getEnabled () const
 
void setWeight (double weight)
 In cost mode, the goal is multiplied by this weight. More...
 
double getWeight () const
 
void setMode (std::string mode)
 Set the mode property to either 'cost' or 'endpoint_constraint'. More...
 
std::string getModeAsString () const
 This returns the default mode of the goal, unless the user overrode the default using setMode(). More...
 
Mode getMode () const
 
bool getModeIsCost () const
 
bool getModeIsEndpointConstraint () const
 
Mode getDefaultMode () const
 Types of goals have a class-level default for whether they are enforced as a cost or endpoint constraint. More...
 
bool getSupportsEndpointConstraint () const
 Can this constraint be used in endpoint constraint mode?
 
const MocoConstraintInfogetConstraintInfo () const
 Get bounds for the constraints when using this goal in endpoint constraint mode. More...
 
MocoConstraintInfoupdConstraintInfo ()
 
int getNumOutputs () const
 Get the length of the return value of calcGoal().
 
int getNumIntegrals () const
 Get the number of integrals required by this cost. More...
 
SimTK::Real calcIntegrand (const SimTK::State &state) const
 Calculate the integrand that should be integrated and passed to calcCost(). More...
 
void calcGoal (const GoalInput &input, SimTK::Vector &goal) const
 In cost mode, the returned cost includes the weight, and the elements of the returned vector should be summed by the caller to obtain the total cost. More...
 
void initializeOnModel (const Model &model) const
 For use by solvers. This also performs error checks on the Problem.
 
void printDescription (std::ostream &stream=std::cout) const
 Print the name type and mode of this goal. More...
 

Protected Member Functions

bool getSupportsEndpointConstraintImpl () const override
 
Mode getDefaultModeImpl () const override
 
void initializeOnModelImpl (const Model &) const override
 Save references to muscles with tendon compliance enabled. More...
 
void calcGoalImpl (const GoalInput &input, SimTK::Vector &goal) const override
 The Lagrange multipliers for kinematic constraints are not available.
 
- Protected Member Functions inherited from OpenSim::MocoGoal
void setNumIntegralsAndOutputs (int numIntegrals, int numOutputs) const
 Set the number of integral terms required by this goal and the length of the vector passed into calcGoalImpl(). More...
 
virtual void calcIntegrandImpl (const SimTK::State &state, double &integrand) const
 
virtual void printDescriptionImpl (std::ostream &stream=std::cout) const
 Print a more detailed description unique to each goal.
 
const Model & getModel () const
 For use within virtual function implementations.
 
double calcSystemDisplacement (const SimTK::State &initial, const SimTK::State &final) const
 

Additional Inherited Members

- Public Types inherited from OpenSim::MocoGoal
enum  Mode { Cost, EndpointConstraint }
 

Member Function Documentation

◆ initializeOnModelImpl()

void OpenSim::MocoInitialForceEquilibriumGoal::initializeOnModelImpl ( const Model &  ) const
overrideprotectedvirtual

Save references to muscles with tendon compliance enabled.

If the muscle is of type DeGrooteFregly2016Muscle, check that tendon compliance dynamics mode is 'explicit'.

Implements OpenSim::MocoGoal.


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