[scheduling] harmonize efficiency scheduling modules (#3182)

- harmonize name
- make a 'generic' module with basic linear scheduling
- old ctrl_effectiveness_scheduling was very specific to cyfoam, so
  renamed
- add falcon scheduler, related airframe will come later
This commit is contained in:
Gautier Hattenberger
2023-11-25 22:16:03 +01:00
committed by GitHub
parent 44a3abb977
commit 68ddea1e3f
17 changed files with 465 additions and 140 deletions
@@ -1,22 +0,0 @@
<!DOCTYPE module SYSTEM "module.dtd">
<module name="ctrl_effectiveness_scheduling" dir="ctrl">
<doc>
<description>
Interpolation of control effectivenss matrix.
This is necessary if the vehicle has different operating points,
with significantly different control effectivenss.
If instead using online adaptation is an option, be sure to
not use this module at the same time!
</description>
</doc>
<header>
<file name="ctrl_effectiveness_scheduling.h"/>
</header>
<init fun="ctrl_eff_scheduling_init()"/>
<periodic fun="ctrl_eff_scheduling_periodic()" freq="20"/>
<makefile>
<file name="ctrl_effectiveness_scheduling.c"/>
</makefile>
</module>
+24
View File
@@ -0,0 +1,24 @@
<!DOCTYPE module SYSTEM "module.dtd">
<module name="eff_scheduling_cyfoam" dir="ctrl">
<doc>
<description>
Interpolation of control effectiveness matrix for Cyfoam tailsitter.
The configuration of Cyfoam is a tailsitter with 2 propellers
blowing a wing with 2 flaps. A minimum amont of thrust is thus
required to have enough control on moments, especially pitch moment.
Two scheduling functions are available, controlled by the flag
INDI_FUNCTIONS_RC_CHANNEL, which indicates the RC channel to be used.
</description>
</doc>
<header>
<file name="eff_scheduling_cyfoam.h"/>
</header>
<init fun="eff_scheduling_cyfoam_init()"/>
<periodic fun="eff_scheduling_cyfoam_periodic()" freq="20"/>
<makefile>
<file name="eff_scheduling_cyfoam.c"/>
</makefile>
</module>
+24
View File
@@ -0,0 +1,24 @@
<!DOCTYPE module SYSTEM "module.dtd">
<module name="eff_scheduling_falcon" dir="ctrl">
<doc>
<description>
Interpolation of control effectivenss matrix of the Falcon hybride plane
The configuation of Falcon is a tailsitter with 4 propellers mounted as a
regular quadcopter and a wing in the middle with 2 ailevons. The ailevons
are only used for roll and pitch with sufficient forward speed. This module
is in charge of disabling them at low speed / high angle of attack when
they have no more efficiency.
</description>
</doc>
<header>
<file name="eff_scheduling_falcon.h"/>
</header>
<init fun="eff_scheduling_falcon_init()"/>
<periodic fun="eff_scheduling_falcon_periodic()" freq="20.0"/>
<periodic fun="eff_scheduling_falcon_report()" freq="0.5" autorun="FALSE"/> <!-- TRUE FALSE-->
<makefile target="ap|nps" firmware="rotorcraft" >
<file name="eff_scheduling_falcon.c"/>
</makefile>
</module>
+24
View File
@@ -0,0 +1,24 @@
<!DOCTYPE module SYSTEM "module.dtd">
<module name="eff_scheduling_generic" dir="ctrl">
<doc>
<description>
Interpolation of control effectivenss matrix.
This is necessary if the vehicle has different operating points,
with significantly different control effectivenss.
Interpolation is linear between two points, usually hover and
forward conditions.
If instead using online adaptation is an option, be sure to
not use this module at the same time!
</description>
</doc>
<header>
<file name="eff_scheduling_generic.h"/>
</header>
<init fun="eff_scheduling_generic_init()"/>
<periodic fun="eff_scheduling_generic_periodic()" freq="20"/>
<makefile>
<file name="eff_scheduling_generic.c"/>
</makefile>
</module>
@@ -1,7 +1,8 @@
<!DOCTYPE module SYSTEM "module.dtd">
<module name="ctrl_eff_sched_rot_wing" dir="ctrl">
<module name="eff_scheduling_rot_wing" dir="ctrl">
<doc>
<description>The control effectiveness scheduler for the rotating wing quadplane drone type
<description>T
he control effectiveness scheduler for the rotating wing quadplane drone type
- it requires a servo called ROTATION_MECH
</description>
<section name="ROT_WING" prefix="ROT_WING_EFF_SCHED_">
@@ -18,12 +19,12 @@
</section>
</doc>
<header>
<file name="ctrl_eff_sched_rot_wing.h"/>
<file name="eff_scheduling_rot_wing.h"/>
</header>
<init fun="ctrl_eff_sched_rot_wing_init()"/>
<periodic fun="ctrl_eff_sched_rot_wing_periodic()" freq="10.0"/>
<init fun="eff_scheduling_rot_wing_init()"/>
<periodic fun="eff_scheduling_rot_wing_periodic()" freq="10.0"/>
<makefile>
<file name="ctrl_eff_sched_rot_wing.c"/>
<file name="eff_scheduling_rot_wing.c"/>
<test>
<define name="ACTUATORS_NB" value="10"/>
<define name="SERVO_ROTATION_MECH" value="8"/>