Paparazzi UAS
v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
|
Go to the source code of this file.
Data Structures | |
struct | WLS_t |
Macros | |
#define | WLS_N_U_MAX 6 |
active set algorithm for control allocation More... | |
#define | WLS_N_V_MAX 4 |
Functions | |
void | send_wls_v (char *name, struct WLS_t *WLS_p, struct transport_tx *trans, struct link_device *dev) |
void | send_wls_u (char *name, struct WLS_t *WLS_p, struct transport_tx *trans, struct link_device *dev) |
void | wls_alloc (struct WLS_t *WLS_p, float **B, float *u_guess, float *W_init, int imax) |
active set algorithm for control allocation More... | |
struct WLS_t |
Definition at line 66 of file wls_alloc.h.
Data Fields | ||
---|---|---|
float | gamma_sq | |
int | iter | |
int | nu | |
int | nv | |
float | PC | |
float | SC | |
float | u[WLS_N_U_MAX] | |
float | u_max[WLS_N_U_MAX] | |
float | u_min[WLS_N_U_MAX] | |
float | u_pref[WLS_N_U_MAX] | |
float | v[WLS_N_V_MAX] | |
float | Wu[WLS_N_U_MAX] | |
float | Wv[WLS_N_V_MAX] |
#define WLS_N_U_MAX 6 |
active set algorithm for control allocation
Takes the control objective and max and min inputs from pprz and calculates the inputs that will satisfy most of the control objective, subject to the weighting matrices Wv and Wu
The dimension of the input vectors u and v are defined at compilation time and must be large enough for all the considered cases.
u | The control output vector |
v | The control objective vector |
B | The control effectiveness matrix |
n_u | Length of u |
n_v | Lenght of v |
u_guess | Initial value for u |
W_init | Initial working set, if known |
Wv | Weighting on different control objectives |
Wu | Weighting on different controls |
up | Preferred control vector |
gamma_sq | Preference of satisfying control objective over desired control vector (sqare root of gamma) |
imax | Max number of iterations |
n_u | Length of u (the number of actuators) |
n_v | Lenght of v (the number of control objectives) |
Definition at line 60 of file wls_alloc.h.
#define WLS_N_V_MAX 4 |
Definition at line 64 of file wls_alloc.h.
void send_wls_u | ( | char * | name, |
struct WLS_t * | WLS_p, | ||
struct transport_tx * | trans, | ||
struct link_device * | dev | ||
) |
Definition at line 71 of file wls_alloc.c.
References dev, WLS_t::nu, WLS_t::u, WLS_t::u_max, WLS_t::u_min, WLS_t::u_pref, and WLS_t::Wu.
Referenced by send_wls_u_oneloop(), and send_wls_u_stab().
void send_wls_v | ( | char * | name, |
struct WLS_t * | WLS_p, | ||
struct transport_tx * | trans, | ||
struct link_device * | dev | ||
) |
Definition at line 61 of file wls_alloc.c.
References dev, WLS_t::gamma_sq, WLS_t::iter, WLS_t::nv, WLS_t::v, and WLS_t::Wv.
Referenced by send_wls_v_oneloop(), and send_wls_v_stab().
void wls_alloc | ( | struct WLS_t * | WLS_p, |
float ** | B, | ||
float * | u_guess, | ||
float * | W_init, | ||
int | imax | ||
) |
active set algorithm for control allocation
Takes the control objective and max and min inputs from pprz and calculates the inputs that will satisfy most of the control objective, subject to the weighting matrices Wv and Wu
WLS_p | Struct that contains most of the WLS parameters |
B | The control effectiveness matrix |
u_guess | Initial value for u |
W_init | Initial working set, if known |
imax | Max number of iterations |
Definition at line 119 of file wls_alloc.c.
References A, alpha, B, b, WLS_t::gamma_sq, WLS_t::iter, lambda, WLS_t::nu, WLS_t::nv, p, qr_solve_wrapper(), WLS_t::u, WLS_t::u_max, WLS_t::u_min, WLS_t::u_pref, UNUSED, WLS_t::v, WLS_t::Wu, and WLS_t::Wv.
Referenced by oneloop_andi_run().