Robotran C Documentation
mbs_modal_struct.h
Go to the documentation of this file.
1 
2 
3 #ifndef MBS_MODAL_STRUCT_h
4 #define MBS_MODAL_STRUCT_h
5 
6 #include "useful_functions.h"
7 
8 #include "mbs_data.h"
9 #include "mbs_linearipk_struct.h"
10 #include "mbs_statespace.h"
11 
12 typedef struct MbsModalOptions
13 {
14  int save2file;
15  int save_mat;
16  int save_eval;
17  int save_evec;
19  int save_anim;
20  int verbose;
21  double mode_ampl;
23  int compute_JS;
24  int norm_evec;
26 
27  // lpk linearization options
29  double lpk_relincr;
30  double lpk_absincr;
31  double lpk_absincr_max;
32  double lpk_equitol;
33  double lpk_lintol;
34 
35  // animation options
36  int anim_speed;
37  double anim_dt;
38  double anim_t;
39 
40  /* The keyword used for determining the name of result files */
41  char* resfilename;
42 
46  char* respath;
47  char* animpath;
48 
50 
51 typedef struct MbsModalMode
52 {
53  int type;
54 
55  double eval_a;
56  double eval_b;
57 
58  double ksi;
59  double nu_0;
60  double nu;
61 
62  double *q_a;
63  double *q_b;
64  double *ux_a;
65  double *ux_b;
66 
67  double *q_r;
68  double *q_phi;
69  double *ux_r;
70  double *ux_phi;
71 
72  double *evec_r;
73  double *evec_phi;
74 
75 } MbsModalMode;
76 
77 typedef struct MbsModal
78 {
80  MbsAux *aux;
81 
83  MbsSS *ss;
84 
85  double **Bvuc;
86 
87  double *q_saved;
88  double *qd_saved;
89  double *qdd_saved;
90  double *Qq_saved;
91 
92  int Nux_saved;
93 
94  int nx;
95 
96  double *eval_a;
97  double *eval_b;
98 
99  double **evec_a;
100  double **evec_b;
101  double **evec_r;
102  double **evec_phi;
103 
104 
105  int nMode;
108 
109 } MbsModal;
110 
111 
112 
113 
114 
115 #endif
MbsModalOptions::lpk_absincr_max
double lpk_absincr_max
options for the lpk gradient [default = 1e-3]
Definition: mbs_modal_struct.h:31
MbsModal::Nux_saved
int Nux_saved
copy of mbs_data Nux
Definition: mbs_modal_struct.h:92
MbsModal::evec_a
double ** evec_a
Result of the Eigenvalue problem: real part of the eigen vectors (each column is a eigenvector) [nx X...
Definition: mbs_modal_struct.h:99
MbsModal::eval_b
double * eval_b
Result of the Eigenvalue problem: imaginary part of the nx eigen values [nx].
Definition: mbs_modal_struct.h:97
MbsModalOptions::respath
char * respath
Path in which result file are saved.
Definition: mbs_modal_struct.h:46
MbsModalOptions
Definition: mbs_modal_struct.h:12
useful_functions.h
MbsModal::iModeSorted
int * iModeSorted
Definition: mbs_modal_struct.h:107
MbsModalOptions::lpk_absincr
double lpk_absincr
options for the lpk gradient [default = 1e-3]
Definition: mbs_modal_struct.h:30
MbsModalOptions::mode_ampl
double mode_ampl
amplification factor for the animation of the modes, application dependent [default = 0....
Definition: mbs_modal_struct.h:21
mbs_data.h
MbsModalOptions::save_result
int save_result
no = 0, yes = 1, flag to save the modal results summary [default = 1]
Definition: mbs_modal_struct.h:18
MbsLpk
Definition: mbs_linearipk_struct.h:19
MbsModalOptions::lpk_itermax
int lpk_itermax
options for the lpk gradient [default = 10]
Definition: mbs_modal_struct.h:28
MbsModalMode::q_phi
double * q_phi
Phase of the generalized position corresponding to the mode motion (computed from evec_r and evec_phi...
Definition: mbs_modal_struct.h:68
MbsModalOptions::save_eval
int save_eval
no = 0, yes = 1, flag to save the eigen values in two separate files: "_a" for Real part and "_b" for...
Definition: mbs_modal_struct.h:16
MbsModalOptions::compute_uxd
int compute_uxd
no = 0, yes = 1, flag to compute the modes associated with the extra constitutive differential equati...
Definition: mbs_modal_struct.h:22
MbsModalMode
Definition: mbs_modal_struct.h:51
MbsModalMode::nu_0
double nu_0
Undamped frequency [Hz].
Definition: mbs_modal_struct.h:59
MbsModal::lpk
MbsLpk * lpk
working structure to compute the linearized matrices (one by one)
Definition: mbs_modal_struct.h:82
MbsModalOptions::verbose
int verbose
no = 0, yes = 1, [default = 1]
Definition: mbs_modal_struct.h:20
MbsModalOptions::norm_evec
int norm_evec
no = 0, yes = 1, flag to normalize the eigenvectors [default = 1]
Definition: mbs_modal_struct.h:24
MbsModal::options
MbsModalOptions * options
Definition: mbs_modal_struct.h:79
MbsModal::modeList
MbsModalMode ** modeList
List of model object.
Definition: mbs_modal_struct.h:106
MbsModalOptions::lpk_lintol
double lpk_lintol
options for the lpk gradient [default = 1e-3]
Definition: mbs_modal_struct.h:33
MbsModalOptions::anim_speed
int anim_speed
flag to decide whether the independent speeds have to be integrated while generating the animation fi...
Definition: mbs_modal_struct.h:36
mbs_linearipk_struct.h
MbsSS
The State-space representation starts at index 0.
Definition: mbs_statespace_struct.h:10
MbsModalMode::type
int type
1=unoscillating stable; 2=rigid; 3=unoscillating unstable; 4=oscillating damped; 5=oscillating undamp...
Definition: mbs_modal_struct.h:53
MbsModalMode::q_r
double * q_r
Norm of the generalized position corresponding to the mode motion (computed from evec_r and evec_phi)
Definition: mbs_modal_struct.h:67
MbsModalMode::nu
double nu
Frequency of the -damped- mode [Hz].
Definition: mbs_modal_struct.h:60
MbsModal
Definition: mbs_modal_struct.h:77
MbsModalOptions::save_anim
int save_anim
no = 0, yes = 1, flag to save and generate the animation for the modes [default = 0]
Definition: mbs_modal_struct.h:19
MbsModalMode::q_b
double * q_b
Img part of the generalized position corresponding to the mode motion (computed from q_phi)
Definition: mbs_modal_struct.h:63
MbsModalOptions::anim_t
double anim_t
time for the animation generation [default = 2]
Definition: mbs_modal_struct.h:38
MbsModalMode::q_a
double * q_a
Real part of the generalized position corresponding to the mode motion (computed from q_r)
Definition: mbs_modal_struct.h:62
MbsModalOptions::save_mat
int save_mat
no = 0, yes = 1, flag to save the linearized matrix A,Mr,Gr,Kr [default = 0]
Definition: mbs_modal_struct.h:15
MbsModalOptions::save_evec
int save_evec
no = 0, yes = 1, flag to save the eigen vector in two separate files: "_a" for Real part,...
Definition: mbs_modal_struct.h:17
MbsModal::q_saved
double * q_saved
copy of vector q before the modal process.
Definition: mbs_modal_struct.h:87
MbsModal::qd_saved
double * qd_saved
copy of vector qd before the modal process.
Definition: mbs_modal_struct.h:88
MbsModal::eval_a
double * eval_a
Result of the Eigenvalue problem: real part of the nx eigen values [nx].
Definition: mbs_modal_struct.h:96
MbsModalOptions::lpk_relincr
double lpk_relincr
options for the lpk gradient [default = 1e-2]
Definition: mbs_modal_struct.h:29
MbsModal::evec_b
double ** evec_b
Result of the Eigenvalue problem: img part of the eigen vectors (each column is a eigenvector) [nx X ...
Definition: mbs_modal_struct.h:100
MbsModalMode::evec_phi
double * evec_phi
Phase of the eigen vector associated to the mode [nx].
Definition: mbs_modal_struct.h:73
MbsModalMode::eval_b
double eval_b
Imaginary part of the mode eigenvalue.
Definition: mbs_modal_struct.h:56
MbsModal::nx
int nx
number of 1st order equations, nx = 2*nqu (+Nux)
Definition: mbs_modal_struct.h:94
MbsModalOptions::zeroEigenPrecision
double zeroEigenPrecision
Define the limit at which the eigen value will be considered as null [default = 1e-6].
Definition: mbs_modal_struct.h:25
MbsModal::Bvuc
double ** Bvuc
copy of the Bvuc matrix (index 1)
Definition: mbs_modal_struct.h:85
MbsModalMode::ux_b
double * ux_b
Img part of the extra ODE states corresponding to the mode motion (computed from ux_phi)
Definition: mbs_modal_struct.h:65
MbsModalOptions::compute_JS
int compute_JS
no = 0, yes = 1, flag to compute the non diagonal terms [default = 0] TO IMPLEMENT !
Definition: mbs_modal_struct.h:23
MbsModalOptions::lpk_equitol
double lpk_equitol
options for the lpk gradient [default = 1e-6]
Definition: mbs_modal_struct.h:32
MbsModal::Qq_saved
double * Qq_saved
copy of vector Qq before the modal process.
Definition: mbs_modal_struct.h:90
MbsModal::qdd_saved
double * qdd_saved
copy of vector qdd before the modal process.
Definition: mbs_modal_struct.h:89
MbsModalMode::ux_a
double * ux_a
Real part of the extra ODE states corresponding to the mode motion (computed from ux_r)
Definition: mbs_modal_struct.h:64
MbsModalMode::ksi
double ksi
Damping factor [%].
Definition: mbs_modal_struct.h:58
MbsModalMode::evec_r
double * evec_r
Norm of the eigen vector associated to the mode [nx].
Definition: mbs_modal_struct.h:72
MbsModalOptions::resfilename
char * resfilename
Definition: mbs_modal_struct.h:41
MbsModalMode::ux_phi
double * ux_phi
Phase of the extra ODE states corresponding to the mode motion (computed from evec_r and evec_phi)
Definition: mbs_modal_struct.h:70
MbsModalOptions::save2file
int save2file
no = 0, yes = 1, flag to save any results or animations [default = 1]
Definition: mbs_modal_struct.h:14
MbsModal::nMode
int nMode
Number of modes (nx duplication)
Definition: mbs_modal_struct.h:105
MbsModalMode::eval_a
double eval_a
Real part of the mode eigenvalue.
Definition: mbs_modal_struct.h:55
MbsModal::aux
MbsAux * aux
Definition: mbs_modal_struct.h:80
MbsModal::evec_r
double ** evec_r
Result of the Eigenvalue problem: norm of the eigen vectors (each column is a eigenvector) [nx X nx].
Definition: mbs_modal_struct.h:101
MbsModalOptions::animpath
char * animpath
Definition: mbs_modal_struct.h:47
MbsModal::evec_phi
double ** evec_phi
Result of the Eigenvalue problem: phase of the eigen vectors (each column is a eigenvector) [nx X nx]...
Definition: mbs_modal_struct.h:102
MbsModal::ss
MbsSS * ss
working structure containing a state space representation (with the matrix A)
Definition: mbs_modal_struct.h:83
MbsModalMode::ux_r
double * ux_r
Norm of the extra ODE states corresponding to the mode motion (computed from evec_r and evec_phi)
Definition: mbs_modal_struct.h:69
mbs_statespace.h
MbsModalOptions::anim_dt
double anim_dt
delta t for the animation generation [default = 1e-2]
Definition: mbs_modal_struct.h:37