Weighted Least Square optimization algorithm.
Used for dynamic allocation of actuators, in particular with INDI-based control algorithms.
The size of the matrix (output vs. objectives) must be defined large enough for all the controllers
Example for airframe file
Add to your firmware section: This example contains all possible configuration options, not all of them are mandatory!
<module name="wls">
b'<define name="WLS_N_U_MAX" value="4" />\n '
b'<define name="WLS_N_V_MAX" value="4" />\n '
</module>
Module configuration options
Define Options
- name:
WLS_N_U_MAX
value: 4
Description: size of the control output vector (default: 6)
- name:
WLS_N_V_MAX
value: 4
Description: size of the control objectives vector (default: 4)
Files
Header Files
The following headers are automatically included in modules.h
Source Files
Raw wls.xml file:
<!DOCTYPE module SYSTEM "module.dtd">
<module name="wls" task="core">
<doc>
<description>
Weighted Least Square optimization algorithm.
Used for dynamic allocation of actuators, in particular
with INDI-based control algorithms.
The size of the matrix (output vs. objectives) must be defined large
enough for all the controllers
</description>
<define name="WLS_N_U_MAX" value="4" description="size of the control output vector (default: 6)"/>
<define name="WLS_N_V_MAX" value="4" description="size of the control objectives vector (default: 4)"/>
</doc>
<header>
<file name="wls_alloc.h" dir="math/wls"/>
</header>
<makefile>
<file name="wls_alloc.c" dir="math/wls"/>
<file name="qr_solve.c" dir="math/qr_solve"/>
<file name="r8lib_min.c" dir="math/qr_solve"/>
<test/>
</makefile>
</module>