1
0
Fork 0
A320-family/Systems/libraries.xml

1740 lines
46 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright (c) 2021 Josh Davidson (Octal450) -->
<PropertyList>
<!-- Not in JSBsim, cause then it takes too long to tune -->
<filter>
<name>EPR C1</name>
<type>gain</type>
<gain>1.0</gain>
<input>
<expression>
<table>
<product>
<property>/position/altitude-ft</property>
<table>
<property>/fdm/jsbsim/velocities/mach</property>
<entry><ind>0.09</ind><dep>0.1</dep></entry>
<entry><ind>0.15</ind><dep>1.0</dep></entry>
</table>
</product>
<entry><ind> 0</ind><dep>0.674</dep></entry>
<entry><ind>43000</ind><dep>1.120</dep></entry>
</table>
</expression>
</input>
<output>/fdm/jsbsim/fadec/epr/c1</output>
</filter>
<filter>
<name>EPR C2</name>
<type>gain</type>
<gain>1.0</gain>
<input>
<expression>
<difference>
<table>
<product>
<property>/position/altitude-ft</property>
<table>
<property>/fdm/jsbsim/velocities/mach</property>
<entry><ind>0.09</ind><dep>0.1</dep></entry>
<entry><ind>0.15</ind><dep>1.0</dep></entry>
</table>
</product>
<entry><ind> 0</ind><dep>0.9852</dep></entry>
<entry><ind>43000</ind><dep>0.8584</dep></entry>
</table>
<table>
<property>/fdm/jsbsim/velocities/mach</property>
<entry><ind>0.09</ind><dep>0.000</dep></entry>
<entry><ind>0.15</ind><dep>0.016</dep></entry>
<entry><ind>0.22</ind><dep>0.022</dep></entry>
<entry><ind>1.00</ind><dep>0.010</dep></entry>
</table>
<table>
<property>/fdm/jsbsim/aero/alpha-deg-norm</property>
<entry><ind> 0.0</ind><dep>0.00</dep></entry>
<entry><ind> 7.5</ind><dep>0.01</dep></entry>
<entry><ind>17.0</ind><dep>0.03</dep></entry>
</table>
</difference>
</expression>
</input>
<output>/fdm/jsbsim/fadec/epr/c2-raw</output>
</filter>
<filter>
<name>EPR Scale 2 Sum/Difference Exponential</name>
<type>exponential</type>
<gain>1.0</gain>
<input>/fdm/jsbsim/fadec/epr/c2-raw</input>
<output>/fdm/jsbsim/fadec/epr/c2</output>
<filter-time>0.32</filter-time>
</filter>
<filter>
<name>Groundspeed Meters Per Second</name>
<type>gain</type>
<gain>0.5144444444444</gain>
<input>/velocities/groundspeed-kt</input>
<output>/velocities/groundspeed-mps</output>
<min>0</min>
<max>1000</max>
</filter>
<predict-simple>
<name>Groundspeed Meters Per Second Ahead</name>
<debug>false</debug>
<input>/velocities/groundspeed-mps</input>
<output>/velocities/groundspeed-mps-ahead</output>
<seconds>1.5</seconds>
<filter-gain>0.0</filter-gain>
</predict-simple>
<predict-simple>
<name>Gear AGL Altitude</name>
<debug>false</debug>
<input>/position/gear-agl-ft</input>
<output>/position/gear-agl-ft-2-sec</output>
<seconds>2.0</seconds>
<filter-gain>0.0</filter-gain>
</predict-simple>
<filter>
<name>OIL PSI 1</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/engines/engine[0]/n2-actual</property>
<entry><ind>11</ind><dep> 2</dep></entry>
<entry><ind>58</ind><dep>48</dep></entry>
</table>
</expression>
</input>
<output>/engines/engine[0]/oil-psi-actual</output>
</filter>
<filter>
<name>OIL PSI 2</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/engines/engine[1]/n2-actual</property>
<entry><ind>11</ind><dep> 2</dep></entry>
<entry><ind>58</ind><dep>48</dep></entry>
</table>
</expression>
</input>
<output>/engines/engine[1]/oil-psi-actual</output>
</filter>
<filter>
<name>Altitude PFD</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<floor>
<div>
<abs><property>/instrumentation/altimeter[0]/indicated-altitude-ft</property></abs>
<value>100</value>
</div>
</floor>
</expression>
</input>
<output>/instrumentation/altimeter[0]/indicated-altitude-ft-pfd</output>
</filter>
<filter>
<name>Altitude PFD</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<floor>
<div>
<abs><property>/instrumentation/altimeter[1]/indicated-altitude-ft</property></abs>
<value>100</value>
</div>
</floor>
</expression>
</input>
<output>/instrumentation/altimeter[1]/indicated-altitude-ft-pfd</output>
</filter>
<filter>
<name>Altitude PFD</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<floor>
<div>
<abs><property>/instrumentation/altimeter[2]/indicated-altitude-ft</property></abs>
<value>100</value>
</div>
</floor>
</expression>
</input>
<output>/instrumentation/altimeter[2]/indicated-altitude-ft-pfd</output>
</filter>
<filter>
<name>Altitude PFD</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<floor>
<div>
<abs><property>/instrumentation/altimeter[3]/indicated-altitude-ft</property></abs>
<value>100</value>
</div>
</floor>
</expression>
</input>
<output>/instrumentation/altimeter[3]/indicated-altitude-ft-pfd</output>
</filter>
<filter>
<name>Altitude PFD</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<floor>
<div>
<abs><property>/instrumentation/altimeter[4]/indicated-altitude-ft</property></abs>
<value>100</value>
</div>
</floor>
</expression>
</input>
<output>/instrumentation/altimeter[4]/indicated-altitude-ft-pfd</output>
</filter>
<filter>
<name>Altitude PFD</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<floor>
<div>
<abs><property>/instrumentation/altimeter[5]/indicated-altitude-ft</property></abs>
<value>100</value>
</div>
</floor>
</expression>
</input>
<output>/instrumentation/altimeter[5]/indicated-altitude-ft-pfd</output>
</filter>
<filter>
<name>Altitude PFD</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<floor>
<div>
<abs><property>/instrumentation/altimeter[6]/indicated-altitude-ft</property></abs>
<value>100</value>
</div>
</floor>
</expression>
</input>
<output>/instrumentation/altimeter[6]/indicated-altitude-ft-pfd</output>
</filter>
<filter>
<name>V/S PFD</name>
<type>noise-spike</type>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<floor>
<div>
<abs>
<property>/it-autoflight/internal/vert-speed-fpm</property>
</abs>
<value>100</value>
</div>
</floor>
</expression>
</input>
<output>/it-autoflight/internal/vert-speed-fpm-pfd</output>
<max-rate-of-change>50</max-rate-of-change>
<min>0</min>
<max>99</max>
</filter>
<filter>
<name>Target Pressurize Altitude CMD</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.1</update-interval-secs>
<input>
<expression>
<table>
<property>/instrumentation/altimeter/indicated-altitude-ft</property>
<entry><ind> 0</ind><dep> 0</dep></entry>
<entry><ind> 1000</ind><dep> 500</dep></entry>
<entry><ind> 5000</ind><dep>1100</dep></entry>
<entry><ind>20000</ind><dep>5200</dep></entry>
<entry><ind>30000</ind><dep>6700</dep></entry>
<entry><ind>30000</ind><dep>7900</dep></entry>
<entry><ind>40500</ind><dep>8000</dep></entry>
</table>
</expression>
</input>
<output>/systems/pressurization/targetalt-cmd</output>
</filter>
<filter>
<name>Target Pressurize Altitude</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.1</update-interval-secs>
<input>
<condition>
<or>
<equals>
<property>/gear/gear[1]/wow</property>
<value>1</value>
</equals>
<less-than>
<property>/systems/pressurization/targetalt-cmd</property>
<property>/systems/pressurization/cabinalt-norm</property>
</less-than>
</or>
</condition>
<property>/systems/pressurization/cabinalt-norm</property>
</input>
<input>
<condition>
<not>
<property>/gear/gear[1]/wow</property>
<value>1</value>
</not>
</condition>
<property>/systems/pressurization/targetalt-cmd</property>
</input>
<output>/systems/pressurization/targetalt</output>
</filter>
<filter>
<name>Cabin PSI target</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.1</update-interval-secs>
<input>
<expression>
<table>
<property>/systems/pressurization/cabinalt-norm</property>
<entry><ind>-1000</ind><dep>16.50000</dep></entry>
<entry><ind> 0</ind><dep>14.70000</dep></entry>
<entry><ind> 0</ind><dep>14.70000</dep></entry>
<entry><ind> 1000</ind><dep>14.20000</dep></entry>
<entry><ind> 2000</ind><dep>13.60000</dep></entry>
<entry><ind> 3000</ind><dep>13.20000</dep></entry>
<entry><ind> 4000</ind><dep>12.70000</dep></entry>
<entry><ind> 5000</ind><dep>12.20000</dep></entry>
<entry><ind> 6000</ind><dep>11.70000</dep></entry>
<entry><ind> 7000</ind><dep>11.30000</dep></entry>
<entry><ind> 8000</ind><dep>10.90000</dep></entry>
</table>
</expression>
</input>
<output>/systems/pressurization/cabinpsi-target</output>
</filter>
<filter>
<name>VS-target</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.1</update-interval-secs>
<input>
<condition>
<equals>
<property>/gear/gear[1]/wow</property>
<value>1</value>
</equals>
</condition>
<property>/systems/pressurization/ambientpsi</property>
</input>
<input>
<condition>
<not>
<property>/gear/gear[1]/wow</property>
<value>1</value>
</not>
</condition>
<property>/systems/pressurization/cabinpsi-target</property>
</input>
<output>/systems/pressurization/cabinpsi</output>
</filter>
<filter>
<name>Ambient PSI (ICAO std)</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.1</update-interval-secs>
<input>
<expression>
<table>
<property>/instrumentation/altimeter/indicated-altitude-ft</property>
<entry><ind>-1000</ind><dep>16.50000</dep></entry>
<entry><ind> 0</ind><dep>14.70000</dep></entry>
<entry><ind> 1000</ind><dep>14.20000</dep></entry>
<entry><ind> 2000</ind><dep>13.60000</dep></entry>
<entry><ind> 3000</ind><dep>13.20000</dep></entry>
<entry><ind> 4000</ind><dep>12.70000</dep></entry>
<entry><ind> 5000</ind><dep>12.20000</dep></entry>
<entry><ind> 6000</ind><dep>11.70000</dep></entry>
<entry><ind> 7000</ind><dep>11.30000</dep></entry>
<entry><ind> 8000</ind><dep>10.90000</dep></entry>
<entry><ind> 9000</ind><dep>10.50000</dep></entry>
<entry><ind>10000</ind><dep>10.10000</dep></entry>
<entry><ind>11000</ind><dep> 9.70000</dep></entry>
<entry><ind>12000</ind><dep> 9.30000</dep></entry>
<entry><ind>13000</ind><dep> 9.00000</dep></entry>
<entry><ind>14000</ind><dep> 8.60000</dep></entry>
<entry><ind>15000</ind><dep> 8.30000</dep></entry>
<entry><ind>16000</ind><dep> 8.00000</dep></entry>
<entry><ind>17000</ind><dep> 7.60000</dep></entry>
<entry><ind>18000</ind><dep> 7.30000</dep></entry>
<entry><ind>19000</ind><dep> 7.00000</dep></entry>
<entry><ind>20000</ind><dep> 6.80000</dep></entry>
<entry><ind>22000</ind><dep> 6.20000</dep></entry>
<entry><ind>24000</ind><dep> 5.70000</dep></entry>
<entry><ind>26000</ind><dep> 5.20000</dep></entry>
<entry><ind>28000</ind><dep> 4.70000</dep></entry>
<entry><ind>30000</ind><dep> 4.40000</dep></entry>
<entry><ind>32000</ind><dep> 4.00000</dep></entry>
<entry><ind>34000</ind><dep> 3.60000</dep></entry>
<entry><ind>36000</ind><dep> 3.30000</dep></entry>
<entry><ind>38000</ind><dep> 3.00000</dep></entry>
<entry><ind>39000</ind><dep> 2.90000</dep></entry>
<entry><ind>40000</ind><dep> 2.70000</dep></entry>
<entry><ind>41000</ind><dep> 2.60000</dep></entry>
<entry><ind>42000</ind><dep> 2.50000</dep></entry>
</table>
</expression>
</input>
<output>/systems/pressurization/ambientpsi</output>
</filter>
<filter>
<name>Outflow Valve</name>
<type>noise-spike</type>
<input>
<property>/systems/pressurization/outflowpos</property>
</input>
<output>/systems/pressurization/outflowpos-norm</output>
<max-rate-of-change>1</max-rate-of-change>
</filter>
<filter>
<name>Outflow logic</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.1</update-interval-secs>
<input>
<condition>
<equals>
<property>/systems/pressurization/auto</property>
<value>0</value>
</equals>
</condition>
<property>/systems/pressurization/outflowpos-man</property>
</input>
<input>
<condition>
<equals>
<property>/systems/pressurization/auto</property>
<value>1</value>
</equals>
</condition>
<property>/systems/pressurization/outflowpos-norm-cmd</property>
</input>
<output>/systems/pressurization/outflowpos-norm</output>
</filter>
<filter>
<name>Cabin VS</name>
<type>noise-spike</type>
<input>
<property>/systems/pressurization/vs</property>
</input>
<output>/systems/pressurization/vs-norm</output>
<max-rate-of-change>500</max-rate-of-change>
</filter>
<filter>
<name>Cabin Differential</name>
<type>noise-spike</type>
<input>
<property>/systems/pressurization/deltap</property>
</input>
<output>/systems/pressurization/deltap-norm</output>
<max-rate-of-change>1</max-rate-of-change>
</filter>
<filter>
<name>Cabin Alt</name>
<type>noise-spike</type>
<input>
<property>/systems/pressurization/cabinalt</property>
</input>
<output>/systems/pressurization/cabinalt-norm</output>
<max-rate-of-change>40500</max-rate-of-change>
</filter>
<filter>
<name>VS-target-cmd</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/it-autoflight/internal/vert-speed-fpm</property>
<entry><ind>-50000</ind><dep> -750</dep></entry>
<entry><ind> -2000</ind><dep> -750</dep></entry>
<entry><ind> -1000</ind><dep> -250</dep></entry>
<entry><ind> 0</ind><dep> 0</dep></entry>
<entry><ind> 1000</ind><dep> 810</dep></entry>
<entry><ind> 2000</ind><dep> 1640</dep></entry>
<entry><ind> 3000</ind><dep> 2100</dep></entry>
<entry><ind> 4000</ind><dep> 2440</dep></entry>
<entry><ind> 5000</ind><dep> 3000</dep></entry>
<entry><ind> 10000</ind><dep> 5000</dep></entry>
<entry><ind> 50000</ind><dep>50000</dep></entry>
</table>
</expression>
</input>
<output>/systems/pressurization/targetvs-cmd</output>
</filter>
<filter>
<name>VS-target-cmd-man</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/systems/pressurization/outflowpos-man</property>
<entry><ind>0.0</ind><dep>-1000</dep></entry>
<entry><ind>0.5</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep> 2500</dep></entry>
</table>
</expression>
</input>
<output>/systems/pressurization/manvs-cmd</output>
</filter>
<filter>
<name>VS-target</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.1</update-interval-secs>
<input>
<condition>
<equals>
<property>/gear/gear[1]/wow</property>
<value>1</value>
</equals>
</condition>
<value>0</value>
</input>
<input>
<condition>
<not>
<property>/gear/gear[1]/wow</property>
<value>1</value>
</not>
</condition>
<property>/systems/pressurization/targetvs-cmd</property>
</input>
<output>/systems/pressurization/targetvs</output>
</filter>
<filter>
<name>LBtoKG</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<product>
<property>/fdm/jsbsim/inertia/weight-lbs</property>
<value>0.45359237</value>
</product>
</input>
<output>/fdm/jsbsim/inertia/weight-kg</output>
</filter>
<filter>
<name>optalt</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>fdm/jsbsim/inertia/weight-kg</property> <!-- from FCOM vol 3 page 613 -->
<entry><ind>160000</ind><dep>40500</dep></entry>
<entry><ind>165000</ind><dep>40000</dep></entry>
<entry><ind>170000</ind><dep>39500</dep></entry>
<entry><ind>175000</ind><dep>39000</dep></entry>
<entry><ind>180000</ind><dep>38000</dep></entry>
<entry><ind>185000</ind><dep>37800</dep></entry>
<entry><ind>190000</ind><dep>37500</dep></entry>
<entry><ind>195000</ind><dep>36800</dep></entry>
<entry><ind>200000</ind><dep>36400</dep></entry>
<entry><ind>205000</ind><dep>35800</dep></entry>
<entry><ind>210000</ind><dep>35200</dep></entry>
<entry><ind>215000</ind><dep>34800</dep></entry>
<entry><ind>220000</ind><dep>34100</dep></entry>
<entry><ind>225000</ind><dep>33500</dep></entry>
<entry><ind>230000</ind><dep>33100</dep></entry>
<entry><ind>235000</ind><dep>32700</dep></entry>
<entry><ind>240000</ind><dep>32400</dep></entry>
</table>
</expression>
</input>
<output>/FMGC/internal/optalt</output>
</filter>
<filter>
<name>Ambient Temp (ICAO std)</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.1</update-interval-secs>
<input>
<expression>
<table>
<property>/instrumentation/altimeter/indicated-altitude-ft</property>
<entry><ind>-1000</ind><dep> 21.5</dep></entry>
<entry><ind> 0</ind><dep> 15.0</dep></entry>
<entry><ind> 1000</ind><dep> 8.5</dep></entry>
<entry><ind> 2000</ind><dep> 2.0</dep></entry>
<entry><ind> 3000</ind><dep>-4.50</dep></entry>
<entry><ind> 4000</ind><dep>-11.0</dep></entry>
<entry><ind> 5000</ind><dep>-17.5</dep></entry>
<entry><ind> 6000</ind><dep>-24.0</dep></entry>
<entry><ind> 7000</ind><dep>-30.5</dep></entry>
<entry><ind> 8000</ind><dep>-37.0</dep></entry>
<entry><ind> 9000</ind><dep>-43.0</dep></entry>
<entry><ind>10000</ind><dep>-50.0</dep></entry>
<entry><ind>11000</ind><dep>-56.5</dep></entry>
<entry><ind>12000</ind><dep>-56.5</dep></entry>
<entry><ind>13000</ind><dep>-56.5</dep></entry>
<entry><ind>14000</ind><dep>-56.5</dep></entry>
<entry><ind>15000</ind><dep>-56.5</dep></entry>
<entry><ind>16000</ind><dep>-56.5</dep></entry>
<entry><ind>17000</ind><dep>-56.5</dep></entry>
<entry><ind>18000</ind><dep>-56.5</dep></entry>
<entry><ind>19000</ind><dep>-56.5</dep></entry>
<entry><ind>20000</ind><dep>-56.5</dep></entry>
<entry><ind>22000</ind><dep>-54.5</dep></entry>
<entry><ind>24000</ind><dep>-52.5</dep></entry>
<entry><ind>26000</ind><dep>-50.5</dep></entry>
<entry><ind>28000</ind><dep>-48.5</dep></entry>
<entry><ind>30000</ind><dep>-46.5</dep></entry>
<entry><ind>32000</ind><dep>-44.5</dep></entry>
<entry><ind>34000</ind><dep>-38.9</dep></entry>
<entry><ind>36000</ind><dep>-33.3</dep></entry>
<entry><ind>38000</ind><dep>-27.7</dep></entry>
<entry><ind>39000</ind><dep>-24.9</dep></entry>
<entry><ind>40000</ind><dep>-22.1</dep></entry>
<entry><ind>41000</ind><dep>-19.3</dep></entry>
<entry><ind>42000</ind><dep>-16.5</dep></entry>
</table>
</expression>
</input>
<output>/FMGC/internal/ISAtemp</output>
</filter>
<filter>
<name>Difference to ISA Temp (Actual - ISA)</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.1</update-interval-secs>
<input>
<difference>
<property>/environment/temperature-degc</property>
<property>/FMGC/internal/ISAtemp</property>
</difference>
</input>
<output>/FMGC/internal/difftoISA</output>
</filter>
<filter>
<name>Force Auto Coordination Off</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<enable>
<condition>
<property>/controls/flight/aileron-drives-tiller</property>
</condition>
</enable>
<input>0</input>
<output>/controls/flight/auto-coordination</output>
</filter>
<filter>
<name>Left Door</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/gear/gear[1]/position-norm</property>
<entry><ind>0.00</ind><dep>0</dep></entry>
<entry><ind>0.19</ind><dep>1</dep></entry>
<entry><ind>0.81</ind><dep>1</dep></entry>
<entry><ind>1.00</ind><dep>0</dep></entry>
</table>
</expression>
</input>
<output>/systems/hydraulic/gear/door-left</output>
</filter>
<filter>
<name>Left Door Conversion to Degrees</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/systems/hydraulic/gear/door-left</property>
<entry><ind>0</ind><dep> 0</dep></entry>
<entry><ind>1</ind><dep>-100</dep></entry>
</table>
</expression>
</input>
<output>/ECAM/Lower/door-left</output>
</filter>
<filter>
<name>Right Door</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/gear/gear[2]/position-norm</property>
<entry><ind>0.00</ind><dep>0</dep></entry>
<entry><ind>0.19</ind><dep>1</dep></entry>
<entry><ind>0.81</ind><dep>1</dep></entry>
<entry><ind>1.00</ind><dep>0</dep></entry>
</table>
</expression>
</input>
<output>/systems/hydraulic/gear/door-right</output>
</filter>
<filter>
<name>Right Door Conversion to Degrees</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/systems/hydraulic/gear/door-right</property>
<entry><ind>0</ind><dep> 0</dep></entry>
<entry><ind>1</ind><dep>100</dep></entry>
</table>
</expression>
</input>
<output>/ECAM/Lower/door-right</output>
</filter>
<filter>
<name>Nose Door</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/gear/gear[0]/position-norm</property>
<entry><ind>0.00</ind><dep>0</dep></entry>
<entry><ind>0.19</ind><dep>1</dep></entry>
<entry><ind>0.81</ind><dep>1</dep></entry>
<entry><ind>1.00</ind><dep>0</dep></entry>
</table>
</expression>
</input>
<output>/systems/hydraulic/gear/door-nose</output>
</filter>
<filter>
<name>NLG Left Door Conversion to Degrees</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/systems/hydraulic/gear/door-nose</property>
<entry><ind>0</ind><dep> 0</dep></entry>
<entry><ind>1</ind><dep>95</dep></entry>
</table>
</expression>
</input>
<output>/ECAM/Lower/door-nose-left</output>
</filter>
<filter>
<name>NLG Right Door Conversion to Degrees</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/systems/hydraulic/gear/door-nose</property>
<entry><ind>0</ind><dep> 0</dep></entry>
<entry><ind>1</ind><dep>-95</dep></entry>
</table>
</expression>
</input>
<output>/ECAM/Lower/door-nose-right</output>
</filter>
<filter>
<name>Autobrake Decel Error</name>
<type>gain</type>
<gain>1.0</gain>
<input>
<expression>
<dif>
<property>/velocities/groundspeed-mps</property>
<property>/velocities/groundspeed-mps-ahead</property>
</dif>
</expression>
</input>
<output>/controls/autobrake/decel-error</output>
</filter>
<pi-simple-controller>
<name>IT-CONTROLLER: AUTOBRAKE DECEL</name>
<debug>false</debug>
<enable>
<condition>
<equals>
<property>/controls/autobrake/active</property>
<value>1</value>
</equals>
</condition>
</enable>
<input>
<property>/controls/autobrake/decel-error</property>
</input>
<reference>
<property>/controls/autobrake/decel-rate</property>
</reference>
<output>
<property>/controls/autobrake/brake-left</property>
<property>/controls/autobrake/brake-right</property>
</output>
<config>
<Kp>0.45</Kp>
<Ki>0.25</Ki>
<min>0.0</min>
<max>1.0</max>
</config>
</pi-simple-controller>
<filter>
<name>DDRMI: Heading</name>
<type>gain</type>
<gain>1.0</gain>
<enable>
<condition>
<and>
<greater-than-equals>
<property>/systems/electrical/bus/dc-ess</property>
<value>25</value>
</greater-than-equals>
<equals>
<property>/systems/navigation/aligned-1</property>
<value>1</value>
</equals> <!-- TODO ATT HDG SWITCH -->
</and>
</condition>
</enable>
<input>/orientation/heading-magnetic-deg</input>
<output>/instrumentation/ddrmi/heading</output>
</filter>
<filter>
<name>DDRMI: VOR 1 Error</name>
<type>gain</type>
<gain>1.0</gain>
<input>
<property>/instrumentation/nav[2]/heading-deg</property>
<offset>
<property>/orientation/heading-deg</property>
<scale>-1.0</scale>
</offset>
</input>
<output>/instrumentation/ddrmi/vor-1-error</output>
<period>
<min>-180</min>
<max>180</max>
</period>
</filter>
<filter>
<name>DDRMI: Needle 1</name>
<debug>false</debug>
<type>gain</type>
<gain>1.0</gain>
<input>
<condition>
<and>
<greater-than-equals>
<property>/systems/electrical/bus/dc-ess</property>
<value>25</value>
</greater-than-equals>
<equals>
<property>/instrumentation/ddrmi/vor-adf-1</property>
<value>1</value>
</equals>
<equals>
<property>/instrumentation/nav[2]/in-range</property>
<value>1</value>
</equals>
<equals>
<property>/systems/navigation/aligned-1</property>
<value>1</value>
</equals>
</and>
</condition>
<property>/instrumentation/ddrmi/vor-1-error</property>
<scale>-1.0</scale>
</input>
<input>
<condition>
<and>
<greater-than-equals>
<property>/systems/electrical/bus/dc-ess</property>
<value>25</value>
</greater-than-equals>
<equals>
<property>/instrumentation/ddrmi/vor-adf-1</property>
<value>-1</value>
</equals>
<equals>
<property>/instrumentation/adf[0]/in-range</property>
<value>1</value>
</equals>
<equals>
<property>/systems/navigation/aligned-1</property>
<value>1</value>
</equals>
</and>
</condition>
<property>/instrumentation/adf[0]/indicated-bearing-deg</property>
<scale>-1.0</scale>
</input>
<input>-90</input>
<output>/instrumentation/ddrmi/needle-1</output>
</filter>
<filter>
<name>DDRMI: VOR 2 Error</name>
<type>gain</type>
<gain>1.0</gain>
<input>
<property>/instrumentation/nav[3]/heading-deg</property>
<offset>
<property>/orientation/heading-deg</property>
<scale>-1.0</scale>
</offset>
</input>
<output>/instrumentation/ddrmi/vor-2-error</output>
<period>
<min>-180</min>
<max>180</max>
</period>
</filter>
<filter>
<name>DDRMI: Needle 2</name>
<debug>false</debug>
<type>gain</type>
<gain>1.0</gain>
<input>
<condition>
<and>
<greater-than-equals>
<property>/systems/electrical/bus/dc-ess</property>
<value>25</value>
</greater-than-equals>
<equals>
<property>/instrumentation/ddrmi/vor-adf-2</property>
<value>1</value>
</equals>
<equals>
<property>/instrumentation/nav[3]/in-range</property>
<value>1</value>
</equals>
<equals>
<property>/systems/navigation/aligned-1</property>
<value>1</value>
</equals>
</and>
</condition>
<property>/instrumentation/ddrmi/vor-2-error</property>
<scale>-1.0</scale>
</input>
<input>
<condition>
<and>
<greater-than-equals>
<property>/systems/electrical/bus/dc-ess</property>
<value>25</value>
</greater-than-equals>
<equals>
<property>/instrumentation/ddrmi/vor-adf-2</property>
<value>-1</value>
</equals>
<equals>
<property>/instrumentation/adf[1]/in-range</property>
<value>1</value>
</equals>
<equals>
<property>/systems/navigation/aligned-1</property>
<value>1</value>
</equals>
</and>
</condition>
<property>/instrumentation/adf[1]/indicated-bearing-deg</property>
<scale>-1.0</scale>
</input>
<input>-90</input>
<output>/instrumentation/ddrmi/needle-2</output>
</filter>
<filter>
<name>DDRMI: FLAG 1</name>
<debug>false</debug>
<type>exponential</type>
<input>
<condition>
<and>
<greater-than-equals>
<property>/systems/electrical/bus/dc-ess</property>
<value>25</value>
</greater-than-equals>
<equals>
<property>/systems/navigation/aligned-1</property>
<value>1</value>
</equals>
<or>
<and>
<equals>
<property>/instrumentation/ddrmi/vor-adf-1</property>
<value>1</value>
</equals>
<equals>
<property>/instrumentation/nav[2]/in-range</property>
<value>1</value>
</equals>
</and>
<and>
<equals>
<property>/instrumentation/ddrmi/vor-adf-1</property>
<value>-1</value>
</equals>
<equals>
<property>/instrumentation/adf[0]/in-range</property>
<value>1</value>
</equals>
</and>
</or>
</and>
</condition>
<value>0</value>
</input>
<input>1</input>
<output>/instrumentation/ddrmi/flag-1</output>
<filter-time>0.64</filter-time>
</filter>
<filter>
<name>DDRMI: FLAG 2</name>
<debug>false</debug>
<type>exponential</type>
<input>
<condition>
<and>
<greater-than-equals>
<property>/systems/electrical/bus/dc-ess</property>
<value>25</value>
</greater-than-equals>
<equals>
<property>/systems/navigation/aligned-1</property>
<value>1</value>
</equals>
<or>
<and>
<equals>
<property>/instrumentation/ddrmi/vor-adf-2</property>
<value>1</value>
</equals>
<equals>
<property>/instrumentation/nav[3]/in-range</property>
<value>1</value>
</equals>
</and>
<and>
<equals>
<property>/instrumentation/ddrmi/vor-adf-2</property>
<value>-1</value>
</equals>
<equals>
<property>/instrumentation/adf[1]/in-range</property>
<value>1</value>
</equals>
</and>
</or>
</and>
</condition>
<value>0</value>
</input>
<input>1</input>
<output>/instrumentation/ddrmi/flag-2</output>
<filter-time>0.64</filter-time>
</filter>
<!-- Minimums stuff -->
<filter>
<name>Minimums Selector</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.1</update-interval-secs>
<input>
<condition>
<not-equals>
<property>/FMGC/internal/baro</property>
<value>99999</value>
</not-equals>
</condition>
<property>/instrumentation/altimeter/indicated-altitude-ft</property>
</input>
<input>/position/gear-agl-ft</input>
<output>/instrumentation/pfd/minimums-ref-alt</output>
</filter>
<filter>
<name>Minimums Selector</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.1</update-interval-secs>
<input>
<condition>
<not-equals>
<property>/FMGC/internal/radio</property>
<value>99999</value>
</not-equals>
</condition>
<property>/FMGC/internal/radio</property>
</input>
<input>
<condition>
<not-equals>
<property>/FMGC/internal/baro</property>
<value>99999</value>
</not-equals>
</condition>
<expression> <!-- A bit ehhh, but avoids huge mess in A320-common-sound.xml -->
<product>
<floor>
<sum>
<div>
<sum> <!-- Calculate offseted radio value -->
<difference>
<property>/position/gear-agl-ft</property>
<property>/instrumentation/altimeter/indicated-altitude-ft</property>
</difference>
<property>/FMGC/internal/baro</property>
</sum>
<value>25</value>
</div>
<value>0.5</value> <!-- Make floor round it -->
</sum>
</floor>
<value>25</value>
</product>
</expression>
</input>
<input>99999</input>
<output>/instrumentation/pfd/minimums-no-gpws-alt</output>
</filter>
<filter>
<name>Minimums Selector</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.1</update-interval-secs>
<input>
<condition>
<not-equals>
<property>/FMGC/internal/radio</property>
<value>99999</value>
</not-equals>
</condition>
<property>/FMGC/internal/radio</property>
</input>
<input>
<condition>
<not-equals>
<property>/FMGC/internal/baro</property>
<value>99999</value>
</not-equals>
</condition>
<property>/FMGC/internal/baro</property>
</input>
<input>99999</input>
<output>/instrumentation/pfd/minimums</output>
</filter>
<filter>
<name>Minimums Minus 50</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.1</update-interval-secs>
<input>
<expression>
<difference>
<property>/instrumentation/pfd/minimums</property>
<value>50</value>
</difference>
</expression>
</input>
<output>/instrumentation/pfd/minimums-minus-50</output>
</filter>
<filter>
<name>Minimums Plus 50</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.1</update-interval-secs>
<input>
<expression>
<sum>
<property>/instrumentation/pfd/minimums</property>
<value>50</value>
</sum>
</expression>
</input>
<output>/instrumentation/pfd/minimums-plus-50</output>
</filter>
<filter>
<name>Minimums Plus 100</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.1</update-interval-secs>
<input>
<expression>
<sum>
<property>/instrumentation/pfd/minimums</property>
<value>100</value>
</sum>
</expression>
</input>
<output>/instrumentation/pfd/minimums-plus-100</output>
</filter>
<logic>
<!-- somewhat confusing : this input is not 'are the flaps in landing configration', but rather,
'are the flaps NOT in a landing configuration'. There is a configuration bit to flip
the sense of this, if required. -->
<input>
<less-than>
<property>/controls/flight/flaps</property>
<value>0.8</value>
</less-than>
</input>
<output>/instrumentation/mk-viii/inputs/discretes/landing-flaps</output>
</logic>
<!-- Redo this sh*t later -->
<filter>
<name>EGT L</name>
<type>gain</type>
<gain>1.0</gain>
<enable>
<condition>
<and>
<equals>
<property>/engines/engine[0]/state</property>
<value>3</value>
</equals>
<greater-than-equals>
<property>/engines/engine[0]/n1-actual</property>
<property>/fdm/jsbsim/fadec/limit/min-n1</property>
</greater-than-equals>
</and>
</condition>
</enable>
<input>
<expression>
<table>
<property>/engines/engine[0]/n1-actual</property>
<entry><ind> 18.9</ind><dep>434</dep></entry>
<entry><ind>110.0</ind><dep>620</dep></entry>
</table>
</expression>
</input>
<output>/engines/engine[0]/egt-actual</output>
</filter>
<filter>
<name>EGT R</name>
<type>gain</type>
<gain>1.0</gain>
<enable>
<condition>
<and>
<equals>
<property>/engines/engine[1]/state</property>
<value>3</value>
</equals>
<greater-than-equals>
<property>/engines/engine[1]/n1-actual</property>
<property>/fdm/jsbsim/fadec/limit/min-n1</property>
</greater-than-equals>
</and>
</condition>
</enable>
<input>
<expression>
<table>
<property>/engines/engine[1]/n1-actual</property>
<entry><ind> 18.9</ind><dep>434</dep></entry>
<entry><ind>110.0</ind><dep>620</dep></entry>
</table>
</expression>
</input>
<output>/engines/engine[1]/egt-actual</output>
</filter>
<filter>
<name>DU1 LCD Contrast</name>
<type>gain</type>
<gain>1.0</gain>
<input>
<condition>
<not>
<property>/systems/acconfig/options/du/enable-shaders</property>
</not>
</condition>
<value>1</value>
</input>
<input>
<condition>
<not>
<property>/instrumentation/du/du1-on</property>
</not>
</condition>
<expression>
<table>
<property>/rendering/scene/diffuse/red</property>
<entry><ind>0.8</ind><dep>0.97</dep></entry>
<entry><ind>0.0</ind><dep>0.98</dep></entry>
</table>
</expression>
</input>
<input>
<expression>
<table>
<property>/rendering/scene/diffuse/red</property>
<entry><ind>0.8</ind><dep>0.95</dep></entry>
<entry><ind>0.0</ind><dep>0.90</dep></entry>
</table>
</expression>
</input>
<output>/instrumentation/du/du1-contrast</output>
</filter>
<filter>
<name>DU2 LCD Contrast</name>
<type>gain</type>
<gain>1.0</gain>
<input>
<condition>
<not>
<property>/systems/acconfig/options/du/enable-shaders</property>
</not>
</condition>
<value>1</value>
</input>
<input>
<condition>
<not>
<property>/instrumentation/du/du2-on</property>
</not>
</condition>
<expression>
<table>
<property>/rendering/scene/diffuse/red</property>
<entry><ind>0.8</ind><dep>0.97</dep></entry>
<entry><ind>0.0</ind><dep>0.98</dep></entry>
</table>
</expression>
</input>
<input>
<expression>
<table>
<property>/rendering/scene/diffuse/red</property>
<entry><ind>0.8</ind><dep>0.95</dep></entry>
<entry><ind>0.0</ind><dep>0.90</dep></entry>
</table>
</expression>
</input>
<output>/instrumentation/du/du2-contrast</output>
</filter>
<filter>
<name>DU3 LCD Contrast</name>
<type>gain</type>
<gain>1.0</gain>
<input>
<condition>
<not>
<property>/systems/acconfig/options/du/enable-shaders</property>
</not>
</condition>
<value>1</value>
</input>
<input>
<condition>
<not>
<property>/instrumentation/du/du3-on</property>
</not>
</condition>
<expression>
<table>
<property>/rendering/scene/diffuse/red</property>
<entry><ind>0.8</ind><dep>0.97</dep></entry>
<entry><ind>0.0</ind><dep>0.98</dep></entry>
</table>
</expression>
</input>
<input>
<expression>
<table>
<property>/rendering/scene/diffuse/red</property>
<entry><ind>0.8</ind><dep>0.95</dep></entry>
<entry><ind>0.0</ind><dep>0.90</dep></entry>
</table>
</expression>
</input>
<output>/instrumentation/du/du3-contrast</output>
</filter>
<filter>
<name>DU4 LCD Contrast</name>
<type>gain</type>
<gain>1.0</gain>
<input>
<condition>
<not>
<property>/systems/acconfig/options/du/enable-shaders</property>
</not>
</condition>
<value>1</value>
</input>
<input>
<condition>
<not>
<property>/instrumentation/du/du4-on</property>
</not>
</condition>
<expression>
<table>
<property>/rendering/scene/diffuse/red</property>
<entry><ind>0.8</ind><dep>0.97</dep></entry>
<entry><ind>0.0</ind><dep>0.98</dep></entry>
</table>
</expression>
</input>
<input>
<expression>
<table>
<property>/rendering/scene/diffuse/red</property>
<entry><ind>0.8</ind><dep>0.95</dep></entry>
<entry><ind>0.0</ind><dep>0.90</dep></entry>
</table>
</expression>
</input>
<output>/instrumentation/du/du4-contrast</output>
</filter>
<filter>
<name>DU5 LCD Contrast</name>
<type>gain</type>
<gain>1.0</gain>
<input>
<condition>
<not>
<property>/systems/acconfig/options/du/enable-shaders</property>
</not>
</condition>
<value>1</value>
</input>
<input>
<condition>
<not>
<property>/instrumentation/du/du5-on</property>
</not>
</condition>
<expression>
<table>
<property>/rendering/scene/diffuse/red</property>
<entry><ind>0.8</ind><dep>0.97</dep></entry>
<entry><ind>0.0</ind><dep>0.98</dep></entry>
</table>
</expression>
</input>
<input>
<expression>
<table>
<property>/rendering/scene/diffuse/red</property>
<entry><ind>0.8</ind><dep>0.95</dep></entry>
<entry><ind>0.0</ind><dep>0.90</dep></entry>
</table>
</expression>
</input>
<output>/instrumentation/du/du5-contrast</output>
</filter>
<filter>
<name>DU6 LCD Contrast</name>
<type>gain</type>
<gain>1.0</gain>
<input>
<condition>
<not>
<property>/systems/acconfig/options/du/enable-shaders</property>
</not>
</condition>
<value>1</value>
</input>
<input>
<condition>
<not>
<property>/instrumentation/du/du6-on</property>
</not>
</condition>
<expression>
<table>
<property>/rendering/scene/diffuse/red</property>
<entry><ind>0.8</ind><dep>0.97</dep></entry>
<entry><ind>0.0</ind><dep>0.98</dep></entry>
</table>
</expression>
</input>
<input>
<expression>
<table>
<property>/rendering/scene/diffuse/red</property>
<entry><ind>0.8</ind><dep>0.95</dep></entry>
<entry><ind>0.0</ind><dep>0.90</dep></entry>
</table>
</expression>
</input>
<output>/instrumentation/du/du6-contrast</output>
</filter>
<filter>
<name>IESI LCD Contrast</name>
<type>gain</type>
<gain>1.0</gain>
<input>
<condition>
<not>
<property>/systems/acconfig/options/du/enable-shaders</property>
</not>
</condition>
<value>1</value>
</input>
<input>
<condition>
<not>
<property>/instrumentation/iesi/lcd-on</property>
</not>
</condition>
<expression>
<table>
<property>/rendering/scene/diffuse/red</property>
<entry><ind>0.8</ind><dep>0.97</dep></entry>
<entry><ind>0.0</ind><dep>0.98</dep></entry>
</table>
</expression>
</input>
<input>
<expression>
<table>
<property>/rendering/scene/diffuse/red</property>
<entry><ind>0.8</ind><dep>0.95</dep></entry>
<entry><ind>0.0</ind><dep>0.90</dep></entry>
</table>
</expression>
</input>
<output>/instrumentation/iesi/lcd-contrast</output>
</filter>
<filter>
<name>MCDU1 LCD Contrast</name>
<type>gain</type>
<gain>1.0</gain>
<input>
<condition>
<not>
<property>/systems/acconfig/options/du/enable-shaders</property>
</not>
</condition>
<value>1</value>
</input>
<input>
<condition>
<not>
<property>/instrumentation/mcdu/mcdu1-on</property>
</not>
</condition>
<expression>
<table>
<property>/rendering/scene/diffuse/red</property>
<entry><ind>0.8</ind><dep>0.97</dep></entry>
<entry><ind>0.0</ind><dep>0.98</dep></entry>
</table>
</expression>
</input>
<input>
<expression>
<table>
<property>/rendering/scene/diffuse/red</property>
<entry><ind>0.8</ind><dep>0.95</dep></entry>
<entry><ind>0.0</ind><dep>0.90</dep></entry>
</table>
</expression>
</input>
<output>/instrumentation/mcdu/mcdu1-contrast</output>
</filter>
<filter>
<name>MCDU2 LCD Contrast</name>
<type>gain</type>
<gain>1.0</gain>
<input>
<condition>
<not>
<property>/systems/acconfig/options/du/enable-shaders</property>
</not>
</condition>
<value>1</value>
</input>
<input>
<condition>
<not>
<property>/instrumentation/mcdu/mcdu2-on</property>
</not>
</condition>
<expression>
<table>
<property>/rendering/scene/diffuse/red</property>
<entry><ind>0.8</ind><dep>0.97</dep></entry>
<entry><ind>0.0</ind><dep>0.98</dep></entry>
</table>
</expression>
</input>
<input>
<expression>
<table>
<property>/rendering/scene/diffuse/red</property>
<entry><ind>0.8</ind><dep>0.95</dep></entry>
<entry><ind>0.0</ind><dep>0.90</dep></entry>
</table>
</expression>
</input>
<output>/instrumentation/mcdu/mcdu2-contrast</output>
</filter>
<filter>
<name>DCDU LCD Contrast</name>
<type>gain</type>
<gain>1.0</gain>
<input>
<condition>
<not>
<property>/systems/acconfig/options/du/enable-shaders</property>
</not>
</condition>
<value>1</value>
</input>
<input>
<condition>
<not>
<property>/instrumentation/du/dcdu-on</property>
</not>
</condition>
<expression>
<table>
<property>/rendering/scene/diffuse/red</property>
<entry><ind>0.8</ind><dep>0.97</dep></entry>
<entry><ind>0.0</ind><dep>0.98</dep></entry>
</table>
</expression>
</input>
<input>
<expression>
<table>
<property>/rendering/scene/diffuse/red</property>
<entry><ind>0.8</ind><dep>0.95</dep></entry>
<entry><ind>0.0</ind><dep>0.90</dep></entry>
</table>
</expression>
</input>
<output>/instrumentation/dcdu/lcd-contrast</output>
</filter>
<predict-simple>
<name>FBW Pitch IAS Predictor</name>
<debug>false</debug>
<input>/instrumentation/airspeed-indicator/indicated-speed-kt</input>
<output>/fdm/jsbsim/fbw/pitch/ias-input</output>
<seconds>1.0</seconds>
<filter-gain>0</filter-gain>
</predict-simple>
</PropertyList>