Declaration of functions that are project dependent. More...
#include "mbs_equil_struct.h"
Go to the source code of this file.
Functions | |
void | mbs_get_project_functions (MbsData *mbs_data) |
loads the project function into the pointers defined in MbsData::fct More... | |
void | user_load_post (MbsData *MBSdata, MbsLoader *mbs_loader) |
User own initialization operations. More... | |
void | user_free (MbsData *MBSdata) |
User own freeing operations. More... | |
void | user_call_dirdyn_init (MbsData *MBSdata, MbsDirdyn *mbs_dd) |
Module redirection for user own dirdyn initialization function, see user_dirdyn_init(). More... | |
void | user_dirdyn_init (MbsData *MBSdata, MbsDirdyn *mbs_dd) |
user own initialization functions More... | |
void | user_call_dirdyn_loop (MbsData *MBSdata, MbsDirdyn *mbs_dd) |
Module redirection for user own dirdyn loop function, see user_dirdyn_loop(). More... | |
void | user_dirdyn_loop (MbsData *MBSdata, MbsDirdyn *mbs_dd) |
user own loop functions More... | |
void | user_call_dirdyn_finish (MbsData *MBSdata, MbsDirdyn *mbs_dd) |
Module redirection for user own dirdyn finish function, see user_dirdyn_finish(). More... | |
void | user_dirdyn_finish (MbsData *MBSdata, MbsDirdyn *mbs_dd) |
user own finishing functions More... | |
void | user_call_invdyn_init (MbsData *MBSdata, MbsInvdyn *mbs_invd) |
Module redirection for user own dirdyn initialization function, see user_dirdyn_init(). More... | |
void | user_invdyn_init (MbsData *MBSdata, MbsInvdyn *mbs_invd) |
void | user_call_invdyn_loop (MbsData *MBSdata, MbsInvdyn *mbs_invd) |
Module redirection for user own dirdyn loop function, see user_dirdyn_loop(). More... | |
void | user_invd_loop (MbsData *MBSdata, MbsInvdyn *mbs_invd) |
void | user_call_invdyn_finish (MbsData *MBSdata, MbsInvdyn *mbs_invd) |
Module redirection for user own dirdyn finish function, see user_dirdyn_finish(). More... | |
void | user_invdyn_finish (MbsData *MBSdata, MbsInvdyn *mbs_invd) |
void | user_call_equil_init (MbsData *MBSdata, MbsEquil *mbs_equil) |
Module redirection for user own equilibrium initialization function, see user_equil_init(). More... | |
void | user_equil_init (MbsData *MBSdata, MbsEquil *mbs_equil) |
user own initialization functions More... | |
void | user_call_equil_loop (MbsData *MBSdata, MbsEquil *mbs_equil) |
Module redirection for user own equil loop function, see user_equil_loop(). More... | |
void | user_equil_loop (MbsData *MBSdata, MbsEquil *mbs_equil) |
user own loop functions More... | |
void | user_call_equil_finish (MbsData *MBSdata, MbsEquil *mbs_equil) |
Module redirection for user own equil finish function, see user_equil_finish(). More... | |
void | user_equil_finish (MbsData *MBSdata, MbsEquil *mbs_equil) |
user own finishing functions More... | |
void | user_call_equil_fxe (MbsData *mbs_data, double *f) |
Module redirection for user own equilibrium equations function, see user_equil_fxe(). More... | |
void | user_equil_fxe (MbsData *mbs_data, double *f) |
user own implementation of added equilibrium equations Fxe Necessary to express equilibrium f(x)=0 More... | |
void | user_cons_hJ (double *h, double **Jac, MbsData *s, double tsim) |
Compute the user-specified constraint vector and Jacobian. More... | |
int | user_call_cons_hJ (double *h, double **Jac, MbsData *s, double tsim) |
Module redirection for user joint force function, see user_cons_hJ() however the return differs. More... | |
void | user_cons_jdqd (double *jdqd, MbsData *s, double tsim) |
Compute the jdqd term of the user-specified constraints. More... | |
int | user_call_cons_jdqd (double *jdqd, MbsData *s, double tsim) |
Module redirection for jdqd term of the user-specified constraints, see user_cons_jdqd() however the return differs. More... | |
void | user_Derivative (MbsData *s) |
Compute the time derivative of the user state variables defined in the user model. More... | |
int | user_call_Derivative (MbsData *s) |
Module redirection for the time derivative of the user state variables, see user_Derivative() however the return differs. More... | |
void | user_DrivenJoints (MbsData *s, double tsim) |
Compute the positions, velocities and acceleration of driven joint. More... | |
int | user_call_DrivenJoints (MbsData *s, double tsim) |
Module redirection for the computation of driven joints, see user_DrivenJoints() however the return differs. More... | |
double * | user_ExtForces (double PxF[4], double RxF[4][4], double VxF[4], double OMxF[4], double AxF[4], double OMPxF[4], MbsData *s, double tsim, int ixF) |
Compute an user-specified external force. More... | |
double * | user_call_ExtForces (double PxF[4], double RxF[4][4], double VxF[4], double OMxF[4], double AxF[4], double OMPxF[4], MbsData *s, double tsim, int ixF) |
Module redirection for the computation of external forces, see user_DrivenJoints(). More... | |
double * | user_GenExtForces (double PxF[4], double RxF[4][4], double VxF[4], double OMxF[4], double AxF[4], double OMPxF[4], MbsData *s, double tsim, int iBody) |
double * | user_JointForces (MbsData *s, double tsim) |
Compute the user-specified joint force in all joint. More... | |
double * | user_call_JointForces (MbsData *s, double tsim) |
Module redirection for user joint force function, see user_JointForces(). More... | |
double | user_LinkForces (double Z, double Zd, MbsData *s, double tsim, int ilnk) |
Compute the value of a link forces. More... | |
double | user_call_LinkForces (double Z, double Zd, MbsData *s, double tsim, int ilnk) |
Module redirection for user link force function, see user_LinkForces(). More... | |
double * | user_Link3DForces (double PxF[4], double RxF[4][4], double VxF[4], double OMxF[4], double AxF[4], double OMPxF[4], MbsData *s, double tsim, int ixF) |
Compute an user-specified point to point force, with arbitrary line of action. More... | |
double * | user_call_Link3DForces (double PxF[4], double RxF[4][4], double VxF[4], double OMxF[4], double AxF[4], double OMPxF[4], MbsData *s, double tsim, int ixF) |
Module redirection for user link 3D function, see user_Link3DForces(). More... | |
int | user_cons_J_accelred (MbsData *s, double tsim) |
Close the user-specified constraints and compute the Jacobian of the constraints vector. More... | |
int | user_call_cons_J_accelred (MbsData *s, double tsim) |
Module redirection for accelred user-specified constraints function, see user_cons_J_accelred(). More... | |
void | user_call_realtime_options (MbsData *mbs_data, Realtime_option *options) |
void | user_call_keyboard (MbsData *mbs_data, Simu_realtime *realtime, int cur_t_usec, const Uint8 *keystates) |
void | user_call_realtime_plot (MbsData *mbs_data) |
void | user_call_joystick_axes (MbsData *mbs_data, Simu_realtime *realtime, int nb_joysticks) |
void | user_call_joystick_buttons (MbsData *mbs_data, int buttonID) |
void | user_call_realtime_visu (MbsData *mbs_data, int nb_models, int *nb_q, double **q_vec) |
Redirection to the user-specified user function of realtime visualization. More... | |
double * | user_JointForces_dq (MbsData *mbs_data, double tsim, int ixJ) |
Compute the derivative of the joint forces vector according to a generalized coordinate. More... | |
double * | user_call_JointForces_dq (MbsData *mbs_data, double tsim, int ixJ) |
Module redirection for user function, see user_JointForces_dq(). More... | |
double * | user_JointForces_dqd (MbsData *mbs_data, double tsim, int ixJ) |
Compute the derivative of the joint forces vector according to a generalized velocity. More... | |
double * | user_call_JointForces_dqd (MbsData *mbs_data, double tsim, int ixJ) |
Module redirection for user function, see user_JointForces_dqd(). More... | |
double * | user_JointForces_dqdd (MbsData *mbs_data, double tsim, int ixJ) |
Compute the derivative of the joint forces vector according to a generalized acceleartion. More... | |
double * | user_call_JointForces_dqdd (MbsData *mbs_data, double tsim, int ixJ) |
Module redirection for user function, see user_call_JointForces_dqdd(). More... | |
double * | user_JointForces_dp (MbsData *mbs_data, double tsim) |
Compute the derivative of the joint forces vector according to a specific parameter. More... | |
double * | user_call_JointForces_dp (MbsData *mbs_data, double tsim) |
Module redirection for user function, see user_JointForces_dp(). More... | |
double | user_LinkForces_dq (double Z, double d_Z, double Zd, double d_Zd, MbsData *mbs_data, double tsim, int i_link, int i_param) |
Compute the partial derivative of a link forces with respect to a generalized coordinate. More... | |
double | user_call_LinkForces_dq (double Z, double d_Z, double Zd, double d_Zd, MbsData *mbs_data, double tsim, int i_link, int i_param) |
Module redirection for user function, see user_LinkForces_dq(). More... | |
double | user_LinkForces_dqd (double Z, double d_Z, double Zd, double d_Zd, MbsData *mbs_data, double tsim, int i_link, int i_param) |
Compute the partial derivative of a link forces with respect to a generalized velocity. More... | |
double | user_call_LinkForces_dqd (double Z, double d_Z, double Zd, double d_Zd, MbsData *mbs_data, double tsim, int i_link, int i_param) |
Module redirection for user function, see user_LinkForces_dqd(). More... | |
double | user_LinkForces_dqdd (double Z, double d_Z, double Zd, double d_Zd, MbsData *mbs_data, double tsim, int i_link, int i_param) |
Compute the partial derivative of a link forces with respect to a generalized acceleration. More... | |
double | user_call_LinkForces_dqdd (double Z, double d_Z, double Zd, double d_Zd, MbsData *mbs_data, double tsim, int i_link, int i_param) |
Module redirection for user function, see user_LinkForces_dqdd(). More... | |
double | user_LinkForces_dp (double Z, double d_Z, double Zd, double d_Zd, MbsData *mbs_data, double tsim, int i_link) |
Compute the partial derivative of a link forces with respect to a specific parameter. More... | |
double | user_call_LinkForces_dp (double Z, double d_Z, double Zd, double d_Zd, MbsData *mbs_data, double tsim, int i_link) |
Module redirection for user function, see user_LinkForces_dp(). More... | |
double * | user_Link3DForces_dq (double PxF[4], double d_PxF[4], double RxF[4][4], double d_RxF[4][4], double VxF[4], double d_VxF[4], double OMxF[4], double d_OMxF[4], double AxF[4], double d_AxF[4], double OMPxF[4], double d_OMPxF[4], MbsData *s, double tsim, int i_link3d, int i_param) |
Compute the partial derivative of a link3D forces with respect to a generalized coordinate. More... | |
double * | user_call_Link3DForces_dq (double PxF[4], double d_PxF[4], double RxF[4][4], double d_RxF[4][4], double VxF[4], double d_VxF[4], double OMxF[4], double d_OMxF[4], double AxF[4], double d_AxF[4], double OMPxF[4], double d_OMPxF[4], MbsData *s, double tsim, int i_link3d, int i_param) |
Module redirection for user function, see user_Link3DForces_dq(). More... | |
double * | user_Link3DForces_dqd (double PxF[4], double d_PxF[4], double RxF[4][4], double d_RxF[4][4], double VxF[4], double d_VxF[4], double OMxF[4], double d_OMxF[4], double AxF[4], double d_AxF[4], double OMPxF[4], double d_OMPxF[4], MbsData *s, double tsim, int i_link3d, int i_param) |
Compute the partial derivative of a link3D forces with respect to a generalized velocity. More... | |
double * | user_call_Link3DForces_dqd (double PxF[4], double d_PxF[4], double RxF[4][4], double d_RxF[4][4], double VxF[4], double d_VxF[4], double OMxF[4], double d_OMxF[4], double AxF[4], double d_AxF[4], double OMPxF[4], double d_OMPxF[4], MbsData *s, double tsim, int i_link3d, int i_param) |
Module redirection for user function, see user_Link3DForces_dqd(). More... | |
double * | user_Link3DForces_dqdd (double PxF[4], double d_PxF[4], double RxF[4][4], double d_RxF[4][4], double VxF[4], double d_VxF[4], double OMxF[4], double d_OMxF[4], double AxF[4], double d_AxF[4], double OMPxF[4], double d_OMPxF[4], MbsData *s, double tsim, int i_link3d, int i_param) |
Compute the partial derivative of a link3D forces with respect to a generalized acceleration. More... | |
double * | user_call_Link3DForces_dqdd (double PxF[4], double d_PxF[4], double RxF[4][4], double d_RxF[4][4], double VxF[4], double d_VxF[4], double OMxF[4], double d_OMxF[4], double AxF[4], double d_AxF[4], double OMPxF[4], double d_OMPxF[4], MbsData *s, double tsim, int i_link3d, int i_param) |
Module redirection for user function, see user_Link3DForces_dqdd(). More... | |
double * | user_Link3DForces_dp (double PxF[4], double d_PxF[4], double RxF[4][4], double d_RxF[4][4], double VxF[4], double d_VxF[4], double OMxF[4], double d_OMxF[4], double AxF[4], double d_AxF[4], double OMPxF[4], double d_OMPxF[4], MbsData *s, double tsim, int i_link3d) |
Compute the partial derivative of a link3D forces with respect to a parameter. More... | |
double * | user_call_Link3DForces_dp (double PxF[4], double d_PxF[4], double RxF[4][4], double d_RxF[4][4], double VxF[4], double d_VxF[4], double OMxF[4], double d_OMxF[4], double AxF[4], double d_AxF[4], double OMPxF[4], double d_OMPxF[4], MbsData *s, double tsim, int i_link3d) |
Module redirection for user function, see user_Link3DForces_dp(). More... | |
double * | user_ExtForces_dq (double PxF[4], double d_PxF[4], double RxF[4][4], double d_RxF[4][4], double VxF[4], double d_VxF[4], double OMxF[4], double d_OMxF[4], double AxF[4], double d_AxF[4], double OMPxF[4], double d_OMPxF[4], MbsData *s, double tsim, int i_force, int i_joint) |
Compute the partial derivative of an user-specified external force with respect to a generalized coordinate. More... | |
double * | user_call_ExtForces_dq (double PxF[4], double d_PxF[4], double RxF[4][4], double d_RxF[4][4], double VxF[4], double d_VxF[4], double OMxF[4], double d_OMxF[4], double AxF[4], double d_AxF[4], double OMPxF[4], double d_OMPxF[4], MbsData *s, double tsim, int i_force, int i_joint) |
Module redirection for user function, see user_call_ExtForces_dq(). More... | |
double * | user_ExtForces_dqd (double PxF[4], double d_PxF[4], double RxF[4][4], double d_RxF[4][4], double VxF[4], double d_VxF[4], double OMxF[4], double d_OMxF[4], double AxF[4], double d_AxF[4], double OMPxF[4], double d_OMPxF[4], MbsData *s, double tsim, int i_force, int i_joint) |
Compute the partial derivative of an user-specified external force with respect to a generalized velocity. More... | |
double * | user_call_ExtForces_dqd (double PxF[4], double d_PxF[4], double RxF[4][4], double d_RxF[4][4], double VxF[4], double d_VxF[4], double OMxF[4], double d_OMxF[4], double AxF[4], double d_AxF[4], double OMPxF[4], double d_OMPxF[4], MbsData *s, double tsim, int i_force, int i_joint) |
Module redirection for user function, see user_ExtForces_dqd(). More... | |
double * | user_ExtForces_dqdd (double PxF[4], double d_PxF[4], double RxF[4][4], double d_RxF[4][4], double VxF[4], double d_VxF[4], double OMxF[4], double d_OMxF[4], double AxF[4], double d_AxF[4], double OMPxF[4], double d_OMPxF[4], MbsData *s, double tsim, int i_force, int i_joint) |
Compute the partial derivative of an user-specified external force with respect to a generalized acceleration. More... | |
double * | user_call_ExtForces_dqdd (double PxF[4], double d_PxF[4], double RxF[4][4], double d_RxF[4][4], double VxF[4], double d_VxF[4], double OMxF[4], double d_OMxF[4], double AxF[4], double d_AxF[4], double OMPxF[4], double d_OMPxF[4], MbsData *s, double tsim, int i_force, int i_joint) |
Module redirection for user function, see user_ExtForces_dqdd(). More... | |
double * | user_ExtForces_dp (double PxF[4], double d_PxF[4], double RxF[4][4], double d_RxF[4][4], double VxF[4], double d_VxF[4], double OMxF[4], double d_OMxF[4], double AxF[4], double d_AxF[4], double OMPxF[4], double d_OMPxF[4], MbsData *s, double tsim, int i_force, int i_joint) |
Compute the partial derivative of an user-specified external force with respect to a specific parameter. More... | |
double * | user_call_ExtForces_dp (double PxF[4], double d_PxF[4], double RxF[4][4], double d_RxF[4][4], double VxF[4], double d_VxF[4], double OMxF[4], double d_OMxF[4], double AxF[4], double d_AxF[4], double OMPxF[4], double d_OMPxF[4], MbsData *s, double tsim, int i_force) |
Module redirection for user function, see user_ExtForces_dp(). More... | |
int | mbs_call_cons_hJ (double *h, double **Jac, MbsData *s, double tsim) |
Symbolic constraints function declaration. More... | |
void | mbs_cons_hJ (double *h, double **Jac, MbsData *s, double tsim) |
Symbolic constraints function, see mbs_call_cons_hJ(). More... | |
void | mbs_invdyna (double *Qq, MbsData *s, double tsim) |
Symbolic inverse dynamic function, see mbs_call_invdyna(). More... | |
int | mbs_call_cons_jdqd (double *Jdqd, MbsData *s, double tsim) |
Symbolic jdqd function declaration. More... | |
void | mbs_cons_jdqd (double *Jdqd, MbsData *s, double tsim) |
Symbolic jdqd function, see mbs_call_cons_jdqd(). More... | |
int | mbs_call_link (double **frc, double **trq, double *Flnk, double *Z, double *Zd, MbsData *s, double tsim) |
Symbolic link forces function declaration. More... | |
void | mbs_link (double **frc, double **trq, double *Flnk, double *Z, double *Zd, MbsData *s, double tsim) |
Symbolic link forces function, see mbs_call_link(). More... | |
int | mbs_call_link3D (double **frc, double **trq, MbsData *s, double tsim) |
Symbolic link 3D forces function declaration. More... | |
void | mbs_link3D (double **frc, double **trq, MbsData *s, double tsim) |
Symbolic link3D forces function, see mbs_call_link3D(). More... | |
int | mbs_call_extforces (double **frc, double **trq, MbsData *s, double tsim) |
Symbolic external forces function declaration. More... | |
void | mbs_extforces (double **frc, double **trq, MbsData *s, double tsim) |
Symbolic external forces function, see mbs_call_extforces(). More... | |
int | mbs_call_accelred (MbsData *s, double tsim) |
Symbolic reduced acceleration function declaration. More... | |
int | mbs_accelred (MbsData *s, double tsim) |
Symbolic reduced acceleration function, see mbs_call_accelred(). More... | |
int | mbs_call_gensensor (MbsSensor *sens, MbsData *s, int isens) |
Declaration of the symbolic function computing all fields of a sensor located at a body origin. More... | |
void | mbs_gensensor (MbsSensor *sens, MbsData *s, int isens) |
Symbolic sensor computation function, see mbs_call_sensor(). More... | |
int | mbs_check_symbolic (MbsData *s) |
Declaration of the generated file checking coherence with the MbsData. More... | |
int | mbs_call_check_symbolic (MbsData *s) |
Call the symbolic checking function, see mbs_check_symbolic(). More... | |
int | mbs_call_sensor (MbsSensor *sens, MbsData *s, int isens) |
Declaration of the symbolic function computing all fields of a sensor. More... | |
void | mbs_sensor (MbsSensor *sens, MbsData *s, int isens) |
Symbolic sensor computation function, see mbs_call_sensor(). More... | |
int | mbs_call_invdyna (double *Qq, MbsData *s, double tsim) |
Symbolic inverse dynamic function declaration. More... | |
int | mbs_call_invdynared_dq (MbsData *s, double tsim) |
Compute the stiffness matrix of the system. More... | |
int | mbs_invdynared_dq (MbsData *s, double tsim) |
Symbolic function, see mbs_call_invdynared_dq(). More... | |
int | mbs_call_invdynared_dqd (MbsData *s, double tsim) |
Compute the damping matrix of the system. More... | |
int | mbs_invdynared_dqd (MbsData *s, double tsim) |
Symbolic function, see mbs_call_invdynared_dqd(). More... | |
int | mbs_call_invdynared_dqdd (MbsData *s, double tsim) |
Compute the reduced mass matrix of the system. More... | |
int | mbs_invdynared_dqdd (MbsData *s, double tsim) |
Symbolic function, see mbs_call_invdynared_dqdd(). More... | |
int | mbs_call_invdyna_dp (MbsData *s, double tsim) |
Compute the tangeant matrix of the system to arbitrary parameters. More... | |
int | mbs_invdynared_dp (MbsData *s, double tsim) |
Symbolic function, see mbs_call_invdynared_dp(). More... | |
int | mbs_call_dirdyna (double **M, double *c, MbsData *s, double tsim) |
Symbolic direct dynamic function declaration. More... | |
void | mbs_dirdyna (double **M, double *c, MbsData *s, double tsim) |
Symbolic direct dynamic function, see mbs_call_dirdyna(). More... | |
Declaration of functions that are project dependent.
It consists in user and symbolic functions.
(c) Universite catholique de Louvain
int mbs_accelred | ( | MbsData * | s, |
double | tsim | ||
) |
Symbolic reduced acceleration function, see mbs_call_accelred().
int mbs_call_accelred | ( | MbsData * | s, |
double | tsim | ||
) |
Symbolic reduced acceleration function declaration.
The arguments are the same for the module redirection function mbs_call_accelred() and the generated symbolic function mbs_accelred().
[in,out] | s | The MbsData structure of the model. |
[in] | tsim | The current time. |
int mbs_call_check_symbolic | ( | MbsData * | s | ) |
Call the symbolic checking function, see mbs_check_symbolic().
Only the number of elements are checked, if topology has changed (at constant number of elements) no error is detected.
[in,out] | s | The MbsData structure of the model, MbsData::flag_stop is raised in case of error. |
int mbs_call_cons_hJ | ( | double * | h, |
double ** | Jac, | ||
MbsData * | s, | ||
double | tsim | ||
) |
Symbolic constraints function declaration.
The arguments are the same for the module redirection function mbs_call_cons_hJ() and the generated symbolic function mbs_cons_hJ().
[out] | h | The loops constraint vector, see MbsAux::h. |
[out] | Jac | The Jacobian of loops constraint vector, see MbsAux::Jac. |
[in] | s | The MbsData structure of the model. |
[in] | tsim | The current time. |
int mbs_call_cons_jdqd | ( | double * | Jdqd, |
MbsData * | s, | ||
double | tsim | ||
) |
Symbolic jdqd function declaration.
The arguments are the same for the module redirection function mbs_call_cons_jdqd() and the generated symbolic function mbs_cons_jdqd(). However the return differs.
[out] | Jdqd | The jdqd term of loops constraint, see MbsAux::jdqd. |
[in] | s | The MbsData structure of the model. |
[in] | tsim | The current time. |
int mbs_call_dirdyna | ( | double ** | M, |
double * | c, | ||
MbsData * | s, | ||
double | tsim | ||
) |
Symbolic direct dynamic function declaration.
The arguments are the same for the module redirection function mbs_call_dirdyna() and the generated symbolic function mbs_dirdyna(). However the return differs.
[out] | M | The mass matrix of the model, see MbsAux::M. |
[out] | c | The non-linear components of the equation of the model, see MbsAux::c. |
[in,out] | s | The MbsData structure of the model. |
[in] | tsim | The current time. |
int mbs_call_extforces | ( | double ** | frc, |
double ** | trq, | ||
MbsData * | s, | ||
double | tsim | ||
) |
Symbolic external forces function declaration.
The arguments are the same for the module redirection function mbs_call_extforces() and the generated symbolic function mbs_extforces(). However the return differs.
[out] | frc | Components of the resultant external forces, see MbsData::frc. |
[out] | trq | Components of the resultant external torquess, see MbsData::trc. |
[in] | s | The MbsData structure of the model. |
[in] | tsim | The current time. |
Declaration of the symbolic function computing all fields of a sensor located at a body origin.
The arguments are the same for the module redirection function mbs_call_gensensor() and the generated symbolic function mbs_gensensor(). However the return differs.
[in,out] | sens | Pointer to the MbsSensor structure to compute. |
[in] | s | pointer to the MbsData structure of the model related to the sensor. |
[in] | isens | the ID of the sensor, for Force sensor the id has to be incremented by MbsData::Nsensor. |
int mbs_call_invdyna | ( | double * | Qq, |
MbsData * | s, | ||
double | tsim | ||
) |
Symbolic inverse dynamic function declaration.
The arguments are the same for the module redirection function mbs_call_invdyna() and the generated symbolic function mbs_invdyna(). However the return differs.
[out] | The dynamic vector of the model, see MbsAux::phi. | |
[in,out] | s | The MbsData structure of the model. |
[in] | tsim | The current time. |
int mbs_call_invdyna_dp | ( | MbsData * | s, |
double | tsim | ||
) |
Compute the tangeant matrix of the system to arbitrary parameters.
The tangeant matrix is stored in MbsData::mbs_dp->P.
[in,out] | s | pointer to the MbsData structure of the model |
[in] | tsim | the current time of the simulation. |
int mbs_call_invdynared_dq | ( | MbsData * | s, |
double | tsim | ||
) |
Compute the stiffness matrix of the system.
The stiffness matrix is stored in MbsData::mbs_dp->K.
[in,out] | s | pointer to the MbsData structure of the model |
[in] | tsim | the current time of the simulation. |
int mbs_call_invdynared_dqd | ( | MbsData * | s, |
double | tsim | ||
) |
Compute the damping matrix of the system.
The damping matrix is stored in MbsData::mbs_dp->G.
[in,out] | s | pointer to the MbsData structure of the model |
[in] | tsim | the current time of the simulation. |
int mbs_call_invdynared_dqdd | ( | MbsData * | s, |
double | tsim | ||
) |
Compute the reduced mass matrix of the system.
The mass matrix is stored in MbsData::mbs_dp->M.
[in,out] | s | pointer to the MbsData structure of the model |
[in] | tsim | the current time of the simulation. |
int mbs_call_link | ( | double ** | frc, |
double ** | trq, | ||
double * | Flnk, | ||
double * | Z, | ||
double * | Zd, | ||
MbsData * | s, | ||
double | tsim | ||
) |
Symbolic link forces function declaration.
The arguments are the same for the module redirection function mbs_call_link() and the generated symbolic function mbs_link(). However the return differs.
[out] | frc | Components of the resultant external forces, see MbsData::frc. |
[out] | trq | Components of the resultant external torquess, see MbsData::trc. |
[out] | Flnk | The forces in the links, see MbsData::Fl |
[out] | Z | The distances between of the points the links, see MbsData::Z |
[out] | Zd | The velocities between of the points the links, see MbsData::Zd |
[in] | s | The MbsData structure of the model. |
[in] | tsim | The current time. |
int mbs_call_link3D | ( | double ** | frc, |
double ** | trq, | ||
MbsData * | s, | ||
double | tsim | ||
) |
Symbolic link 3D forces function declaration.
The arguments are the same for the module redirection function mbs_call_link3D() and the generated symbolic function mbs_link3D(). However the return differs.
[out] | frc | Components of the resultant external forces, see MbsData::frc. |
[out] | trq | Components of the resultant external torquess, see MbsData::trc. |
[in] | s | The MbsData structure of the model. |
[in] | tsim | The current time. |
Declaration of the symbolic function computing all fields of a sensor.
The function can be called for both "classical" and "external force" sensors.
The arguments are the same for the module redirection function mbs_call_sensor() and the generated symbolic function mbs_sensor(). However the return differs.
[in,out] | sens | Pointer to the MbsSensor structure to compute. |
[in] | s | pointer to the MbsData structure of the model related to the sensor. |
[in] | isens | the ID of the sensor, for Force sensor the id has to be incremented by MbsData::Nsensor. |
int mbs_check_symbolic | ( | MbsData * | s | ) |
Declaration of the generated file checking coherence with the MbsData.
Only the number of elements are checked, if topology has changed (at constant number of elements) no error is detected.
[in] | s | Pointer to the loaded mbs to be compare with symbolic files. |
void mbs_cons_hJ | ( | double * | h, |
double ** | Jac, | ||
MbsData * | s, | ||
double | tsim | ||
) |
Symbolic constraints function, see mbs_call_cons_hJ().
The symbolic function does not return any value.
void mbs_cons_jdqd | ( | double * | Jdqd, |
MbsData * | s, | ||
double | tsim | ||
) |
Symbolic jdqd function, see mbs_call_cons_jdqd().
The symbolic function does not return any value.
void mbs_dirdyna | ( | double ** | M, |
double * | c, | ||
MbsData * | s, | ||
double | tsim | ||
) |
Symbolic direct dynamic function, see mbs_call_dirdyna().
The symbolic function does not return any value.
void mbs_extforces | ( | double ** | frc, |
double ** | trq, | ||
MbsData * | s, | ||
double | tsim | ||
) |
Symbolic external forces function, see mbs_call_extforces().
Symbolic sensor computation function, see mbs_call_sensor().
The symbolic function does not return any value.
void mbs_get_project_functions | ( | MbsData * | mbs_data | ) |
loads the project function into the pointers defined in MbsData::fct
[in,out] | mbs_data | the MbsData structure of the model |
void mbs_invdyna | ( | double * | Qq, |
MbsData * | s, | ||
double | tsim | ||
) |
Symbolic inverse dynamic function, see mbs_call_invdyna().
The symbolic function does not return any value.
int mbs_invdynared_dp | ( | MbsData * | s, |
double | tsim | ||
) |
Symbolic function, see mbs_call_invdynared_dp().
int mbs_invdynared_dq | ( | MbsData * | s, |
double | tsim | ||
) |
Symbolic function, see mbs_call_invdynared_dq().
int mbs_invdynared_dqd | ( | MbsData * | s, |
double | tsim | ||
) |
Symbolic function, see mbs_call_invdynared_dqd().
int mbs_invdynared_dqdd | ( | MbsData * | s, |
double | tsim | ||
) |
Symbolic function, see mbs_call_invdynared_dqdd().
void mbs_link | ( | double ** | frc, |
double ** | trq, | ||
double * | Flnk, | ||
double * | Z, | ||
double * | Zd, | ||
MbsData * | s, | ||
double | tsim | ||
) |
Symbolic link forces function, see mbs_call_link().
void mbs_link3D | ( | double ** | frc, |
double ** | trq, | ||
MbsData * | s, | ||
double | tsim | ||
) |
Symbolic link3D forces function, see mbs_call_link3D().
Symbolic sensor computation function, see mbs_call_sensor().
The symbolic function does not return any value.
int user_call_cons_hJ | ( | double * | h, |
double ** | Jac, | ||
MbsData * | s, | ||
double | tsim | ||
) |
Module redirection for user joint force function, see user_cons_hJ() however the return differs.
int user_call_cons_J_accelred | ( | MbsData * | s, |
double | tsim | ||
) |
Module redirection for accelred user-specified constraints function, see user_cons_J_accelred().
int user_call_cons_jdqd | ( | double * | jdqd, |
MbsData * | s, | ||
double | tsim | ||
) |
Module redirection for jdqd term of the user-specified constraints, see user_cons_jdqd() however the return differs.
int user_call_Derivative | ( | MbsData * | s | ) |
Module redirection for the time derivative of the user state variables, see user_Derivative() however the return differs.
Module redirection for user own dirdyn finish function, see user_dirdyn_finish().
Module redirection for user own dirdyn initialization function, see user_dirdyn_init().
Module redirection for user own dirdyn loop function, see user_dirdyn_loop().
int user_call_DrivenJoints | ( | MbsData * | s, |
double | tsim | ||
) |
Module redirection for the computation of driven joints, see user_DrivenJoints() however the return differs.
Module redirection for user own equil finish function, see user_equil_finish().
void user_call_equil_fxe | ( | MbsData * | mbs_data, |
double * | f | ||
) |
Module redirection for user own equilibrium equations function, see user_equil_fxe().
Module redirection for user own equilibrium initialization function, see user_equil_init().
Module redirection for user own equil loop function, see user_equil_loop().
double* user_call_ExtForces | ( | double | PxF[4], |
double | RxF[4][4], | ||
double | VxF[4], | ||
double | OMxF[4], | ||
double | AxF[4], | ||
double | OMPxF[4], | ||
MbsData * | s, | ||
double | tsim, | ||
int | ixF | ||
) |
Module redirection for the computation of external forces, see user_DrivenJoints().
double* user_call_ExtForces_dp | ( | double | PxF[4], |
double | d_PxF[4], | ||
double | RxF[4][4], | ||
double | d_RxF[4][4], | ||
double | VxF[4], | ||
double | d_VxF[4], | ||
double | OMxF[4], | ||
double | d_OMxF[4], | ||
double | AxF[4], | ||
double | d_AxF[4], | ||
double | OMPxF[4], | ||
double | d_OMPxF[4], | ||
MbsData * | s, | ||
double | tsim, | ||
int | i_force | ||
) |
Module redirection for user function, see user_ExtForces_dp().
double* user_call_ExtForces_dq | ( | double | PxF[4], |
double | d_PxF[4], | ||
double | RxF[4][4], | ||
double | d_RxF[4][4], | ||
double | VxF[4], | ||
double | d_VxF[4], | ||
double | OMxF[4], | ||
double | d_OMxF[4], | ||
double | AxF[4], | ||
double | d_AxF[4], | ||
double | OMPxF[4], | ||
double | d_OMPxF[4], | ||
MbsData * | s, | ||
double | tsim, | ||
int | i_force, | ||
int | i_joint | ||
) |
Module redirection for user function, see user_call_ExtForces_dq().
double* user_call_ExtForces_dqd | ( | double | PxF[4], |
double | d_PxF[4], | ||
double | RxF[4][4], | ||
double | d_RxF[4][4], | ||
double | VxF[4], | ||
double | d_VxF[4], | ||
double | OMxF[4], | ||
double | d_OMxF[4], | ||
double | AxF[4], | ||
double | d_AxF[4], | ||
double | OMPxF[4], | ||
double | d_OMPxF[4], | ||
MbsData * | s, | ||
double | tsim, | ||
int | i_force, | ||
int | i_joint | ||
) |
Module redirection for user function, see user_ExtForces_dqd().
double* user_call_ExtForces_dqdd | ( | double | PxF[4], |
double | d_PxF[4], | ||
double | RxF[4][4], | ||
double | d_RxF[4][4], | ||
double | VxF[4], | ||
double | d_VxF[4], | ||
double | OMxF[4], | ||
double | d_OMxF[4], | ||
double | AxF[4], | ||
double | d_AxF[4], | ||
double | OMPxF[4], | ||
double | d_OMPxF[4], | ||
MbsData * | s, | ||
double | tsim, | ||
int | i_force, | ||
int | i_joint | ||
) |
Module redirection for user function, see user_ExtForces_dqdd().
Module redirection for user own dirdyn finish function, see user_dirdyn_finish().
Module redirection for user own dirdyn initialization function, see user_dirdyn_init().
Module redirection for user own dirdyn loop function, see user_dirdyn_loop().
double* user_call_JointForces | ( | MbsData * | s, |
double | tsim | ||
) |
Module redirection for user joint force function, see user_JointForces().
double* user_call_JointForces_dp | ( | MbsData * | mbs_data, |
double | tsim | ||
) |
Module redirection for user function, see user_JointForces_dp().
double* user_call_JointForces_dq | ( | MbsData * | mbs_data, |
double | tsim, | ||
int | ixJ | ||
) |
Module redirection for user function, see user_JointForces_dq().
double* user_call_JointForces_dqd | ( | MbsData * | mbs_data, |
double | tsim, | ||
int | ixJ | ||
) |
Module redirection for user function, see user_JointForces_dqd().
double* user_call_JointForces_dqdd | ( | MbsData * | mbs_data, |
double | tsim, | ||
int | ixJ | ||
) |
Module redirection for user function, see user_call_JointForces_dqdd().
void user_call_joystick_axes | ( | MbsData * | mbs_data, |
Simu_realtime * | realtime, | ||
int | nb_joysticks | ||
) |
void user_call_joystick_buttons | ( | MbsData * | mbs_data, |
int | buttonID | ||
) |
void user_call_keyboard | ( | MbsData * | mbs_data, |
Simu_realtime * | realtime, | ||
int | cur_t_usec, | ||
const Uint8 * | keystates | ||
) |
double* user_call_Link3DForces | ( | double | PxF[4], |
double | RxF[4][4], | ||
double | VxF[4], | ||
double | OMxF[4], | ||
double | AxF[4], | ||
double | OMPxF[4], | ||
MbsData * | s, | ||
double | tsim, | ||
int | ixF | ||
) |
Module redirection for user link 3D function, see user_Link3DForces().
double* user_call_Link3DForces_dp | ( | double | PxF[4], |
double | d_PxF[4], | ||
double | RxF[4][4], | ||
double | d_RxF[4][4], | ||
double | VxF[4], | ||
double | d_VxF[4], | ||
double | OMxF[4], | ||
double | d_OMxF[4], | ||
double | AxF[4], | ||
double | d_AxF[4], | ||
double | OMPxF[4], | ||
double | d_OMPxF[4], | ||
MbsData * | s, | ||
double | tsim, | ||
int | i_link3d | ||
) |
Module redirection for user function, see user_Link3DForces_dp().
double* user_call_Link3DForces_dq | ( | double | PxF[4], |
double | d_PxF[4], | ||
double | RxF[4][4], | ||
double | d_RxF[4][4], | ||
double | VxF[4], | ||
double | d_VxF[4], | ||
double | OMxF[4], | ||
double | d_OMxF[4], | ||
double | AxF[4], | ||
double | d_AxF[4], | ||
double | OMPxF[4], | ||
double | d_OMPxF[4], | ||
MbsData * | s, | ||
double | tsim, | ||
int | i_link3d, | ||
int | i_param | ||
) |
Module redirection for user function, see user_Link3DForces_dq().
double* user_call_Link3DForces_dqd | ( | double | PxF[4], |
double | d_PxF[4], | ||
double | RxF[4][4], | ||
double | d_RxF[4][4], | ||
double | VxF[4], | ||
double | d_VxF[4], | ||
double | OMxF[4], | ||
double | d_OMxF[4], | ||
double | AxF[4], | ||
double | d_AxF[4], | ||
double | OMPxF[4], | ||
double | d_OMPxF[4], | ||
MbsData * | s, | ||
double | tsim, | ||
int | i_link3d, | ||
int | i_param | ||
) |
Module redirection for user function, see user_Link3DForces_dqd().
double* user_call_Link3DForces_dqdd | ( | double | PxF[4], |
double | d_PxF[4], | ||
double | RxF[4][4], | ||
double | d_RxF[4][4], | ||
double | VxF[4], | ||
double | d_VxF[4], | ||
double | OMxF[4], | ||
double | d_OMxF[4], | ||
double | AxF[4], | ||
double | d_AxF[4], | ||
double | OMPxF[4], | ||
double | d_OMPxF[4], | ||
MbsData * | s, | ||
double | tsim, | ||
int | i_link3d, | ||
int | i_param | ||
) |
Module redirection for user function, see user_Link3DForces_dqdd().
double user_call_LinkForces | ( | double | Z, |
double | Zd, | ||
MbsData * | s, | ||
double | tsim, | ||
int | ilnk | ||
) |
Module redirection for user link force function, see user_LinkForces().
double user_call_LinkForces_dp | ( | double | Z, |
double | d_Z, | ||
double | Zd, | ||
double | d_Zd, | ||
MbsData * | mbs_data, | ||
double | tsim, | ||
int | i_link | ||
) |
Module redirection for user function, see user_LinkForces_dp().
double user_call_LinkForces_dq | ( | double | Z, |
double | d_Z, | ||
double | Zd, | ||
double | d_Zd, | ||
MbsData * | mbs_data, | ||
double | tsim, | ||
int | i_link, | ||
int | i_param | ||
) |
Module redirection for user function, see user_LinkForces_dq().
double user_call_LinkForces_dqd | ( | double | Z, |
double | d_Z, | ||
double | Zd, | ||
double | d_Zd, | ||
MbsData * | mbs_data, | ||
double | tsim, | ||
int | i_link, | ||
int | i_param | ||
) |
Module redirection for user function, see user_LinkForces_dqd().
double user_call_LinkForces_dqdd | ( | double | Z, |
double | d_Z, | ||
double | Zd, | ||
double | d_Zd, | ||
MbsData * | mbs_data, | ||
double | tsim, | ||
int | i_link, | ||
int | i_param | ||
) |
Module redirection for user function, see user_LinkForces_dqdd().
void user_call_realtime_options | ( | MbsData * | mbs_data, |
Realtime_option * | options | ||
) |
void user_call_realtime_plot | ( | MbsData * | mbs_data | ) |
void user_call_realtime_visu | ( | MbsData * | mbs_data, |
int | nb_models, | ||
int * | nb_q, | ||
double ** | q_vec | ||
) |
Redirection to the user-specified user function of realtime visualization.
If the user function is not defined (NULL function pointer) the default behaviour is to set the current joint coordinates to the visualisation pipe. The default behaviour is only called if a single animated model is loaded.
[in] | mbs_data | The multibody system related to the visualisation. |
[in] | nb_models | The number of the system in the visualusation. |
[in] | nb_q | Number of element to be provided for each system. |
[in] | nb_q | vec The pipe containing the value provided to each system. |
void user_cons_hJ | ( | double * | h, |
double ** | Jac, | ||
MbsData * | s, | ||
double | tsim | ||
) |
Compute the user-specified constraint vector and Jacobian.
The arguments are the same for the module redirection function user_call_cons_hJ() and the user filled function user_cons_hJ(). However the return differs.
[out] | h | The user constraint vector, see MbsAux::huserc. |
[out] | Jac | The Jacobian of user constraint vector, see MbsAux::Juserc. |
[in] | s | The MbsData structure of the model. |
[in] | tsim | the current time of the simulation |
The only field that should be incremented is the MbsData::Qq at the indexes of MbsData::qc
int user_cons_J_accelred | ( | MbsData * | s, |
double | tsim | ||
) |
Close the user-specified constraints and compute the Jacobian of the constraints vector.
This function is only required for accelred symbolic file.
The constraints must be solved by the user, inside this function. The constraints are solved by modifying the value MbsData::q located at the indices given by MbsData::qv.
The Jacobian matrix to be filled is MbsData::jac_user (already allocated with index starting at 1). The Jacobian must be computed in the constraint solved configuration.
The arguments are the same for the module redirection function user_call_cons_J_accelred() and the user filled function user_cons_J_accelred().
[in,out] | s | The MbsData structure of the model. The only values that should be modified are the located in the arrays MbsData::jac_user and MbsData::q. |
[in] | tsim | the current time of the simulation |
void user_cons_jdqd | ( | double * | jdqd, |
MbsData * | s, | ||
double | tsim | ||
) |
Compute the jdqd term of the user-specified constraints.
The arguments are the same for the module redirection function user_call_cons_jdqd() and the user filled function user_cons_jdqd().
[out] | jdqd | The jdqd term of loops constraint, see MbsAux::jdqduserc. |
[in] | s | The MbsData structure of the model. |
[in] | tsim | the current time of the simulation |
void user_Derivative | ( | MbsData * | s | ) |
Compute the time derivative of the user state variables defined in the user model.
The arguments are the same for the module redirection function user_call_Derivative() and the user filled function user_Derivative(). However the return differs.
[in,out] | s | The MbsData structure of the model. The field MbsData::uxd must be filled with the derivative values. |
user own loop functions
This function is called a every time step. Warning: if the used integrator is multi-steps, user_dirdyn_loop is only called once: i.e. at the real time step (and not internal time steps)
[in,out] | mbs_data | data structure of the model |
[in,out] | mbs_dd | general structure of the direct dynamic module (for advanced users) |
For beginners, it is advised to only use the MbsData structure. The field MbsDirdyn is provided for more advanced users.
void user_DrivenJoints | ( | MbsData * | s, |
double | tsim | ||
) |
Compute the positions, velocities and acceleration of driven joint.
The arguments are the same for the module redirection function user_call_DrivenJoints() and the user filled function user_DrivenJoints(). However the return differs.
[in,out] | s | the MbsData structure of the model on which the driven joint are computed. The only fields that should be updated are MbsData::q, MbsData::qd and MbsData::qdd at the indexes MbsData::qc. |
[in] | tsim | the current time of the simulation |
void user_equil_fxe | ( | MbsData * | mbs_data, |
double * | f | ||
) |
user own implementation of added equilibrium equations Fxe Necessary to express equilibrium f(x)=0
[in] | mbs_data | data structure of the model |
[out] | f | vectors which contains the added equibrium functions : =f(xe, ... ) |
user own initialization functions
Robotran - MBsysC
Template file for equilibrium module
This files enable the user to call custom at specific places in the time simulation. It is a template file that can be edited by the user.
(c) Universite catholique de Louvain
[in,out] | mbs_data | data structure of the model |
[in,out] | mbs_equil | general structure of the equilibrium module (for advance users) |
For beginners, it is advised to only use the MbsData structure. The field MbsEquil is provided for more advance users.
double* user_ExtForces | ( | double | PxF[4], |
double | RxF[4][4], | ||
double | VxF[4], | ||
double | OMxF[4], | ||
double | AxF[4], | ||
double | OMPxF[4], | ||
MbsData * | s, | ||
double | tsim, | ||
int | ixF | ||
) |
Compute an user-specified external force.
[in] | PxF | position vector (index starting at 1) of the force sensor expressed in the inertial frame: ![]() |
[in] | RxF | rotation matrix (index starting at 1) from the inertial frame to the force sensor frame: ![]() |
[in] | VxF | velocity vector (index starting at 1) of the force sensor expressed in the inertial frame: ![]() |
[in] | OMxF | angular velocity vector (index starting at 1) of the force sensor expressed in the inertial frame: ![]() |
[in] | AxF | acceleration vector (index starting at 1) of the force sensor expressed in the inertial frame: ![]() |
[in] | OMPxF | angular acceleration vector (index starting at 1) of the force sensor expressed in the inertial frame: ![]() |
[in,out] | s | the MbsData structure of the model on which the force is computed. Only the values in the array MbsData::SWr at the row ixF should be modified. |
[in] | tsim | the current time of the simulation |
[in] | ixF | the ID identifying the computed force sensor. |
The content of the returned vector Swr is [Fx; Fy; Fz; Mx; My; Mz; dxF]:
double* user_ExtForces_dp | ( | double | PxF[4], |
double | d_PxF[4], | ||
double | RxF[4][4], | ||
double | d_RxF[4][4], | ||
double | VxF[4], | ||
double | d_VxF[4], | ||
double | OMxF[4], | ||
double | d_OMxF[4], | ||
double | AxF[4], | ||
double | d_AxF[4], | ||
double | OMPxF[4], | ||
double | d_OMPxF[4], | ||
MbsData * | s, | ||
double | tsim, | ||
int | i_force, | ||
int | i_joint | ||
) |
Compute the partial derivative of an user-specified external force with respect to a specific parameter.
[in] | PxF | position vector (index starting at 1) of the force sensor expressed in the inertial frame: ![]() |
[in] | d_PxF | the partial derivative of PxF with respect to the parameter i_param: ![]() |
[in] | RxF | rotation matrix (index starting at 1) from the inertial frame to the force sensor frame: ![]() |
[in] | d_RxF | the partial derivative of matrix RxF with respect to the parameter i_param: ![]() |
[in] | VxF | velocity vector (index starting at 1) of the force sensor expressed in the inertial frame: ![]() |
[in] | d_VxF | the partial derivative of VxF with respect to the parameter i_param: ![]() |
[in] | OMxF | angular velocity vector (index starting at 1) of the force sensor expressed in the inertial frame: ![]() |
[in] | d_OMxF | the partial derivative of OMxF with respect to the parameter i_param: ![]() |
[in] | AxF | acceleration vector (index starting at 1) of the force sensor expressed in the inertial frame: ![]() |
[in] | d_AxF | the partial derivative of AxF with respect to the parameter i_param: ![]() |
[in] | OMPxF | angular acceleration vector (index starting at 1) of the force sensor expressed in the inertial frame: ![]() |
[in] | d_OMPxF | the partial derivative of OMPxF with respect to the parameter i_param: ![]() |
[in,out] | s | the MbsData structure of the model on which the force is computed. |
[in] | tsim | the current time of the simulation |
[in] | i_force | the ID identifying the computed force sensor. |
The content of the returned vector dSWr_dp is [dF_dp; dMx_dp; ddxF_dp]:
double* user_ExtForces_dq | ( | double | PxF[4], |
double | d_PxF[4], | ||
double | RxF[4][4], | ||
double | d_RxF[4][4], | ||
double | VxF[4], | ||
double | d_VxF[4], | ||
double | OMxF[4], | ||
double | d_OMxF[4], | ||
double | AxF[4], | ||
double | d_AxF[4], | ||
double | OMPxF[4], | ||
double | d_OMPxF[4], | ||
MbsData * | s, | ||
double | tsim, | ||
int | i_force, | ||
int | i_joint | ||
) |
Compute the partial derivative of an user-specified external force with respect to a generalized coordinate.
[in] | PxF | position vector (index starting at 1) of the force sensor expressed in the inertial frame: ![]() |
[in] | d_PxF | the partial derivative of PxF with respect to the generalized coordinate of joint i_joint: ![]() |
[in] | RxF | rotation matrix (index starting at 1) from the inertial frame to the force sensor frame: ![]() |
[in] | d_RxF | the partial derivative of matrix RxF with respect to the generalized coordinate of joint i_joint: ![]() |
[in] | VxF | velocity vector (index starting at 1) of the force sensor expressed in the inertial frame: ![]() |
[in] | d_VxF | the partial derivative of VxF with respect to the generalized coordinate of joint i_joint: ![]() |
[in] | OMxF | angular velocity vector (index starting at 1) of the force sensor expressed in the inertial frame: ![]() |
[in] | d_OMxF | the partial derivative of OMxF with respect to the generalized coordinate of joint i_joint: ![]() |
[in] | AxF | acceleration vector (index starting at 1) of the force sensor expressed in the inertial frame: ![]() |
[in] | d_AxF | the partial derivative of AxF with respect to the generalized coordinate of joint i_joint: ![]() |
[in] | OMPxF | angular acceleration vector (index starting at 1) of the force sensor expressed in the inertial frame: ![]() |
[in] | d_OMPxF | the partial derivative of OMPxF with respect to the generalized coordinate of joint i_joint: ![]() |
[in,out] | s | the MbsData structure of the model on which the force is computed. |
[in] | tsim | the current time of the simulation |
[in] | i_force | the ID identifying the computed force sensor. |
[in] | i_joint | the index of the generalized coordinate. |
The content of the returned vector dSWr_dq is [dF_dq; dMx_dq; ddxF_dq]:
double* user_ExtForces_dqd | ( | double | PxF[4], |
double | d_PxF[4], | ||
double | RxF[4][4], | ||
double | d_RxF[4][4], | ||
double | VxF[4], | ||
double | d_VxF[4], | ||
double | OMxF[4], | ||
double | d_OMxF[4], | ||
double | AxF[4], | ||
double | d_AxF[4], | ||
double | OMPxF[4], | ||
double | d_OMPxF[4], | ||
MbsData * | s, | ||
double | tsim, | ||
int | i_force, | ||
int | i_joint | ||
) |
Compute the partial derivative of an user-specified external force with respect to a generalized velocity.
[in] | PxF | position vector (index starting at 1) of the force sensor expressed in the inertial frame: ![]() |
[in] | d_PxF | the partial derivative of PxF with respect to the generalized velocity of joint i_joint: ![]() |
[in] | RxF | rotation matrix (index starting at 1) from the inertial frame to the force sensor frame: ![]() |
[in] | d_RxF | the partial derivative of matrix RxF with respect to the generalized velocity of joint i_joint: ![]() |
[in] | VxF | velocity vector (index starting at 1) of the force sensor expressed in the inertial frame: ![]() |
[in] | d_VxF | the partial derivative of VxF with respect to the generalized velocity of joint i_joint: ![]() |
[in] | OMxF | angular velocity vector (index starting at 1) of the force sensor expressed in the inertial frame: ![]() |
[in] | d_OMxF | the partial derivative of OMxF with respect to the generalized velocity of joint i_joint: ![]() |
[in] | AxF | acceleration vector (index starting at 1) of the force sensor expressed in the inertial frame: ![]() |
[in] | d_AxF | the partial derivative of AxF with respect to the generalized velocity of joint i_joint: ![]() |
[in] | OMPxF | angular acceleration vector (index starting at 1) of the force sensor expressed in the inertial frame: ![]() |
[in] | d_OMPxF | the partial derivative of OMPxF with respect to the generalized velocity of joint i_joint: ![]() |
[in,out] | s | the MbsData structure of the model on which the force is computed. |
[in] | tsim | the current time of the simulation |
[in] | i_force | the ID identifying the computed force sensor. |
[in] | i_joint | the index of the generalized velocity. |
The content of the returned vector dSWr_dqd is [dF_dqd; dMx_dqd; ddxF_dqd]:
double* user_ExtForces_dqdd | ( | double | PxF[4], |
double | d_PxF[4], | ||
double | RxF[4][4], | ||
double | d_RxF[4][4], | ||
double | VxF[4], | ||
double | d_VxF[4], | ||
double | OMxF[4], | ||
double | d_OMxF[4], | ||
double | AxF[4], | ||
double | d_AxF[4], | ||
double | OMPxF[4], | ||
double | d_OMPxF[4], | ||
MbsData * | s, | ||
double | tsim, | ||
int | i_force, | ||
int | i_joint | ||
) |
Compute the partial derivative of an user-specified external force with respect to a generalized acceleration.
[in] | PxF | position vector (index starting at 1) of the force sensor expressed in the inertial frame: ![]() |
[in] | d_PxF | the partial derivative of PxF with respect to the generalized velocity of joint i_joint: ![]() |
[in] | RxF | rotation matrix (index starting at 1) from the inertial frame to the force sensor frame: ![]() |
[in] | d_RxF | the partial derivative of matrix RxF with respect to the generalized velocity of joint i_joint: ![]() |
[in] | VxF | velocity vector (index starting at 1) of the force sensor expressed in the inertial frame: ![]() |
[in] | d_VxF | the partial derivative of VxF with respect to the generalized velocity of joint i_joint: ![]() |
[in] | OMxF | angular velocity vector (index starting at 1) of the force sensor expressed in the inertial frame: ![]() |
[in] | d_OMxF | the partial derivative of OMxF with respect to the generalized velocity of joint i_joint: ![]() |
[in] | AxF | acceleration vector (index starting at 1) of the force sensor expressed in the inertial frame: ![]() |
[in] | d_AxF | the partial derivative of AxF with respect to the generalized velocity of joint i_joint: ![]() |
[in] | OMPxF | angular acceleration vector (index starting at 1) of the force sensor expressed in the inertial frame: ![]() |
[in] | d_OMPxF | the partial derivative of OMPxF with respect to the generalized velocity of joint i_joint: ![]() |
[in,out] | s | the MbsData structure of the model on which the force is computed. |
[in] | tsim | the current time of the simulation |
[in] | i_force | the ID identifying the computed force sensor. |
[in] | i_joint | the index of the generalized velocity. |
The content of the returned vector dSWr_dqdd is [dF_dqdd; dMx_dqdd; ddxF_dqdd]:
void user_free | ( | MbsData * | mbs_data | ) |
User own freeing operations.
This function will automatically be called at the project freeing by mbs_delete_data() function. All memory allocated by the user (ie. in a user model) should be properly freed. Such memory may have been allocated in the user_load_post() function.
[in,out] | mbs_data | data structure of the model |
double* user_GenExtForces | ( | double | PxF[4], |
double | RxF[4][4], | ||
double | VxF[4], | ||
double | OMxF[4], | ||
double | AxF[4], | ||
double | OMPxF[4], | ||
MbsData * | s, | ||
double | tsim, | ||
int | iBody | ||
) |
double* user_JointForces | ( | MbsData * | s, |
double | tsim | ||
) |
Compute the user-specified joint force in all joint.
The arguments are the same for the module redirection function user_call_JointForces() and the user filled function user_JointForces().
[in,out] | The | MbsData structure of the model. The only values that should be modified are located MbsData::Qq. |
[in] | tsim | the current time of the simulation |
double* user_JointForces_dp | ( | MbsData * | mbs_data, |
double | tsim | ||
) |
Compute the derivative of the joint forces vector according to a specific parameter.
The only field that should be modified is the MbsData::derivative->dQq_dp at the row of ixP:
.
[in,out] | mbs_data | the MbsData structure of the model. |
[in] | tsim | the current time of the simulation |
double* user_JointForces_dq | ( | MbsData * | mbs_data, |
double | tsim, | ||
int | ixJ | ||
) |
Compute the derivative of the joint forces vector according to a generalized coordinate.
The only field that should be modified is the MbsData::derivative->dQq_dq at the row of ixJ:
.
[in,out] | mbs_data | the MbsData structure of the model. |
[in] | tsim | the current time of the simulation |
[in] | ixJ | The id of the generalized coordinate. |
double* user_JointForces_dqd | ( | MbsData * | mbs_data, |
double | tsim, | ||
int | ixJ | ||
) |
Compute the derivative of the joint forces vector according to a generalized velocity.
The only field that should be modified is the MbsData::derivative->dQq_dqd at the row of ixJ:
.
[in,out] | mbs_data | the MbsData structure of the model. |
[in] | tsim | the current time of the simulation |
[in] | ixJ | The id of the generalized coordinate. |
double* user_JointForces_dqdd | ( | MbsData * | mbs_data, |
double | tsim, | ||
int | ixJ | ||
) |
Compute the derivative of the joint forces vector according to a generalized acceleartion.
The only field that should be modified is the MbsData::derivative->dQq_dqdd at the row of ixJ:
.
[in,out] | mbs_data | the MbsData structure of the model. |
[in] | tsim | the current time of the simulation |
[in] | ixJ | The id of the generalized coordinate. |
double* user_Link3DForces | ( | double | PxF[4], |
double | RxF[4][4], | ||
double | VxF[4], | ||
double | OMxF[4], | ||
double | AxF[4], | ||
double | OMPxF[4], | ||
MbsData * | s, | ||
double | tsim, | ||
int | ixF | ||
) |
Compute an user-specified point to point force, with arbitrary line of action.
A 3D link force is attached from a body (called the parent body) to a second body (called children body). The parent and children bodies cannot be inverted as it change the definition of both the inputs arguments and outputs results.
For the documentation below, let:
The returned force/torque component are expressed in the frame [P] and applied on both parent and children body at the location of point "B".
[in] | PxF | The vector "AB" (index starting at 1) with components expressed in frame [P]. |
[in] | RxF | The rotation matrix (index starting at 1) such as [C] = RxF*[P]. |
[in] | VxF | The differential velocity vector (index starting at 1) with components expressed in frame [P]. The velocities are computed at the coordinates of point "M" linked to parent (Md_p), then linked to children (Md_c) body. The differential velocity vector is : Md_c - Md_p. |
[in] | OMxF | The differential angular velocity vector (index starting at 1) with components expressed in frame [P]. It is the difference between the parent angular velocity and the children angular velocity. |
[in] | AxF | The differential acceleration vector (index starting at 1) with components expressed in frame [P]. The accelerations are computed at the coordinates of point "M" linked to parent (Mdd_p), then linked to children (Mdd_c) body. The differential acceleration vector is : Mdd_c - Mdd_p. |
[in] | OMPxF | The differential angular acceleration vector (index starting at 1) with components expressed in frame [P]. It is the difference between the parent angular acceleration and the children angular acceleration. |
[in,out] | s | The MbsData structure of the model on which the force is computed. |
[in] | tsim | The current time of the simulation |
[in] | ixF | The ID identifying the computed link3D force. |
double* user_Link3DForces_dp | ( | double | PxF[4], |
double | d_PxF[4], | ||
double | RxF[4][4], | ||
double | d_RxF[4][4], | ||
double | VxF[4], | ||
double | d_VxF[4], | ||
double | OMxF[4], | ||
double | d_OMxF[4], | ||
double | AxF[4], | ||
double | d_AxF[4], | ||
double | OMPxF[4], | ||
double | d_OMPxF[4], | ||
MbsData * | s, | ||
double | tsim, | ||
int | i_link3d | ||
) |
Compute the partial derivative of a link3D forces with respect to a parameter.
[in] | PxF | The vector "AB" (index starting at 1) with components expressed in frame [P]. |
[in] | d_PxF | the partial derivative of PxF with respect to the generalized coordinate of joint i_joint: ![]() |
[in] | RxF | The rotation matrix (index starting at 1) such as [C] = Rxf*[P]. |
[in] | d_RxF | the partial derivative of matrix RxF with respect to the generalized coordinate of joint i_joint: ![]() |
[in] | VxF | The differential velocity vector (index starting at 1) with components expressed in frame [P]. The velocities are computed at the coordinates of point "M" linked to parent (Md_p), then linked to children (Md_c) body. The differential velocity vector is : Md_c - Md_p. |
[in] | d_VxF | the partial derivative of VxF with respect to the generalized coordinate of joint i_joint: ![]() |
[in] | OMxF | The differential angular velocity vector (index starting at 1) with components expressed in frame [P]. It is the difference between the parent angular velocity and the children angular velocity. |
[in] | d_OMxF | the partial derivative of OMxF with respect to the generalized coordinate of joint i_joint: ![]() |
[in] | AxF | The differential acceleration vector (index starting at 1) with components expressed in frame [P]. The accelerations are computed at the coordinates of point "M" linked to parent (Mdd_p), then linked to children (Mdd_c) body. The differential acceleration vector is : Mdd_c - Mdd_p. |
[in] | d_AxF | the partial derivative of AxF with respect to the generalized coordinate of joint i_joint: ![]() |
[in] | OMPxF | The differential angular acceleration vector (index starting at 1) with components expressed in frame [P]. It is the difference between the parent angular acceleration and the children angular acceleration. |
[in] | d_OMPxF | the partial derivative of OMPxF with respect to the generalized coordinate of joint i_joint: ![]() |
[in,out] | s | The MbsData structure of the model on which the force is computed. |
[in] | tsim | The current time of the simulation |
[in] | i_link3d | The ID identifying the computed link3D force. |
i_joint:
The content of the returned vector dSWr_link3d_dp is [dF_dq; dMx_dq; ddxF_dq]:Partial derivative of the application point local coordinates vector (expressed in the body-fixed frame): ddxF_dq =
In 1D, it gives:
.
double* user_Link3DForces_dq | ( | double | PxF[4], |
double | d_PxF[4], | ||
double | RxF[4][4], | ||
double | d_RxF[4][4], | ||
double | VxF[4], | ||
double | d_VxF[4], | ||
double | OMxF[4], | ||
double | d_OMxF[4], | ||
double | AxF[4], | ||
double | d_AxF[4], | ||
double | OMPxF[4], | ||
double | d_OMPxF[4], | ||
MbsData * | s, | ||
double | tsim, | ||
int | i_link3d, | ||
int | i_param | ||
) |
Compute the partial derivative of a link3D forces with respect to a generalized coordinate.
[in] | PxF | The vector "AB" (index starting at 1) with components expressed in frame [P]. |
[in] | d_PxF | the partial derivative of PxF with respect to the generalized coordinate of joint i_joint: ![]() |
[in] | RxF | The rotation matrix (index starting at 1) such as [C] = Rxf*[P]. |
[in] | d_RxF | the partial derivative of matrix RxF with respect to the generalized coordinate of joint i_joint: ![]() |
[in] | VxF | The differential velocity vector (index starting at 1) with components expressed in frame [P]. The velocities are computed at the coordinates of point "M" linked to parent (Md_p), then linked to children (Md_c) body. The differential velocity vector is : Md_c - Md_p. |
[in] | d_VxF | the partial derivative of VxF with respect to the generalized coordinate of joint i_joint: ![]() |
[in] | OMxF | The differential angular velocity vector (index starting at 1) with components expressed in frame [P]. It is the difference between the parent angular velocity and the children angular velocity. |
[in] | d_OMxF | the partial derivative of OMxF with respect to the generalized coordinate of joint i_joint: ![]() |
[in] | AxF | The differential acceleration vector (index starting at 1) with components expressed in frame [P]. The accelerations are computed at the coordinates of point "M" linked to parent (Mdd_p), then linked to children (Mdd_c) body. The differential acceleration vector is : Mdd_c - Mdd_p. |
[in] | d_AxF | the partial derivative of AxF with respect to the generalized coordinate of joint i_joint: ![]() |
[in] | OMPxF | The differential angular acceleration vector (index starting at 1) with components expressed in frame [P]. It is the difference between the parent angular acceleration and the children angular acceleration. |
[in] | d_OMPxF | the partial derivative of OMPxF with respect to the generalized coordinate of joint i_joint: ![]() |
[in,out] | s | The MbsData structure of the model on which the force is computed. |
[in] | tsim | The current time of the simulation |
[in] | i_link3d | The ID identifying the computed link3D force |
[in] | i_param | The id of the parameter. |
i_joint:
The content of the returned vector dSWr_link3d_dq is [dF_dq; dMx_dq; ddxF_dq]:Partial derivative of the application point local coordinates vector (expressed in the body-fixed frame): ddxF_dq =
In 1D, it gives:
.
double* user_Link3DForces_dqd | ( | double | PxF[4], |
double | d_PxF[4], | ||
double | RxF[4][4], | ||
double | d_RxF[4][4], | ||
double | VxF[4], | ||
double | d_VxF[4], | ||
double | OMxF[4], | ||
double | d_OMxF[4], | ||
double | AxF[4], | ||
double | d_AxF[4], | ||
double | OMPxF[4], | ||
double | d_OMPxF[4], | ||
MbsData * | s, | ||
double | tsim, | ||
int | i_link3d, | ||
int | i_param | ||
) |
Compute the partial derivative of a link3D forces with respect to a generalized velocity.
[in] | PxF | The vector "AB" (index starting at 1) with components expressed in frame [P]. |
[in] | d_PxF | the partial derivative of PxF with respect to the generalized coordinate of joint i_joint: ![]() |
[in] | RxF | The rotation matrix (index starting at 1) such as [C] = Rxf*[P]. |
[in] | d_RxF | the partial derivative of matrix RxF with respect to the generalized coordinate of joint i_joint: ![]() |
[in] | VxF | The differential velocity vector (index starting at 1) with components expressed in frame [P]. The velocities are computed at the coordinates of point "M" linked to parent (Md_p), then linked to children (Md_c) body. The differential velocity vector is : Md_c - Md_p. |
[in] | d_VxF | the partial derivative of VxF with respect to the generalized coordinate of joint i_joint: ![]() |
[in] | OMxF | The differential angular velocity vector (index starting at 1) with components expressed in frame [P]. It is the difference between the parent angular velocity and the children angular velocity. |
[in] | d_OMxF | the partial derivative of OMxF with respect to the generalized coordinate of joint i_joint: ![]() |
[in] | AxF | The differential acceleration vector (index starting at 1) with components expressed in frame [P]. The accelerations are computed at the coordinates of point "M" linked to parent (Mdd_p), then linked to children (Mdd_c) body. The differential acceleration vector is : Mdd_c - Mdd_p. |
[in] | d_AxF | the partial derivative of AxF with respect to the generalized coordinate of joint i_joint: ![]() |
[in] | OMPxF | The differential angular acceleration vector (index starting at 1) with components expressed in frame [P]. It is the difference between the parent angular acceleration and the children angular acceleration. |
[in] | d_OMPxF | the partial derivative of OMPxF with respect to the generalized coordinate of joint i_joint: ![]() |
[in,out] | s | The MbsData structure of the model on which the force is computed. |
[in] | tsim | The current time of the simulation |
[in] | i_link3d | The ID identifying the computed link3D force. |
[in] | i_param | The id of the parameter. |
The content of the returned vector dSWr_dqd is [dF_dqd; dMx_dqd; ddxF_dqd]:
double* user_Link3DForces_dqdd | ( | double | PxF[4], |
double | d_PxF[4], | ||
double | RxF[4][4], | ||
double | d_RxF[4][4], | ||
double | VxF[4], | ||
double | d_VxF[4], | ||
double | OMxF[4], | ||
double | d_OMxF[4], | ||
double | AxF[4], | ||
double | d_AxF[4], | ||
double | OMPxF[4], | ||
double | d_OMPxF[4], | ||
MbsData * | s, | ||
double | tsim, | ||
int | i_link3d, | ||
int | i_param | ||
) |
Compute the partial derivative of a link3D forces with respect to a generalized acceleration.
[in] | PxF | The vector "AB" (index starting at 1) with components expressed in frame [P]. |
[in] | d_PxF | the partial derivative of PxF with respect to the generalized coordinate of joint i_joint: ![]() |
[in] | RxF | The rotation matrix (index starting at 1) such as [C] = Rxf*[P]. |
[in] | d_RxF | the partial derivative of matrix RxF with respect to the generalized coordinate of joint i_joint: ![]() |
[in] | VxF | The differential velocity vector (index starting at 1) with components expressed in frame [P]. The velocities are computed at the coordinates of point "M" linked to parent (Md_p), then linked to children (Md_c) body. The differential velocity vector is : Md_c - Md_p. |
[in] | d_VxF | the partial derivative of VxF with respect to the generalized coordinate of joint i_joint: ![]() |
[in] | OMxF | The differential angular velocity vector (index starting at 1) with components expressed in frame [P]. It is the difference between the parent angular velocity and the children angular velocity. |
[in] | d_OMxF | the partial derivative of OMxF with respect to the generalized coordinate of joint i_joint: ![]() |
[in] | AxF | The differential acceleration vector (index starting at 1) with components expressed in frame [P]. The accelerations are computed at the coordinates of point "M" linked to parent (Mdd_p), then linked to children (Mdd_c) body. The differential acceleration vector is : Mdd_c - Mdd_p. |
[in] | d_AxF | the partial derivative of AxF with respect to the generalized coordinate of joint i_joint: ![]() |
[in] | OMPxF | The differential angular acceleration vector (index starting at 1) with components expressed in frame [P]. It is the difference between the parent angular acceleration and the children angular acceleration. |
[in] | d_OMPxF | the partial derivative of OMPxF with respect to the generalized coordinate of joint i_joint: ![]() |
[in,out] | s | The MbsData structure of the model on which the force is computed. |
[in] | tsim | The current time of the simulation |
[in] | i_link3d | The ID identifying the computed link3D force. |
[in] | i_param | The id of the parameter. |
i_joint:
The content of the returned vector dSWr_link3d_dqdd is [dF_dq; dMx_dq; ddxF_dq]:Partial derivative of the application point local coordinates vector (expressed in the body-fixed frame): ddxF_dq =
In 1D, it gives:
.
double user_LinkForces | ( | double | Z, |
double | Zd, | ||
MbsData * | s, | ||
double | tsim, | ||
int | ilnk | ||
) |
Compute the value of a link forces.
[in] | Z | The distance (>0) between the extremities of the link force. |
[in] | Zd | The relative velocity between the extremities of the link force. A negative value means that the points get closer. |
[in] | s | The MbsData structure of the model on which the driven joint are computed. |
[in] | tsim | the current time of the simulation. |
[in] | ilnk | the ID identifying the computed link force. |
double user_LinkForces_dp | ( | double | Z, |
double | d_Z, | ||
double | Zd, | ||
double | d_Zd, | ||
MbsData * | mbs_data, | ||
double | tsim, | ||
int | i_link | ||
) |
Compute the partial derivative of a link forces with respect to a specific parameter.
[in] | Z | the distance (>0) between the extremities of the link force. |
[in] | d_Z | the partial derivative of Z with respect to the parameter i_param: ![]() |
[in] | Zd | the relative velocity between the extremities of the link force, negative if the points get closer. |
[in] | d_Zd | the partial derivative of Zd with respect to the parameter i_param: ![]() |
[in] | mbs_data | the MbsData structure of the model. |
[in] | tsim | the current time of the simulation. |
[in] | i_link | the ID identifying the computed link force. |
i_param:
double user_LinkForces_dq | ( | double | Z, |
double | d_Z, | ||
double | Zd, | ||
double | d_Zd, | ||
MbsData * | mbs_data, | ||
double | tsim, | ||
int | i_link, | ||
int | i_param | ||
) |
Compute the partial derivative of a link forces with respect to a generalized coordinate.
[in] | Z | the distance (>0) between the extremities of the link force. |
[in] | d_Z | the partial derivative of Z with respect to generalized coordinate of joint i_joint: ![]() |
[in] | Zd | the relative velocity between the extremities of the link force, negative if the points get closer. |
[in] | d_Zd | the partial derivative of Zd with respect to generalized coordinate of joint i_joint: ![]() |
[in] | mbs_data | the MbsData structure of the model. |
[in] | tsim | the current time of the simulation. |
[in] | i_link | the ID identifying the computed link force. |
[in] | i_param | the ID identifying the current joint the derivative is computed for. This parameter should bun unused. |
i_joint:
double user_LinkForces_dqd | ( | double | Z, |
double | d_Z, | ||
double | Zd, | ||
double | d_Zd, | ||
MbsData * | mbs_data, | ||
double | tsim, | ||
int | i_link, | ||
int | i_param | ||
) |
Compute the partial derivative of a link forces with respect to a generalized velocity.
[in] | Z | the distance (>0) between the extremities of the link force. |
[in] | d_Z | the partial derivative of Z with respect to generalized velocity of joint i_joint: ![]() |
[in] | Zd | the relative velocity between the extremities of the link force, negative if the points get closer. |
[in] | d_Zd | the partial derivative of Zd with respect to generalized velocity of joint i_joint: ![]() |
[in] | mbs_data | the MbsData structure of the model. |
[in] | tsim | the current time of the simulation. |
[in] | i_link | the ID identifying the computed link force. |
[in] | i_param | the ID identifying the current joint the derivative is computed for. This parameter should bun unused. |
i_joint:
double user_LinkForces_dqdd | ( | double | Z, |
double | d_Z, | ||
double | Zd, | ||
double | d_Zd, | ||
MbsData * | mbs_data, | ||
double | tsim, | ||
int | i_link, | ||
int | i_param | ||
) |
Compute the partial derivative of a link forces with respect to a generalized acceleration.
[in] | Z | the distance (>0) between the extremities of the link force. |
[in] | d_Z | the partial derivative of Z with respect to generalized velocity of joint i_joint: ![]() |
[in] | Zd | the relative velocity between the extremities of the link force, negative if the points get closer. |
[in] | d_Zd | the partial derivative of Zd with respect to generalized velocity of joint i_joint: ![]() |
[in] | mbs_data | the MbsData structure of the model. |
[in] | tsim | the current time of the simulation. |
[in] | i_link | the ID identifying the computed link force. |
[in] | i_param | the ID identifying the current joint the derivative is computed for. This parameter should bun unused. |
i_joint:
User own initialization operations.
This function will automatically be called at the project loading by mbs_load() function. The user can define in this function various initialization, allocation or configuration steps required by the project (ie. allocating and configuring user model of type being structure).
[in,out] | mbs_data | Data structure of the model. |
[in] | mbs_loader | Pointer to the mbs_loader structure as filled in mbs_load_with_loader function |