1
0
Fork 0
fgdata/Aircraft/c172p/Systems/KAP140.xml
Stuart Buchanan f44db83b25 Merge of the c172p-detailed
From https://github.com/Juanvvc/c172p-detailed/ release/2016.1
commit 3f33b88bb015a8ee685ab3178932d16d6e072410

A big Thank-You to the c172p-detailed team for their ongoing work.
2016-02-10 21:32:19 +00:00

318 lines
12 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 error computer/normalizer</name>
<debug>false</debug>
<type>gain</type>
<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>