1
0
Fork 0
A320-family/Systems/a320-pneumatic.xml

495 lines
15 KiB
XML

<!-- Copyright (c) 2019 Jonathan Redpath (legoboyvdlp) -->
<system name="A320: Pneumatic">
<channel name="Valves">
<!-- Low Pressure valve -->
<switch name="/systems/pneumatics/valves/engine-1-lp-valve-cmd">
<default value="1"/>
<test logic="OR" value="0">
/systems/pneumatics/valves/engine-1-hp-valve eq 1
</test>
</switch>
<switch name="/systems/pneumatics/valves/engine-1-lp-valve-cmd-power">
<default value="0"/>
<test logic="OR" value="5">
/systems/electrical/bus/dc-ess-shed ge 25
</test>
</switch>
<actuator name="/systems/pneumatics/valves/engine-1-lp-valve">
<input>/systems/pneumatics/valves/engine-1-lp-valve-cmd</input>
<rate_limit>/systems/pneumatics/valves/engine-1-lp-valve-cmd-power</rate_limit>
</actuator>
<switch name="/systems/pneumatics/valves/engine-2-lp-valve-cmd">
<default value="1"/>
<test logic="OR" value="0">
/systems/pneumatics/valves/engine-2-hp-valve eq 1
</test>
</switch>
<switch name="/systems/pneumatics/valves/engine-2-lp-valve-cmd-power">
<default value="0"/>
<test logic="OR" value="5">
/systems/electrical/bus/dc-2 ge 25
</test>
</switch>
<actuator name="/systems/pneumatics/valves/engine-2-lp-valve">
<input>/systems/pneumatics/valves/engine-2-lp-valve-cmd</input>
<rate_limit>/systems/pneumatics/valves/engine-2-lp-valve-cmd-power</rate_limit>
</actuator>
<!-- High Pressure valve -->
<switch name="/systems/pneumatics/valves/engine-1-hp-valve-cmd">
<default value="1"/>
<test logic="OR" value="0">
/systems/pneumatics/source/engine-1-hp-psi lt 8
/systems/pneumatics/source/engine-1-hp-psi ge 120
<test logic="AND">
/controls/deice/wing eq 0
/systems/pneumatics/source/engine-1-hp-psi ge 110
/position/altitude-ft ge 15000
/systems/pneumatics/valves/engine-1-prv-valve eq 1
/systems/pneumatics/valves/engine-2-prv-valve eq 1
</test>
</test>
</switch>
<switch name="/systems/pneumatics/valves/engine-1-hp-valve-cmd-power">
<default value="0"/>
<test logic="OR" value="3">
/systems/electrical/bus/dc-ess-shed ge 25
</test>
</switch>
<actuator name="/systems/pneumatics/valves/engine-1-hp-valve">
<input>/systems/pneumatics/valves/engine-1-hp-valve-cmd</input>
<rate_limit>/systems/pneumatics/valves/engine-1-hp-valve-cmd-power</rate_limit>
</actuator>
<switch name="/systems/pneumatics/valves/engine-2-hp-valve-cmd">
<default value="1"/>
<test logic="OR" value="0">
/systems/pneumatics/source/engine-2-hp-psi lt 8
/systems/pneumatics/source/engine-2-hp-psi ge 120
<test logic="AND">
/controls/deice/wing eq 0
/systems/pneumatics/source/engine-2-hp-psi ge 110
/position/altitude-ft ge 15000
/systems/pneumatics/valves/engine-1-prv-valve eq 1
/systems/pneumatics/valves/engine-2-prv-valve eq 1
</test>
</test>
</switch>
<switch name="/systems/pneumatics/valves/engine-2-hp-valve-cmd-power">
<default value="0"/>
<test logic="OR" value="3">
/systems/electrical/bus/dc-2 ge 25
</test>
</switch>
<actuator name="/systems/pneumatics/valves/engine-2-hp-valve">
<input>/systems/pneumatics/valves/engine-2-hp-valve-cmd</input>
<rate_limit>/systems/pneumatics/valves/engine-2-hp-valve-cmd-power</rate_limit>
</actuator>
<!-- Pressure regulation valve -->
<switch name="/systems/pneumatics/valves/engine-1-prv-valve-cmd">
<default value="0"/>
<test logic="OR" value="0">
/controls/engines/engine[0]/fire-btn eq 1
/systems/pneumatics/psi/engine-1-upstream-src gt 85
/systems/pneumatics/valves/apu-bleed-valve ne 0
/systems/pneumatics/valves/starter-valve-1 ne 0
</test>
<test logic="AND" value="1">
/controls/pneumatics/switches/bleed-1 eq 1
</test>
</switch>
<switch name="/systems/pneumatics/valves/engine-1-prv-valve-cmd-power">
<default value="0"/>
<test logic="OR" value="5.0">
/systems/electrical/bus/dc-ess-shed ge 25
/systems/pneumatics/psi/engine-1-upstream-src ge 8
/systems/failures/pneumatics/bleed-1-valve eq 0
</test>
</switch>
<actuator name="/systems/pneumatics/valves/engine-1-prv-valve">
<input>/systems/pneumatics/valves/engine-1-prv-valve-cmd</input>
<rate_limit>/systems/pneumatics/valves/engine-1-prv-valve-cmd-power</rate_limit>
</actuator>
<switch name="/systems/pneumatics/valves/engine-2-prv-valve-cmd">
<default value="0"/>
<test logic="OR" value="0">
/controls/engines/engine[1]/fire-btn eq 1
/systems/pneumatics/psi/engine-2-upstream-src gt 85
<test logic="AND">
/systems/pneumatics/valves/apu-bleed-valve ne 0
/systems/pneumatics/valves/crossbleed-valve ne 0
</test>
/systems/pneumatics/valves/starter-valve-2 ne 0
</test>
<test logic="AND" value="1">
/controls/pneumatics/switches/bleed-2 eq 1
</test>
</switch>
<switch name="/systems/pneumatics/valves/engine-2-prv-valve-cmd-power">
<default value="0"/>
<test logic="OR" value="5.0">
/systems/electrical/bus/dc-2 ge 25
/systems/pneumatics/psi/engine-2-upstream-src ge 8
/systems/failures/pneumatics/bleed-2-valve eq 0
</test>
</switch>
<actuator name="/systems/pneumatics/valves/engine-2-prv-valve">
<input>/systems/pneumatics/valves/engine-2-prv-valve-cmd</input>
<rate_limit>/systems/pneumatics/valves/engine-2-prv-valve-cmd-power</rate_limit>
</actuator>
<!-- Overpressure valve -->
<fcs_function name="/systems/pneumatics/valves/engine-1-opv-valve-cmd-schedule">
<function>
<table>
<independentVar lookup="row">/systems/pneumatics/psi/engine-1-upstream-prv</independentVar>
<tableData>
79 1.0
85 0.0
</tableData>
</table>
</function>
</fcs_function>
<switch name="/systems/pneumatics/valves/engine-1-opv-valve-cmd">
<default value="1"/>
<test logic="AND" value="0">
/systems/pneumatics/valves/engine-1-opv-valve-cmd eq 0.0
/systems/pneumatics/psi/engine-1-upstream-prv ge 35
</test>
<test logic="OR" value="/systems/pneumatics/valves/engine-1-opv-valve-cmd-schedule">
/systems/pneumatics/valves/engine-1-opv-valve-cmd-schedule ne 0
</test>
</switch>
<actuator name="/systems/pneumatics/valves/engine-1-opv-valve">
<input>/systems/pneumatics/valves/engine-1-opv-valve-cmd</input>
<rate_limit>1.0</rate_limit> <!-- pneumatically controlled -->
</actuator>
<fcs_function name="/systems/pneumatics/valves/engine-2-opv-valve-cmd-schedule">
<function>
<table>
<independentVar lookup="row">/systems/pneumatics/psi/engine-2-upstream-prv</independentVar>
<tableData>
79 1.0
85 0.0
</tableData>
</table>
</function>
</fcs_function>
<switch name="/systems/pneumatics/valves/engine-2-opv-valve-cmd">
<default value="1"/>
<test logic="AND" value="0">
/systems/pneumatics/valves/engine-2-opv-valve-cmd eq 0.0
/systems/pneumatics/psi/engine-2-upstream-prv ge 35
</test>
<test logic="OR" value="/systems/pneumatics/valves/engine-2-opv-valve-cmd-schedule">
/systems/pneumatics/valves/engine-2-opv-valve-cmd-schedule ne 0
</test>
</switch>
<actuator name="/systems/pneumatics/valves/engine-2-opv-valve">
<input>/systems/pneumatics/valves/engine-2-opv-valve-cmd</input>
<rate_limit>1.0</rate_limit> <!-- pneumatically controlled -->
</actuator>
</channel>
<channel name="Source PSI">
<fcs_function name="/systems/pneumatics/source/engine-1-hp-psi">
<function>
<table>
<independentVar lookup="row">/engines/engine[0]/n2-actual</independentVar>
<tableData>
22.0 0.0
25.0 12.0
44.0 22.0
60.9 72.0
65.0 78.0
70.4 96.0
80.4 132.0
</tableData>
</table>
</function>
</fcs_function>
<fcs_function name="/systems/pneumatics/source/engine-2-hp-psi">
<function>
<table>
<independentVar lookup="row">/engines/engine[1]/n2-actual</independentVar>
<tableData>
22.0 0.0
25.0 12.0
44.0 22.0
60.9 72.0
65.0 78.0
70.4 96.0
80.4 132.0
</tableData>
</table>
</function>
</fcs_function>
<fcs_function name="/systems/pneumatics/source/engine-1-lp-psi">
<function>
<table>
<independentVar lookup="row">/engines/engine[0]/n2-actual</independentVar>
<tableData>
22.0 0.0
25.0 2.0
60.9 18.0
70.4 36.0
80.4 44.0
101.4 48.0
</tableData>
</table>
</function>
</fcs_function>
<fcs_function name="/systems/pneumatics/source/engine-2-lp-psi">
<function>
<table>
<independentVar lookup="row">/engines/engine[1]/n2-actual</independentVar>
<tableData>
22.0 0.0
25.0 2.0
60.9 18.0
70.4 36.0
80.4 44.0
101.4 48.0
</tableData>
</table>
</function>
</fcs_function>
</channel>
<channel name="System PSI">
<fcs_function name="/systems/pneumatics/psi/engine-1-upstream-src">
<function>
<ifthen>
<lt>
<property>/systems/pneumatics/valves/engine-1-hp-valve</property> <!-- lp valve opens when the airflow reduces sufficiently from hp valve -->
<value>0.1</value>
</lt>
<product>
<property>/systems/pneumatics/source/engine-1-lp-psi</property>
<property>/systems/pneumatics/valves/engine-1-lp-valve</property>
</product>
<product>
<quotient>
<property>/systems/pneumatics/source/engine-1-hp-psi</property>
<value>3</value>
</quotient>
<property>/systems/pneumatics/valves/engine-1-hp-valve</property>
</product>
</ifthen>
</function>
</fcs_function>
<fcs_function name="/systems/pneumatics/psi/engine-2-upstream-src">
<function>
<ifthen>
<lt>
<property>/systems/pneumatics/valves/engine-1-hp-valve</property>
<value>0.1</value>
</lt>
<product>
<property>/systems/pneumatics/source/engine-2-lp-psi</property>
<property>/systems/pneumatics/valves/engine-2-lp-valve</property>
</product>
<product>
<quotient>
<property>/systems/pneumatics/source/engine-2-hp-psi</property>
<value>3</value>
</quotient>
<property>/systems/pneumatics/valves/engine-2-hp-valve</property>
</product>
</ifthen>
</function>
</fcs_function>
<fcs_function name="/systems/pneumatics/psi/engine-1-upstream-prv">
<function>
<product>
<property>/systems/pneumatics/valves/engine-1-prv-valve</property>
<property>/systems/pneumatics/psi/engine-1-upstream-src</property>
</product>
</function>
</fcs_function>
<fcs_function name="/systems/pneumatics/psi/engine-2-upstream-prv">
<function>
<product>
<property>/systems/pneumatics/valves/engine-2-prv-valve</property>
<property>/systems/pneumatics/psi/engine-2-upstream-src</property>
</product>
</function>
</fcs_function>
<fcs_function name="/systems/pneumatics/psi/engine-1-psi">
<function>
<product>
<property>/systems/pneumatics/valves/engine-1-opv-valve</property>
<property>/systems/pneumatics/psi/engine-1-upstream-prv</property>
</product>
</function>
</fcs_function>
<fcs_function name="/systems/pneumatics/psi/engine-2-psi">
<function>
<product>
<property>/systems/pneumatics/valves/engine-2-opv-valve</property>
<property>/systems/pneumatics/psi/engine-2-upstream-prv</property>
</product>
</function>
</fcs_function>
</channel>
<channel name="Precooler">
<fcs_function name="/systems/pneumatics/precooler/temp-1">
<function>
<product>
<property>/systems/pneumatics/valves/engine-1-prv-valve</property>
<property>/systems/pneumatics/valves/engine-1-opv-valve</property>
<property>/engines/engine[0]/egt-actual</property>
<value>0.35</value>
</product>
</function>
</fcs_function>
<fcs_function name="/systems/pneumatics/precooler/temp-2">
<function>
<product>
<property>/systems/pneumatics/valves/engine-2-prv-valve</property>
<property>/systems/pneumatics/valves/engine-2-opv-valve</property>
<property>/engines/engine[1]/egt-actual</property>
<value>0.35</value>
</product>
</function>
</fcs_function>
<switch name="/systems/pneumatics/precooler/calc/ovht-5-true">
<default value="0"/>
<test value="1">
/systems/pneumatics/precooler/temp-1 gt 290
</test>
</switch>
<switch name="/systems/pneumatics/precooler/calc/ovht-15-true">
<default value="0"/>
<test value="1">
/systems/pneumatics/precooler/temp-1 gt 270
</test>
</switch>
<switch name="/systems/pneumatics/precooler/calc/ovht-55-true">
<default value="0"/>
<test value="1">
/systems/pneumatics/precooler/temp-1 gt 257
</test>
</switch>
<actuator name="/systems/pneumatics/precooler/calc/ovht-5">
<input>/systems/pneumatics/precooler/calc/ovht-5-true</input>
<rate_limit sense="incr">0.2</rate_limit>
<rate_limit sense="decr">100</rate_limit>
</actuator>
<actuator name="/systems/pneumatics/precooler/calc/ovht-15">
<input>/systems/pneumatics/precooler/calc/ovht-15-true</input>
<rate_limit sense="incr">0.06666</rate_limit>
<rate_limit sense="decr">100</rate_limit>
</actuator>
<actuator name="/systems/pneumatics/precooler/calc/ovht-55">
<input>/systems/pneumatics/precooler/calc/ovht-55-true</input>
<rate_limit sense="incr">0.018182</rate_limit>
<rate_limit sense="decr">100</rate_limit>
</actuator>
<switch name="/systems/pneumatics/precooler/calc/ovht-5-true-2">
<default value="0"/>
<test value="1">
/systems/pneumatics/precooler/temp-2 gt 290
</test>
</switch>
<switch name="/systems/pneumatics/precooler/calc/ovht-15-true-2">
<default value="0"/>
<test value="1">
/systems/pneumatics/precooler/temp-2 gt 270
</test>
</switch>
<switch name="/systems/pneumatics/precooler/calc/ovht-55-true-2">
<default value="0"/>
<test value="1">
/systems/pneumatics/precooler/temp-2 gt 257
</test>
</switch>
<actuator name="/systems/pneumatics/precooler/calc/ovht-5-2">
<input>/systems/pneumatics/precooler/calc/ovht-5-true-2</input>
<rate_limit sense="incr">0.2</rate_limit>
<rate_limit sense="decr">100</rate_limit>
</actuator>
<actuator name="/systems/pneumatics/precooler/calc/ovht-15-2">
<input>/systems/pneumatics/precooler/calc/ovht-15-true-2</input>
<rate_limit sense="incr">0.06666</rate_limit>
<rate_limit sense="decr">100</rate_limit>
</actuator>
<actuator name="/systems/pneumatics/precooler/calc/ovht-55-2">
<input>/systems/pneumatics/precooler/calc/ovht-55-true-2</input>
<rate_limit sense="incr">0.018182</rate_limit>
<rate_limit sense="decr">100</rate_limit>
</actuator>
<switch name="/systems/pneumatics/precooler/ovht-1">
<default value="0"/>
<test logic="OR" value="1">
/systems/pneumatics/precooler/calc/ovht-5 eq 1
/systems/pneumatics/precooler/calc/ovht-15 eq 1
/systems/pneumatics/precooler/calc/ovht-55 eq 1
</test>
</switch>
<switch name="/systems/pneumatics/precooler/ovht-2">
<default value="0"/>
<test logic="OR" value="1">
/systems/pneumatics/precooler/calc/ovht-5-2 eq 1
/systems/pneumatics/precooler/calc/ovht-15-2 eq 1
/systems/pneumatics/precooler/calc/ovht-55-2 eq 1
</test>
</switch>
</channel>
</system>