Paparazzi UAS  v7.0_unstable
Paparazzi is a free software Unmanned Aircraft System.
gain_scheduling module

Gain set interpolation.

Interpolate between different gain sets for rotorcrafts.

Example for airframe file

Add to your firmware section:

<module name="gain_scheduling"/>

Module functions

Init Functions

These initialization functions are called once on startup.

Periodic Functions

These functions are called periodically at the specified frequency from the module periodic loop.

  • gain_scheduling_periodic()
    • Frequency in Hz: 20
    • Autorun: LOCK
      Periodic function automatically starts after init and can't be stopped.

Files

Header Files

The following headers are automatically included in modules.h

Source Files

Raw gain_scheduling.xml file:

<!DOCTYPE module SYSTEM "module.dtd">
<module name="gain_scheduling" dir="ctrl">
<doc>
<description>
Gain set interpolation.
Interpolate between different gain sets for rotorcrafts.
</description>
</doc>
<settings>
<dl_settings NAME="Gain scheduling">
<dl_settings NAME="gain_set_1">
<dl_setting var="gainlibrary[0].p.x" min="0" step="1" max="3000" module="modules/ctrl/gain_scheduling" shortname="phi_p"/>
<dl_setting var="gainlibrary[0].i.x" min="0" step="1" max="1000" module="modules/ctrl/gain_scheduling" shortname="phi_i"/>
<dl_setting var="gainlibrary[0].d.x" min="0" step="1" max="3000" module="modules/ctrl/gain_scheduling" shortname="phi_d"/>
<dl_setting var="gainlibrary[0].p.y" min="0" step="1" max="3000" module="modules/ctrl/gain_scheduling" shortname="theta_p"/>
<dl_setting var="gainlibrary[0].i.y" min="0" step="1" max="1000" module="modules/ctrl/gain_scheduling" shortname="theta_i"/>
<dl_setting var="gainlibrary[0].d.y" min="0" step="1" max="3000" module="modules/ctrl/gain_scheduling" shortname="theta_d"/>
<dl_setting var="gainlibrary[0].p.z" min="0" step="1" max="3000" module="modules/ctrl/gain_scheduling" shortname="psi_p"/>
<dl_setting var="gainlibrary[0].i.z" min="0" step="1" max="1000" module="modules/ctrl/gain_scheduling" shortname="psi_i"/>
<dl_setting var="gainlibrary[0].d.z" min="0" step="1" max="3000" module="modules/ctrl/gain_scheduling" shortname="psi_d"/>
</dl_settings>
<dl_settings NAME="gain_set_2">
<dl_setting var="gainlibrary[1].p.x" min="0" step="1" max="3000" module="modules/ctrl/gain_scheduling" shortname="phi_p"/>
<dl_setting var="gainlibrary[1].i.x" min="0" step="1" max="1000" module="modules/ctrl/gain_scheduling" shortname="phi_i"/>
<dl_setting var="gainlibrary[1].d.x" min="0" step="1" max="3000" module="modules/ctrl/gain_scheduling" shortname="phi_d"/>
<dl_setting var="gainlibrary[1].p.y" min="0" step="1" max="3000" module="modules/ctrl/gain_scheduling" shortname="theta_p"/>
<dl_setting var="gainlibrary[1].i.y" min="0" step="1" max="1000" module="modules/ctrl/gain_scheduling" shortname="theta_i"/>
<dl_setting var="gainlibrary[1].d.y" min="0" step="1" max="3000" module="modules/ctrl/gain_scheduling" shortname="theta_d"/>
<dl_setting var="gainlibrary[1].p.z" min="0" step="1" max="3000" module="modules/ctrl/gain_scheduling" shortname="psi_p"/>
<dl_setting var="gainlibrary[1].i.z" min="0" step="1" max="1000" module="modules/ctrl/gain_scheduling" shortname="psi_i"/>
<dl_setting var="gainlibrary[1].d.z" min="0" step="1" max="3000" module="modules/ctrl/gain_scheduling" shortname="psi_d"/>
</dl_settings>
</dl_settings>
</settings>
<header>
<file name="gain_scheduling.h"/>
</header>
<init fun="gain_scheduling_init()"/>
<periodic fun="gain_scheduling_periodic()" freq="20"/>
<makefile>
<file name="gain_scheduling.c"/>
</makefile>
</module>