Difference between revisions of "EnergyControl"
Line 1: | Line 1: | ||
Some more info [[http://paparazzi.github.com/docs/latest/energy__ctrl_8c.html#details| Doxygen]] | Some more info [[http://paparazzi.github.com/docs/latest/energy__ctrl_8c.html#details| Doxygen]] | ||
Total Energy (speed + height) control for fixed wing vehicles. | |||
An airspeed sensor is mandatory! | |||
implementation of guidance energy | |||
{{Box Code|conf/airframes/myplane.xml| | |||
<source lang="xml"> | |||
<section name="VERTICAL CONTROL" prefix="V_CTL_"> | |||
<define name="GLIDE_RATIO" value="8."/> | |||
<define name="POWER_CTL_BAT_NOMINAL" value="11.1" unit="volt"/> | |||
<define name="MAX_ACCELERATION" value="0.5"/> | |||
<define name="THROTTLE_SLEW_LIMITER" value="1." unit="s"/> | |||
<define name="ALTITUDE_PGAIN" value="0.13"/> | |||
<define name="ALTITUDE_MAX_CLIMB" value="2."/> <!--default 2--> | |||
<define name="AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE" value="0.3"/> | |||
<define name="AUTO_THROTTLE_NOMINAL_CRUISE_PITCH" value="0."/> <!-- default 0 --> | |||
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.1" unit="%/(m/s)"/> | |||
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.15"/> | |||
<define name="AIRSPEED_PGAIN" value="0.6"/> | |||
<define name="AUTO_THROTTLE_OF_AIRSPEED_PGAIN" value="0.069"/> | |||
<define name="AUTO_THROTTLE_OF_AIRSPEED_IGAIN" value="0.01"/> | |||
<define name="AUTO_PITCH_OF_AIRSPEED_PGAIN" value="0.01"/> | |||
<define name="AUTO_PITCH_OF_AIRSPEED_IGAIN" value="0.003"/> | |||
<define name="AUTO_PITCH_OF_AIRSPEED_DGAIN" value="0.03"/> | |||
<define name="ENERGY_TOT_PGAIN" value="0.3"/> | |||
<define name="ENERGY_TOT_IGAIN" value="0.05"/> | |||
<define name="ENERGY_DIFF_PGAIN" value="0.4"/> | |||
<define name="ENERGY_DIFF_IGAIN" value="0.01"/> | |||
<define name="AUTO_GROUNDSPEED_SETPOINT" value="6.0" unit="m/s"/> | |||
<define name="AUTO_GROUNDSPEED_PGAIN" value="0.75"/> | |||
<define name="AUTO_GROUNDSPEED_IGAIN" value="0.25"/> | |||
</section> | |||
</source> | |||
}} | |||
schematics for guidance energy. They represent only the main part for a better over view. Not included are any kind of safety functions. | |||
[[Image:Energycontrol.png|Energy Control loop]] | |||
Latest revision as of 06:19, 3 July 2015
Some more info [Doxygen]
Total Energy (speed + height) control for fixed wing vehicles. An airspeed sensor is mandatory!
implementation of guidance energy
File: conf/airframes/myplane.xml |
<section name="VERTICAL CONTROL" prefix="V_CTL_">
<define name="GLIDE_RATIO" value="8."/>
<define name="POWER_CTL_BAT_NOMINAL" value="11.1" unit="volt"/>
<define name="MAX_ACCELERATION" value="0.5"/>
<define name="THROTTLE_SLEW_LIMITER" value="1." unit="s"/>
<define name="ALTITUDE_PGAIN" value="0.13"/>
<define name="ALTITUDE_MAX_CLIMB" value="2."/> <!--default 2-->
<define name="AUTO_THROTTLE_NOMINAL_CRUISE_THROTTLE" value="0.3"/>
<define name="AUTO_THROTTLE_NOMINAL_CRUISE_PITCH" value="0."/> <!-- default 0 -->
<define name="AUTO_THROTTLE_CLIMB_THROTTLE_INCREMENT" value="0.1" unit="%/(m/s)"/>
<define name="AUTO_THROTTLE_PITCH_OF_VZ_PGAIN" value="0.15"/>
<define name="AIRSPEED_PGAIN" value="0.6"/>
<define name="AUTO_THROTTLE_OF_AIRSPEED_PGAIN" value="0.069"/>
<define name="AUTO_THROTTLE_OF_AIRSPEED_IGAIN" value="0.01"/>
<define name="AUTO_PITCH_OF_AIRSPEED_PGAIN" value="0.01"/>
<define name="AUTO_PITCH_OF_AIRSPEED_IGAIN" value="0.003"/>
<define name="AUTO_PITCH_OF_AIRSPEED_DGAIN" value="0.03"/>
<define name="ENERGY_TOT_PGAIN" value="0.3"/>
<define name="ENERGY_TOT_IGAIN" value="0.05"/>
<define name="ENERGY_DIFF_PGAIN" value="0.4"/>
<define name="ENERGY_DIFF_IGAIN" value="0.01"/>
<define name="AUTO_GROUNDSPEED_SETPOINT" value="6.0" unit="m/s"/>
<define name="AUTO_GROUNDSPEED_PGAIN" value="0.75"/>
<define name="AUTO_GROUNDSPEED_IGAIN" value="0.25"/>
</section>
|
schematics for guidance energy. They represent only the main part for a better over view. Not included are any kind of safety functions.
Very Quick I'm feeling Lucky Tuning Manual
Start with:
outerloop:
- alt-pgain about 0.1
- speed-pgain about 0.2
innerloop:
- airspeed sp -> make sure it is OK
- cruise_throttle -> your preferred initial cruise throttle: 0.6 ? (this is overruled/adapted by the tot_en_i-gain)
- cruise pitch -> zero or your preferred initial cruise pitch (this is overruled/adapted by the dis_en_i-gain)
- P_en_tot -> 20% of slider
- I_en_tot -> 20% of slider
- P_en_dis -> 20% of slider
- I_en_dis -> 20% of slider
More Step By Step
To allow nice step by step tuning with less risk, I recommend to start with the integrators set to zero.
If you do not thrust your airspeed or IMU you might even start with all en_tot en en_dis gains set to zero but with the throttle_incr gain set to about 0.1 and the pitch_of_vz set to also about 0.1 to turn it into a traditional old-style fixedwing outerloop (without airspeed).
A next possible step is to add a very small bit of I_th_air. This will slowly adapt the cruise throttle to get the correct average airspeed.
...
incomplete ...