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

Public Member Functions | |
| suUTWalk8IATaylor () | |
| Default constructor. | |
| virtual | ~suUTWalk8IATaylor () |
| Destructor. | |
| int | getNC () |
| Get the number of components. | |
| int | getNIC () |
| Get the number of independent components. | |
| int | getNE () |
| Get the number of compliant elements. | |
| char * | getComponentName (int aC) |
| GET THE NAME OF A COMPONENT. | |
| void | setPerformDecomposition (bool aTrueFalse, int aCapcity=100) |
| Initialize new decomposition storage objects. | |
| rdStorage ** | getForceStorage () |
| Get the force decomposition storage. | |
| void | setApplyDecompression (bool aTrueFalse) |
| Set whether or not to apply a decompression algorithm. | |
| bool | getApplyDecompression () |
| Get whether or not to apply a decompression algorithm. | |
| void | getStiffness (double aVel[3], double aPos[3], double aDFDP[3], double aDFDV[3]) |
| Create a new decomposition storage object. | |
| void | setStorageInterval (int aInterval) |
| Set the storage interval. | |
| int | getStorageInterval () |
| Get the storage interval. | |
| void | setCorrectionInterval (int aInterval) |
| Set the interval at which corrections are made to satisfy superposition. | |
| int | getCorrectionInterval () |
| Get the interval at which corrections are made to satisfy superposition. | |
| void | initializeForceElements (double aT, double aSFrc[][3]) |
| Initialize the force values for the component elements. | |
| void | initializeVelocityElements (double aT, double aSVel[][3]) |
| Initialize the velocities values for the component elements. | |
| void | applyActiveForces (int aC, double *aY) |
| Apply appropriate component forces. | |
| void | decompStep (double aDT, double aDFDP[3], double aDFDV[3], double aAcc[3], double aV[3], double aF[3]) |
| Take a step forward in a decomposition component. | |
| void | compress (double aDT, double aDFDP, double aDFDV, double aAcc, double *aVe, double *aFe) |
| Compress an element in a decomposition. | |
| void | decompress (double aFrcLast, double aFrc, double aVelLast, double aVel, double *aVe, double *aFe) |
| Decompress an element in a decomposition. | |
| void | correctForSliding (double aAlpha[3], double aF[3]) |
| Correct spring components for sliding. | |
| void | correctForSliding (double aAlpha, double *aF) |
| Correct spring components for sliding. | |
| void | computeHigherOrderDerivatives (int c, double t, double *dudt, double *ddudt, double *dddudt) |
| Compute higher order derivatives of the accelerations. | |
| virtual void | store (double t, double *x, double *y) |
| Store various model quantities. | |
| void | printStorage (const char *aPath=NULL, double dt=-1.0) |
| Print storage. | |
| void | sumSpringForces () |
| Sum the separate spring forces to get the totals on each foot and on both feet. | |
| void | sumSpringVelocities () |
| Sum the components of the spring velocities to get the total velocities induced by the muscles and by all components. | |
| void | integBeginCallback (int i, double dt, double t, double *x, double *y, void *cd=NULL) |
| At the beginning of an integration, initialize the decomposition. | |
| void | integStepCallback (double *xPrev, double *yPrev, int i, double dt, double t, double *x, double *y, void *cd=NULL) |
| After each integration step, update the horizontal spring zeros and draw the model. | |
Static Public Member Functions | |
| double | CorrectForSuperposition (int aNEA, double *aActual, int aNC, int aNIC, int aNED, double *aDecomp, double *aCorrection, bool aComputeMeanCorrection=false) |
| Correct force and velocity components to satisfy superposition. | |
Static Public Attributes | |
| const int | NC = NNC |
| const int | NIC = NC - 2 |
| const int | NE = NNS |
| const int | NEFOOT = 5 |
| const int | NEFRC = NE+3 |
| const int | CMUS = NX-1 |
| const int | CLIG = NX |
| const int | CGRAV = NX+1 |
| const int | CCEN |
| const int | CVEL = NX+2 |
| const int | CINER |
| const int | CALLMUS = NX+3 |
| const int | CALL = NX+4 |
Protected Attributes | |
| char ** | _cNames |
| int | _storageInterval |
| int | _correctionInterval |
| int | _drawInterval |
| bool * | _contactEstablished |
| bool | _applyDecompression |
| double | _tolContact |
| double * | _sfrcLast |
| double * | _svelLast |
| double * | _feContig |
| double *** | _fe |
| double * | _veContig |
| double *** | _ve |
| double * | _fbContig |
| double *** | _fb |
| double | _at [NNC][3] |
| double | _ah [NNC][NNU][3] |
| rdStorage ** | _feStore |
| rdStorage ** | _veStore |
| rdStorage ** | _aeStore |
| rdStorage ** | _fbStore |
Private Member Functions | |
| void | constructComponentNames () |
| Construct component names. | |
| void | allocateElementVectors () |
| Allocate element vectors. | |
| void | deleteStorage () |
| Delete storage objects. | |
|
||||||||||||||||||||||||||||||||||||
|
Correct force and velocity components to satisfy superposition. The actual simulated values are input in aActual, and the decomposition values are input in aDecomp. Based on the difference between the superposition of the decomposition values and the actual values, all decomposition values are shifted. It is assumed that aDecomp holds the superposition of its components at aDecomp[NC-1][0][0], expressed here as if aDecomp were a three dimensional array. The caller must also supply an aCorrection array that is used within this method and that returns the superpostion corrections that were used to make the corrections. aCorrection should be the same size as aActual. If an error is encoutnered -1.0 is returned. Otherwise, if the flag aComputeMeanCorrection is set to true, the mean correction is returned, or, if aComputeError is set to false, 0.0 is returned. |
|
|
Get the interval at which corrections are made to satisfy superposition. If the correction interval is 0 or negative, no correction is performed. |
|
|
Set the interval at which corrections are made to satisfy superposition. If the correction interval is 0 or negative, no correction is performed. |
1.3