331 lines
8 KiB
XML
331 lines
8 KiB
XML
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||
|
|
||
|
<!-- Airbus A320 autobrake configuration -->
|
||
|
<!-- Adapated from the Boeing 777-200ER -->
|
||
|
|
||
|
<PropertyList>
|
||
|
|
||
|
<logic>
|
||
|
<name>Disabled state</name>
|
||
|
<!-- ensure output is consistent when no mode is selected-->
|
||
|
<enable>
|
||
|
<condition>
|
||
|
<equals>
|
||
|
<property>/autopilot/autobrake/step</property>
|
||
|
<value>0</value>
|
||
|
</equals>
|
||
|
</condition>
|
||
|
</enable>
|
||
|
<input><false/></input>
|
||
|
<output>/autopilot/autobrake/engaged</output>
|
||
|
</logic>
|
||
|
|
||
|
<logic>
|
||
|
<name>Max (RTO in Boeing terms) selected</name>
|
||
|
<input>
|
||
|
<equals>
|
||
|
<property>/autopilot/autobrake/step</property>
|
||
|
<value>3</value>
|
||
|
</equals>
|
||
|
</input>
|
||
|
<output>/autopilot/autobrake/max-selected</output>
|
||
|
</logic>
|
||
|
|
||
|
<logic>
|
||
|
<name>Autobrake Selected</name>
|
||
|
<input>
|
||
|
<greater-than>
|
||
|
<property>/autopilot/autobrake/step</property>
|
||
|
<value>0</value>
|
||
|
</greater-than>
|
||
|
</input>
|
||
|
<output>/autopilot/autobrake/selected</output>
|
||
|
</logic>
|
||
|
|
||
|
<logic>
|
||
|
<name>Throttles At Idle</name>
|
||
|
<input>
|
||
|
<!-- engine 0 -->
|
||
|
<and>
|
||
|
<or>
|
||
|
<less-than>
|
||
|
<property>/controls/engines/engine[0]/throttle</property>
|
||
|
<property>/autopilot/autobrake/config/idle-throttle</property>
|
||
|
</less-than>
|
||
|
<property>/controls/engines/engine[0]/reverser</property>
|
||
|
</or>
|
||
|
<!-- engine 1 -->
|
||
|
<or>
|
||
|
<less-than>
|
||
|
<property>/controls/engines/engine[1]/throttle</property>
|
||
|
<property>/autopilot/autobrake/config/idle-throttle</property>
|
||
|
</less-than>
|
||
|
<property>/controls/engines/engine[1]/reverser</property>
|
||
|
</or>
|
||
|
</and>
|
||
|
</input>
|
||
|
<output>/autopilot/autobrake/throttles-at-idle</output>
|
||
|
</logic>
|
||
|
|
||
|
<logic>
|
||
|
<name>Airborne</name>
|
||
|
<input>
|
||
|
<not><property>/gear/gear/wow</property></not>
|
||
|
</input>
|
||
|
<output>/autopilot/autobrake/airborne</output>
|
||
|
</logic>
|
||
|
|
||
|
<logic>
|
||
|
<name>High-speed</name>
|
||
|
<input>
|
||
|
<greater-than>
|
||
|
<property>/instrumentation/airspeed-indicator/indicated-speed-kt</property>
|
||
|
<value>40</value>
|
||
|
</greater-than>
|
||
|
</input>
|
||
|
<output>/autopilot/autobrake/above-40-kts</output>
|
||
|
</logic>
|
||
|
|
||
|
<logic>
|
||
|
<name>Spoilers deployed</name>
|
||
|
<input>
|
||
|
<greater-than>
|
||
|
<property>/surface-positions/speedbrake-pos-norm</property>
|
||
|
<value>0</value>
|
||
|
</greater-than>
|
||
|
</input>
|
||
|
<output>/autopilot/autobrake/spoilers-deployed</output>
|
||
|
</logic>
|
||
|
|
||
|
<!-- pilot brake input -->
|
||
|
<logic>
|
||
|
<name>Pilot Input</name>
|
||
|
<input>
|
||
|
<less-than>
|
||
|
<property>/autopilot/autobrake/config/pilot-input</property>
|
||
|
<expression>
|
||
|
<max>
|
||
|
<property>/controls/gear/brake-left</property>
|
||
|
<property>/controls/gear/brake-right</property>
|
||
|
</max>
|
||
|
</expression>
|
||
|
</less-than>
|
||
|
</input>
|
||
|
<output>/autopilot/autobrake/pilot-input</output>
|
||
|
</logic>
|
||
|
|
||
|
<flipflop>
|
||
|
<name>Autobrake Engage logic</name>
|
||
|
<debug>false</debug>
|
||
|
<type>RS</type>
|
||
|
<enable>
|
||
|
<condition>
|
||
|
<and>
|
||
|
<property>/autopilot/autobrake/selected</property>
|
||
|
<not>
|
||
|
<property>/autopilot/autobrake/max-selected</property>
|
||
|
</not>
|
||
|
</and>
|
||
|
</condition>
|
||
|
</enable>
|
||
|
|
||
|
<S>
|
||
|
<and>
|
||
|
<property>/autopilot/autobrake/throttles-at-idle</property>
|
||
|
<property>/autopilot/autobrake/spoilers-deployed</property>
|
||
|
<not>
|
||
|
<property>/autopilot/autobrake/airborne</property>
|
||
|
</not>
|
||
|
</and>
|
||
|
</S>
|
||
|
<R>
|
||
|
<false/>
|
||
|
</R>
|
||
|
<output>/autopilot/autobrake/engaged</output>
|
||
|
</flipflop>
|
||
|
|
||
|
<filter>
|
||
|
<name>MAX cancel logic</name>
|
||
|
<type>gain</type>
|
||
|
<gain>1.0</gain>
|
||
|
<debug>false</debug>
|
||
|
|
||
|
<enable>
|
||
|
<condition>
|
||
|
<property>/autopilot/autobrake/max-selected</property>
|
||
|
<property>/autopilot/autobrake/airborne</property>
|
||
|
</condition>
|
||
|
</enable>
|
||
|
|
||
|
<input><value>0</value></input> <!-- switch to 'off' -->
|
||
|
<output>/autopilot/autobrake/step</output>
|
||
|
</filter>
|
||
|
|
||
|
<flipflop>
|
||
|
<name>MAX engage logic</name>
|
||
|
<type>RS</type>
|
||
|
<debug>false</debug>
|
||
|
<enable>
|
||
|
<condition>
|
||
|
<property>/autopilot/autobrake/max-selected</property>
|
||
|
<property>/autopilot/autobrake/above-40-kts</property>
|
||
|
</condition>
|
||
|
</enable>
|
||
|
<S>
|
||
|
<and>
|
||
|
<property>/autopilot/autobrake/throttles-at-idle</property>
|
||
|
<property>/autopilot/autobrake/spoilers-deployed</property>
|
||
|
</and>
|
||
|
</S>
|
||
|
<R>
|
||
|
<false/>
|
||
|
</R>
|
||
|
<output>/autopilot/autobrake/engaged</output>
|
||
|
</flipflop>
|
||
|
|
||
|
<filter>
|
||
|
<name>Disengage logic</name>
|
||
|
<debug>false</debug>
|
||
|
<type>gain</type>
|
||
|
<gain>1.0</gain>
|
||
|
<enable>
|
||
|
<condition>
|
||
|
<property>/autopilot/autobrake/engaged</property>
|
||
|
<or>
|
||
|
<!-- disengage on pilot input -->
|
||
|
<property>/autopilot/autobrake/pilot-input</property>
|
||
|
|
||
|
<!-- disengage if the throttles are not at idle -->
|
||
|
<not><property>/autopilot/autobrake/throttles-at-idle</property></not>
|
||
|
|
||
|
<!-- disengage if the spoilers are retracted -->
|
||
|
<not><property>/autopilot/autobrake/spoilers-deployed</property></not>
|
||
|
</or>
|
||
|
</condition>
|
||
|
</enable>
|
||
|
|
||
|
<input><value>0</value></input> <!-- switch to 'off' -->
|
||
|
<output>/autopilot/autobrake/step</output>
|
||
|
</filter>
|
||
|
|
||
|
<!-- model the accelerometer portion of the AB system.
|
||
|
This could differentiate indicated-airspeed, but I suspect real-
|
||
|
world systems use accelerometers directly. -->
|
||
|
<filter>
|
||
|
<name>Deceleration Sensor</name>
|
||
|
<type>noise-spike</type>
|
||
|
<max-rate-of-change>5.0</max-rate-of-change>
|
||
|
<input>
|
||
|
<scale>-1</scale> <!-- deceleration, not acceleration -->
|
||
|
<property>/fdm/jsbsim/accelerations/udot-ft_sec2</property>
|
||
|
</input>
|
||
|
<output>/autopilot/autobrake/actual-decel-ftsec2</output>
|
||
|
</filter>
|
||
|
|
||
|
<!-- translate dial setting levels into target decelerations, based upon
|
||
|
information in the POH -->
|
||
|
<filter>
|
||
|
<name>Target Deceleration Table</name>
|
||
|
<type>gain</type>
|
||
|
<debug>false</debug>
|
||
|
<gain>1.0</gain>
|
||
|
<output>/autopilot/autobrake/target-decel-ftsec2</output>
|
||
|
<input>
|
||
|
<condition>
|
||
|
<not>
|
||
|
<property>/autopilot/autobrake/max-selected</property>
|
||
|
</not>
|
||
|
</condition>
|
||
|
<expression>
|
||
|
<!-- values taken from http://www.pprune.org/tech-log/304333-a320-autoland-distance-autobrake-vs-manual-landing-distance-autobrake-2.html#post3809602 -->
|
||
|
<table>
|
||
|
<property>/autopilot/autobrake/step</property>
|
||
|
<entry><ind>0</ind><dep>0</dep></entry>
|
||
|
<entry><ind>1</ind><dep>5.6</dep></entry>
|
||
|
<entry><ind>2</ind><dep>9.8</dep></entry>
|
||
|
</table>
|
||
|
</expression>
|
||
|
</input>
|
||
|
|
||
|
<input>
|
||
|
<condition>
|
||
|
<property>/autopilot/autobrake/max-selected</property>
|
||
|
</condition>
|
||
|
<!-- RTO setting applies max hydraulic pressure, simulate this
|
||
|
with a huge value here, to ensure the PI drives to 1.0 output -->
|
||
|
<value>50</value>
|
||
|
</input>
|
||
|
</filter>
|
||
|
|
||
|
<pi-simple-controller>
|
||
|
<name>Brake Effort Computer</name>
|
||
|
<debug>false</debug>
|
||
|
<enable>
|
||
|
<property>/autopilot/autobrake/engaged</property>
|
||
|
</enable>
|
||
|
<input><property>/autopilot/autobrake/actual-decel-ftsec2</property></input>
|
||
|
<reference>/autopilot/autobrake/target-decel-ftsec2</reference>
|
||
|
<output>/autopilot/autobrake/output-brake</output>
|
||
|
<min>0.0</min>
|
||
|
<max>1.0</max>
|
||
|
|
||
|
<config>
|
||
|
<Kp>1.0</Kp>
|
||
|
<Ki>0.0</Ki>
|
||
|
</config>
|
||
|
</pi-simple-controller>
|
||
|
|
||
|
<!-- left output summer -->
|
||
|
<filter>
|
||
|
<name>Left Output Summer</name>
|
||
|
<type>gain</type>
|
||
|
<gain>1.0</gain>
|
||
|
|
||
|
<input>
|
||
|
<condition>
|
||
|
<property>/autopilot/autobrake/engaged</property>
|
||
|
</condition>
|
||
|
|
||
|
<expression>
|
||
|
<max>
|
||
|
<property>/controls/gear/brake-left</property>
|
||
|
<property>/autopilot/autobrake/output-brake</property>
|
||
|
</max>
|
||
|
</expression>
|
||
|
</input>
|
||
|
<!-- default input -->
|
||
|
<input>
|
||
|
<property>/controls/gear/brake-left</property>
|
||
|
</input>
|
||
|
|
||
|
<output>/autopilot/autobrake/brake-left-output</output>
|
||
|
</filter>
|
||
|
|
||
|
<!-- right output summer -->
|
||
|
<filter>
|
||
|
<name>Right Output Summer</name>
|
||
|
<type>gain</type>
|
||
|
<gain>1.0</gain>
|
||
|
|
||
|
<input>
|
||
|
<condition>
|
||
|
<property>/autopilot/autobrake/engaged</property>
|
||
|
</condition>
|
||
|
|
||
|
<expression>
|
||
|
<max>
|
||
|
<property>/controls/gear/brake-right</property>
|
||
|
<property>/autopilot/autobrake/output-brake</property>
|
||
|
</max>
|
||
|
</expression>
|
||
|
</input>
|
||
|
<!-- default input -->
|
||
|
<input>
|
||
|
<property>/controls/gear/brake-right</property>
|
||
|
</input>
|
||
|
|
||
|
<output>/autopilot/autobrake/brake-right-output</output>
|
||
|
</filter>
|
||
|
|
||
|
</PropertyList>
|