mirror of
https://github.com/paparazzi/paparazzi.git
synced 2026-02-05 18:51:00 +08:00
There is no longer a separated FBW in normal operation for fixedwing, only a single AP task/thread. The code for main_ap is now factorized for all firmwares. Dual MCU support (separated AP and FBW) is still possible, based on the rotorcraft implementation and intermcu pprzlink messages. Relevant code is also factorized and available in all firmwares. The recovery mode (in case of hard fault) is still available for fixedwing with ChibiOS implementation. Only intermcu_uart is supported at the moment. Other options (spi/can) might be added back in the future if really used. Some other evolution are made: - in the radio_control and actuators modules, now integrated to AP and using ABI messages - the message parsing on datalink event (defined in module) that is now properly filtering the messages based on their class and allowing to have multiple callbacks for the same message - cleaning the part of code that were using the old intermcu fixedwing interface
81 lines
5.8 KiB
XML
81 lines
5.8 KiB
XML
<!DOCTYPE module SYSTEM "module.dtd">
|
|
|
|
<module name="stabilization_adaptive_fw" dir="stabilization" task="control">
|
|
<doc>
|
|
<description>
|
|
Adaptive attitude and lateral (heading) control for fixedwing aircraft.
|
|
Mostly based on PID and optional reference generators and feedforward gains.
|
|
An experimental adaptive filter is also included to estimate some parameters, but should not be used for normal operation at the moment.
|
|
</description>
|
|
<section name="HORIZONTAL CONTROL" prefix="H_CTL_">
|
|
<define name="COURSE_PGAIN" value="1.0" description="feedback heading P gain"/>
|
|
<define name="COURSE_DGAIN" value="0.3" description="feedback heading D gain"/>
|
|
<define name="ROLL_MAX_SETPOINT" value="45." description="max roll setpoint" unit="deg"/>
|
|
<define name="PITCH_MAX_SETPOINT" value="30." description="max pitch up setpoint" unit="deg"/>
|
|
<define name="PITCH_MIN_SETPOINT" value="-30." description="max pitch down setpoint" unit="deg"/>
|
|
<define name="ROLL_ATTITUDE_GAIN" value="7500" description="feedback roll P gain"/>
|
|
<define name="ROLL_RATE_GAIN" value="1500" description="feedback roll rate P gain (roll D gain)"/>
|
|
<define name="ROLL_IGAIN" value="100." description="feedback roll I gain"/>
|
|
<define name="ROLL_KFFA" value="0" description="feedforward roll acceleration gain"/>
|
|
<define name="ROLL_KFFD" value="0" description="feedforward roll rate gain"/>
|
|
|
|
<define name="PITCH_PGAIN" value="12000." description="feedback pitch P gain"/>
|
|
<define name="PITCH_DGAIN" value="1.5" description="feedback pitch D gain"/>
|
|
<define name="PITCH_IGAIN" value="400" description="feedback pitch I gain"/>
|
|
<define name="PITCH_KFFA" value="0." description="feedforward pitch acceleration gain"/>
|
|
<define name="PITCH_KFFD" value="0." description="feedforward pitch rate gain"/>
|
|
|
|
<define name="PITCH_OF_ROLL" value="1." description="feedforward pitch of roll coupling" unit="deg"/>
|
|
<define name="AILERON_OF_THROTTLE" value="0.0" description="feedforward roll of throttle coupling"/>
|
|
</section>
|
|
</doc>
|
|
<settings>
|
|
<dl_settings>
|
|
<dl_settings NAME="control horiz">
|
|
<dl_settings NAME="trim">
|
|
<dl_setting MAX="960" MIN="-960" STEP="1" VAR="command_roll_trim" shortname="roll_trim" module="modules/core/commands" param="COMMAND_ROLL_TRIM"/>
|
|
<dl_setting MAX="960" MIN="-960" STEP="1" VAR="command_pitch_trim" shortname="pitch_trim" param="COMMAND_PITCH_TRIM"/>
|
|
<dl_setting MAX="9000" MIN="-9000" STEP="1" VAR="command_yaw_trim" shortname="yaw_trim" param="COMMAND_YAW_TRIM"/>
|
|
</dl_settings>
|
|
<dl_settings NAME="attitude">
|
|
<dl_setting MAX="15000" MIN="0" STEP="250" VAR="h_ctl_roll_attitude_gain" shortname="roll_pgain" param="H_CTL_ROLL_ATTITUDE_GAIN" module="stabilization/stabilization_attitude"/>
|
|
<dl_setting MAX="15000" MIN="0" STEP="250" VAR="h_ctl_roll_rate_gain" shortname="roll_dgain" param="H_CTL_ROLL_RATE_GAIN" module="stabilization/stabilization_attitude"/>
|
|
<dl_setting MAX="5000" MIN="0" STEP="10" VAR="h_ctl_roll_igain" shortname="roll_igain" param="H_CTL_ROLL_IGAIN" handler="SetRollIGain" module="stabilization/stabilization_adaptive"/>
|
|
<dl_setting MAX="25000" MIN="0" STEP="250" VAR="h_ctl_pitch_pgain" shortname="pitch_pgain" param="H_CTL_PITCH_PGAIN" module="stabilization/stabilization_attitude"/>
|
|
<dl_setting MAX="50000" MIN="0" STEP="250" VAR="h_ctl_pitch_dgain" shortname="pitch_dgain" param="H_CTL_PITCH_DGAIN" module="stabilization/stabilization_attitude"/>
|
|
<dl_setting MAX="5000" MIN="0" STEP="10" VAR="h_ctl_pitch_igain" shortname="pitch_igain" param="H_CTL_PITCH_IGAIN" handler="SetPitchIGain" module="stabilization/stabilization_adaptive"/>
|
|
<dl_setting MAX=".3" MIN="0." STEP="0.001" VAR="h_ctl_pitch_of_roll" shortname="pitch_of_roll" param="H_CTL_PITCH_OF_ROLL" module="stabilization/stabilization_attitude"/>
|
|
<dl_setting MAX="5000" MIN="0" STEP="100" VAR="h_ctl_aileron_of_throttle" shortname="aileron_of_throttle" module="stabilization/stabilization_adaptive"/>
|
|
|
|
<dl_setting MAX="60" MIN="0" STEP="1." VAR="h_ctl_roll_max_setpoint" shortname="max_roll" param="H_CTL_ROLL_MAX_SETPOINT" unit="rad" alt_unit="deg"/>
|
|
<dl_setting MAX="1" MIN="0" STEP="1" var="use_airspeed_ratio" values="FALSE|TRUE"/>
|
|
</dl_settings>
|
|
<dl_settings NAME="feedforward">
|
|
<dl_setting MAX="5000" MIN="0" STEP="10" VAR="h_ctl_roll_Kffa" shortname="roll_Kffa" param="H_CTL_ROLL_KFFA"/>
|
|
<dl_setting MAX="5000" MIN="0" STEP="10" VAR="h_ctl_roll_Kffd" shortname="roll_Kffd" param="H_CTL_ROLL_KFFD"/>
|
|
<dl_setting MAX="5000" MIN="0" STEP="10" VAR="h_ctl_pitch_Kffa" shortname="pitch_Kffa" param="H_CTL_PITCH_KFFA"/>
|
|
<dl_setting MAX="5000" MIN="0" STEP="10" VAR="h_ctl_pitch_Kffd" shortname="pitch_Kffd" param="H_CTL_PITCH_KFFD"/>
|
|
</dl_settings>
|
|
<dl_settings name="course">
|
|
<dl_setting MAX="3" MIN="0.1" STEP="0.05" VAR="h_ctl_course_pgain" shortname="course pgain" param="H_CTL_COURSE_PGAIN"/>
|
|
<dl_setting MAX="2" MIN="0" STEP="0.1" VAR="h_ctl_course_dgain" shortname="course dgain"/>
|
|
<dl_setting MAX="2" MIN="0.1" STEP="0.05" VAR="h_ctl_course_pre_bank_correction" shortname="pre bank cor"/>
|
|
<dl_setting MAX="1" MIN="0.02" STEP="0.01" VAR="h_ctl_roll_slew" shortname="roll slew"/>
|
|
</dl_settings>
|
|
</dl_settings>
|
|
</dl_settings>
|
|
</settings>
|
|
<dep>
|
|
<depends>@attitude_command</depends>
|
|
<provides>commands</provides>
|
|
</dep>
|
|
<header>
|
|
<file name="stabilization_attitude.h"/>
|
|
<file name="stabilization_adaptive.h"/>
|
|
</header>
|
|
<init fun="h_ctl_init()"/>
|
|
<makefile target="ap|sim|nps" firmware="fixedwing">
|
|
<file name="stabilization_adaptive.c" dir="$(SRC_FIRMWARE)/stabilization"/>
|
|
</makefile>
|
|
</module>
|