<?xml version="1.0"?>

<!--

    Autopilot Version 6.1 Configuration for the 737.

    -->

<!--

    This is still in development, so not all of the controllers are

    currently used, or work properly.

-->

<PropertyList>





  <!-- =============================================================== -->

  <!-- Prediction filters                                              -->

  <!-- =============================================================== -->



  <predict-simple>

     <input>/autopilot/internal/nav1-track-error-deg</input>

     <output>/autopilot/internal/nav1-track-error-lookahead-deg</output>

     <seconds>8.0</seconds>

     <filter-gain>0.0</filter-gain>

  </predict-simple>

	<!--

    ===============

    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/fdm-heading-bug-error-deg</prop>

		</input>

		<reference>

			<value>0.0</value>

		</reference>

		<output>

			<prop>/autopilot/internal/target-roll-deg</prop>

		</output>

		<config>

			<Kp>-1.3</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>40.0</Ti>

			<!-- integrator time -->

			<Td>0.00001</Td>

			<!-- derivator time -->

			<u_min>-30.0</u_min>

			<!-- minimum output clamp -->

			<u_max>30.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.2</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.2</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.2</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.0001</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 nav1-heading-error-deg.

-->

	<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.3</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>40</Ti>

			<!-- integrator time -->

			<Td>0.00001</Td>

			<!-- derivator time -->

			<u_min>-30.0</u_min>

			<!-- minimum output clamp -->

			<u_max>30.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.2</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.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>5.0</Ti>

			<!-- integrator time -->

			<Td>0.1</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 pitch hold with yoke -->

	<pid-controller>

		<name>Pitch hold w/ yoke</name>

		<debug>false</debug>

		<enable>

			<prop>/autopilot/locks/altitude</prop>

			<value>pitch-hold-yoke</value>

		</enable>

		<input>

			<prop>/orientation/pitch-deg</prop>

		</input>

		<reference>

			<prop>/autopilot/settings/target-pitch-deg</prop>

		</reference>

		<output>

			<prop>/controls/flight/elevator</prop>

		</output>

		<config>

			<Kp>-0.05</Kp>

			<!-- proportional gain (was 0.05)-->

			<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>.5</Ti>

			<!-- integrator time (was 1.0) -->

			<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.

-->

	



  <!-- 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-->

      <prop>/instrumentation/altimeter/indicated-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.05</Kp>          <!-- proportional gain -->

      <Ki>0.0</Ki>          <!-- integral gain -->

      <u_min>-16.67</u_min> <!-- minimum output clamp -->

      <u_max>33.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</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.

-->

	<pid-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>

			<beta>1.0</beta>

			<!-- input value weighing factor -->

			<u_min>-33.33</u_min>

			<!-- minimum output clamp -->

			<u_max>33.33</u_max>

			<!-- maximum output clamp -->

		</config>

	</pid-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>afl-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.001</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</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.007</Kp>      

      <beta>1.0</beta>    

      <alpha>0.1</alpha>  

      <gamma>0.0</gamma>  

                          

      <Ti>40.0</Ti>       

      <Td>0.000001</Td>    

      <u_min>-2.0</u_min> 

      <u_max>2.0</u_max>  

    </config>

  </pid-controller>

	<!--

    ==============

    Velocity Modes

    ==============

-->

	<!-- Simple Auto throttle -->

	<pid-controller>

		<name>Auto Throttle</name>

		<debug>false</debug>

		<enable>

			<prop>/autopilot/locks/speed</prop>

			<value>speed-with-throttle</value>

		</enable>

		<input>

			<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>

		</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.001</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 (Two stage cascading controller) -->

	<pid-controller>

		<name>Speed hold (vary pitch) Stage #1</name>

		<debug>false</debug>

		<enable>

			<prop>/autopilot/locks/speed</prop>

			<value>speed-with-pitch</value>

		</enable>

		<input>

			<prop>/velocities/airspeed-kt</prop>

		</input>

		<reference>

			<prop>/autopilot/settings/target-speed-kt</prop>

		</reference>

		<output>

			<prop>/autopilot/settings/target-pitch-deg</prop>

		</output>

		<config>

			<Kp>.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.2</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) 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>

	<!-- ==========================================================-->

	<!-- Custom Controllers -->

	<!-- ==========================================================-->

	<!-- Modified pitch hold for take-offs -->

	<pid-controller>

		<name>T-O Pitch hold</name>

		<debug>false</debug>

		<enable>

			<prop>/autopilot/locks/altitude</prop>

			<value>take-off</value>

		</enable>

		<input>

			<prop>/orientation/pitch-deg</prop>

		</input>

		<reference>

			<prop>/autopilot/settings/take-off-pitch-deg</prop>

		</reference>

		<output>

			<prop>/controls/flight/elevator-trim</prop>

		</output>

		<config>

			<Kp>-0.8</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>8.0</Ti>

			<!-- integrator time -->

			<Td>0.1</Td>

			<!-- derivator time -->

			<u_min>-1.0</u_min>

			<!-- minimum output clamp -->

			<u_max>1.0</u_max>

			<!-- maximum output clamp -->

		</config>

	</pid-controller>

	<!-- Modified pitch hold for initial climb-out -->

	<pid-controller>

		<name>Climb Out Pitch hold</name>

		<debug>false</debug>

		<enable>

			<prop>/autopilot/locks/altitude</prop>

			<value>climb-out</value>

		</enable>

		<input>

			<prop>/orientation/pitch-deg</prop>

		</input>

		<reference>

			<prop>/autopilot/settings/climb-out-pitch-deg</prop>

		</reference>

		<output>

			<prop>/controls/flight/elevator-trim</prop>

		</output>

		<config>

			<Kp>-0.06</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.01</Td>

			<!-- derivator time -->

			<u_min>-1.0</u_min>

			<!-- minimum output clamp -->

			<u_max>1.0</u_max>

			<!-- maximum output clamp -->

		</config>

	</pid-controller>

	<!-- Auto throttle (Mach Hold)-->

	<pid-controller>

		<name>Auto Throttle (Mach Hold)</name>

		<debug>false</debug>

		<enable>

			<prop>/autopilot/locks/speed</prop>

			<value>mach-with-throttle</value>

		</enable>

		<input>

			<prop>/velocities/mach</prop>

		</input>

		<reference>

			<prop>/autopilot/settings/target-mach</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>

		</output>

		<config>

			<Kp>20.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>0.0</u_min>

			<!-- minimum output clamp -->

			<u_max>1.0</u_max>

			<!-- maximum output clamp -->

		</config>

	</pid-controller>

	<!--

        Mach Climb Hold.

        Two stage controller based on modified Altitude hold.

        Stage #1 sets target rate of climb based on diff between

        current mach and target mach.

-->

	<pid-controller>

		<name>Mach Lock Climb Stage 1</name>

		<debug>false</debug>

		<enable>

			<prop>/autopilot/locks/altitude</prop>

			<value>mach-climb</value>

		</enable>

		<input>

			<prop>/autopilot/settings/target-mach</prop>

		</input>

		<reference>

			<prop>/velocities/mach</prop>

		</reference>

		<output>

			<prop>/autopilot/internal/target-climb-rate-fps</prop>

		</output>

		<config>

			<Kp>1600.0</Kp>

			<!-- proportional gain -->

			<beta>1.0</beta>

			<!-- input value weighing factor -->

			<alpha>0.01</alpha>

			<!-- low pass filter weighing factor -->

			<gamma>0.0</gamma>

			<!-- input value weighing factor for -->

			<!-- unfiltered derivative error -->

			<Ti>40.0</Ti>

			<!-- integrator time -->

			<Td>0.00001</Td>

			<!-- derivator time -->

			<u_min>-1.0</u_min>

			<!-- minimum output clamp -->

			<u_max>50.0</u_max>

			<!-- maximum output clamp -->

		</config>

	</pid-controller>

	<!-- Stage #2 drives the elevator-trim to achieve the desired climb rate. -->

	<pid-controller>

		<name>Mach lock Climb Stage 2</name>

		<debug>false</debug>

		<enable>

			<prop>/autopilot/locks/altitude</prop>

			<value>mach-climb</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.008</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>

	<!--

        Modified AGL hold for autopilot landing - 2 stage cascade controller.

        Stage #1 sets target rate of climb based on diff between current agl

        and target (zero) agl

-->

	<pid-controller>

		<name>Auto Landing Stage 1</name>

		<debug>false</debug>

		<enable>

			<prop>/autopilot/locks/altitude</prop>

			<value>Touch Down</value>

		</enable>

		<input>

			<prop>/position/altitude-agl-ft</prop>

		</input>

		<reference>

			<value>0.0</value>

		</reference>

		<output>

			<prop>/autopilot/internal/target-climb-rate-fps</prop>

		</output>

		<config>

			<Kp>0.051</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.001</Td>

			<!-- derivator time -->

			<u_min>-12.0</u_min>

			<!-- minimum output clamp -->

			<u_max>-0.10</u_max>

			<!-- maximum output clamp -->

		</config>

	</pid-controller>

	<!-- Stage #2 drives the elevator-trim to achieve the desired climb rate. -->

	<pid-controller>

		<name>Auto Landing Stage 2</name>

		<debug>false</debug>

		<enable>

			<prop>/autopilot/locks/altitude</prop>

			<value>Touch Down</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.02</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>2.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 Ground Roll Rudder Heading Hold -->

	<pid-controller>

		<name>Ground Roll Rudder hold</name>

		<debug>false</debug>

		<enable>

			<prop>/autopilot/locks/rudder-control</prop>

			<value>rudder-hold</value>

		</enable>

		<input>

			<prop>/orientation/heading-deg</prop>

		</input>

		<reference>

			<prop>/autopilot/settings/ground-roll-heading-deg</prop>

		</reference>

		<output>

			<prop>/controls/flight/rudder</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>5.0</Ti>

			<!-- integrator time -->

			<Td>0.1</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 AoA-by-speed Hold -->

	<pid-controller>

		<name>AoA-by-speed Hold</name>

		<debug>false</debug>

		<enable>

			<prop>/autopilot/locks/AoA-lock</prop>

			<value>Engaged</value>

		</enable>

		<input>

			<prop>/orientation/alpha-deg</prop>

		</input>

		<reference>

			<prop>/autopilot/settings/AoA-deg</prop>

		</reference>

		<output>

			<prop>/autopilot/settings/target-speed-kt</prop>

		</output>

		<config>

			<Kp>-3.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.001</Td>

			<!-- derivator time -->

			<u_min>90.0</u_min>

			<!-- minimum output clamp -->

			<u_max>160.0</u_max>

			<!-- maximum output clamp -->

		</config>

	</pid-controller>

	<!-- Simple Flap Control -->

	<pid-controller>

		<name>Simple Flap Control</name>

		<debug>false</debug>

		<enable>

			<prop>/autopilot/locks/auto-flap-control</prop>

			<value>Engaged</value>

		</enable>

		<input>

			<prop>/orientation/alpha-deg</prop>

		</input>

		<reference>

			<prop>/autopilot/settings/auto-flap-target-deg</prop>

		</reference>

		<output>

			<prop>/controls/flight/flaps</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</u_min>

			<!-- minimum output clamp -->

			<u_max>1</u_max>

			<!-- maximum output clamp -->

		</config>

	</pid-controller>

	<!--

    Nav1 hold - Final approach.  2 stage cascade controller.

    Stage #1 sets target roll based on heading-needle-deflection.

-->

	<pid-controller>

		<name>Nav1 Hold Stage 1</name>

		<debug>false</debug>

		<enable>

			<prop>/autopilot/locks/heading</prop>

			<value>nav1-hold-fa</value>

		</enable>

		<input>

			<prop>/instrumentation/nav[0]/heading-needle-deflection</prop>

		</input>

		<reference>

			<value>0.0</value>

		</reference>

		<output>

			<prop>/autopilot/internal/target-roll-deg</prop>

		</output>

		<config>

			<Kp>-10.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>60</Ti>

			<!-- integrator time -->

			<Td>4.0</Td>

			<!-- derivator time -->

			<u_min>-6.0</u_min>

			<!-- minimum output clamp -->

			<u_max>6.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-fa</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.6</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.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 VFPS hold (low-speed) -->

	<pid-controller>

		<name>VFPS Hold (low-speed)</name>

		<debug>false</debug>

		<enable>

			<prop>/autopilot/locks/altitude</prop>

			<value>vfps-hold-ls</value>

		</enable>

		<input>

			<prop>/velocities/vertical-speed-fps</prop>

		</input>

		<reference>

			<prop>/autopilot/settings/target-vfps</prop>

		</reference>

		<output>

			<prop>/controls/flight/elevator-trim</prop>

		</output>

		<config>

			<Kp>-0.018</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>6.0</Ti>

			<!-- integrator time -->

			<Td>0.001</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>

