MbsData Struct Reference

`#include <mbs_data.h>`

## Public Attributes | |

int | npt |

Number of anchor points. More... | |

double ** | dpt |

Array containing the coordinate of all anchor points (3+1 lines, npt+1 columns). More... | |

double ** | l |

Array containing the center of mass coordinates (in the body fixed frame, one column per body including fictious, 3+1 lines). More... | |

double * | m |

Array containing the mass of each body. More... | |

double ** | In |

Array containing the inertia tensor component of each body (in the body fixed frame, relative to the center of mass). More... | |

double | g [3+1] |

The 3 gravity components. More... | |

int | nbody |

Number of bodies in the system. More... | |

int | njoint |

Number of joints in the system. More... | |

int | nqu |

Number of independent articulations. More... | |

int | nqc |

Number of driven articulations, it includes qlocked and qdriven. More... | |

int | nqlocked |

Number of locked articulations. More... | |

int | nqdriven |

Number of driven articulations. More... | |

int | nqa |

Number of actuated articulations. More... | |

int | nqv |

Number of dependent articulations. More... | |

int | nhu |

Number of independent constraints. More... | |

int | nqrot |

Number of rotational joint (R1, R2 or R3) More... | |

int * | qu |

Array with the indices of the independent articulations (free) More... | |

int * | qc |

Array with the indices of driven (locked and driven) articulations. More... | |

int * | qlocked |

Array with the indices of locked articulations. More... | |

int * | qdriven |

Array with the indices of driven articulations. More... | |

int * | qa |

Array with the indices of actuated articulations (only for inverse dynamic). More... | |

int * | qv |

Array with the indices of the dependent articulations . More... | |

int * | hu |

Array with the indices of independent constraints. More... | |

int * | qrot |

Array with the indices of the rotational articulations (incremental values) More... | |

double * | q |

Array with the current values of the generalized coordinates. More... | |

double * | qd |

Array with the current values of the generalized velocities. More... | |

double * | qdd |

Array with the current values of the generalized acceleration. More... | |

double * | q0 |

Array with the initial values of the generalized coordinates. More... | |

double * | qd0 |

Array with the initial values of the generalized velocities. More... | |

double * | qdd0 |

Array with the initial values of the generalized acceleration. More... | |

double * | q_sin |

Array with the sine values of the generalized coordinates, if rotational (if translational, contains 'NAN'), size = 1xnjoint. More... | |

double * | q_cos |

Array with the cosine values of the generalized coordinates, if rotational (if translational, contains 'NAN'), size = 1xnjoint. More... | |

int | flag_optim_symb_sin_cos |

allow the "optimisation" of the computation of the sine/cosine in the symbolic files. Needs specific symbolic files, i.e. Rtime flag to ON More... | |

double ** | frc |

Matrix with the components of the resultant external forces (in the body fixed frame) applied to the center of mass of each body. More... | |

double ** | trq |

Matrix with the components of the resultant external torques (pure torque and couple produced by forces displacement in the body fixed frame) applied to each body. More... | |

double * | |

Array with the values of the joint forces. More... | |

double * | Qa |

Array of active joint forces (in case of simulink,invdyna,equil,linearization,...) More... | |

double | tsim |

The time value. More... | |

double | t0 |

Initial time of the simulation [s]. For dirdyn and invdyn only. This parameter is set from dirdyn/invyn option at start of time simulation. More... | |

double | tf |

Final time of the simulation [s]. For dirdyn and invdyn only. This parameter is set from dirdyn/invyn option at start of time simulation. More... | |

double | dt0 |

Initial value of the integration step size [s]. For dirdyn and invdyn only. This parameter is set from dirdyn/invyn option at start of time simulation. More... | |

int | n_rod |

Number of rod constraint in the system. More... | |

double * | lrod |

Array with the length of each rod. More... | |

int | Nloopc |

Number of loop constraints. More... | |

int | Ncons |

Number of algebraic constraints. More... | |

int | Nuserc |

Number of user constraints. More... | |

double | NRerr |

Maximal error on constraint allowed in Newton-Raphson algorithm, default 1.0e-9. More... | |

int | MAX_NR_ITER |

Maximal number of iterations for NR procedure, default 100. More... | |

double * | lambda |

Array with the values of the Lagrange Multipliers related to the constraints. More... | |

double ** | jac_user |

Jacobian of constraints [nqv x njoint] (starting at 1), only used in symbolic accelred, with user constraints. More... | |

double * | jdqd_user |

Vector of jdqd for user constraints [nqv] (starting at 1), only used in symbolic accelred, with user constraints. More... | |

double * | Qc |

Array with the value of joint force introduced in driven joint to respect the user function. More... | |

int | Nlink |

Number of forces acting between two points of the system (force law implemented in user_LinkForces()). More... | |

int | Nlink3D |

Number of 3D links. More... | |

double * | Z |

Array with the current values of the distances between of the points of a link (see: user_LinkForces()). More... | |

double * | Zd |

Array with the current values of the speed (spreading) between of the points of a link (see: user_LinkForces()). More... | |

double * | Fl |

Array with the current values of the forces on each link (see: user_LinkForces()). More... | |

double ** | l3DWr |

int | Nsensor |

< Array of l3DWr vector for each 3D link forces. More... | |

int | Nxfrc |

Number of points where an external force is applied into a body. More... | |

int * | xfidpt |

Array of the points defined as force application points. More... | |

double ** | SWr |

Array of Swr vector for each external forces. More... | |

int | Nuser_model |

Number of declared user models in MBsysPad. More... | |

UserModel * | user_model |

Structure containing all user model, this structure is specific for each project. More... | |

int | n_user_IO |

UserIO * | user_IO |

UserIoInfo * | __user_IO_info |

double * | ux |

Array with the values of the user variables. More... | |

double * | uxd |

Array with the values of the time derivatives of the user variables. More... | |

double * | ux0 |

Array with the initial values of the user variables. More... | |

int | Nux |

Number of user variable. More... | |

double * | udd |

For axelle red: array with the values of the acceleration of independent coordinate. More... | |

int | DonePart |

Flag that indicates if the coordinate partitioning module has been executed (default: 0=not done; 1=done). More... | |

int | DoneEquil |

Flag that indicates if the equilibrium module has been executed (default: 0=not done; 1=done). More... | |

int | DoneModal |

Flag that indicates if the modal module has been executed (default: 0=not done; 1=done). More... | |

int | process |

Flag that indicate which module is currently running (1=partitioning, 2=equilibrium, 3=direct dynamic, 4=modal, 5=inverse kinematic, 6=inverse dynamic), default =1. More... | |

int | flag_stop |

stop the simulation. For dirdyn, equil, invdyn and solvekin only. More... | |

int | flag_jac_position |

Flag to compute the Jacobian of the constraint for position or velocity solution. More... | |

int | flag_safety_checks |

Flag to activate safety checks everywhere in mbsysc core. Faster computation if this flag is put to 0. Default = 1. More... | |

double | zero_division_thrs |

Value from which a warning is raised if a division by zero (or close to) occurs. Default=1.0e-9. More... | |

char * | mbs_filename |

Path to mbs file including the file with the extension (.mbs) More... | |

char * | build_path |

Path to the build folder. More... | |

char * | project_path |

Path to the mbs project folder. More... | |

char * | mbs_name |

Name of the mbs project as it is stored in the xml file. More... | |

Functions | fct |

Structure to store the pointer to the project-specific functions. More... | |

void * | realtime |

Pointer to Simu_realtime structure. More... | |

UserIoInfo* __user_IO_info |

char* build_path |

Path to the build folder.

int DoneEquil |

Flag that indicates if the equilibrium module has been executed (default: 0=not done; 1=done).

int DoneModal |

Flag that indicates if the modal module has been executed (default: 0=not done; 1=done).

int DonePart |

Flag that indicates if the coordinate partitioning module has been executed (default: 0=not done; 1=done).

double** dpt |

Array containing the coordinate of all anchor points (3+1 lines, npt+1 columns).

double dt0 |

Initial value of the integration step size [s]. For dirdyn and invdyn only. This parameter is set from dirdyn/invyn option at start of time simulation.

Functions fct |

Structure to store the pointer to the project-specific functions.

double* Fl |

Array with the current values of the forces on each link (see: user_LinkForces()).

int flag_jac_position |

Flag to compute the Jacobian of the constraint for position or velocity solution.

The Jacobian differs if a constraint has a different meaning in position and velocity. For example a contact constraint in position can be expressed along an inertial axis. But the velocity constraint will be expressed in the contact normal direction that allows the Lagrange multiplier to be the normal contact force. This flag is updated by the loop closure procedure, not by the user.

int flag_optim_symb_sin_cos |

allow the "optimisation" of the computation of the sine/cosine in the symbolic files. Needs specific symbolic files, i.e. Rtime flag to ON

int flag_safety_checks |

Flag to activate safety checks everywhere in mbsysc core. Faster computation if this flag is put to 0. Default = 1.

int flag_stop |

stop the simulation. For dirdyn, equil, invdyn and solvekin only.

double** frc |

Matrix with the components of the resultant external forces (in the body fixed frame) applied to the center of mass of each body.

double g[3+1] |

The 3 gravity components.

int* hu |

Array with the indices of independent constraints.

double** In |

Array containing the inertia tensor component of each body (in the body fixed frame, relative to the center of mass).

1 column containing 9 rows for each body as follow: [I11;I12;I13;I21;I22;I23;I31;I32;I33]

double** jac_user |

Jacobian of constraints [nqv x njoint] (starting at 1), only used in symbolic accelred, with user constraints.

double* jdqd_user |

Vector of jdqd for user constraints [nqv] (starting at 1), only used in symbolic accelred, with user constraints.

double** l |

Array containing the center of mass coordinates (in the body fixed frame, one column per body including fictious, 3+1 lines).

double** l3DWr |

double* lambda |

Array with the values of the Lagrange Multipliers related to the constraints.

The sequence of the constraints is the one defined in the system without analyzing it. The id of each kinematic loop is defined in your `user_all_id.h`

file (if generated). The number of constraints of each kinematic loop is defined in the theory. Then comes the user-defined constraints.

double* lrod |

Array with the length of each rod.

double* m |

Array containing the mass of each body.

int MAX_NR_ITER |

Maximal number of iterations for NR procedure, default 100.

char* mbs_filename |

Path to mbs file including the file with the extension (.mbs)

char* mbs_name |

Name of the mbs project as it is stored in the xml file.

int n_rod |

Number of rod constraint in the system.

int n_user_IO |

int nbody |

Number of bodies in the system.

The 'fictitious' bodies are not taken into account.

int Ncons |

Number of algebraic constraints.

int nhu |

Number of independent constraints.

int njoint |

Number of joints in the system.

int Nlink |

Number of forces acting between two points of the system (force law implemented in user_LinkForces()).

int Nlink3D |

Number of 3D links.

int Nloopc |

Number of loop constraints.

int npt |

Number of anchor points.

int nqa |

Number of actuated articulations.

int nqc |

Number of driven articulations, it includes qlocked and qdriven.

int nqdriven |

Number of driven articulations.

int nqlocked |

Number of locked articulations.

int nqrot |

Number of rotational joint (R1, R2 or R3)

int nqu |

Number of independent articulations.

int nqv |

Number of dependent articulations.

double NRerr |

Maximal error on constraint allowed in Newton-Raphson algorithm, default 1.0e-9.

int Nsensor |

< Array of l3DWr vector for each 3D link forces.

The shape of the arrray is [Nlink3D, 6] with index starting at 1. The pointer is set to NULL if there is no Link3D.

A line of the array is : [6; Fx; Fy; Fz; Mx; My; Mz]:

- Force components (expressed in the parent body frame) : Fx, Fy, Fz
- Pure torque components (expressed in the parent body frame) : Mx, My, Mz

The forces/torque are applied on the parent body. The opposite is applied on the children body. The force is applied (for both body) on the children anchor point.

WARNING: Indexes convention is the opposite of what is usually done in MBsysC. Number of kinematic sensors.

int Nuser_model |

Number of declared user models in MBsysPad.

int Nuserc |

Number of user constraints.

int Nux |

Number of user variable.

int Nxfrc |

Number of points where an external force is applied into a body.

int process |

Flag that indicate which module is currently running (1=partitioning, 2=equilibrium, 3=direct dynamic, 4=modal, 5=inverse kinematic, 6=inverse dynamic), default =1.

char* project_path |

Path to the mbs project folder.

double* q |

Array with the current values of the generalized coordinates.

double* q0 |

Array with the initial values of the generalized coordinates.

double* q_cos |

Array with the cosine values of the generalized coordinates, if rotational (if translational, contains 'NAN'), size = 1xnjoint.

double* q_sin |

Array with the sine values of the generalized coordinates, if rotational (if translational, contains 'NAN'), size = 1xnjoint.

int* qa |

Array with the indices of actuated articulations (only for inverse dynamic).

Those articulations are controlled by an actuator.

double* Qa |

Array of active joint forces (in case of simulink,invdyna,equil,linearization,...)

int* qc |

Array with the indices of driven (locked and driven) articulations.

double* Qc |

Array with the value of joint force introduced in driven joint to respect the user function.

The driven forces/torques are saved in the entries given by index vector, MbsData::qc

double* qd |

Array with the current values of the generalized velocities.

double* qd0 |

Array with the initial values of the generalized velocities.

double* qdd |

Array with the current values of the generalized acceleration.

double* qdd0 |

Array with the initial values of the generalized acceleration.

int* qdriven |

Array with the indices of driven articulations.

Those articulations are controlled by a user function .

int* qlocked |

Array with the indices of locked articulations.

Those articulations have a constant position defined by the user .

double* Qq |

Array with the values of the joint forces.

int* qrot |

Array with the indices of the rotational articulations (incremental values)

int* qu |

Array with the indices of the independent articulations (free)

int* qv |

Array with the indices of the dependent articulations .

void* realtime |

Pointer to Simu_realtime structure.

double** SWr |

Array of Swr vector for each external forces.

Swr(9,1) = [Fx; Fy; Fz; Mx; My; Mz; dxF]:

- Force components (expressed in the inertial frame) : Fx, Fy, Fz
- Pure torque components (expressed in the inertial frame) : Mx, My, Mz
- Application point local coordinates vector (expressed in the body-fixed frame): dxF(1:3,1)

WARNING: Indexes convention is the opposite of what is usually done in MBsysC.

double t0 |

Initial time of the simulation [s]. For dirdyn and invdyn only. This parameter is set from dirdyn/invyn option at start of time simulation.

double tf |

Final time of the simulation [s]. For dirdyn and invdyn only. This parameter is set from dirdyn/invyn option at start of time simulation.

double** trq |

Matrix with the components of the resultant external torques (pure torque and couple produced by forces displacement in the body fixed frame) applied to each body.

double tsim |

The time value.

double* udd |

For axelle red: array with the values of the acceleration of independent coordinate.

UserIO* user_IO |

UserModel* user_model |

Structure containing all user model, this structure is specific for each project.

double* ux |

Array with the values of the user variables.

double* ux0 |

Array with the initial values of the user variables.

double* uxd |

Array with the values of the time derivatives of the user variables.

int* xfidpt |

Array of the points defined as force application points.

double* Z |

Array with the current values of the distances between of the points of a link (see: user_LinkForces()).

double* Zd |

Array with the current values of the speed (spreading) between of the points of a link (see: user_LinkForces()).

double zero_division_thrs |

Value from which a warning is raised if a division by zero (or close to) occurs. Default=1.0e-9.

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

- mbs_common/mbs_struct/mbs_data.h

Generated on Fri Mar 10 2023 09:22:55 for Robotran C Documentation by 1.8.17