OpenSim  OpenSim 3.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages
OpenSim::ActuatorForceTargetFast Class Reference

A Computed Muscle Control (CMC) optimization target for controlling dynamic systems whose actuators may be themselves governed by differential equations, meaning there may be non-linear behavior and delays in force production. More...

#include <ActuatorForceTargetFast.h>

Inheritance diagram for OpenSim::ActuatorForceTargetFast:
OpenSim::OptimizationTarget

Public Member Functions

virtual ~ActuatorForceTargetFast ()
 ActuatorForceTargetFast (SimTK::State &s, int aNX, CMC *aController)
bool prepareToOptimize (SimTK::State &s, double *x)
int objectiveFunc (const SimTK::Vector &aF, bool new_coefficients, SimTK::Real &rP) const
int gradientFunc (const SimTK::Vector &x, bool new_coefficients, SimTK::Vector &gradient) const
int constraintFunc (const SimTK::Vector &x, bool new_coefficients, SimTK::Vector &constraints) const
int constraintJacobian (const SimTK::Vector &x, bool new_coefficients, SimTK::Matrix &jac) const
CMCgetController ()
- Public Member Functions inherited from OpenSim::OptimizationTarget
 OptimizationTarget (int aNX=0)
void setNumParameters (const int aNX)
void setDX (double aVal)
void setDX (int aIndex, double aVal)
double getDX (int aIndex)
double * getDXArray ()
void validatePerturbationSize (double &aSize)
virtual void printPerformance (double *x)

Additional Inherited Members

- Static Public Member Functions inherited from OpenSim::OptimizationTarget
static int CentralDifferencesConstraint (const OptimizationTarget *aTarget, double *dx, const SimTK::Vector &x, SimTK::Matrix &jacobian)
static int CentralDifferences (const OptimizationTarget *aTarget, double *dx, const SimTK::Vector &x, SimTK::Vector &dpdx)
static int ForwardDifferences (const OptimizationTarget *aTarget, double *dx, const SimTK::Vector &x, SimTK::Vector &dpdx)
- Static Public Attributes inherited from OpenSim::OptimizationTarget
static const double SMALLDX
 Smallest allowable perturbation size for computing derivatives.
- Protected Attributes inherited from OpenSim::OptimizationTarget
Array< double > _dx
 Perturbation size for computing numerical derivatives.

Detailed Description

A Computed Muscle Control (CMC) optimization target for controlling dynamic systems whose actuators may be themselves governed by differential equations, meaning there may be non-linear behavior and delays in force production.

The performance criterion is the sum of actutor stresses squared. The desired accelerations are achieved by imposing a set of constraints. The desired accelerations are computed according to the Proportional Derivative (PD) control in order to drive the dynamic model toward a set of target kinematic trajectories.

Because the desired accelerations are achieved by imposing a set of linear hard constraints, this optimiztion target can fail if the desired accelreations cannot be achieved. To insure that the constraints can be achieved, a number of sufficiently strong actuators can be added to the model. Althernatively, one can use a different optimization target ActuatorForceTarget. The benefits of using the fast target are both speed and tracking accuracy.

Version
1.0
Author
Frank C. Anderson

Constructor & Destructor Documentation

virtual OpenSim::ActuatorForceTargetFast::~ActuatorForceTargetFast ( )
virtual
OpenSim::ActuatorForceTargetFast::ActuatorForceTargetFast ( SimTK::State &  s,
int  aNX,
CMC aController 
)

Member Function Documentation

int OpenSim::ActuatorForceTargetFast::constraintFunc ( const SimTK::Vector &  x,
bool  new_coefficients,
SimTK::Vector &  constraints 
) const
int OpenSim::ActuatorForceTargetFast::constraintJacobian ( const SimTK::Vector &  x,
bool  new_coefficients,
SimTK::Matrix &  jac 
) const
CMC* OpenSim::ActuatorForceTargetFast::getController ( )
inline
int OpenSim::ActuatorForceTargetFast::gradientFunc ( const SimTK::Vector &  x,
bool  new_coefficients,
SimTK::Vector &  gradient 
) const
int OpenSim::ActuatorForceTargetFast::objectiveFunc ( const SimTK::Vector &  aF,
bool  new_coefficients,
SimTK::Real &  rP 
) const
bool OpenSim::ActuatorForceTargetFast::prepareToOptimize ( SimTK::State &  s,
double *  x 
)
virtual

Reimplemented from OpenSim::OptimizationTarget.


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