789560ea22
I've finished the emigration of the radiostack, and I've also removed it completely. It turned out that the comm radio is completely implemented in the ATC subsystem. I've changed the affected ATC files to point to /instrumentation/com, but I guess that the maintainer of the ATC code should decide wether to make it configureable, and how. I also had to change some files in Network and Main. The changes in network should be obvious, but the changes in Main were a bit suspect. The files included radiostack.hxx, but they weren't directly depending on radiostack-hxx. They were depending on other files that were included by radiostack.hxx. I got it to compile, but I'm not sure if I included the correct directly depending file. For the data directory I changed every occurrence of /radios/ with /instrumentation/ with this simple one-liner that I found on the net: find -name '*.xml' -type f | xargs perl -pi -e 's/\/radios\//\/instrumentation\//g' Instead of me sending all the files that got changed by this I suggest that you execute the one-liner yourself. Of course I can not guarantee that this will work perfectly, but I considered hand editing to be not an option (I'm lazy). I don't want to test every aircraft to see if everything still works, I think it's better to wait and see if anyone complaints about broken nav radios/instruments.
581 lines
20 KiB
XML
581 lines
20 KiB
XML
<?xml version="1.0"?>
|
|
|
|
<!-- Generic Autopilot Configuration -->
|
|
|
|
<!-- Each component is evaluated in the order specified. You can make up -->
|
|
<!-- property names to pass the result of one component on to a subsequent -->
|
|
<!-- component. -->
|
|
|
|
|
|
<PropertyList>
|
|
|
|
<!-- =============================================================== -->
|
|
<!-- Roll Axis Modes -->
|
|
<!-- =============================================================== -->
|
|
|
|
<!-- Wing leveler -->
|
|
<pid-controller>
|
|
<name>Wing Leveler (Turn Coordinator based)</name>
|
|
<debug>false</debug>
|
|
<enable>
|
|
<prop>/autopilot/locks/heading</prop>
|
|
<value>wing-leveler</value>
|
|
</enable>
|
|
<input>
|
|
<prop>/instrumentation/turn-indicator/indicated-turn-rate</prop>
|
|
</input>
|
|
<reference>
|
|
<value>0.0</value>
|
|
</reference>
|
|
<output>
|
|
<prop>/controls/flight/aileron</prop>
|
|
</output>
|
|
<config>
|
|
<Kp>0.5</Kp> <!-- proportional gain -->
|
|
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
<!-- unfiltered derivative error -->
|
|
<Ti>10.0</Ti> <!-- integrator time -->
|
|
<Td>0.00001</Td> <!-- derivator time -->
|
|
<u_min>-1.0</u_min> <!-- minimum output clamp -->
|
|
<u_max>1.0</u_max> <!-- maximum output clamp -->
|
|
</config>
|
|
</pid-controller>
|
|
|
|
<!-- Heading Bug Hold. 2 stage cascade controller. -->
|
|
|
|
<!-- Stage #1 sets target roll based on diff between current heading -->
|
|
<!-- and heading bug. -->
|
|
<pid-controller>
|
|
<name>Heading Bug Hold (DG based) Stage 1</name>
|
|
<debug>false</debug>
|
|
<enable>
|
|
<prop>/autopilot/locks/heading</prop>
|
|
<value>dg-heading-hold</value>
|
|
</enable>
|
|
<input>
|
|
<prop>/autopilot/internal/heading-bug-error-deg</prop>
|
|
</input>
|
|
<reference>
|
|
<value>0.0</value>
|
|
</reference>
|
|
<output>
|
|
<prop>/autopilot/internal/target-roll-deg</prop>
|
|
</output>
|
|
<config>
|
|
<Kp>-1.0</Kp> <!-- proportional gain -->
|
|
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
<!-- unfiltered derivative error -->
|
|
<Ti>10.0</Ti> <!-- integrator time -->
|
|
<Td>0.00001</Td> <!-- derivator time -->
|
|
<u_min>-20.0</u_min> <!-- minimum output clamp -->
|
|
<u_max>20.0</u_max> <!-- maximum output clamp -->
|
|
</config>
|
|
</pid-controller>
|
|
|
|
<!-- Stage #2 drives the ailerons to achieve the desired roll deg. -->
|
|
<pid-controller>
|
|
<name>Heading Bug Hold (DG based) Stage 2</name>
|
|
<debug>false</debug>
|
|
<enable>
|
|
<prop>/autopilot/locks/heading</prop>
|
|
<value>dg-heading-hold</value>
|
|
</enable>
|
|
<input>
|
|
<prop>/orientation/roll-deg</prop>
|
|
</input>
|
|
<reference>
|
|
<prop>/autopilot/internal/target-roll-deg</prop>
|
|
</reference>
|
|
<output>
|
|
<prop>/controls/flight/aileron</prop>
|
|
</output>
|
|
<config>
|
|
<Kp>0.1</Kp> <!-- proportional gain -->
|
|
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
<!-- unfiltered derivative error -->
|
|
<Ti>10.0</Ti> <!-- integrator time -->
|
|
<Td>0.00001</Td> <!-- derivator time -->
|
|
<u_min>-1.0</u_min> <!-- minimum output clamp -->
|
|
<u_max>1.0</u_max> <!-- maximum output clamp -->
|
|
</config>
|
|
</pid-controller>
|
|
|
|
<!-- True Heading hold. 2 stage cascade controller. -->
|
|
|
|
<!-- Stage #1 sets target roll based on diff between current heading -->
|
|
<!-- and target heading. -->
|
|
<pid-controller>
|
|
<name>True Heading Hold (DG based) Stage 1</name>
|
|
<debug>false</debug>
|
|
<enable>
|
|
<prop>/autopilot/locks/heading</prop>
|
|
<value>true-heading-hold</value>
|
|
</enable>
|
|
<input>
|
|
<prop>/autopilot/internal/true-heading-error-deg</prop>
|
|
</input>
|
|
<reference>
|
|
<value>0.0</value>
|
|
</reference>
|
|
<output>
|
|
<prop>/autopilot/internal/target-roll-deg</prop>
|
|
</output>
|
|
<config>
|
|
<Kp>-1.0</Kp> <!-- proportional gain -->
|
|
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
<!-- unfiltered derivative error -->
|
|
<Ti>10.0</Ti> <!-- integrator time -->
|
|
<Td>0.00001</Td> <!-- derivator time -->
|
|
<u_min>-20.0</u_min> <!-- minimum output clamp -->
|
|
<u_max>20.0</u_max> <!-- maximum output clamp -->
|
|
</config>
|
|
</pid-controller>
|
|
|
|
<!-- Stage #2 drives the ailerons to achieve the desired roll deg. -->
|
|
<pid-controller>
|
|
<name>True Heading Hold (DG based) Stage 2</name>
|
|
<debug>false</debug>
|
|
<enable>
|
|
<prop>/autopilot/locks/heading</prop>
|
|
<value>true-heading-hold</value>
|
|
</enable>
|
|
<input>
|
|
<prop>/orientation/roll-deg</prop>
|
|
</input>
|
|
<reference>
|
|
<prop>/autopilot/internal/target-roll-deg</prop>
|
|
</reference>
|
|
<output>
|
|
<prop>/controls/flight/aileron</prop>
|
|
</output>
|
|
<config>
|
|
<Kp>0.1</Kp> <!-- proportional gain -->
|
|
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
<!-- unfiltered derivative error -->
|
|
<Ti>10.0</Ti> <!-- integrator time -->
|
|
<Td>0.00001</Td> <!-- derivator time -->
|
|
<u_min>-1.0</u_min> <!-- minimum output clamp -->
|
|
<u_max>1.0</u_max> <!-- maximum output clamp -->
|
|
</config>
|
|
</pid-controller>
|
|
|
|
<!-- Nav1 hold. 2 stage cascade controller. -->
|
|
|
|
<!-- Stage #1 sets target roll based on diff between current heading -->
|
|
<!-- and target heading. -->
|
|
<pid-controller>
|
|
<name>Nav1 Hold Stage 1</name>
|
|
<debug>false</debug>
|
|
<enable>
|
|
<prop>/autopilot/locks/heading</prop>
|
|
<value>nav1-hold</value>
|
|
</enable>
|
|
<input>
|
|
<prop>/autopilot/internal/nav1-heading-error-deg</prop>
|
|
</input>
|
|
<reference>
|
|
<value>0.0</value>
|
|
</reference>
|
|
<output>
|
|
<prop>/autopilot/internal/target-roll-deg</prop>
|
|
</output>
|
|
<config>
|
|
<Kp>-1.0</Kp> <!-- proportional gain -->
|
|
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
<!-- unfiltered derivative error -->
|
|
<Ti>10.0</Ti> <!-- integrator time -->
|
|
<Td>0.00001</Td> <!-- derivator time -->
|
|
<u_min>-20.0</u_min> <!-- minimum output clamp -->
|
|
<u_max>20.0</u_max> <!-- maximum output clamp -->
|
|
</config>
|
|
</pid-controller>
|
|
|
|
<!-- Stage #2 drives the ailerons to achieve the desired roll deg. -->
|
|
<pid-controller>
|
|
<name>Nav1 Hold Stage 2</name>
|
|
<debug>false</debug>
|
|
<enable>
|
|
<prop>/autopilot/locks/heading</prop>
|
|
<value>nav1-hold</value>
|
|
</enable>
|
|
<input>
|
|
<prop>/orientation/roll-deg</prop>
|
|
</input>
|
|
<reference>
|
|
<prop>/autopilot/internal/target-roll-deg</prop>
|
|
</reference>
|
|
<output>
|
|
<prop>/controls/flight/aileron</prop>
|
|
</output>
|
|
<config>
|
|
<Kp>0.1</Kp> <!-- proportional gain -->
|
|
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
<!-- unfiltered derivative error -->
|
|
<Ti>10.0</Ti> <!-- integrator time -->
|
|
<Td>0.00001</Td> <!-- derivator time -->
|
|
<u_min>-1.0</u_min> <!-- minimum output clamp -->
|
|
<u_max>1.0</u_max> <!-- maximum output clamp -->
|
|
</config>
|
|
</pid-controller>
|
|
|
|
|
|
<!-- =============================================================== -->
|
|
<!-- Pitch Axis Modes -->
|
|
<!-- =============================================================== -->
|
|
|
|
<!-- Simple pitch hold -->
|
|
<pid-controller>
|
|
<name>Pitch hold</name>
|
|
<debug>false</debug>
|
|
<enable>
|
|
<prop>/autopilot/locks/altitude</prop>
|
|
<value>pitch-hold</value>
|
|
</enable>
|
|
<input>
|
|
<prop>/orientation/pitch-deg</prop>
|
|
</input>
|
|
<reference>
|
|
<prop>/autopilot/settings/target-pitch-deg</prop>
|
|
</reference>
|
|
<output>
|
|
<prop>/controls/flight/elevator-trim</prop>
|
|
</output>
|
|
<config>
|
|
<Kp>-0.05</Kp> <!-- proportional gain -->
|
|
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
<!-- unfiltered derivative error -->
|
|
<Ti>1.0</Ti> <!-- integrator time -->
|
|
<Td>0.00001</Td> <!-- derivator time -->
|
|
<u_min>-1.0</u_min> <!-- minimum output clamp -->
|
|
<u_max>1.0</u_max> <!-- maximum output clamp -->
|
|
</config>
|
|
</pid-controller>
|
|
|
|
<!-- Simple angle of attack hold -->
|
|
<pid-controller>
|
|
<name>AOA hold</name>
|
|
<debug>false</debug>
|
|
<enable>
|
|
<prop>/autopilot/locks/altitude</prop>
|
|
<value>aoa-hold</value>
|
|
</enable>
|
|
<input>
|
|
<prop>/orientation/alpha-deg</prop>
|
|
</input>
|
|
<reference>
|
|
<prop>/autopilot/settings/target-aoa-deg</prop>
|
|
</reference>
|
|
<output>
|
|
<prop>/controls/flight/elevator-trim</prop>
|
|
</output>
|
|
<config>
|
|
<Kp>-0.05</Kp> <!-- proportional gain -->
|
|
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
<!-- unfiltered derivative error -->
|
|
<Ti>0.5</Ti> <!-- integrator time -->
|
|
<Td>0.00001</Td> <!-- derivator time -->
|
|
<u_min>-1.0</u_min> <!-- minimum output clamp -->
|
|
<u_max>1.0</u_max> <!-- maximum output clamp -->
|
|
</config>
|
|
</pid-controller>
|
|
|
|
<!-- Altitude hold. 2 stage cascade controller. -->
|
|
|
|
<!-- Stage #1 sets target rate of climb based on diff between current alt -->
|
|
<!-- and target altitude. -->
|
|
<pi-simple-controller>
|
|
<name>Altitude Hold (Altimeter based) Stage 1</name>
|
|
<debug>false</debug>
|
|
<enable>
|
|
<prop>/autopilot/locks/altitude</prop>
|
|
<value>altitude-hold</value>
|
|
</enable>
|
|
<input>
|
|
<prop>/position/altitude-ft</prop>
|
|
</input>
|
|
<reference>
|
|
<prop>/autopilot/settings/target-altitude-ft</prop>
|
|
</reference>
|
|
<output>
|
|
<prop>/autopilot/internal/target-climb-rate-fps</prop>
|
|
</output>
|
|
<config>
|
|
<Kp>0.3</Kp> <!-- proportional gain -->
|
|
<Ki>0.0</Ki> <!-- integral gain -->
|
|
<u_min>-16.67</u_min> <!-- minimum output clamp -->
|
|
<u_max>8.33</u_max> <!-- maximum output clamp -->
|
|
</config>
|
|
</pi-simple-controller>
|
|
|
|
<!-- Stage #2 drives the elevator-trim to achieve the desired climb rate. -->
|
|
<pid-controller>
|
|
<name>Altitude Hold (Altimeter based) Stage 2</name>
|
|
<debug>false</debug>
|
|
<enable>
|
|
<prop>/autopilot/locks/altitude</prop>
|
|
<value>altitude-hold</value>
|
|
</enable>
|
|
<input>
|
|
<prop>/velocities/vertical-speed-fps</prop>
|
|
</input>
|
|
<reference>
|
|
<prop>/autopilot/internal/target-climb-rate-fps</prop>
|
|
</reference>
|
|
<output>
|
|
<prop>/controls/flight/elevator-trim</prop>
|
|
</output>
|
|
<config>
|
|
<Kp>-0.01</Kp> <!-- proportional gain -->
|
|
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
<!-- unfiltered derivative error -->
|
|
<Ti>10.0</Ti> <!-- integrator time -->
|
|
<Td>0.00001</Td> <!-- derivator time -->
|
|
<u_min>-1.0</u_min> <!-- minimum output clamp -->
|
|
<u_max>1.0</u_max> <!-- maximum output clamp -->
|
|
</config>
|
|
</pid-controller>
|
|
|
|
<!-- AGL hold. 2 stage cascade controller. -->
|
|
|
|
<!-- Stage #1 sets target rate of climb based on diff between current agl -->
|
|
<!-- and target agl. -->
|
|
<pi-simple-controller>
|
|
<name>AGL Hold (Altimeter based) Stage 1</name>
|
|
<debug>false</debug>
|
|
<enable>
|
|
<prop>/autopilot/locks/altitude</prop>
|
|
<value>agl-hold</value>
|
|
</enable>
|
|
<input>
|
|
<prop>/position/altitude-agl-ft</prop>
|
|
</input>
|
|
<reference>
|
|
<prop>/autopilot/settings/target-agl-ft</prop>
|
|
</reference>
|
|
<output>
|
|
<prop>/autopilot/internal/target-climb-rate-fps</prop>
|
|
</output>
|
|
<config>
|
|
<Kp>0.3</Kp> <!-- proportional gain -->
|
|
<Ki>0.0</Ki> <!-- integral gain -->
|
|
<u_min>-16.67</u_min> <!-- minimum output clamp -->
|
|
<u_max>8.33</u_max> <!-- maximum output clamp -->
|
|
</config>
|
|
</pi-simple-controller>
|
|
|
|
<!-- Stage #2 drives the elevator-trim to achieve the desired climb rate. -->
|
|
<pid-controller>
|
|
<name>Altitude Hold (Altimeter based) Stage 2</name>
|
|
<debug>false</debug>
|
|
<enable>
|
|
<prop>/autopilot/locks/altitude</prop>
|
|
<value>agl-hold</value>
|
|
</enable>
|
|
<input>
|
|
<prop>/velocities/vertical-speed-fps</prop>
|
|
</input>
|
|
<reference>
|
|
<prop>/autopilot/internal/target-climb-rate-fps</prop>
|
|
</reference>
|
|
<output>
|
|
<prop>/controls/flight/elevator-trim</prop>
|
|
</output>
|
|
<config>
|
|
<Kp>-0.01</Kp> <!-- proportional gain -->
|
|
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
<!-- unfiltered derivative error -->
|
|
<Ti>10.0</Ti> <!-- integrator time -->
|
|
<Td>0.00001</Td> <!-- derivator time -->
|
|
<u_min>-1.0</u_min> <!-- minimum output clamp -->
|
|
<u_max>1.0</u_max> <!-- maximum output clamp -->
|
|
</config>
|
|
</pid-controller>
|
|
|
|
<!-- Glideslope hold. -->
|
|
|
|
<!-- Stage #2 drives the elevator-trim to achieve the desired climb rate. -->
|
|
<pid-controller>
|
|
<name>Glideslop Hold</name>
|
|
<debug>false</debug>
|
|
<enable>
|
|
<prop>/autopilot/locks/altitude</prop>
|
|
<value>gs1-hold</value>
|
|
</enable>
|
|
<input>
|
|
<prop>/velocities/vertical-speed-fps</prop>
|
|
</input>
|
|
<reference>
|
|
<prop>/instrumentation/nav[0]/gs-rate-of-climb</prop>
|
|
</reference>
|
|
<output>
|
|
<prop>/controls/flight/elevator-trim</prop>
|
|
</output>
|
|
<config>
|
|
<Kp>-0.01</Kp> <!-- proportional gain -->
|
|
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
<!-- unfiltered derivative error -->
|
|
<Ti>10.0</Ti> <!-- integrator time -->
|
|
<Td>0.00001</Td> <!-- derivator time -->
|
|
<u_min>-1.0</u_min> <!-- minimum output clamp -->
|
|
<u_max>1.0</u_max> <!-- maximum output clamp -->
|
|
</config>
|
|
</pid-controller>
|
|
|
|
<!-- vertical speed hold -->
|
|
<pid-controller>
|
|
<name>Vertical Speed Hold</name>
|
|
<debug>false</debug>
|
|
<enable>
|
|
<prop>/autopilot/locks/altitude</prop>
|
|
<value>vertical-speed-hold</value>
|
|
</enable>
|
|
<input>
|
|
<prop>/velocities/vertical-speed-fps</prop>
|
|
</input>
|
|
<reference>
|
|
<prop>/autopilot/settings/vertical-speed-fpm</prop>
|
|
<scale>0.01667</scale>
|
|
</reference>
|
|
<output>
|
|
<prop>/controls/flight/elevator-trim</prop>
|
|
</output>
|
|
<config>
|
|
<Kp>-0.01</Kp> <!-- proportional gain -->
|
|
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
<!-- unfiltered derivative error -->
|
|
<Ti>10.0</Ti> <!-- integrator time -->
|
|
<Td>0.00001</Td> <!-- derivator time -->
|
|
<u_min>-1.0</u_min> <!-- minimum output clamp -->
|
|
<u_max>1.0</u_max> <!-- maximum output clamp -->
|
|
</config>
|
|
</pid-controller>
|
|
|
|
|
|
<!-- =============================================================== -->
|
|
<!-- Velocity Modes -->
|
|
<!-- =============================================================== -->
|
|
|
|
<!-- Auto throttle -->
|
|
<pid-controller>
|
|
<name>Auto Throttle (5 sec lookahead)</name>
|
|
<debug>false</debug>
|
|
<enable>
|
|
<prop>/autopilot/locks/speed</prop>
|
|
<value>speed-with-throttle</value>
|
|
</enable>
|
|
<input>
|
|
<!-- <prop>/autopilot/internal/lookahead-5-sec-airspeed-kt</prop> -->
|
|
<prop>/velocities/airspeed-kt</prop>
|
|
</input>
|
|
<reference>
|
|
<prop>/autopilot/settings/target-speed-kt</prop>
|
|
</reference>
|
|
<output>
|
|
<prop>/controls/engines/engine[0]/throttle</prop>
|
|
<prop>/controls/engines/engine[1]/throttle</prop>
|
|
<prop>/controls/engines/engine[2]/throttle</prop>
|
|
<prop>/controls/engines/engine[3]/throttle</prop>
|
|
<prop>/controls/engines/engine[4]/throttle</prop>
|
|
<prop>/controls/engines/engine[5]/throttle</prop>
|
|
<prop>/controls/engines/engine[6]/throttle</prop>
|
|
<prop>/controls/engines/engine[7]/throttle</prop>
|
|
</output>
|
|
<config>
|
|
<Kp>0.1</Kp> <!-- proportional gain -->
|
|
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
<!-- unfiltered derivative error -->
|
|
<Ti>10.0</Ti> <!-- integrator time -->
|
|
<Td>0.00001</Td> <!-- derivator time -->
|
|
<u_min>0.0</u_min> <!-- minimum output clamp -->
|
|
<u_max>1.0</u_max> <!-- maximum output clamp -->
|
|
</config>
|
|
</pid-controller>
|
|
|
|
<!-- Hold speed by varying pitch trim (Two stage cascading controller) -->
|
|
<pid-controller>
|
|
<name>Speed hold (vary pitch trim) Stage #1</name>
|
|
<debug>false</debug>
|
|
<enable>
|
|
<prop>/autopilot/locks/speed</prop>
|
|
<value>speed-with-pitch-trim</value>
|
|
</enable>
|
|
<input>
|
|
<prop>/autopilot/internal/lookahead-5-sec-airspeed-kt</prop>
|
|
</input>
|
|
<reference>
|
|
<prop>/autopilot/settings/target-speed-kt</prop>
|
|
</reference>
|
|
<output>
|
|
<prop>/autopilot/settings/target-pitch-deg</prop>
|
|
</output>
|
|
<config>
|
|
<Kp>-1.0</Kp> <!-- proportional gain -->
|
|
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
<!-- unfiltered derivative error -->
|
|
<Ti>1.0</Ti> <!-- integrator time -->
|
|
<Td>0.00001</Td> <!-- derivator time -->
|
|
<u_min>-15.0</u_min><!-- minimum output clamp -->
|
|
<u_max>15.0</u_max> <!-- maximum output clamp -->
|
|
</config>
|
|
</pid-controller>
|
|
|
|
<pid-controller>
|
|
<name>Speed hold (vary pitch trim) Stage #2</name>
|
|
<debug>false</debug>
|
|
<enable>
|
|
<prop>/autopilot/locks/speed</prop>
|
|
<value>speed-with-pitch-trim</value>
|
|
</enable>
|
|
<input>
|
|
<prop>/orientation/pitch-deg</prop>
|
|
</input>
|
|
<reference>
|
|
<prop>/autopilot/settings/target-pitch-deg</prop>
|
|
</reference>
|
|
<output>
|
|
<prop>/controls/flight/elevator-trim</prop>
|
|
</output>
|
|
<config>
|
|
<Kp>-0.05</Kp> <!-- proportional gain -->
|
|
<beta>1.0</beta> <!-- input value weighing factor -->
|
|
<alpha>0.1</alpha> <!-- low pass filter weighing factor -->
|
|
<gamma>0.0</gamma> <!-- input value weighing factor for -->
|
|
<!-- unfiltered derivative error -->
|
|
<Ti>1.0</Ti> <!-- integrator time -->
|
|
<Td>0.00001</Td> <!-- derivator time -->
|
|
<u_min>-1.0</u_min> <!-- minimum output clamp -->
|
|
<u_max>1.0</u_max> <!-- maximum output clamp -->
|
|
</config>
|
|
</pid-controller>
|
|
|
|
</PropertyList>
|