fbf4be91e3
from https://github.com/c172p-team/c172p/releases/tag/version%2F2020.4 f0e108bca8ebfde42c8496df84dd580716242a0d
366 lines
13 KiB
XML
366 lines
13 KiB
XML
<?xml version="1.0"?>
|
|
|
|
<!-- KAP 140 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>
|
|
|
|
<filter>
|
|
<name>heading bug backcourse</name>
|
|
<debug>false</debug>
|
|
<type>gain</type>
|
|
<input>
|
|
<condition>
|
|
<less-than>
|
|
<property>autopilot/settings/heading-bug-deg</property>
|
|
<value>180</value>
|
|
</less-than>
|
|
</condition>
|
|
<expression>
|
|
<sum>
|
|
<property>autopilot/settings/heading-bug-deg</property>
|
|
<value>180</value>
|
|
</sum>
|
|
</expression>
|
|
</input>
|
|
<input>
|
|
<expression>
|
|
<sum>
|
|
<value>-180</value>
|
|
<property>autopilot/settings/heading-bug-deg</property>
|
|
</sum>
|
|
</expression>
|
|
</input>
|
|
<output>
|
|
<property>autopilot/settings/heading-bug-deg-backcourse</property>
|
|
</output>
|
|
</filter>
|
|
|
|
<filter>
|
|
<name>heading bug error computer/normalizer</name>
|
|
<debug>false</debug>
|
|
<type>gain</type>
|
|
|
|
<!-- REV mode -->
|
|
<input>
|
|
<condition>
|
|
<equals>
|
|
<property>/autopilot/KAP140/locks/rev-hold</property>
|
|
<value type="bool">true</value>
|
|
</equals>
|
|
</condition>
|
|
<property>autopilot/settings/heading-bug-deg-backcourse</property>
|
|
<offset>
|
|
<property>instrumentation/heading-indicator/indicated-heading-deg</property>
|
|
<scale>-1.0</scale>
|
|
</offset>
|
|
</input>
|
|
|
|
<!-- Other modes -->
|
|
<input>
|
|
<property>autopilot/settings/heading-bug-deg</property>
|
|
<offset>
|
|
<property>instrumentation/heading-indicator/indicated-heading-deg</property>
|
|
<scale>-1.0</scale>
|
|
</offset>
|
|
</input>
|
|
<output>autopilot/internal/heading-bug-error-deg</output>
|
|
<period>
|
|
<min>-180</min>
|
|
<max>180</max>
|
|
</period>
|
|
<gain>1.0</gain>
|
|
</filter>
|
|
|
|
<!-- =============================================================== -->
|
|
<!-- Roll Axis Modes -->
|
|
<!-- =============================================================== -->
|
|
|
|
<!-- Nav hold (NAV) Mode -->
|
|
<pid-controller>
|
|
<name>Nav hold (NAV) Mode</name>
|
|
<debug>false</debug>
|
|
<enable>
|
|
<property>/autopilot/KAP140/locks/nav-hold</property>
|
|
<value type="bool">true</value>
|
|
</enable>
|
|
<input>
|
|
<property>/instrumentation/nav/heading-needle-deflection</property>
|
|
</input>
|
|
<reference>
|
|
<value>0.0</value>
|
|
</reference>
|
|
<output>
|
|
<property>/autopilot/KAP140/settings/target-intercept-angle</property>
|
|
</output>
|
|
<config>
|
|
<Kp>2.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>15.0</Ti> <!-- integrator time -->
|
|
<Td>0.0</Td> <!-- derivator time -->
|
|
<u_min>-45.0</u_min> <!-- minimum output clamp -->
|
|
<u_max>45.0</u_max> <!-- maximum output clamp -->
|
|
</config>
|
|
</pid-controller>
|
|
|
|
<!-- Approach hold (APR) Mode -->
|
|
<pid-controller>
|
|
<name>Approach hold (APR) Mode</name>
|
|
<debug>false</debug>
|
|
<enable>
|
|
<property>/autopilot/KAP140/locks/apr-hold</property>
|
|
<value type="bool">true</value>
|
|
</enable>
|
|
<input>
|
|
<property>/instrumentation/nav/heading-needle-deflection</property>
|
|
</input>
|
|
<reference>
|
|
<value>0.0</value>
|
|
</reference>
|
|
<output>
|
|
<property>/autopilot/KAP140/settings/target-intercept-angle</property>
|
|
</output>
|
|
<config>
|
|
<Kp>2.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>15.0</Ti> <!-- integrator time -->
|
|
<Td>0.001</Td> <!-- derivator time -->
|
|
<u_min>-45.0</u_min> <!-- minimum output clamp -->
|
|
<u_max>45.0</u_max> <!-- maximum output clamp -->
|
|
</config>
|
|
</pid-controller>
|
|
|
|
<!-- Backcourse hold (REV) Mode -->
|
|
<pid-controller>
|
|
<name>Backcourse hold (REV) Mode</name>
|
|
<debug>false</debug>
|
|
<enable>
|
|
<property>/autopilot/KAP140/locks/rev-hold</property>
|
|
<value type="bool">true</value>
|
|
</enable>
|
|
<input>
|
|
<property>/instrumentation/nav/heading-needle-deflection</property>
|
|
<scale>-1.0</scale>
|
|
</input>
|
|
<reference>
|
|
<value>0.0</value>
|
|
</reference>
|
|
<output>
|
|
<property>/autopilot/KAP140/settings/target-intercept-angle</property>
|
|
</output>
|
|
<config>
|
|
<Kp>2.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>15.0</Ti> <!-- integrator time -->
|
|
<Td>0.0</Td> <!-- derivator time -->
|
|
<u_min>-45.0</u_min> <!-- minimum output clamp -->
|
|
<u_max>45.0</u_max> <!-- maximum output clamp -->
|
|
</config>
|
|
</pid-controller>
|
|
|
|
<!-- Heading Select (HDG) Mode -->
|
|
<pid-controller>
|
|
<name>Heading Select (HDG) Mode</name>
|
|
<debug>false</debug>
|
|
<enable>
|
|
<property>/autopilot/KAP140/locks/hdg-hold</property>
|
|
<value type="bool">true</value>
|
|
</enable>
|
|
<input>
|
|
<property>/autopilot/internal/heading-bug-error-deg</property>
|
|
<!-- <property>/instrumentation/gps/true-bug-error-deg</property> -->
|
|
</input>
|
|
<reference>
|
|
<property>/autopilot/KAP140/settings/target-intercept-angle</property>
|
|
</reference>
|
|
<output>
|
|
<property>/autopilot/KAP140/settings/target-turn-rate</property>
|
|
</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>15.0</Ti> <!-- integrator time -->
|
|
<Td>0.0</Td> <!-- derivator time -->
|
|
<u_min>-1.0</u_min> <!-- minimum output clamp -->
|
|
<u_max>1.0</u_max> <!-- maximum output clamp -->
|
|
</config>
|
|
</pid-controller>
|
|
|
|
<!-- Wing leveler (ROL) Mode -->
|
|
<pid-controller>
|
|
<name>Wing Leveler (ROL) Mode</name>
|
|
<debug>false</debug>
|
|
<enable>
|
|
<property>/autopilot/KAP140/locks/roll-axis</property>
|
|
<value type="bool">true</value>
|
|
</enable>
|
|
<input>
|
|
<property>/instrumentation/turn-indicator/indicated-turn-rate</property>
|
|
</input>
|
|
<reference>
|
|
<property>/autopilot/KAP140/settings/target-turn-rate</property>
|
|
</reference>
|
|
<output>
|
|
<property>/controls/flight/aileron</property>
|
|
</output>
|
|
<config>
|
|
<Kp>0.15</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>15.0</Ti> <!-- integrator time -->
|
|
<Td>0.0</Td> <!-- derivator time -->
|
|
<u_min>-0.25</u_min> <!-- minimum output clamp -->
|
|
<u_max>0.25</u_max> <!-- maximum output clamp -->
|
|
</config>
|
|
</pid-controller>
|
|
|
|
<!-- =============================================================== -->
|
|
<!-- Pitch Axis Modes -->
|
|
<!-- =============================================================== -->
|
|
|
|
<!-- Altitude Hold (ALT) Mode -->
|
|
<pid-controller>
|
|
<name>Altitude Hold (ALT) Mode</name>
|
|
<debug>false</debug>
|
|
<enable>
|
|
<property>/autopilot/KAP140/locks/alt-hold</property>
|
|
<value type="bool">true</value>
|
|
</enable>
|
|
<input>
|
|
<property>/systems/static[0]/pressure-inhg[0]</property>
|
|
</input>
|
|
<reference>
|
|
<property>/autopilot/KAP140/settings/target-alt-pressure</property>
|
|
</reference>
|
|
<output>
|
|
<property>/autopilot/KAP140/settings/target-pressure-rate</property>
|
|
</output>
|
|
<config>
|
|
<Kp>0.125</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>12.0</Ti> <!-- integrator time -->
|
|
<Td>0.0</Td> <!-- derivator time -->
|
|
<u_min>-0.007</u_min> <!-- minimum output clamp -->
|
|
<u_max>0.007</u_max> <!-- maximum output clamp -->
|
|
</config>
|
|
</pid-controller>
|
|
|
|
<!-- Glideslope Hold (GS) Mode -->
|
|
<pid-controller>
|
|
<name>Glideslope Hold (GS) Mode</name>
|
|
<debug>false</debug>
|
|
<enable>
|
|
<property>/autopilot/KAP140/locks/gs-hold</property>
|
|
<value type="bool">true</value>
|
|
</enable>
|
|
<input>
|
|
<property>/instrumentation/nav/gs-needle-deflection-norm</property>
|
|
</input>
|
|
<reference>
|
|
<value>0.0</value>
|
|
</reference>
|
|
<output>
|
|
<property>/autopilot/KAP140/settings/target-pressure-rate</property>
|
|
</output>
|
|
<config>
|
|
<Kp>0.025</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>15.0</Ti> <!-- integrator time -->
|
|
<Td>0.0</Td> <!-- derivator time -->
|
|
<u_min>-0.001</u_min> <!-- minimum output clamp -->
|
|
<u_max>0.017</u_max> <!-- maximum output clamp -->
|
|
</config>
|
|
</pid-controller>
|
|
|
|
<filter>
|
|
<name>static port pressure rate computer</name>
|
|
<debug>false</debug>
|
|
<type>derivative</type>
|
|
<input>
|
|
<property>systems/static[0]/pressure-inhg</property>
|
|
</input>
|
|
<output>
|
|
<property>autopilot/internal/pressure-rate</property>
|
|
</output>
|
|
<filter-time>1.0</filter-time>
|
|
</filter>
|
|
|
|
<filter>
|
|
<name>pressure-rate-filter</name>
|
|
<debug>false</debug>
|
|
<type>double-exponential</type>
|
|
<input>
|
|
<property>/autopilot/internal/pressure-rate</property>
|
|
</input>
|
|
<output>
|
|
<property>/autopilot/internal/filtered-pressure-rate</property>
|
|
</output>
|
|
<filter-time>0.1</filter-time>
|
|
</filter>
|
|
|
|
<filter>
|
|
<name>conversion to fpm</name>
|
|
<debug>false</debug>
|
|
<type>gain</type>
|
|
<input>
|
|
<property>/autopilot/KAP140/settings/target-pressure-rate</property>
|
|
</input>
|
|
<output>
|
|
<property>/autopilot/KAP140/settings/target-pressure-rate-fpm</property>
|
|
</output>
|
|
<gain>-58000</gain>
|
|
</filter>
|
|
|
|
<!-- Vertical Speed (VS) Mode -->
|
|
<pid-controller>
|
|
<name>Vertical Speed (VS) Mode</name>
|
|
<debug>false</debug>
|
|
<enable>
|
|
<property>/autopilot/KAP140/locks/pitch-axis</property>
|
|
<value type="bool">true</value>
|
|
</enable>
|
|
<input>
|
|
<property>/autopilot/internal/filtered-pressure-rate</property>
|
|
</input>
|
|
<reference>
|
|
<property>/autopilot/KAP140/settings/target-pressure-rate</property>
|
|
</reference>
|
|
<output>
|
|
<property>/controls/flight/elevator</property>
|
|
</output>
|
|
<config>
|
|
<Kp>5.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>4.0</Ti> <!-- integrator time -->
|
|
<Td>0.0</Td> <!-- derivator time -->
|
|
<u_min>-0.5</u_min> <!-- minimum output clamp -->
|
|
<u_max>0.5</u_max> <!-- maximum output clamp -->
|
|
</config>
|
|
</pid-controller>
|
|
|
|
</PropertyList>
|