Go to the documentation of this file.
16 double robustnessGain, normeA;
55 for (i = 0; i < 3; i++) ERm.
pData[i] /= 2.0;
67 for (i = 0; i < 3; i++) normeA += pow(EAm.
pData[i], 2.0);
68 normeA = sqrt(normeA);
69 robustnessGain = pow(controller->
gain_L, 2.0);
70 robustnessGain /= (controller->
gain_L * normeA + controller->
gain_eps);
75 mat_mul(&Sm, &tmp31Am, &tmp31Cm);
77 mat_mul(&Sm, &tmp31Am, &tmp31Bm);
80 mat_mul(&Jm, &tmp31Am, &tmp31Bm);
83 for (i = 0; i < 3; i++ ){
88 controller->
torque[i] -= robustnessGain * EAm.
pData[i];
void mat_sol(matrix_double_t *Amat, matrix_double_t *Bmat)
Compute, without changing A, the eigenvalues of a real symmetric A to B, asserts that this is done co...
void matrix_allocate(matrix_double_t *matrix, int numRows, int numCols)
Allocate memory for a matrix struct of given dimensions.
Matrix object used for all matrix manipulation.
int cont_SO3_hat(matrix_double_t *in, matrix_double_t *out)
The hat operator on SO3.
void mat_trans(matrix_double_t *Amat, matrix_double_t *ATmat)
Matrix transposition, A^T <– transpose(A), asserts that this is done correctly.
Reference signal structure for the attitude FSF on S(3) or SU(2)
double cont_SO3_distance(matrix_double_t *R1, matrix_double_t *R2)
The distance Phi(R1, R2) defined on SO3.
Complete state of the attitude FSF on SO(3) or SU(2)
void matrix_copy(matrix_double_t *Amat, matrix_double_t *Bmat)
Copy one metrix into another Bmat <– Amat, overwriting Bmat.
void matrix_define(matrix_double_t *matrix, int numRows, int numCols, double *data)
Define a matrix to use already allocated memory.
Dynamical states, assumed known in the attitude FSF on SO(3) or SU(2)
void mat_mul(matrix_double_t *Amat, matrix_double_t *Bmat, matrix_double_t *Cmat)
and asserts that this is done correctly
void mat_sub_inplace(matrix_double_t *Amat, matrix_double_t *Bmat)
In-place subtraction addition, A <– A - B, asserts that this is done correctly.
double cont_dot_product(matrix_double_t *vecA, matrix_double_t *vecB)
Evaluates the dot product of two vectors.
void mat_sub(matrix_double_t *Amat, matrix_double_t *Bmat, matrix_double_t *Cmat)
Matrix subtraction, C <– A - B, and asserts that this is done correctly.
int update_attitude_FSF_SO3_robust(ref_state_qw_t *reference, dyn_state_qw_t *state, con_state_qw_fsf_t *controller)
Update using the robust full state feedback (FSF) on SO(3)
int cont_quat_2_SO3(matrix_double_t *q, matrix_double_t *R)
Embedding relating SU(2) to SO(3)
double cont_SU2_distance(matrix_double_t *q1, matrix_double_t *q2)
Evaluate distance Gamma(q1, q2) in [0,2] defined on SU2.
int assert_attitude_FSF_SO3(con_state_qw_fsf_t *controller)
Assert that the SO(3) controller is feasible.
int cont_SO3_vee(matrix_double_t *in, matrix_double_t *out)
The hat operator on SO3.