|
Robotran C Documentation
|
double ** BRm1Bt
The BRm1Bt matrix of the Riccati equations.
Definition: riccati.h:21
MbsRiccati * ric
computation structure used to solve the Algebraic Riccation Equation
Definition: mbs_lqr_struct.h:19
void mbs_delete_lqr(MbsLqr *lqr)
free memory of the lpk structure.
Definition: mbs_lqr.c:57
MbsLqr * mbs_new_lqr(int nx, int nu, int ny)
create a new lpk structure that is used to compute the linearized matrices Gr and Kr.
Definition: mbs_lqr.c:22
double * get_dvec_0(int l_v)
create (with memory allocation) a vector (length l_v) of doubles, starting at index 0
Definition: mbs_1D_array.c:880
double ** R
symmetric gain matrix for input
Definition: mbs_lqr_struct.h:16
void copy_dmat_0(double **tab_src, double **tab_dest, int nb_r, int nb_c)
Copy the content of a [nb_r times nb_c] matrix of doubles to a second matrix, starting with index 0.
Definition: mbs_matrix.c:363
Definition: mbs_lqr_struct.h:10
int lqr_compute_gain(MbsSS *ss, MbsLqr *lqr)
compute the augmented state space
Definition: mbs_lqr.c:74
void free_dmat_0(double **mat)
release memory for a matrix of doubles, starting at index 0
Definition: mbs_matrix.c:293
int mbs_cholsl_0(double **A, int n, double **B, int nb)
Solves a symmetric positive definite system of linear equations AX=B (B being the right hand side wit...
Definition: cholesky.c:40
double ** Q
symmetric gain matrix for regulation (tracking)
Definition: mbs_lqr_struct.h:15
int lqr_compute_augmentedState(MbsSS *ss, MbsSS *ass)
compute the augmented state space
Definition: mbs_lqr.c:209
double ** K
the gain matrix for the Linear Quadratic Regulator
Definition: mbs_lqr_struct.h:21
double ** B
input matrix [nx nu]
Definition: mbs_statespace_struct.h:20
double ** get_dmat_0(int nb_r, int nb_c)
create (with memory allocation) a [nb_r times nb_c] matrix of doubles, starting at index 0
Definition: mbs_matrix.c:238
void mbs_delete_riccati(MbsRiccati *ric)
Definition: riccati.c:143
The State-space representation starts at index 0.
Definition: mbs_statespace_struct.h:10
int mbs_choldc_0(double **A, int n)
Compute the Cholesky decomposition of A, i.e.
Definition: cholesky.c:25
void mbs_msg(char *msg,...)
Send a message.
Definition: mbs_message.c:76
double ** A
state space matrix [nx nx]
Definition: mbs_statespace_struct.h:19
double ** A
The A matrix of the Riccati equation : Aric = A - B*Rm1*Nt.
Definition: riccati.h:19
double ** X
the Riccati solution
Definition: riccati.h:26
int lqr_compute_augmentedState(MbsSS *ss, MbsSS *ass)
compute the augmented state space
Definition: mbs_lqr.c:209
void mbs_delete_lqr(MbsLqr *lqr)
free memory of the lpk structure.
Definition: mbs_lqr.c:57
int ny
number of output (limited to 2*nqu)
Definition: mbs_statespace_struct.h:17
int mbs_solve_riccati(MbsRiccati *ric)
Definition: riccati.c:27
void mult_dmat_0(double **A, double **B, double **C, int n1, int n2, int n3)
function to multiply two matrices: A * B = C [n1 n2] [n2 n3] = [n1 n3]
Definition: mbs_matrix.c:767
void transpose_dmat_0(double **tab_src, double **tab_dest, int nb_r, int nb_c)
Transpose a [nb_r times nb_c] matrix of doubles and store the results in a [y times nb_r] matrix,...
Definition: mbs_matrix.c:440
void diff_dmat_0(double **A, double **B, double **C, int n1, int n2)
function to sum two matrices: A - B = C
Definition: mbs_matrix.c:797
MbsLqr * mbs_new_lqr(int nx, int nu, int ny)
create a new lpk structure that is used to compute the linearized matrices Gr and Kr.
Definition: mbs_lqr.c:22
double ** N
gain matrix for cross terms
Definition: mbs_lqr_struct.h:17
double ** C
output matrix [ny nx]
Definition: mbs_statespace_struct.h:21
int mbs_eig_0(double **A, int n, double *eval_a, double *eval_b, double **evec_a, double **evec_b)
Compute the eigen values and vector of a matrix with index starting a 0.
Definition: eig_lapack.c:32
int lqr_compute_gain(MbsSS *ss, MbsLqr *lqr)
compute the augmented state space
Definition: mbs_lqr.c:74
void free_dvec_0(double *vec)
release memory for a vector of doubles, starting at index 0
Definition: mbs_1D_array.c:896
double ** Q
The Q matrix of the Riccati equation : Qric = Q - N*Rm1*Nt.
Definition: riccati.h:20
MbsRiccati * mbs_new_riccati(int n)
Definition: riccati.c:118
int nu
number of input (limited to njoint for the moment as only joint forces are considered as input)
Definition: mbs_statespace_struct.h:16
int nx
number of state, (normally nx=2*nqu)
Definition: mbs_statespace_struct.h:15