#include <rdActuator.h>
Inheritance diagram for rdActuator:

Public Member Functions | |
| rdActuator (int aNX, int aNY, int aNYP) | |
| Construct an actuator that has a specified number of controls, states, and pseudostates. | |
| rdActuator (int aNX, int aNY, int aNYP, IDOM_Element *aElement) | |
| Construct an actuator from an XML Element. | |
| rdActuator (const rdActuator &aActuator) | |
| Copy constructor. | |
| virtual | ~rdActuator () |
| Destructor. | |
| virtual rdActuator * | copy () const=0 |
| virtual rdActuator * | copy (IDOM_Element *aElement) const=0 |
| rdActuator & | operator= (const rdActuator &aActuator) |
| Assignment operator. | |
| void | setModel (rdModel *aModel) |
| Set the model which this actuator actuates. | |
| rdModel * | getModel () const |
| Get a pointer to the model on which this analysis is being performed. | |
| int | getNX () const |
| Get the number of controls. | |
| const char * | getControlName (int aIndex) const |
| Get the name of a control. | |
| virtual void | setControls (const double aX[]) |
| Set the current values of the controls. | |
| virtual void | getControls (double rX[]) const |
| Get the current values of the controls. | |
| int | getNY () const |
| Get the number of states. | |
| const char * | getStateName (int aIndex) const |
| Get the name of a state. | |
| virtual void | setStates (const double aY[]) |
| Set the current values of the states. | |
| virtual void | getStates (double rY[]) const |
| Get the current values of the states. | |
| int | getNYP () const |
| Get the number of pseudostates. | |
| const char * | getPseudoStateName (int aIndex) const |
| Get the name of a pseudostate. | |
| virtual void | setPseudoStates (const double aY[]) |
| Set the current values of the pseudostates. | |
| virtual void | getPseudoStates (double rY[]) const |
| Get the current values of the pseudostates. | |
| bool | getAppliesForce () const |
| Get whether the actuator applies a force or torque to the model. | |
| void | setForce (double aForce) |
| Set the current force (or torque) of the actuator. | |
| double | getForce () const |
| Get the current force (or torque) of the actuator. | |
| double | getSpeed () const |
| Get the current speed (linear or angular) of the actuator. | |
| double | getPower () const |
| Get the instantaneous power developed by an actuator. | |
| void | setMaxForce (double aMax) |
| Set the maximum force (or torque) that can by applied by the actuator. | |
| double | getMaxForce () const |
| Get the maximum force (or torque) that can by applied by the actuator. | |
| void | setMinForce (double aMin) |
| Set the minimum force (or torque) that can by applied by the actuator. | |
| double | getMinForce () const |
| Get the minimum force (or torque) that can by applied by the actuator. | |
| virtual void | promoteControlsToStates (const double aX[], double aDT) |
| Promote a set of controls to state variables. | |
| virtual void | computeActuation ()=0 |
| virtual void | computeStateDerivatives (double rDYDT[]) |
| Compute the time derivatives of the states for this actuator. | |
| virtual void | updatePseudoStates () |
| Update actuator parameters so they are intervally consistent. | |
| virtual void | apply ()=0 |
| virtual bool | check () const |
| Check that this actuator is valid. | |
| virtual void | updateObject (bool aDeep=true) |
| Update this object based on its XML node. | |
| virtual void | updateNode (bool aDeep=true) |
| Update the XML node representing this object. | |
| virtual void | generateNode (IDOM_Element *aParent) |
| Generate an XML node representing this object. | |
| void | updateData () |
| Update the member data of this object based on its XML node. | |
Static Public Attributes | |
| const double | LARGE = 1.0e8 |
| const int | NAME_LENGTH = rdObject_NAME_LENGTH |
| A length limit for the name of an object. | |
| const char | DEFAULT_NAME [] = "default" |
| const char | PROP_MAXFORCE [] = "max_force" |
| const char | PROP_MINFORCE [] = "min_force" |
Protected Member Functions | |
| void | setControlName (int aIndex, const char *aName) |
| Set the name of a control. | |
| void | setStateName (int aIndex, const char *aName) |
| Set the name of a state. | |
| void | setPseudoStateName (int aIndex, const char *aName) |
| Set the name of a pseudostate. | |
Protected Attributes | |
| rdModel * | _model |
| Model which the actuator actuates. | |
| int | _nx |
| Number of controls that control this actuator. | |
| char ** | _xNames |
| Names of the controls. | |
| int | _ny |
| Number of states that characterize this actuator. | |
| char ** | _yNames |
| Names of the states. | |
| int | _nyp |
| Number of pseudostates in this actuator. | |
| char ** | _ypNames |
| Names of the pseudostates. | |
| bool | _appliesForce |
| Flag indicating whether the actuator applies a force or a torque. | |
| double | _force |
| Force (or torque) magnitude that is applied to the model. | |
| double | _speed |
| Speed of actuator (linear or angular). | |
| double | _maxForce |
| Maximum force (or torque) that this actuator can apply. | |
| double | _minForce |
| Minimum force (or torque) that this actuator can apply. | |
Private Member Functions | |
| void | setNull () |
| Set the data members of this actuator to their null values. | |
| void | constructControls () |
| Construct controls. | |
| void | constructStates () |
| Construct states. | |
| void | constructPseudoStates () |
| Construct pseudostates. | |
|
||||||||||||||||
|
Construct an actuator that has a specified number of controls, states, and pseudostates.
|
|
||||||||||||||||||||
|
Construct an actuator from an XML Element.
|
|
|
Copy constructor.
|
|
|
Compute the time derivatives of the states for this actuator. This method should be overridden by derived classes that have actuator states. In rdActuator this method is empty and put here so that derived classes that don't have any actuator states won't have to implement this method.
Reimplemented in rdGeneralizedForceAtv, and rdMuscleZajac. |
|
|
Generate an XML node representing this object.
Reimplemented from rdObject. Reimplemented in rdGeneralizedForceAtv, rdLinearSetPoint, rdMuscleZajac, rdPolynomialSetPoint, rdSetPoint, rdContactForce, rdForce, rdGeneralizedForce, and suSpringGeneralizedForce. |
|
|
Get whether the actuator applies a force or torque to the model.
|
|
|
Get the name of a control.
|
|
|
Get the current values of the controls.
Reimplemented in rdGeneralizedForceAtv, rdMuscleZajac, rdForce, rdGeneralizedForce, and suSpringGeneralizedForce. |
|
|
Get the current force (or torque) of the actuator. The force (or torque) is represented as a scalar; its vector properties derive from the geometry characterizing how it is applied to the model. The particulars of the geometry is dependent on the type of the actuator.
|
|
|
Get the maximum force (or torque) that can by applied by the actuator.
|
|
|
Get the minimum force (or torque) that can by applied by the actuator.
|
|
|
Get a pointer to the model on which this analysis is being performed.
|
|
|
Get the number of controls.
|
|
|
Get the number of states.
|
|
|
Get the number of pseudostates.
|
|
|
Get the instantaneous power developed by an actuator. The instantaneous power is the product of the actuator force and the actuator speed. If the power is positive, the actuator is delivering energy to the model. If the power is negative, the actuator is absorbing energy from the model.
|
|
|
Get the name of a pseudostate.
|
|
|
Get the current values of the pseudostates.
Reimplemented in rdSetPoint. |
|
|
Get the current speed (linear or angular) of the actuator. The speed is the dot product of the direction of force applied by the actuator to Body1 and the velocity of shortening of the actuator: speed = DotProduct(u1,v), where u1 = unit vector describing the direction of force applied to Body1 expressed in the Body0 frame. v = velocity of Point1 in the frame of Body0 expressed in the Body0 frame.
|
|
|
Get the name of a state.
|
|
|
Get the current values of the states.
Reimplemented in rdGeneralizedForceAtv, and rdMuscleZajac. |
|
|
Assignment operator.
|
|
||||||||||||
|
Promote a set of controls to state variables. This method is normally useful when solving for controls that will optimize some aspect of a model performance. For example, in models in which the controls are neural excitations, but muscle forces are determined by activation level, this method might set the muscle activations equal to the excitations. Each actuator is responsible for knowing how to promote its own controls to states. Reimplemented in rdGeneralizedForceAtv, and rdMuscleZajac. |
|
||||||||||||
|
Set the name of a control. This method is protected and is to be used outside this class and its derived classes.
|
|
|
Set the current values of the controls.
Reimplemented in rdGeneralizedForceAtv, rdMuscleZajac, rdForce, rdGeneralizedForce, and suSpringGeneralizedForce. |
|
|
Set the current force (or torque) of the actuator. The force (or torque) is represented as a scalar; its vector properties derive from the geometry characterizing how it is applied to the model. The particulars of the geometry is dependent on the type of the actuator. Note that this method clamps the force between the maximum and minimum force allowed for the actuator.
|
|
|
Set the maximum force (or torque) that can by applied by the actuator.
|
|
|
Set the minimum force (or torque) that can by applied by the actuator.
|
|
|
Set the model which this actuator actuates.
|
|
||||||||||||
|
Set the name of a pseudostate. This method is protected and is not intended to be used outside this class and its derived classes.
|
|
|
Set the current values of the pseudostates.
Reimplemented in rdSetPoint. |
|
||||||||||||
|
Set the name of a state. This method is protected and is not intended to be used outside this class and its derived classes.
|
|
|
Set the current values of the states.
Reimplemented in rdGeneralizedForceAtv, and rdMuscleZajac. |
|
|
Update the member data of this object based on its XML node. Member objects (children) are not updated. Reimplemented in rdGeneralizedForceAtv, rdLinearSetPoint, rdMuscleZajac, rdPolynomialSetPoint, rdSetPoint, rdContactForce, rdForce, rdGeneralizedForce, and suSpringGeneralizedForce. |
|
|
Update the XML node representing this object.
Reimplemented from rdObject. Reimplemented in rdGeneralizedForceAtv, rdLinearSetPoint, rdMuscleZajac, rdPolynomialSetPoint, rdSetPoint, rdContactForce, rdForce, rdGeneralizedForce, and suSpringGeneralizedForce. |
|
|
Update this object based on its XML node.
Reimplemented from rdObject. Reimplemented in rdGeneralizedForceAtv, rdLinearSetPoint, rdMuscleZajac, rdPolynomialSetPoint, rdSetPoint, rdContactForce, rdForce, rdGeneralizedForce, and suSpringGeneralizedForce. |
|
|
Update actuator parameters so they are intervally consistent. This method is distinguished from computeActuation() in that it is normally called only after an integration time step has been taken. Updating spring setpoints is an example. Reimplemented in rdSetPoint, and rdContactForce. |
|
|
Number of pseudostates in this actuator. Pseudostates are variables that are not integrated but that depend on the history of the integration. They cannot be determined from the states. |
1.3