dRonin
adbada4
dRonin firmware
|
LQG Control algorithm. More...
#include "lqg.h"
Go to the source code of this file.
Data Structures | |
struct | rtkf_state |
struct | lqr_state |
struct | lqg_state |
Macros | |
#define | SOLVER_MIN 100 |
#define | SOLVER_MAX 11000 |
#define | SOLVER_KF_TORQUE_EPSILON 0.000000001f |
#define | SOLVER_KF_BIAS_EPSILON 0.000000001f |
#define | SOLVER_LQR_RATE_EPSILON 0.00000001f |
#define | SOLVER_LQR_TORQUE_EPSILON 0.000001f |
#define | P00 P[0][0] |
#define | P10 P[1][0] |
#define | P20 P[2][0] |
#define | P01 P[0][1] |
#define | P11 P[1][1] |
#define | P21 P[2][1] |
#define | P02 P[0][2] |
#define | P12 P[1][2] |
#define | P22 P[2][2] |
#define | A00 A[0][0] |
#define | A10 A[1][0] |
#define | A20 A[2][0] |
#define | A01 A[0][1] |
#define | A11 A[1][1] |
#define | A21 A[2][1] |
#define | A02 A[0][2] |
#define | A12 A[1][2] |
#define | A22 A[2][2] |
#define | Q00 Q[0][0] |
#define | Q10 Q[1][0] |
#define | Q20 Q[2][0] |
#define | Q01 Q[0][1] |
#define | Q11 Q[1][1] |
#define | Q21 Q[2][1] |
#define | Q02 Q[0][2] |
#define | Q12 Q[1][2] |
#define | Q22 Q[2][2] |
#define | B0 B[0] |
#define | B1 B[1] |
#define | B2 B[2] |
#define | X0 X[0] |
#define | X1 X[1] |
#define | X2 X[2] |
#define | K0 K[0] |
#define | K1 K[1] |
#define | K2 K[2] |
Functions | |
bool | rtkf_calculate_covariance_3x3 (float A[3][3], float K[3], float P[3][3], float Q[3][3], float R) |
void | rtkf_stabilize_covariance (rtkf_t rtkf, int iterations) |
void | rtkf_prediction_step (float A[3][3], float B[3], float K[3], float X[3], float signal, float input) |
void | rtkf_predict_axis (rtkf_t rtkf, float signal, float input, float Xout[3]) |
void | rtkf_initialize_matrices_int (float A[3][3], float B[3], float beta, float tau, float Ts) |
rtkf_t | rtkf_create (float beta, float tau, float Ts, float R, float q1, float q2, float q3, float biaslim) |
int | rtkf_solver_status (rtkf_t rtkf) |
bool | lqr_calculate_covariance_2x2 (float A[2][2], float B[2], float K[2], float P[2][2], float Q[2][2], float R) |
void | lqr_stabilize_covariance (lqr_t lqr, int iterations) |
int | lqr_solver_status (lqr_t lqr) |
void | lqr_initialize_matrices_int (float A[2][2], float B[2], float beta, float tau, float Ts) |
lqr_t | lqr_create (float beta, float tau, float Ts, float q1, float q2, float r) |
void | lqr_update (lqr_t lqr, float q1, float q2, float r) |
void | lqr_get_gains (lqr_t lqr, float K[2]) |
float | lqg_controller (lqg_t lqg, float signal, float setpoint) |
lqg_t | lqg_create (rtkf_t rtkf, lqr_t lqr) |
void | lqg_get_rtkf_state (lqg_t lqg, float *rate, float *torque, float *bias) |
void | lqg_set_x0 (lqg_t lqg, float x0) |
int | lqg_solver_status (lqg_t lqg) |
rtkf_t | lqg_get_rtkf (lqg_t lqg) |
lqr_t | lqg_get_lqr (lqg_t lqg) |
void | lqg_run_covariance (lqg_t lqg, int iter) |