<?xml version="1.0"?>



<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.015</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>
        <!-- =============================================================== -->
        <!-- Roll Axis Modes                                                 -->
	<!-- =============================================================== -->
        
       
        
        
        <!-- =============================================================== -->
        <!--   True Heading                                        -->
	<!-- =============================================================== -->
        
	
	<!-- 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>30.0</Ti>        <!-- integrator time -->
			<Td>0.01</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>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.015</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>
        
        <!-- =============================================================== -->
        <!--   True Heading                                        -->
	<!-- =============================================================== -->
        
	
    =============================================================== -->
	<!-- 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>
			<beta>1.0</beta>
			<alpha>0.1</alpha>
			<gamma>0.0</gamma>

			<Ti>1.0</Ti>
			<Td>0.00001</Td>
			<u_min>-1.0</u_min>
			<u_max>1.0</u_max>
		</config>
	</pid-controller>
        <!-- =============================================================== -->
        <!-- Pitch Axis Modes                                                -->
	<!-- =============================================================== -->

	
        
        <!-- ============================================================== -->
        <!-- Altitude  Hold--> 
        <!-- ============================================================== -->
	
	<!-- 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.1</Kp>          <!-- proportional gain -->
			<Ki>0.01</Ki>          <!-- integral gain -->
			<u_min>-10</u_min> <!-- minimum output clamp -->
			<u_max>10</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.002</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>
        
        <!-- ============================================================== -->
        <!-- Altitude  Hold--> 
        <!-- ============================================================== -->
	
	
	
	
	<!-- =============================================================== -->
	<!-- 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>/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.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>20.0</Ti>       <!-- integrator time -->
			<Td>0.1</Td>    <!-- derivator time -->
			<u_min>0.0</u_min>  <!-- minimum output clamp -->
			<u_max>1.0</u_max>  <!-- maximum output clamp -->
		</config>
	</pid-controller>
	
	
	
</PropertyList>
