Robotran C Documentation
mbs_equil_struct.h
Go to the documentation of this file.
1 
2 #ifndef MBS_EQUIL_STRUCT_h
3 #define MBS_EQUIL_STRUCT_h
4 
5 #include "mbs_aux.h"
6 #include "mbs_buffer.h"
7 #include "mbs_linearipk_struct.h"
8 
9 typedef struct MbsEquilOptions
10 {
11  int method;
12  double equitol;
13  int verbose;
19  int save2file;
21 
22  int grad_lpk;
24  double lpk_relincr;
25  double lpk_absincr;
26  double lpk_absincr_max;
27  double lpk_equitol;
28  double lpk_lintol;
29 
30 
40  char *resfilename;
48  char *respath;
56  char *animpath;
57  char* buffer_format;
58 
59  // solvepk related...
60  int mode;
61  int relax;
62  double relaxcoeff;
63  double relaxIterMax;
64  int soft;
65  double senstol;
66  double devjac;
67  int itermax;
68 
69  int visualize;
71 
72  //int nqui; //!< number of ignored independent variables for quasistatic equilibrium ??Q should disappear
73  //int *qui; //!< index of ignored independant variables
74 
75  int nquch;
76  int *quch;
77  double **xch_ptr;
78 
79  int nxe;
80  double **xe_ptr;
81 
82  int *xe_index;
83 
84 
85  int saveperiod;
86  int save_anim;
87  int framerate;
88  int buffersize;
90  void (* fxe_ptr)(MbsData*, double*);
91  char **joints_name;
92  double *max_inc;
98 
100 
102 
103 typedef struct MbsEquil
104 {
106  MbsAux* aux;
107 
108  double *qd_saved;
109  double *qdd_saved;
110 
111  int nx;
112  double *x;
113  double **x_ptr;
114 
115  int Nux_saved;
116 
117  int nxch;
118  int *xch;
119 
120  int nxe;
121  int *xe;
122 
123  int nxs;
124  int *xs;
125  int nxns;
126  int *xns;
127 
128  //----- SolvePk related variables -----//
129  double norm_pk;
130 
131  double **grad;
132  double **grad_Rr;
133  double **grad_uxd;
134  double **grad_fxe;
136 
137  double *F;
138  double R;
139  int iter;
141  int bufferNb;
144  double** savedArrays;
145 
146  int success;
147 
148 } MbsEquil;
149 
150 #endif
MbsEquil::x
double * x
variables for the equilibrium
Definition: mbs_equil_struct.h:112
MbsEquilOptions::grad_lpk
int grad_lpk
options to compute the gradient through the lpk parabolic fitting method. If not activated,...
Definition: mbs_equil_struct.h:22
MbsEquil::nxe
int nxe
number of added variables for the equilibrium
Definition: mbs_equil_struct.h:120
MbsEquilOptions::clearmbsglobal
int clearmbsglobal
Q? inout = 1, out = 2, none = 3, all = 4, default = 1 ???
Definition: mbs_equil_struct.h:70
MbsEquil::xe
int * xe
index of the added variables in the vector of equilibrium variables
Definition: mbs_equil_struct.h:121
MbsEquilOptions::lpk_absincr_max
double lpk_absincr_max
options for the lpk gradient [default = 0]
Definition: mbs_equil_struct.h:26
MbsEquilOptions::compute_uxd
int compute_uxd
no = 0, yes = 1, flag to compute the extra constitutive differential equations as equil equations [de...
Definition: mbs_equil_struct.h:20
MbsEquilOptions::visualize
int visualize
Q? no = 0, yes = 1, default = 0.
Definition: mbs_equil_struct.h:69
MbsEquilOptions::max_inc
double * max_inc
Maximum absolute value of the increment of each variable between iterations.
Definition: mbs_equil_struct.h:92
MbsEquilOptions::buffer_format
char * buffer_format
if NULL, "%e" is used
Definition: mbs_equil_struct.h:57
MbsGrowingBuffer
buffer used to store the user variables to output
Definition: mbs_buffer.h:98
MbsEquilOptions::lpk_relincr
double lpk_relincr
options for the lpk gradient [default = 1e-2]
Definition: mbs_equil_struct.h:24
MbsEquil::buffers
MbsBuffer ** buffers
buffer to store generalized coordinates, velocities, acceleration, joint forces...
Definition: mbs_equil_struct.h:142
MbsLpk
Definition: mbs_linearipk_struct.h:19
MbsEquilOptions::lpk_absincr
double lpk_absincr
options for the lpk gradient [default = 1e-3]
Definition: mbs_equil_struct.h:25
MbsEquil::qd_saved
double * qd_saved
initial generalized velocities as defined in the mbsysPad
Definition: mbs_equil_struct.h:108
MbsEquilOptions::verbose
int verbose
Verbosity level propagated to other compatible module:
Definition: mbs_equil_struct.h:13
MbsEquilOptions::quch
int * quch
index of changed independant variables
Definition: mbs_equil_struct.h:76
mbs_buffer.h
MbsEquilOptions::method
int method
fsolvepk = 1, other method to be added. [default = 1]
Definition: mbs_equil_struct.h:11
MbsEquil::x_ptr
double ** x_ptr
vector of pointers pointing to the equilibrium variables
Definition: mbs_equil_struct.h:113
MbsEquilOptions::resfilename
char * resfilename
Basename of the results files, suffixes and extension added automatically.
Definition: mbs_equil_struct.h:40
MbsEquil::F
double * F
Definition: mbs_equil_struct.h:137
MbsEquil::xns
int * xns
index of non sensitive variables in the vector of equilibrium variables
Definition: mbs_equil_struct.h:126
MbsEquil::nxns
int nxns
number of non sensitive variables for the equilibrium
Definition: mbs_equil_struct.h:125
MbsEquilOptions::devjac
double devjac
deviate state for Gradient calculation [default = 1e-6]
Definition: mbs_equil_struct.h:66
MbsEquilOptions::equitol
double equitol
equilibrium acceptation tolerance [default = 1e-6]
Definition: mbs_equil_struct.h:12
MbsEquilOptions::framerate
int framerate
number of frame per second for the .anim file
Definition: mbs_equil_struct.h:87
MbsEquil::options
MbsEquilOptions * options
structure defining the option of a equilibrium
Definition: mbs_equil_struct.h:105
mbs_linearipk_struct.h
MbsEquil::nxs
int nxs
number of sensitive variables for the equilibrium
Definition: mbs_equil_struct.h:123
MbsEquil
Definition: mbs_equil_struct.h:103
MbsEquilOptions::joints_name
char ** joints_name
Array containing the name of each joints.
Definition: mbs_equil_struct.h:91
MbsEquilOptions::itermax
int itermax
maximum number of iteration for solvepk [default = 30]
Definition: mbs_equil_struct.h:67
MbsEquilOptions::respath
char * respath
Path in which results file are saved.
Definition: mbs_equil_struct.h:48
MbsEquilOptions::animpath
char * animpath
Path in which animation file is saved.
Definition: mbs_equil_struct.h:56
MbsEquil::grad
double ** grad
Linear Tangent matrix: delta Fx / delta x (obtained numerically)
Definition: mbs_equil_struct.h:131
MbsEquil::qdd_saved
double * qdd_saved
initial generalized accelerations as defined in the mbsysPad
Definition: mbs_equil_struct.h:109
MbsBuffer
Definition: mbs_buffer.h:46
MbsEquil::Nux_saved
int Nux_saved
copy of mbs_data Nux
Definition: mbs_equil_struct.h:115
MbsEquil::iter
int iter
current iteration in the equilibrium computation
Definition: mbs_equil_struct.h:139
MbsEquilOptions::close_geo_sensitive
int close_geo_sensitive
Definition: mbs_equil_struct.h:99
MbsEquil::lpk
MbsLpk * lpk
working structure to compute the linearized matrices (one by one)
Definition: mbs_equil_struct.h:135
MbsEquilOptions::nxe
int nxe
number of extra equilibrium variables
Definition: mbs_equil_struct.h:79
MbsEquilOptions::fxe_ptr
void(* fxe_ptr)(MbsData *, double *)
pointer pointing on the .c function calculating the added equilibrum functions
Definition: mbs_equil_struct.h:90
MbsEquilOptions::relaxcoeff
double relaxcoeff
relaxation coefficient [default = 0.9]
Definition: mbs_equil_struct.h:62
MbsEquil::grad_Rr
double ** grad_Rr
mbs Linear Tangent matrix: delta Rr / delta x (obtained numerically)
Definition: mbs_equil_struct.h:132
MbsEquilOptions::soft
int soft
softing in pk algorithm no = 0, yes = 1 [default = 0]
Definition: mbs_equil_struct.h:64
MbsEquilOptions::save_anim
int save_anim
1 to save the anim file, 0 otherwise (only valid if 'save2file' is set to 1)
Definition: mbs_equil_struct.h:86
MbsEquilOptions::relax
int relax
relaxation in pk algorithm no = 0, yes = 1 [default = 0]
Definition: mbs_equil_struct.h:61
MbsEquil::xch
int * xch
index of the exchange variables in the vector of equilibrium variables
Definition: mbs_equil_struct.h:118
MbsEquil::bufferNb
int bufferNb
Definition: mbs_equil_struct.h:141
MbsEquilOptions::saveperiod
int saveperiod
The number of iteration between two buffer records [default = 1] (every iteration are recorded)
Definition: mbs_equil_struct.h:85
MbsData
Definition: mbs_data.h:247
MbsEquil::success
int success
1 if the equilibrium process were successful (0 if none -1 if failed)
Definition: mbs_equil_struct.h:146
MbsEquilOptions::xe_index
int * xe_index
vector containing the index of the added variables inside the equilibrium variables vector
Definition: mbs_equil_struct.h:82
MbsEquilOptions
Definition: mbs_equil_struct.h:9
MbsEquilOptions::lpk_equitol
double lpk_equitol
options for the lpk gradient [default = 1e-6]
Definition: mbs_equil_struct.h:27
MbsEquil::grad_uxd
double ** grad_uxd
uxd Linear Tangent matrix: delta uxd / delta x (obtained numerically)
Definition: mbs_equil_struct.h:133
MbsEquilOptions::senstol
double senstol
tolerance for testing a variable non-sensitivity [default = 1e-6]
Definition: mbs_equil_struct.h:65
MbsEquilOptions::buffersize
int buffersize
The number of time step that can be recorded in the buffer [default = -1].
Definition: mbs_equil_struct.h:88
MbsEquil::user_buffer
MbsGrowingBuffer * user_buffer
growing buffer to store user values
Definition: mbs_equil_struct.h:143
MbsEquilOptions::lpk_lintol
double lpk_lintol
options for the lpk gradient [default = 1e-3]
Definition: mbs_equil_struct.h:28
MbsEquil::nx
int nx
number of variables for the equilibrium
Definition: mbs_equil_struct.h:111
MbsEquil::aux
MbsAux * aux
Definition: mbs_equil_struct.h:106
MbsEquil::xs
int * xs
index of sensitive variables in the vector of equilibrium variables
Definition: mbs_equil_struct.h:124
MbsEquil::grad_fxe
double ** grad_fxe
fxe Linear Tangent matrix: delta fxe / delta x (obtained numerically)
Definition: mbs_equil_struct.h:134
MbsEquil::savePeriodCounter
int savePeriodCounter
counter for checking whether results must be saved
Definition: mbs_equil_struct.h:140
MbsEquilOptions::xe_ptr
double ** xe_ptr
vector of pointers pointing to the extra variables
Definition: mbs_equil_struct.h:80
MbsEquilOptions::max_save_user
int max_save_user
The maximal number of user variables saved [default = 12].
Definition: mbs_equil_struct.h:89
MbsEquil::norm_pk
double norm_pk
norm of the equlibrium variables vector x (parameter to minimize in the solvepk algorithm)
Definition: mbs_equil_struct.h:129
MbsEquilOptions::save2file
int save2file
1: results saved 0: not saved [default = 1]
Definition: mbs_equil_struct.h:19
MbsEquil::nxch
int nxch
number of exchange variables for the equilibrium
Definition: mbs_equil_struct.h:117
MbsEquilOptions::nquch
int nquch
number of changed independant variables
Definition: mbs_equil_struct.h:75
MbsEquil::savedArrays
double ** savedArrays
pointer to the array that must be saved to buffers
Definition: mbs_equil_struct.h:144
mbs_aux.h
MbsEquil::R
double R
Definition: mbs_equil_struct.h:138
MbsEquilOptions::relaxIterMax
double relaxIterMax
maximum number of relaxation iterations [default = 10]
Definition: mbs_equil_struct.h:63
MbsEquilOptions::mode
int mode
1=static / 2=quasistatic / 3=dynamic [default = 1]
Definition: mbs_equil_struct.h:60
MbsEquilOptions::xch_ptr
double ** xch_ptr
vector of pointers pointing to the exchange variables (the ones that replaces the changed qu)
Definition: mbs_equil_struct.h:77
MbsEquilOptions::lpk_itermax
int lpk_itermax
options for the lpk gradient [default = 10]
Definition: mbs_equil_struct.h:23