![]() |
Paparazzi UAS v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
|
This is an active set algorithm for WLS control allocation. More...
#include "wls_alloc.h"
#include "std.h"
#include <string.h>
#include <math.h>
#include <float.h>
#include "math/qr_solve/qr_solve.h"
#include "math/qr_solve/r8lib_min.h"
#include "modules/datalink/telemetry.h"
Go to the source code of this file.
Macros | |
#define | WLS_VERBOSE FALSE |
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) |
static void | qr_solve_wrapper (int m, int n, float **A, float *b, float *x) |
Wrapper for qr solve. | |
void | wls_alloc (struct WLS_t *WLS_p, float **B, float *u_guess, float *W_init, int imax) |
active set algorithm for control allocation | |
This is an active set algorithm for WLS control allocation.
This algorithm will find the optimal inputs to produce the least error wrt the control objective, taking into account the weighting matrices on the control objective and the control effort.
The algorithm is described in: Prioritized Control Allocation for Quadrotors Subject to Saturation - E.J.J. Smeur, D.C. Höppener, C. de Wagter. In IMAV 2017
written by Anton Naruta && Daniel Hoppener 2016 MAVLab Delft University of Technology
Definition in file wls_alloc.c.
Definition at line 49 of file wls_alloc.c.
Wrapper for qr solve.
Possible to use a different solver if needed. Solves a system of the form Ax = b for x.
m | number of rows |
n | number of columns |
Definition at line 92 of file wls_alloc.c.
References A, b, foo, and qr_solve().
Referenced by wls_alloc().
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.
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.
Referenced by send_wls_v_oneloop(), and send_wls_v_stab().
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, foo, lambda, p, qr_solve_wrapper(), and UNUSED.
Referenced by guidance_indi_run(), oneloop_andi_run(), and stabilization_indi_rate_run().