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

Throttle Curve Mixers

No detailed description...

Example for airframe file

Add to your firmware section: This example contains all possible configuration options, not all of them are mandatory!

<module name="heli_throttle_curve">
b'<define name="THROTTLE_CURVE_RPM_FB_P" value="0" />\n '
b'<define name="THROTTLE_CURVE_RPM_FB_I" value="0" />\n '
b'<define name="THROTTLE_CURVE_RPM_INC_LIMIT" value="512" />\n '
b'<define name="THROTTLE_CURVE_ACT_FEEDBACK_ID" value="ABI_BROADCAST" />\n '
b'<define name="THROTTLE_CURVE_RPM_ACT" value="0" />\n '
</module>

Module configuration options

Define Options

  • name: THROTTLE_CURVE_RPM_FB_P value: 0
    Description: The RPM controller feeadback P gain of the PI controller
  • name: THROTTLE_CURVE_RPM_FB_I value: 0
    Description: The RPM controller feeadback I gain of the PI controller
  • name: THROTTLE_CURVE_RPM_INC_LIMIT value: 512
    Description: Amount of RPM the controller can increase or decrease per second
  • name: THROTTLE_CURVE_ACT_FEEDBACK_ID value: ABI_BROADCAST
    Description: The ABI sender ID to listen for RPM messages
  • name: THROTTLE_CURVE_RPM_ACT value: 0
    Description: The RPM message motor index (generated from airframe.h)

Module functions

Init Functions

These initialization functions are called once on startup.

Files

Header Files

The following headers are automatically included in modules.h

Source Files

Raw heli_throttle_curve.xml file:

<!DOCTYPE module SYSTEM "module.dtd">
<module name="heli_throttle_curve" dir="helicopter">
<doc>
<description>Throttle Curve Mixers</description>
<define name="THROTTLE_CURVE_RPM_FB_P" value="0" description="The RPM controller feeadback P gain of the PI controller"/>
<define name="THROTTLE_CURVE_RPM_FB_I" value="0" description="The RPM controller feeadback I gain of the PI controller"/>
<define name="THROTTLE_CURVE_RPM_INC_LIMIT" value="512" description="Amount of RPM the controller can increase or decrease per second"/>
<define name="THROTTLE_CURVE_ACT_FEEDBACK_ID" value="ABI_BROADCAST" description="The ABI sender ID to listen for RPM messages"/>
<define name="THROTTLE_CURVE_RPM_ACT" value="0" description="The RPM message motor index (generated from airframe.h)"/>
</doc>
<settings>
<dl_settings>
<dl_settings NAME="ThrottleCurve">
<dl_setting var="throttle_curve.rpm_fb_p" min="0.00" step="0.005" max="100" shortname="rpm_fb_p" param="THROTTLE_CURVE_RPM_FB_P" />
<dl_setting var="throttle_curve.rpm_fb_i" min="0.00" step="0.005" max="100" shortname="rpm_fb_i" param="THROTTLE_CURVE_RPM_FB_I" />
<dl_setting var="throttle_curve.throttle_trim" min="-9600" step="0" max="9600" shortname="throttle_trim" />
</dl_settings>
</dl_settings>
</settings>
<header>
<file name="throttle_curve.h"/>
</header>
<init fun="throttle_curve_init()"/>
<makefile target="ap">
<file name="throttle_curve.c"/>
<define name="USE_THROTTLE_CURVES" value="TRUE"/>
<test firmware="rotorcraft">
<define name="THROTTLE_CURVE_RPM_ACT" value="0"/>
<define name="THROTTLE_POINTS_NB" value="3"/>
<define name="THROTTLE_CURVES_NB" value="2"/>
<define name="THROTTLE_CURVES" value="{{0}}"/>
<define name="THROTTLE_CURVE_MODE_INIT" value="0"/>
<define name="RADIO_FMODE" value="0"/>
<define name="COMMAND_COLLECTIVE" value="0"/>
</test>
</makefile>
</module>