Main Page   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members   Related Pages  

suTrackController Class Reference

A controller class that drives a dynamic model to track kinematic trajectories and contact forces. More...

#include <suTrackController.h>

Inheritance diagram for suTrackController:

rdController List of all members.

Public Member Functions

 suTrackController (rdModel *aModel, suTrackObjectSet *aTrackObjectSet)
 Contructor.

virtual ~suTrackController ()
 Destructor.

void setNull ()
 Set NULL values for all member variables.

suTrackObjectSetgetTrackObjectSet () const
 Get the track object set for this controller.

rdControlSetgetControlSet () const
 Get the control set that the controller is using to to control the simulation.

rdArray< int > * getParameterList ()
 Get the list of parameters in the control set that the controller is using to control the simulation.

rdFSQPgetOptimizer () const
 Get the optimizer.

rdOptimizationTargetsetOptimizationTarget (rdOptimizationTarget *aTarget)
 Set the optimization target for this controller.

rdOptimizationTargetgetOptimizationTarget () const
 Get the optimization target for this controller.

void setDT (double aDT)
 Set the requested time step size.

double getDT () const
 Get the requested time step size.

void setTargetTime (double aTime)
 Set the target time.

double getTargetTime () const
 Get the target time.

void setTargetDT (double aDT)
 Set the target time step size.

double getTargetDT () const
 Get the target time step size.

void setCheckTargetTime (bool aTrueFalse)
 Set whether or not to check the target time.

bool getCheckTargetTime () const
 Get whether or not to check the target time.

rdStoragegetPositionErrorStorage () const
 Get the storage object for position errors.

rdStoragegetVelocityErrorStorage () const
 Get the storage object for velocity errors.

virtual void computeControls (double &rDT, double aT, const double *aY, rdControlSet &rX)
 Compute the controls for a simulation.


Protected Attributes

rdFSQP_sqp
 Optimizer.

rdOptimizationTarget_target
 Optimization target for computing the controls.

suTrackObjectSet_trackObjectSet
 Set of track objects.

double _dt
 Next integration step size that is to be taken by the integrator.

double _lastDT
 Last integration step size that was taken before a new integration step size was set in order to step exactly to the target time.

bool _restoreDT
 Flag indicating when the last integration step size should be restored.

double _targetTime
 The target time is the time in the future (in normalized units) for which the controls have been calculated.

double _targetDT
 The step size used to generate a new target time, once the old target time has been reached.

bool _checkTargetTime
 Whether or not to check the target time.

rdStorage_pErrStore
 Storage object for the position errors.

rdStorage_vErrStore
 Storage object for the velocity errors.

rdControlSet_controlSet
 Control set for the simulation.

rdArray< int > _paramList
 List of parameters in the control set that are serving as the controls in the optimization problem.


Detailed Description

A controller class that drives a dynamic model to track kinematic trajectories and contact forces.

Author:
Frank C. Anderson, Darryl G. Thelen
Version:
1.0


Constructor & Destructor Documentation

suTrackController::suTrackController rdModel aModel,
suTrackObjectSet aTrackObjectSet
 

Contructor.

Parameters:
aModel Model that is to be controlled.


Member Function Documentation

void suTrackController::computeControls double &  rDT,
double  aT,
const double *  aY,
rdControlSet rX
[virtual]
 

Compute the controls for a simulation.

The caller should send in an initial guess.

Parameters:
rDT Integration time step that is to be taken next. Note that the controller can change the value of rDT.
aT Current time.
aY Current states.
rControlSet Control set used for the simulation. This method alters the cotnrol set in order to control the simulation.

Implements rdController.

bool suTrackController::getCheckTargetTime  )  const
 

Get whether or not to check the target time.

Returns:
True if the target time will be checked. False if the target time will not be checked.
See also:
setTargetTime()

rdControlSet * suTrackController::getControlSet  )  const
 

Get the control set that the controller is using to to control the simulation.

Returns:
Control set.

double suTrackController::getDT  )  const
 

Get the requested time step size.

Returns:
Step size.

rdOptimizationTarget * suTrackController::getOptimizationTarget  )  const
 

Get the optimization target for this controller.

Returns:
Current optimization target.

rdFSQP * suTrackController::getOptimizer  )  const
 

Get the optimizer.

Returns:
Optimizer.

rdArray< int > * suTrackController::getParameterList  ) 
 

Get the list of parameters in the control set that the controller is using to control the simulation.

Returns:
List of parameters in the control set serving as the controls.

rdStorage * suTrackController::getPositionErrorStorage  )  const
 

Get the storage object for position errors.

Returns:
Storage of position errors.

double suTrackController::getTargetDT  )  const
 

Get the target time step size.

The target time step size is the step size used to compute a new target time, once the former target time has been reached by the integrator.

Returns:
Target time step size.
See also:
setTargetTime()

double suTrackController::getTargetTime  )  const
 

Get the target time.

The target time is the time in the future for which the controls have been calculated. If an integrator is taking time steps prior to the target time, the controls should not have to be computed again.

Returns:
Time in the furture for which the controls have been computed.
See also:
getCheckTargetTime()

suTrackObjectSet * suTrackController::getTrackObjectSet  )  const
 

Get the track object set for this controller.

Returns:
Track object set.

rdStorage * suTrackController::getVelocityErrorStorage  )  const
 

Get the storage object for velocity errors.

Returns:
Storage of velocity errors.

void suTrackController::setCheckTargetTime bool  aTrueFalse  ) 
 

Set whether or not to check the target time.

Parameters:
aTrueFalse If true, the target time will be checked. If false, the target time will not be checked.
See also:
setTargetTime()

void suTrackController::setDT double  aDT  ) 
 

Set the requested time step size.

Parameters:
aDT Step size (0.0 <= aDT).

rdOptimizationTarget * suTrackController::setOptimizationTarget rdOptimizationTarget aTarget  ) 
 

Set the optimization target for this controller.

Parameters:
aTarget Optimization target.
Returns:
Previous optimization target.

void suTrackController::setTargetDT double  aDT  ) 
 

Set the target time step size.

The target time step size is the step size used to compute a new target time, once the former target time has been reached by the integrator.

Parameters:
aDT Target time step size. Must be greater than 1.0e-8.
See also:
setTargetTime()

void suTrackController::setTargetTime double  aTime  ) 
 

Set the target time.

The target time is the time in the future for which the controls have been calculated. If an integrator is taking time steps prior to the target time, the controls should not have to be computed again.

Parameters:
aTargetTime Time in the furture for which the controls have been computed.
See also:
getCheckTargetTime()


Member Data Documentation

bool suTrackController::_restoreDT [protected]
 

Flag indicating when the last integration step size should be restored.

Normally it is restored only following a change to the integration step size that was made to step exactly to the end of a target interval.

double suTrackController::_targetTime [protected]
 

The target time is the time in the future (in normalized units) for which the controls have been calculated.

If an integrator is taking steps prior to the target time, the controls should not have to be computed again.


The documentation for this class was generated from the following files:
Generated on Wed Aug 20 02:17:15 2003 for Simulation Software by doxygen1.3