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