UNPKG

jsbsim.js

Version:

JSBSim flight dynamics model ported to JavaScript

1,460 lines (1,341 loc) 52.3 kB
<?xml version="1.0"?> <!-- Short S.23 flying boat flight model for JSBSim. Copyright (C) 2008 - 2011 Anders Gidenstam (anders(at)gidenstam.org) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA --> <system name="fuel-system"> <documentation> The S.23 'boats as delivered (with a few exceptions) came with one of 3 different fuel system types. [Cassidy:2004:FE] Mk.I (1D) standard: one 326 gallon tank in each wing. Mk.II (1A/1C) Cavalier, Centarus: one 179 and one 326 gallon tank in each wing. Mk.III (1B) Cambria, Caledonia: one 179, one 326 and one 380 gallon tank in each wing. two 280 gallon tanks between the spar frames in the hull. </documentation> <property value="1.0">fcs/fuel-system/mark</property> <!-- 1, 2 or 3 for Mark I, Mark II or Mark III. --> <documentation> - Fuel cocks for feeding into the common supply. - Mark I fuel system: - One for the left tank, one for the right tank and one for balancing. - Positions are OFF and ON. - fcs/fuel-system/left-tank-cock-cmd-norm - fcs/fuel-system/right-tank-cock-cmd-norm - fcs/fuel-system/balance-cock-cmd-norm - Mark II adds: - Two for the outboard left and right tanks. - fcs/fuel-system/left-tank-cock-cmd-norm[1] - fcs/fuel-system/right-tank-cock-cmd-norm[1] - Mark III adds (over Mark II): - Two for the inboard left and right tanks and two for the fuselage tanks. - fcs/fuel-system/left-tank-cock-cmd-norm[2] - fcs/fuel-system/right-tank-cock-cmd-norm[2] - fcs/fuel-system/left-tank-cock-cmd-norm[3] - fcs/fuel-system/right-tank-cock-cmd-norm[3] - Test cocks for isolating the engine fuel pumps - fcs/fuel-system/left-test-cock-cmd-norm - fcs/fuel-system/right-test-cock-cmd-norm - fcs/fuel-system/center-test-cock-cmd-norm </documentation> <!-- All marks. --> <property value="1.0">fcs/fuel-system/left-tank-cock-cmd-norm</property> <property value="1.0">fcs/fuel-system/right-tank-cock-cmd-norm</property> <property value="1.0">fcs/fuel-system/balance-cock-cmd-norm</property> <property value="1.0">fcs/fuel-system/left-test-cock-cmd-norm</property> <property value="1.0">fcs/fuel-system/right-test-cock-cmd-norm</property> <property value="1.0">fcs/fuel-system/center-test-cock-cmd-norm</property> <!-- Mark II and III only. --> <property value="1.0">fcs/fuel-system/left-tank-cock-cmd-norm[1]</property> <property value="1.0">fcs/fuel-system/right-tank-cock-cmd-norm[1]</property> <!-- Mark III only. --> <property value="1.0">fcs/fuel-system/left-tank-cock-cmd-norm[2]</property> <property value="1.0">fcs/fuel-system/right-tank-cock-cmd-norm[2]</property> <property value="1.0">fcs/fuel-system/left-tank-cock-cmd-norm[3]</property> <property value="1.0">fcs/fuel-system/right-tank-cock-cmd-norm[3]</property> <!-- Extra tank constants. --> <property value="0.022206">propulsion/fuel-specific-volume-ft3_lbs</property> <property value="2356.9">propulsion/tank[0]/capacity-lbs</property> <property value="22.34">propulsion/tank[0]/area-ft2</property> <property value="-17.55">propulsion/tank[0]/position-y-ft</property> <property value="8.20">propulsion/tank[0]/position-z-ft</property> <property value="2356.9">propulsion/tank[1]/capacity-lbs</property> <property value="22.34">propulsion/tank[1]/area-ft2</property> <property value="17.55">propulsion/tank[1]/position-y-ft</property> <property value="8.20">propulsion/tank[1]/position-z-ft</property> <property value="1294.1">propulsion/tank[2]/capacity-lbs</property> <property value="13.20">propulsion/tank[2]/area-ft2</property> <property value="-22.47">propulsion/tank[2]/position-y-ft</property> <property value="8.37">propulsion/tank[2]/position-z-ft</property> <property value="1294.1">propulsion/tank[3]/capacity-lbs</property> <property value="13.20">propulsion/tank[3]/area-ft2</property> <property value="22.47">propulsion/tank[3]/position-y-ft</property> <property value="8.37">propulsion/tank[3]/position-z-ft</property> <property value="2747.3">propulsion/tank[4]/capacity-lbs</property> <property value="23.40">propulsion/tank[4]/area-ft2</property> <property value="-8.04">propulsion/tank[4]/position-y-ft</property> <property value="7.87">propulsion/tank[4]/position-z-ft</property> <property value="2747.3">propulsion/tank[5]/capacity-lbs</property> <property value="23.40">propulsion/tank[5]/area-ft2</property> <property value="8.04">propulsion/tank[5]/position-y-ft</property> <property value="7.87">propulsion/tank[5]/position-z-ft</property> <property value="2024.3">propulsion/tank[6]/capacity-lbs</property> <property value="25.22">propulsion/tank[6]/area-ft2</property> <property value="-2.36">propulsion/tank[6]/position-y-ft</property> <property value="7.87">propulsion/tank[6]/position-z-ft</property> <property value="2024.3">propulsion/tank[7]/capacity-lbs</property> <property value="25.22">propulsion/tank[7]/area-ft2</property> <property value="2.36">propulsion/tank[7]/position-y-ft</property> <property value="7.87">propulsion/tank[7]/position-z-ft</property> <property value="1.0">propulsion/engine[0]/fuel-pump-capacity-pps</property> <property value="1.0">propulsion/engine[1]/fuel-pump-capacity-pps</property> <property value="1.0">propulsion/engine[2]/fuel-pump-capacity-pps</property> <property value="1.0">propulsion/engine[3]/fuel-pump-capacity-pps</property> <channel name="Extra fuel tank properties"> <switch name="propulsion/tank[0]/empty"> <default value="1.0"/> <test value="0.0" logic="AND"> propulsion/tank[0]/contents-lbs GT 0.0 </test> </switch> <switch name="propulsion/tank[1]/empty"> <default value="1.0"/> <test value="0.0" logic="AND"> propulsion/tank[1]/contents-lbs GT 0.0 </test> </switch> <switch name="propulsion/tank[2]/empty"> <default value="1.0"/> <test value="0.0" logic="AND"> propulsion/tank[2]/contents-lbs GT 0.0 </test> </switch> <switch name="propulsion/tank[3]/empty"> <default value="1.0"/> <test value="0.0" logic="AND"> propulsion/tank[3]/contents-lbs GT 0.0 </test> </switch> <switch name="propulsion/tank[4]/empty"> <default value="1.0"/> <test value="0.0" logic="AND"> propulsion/tank[4]/contents-lbs GT 0.0 </test> </switch> <switch name="propulsion/tank[5]/empty"> <default value="1.0"/> <test value="0.0" logic="AND"> propulsion/tank[5]/contents-lbs GT 0.0 </test> </switch> <switch name="propulsion/tank[6]/empty"> <default value="1.0"/> <test value="0.0" logic="AND"> propulsion/tank[6]/contents-lbs GT 0.0 </test> </switch> <switch name="propulsion/tank[7]/empty"> <default value="1.0"/> <test value="0.0" logic="AND"> propulsion/tank[7]/contents-lbs GT 0.0 </test> </switch> <!-- TODO: Extend these to consider acceleration. --> <fcs_function name="propulsion/tank[0]/relative-level-ft"> <function> <sum> <product> <property>propulsion/tank[0]/empty</property> <value>-1000.0</value> </product> <property>propulsion/tank[0]/position-z-ft</property> <product> <value>-1.0</value> <property>propulsion/tank[0]/position-y-ft</property> <sin> <property>attitude/phi-rad</property> </sin> </product> <quotient> <product> <property>propulsion/fuel-specific-volume-ft3_lbs</property> <property>propulsion/tank[0]/contents-lbs</property> </product> <property>propulsion/tank[0]/area-ft2</property> </quotient> </sum> </function> </fcs_function> <fcs_function name="propulsion/tank[1]/relative-level-ft"> <function> <sum> <product> <property>propulsion/tank[1]/empty</property> <value>-1000.0</value> </product> <property>propulsion/tank[1]/position-z-ft</property> <product> <value>-1.0</value> <property>propulsion/tank[1]/position-y-ft</property> <sin> <property>attitude/phi-rad</property> </sin> </product> <quotient> <product> <property>propulsion/fuel-specific-volume-ft3_lbs</property> <property>propulsion/tank[1]/contents-lbs</property> </product> <property>propulsion/tank[1]/area-ft2</property> </quotient> </sum> </function> </fcs_function> <fcs_function name="propulsion/tank[2]/relative-level-ft"> <function> <sum> <product> <property>propulsion/tank[2]/empty</property> <value>-1000.0</value> </product> <property>propulsion/tank[2]/position-z-ft</property> <product> <value>-1.0</value> <property>propulsion/tank[2]/position-y-ft</property> <sin> <property>attitude/phi-rad</property> </sin> </product> <quotient> <product> <property>propulsion/fuel-specific-volume-ft3_lbs</property> <property>propulsion/tank[2]/contents-lbs</property> </product> <property>propulsion/tank[2]/area-ft2</property> </quotient> </sum> </function> </fcs_function> <fcs_function name="propulsion/tank[3]/relative-level-ft"> <function> <sum> <product> <property>propulsion/tank[3]/empty</property> <value>-1000.0</value> </product> <property>propulsion/tank[3]/position-z-ft</property> <product> <value>-1.0</value> <property>propulsion/tank[3]/position-y-ft</property> <sin> <property>attitude/phi-rad</property> </sin> </product> <quotient> <product> <property>propulsion/fuel-specific-volume-ft3_lbs</property> <property>propulsion/tank[3]/contents-lbs</property> </product> <property>propulsion/tank[3]/area-ft2</property> </quotient> </sum> </function> </fcs_function> <fcs_function name="propulsion/tank[4]/relative-level-ft"> <function> <sum> <product> <property>propulsion/tank[4]/empty</property> <value>-1000.0</value> </product> <property>propulsion/tank[4]/position-z-ft</property> <product> <property>propulsion/tank[4]/position-y-ft</property> <value>-1.0</value> <sin> <property>attitude/phi-rad</property> </sin> </product> <quotient> <product> <property>propulsion/fuel-specific-volume-ft3_lbs</property> <property>propulsion/tank[4]/contents-lbs</property> </product> <property>propulsion/tank[4]/area-ft2</property> </quotient> </sum> </function> </fcs_function> <fcs_function name="propulsion/tank[5]/relative-level-ft"> <function> <sum> <product> <property>propulsion/tank[5]/empty</property> <value>-1000.0</value> </product> <property>propulsion/tank[5]/position-z-ft</property> <product> <value>-1.0</value> <property>propulsion/tank[5]/position-y-ft</property> <sin> <property>attitude/phi-rad</property> </sin> </product> <quotient> <product> <property>propulsion/fuel-specific-volume-ft3_lbs</property> <property>propulsion/tank[5]/contents-lbs</property> </product> <property>propulsion/tank[5]/area-ft2</property> </quotient> </sum> </function> </fcs_function> <fcs_function name="propulsion/tank[6]/relative-level-ft"> <function> <sum> <product> <property>propulsion/tank[6]/empty</property> <value>-1000.0</value> </product> <property>propulsion/tank[6]/position-z-ft</property> <product> <value>-1.0</value> <property>propulsion/tank[6]/position-y-ft</property> <sin> <property>attitude/phi-rad</property> </sin> </product> <quotient> <product> <property>propulsion/fuel-specific-volume-ft3_lbs</property> <property>propulsion/tank[6]/contents-lbs</property> </product> <property>propulsion/tank[6]/area-ft2</property> </quotient> </sum> </function> </fcs_function> <fcs_function name="propulsion/tank[7]/relative-level-ft"> <function> <sum> <product> <property>propulsion/tank[7]/empty</property> <value>-1000.0</value> </product> <property>propulsion/tank[7]/position-z-ft</property> <product> <value>-1.0</value> <property>propulsion/tank[7]/position-y-ft</property> <sin> <property>attitude/phi-rad</property> </sin> </product> <quotient> <product> <property>propulsion/fuel-specific-volume-ft3_lbs</property> <property>propulsion/tank[7]/contents-lbs</property> </product> <property>propulsion/tank[7]/area-ft2</property> </quotient> </sum> </function> </fcs_function> </channel> <channel name="Center wing tanks"> <switch name="fcs/fuel-system/tank-cocks/left-open"> <default value="0.0"/> <test value="1.0"> fcs/fuel-system/left-tank-cock-cmd-norm GT 0.5 </test> </switch> <switch name="fcs/fuel-system/tank-cocks/right-open"> <default value="0.0"/> <test value="1.0"> fcs/fuel-system/right-tank-cock-cmd-norm GT 0.5 </test> </switch> <switch name="fcs/fuel-system/tank-cocks/balance-open"> <default value="0.0"/> <test value="1.0"> fcs/fuel-system/balance-cock-cmd-norm GT 0.5 </test> </switch> <switch name="fcs/fuel-system/tank-cocks/balance-closed"> <default value="1.0"/> <test value="0.0"> fcs/fuel-system/balance-cock-cmd-norm GT 0.5 </test> </switch> </channel> <channel name="Outboard wing tank cocks"> <switch name="fcs/fuel-system/tank-cocks/left-open[1]"> <default value="0.0"/> <test value="1.0" logic="AND"> fcs/fuel-system/mark GE 2 fcs/fuel-system/left-tank-cock-cmd-norm[1] GT 0.5 </test> </switch> <switch name="fcs/fuel-system/tank-cocks/right-open[1]"> <default value="0.0"/> <test value="1.0" logic="AND"> fcs/fuel-system/mark GE 2 fcs/fuel-system/right-tank-cock-cmd-norm[1] GT 0.5 </test> </switch> <switch name="fcs/fuel-system/internals/outboard-tank-contents-lbs[0]"> <default value="0"/> <test value="propulsion/tank[2]/contents-lbs"> fcs/fuel-system/mark GE 2 </test> <output>propulsion/tank[2]/contents-lbs</output> </switch> <switch name="fcs/fuel-system/internals/outboard-tank-contents-lbs[1]"> <default value="0"/> <test value="propulsion/tank[3]/contents-lbs"> fcs/fuel-system/mark GE 2 </test> <output>propulsion/tank[3]/contents-lbs</output> </switch> </channel> <channel name="Inboard wing tank cocks"> <switch name="fcs/fuel-system/tank-cocks/left-open[2]"> <default value="0.0"/> <test value="1.0" logic="AND"> fcs/fuel-system/mark GE 3 fcs/fuel-system/left-tank-cock-cmd-norm[2] GT 0.5 </test> </switch> <switch name="fcs/fuel-system/tank-cocks/right-open[2]"> <default value="0.0"/> <test value="1.0" logic="AND"> fcs/fuel-system/mark GE 3 fcs/fuel-system/right-tank-cock-cmd-norm[2] GT 0.5 </test> </switch> <switch name="fcs/fuel-system/internals/inboard-tank-contents-lbs[0]"> <default value="0"/> <test value="propulsion/tank[4]/contents-lbs"> fcs/fuel-system/mark GE 3 </test> <output>propulsion/tank[4]/contents-lbs</output> </switch> <switch name="fcs/fuel-system/internals/inboard-tank-contents-lbs[1]"> <default value="0"/> <test value="propulsion/tank[5]/contents-lbs"> fcs/fuel-system/mark GE 3 </test> <output>propulsion/tank[5]/contents-lbs</output> </switch> </channel> <channel name="Fuselage tank cocks"> <switch name="fcs/fuel-system/tank-cocks/left-open[3]"> <default value="0.0"/> <test value="1.0" logic="AND"> fcs/fuel-system/mark GE 3 fcs/fuel-system/left-tank-cock-cmd-norm[3] GT 0.5 </test> </switch> <switch name="fcs/fuel-system/tank-cocks/right-open[3]"> <default value="0.0"/> <test value="1.0" logic="AND"> fcs/fuel-system/mark GE 3 fcs/fuel-system/right-tank-cock-cmd-norm[3] GT 0.5 </test> </switch> <switch name="fcs/fuel-system/internals/fuselage-tank-contents-lbs[0]"> <default value="0"/> <test value="propulsion/tank[6]/contents-lbs"> fcs/fuel-system/mark GE 3 </test> <output>propulsion/tank[6]/contents-lbs</output> </switch> <switch name="fcs/fuel-system/internals/fuselage-tank-contents-lbs[1]"> <default value="0"/> <test value="propulsion/tank[7]/contents-lbs"> fcs/fuel-system/mark GE 3 </test> <output>propulsion/tank[7]/contents-lbs</output> </switch> </channel> <channel name="Fuel supply"> <fcs_function name="fcs/fuel-system/supply/total-max-tank-level-ft"> <function> <max> <product> <property>fcs/fuel-system/tank-cocks/left-open[0]</property> <property>propulsion/tank[0]/relative-level-ft</property> </product> <product> <property>fcs/fuel-system/tank-cocks/right-open[0]</property> <property>propulsion/tank[1]/relative-level-ft</property> </product> <product> <property>fcs/fuel-system/tank-cocks/left-open[1]</property> <property>propulsion/tank[2]/relative-level-ft</property> </product> <product> <property>fcs/fuel-system/tank-cocks/right-open[1]</property> <property>propulsion/tank[3]/relative-level-ft</property> </product> <product> <property>fcs/fuel-system/tank-cocks/left-open[2]</property> <property>propulsion/tank[4]/relative-level-ft</property> </product> <product> <property>fcs/fuel-system/tank-cocks/right-open[2]</property> <property>propulsion/tank[5]/relative-level-ft</property> </product> <product> <property>fcs/fuel-system/tank-cocks/left-open[3]</property> <property>propulsion/tank[6]/relative-level-ft</property> </product> <product> <property>fcs/fuel-system/tank-cocks/right-open[3]</property> <property>propulsion/tank[7]/relative-level-ft</property> </product> </max> </function> </fcs_function> <fcs_function name="fcs/fuel-system/supply/left-max-tank-level-ft"> <function> <max> <product> <property>fcs/fuel-system/tank-cocks/left-open[0]</property> <property>propulsion/tank[0]/relative-level-ft</property> </product> <product> <property>fcs/fuel-system/tank-cocks/left-open[1]</property> <property>propulsion/tank[2]/relative-level-ft</property> </product> <product> <property>fcs/fuel-system/tank-cocks/left-open[2]</property> <property>propulsion/tank[4]/relative-level-ft</property> </product> <product> <property>fcs/fuel-system/tank-cocks/left-open[3]</property> <property>propulsion/tank[6]/relative-level-ft</property> </product> </max> </function> </fcs_function> <fcs_function name="fcs/fuel-system/supply/right-max-tank-level-ft"> <function> <max> <product> <property>fcs/fuel-system/tank-cocks/right-open[0]</property> <property>propulsion/tank[1]/relative-level-ft</property> </product> <product> <property>fcs/fuel-system/tank-cocks/right-open[1]</property> <property>propulsion/tank[3]/relative-level-ft</property> </product> <product> <property>fcs/fuel-system/tank-cocks/right-open[2]</property> <property>propulsion/tank[5]/relative-level-ft</property> </product> <product> <property>fcs/fuel-system/tank-cocks/right-open[3]</property> <property>propulsion/tank[7]/relative-level-ft</property> </product> </max> </function> </fcs_function> <switch name="fcs/fuel-system/supply/tank-supplying[0]"> <default value="0.0"/> <test value="1.0" logic="AND"> fcs/fuel-system/tank-cocks/balance-open GT 0.5 fcs/fuel-system/tank-cocks/left-open[0] GT 0.5 propulsion/tank[0]/contents-lbs GT 0.0 propulsion/tank[0]/relative-level-ft GE fcs/fuel-system/supply/total-max-tank-level-ft </test> <test value="1.0" logic="AND"> fcs/fuel-system/tank-cocks/balance-open LT 0.5 fcs/fuel-system/tank-cocks/left-open[0] GT 0.5 propulsion/tank[0]/contents-lbs GT 0.0 propulsion/tank[0]/relative-level-ft GE fcs/fuel-system/supply/left-max-tank-level-ft </test> </switch> <switch name="fcs/fuel-system/supply/tank-supplying[1]"> <default value="0.0"/> <test value="1.0" logic="AND"> fcs/fuel-system/tank-cocks/balance-open GT 0.5 fcs/fuel-system/tank-cocks/right-open[0] GT 0.5 propulsion/tank[1]/contents-lbs GT 0.0 propulsion/tank[1]/relative-level-ft GE fcs/fuel-system/supply/total-max-tank-level-ft </test> <test value="1.0" logic="AND"> fcs/fuel-system/tank-cocks/balance-open LT 0.5 fcs/fuel-system/tank-cocks/right-open[0] GT 0.5 propulsion/tank[1]/contents-lbs GT 0.0 propulsion/tank[1]/relative-level-ft GE fcs/fuel-system/supply/right-max-tank-level-ft </test> </switch> <switch name="fcs/fuel-system/supply/tank-supplying[2]"> <default value="0.0"/> <test value="1.0" logic="AND"> fcs/fuel-system/tank-cocks/balance-open GT 0.5 fcs/fuel-system/tank-cocks/left-open[1] GT 0.5 propulsion/tank[2]/contents-lbs GT 0.0 propulsion/tank[2]/relative-level-ft GE fcs/fuel-system/supply/total-max-tank-level-ft </test> <test value="1.0" logic="AND"> fcs/fuel-system/tank-cocks/balance-open LT 0.5 fcs/fuel-system/tank-cocks/left-open[1] GT 0.5 propulsion/tank[2]/contents-lbs GT 0.0 propulsion/tank[2]/relative-level-ft GE fcs/fuel-system/supply/left-max-tank-level-ft </test> </switch> <switch name="fcs/fuel-system/supply/tank-supplying[3]"> <default value="0.0"/> <test value="1.0" logic="AND"> fcs/fuel-system/tank-cocks/balance-open GT 0.5 fcs/fuel-system/tank-cocks/right-open[1] GT 0.5 propulsion/tank[3]/contents-lbs GT 0.0 propulsion/tank[3]/relative-level-ft GE fcs/fuel-system/supply/total-max-tank-level-ft </test> <test value="1.0" logic="AND"> fcs/fuel-system/tank-cocks/balance-open LT 0.5 fcs/fuel-system/tank-cocks/right-open[1] GT 0.5 propulsion/tank[3]/contents-lbs GT 0.0 propulsion/tank[3]/relative-level-ft GE fcs/fuel-system/supply/right-max-tank-level-ft </test> </switch> <switch name="fcs/fuel-system/supply/tank-supplying[4]"> <default value="0.0"/> <test value="1.0" logic="AND"> fcs/fuel-system/tank-cocks/balance-open GT 0.5 fcs/fuel-system/tank-cocks/left-open[2] GT 0.5 propulsion/tank[4]/contents-lbs GT 0.0 propulsion/tank[4]/relative-level-ft GE fcs/fuel-system/supply/total-max-tank-level-ft </test> <test value="1.0" logic="AND"> fcs/fuel-system/tank-cocks/balance-open LT 0.5 fcs/fuel-system/tank-cocks/left-open[2] GT 0.5 propulsion/tank[4]/contents-lbs GT 0.0 propulsion/tank[4]/relative-level-ft GE fcs/fuel-system/supply/left-max-tank-level-ft </test> </switch> <switch name="fcs/fuel-system/supply/tank-supplying[5]"> <default value="0.0"/> <test value="1.0" logic="AND"> fcs/fuel-system/tank-cocks/balance-open GT 0.5 fcs/fuel-system/tank-cocks/right-open[2] GT 0.5 propulsion/tank[5]/contents-lbs GT 0.0 propulsion/tank[5]/relative-level-ft GE fcs/fuel-system/supply/total-max-tank-level-ft </test> <test value="1.0" logic="AND"> fcs/fuel-system/tank-cocks/balance-open LT 0.5 fcs/fuel-system/tank-cocks/right-open[2] GT 0.5 propulsion/tank[5]/contents-lbs GT 0.0 propulsion/tank[5]/relative-level-ft GE fcs/fuel-system/supply/right-max-tank-level-ft </test> </switch> <switch name="fcs/fuel-system/supply/tank-supplying[6]"> <default value="0.0"/> <test value="1.0" logic="AND"> fcs/fuel-system/tank-cocks/balance-open GT 0.5 fcs/fuel-system/tank-cocks/left-open[3] GT 0.5 propulsion/tank[6]/contents-lbs GT 0.0 propulsion/tank[6]/relative-level-ft GE fcs/fuel-system/supply/total-max-tank-level-ft </test> <test value="1.0" logic="AND"> fcs/fuel-system/tank-cocks/balance-open LT 0.5 fcs/fuel-system/tank-cocks/left-open[3] GT 0.5 propulsion/tank[6]/contents-lbs GT 0.0 propulsion/tank[6]/relative-level-ft GE fcs/fuel-system/supply/left-max-tank-level-ft </test> </switch> <switch name="fcs/fuel-system/supply/tank-supplying[7]"> <default value="0.0"/> <test value="1.0" logic="AND"> fcs/fuel-system/tank-cocks/balance-open GT 0.5 fcs/fuel-system/tank-cocks/right-open[3] GT 0.5 propulsion/tank[7]/contents-lbs GT 0.0 propulsion/tank[7]/relative-level-ft GE fcs/fuel-system/supply/total-max-tank-level-ft </test> <test value="1.0" logic="AND"> fcs/fuel-system/tank-cocks/balance-open LT 0.5 fcs/fuel-system/tank-cocks/right-open[3] GT 0.5 propulsion/tank[7]/contents-lbs GT 0.0 propulsion/tank[7]/relative-level-ft GE fcs/fuel-system/supply/right-max-tank-level-ft </test> </switch> <fcs_function name="fcs/fuel-system/supply/total-supply-available"> <function> <product> <property>fcs/fuel-system/tank-cocks/balance-open</property> <max> <property>fcs/fuel-system/supply/tank-supplying[0]</property> <property>fcs/fuel-system/supply/tank-supplying[1]</property> <property>fcs/fuel-system/supply/tank-supplying[2]</property> <property>fcs/fuel-system/supply/tank-supplying[3]</property> <property>fcs/fuel-system/supply/tank-supplying[4]</property> <property>fcs/fuel-system/supply/tank-supplying[5]</property> <property>fcs/fuel-system/supply/tank-supplying[6]</property> <property>fcs/fuel-system/supply/tank-supplying[7]</property> </max> </product> </function> <clipto> <min>0.0</min> <max>1.0</max> </clipto> </fcs_function> <fcs_function name="fcs/fuel-system/supply/left-supply-available"> <function> <product> <difference> <value>1.0</value> <property>fcs/fuel-system/tank-cocks/balance-open</property> </difference> <max> <property>fcs/fuel-system/supply/tank-supplying[0]</property> <property>fcs/fuel-system/supply/tank-supplying[2]</property> <property>fcs/fuel-system/supply/tank-supplying[4]</property> <property>fcs/fuel-system/supply/tank-supplying[6]</property> </max> </product> </function> <clipto> <min>0.0</min> <max>1.0</max> </clipto> </fcs_function> <fcs_function name="fcs/fuel-system/supply/right-supply-available"> <function> <product> <difference> <value>1.0</value> <property>fcs/fuel-system/tank-cocks/balance-open</property> </difference> <max> <property>fcs/fuel-system/supply/tank-supplying[1]</property> <property>fcs/fuel-system/supply/tank-supplying[3]</property> <property>fcs/fuel-system/supply/tank-supplying[5]</property> <property>fcs/fuel-system/supply/tank-supplying[7]</property> </max> </product> </function> <clipto> <min>0.0</min> <max>1.0</max> </clipto> </fcs_function> </channel> <channel name="Fuel pump flows"> <fcs_function name="propulsion/engine[0]/fuel-pump-flow-pps"> <function> <product> <sum> <property>fcs/fuel-system/supply/total-supply-available</property> <property>fcs/fuel-system/supply/left-supply-available</property> </sum> <property>propulsion/engine[0]/fuel-pump-running-norm</property> <property>propulsion/engine[0]/fuel-pump-capacity-pps</property> </product> </function> </fcs_function> <fcs_function name="propulsion/engine[1]/fuel-pump-flow-pps"> <function> <product> <sum> <property>fcs/fuel-system/supply/total-supply-available</property> <property>fcs/fuel-system/supply/left-supply-available</property> </sum> <property>propulsion/engine[1]/fuel-pump-running-norm</property> <property>propulsion/engine[1]/fuel-pump-capacity-pps</property> </product> </function> </fcs_function> <fcs_function name="propulsion/engine[2]/fuel-pump-flow-pps"> <function> <product> <sum> <property>fcs/fuel-system/supply/total-supply-available</property> <property>fcs/fuel-system/supply/right-supply-available</property> </sum> <property>propulsion/engine[2]/fuel-pump-running-norm</property> <property>propulsion/engine[2]/fuel-pump-capacity-pps</property> </product> </function> </fcs_function> <fcs_function name="propulsion/engine[3]/fuel-pump-flow-pps"> <function> <product> <sum> <property>fcs/fuel-system/supply/total-supply-available</property> <property>fcs/fuel-system/supply/right-supply-available</property> </sum> <property>propulsion/engine[3]/fuel-pump-running-norm</property> <property>propulsion/engine[3]/fuel-pump-capacity-pps</property> </product> </function> </fcs_function> </channel> <channel name="Fuel feed test cocks"> <switch name="fcs/fuel-system/test-cocks/left-open"> <default value="0.0"/> <test value="1.0"> fcs/fuel-system/left-test-cock-cmd-norm GE 0.5 </test> </switch> <switch name="fcs/fuel-system/test-cocks/left-closed"> <default value="1.0"/> <test value="0.0"> fcs/fuel-system/left-test-cock-cmd-norm GE 0.5 </test> </switch> <switch name="fcs/fuel-system/test-cocks/right-open"> <default value="0.0"/> <test value="1.0"> fcs/fuel-system/right-test-cock-cmd-norm GE 0.5 </test> </switch> <switch name="fcs/fuel-system/test-cocks/right-closed"> <default value="1.0"/> <test value="0.0"> fcs/fuel-system/right-test-cock-cmd-norm GE 0.5 </test> </switch> <switch name="fcs/fuel-system/test-cocks/center-open"> <default value="0.0"/> <test value="1.0"> fcs/fuel-system/center-test-cock-cmd-norm GE 0.5 </test> </switch> <switch name="fcs/fuel-system/test-cocks/center-closed"> <default value="1.0"/> <test value="0.0"> fcs/fuel-system/center-test-cock-cmd-norm GE 0.5 </test> </switch> </channel> <channel name="Fuel feed line"> <fcs_function name="fcs/fuel-system/feed-line/total-available-pps"> <function> <product> <property>fcs/fuel-system/test-cocks/left-open</property> <property>fcs/fuel-system/test-cocks/center-open</property> <property>fcs/fuel-system/test-cocks/right-open</property> <sum> <property>propulsion/engine[0]/fuel-pump-flow-pps</property> <property>propulsion/engine[1]/fuel-pump-flow-pps</property> <property>propulsion/engine[2]/fuel-pump-flow-pps</property> <property>propulsion/engine[3]/fuel-pump-flow-pps</property> </sum> </product> </function> </fcs_function> <fcs_function name="fcs/fuel-system/feed-line/left-wing-available-pps"> <function> <product> <property>fcs/fuel-system/test-cocks/left-open</property> <property>fcs/fuel-system/test-cocks/center-closed</property> <sum> <property>propulsion/engine[0]/fuel-pump-flow-pps</property> <property>propulsion/engine[1]/fuel-pump-flow-pps</property> </sum> </product> </function> </fcs_function> <fcs_function name="fcs/fuel-system/feed-line/right-wing-available-pps"> <function> <product> <property>fcs/fuel-system/test-cocks/center-closed</property> <property>fcs/fuel-system/test-cocks/right-open</property> <sum> <property>propulsion/engine[2]/fuel-pump-flow-pps</property> <property>propulsion/engine[3]/fuel-pump-flow-pps</property> </sum> </product> </function> </fcs_function> <fcs_function name="fcs/fuel-system/feed-line/center-available-pps"> <function> <product> <property>fcs/fuel-system/test-cocks/left-closed</property> <property>fcs/fuel-system/test-cocks/center-open</property> <property>fcs/fuel-system/test-cocks/right-closed</property> <sum> <property>propulsion/engine[1]/fuel-pump-flow-pps</property> <property>propulsion/engine[2]/fuel-pump-flow-pps</property> </sum> </product> </function> </fcs_function> <fcs_function name="fcs/fuel-system/feed-line/left-center-available-pps"> <function> <product> <property>fcs/fuel-system/test-cocks/left-open</property> <property>fcs/fuel-system/test-cocks/center-open</property> <property>fcs/fuel-system/test-cocks/right-closed</property> <sum> <property>propulsion/engine[0]/fuel-pump-flow-pps</property> <property>propulsion/engine[1]/fuel-pump-flow-pps</property> <property>propulsion/engine[2]/fuel-pump-flow-pps</property> </sum> </product> </function> </fcs_function> <fcs_function name="fcs/fuel-system/feed-line/right-center-available-pps"> <function> <product> <property>fcs/fuel-system/test-cocks/left-closed</property> <property>fcs/fuel-system/test-cocks/center-open</property> <property>fcs/fuel-system/test-cocks/right-open</property> <sum> <property>propulsion/engine[0]/fuel-pump-flow-pps</property> <property>propulsion/engine[1]/fuel-pump-flow-pps</property> <property>propulsion/engine[2]/fuel-pump-flow-pps</property> </sum> </product> </function> </fcs_function> <fcs_function name="fcs/fuel-system/feed-line/left-outer-available-pps"> <function> <product> <property>fcs/fuel-system/test-cocks/left-closed</property> <property>propulsion/engine[0]/fuel-pump-flow-pps</property> </product> </function> </fcs_function> <fcs_function name="fcs/fuel-system/feed-line/left-inner-available-pps"> <function> <product> <property>fcs/fuel-system/test-cocks/left-closed</property> <property>fcs/fuel-system/test-cocks/center-closed</property> <property>propulsion/engine[1]/fuel-pump-flow-pps</property> </product> </function> </fcs_function> <fcs_function name="fcs/fuel-system/feed-line/right-inner-available-pps"> <function> <product> <property>fcs/fuel-system/test-cocks/center-closed</property> <property>fcs/fuel-system/test-cocks/right-closed</property> <property>propulsion/engine[2]/fuel-pump-flow-pps</property> </product> </function> </fcs_function> <fcs_function name="fcs/fuel-system/feed-line/right-outer-available-pps"> <function> <product> <property>fcs/fuel-system/test-cocks/right-closed</property> <property>propulsion/engine[3]/fuel-pump-flow-pps</property> </product> </function> </fcs_function> </channel> <channel name="Carburettor feed"> <switch name="fcs/fuel-system/feed-line/carburettor-float-open[0]"> <default value="0.0"/> <test value="1.0"> propulsion/tank[8]/contents-lbs LT 0.1 </test> </switch> <switch name="fcs/fuel-system/feed-line/carburettor-float-open[1]"> <default value="0.0"/> <test value="1.0"> propulsion/tank[9]/contents-lbs LT 0.1 </test> </switch> <switch name="fcs/fuel-system/feed-line/carburettor-float-open[2]"> <default value="0.0"/> <test value="1.0"> propulsion/tank[10]/contents-lbs LT 0.1 </test> </switch> <switch name="fcs/fuel-system/feed-line/carburettor-float-open[3]"> <default value="0.0"/> <test value="1.0"> propulsion/tank[11]/contents-lbs LT 0.1 </test> </switch> <fcs_function name="fcs/fuel-system/feed-line/total-carburettor-open"> <function> <sum> <property>fcs/fuel-system/feed-line/carburettor-float-open[0]</property> <property>fcs/fuel-system/feed-line/carburettor-float-open[1]</property> <property>fcs/fuel-system/feed-line/carburettor-float-open[2]</property> <property>fcs/fuel-system/feed-line/carburettor-float-open[3]</property> </sum> </function> </fcs_function> <fcs_function name="fcs/fuel-system/feed-line/left-wing-carburettor-open"> <function> <sum> <property>fcs/fuel-system/feed-line/carburettor-float-open[0]</property> <property>fcs/fuel-system/feed-line/carburettor-float-open[1]</property> </sum> </function> </fcs_function> <fcs_function name="fcs/fuel-system/feed-line/right-wing-carburettor-open"> <function> <sum> <property>fcs/fuel-system/feed-line/carburettor-float-open[2]</property> <property>fcs/fuel-system/feed-line/carburettor-float-open[3]</property> </sum> </function> </fcs_function> <fcs_function name="fcs/fuel-system/feed-line/center-carburettor-open"> <function> <sum> <property>fcs/fuel-system/feed-line/carburettor-float-open[1]</property> <property>fcs/fuel-system/feed-line/carburettor-float-open[2]</property> </sum> </function> </fcs_function> <fcs_function name="fcs/fuel-system/feed-line/left-center-carburettor-open"> <function> <sum> <property>fcs/fuel-system/feed-line/carburettor-float-open[0]</property> <property>fcs/fuel-system/feed-line/carburettor-float-open[1]</property> <property>fcs/fuel-system/feed-line/carburettor-float-open[2]</property> </sum> </function> </fcs_function> <fcs_function name="fcs/fuel-system/feed-line/right-center-carburettor-open"> <function> <sum> <property>fcs/fuel-system/feed-line/carburettor-float-open[1]</property> <property>fcs/fuel-system/feed-line/carburettor-float-open[2]</property> <property>fcs/fuel-system/feed-line/carburettor-float-open[3]</property> </sum> </function> </fcs_function> <fcs_function name="fcs/fuel-system/feed-line/carburettor-flow-pps[0]"> <function> <product> <property>fcs/fuel-system/feed-line/carburettor-float-open[0]</property> <sum> <!-- Isolated. --> <property>fcs/fuel-system/feed-line/left-outer-available-pps</property> <!-- Left wing. --> <quotient> <property>fcs/fuel-system/feed-line/left-wing-available-pps</property> <value>2.0</value> </quotient> <!-- Left wing + center. --> <quotient> <property>fcs/fuel-system/feed-line/left-center-available-pps</property> <value>3.0</value> </quotient> <!-- All test cocks open. --> <quotient> <property>fcs/fuel-system/feed-line/total-available-pps</property> <value>4.0</value> </quotient> </sum> </product> </function> <output>propulsion/tank[8]/external-flow-rate-pps</output> </fcs_function> <fcs_function name="fcs/fuel-system/feed-line/carburettor-flow-pps[1]"> <function> <product> <property>fcs/fuel-system/feed-line/carburettor-float-open[1]</property> <sum> <!-- Isolated. --> <property>fcs/fuel-system/feed-line/left-inner-available-pps</property> <!-- Left wing. --> <quotient> <property>fcs/fuel-system/feed-line/left-wing-available-pps</property> <value>2.0</value> </quotient> <!-- Center. --> <quotient> <property>fcs/fuel-system/feed-line/center-available-pps</property> <value>2.0</value> </quotient> <!-- Left wing + center. --> <quotient> <property>fcs/fuel-system/feed-line/left-center-available-pps</property> <value>3.0</value> </quotient> <!-- Right wing + center. --> <quotient> <property>fcs/fuel-system/feed-line/right-center-available-pps</property> <value>3.0</value> </quotient> <!-- All test cocks open. --> <quotient> <property>fcs/fuel-system/feed-line/total-available-pps</property> <value>4.0</value> </quotient> </sum> </product> </function> <output>propulsion/tank[9]/external-flow-rate-pps</output> </fcs_function> <fcs_function name="fcs/fuel-system/feed-line/carburettor-flow-pps[2]"> <function> <product> <property>fcs/fuel-system/feed-line/carburettor-float-open[2]</property> <sum> <!-- Isolated. --> <property>fcs/fuel-system/feed-line/right-inner-available-pps</property> <!-- Right wing. --> <quotient> <property>fcs/fuel-system/feed-line/right-wing-available-pps</property> <value>2.0</value> </quotient> <!-- Center. --> <quotient> <property>fcs/fuel-system/feed-line/center-available-pps</property> <value>2.0</value> </quotient> <!-- Left wing + center. --> <quotient> <property>fcs/fuel-system/feed-line/left-center-available-pps</property> <value>3.0</value> </quotient> <!-- Right wing + center. --> <quotient> <property>fcs/fuel-system/feed-line/right-center-available-pps</property> <value>3.0</value> </quotient> <!-- All test cocks open. --> <quotient> <property>fcs/fuel-system/feed-line/total-available-pps</property> <value>4.0</value> </quotient> </sum> </product> </function> <output>propulsion/tank[10]/external-flow-rate-pps</output> </fcs_function> <fcs_function name="fcs/fuel-system/feed-line/carburettor-flow-pps[3]"> <function> <product> <property>fcs/fuel-system/feed-line/carburettor-float-open[3]</property> <sum> <!-- Isolated. --> <property>fcs/fuel-system/feed-line/right-outer-available-pps</property> <!-- Right wing. --> <quotient> <property>fcs/fuel-system/feed-line/right-wing-available-pps</property> <value>2.0</value> </quotient> <!-- Right wing + center. --> <quotient> <property>fcs/fuel-system/feed-line/right-center-available-pps</property> <value>3.0</value> </quotient> <!-- All test cocks open. --> <quotient> <property>fcs/fuel-system/feed-line/total-available-pps</property> <value>4.0</value> </quotient> </sum> </product> </function> <output>propulsion/tank[11]/external-flow-rate-pps</output> </fcs_function> </channel> <channel name="Supply consumption"> <!-- FIXME: This is simplified a bit too far. The test cocks are assumed to be open. --> <fcs_function name="fcs/fuel-system/feed-line/total-backfeed-pps"> <function> <difference> <sum> <property>propulsion/engine[0]/fuel-pump-flow-pps</property> <property>propulsion/engine[1]/fuel-pump-flow-pps</property> <property>propulsion/engine[2]/fuel-pump-flow-pps</property> <property>propulsion/engine[3]/fuel-pump-flow-pps</property> </sum> <sum> <property>fcs/fuel-system/feed-line/carburettor-flow-pps[0]</property> <property>fcs/fuel-system/feed-line/carburettor-flow-pps[1]</property> <property>fcs/fuel-system/feed-line/carburettor-flow-pps[2]</property> <property>fcs/fuel-system/feed-line/carburettor-flow-pps[3]</property> </sum> </difference> </function> </fcs_function> <fcs_function name="fcs/fuel-system/feed-line/total-consumption-pps"> <function> <difference> <sum> <property>fcs/fuel-system/feed-line/total-available-pps</property> <property>fcs/fuel-system/feed-line/left-wing-available-pps</property> <property>fcs/fuel-system/feed-line/right-wing-available-pps</property> <property>fcs/fuel-system/feed-line/center-available-pps</property> <property>fcs/fuel-system/feed-line/left-center-available-pps</property> <property>fcs/fuel-system/feed-line/right-center-available-pps</property> <property>fcs/fuel-system/feed-line/left-outer-available-pps</property> <property>fcs/fuel-system/feed-line/left-inner-available-pps</property> <property>fcs/fuel-system/feed-line/right-inner-available-pps</property> <property>fcs/fuel-system/feed-line/right-outer-available-pps</property> </sum> <property>fcs/fuel-system/feed-line/total-backfeed-pps</property> </difference> </function> <clipto> <min>0.0</min> <max>1000.0</max> </clipto> </fcs_function> <fcs_function name="fcs/fuel-system/supply/tank-flow-pps[0]"> <function> <product> <value>-1.0</value> <property>fcs/fuel-system/supply/tank-supplying[0]</property> <sum> <product> <property>fcs/fuel-system/supply/total-supply-available</property> <property>fcs/fuel-system/feed-line/total-consumption-pps</property> </product> <product> <property>fcs/fuel-system/supply/left-supply-available</property> <quotient> <property>fcs/fuel-system/feed-line/total-consumption-pps</property> <value>2.0</value> </quotient> </product> </sum> </product> </function> <output>propulsion/tank[0]/external-flow-rate-pps</output> </fcs_function> <fcs_function name="fcs/fuel-system/supply/tank-flow-pps[1]"> <function> <product> <value>-1.0</value> <property>fcs/fuel-system/supply/tank-supplying[1]</property> <sum> <product> <property>fcs/fuel-system/supply/total-supply-available</property> <property>fcs/fuel-system/feed-line/total-consumption-pps</property> </product> <product> <property>fcs/fuel-system/supply/right-supply-available</property> <quotient> <property>fcs/fuel-system/feed-line/total-consumption-pps</property> <value>2.0</value> </quotient> </product> </sum> </product> </function> <output>propulsion/tank[1]/external-flow-rate-pps</output> </fcs_function> <fcs_function name="fcs/fuel-system/supply/tank-flow-pps[2]"> <function> <product> <value>-1.0</value> <property>fcs/fuel-system/supply/tank-supplying[2]</property> <sum> <product> <property>fcs/fuel-system/supply/total-supply-available</property> <property>fcs/fuel-system/feed-line/total-consumption-pps</property> </product> <product> <property>fcs/fuel-system/supply/left-supply-available</property> <quotient> <property>fcs/fuel-system/feed-line/total-consumption-pps</property> <value>2.0</value> </quotient> </product> </sum> </product> </function> <output>propulsion/tank[2]/external-flow-rate-pps</output> </fcs_function> <fcs_function name="fcs/fuel-system/supply/tank-flow-pps[3]"> <function> <product> <value>-1.0</value> <property>fcs/fuel-system/supply/tank-supplying[3]</property> <sum> <product> <property>fcs/fuel-system/supply/total-supply-available</property> <property>fcs/fuel-system/feed-line/total-consumption-pps</property> </product> <product> <property>fcs/fuel-system/supply/right-supply-available</property> <quotient> <property>fcs/fuel-system/feed-line/total-consumption-pps</property> <value>2.0</value> </quotient> </product> </sum> </product> </function> <output>propulsion/tank[3]/external-flow-rate-pps</output> </fcs_function> <fcs_function name="fcs/fuel-system/supply/tank-flow-pps[4]"> <function> <product> <value>-1.0</value> <property>fcs/fuel-system/supply/tank-supplying[4]</property> <sum> <product> <property>fcs/fuel-system/supply/total-supply-available</property> <property>fcs/fuel-system/feed-line/total-consumption-pps</property> </product> <product> <property>fcs/fuel-system/supply/left-supply-available</property> <quotient> <property>fcs/fuel-system/feed-line/total-consumption-pps</property> <value>2.0</value> </quotient> </product> </sum> </product> </function> <output>propulsion/tank[4]/external-flow-rate-pps</output> </fcs_function> <fcs_function name="fcs/fuel-system/supply/tank-flow-pps[5]"> <function> <product> <value>-1.0</value> <property>fcs/fuel-system/supply/tank-supplying[5]</property> <sum> <product> <property>fcs/fuel-system/supply/total-supply-available</property> <property>fcs/fuel-system/feed-line/total-consumption-pps</property> </product> <product> <property>fcs/fuel-system/supply/right-supply-available</property> <quotient> <property>fcs/fuel-system/feed-line/total-consumption-pps</property> <value>2.0</value> </quotient> </product> </sum> </product> </function> <output>propulsion/tank[5]/external-flow-rate-pps</output> </fcs_function> <fcs_function name="fcs/fuel-system/supply/tank-flow-pps[6]"> <function> <product> <value>-1.0</value> <property>fcs/fuel-system/supply/tank-supplying[6]</property> <sum> <product> <property>fcs/fuel-system/supply/total-supply-available</property> <property>fcs/fuel-system/feed-line/total-consumption-pps</property> </product> <product> <property>fcs/fuel-system/supply/left-supply-available</property> <quotient> <property>fcs/fuel-system/feed-line/total-consumption-pps</property> <value>