commit
f5b71b308c
31 changed files with 1545 additions and 701 deletions
|
@ -70,6 +70,32 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
|
|||
</thruster>
|
||||
</engine>
|
||||
|
||||
<engine file="APS3200">
|
||||
<location unit="M">
|
||||
<x> 38.9 </x>
|
||||
<y> 0 </y>
|
||||
<z> 0.95 </z>
|
||||
</location>
|
||||
<orient unit="DEG">
|
||||
<roll> 0.0 </roll>
|
||||
<pitch> 0.0 </pitch>
|
||||
<yaw> 0.0 </yaw>
|
||||
</orient>
|
||||
<feed>7</feed>
|
||||
<thruster file="direct">
|
||||
<location unit="M">
|
||||
<x> 38.9 </x>
|
||||
<y> 0 </y>
|
||||
<z> 0.95 </z>
|
||||
</location>
|
||||
<orient unit="DEG">
|
||||
<roll> 0.0 </roll>
|
||||
<pitch> 0.0 </pitch>
|
||||
<yaw> 0.0 </yaw>
|
||||
</orient>
|
||||
</thruster>
|
||||
</engine>
|
||||
|
||||
<tank type="FUEL"> <!-- Outer Left Wing Tank -->
|
||||
<location unit="M">
|
||||
<x> 18.9231 </x>
|
||||
|
@ -158,6 +184,17 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
|
|||
<priority>1</priority>
|
||||
<density unit="LBS/GAL">6.71</density>
|
||||
</tank>
|
||||
<tank type="FUEL"> <!-- APU Pipes -->
|
||||
<location unit="M">
|
||||
<x> 18.8231 </x>
|
||||
<y> 0 </y>
|
||||
<z> 0.19249 </z>
|
||||
</location>
|
||||
<capacity unit="LBS">10</capacity>
|
||||
<contents unit="LBS">0</contents>
|
||||
<priority>1</priority>
|
||||
<density unit="LBS/GAL">6.71</density>
|
||||
</tank>
|
||||
</propulsion>
|
||||
|
||||
<system file="glass-effect"/>
|
||||
|
|
|
@ -70,6 +70,32 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
|
|||
</thruster>
|
||||
</engine>
|
||||
|
||||
<engine file="APS3200">
|
||||
<location unit="M">
|
||||
<x> 38.9 </x>
|
||||
<y> 0 </y>
|
||||
<z> 0.95 </z>
|
||||
</location>
|
||||
<orient unit="DEG">
|
||||
<roll> 0.0 </roll>
|
||||
<pitch> 0.0 </pitch>
|
||||
<yaw> 0.0 </yaw>
|
||||
</orient>
|
||||
<feed>7</feed>
|
||||
<thruster file="direct">
|
||||
<location unit="M">
|
||||
<x> 38.9 </x>
|
||||
<y> 0 </y>
|
||||
<z> 0.95 </z>
|
||||
</location>
|
||||
<orient unit="DEG">
|
||||
<roll> 0.0 </roll>
|
||||
<pitch> 0.0 </pitch>
|
||||
<yaw> 0.0 </yaw>
|
||||
</orient>
|
||||
</thruster>
|
||||
</engine>
|
||||
|
||||
<tank type="FUEL"> <!-- Outer Left Wing Tank -->
|
||||
<location unit="M">
|
||||
<x> 18.9231 </x>
|
||||
|
@ -157,6 +183,17 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
|
|||
<priority>1</priority>
|
||||
<density unit="LBS/GAL">6.71</density>
|
||||
</tank>
|
||||
<tank type="FUEL"> <!-- APU Pipes -->
|
||||
<location unit="M">
|
||||
<x> 18.8231 </x>
|
||||
<y> 0 </y>
|
||||
<z> 0.19249 </z>
|
||||
</location>
|
||||
<capacity unit="LBS">10</capacity>
|
||||
<contents unit="LBS">0</contents>
|
||||
<priority>1</priority>
|
||||
<density unit="LBS/GAL">6.71</density>
|
||||
</tank>
|
||||
</propulsion>
|
||||
|
||||
<system file="glass-effect"/>
|
||||
|
|
352
A320-200-IAE.xml
352
A320-200-IAE.xml
|
@ -7,135 +7,183 @@
|
|||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
|
||||
|
||||
<fileheader>
|
||||
<author>Joshua Davidson (Octal450)</author>
|
||||
<version>Pre V1.0</version>
|
||||
<description>A32X FDE</description>
|
||||
</fileheader>
|
||||
|
||||
<metrics file="Systems/a320-metrics"/>
|
||||
<mass_balance file="Systems/a320-mass-balance"/>
|
||||
<ground_reactions file="Systems/a320-ground-reactions"/>
|
||||
|
||||
<propulsion>
|
||||
<engine file="v2527_a5_1">
|
||||
<location unit="M">
|
||||
<x> 14.3962788 </x>
|
||||
<y> -5.755 </y>
|
||||
<z> -1.04768 </z>
|
||||
</location>
|
||||
<orient unit="DEG">
|
||||
<roll> 0.0 </roll>
|
||||
<pitch> 2.2 </pitch>
|
||||
<yaw> 1 </yaw>
|
||||
</orient>
|
||||
<feed>5</feed>
|
||||
<thruster file="direct">
|
||||
<location unit="M">
|
||||
<x> 14.3962788 </x>
|
||||
<y> -5.755 </y>
|
||||
<z> -1.04768 </z>
|
||||
</location>
|
||||
<orient unit="DEG">
|
||||
<roll> 0.0 </roll>
|
||||
<pitch> 2.2 </pitch>
|
||||
<yaw> 1 </yaw>
|
||||
</orient>
|
||||
</thruster>
|
||||
</engine>
|
||||
|
||||
<engine file="v2527_a5_2">
|
||||
<location unit="M">
|
||||
<x> 14.3962788 </x>
|
||||
<y> 5.755 </y>
|
||||
<z> -1.04768 </z>
|
||||
</location>
|
||||
<orient unit="DEG">
|
||||
<roll> 0.0 </roll>
|
||||
<pitch> 2.2 </pitch>
|
||||
<yaw> -1 </yaw>
|
||||
</orient>
|
||||
<feed>6</feed>
|
||||
<thruster file="direct">
|
||||
<location unit="M">
|
||||
<x> 14.3962788 </x>
|
||||
<y> 5.755 </y>
|
||||
<z> -1.04768 </z>
|
||||
</location>
|
||||
<orient unit="DEG">
|
||||
<roll> 0.0 </roll>
|
||||
<pitch> 2.2 </pitch>
|
||||
<yaw> -1 </yaw>
|
||||
</orient>
|
||||
</thruster>
|
||||
</engine>
|
||||
|
||||
<tank type="FUEL"> <!-- Outer Left Wing Tank -->
|
||||
<location unit="M">
|
||||
<x> 18.9231 </x>
|
||||
<y> -5.1104 </y>
|
||||
<z> -0.61182 </z>
|
||||
</location>
|
||||
<capacity unit="LBS"> 1523.00 </capacity>
|
||||
<contents unit="LBS"> 1523.00 </contents>
|
||||
<unusable-volume unit="LTR"> 4.0 </unusable-volume>
|
||||
<priority>1</priority>
|
||||
<density unit="LBS/GAL">6.71</density>
|
||||
<temperature>50</temperature>
|
||||
</tank>
|
||||
<tank type="FUEL"> <!-- Inner Left Wing Tank -->
|
||||
<location unit="M">
|
||||
<x> 18.9231 </x>
|
||||
<y> -5.1104 </y>
|
||||
<z> -0.61182 </z>
|
||||
</location>
|
||||
<capacity unit="LBS"> 12272.90 </capacity>
|
||||
<contents unit="LBS"> 6000.00 </contents>
|
||||
<unusable-volume unit="LTR"> 28.0 </unusable-volume>
|
||||
<priority>1</priority>
|
||||
<density unit="LBS/GAL">6.71</density>
|
||||
<temperature>50</temperature>
|
||||
</tank>
|
||||
<tank type="FUEL"> <!-- Center Tank -->
|
||||
<location unit="M">
|
||||
<x> 18.9731 </x>
|
||||
<y> 0 </y>
|
||||
<z> -0.61182 </z>
|
||||
</location>
|
||||
<capacity unit="LBS"> 14623.00 </capacity>
|
||||
<contents unit="LBS"> 42 </contents>
|
||||
<unusable-volume unit="LTR"> 23.20 </unusable-volume>
|
||||
<priority>1</priority>
|
||||
<density unit="LBS/GAL">6.71</density>
|
||||
<temperature>50</temperature>
|
||||
</tank>
|
||||
<tank type="FUEL"> <!-- Inner Right Wing Tank -->
|
||||
<location unit="M">
|
||||
<x> 18.9231 </x>
|
||||
<y> 5.1104 </y>
|
||||
<z> -0.61182 </z>
|
||||
</location>
|
||||
<capacity unit="LBS"> 12272.90 </capacity>
|
||||
<contents unit="LBS"> 6000.00 </contents>
|
||||
<unusable-volume unit="LTR"> 28.0 </unusable-volume>
|
||||
<priority>1</priority>
|
||||
<density unit="LBS/GAL">6.71</density>
|
||||
<temperature>50</temperature>
|
||||
</tank>
|
||||
<tank type="FUEL"> <!-- Outer Right Wing Tank -->
|
||||
<location unit="M">
|
||||
<x> 18.9231 </x>
|
||||
<y> 5.1104 </y>
|
||||
<z> -0.61182 </z>
|
||||
</location>
|
||||
<capacity unit="LBS"> 1523.00 </capacity>
|
||||
<contents unit="LBS"> 1523.00 </contents>
|
||||
<unusable-volume unit="LTR"> 4.0 </unusable-volume>
|
||||
<priority>1</priority>
|
||||
<density unit="LBS/GAL">6.71</density>
|
||||
<temperature>50</temperature>
|
||||
</tank>
|
||||
<tank type="FUEL"> <!-- Engine 1 Pipes -->
|
||||
<fileheader>
|
||||
<author>Joshua Davidson (Octal450)</author>
|
||||
<version>Pre V1.0</version>
|
||||
<description>A32X FDE</description>
|
||||
</fileheader>
|
||||
|
||||
<metrics file="Systems/a320-metrics"/>
|
||||
<mass_balance file="Systems/a320-mass-balance"/>
|
||||
<ground_reactions file="Systems/a320-ground-reactions"/>
|
||||
|
||||
<propulsion>
|
||||
<engine file="v2527_a5_1">
|
||||
<location unit="M">
|
||||
<x> 14.3962788 </x>
|
||||
<y> -5.755 </y>
|
||||
<z> -1.04768 </z>
|
||||
</location>
|
||||
<orient unit="DEG">
|
||||
<roll> 0.0 </roll>
|
||||
<pitch> 2.2 </pitch>
|
||||
<yaw> 1 </yaw>
|
||||
</orient>
|
||||
<feed>5</feed>
|
||||
<thruster file="direct">
|
||||
<location unit="M">
|
||||
<x> 14.3962788 </x>
|
||||
<y> -5.755 </y>
|
||||
<z> -1.04768 </z>
|
||||
</location>
|
||||
<orient unit="DEG">
|
||||
<roll> 0.0 </roll>
|
||||
<pitch> 2.2 </pitch>
|
||||
<yaw> 1 </yaw>
|
||||
</orient>
|
||||
</thruster>
|
||||
</engine>
|
||||
|
||||
<engine file="v2527_a5_2">
|
||||
<location unit="M">
|
||||
<x> 14.3962788 </x>
|
||||
<y> 5.755 </y>
|
||||
<z> -1.04768 </z>
|
||||
</location>
|
||||
<orient unit="DEG">
|
||||
<roll> 0.0 </roll>
|
||||
<pitch> 2.2 </pitch>
|
||||
<yaw> -1 </yaw>
|
||||
</orient>
|
||||
<feed>6</feed>
|
||||
<thruster file="direct">
|
||||
<location unit="M">
|
||||
<x> 14.3962788 </x>
|
||||
<y> 5.755 </y>
|
||||
<z> -1.04768 </z>
|
||||
</location>
|
||||
<orient unit="DEG">
|
||||
<roll> 0.0 </roll>
|
||||
<pitch> 2.2 </pitch>
|
||||
<yaw> -1 </yaw>
|
||||
</orient>
|
||||
</thruster>
|
||||
</engine>
|
||||
|
||||
<engine file="APS3200">
|
||||
<location unit="M">
|
||||
<x> 38.9 </x>
|
||||
<y> 0 </y>
|
||||
<z> 0.95 </z>
|
||||
</location>
|
||||
<orient unit="DEG">
|
||||
<roll> 0.0 </roll>
|
||||
<pitch> 0.0 </pitch>
|
||||
<yaw> 0.0 </yaw>
|
||||
</orient>
|
||||
<feed>7</feed>
|
||||
<thruster file="direct">
|
||||
<location unit="M">
|
||||
<x> 38.9 </x>
|
||||
<y> 0 </y>
|
||||
<z> 0.95 </z>
|
||||
</location>
|
||||
<orient unit="DEG">
|
||||
<roll> 0.0 </roll>
|
||||
<pitch> 0.0 </pitch>
|
||||
<yaw> 0.0 </yaw>
|
||||
</orient>
|
||||
</thruster>
|
||||
</engine>
|
||||
|
||||
<tank type="FUEL"> <!-- Outer Left Wing Tank -->
|
||||
<location unit="M">
|
||||
<x> 18.9231 </x>
|
||||
<y> -5.1104 </y>
|
||||
<z> -0.61182 </z>
|
||||
</location>
|
||||
<capacity unit="LBS"> 1523.00 </capacity>
|
||||
<contents unit="LBS"> 1523.00 </contents>
|
||||
<unusable-volume unit="LTR"> 4.0 </unusable-volume>
|
||||
<priority>1</priority>
|
||||
<density unit="LBS/GAL">6.71</density>
|
||||
<temperature>50</temperature>
|
||||
</tank>
|
||||
<tank type="FUEL"> <!-- Inner Left Wing Tank -->
|
||||
<location unit="M">
|
||||
<x> 18.9231 </x>
|
||||
<y> -5.1104 </y>
|
||||
<z> -0.61182 </z>
|
||||
</location>
|
||||
<capacity unit="LBS"> 12272.90 </capacity>
|
||||
<contents unit="LBS"> 6000.00 </contents>
|
||||
<unusable-volume unit="LTR"> 28.0 </unusable-volume>
|
||||
<priority>1</priority>
|
||||
<density unit="LBS/GAL">6.71</density>
|
||||
<temperature>50</temperature>
|
||||
</tank>
|
||||
<tank type="FUEL"> <!-- Center Tank -->
|
||||
<location unit="M">
|
||||
<x> 18.9731 </x>
|
||||
<y> 0 </y>
|
||||
<z> -0.61182 </z>
|
||||
</location>
|
||||
<capacity unit="LBS"> 14623.00 </capacity>
|
||||
<contents unit="LBS"> 42 </contents>
|
||||
<unusable-volume unit="LTR"> 23.20 </unusable-volume>
|
||||
<priority>1</priority>
|
||||
<density unit="LBS/GAL">6.71</density>
|
||||
<temperature>50</temperature>
|
||||
</tank>
|
||||
<tank type="FUEL"> <!-- Inner Right Wing Tank -->
|
||||
<location unit="M">
|
||||
<x> 18.9231 </x>
|
||||
<y> 5.1104 </y>
|
||||
<z> -0.61182 </z>
|
||||
</location>
|
||||
<capacity unit="LBS"> 12272.90 </capacity>
|
||||
<contents unit="LBS"> 6000.00 </contents>
|
||||
<unusable-volume unit="LTR"> 28.0 </unusable-volume>
|
||||
<priority>1</priority>
|
||||
<density unit="LBS/GAL">6.71</density>
|
||||
<temperature>50</temperature>
|
||||
</tank>
|
||||
<tank type="FUEL"> <!-- Outer Right Wing Tank -->
|
||||
<location unit="M">
|
||||
<x> 18.9231 </x>
|
||||
<y> 5.1104 </y>
|
||||
<z> -0.61182 </z>
|
||||
</location>
|
||||
<capacity unit="LBS"> 1523.00 </capacity>
|
||||
<contents unit="LBS"> 1523.00 </contents>
|
||||
<unusable-volume unit="LTR"> 4.0 </unusable-volume>
|
||||
<priority>1</priority>
|
||||
<density unit="LBS/GAL">6.71</density>
|
||||
<temperature>50</temperature>
|
||||
</tank>
|
||||
<tank type="FUEL"> <!-- Engine 1 Pipes -->
|
||||
<location unit="M">
|
||||
<x> 18.8231 </x>
|
||||
<y> 0 </y>
|
||||
<z> 0.19249 </z>
|
||||
</location>
|
||||
<capacity unit="LBS">10</capacity>
|
||||
<contents unit="LBS">0</contents>
|
||||
<priority>1</priority>
|
||||
<density unit="LBS/GAL">6.71</density>
|
||||
</tank>
|
||||
<tank type="FUEL"> <!-- Engine 2 Pipes -->
|
||||
<location unit="M">
|
||||
<x> 18.8231 </x>
|
||||
<y> 0 </y>
|
||||
<z> 0.19249 </z>
|
||||
</location>
|
||||
<capacity unit="LBS">10</capacity>
|
||||
<contents unit="LBS">0</contents>
|
||||
<priority>1</priority>
|
||||
<density unit="LBS/GAL">6.71</density>
|
||||
</tank>
|
||||
<tank type="FUEL"> <!-- APU Pipes -->
|
||||
<location unit="M">
|
||||
<x> 18.8231 </x>
|
||||
<y> 0 </y>
|
||||
|
@ -146,33 +194,23 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
|
|||
<priority>1</priority>
|
||||
<density unit="LBS/GAL">6.71</density>
|
||||
</tank>
|
||||
<tank type="FUEL"> <!-- Engine 2 Pipes -->
|
||||
<location unit="M">
|
||||
<x> 18.8231 </x>
|
||||
<y> 0 </y>
|
||||
<z> 0.19249 </z>
|
||||
</location>
|
||||
<capacity unit="LBS">10</capacity>
|
||||
<contents unit="LBS">0</contents>
|
||||
<priority>1</priority>
|
||||
<density unit="LBS/GAL">6.71</density>
|
||||
</tank>
|
||||
</propulsion>
|
||||
|
||||
<system file="glass-effect"/>
|
||||
<system file="a320-fcs"/>
|
||||
<system file="a320-fuel"/>
|
||||
<system file="a320-fwc"/>
|
||||
<system file="a320-spoiler"/>
|
||||
<system file="a320-electrical"/>
|
||||
<system file="a320-hydraulic"/>
|
||||
<system file="a320-lights"/>
|
||||
<system file="a320-engine-fire"/>
|
||||
<system file="a320-adr"/>
|
||||
<system file="a320-fmgc"/>
|
||||
|
||||
<flight_control name="none"/>
|
||||
<aerodynamics file="Systems/a320-aerodynamics.xml"/>
|
||||
<external_reactions file="Systems/a320-external-reactions"/>
|
||||
</propulsion>
|
||||
|
||||
<system file="glass-effect"/>
|
||||
<system file="a320-fcs"/>
|
||||
<system file="a320-fuel"/>
|
||||
<system file="a320-fwc"/>
|
||||
<system file="a320-spoiler"/>
|
||||
<system file="a320-electrical"/>
|
||||
<system file="a320-hydraulic"/>
|
||||
<system file="a320-lights"/>
|
||||
<system file="a320-engine-fire"/>
|
||||
<system file="a320-adr"/>
|
||||
<system file="a320-apu"/>
|
||||
<system file="a320-fmgc"/>
|
||||
|
||||
<flight_control name="none"/>
|
||||
<aerodynamics file="Systems/a320-aerodynamics.xml"/>
|
||||
<external_reactions file="Systems/a320-external-reactions"/>
|
||||
|
||||
</fdm_config>
|
||||
|
|
|
@ -451,6 +451,9 @@
|
|||
<tank n="6">
|
||||
<name>Engine 2 Pipes</name>
|
||||
</tank>
|
||||
<tank n="7">
|
||||
<name>APU Pipes</name>
|
||||
</tank>
|
||||
</fuel>
|
||||
</consumables>
|
||||
|
||||
|
@ -553,11 +556,6 @@
|
|||
<vmo-mmo type="int">350</vmo-mmo>
|
||||
</speeds>
|
||||
</it-fbw>
|
||||
|
||||
<apu>
|
||||
<rpm type="float">0</rpm>
|
||||
<egt type="float">0</egt>
|
||||
</apu>
|
||||
|
||||
<FMGC n="0">
|
||||
<active-fmgc-channel type="int">0</active-fmgc-channel>
|
||||
|
@ -614,14 +612,15 @@
|
|||
<system-knob type="int">0</system-knob>
|
||||
<mode-knob type="int">0</mode-knob>
|
||||
</atc>
|
||||
<APU>
|
||||
<apu>
|
||||
<agent-btn type="bool">0</agent-btn>
|
||||
<fire-btn type="bool">0</fire-btn>
|
||||
<fire-btn-cover type="bool">0</fire-btn-cover>
|
||||
<fire-light type="bool">0</fire-light>
|
||||
<master type="bool">0</master>
|
||||
<start type="bool">0</start>
|
||||
<bleed type="bool">0</bleed>
|
||||
</APU>
|
||||
</apu>
|
||||
<autobrake>
|
||||
<active type="bool">0</active>
|
||||
<brake-left type="double">0</brake-left>
|
||||
|
@ -679,6 +678,12 @@
|
|||
<throttle-output type="double">0</throttle-output>
|
||||
<throttle-fdm type="double">0</throttle-fdm>
|
||||
</engine>
|
||||
<engine n="2">
|
||||
<cutoff type="bool">true</cutoff>
|
||||
<starter type="bool">0</starter>
|
||||
<throttle-output type="double">0</throttle-output>
|
||||
<throttle-fdm type="double">0</throttle-fdm>
|
||||
</engine>
|
||||
</engines>
|
||||
<fctl>
|
||||
<lights>
|
||||
|
@ -867,12 +872,6 @@
|
|||
</controls>
|
||||
|
||||
<engines>
|
||||
<apu>
|
||||
<rpm type="double">0</rpm>
|
||||
<on-fire type="bool">0</on-fire>
|
||||
<running type="bool">0</running>
|
||||
<serviceable type="bool">true</serviceable>
|
||||
</apu>
|
||||
<engine n="0">
|
||||
<egt-actual type="double">0</egt-actual>
|
||||
<epr-actual type="double">1</epr-actual>
|
||||
|
@ -893,6 +892,13 @@
|
|||
<running type="bool">0</running>
|
||||
<state type="int">0</state>
|
||||
</engine>
|
||||
<engine n="2">
|
||||
<egt-actual type="double">0</egt-actual>
|
||||
<n1 type="double">0</n1>
|
||||
<n-actual type="double">0</n-actual>
|
||||
<running type="bool">0</running>
|
||||
<servicable type="bool">1</servicable>
|
||||
</engine>
|
||||
</engines>
|
||||
|
||||
<gear>
|
||||
|
@ -939,9 +945,19 @@
|
|||
<transponder-code type="string">2000</transponder-code>
|
||||
<failed type="bool">0</failed>
|
||||
</atc>
|
||||
<apu n="0">
|
||||
<n2 type="double">0</n2>
|
||||
<emer-shutdown type="bool">false</emer-shutdown>
|
||||
<apu>
|
||||
<oil>
|
||||
<level-l type="double">5.4</level-l>
|
||||
<allow-oil-consumption type="bool">1</allow-oil-consumption>
|
||||
<oil-pressure-psi type="double">0</oil-pressure-psi>
|
||||
<oil-temperature-degC type="double">0</oil-temperature-degC>
|
||||
</oil>
|
||||
<bleed-load-kw type="double">252</bleed-load-kw>
|
||||
<electrical-load-kw type="double">132</electrical-load-kw>
|
||||
<available type="bool">0</available>
|
||||
<fault type="bool">0</fault>
|
||||
<dc-bat-three-minutes type="bool">0</dc-bat-three-minutes>
|
||||
<start type="bool">0</start>
|
||||
</apu>
|
||||
<electrical n="0">
|
||||
<bus>
|
||||
|
@ -1081,6 +1097,9 @@
|
|||
<right-valve type="bool">0</right-valve>
|
||||
<refuelling type="bool">0</refuelling>
|
||||
</refuel>
|
||||
<valves>
|
||||
<apu-lp-valve-cmd type="bool">0</apu-lp-valve-cmd>
|
||||
</valves>
|
||||
<fuel-used-1 type="double">0</fuel-used-1>
|
||||
<fuel-used-2 type="double">0</fuel-used-2>
|
||||
</fuel>
|
||||
|
@ -3885,6 +3904,7 @@
|
|||
<file>Aircraft/A320-family/AircraftConfig/acconfig.nas</file>
|
||||
</acconfig>
|
||||
<systems>
|
||||
<file>Aircraft/A320-family/Nasal/Systems/APU.nas</file>
|
||||
<file>Aircraft/A320-family/Nasal/Effects/effects.nas</file>
|
||||
<file>Aircraft/A320-family/Nasal/Systems/electrical.nas</file>
|
||||
<file>Aircraft/A320-family/Nasal/Systems/pneumatics.nas</file>
|
||||
|
|
|
@ -69,6 +69,32 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
|
|||
</orient>
|
||||
</thruster>
|
||||
</engine>
|
||||
|
||||
<engine file="APS3200">
|
||||
<location unit="M">
|
||||
<x> 38.9 </x>
|
||||
<y> 0 </y>
|
||||
<z> 0.95 </z>
|
||||
</location>
|
||||
<orient unit="DEG">
|
||||
<roll> 0.0 </roll>
|
||||
<pitch> 0.0 </pitch>
|
||||
<yaw> 0.0 </yaw>
|
||||
</orient>
|
||||
<feed>7</feed>
|
||||
<thruster file="direct">
|
||||
<location unit="M">
|
||||
<x> 38.9 </x>
|
||||
<y> 0 </y>
|
||||
<z> 0.95 </z>
|
||||
</location>
|
||||
<orient unit="DEG">
|
||||
<roll> 0.0 </roll>
|
||||
<pitch> 0.0 </pitch>
|
||||
<yaw> 0.0 </yaw>
|
||||
</orient>
|
||||
</thruster>
|
||||
</engine>
|
||||
|
||||
<tank type="FUEL"> <!-- Outer Left Wing Tank -->
|
||||
<location unit="M">
|
||||
|
@ -157,6 +183,17 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
|
|||
<priority>1</priority>
|
||||
<density unit="LBS/GAL">6.71</density>
|
||||
</tank>
|
||||
<tank type="FUEL"> <!-- APU Pipes -->
|
||||
<location unit="M">
|
||||
<x> 18.8231 </x>
|
||||
<y> 0 </y>
|
||||
<z> 0.19249 </z>
|
||||
</location>
|
||||
<capacity unit="LBS">10</capacity>
|
||||
<contents unit="LBS">0</contents>
|
||||
<priority>1</priority>
|
||||
<density unit="LBS/GAL">6.71</density>
|
||||
</tank>
|
||||
</propulsion>
|
||||
|
||||
<system file="glass-effect"/>
|
||||
|
|
|
@ -69,6 +69,32 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
|
|||
</orient>
|
||||
</thruster>
|
||||
</engine>
|
||||
|
||||
<engine file="APS3200">
|
||||
<location unit="M">
|
||||
<x> 38.9 </x>
|
||||
<y> 0 </y>
|
||||
<z> 0.95 </z>
|
||||
</location>
|
||||
<orient unit="DEG">
|
||||
<roll> 0.0 </roll>
|
||||
<pitch> 0.0 </pitch>
|
||||
<yaw> 0.0 </yaw>
|
||||
</orient>
|
||||
<feed>7</feed>
|
||||
<thruster file="direct">
|
||||
<location unit="M">
|
||||
<x> 38.9 </x>
|
||||
<y> 0 </y>
|
||||
<z> 0.95 </z>
|
||||
</location>
|
||||
<orient unit="DEG">
|
||||
<roll> 0.0 </roll>
|
||||
<pitch> 0.0 </pitch>
|
||||
<yaw> 0.0 </yaw>
|
||||
</orient>
|
||||
</thruster>
|
||||
</engine>
|
||||
|
||||
<tank type="FUEL"> <!-- Outer Left Wing Tank -->
|
||||
<location unit="M">
|
||||
|
@ -157,6 +183,17 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
|
|||
<priority>1</priority>
|
||||
<density unit="LBS/GAL">6.71</density>
|
||||
</tank>
|
||||
<tank type="FUEL"> <!-- APU Pipes -->
|
||||
<location unit="M">
|
||||
<x> 18.8231 </x>
|
||||
<y> 0 </y>
|
||||
<z> 0.19249 </z>
|
||||
</location>
|
||||
<capacity unit="LBS">10</capacity>
|
||||
<contents unit="LBS">0</contents>
|
||||
<priority>1</priority>
|
||||
<density unit="LBS/GAL">6.71</density>
|
||||
</tank>
|
||||
</propulsion>
|
||||
|
||||
<system file="glass-effect"/>
|
||||
|
|
|
@ -94,6 +94,7 @@ setprop("systems/acconfig/options/keyboard-mode", 0);
|
|||
# TODO Revert default weight-kgs to 1, when fully implemented
|
||||
setprop("systems/acconfig/options/weight-kgs", 0);
|
||||
setprop("systems/acconfig/options/adirs-skip", 0);
|
||||
setprop("systems/acconfig/options/allow-oil-consumption", 0);
|
||||
setprop("systems/acconfig/options/welcome-skip", 0);
|
||||
setprop("systems/acconfig/options/no-rendering-warn", 0);
|
||||
setprop("systems/acconfig/options/save-state", 0);
|
||||
|
@ -234,6 +235,7 @@ var readSettings = func {
|
|||
setprop("options/system/weight-kgs", getprop("systems/acconfig/options/weight-kgs"));
|
||||
setprop("options/system/save-state", getprop("systems/acconfig/options/save-state"));
|
||||
setprop("controls/adirs/skip", getprop("systems/acconfig/options/adirs-skip"));
|
||||
setprop("systems/apu/oil/allow-oil-consumption", getprop("systems/acconfig/options/allow-oil-consumption"));
|
||||
setprop("sim/model/autopush/route/show", getprop("systems/acconfig/options/autopush/show-route"));
|
||||
setprop("sim/model/autopush/route/show-wingtip", getprop("systems/acconfig/options/autopush/show-wingtip"));
|
||||
|
||||
|
@ -244,6 +246,7 @@ var writeSettings = func {
|
|||
setprop("systems/acconfig/options/weight-kgs", getprop("options/system/weight-kgs"));
|
||||
setprop("systems/acconfig/options/save-state", getprop("options/system/save-state"));
|
||||
setprop("systems/acconfig/options/adirs-skip", getprop("controls/adirs/skip"));
|
||||
setprop("systems/acconfig/options/allow-oil-consumption", getprop("systems/apu/oil/allow-oil-consumption"));
|
||||
setprop("systems/acconfig/options/autopush/show-route", getprop("sim/model/autopush/route/show"));
|
||||
setprop("systems/acconfig/options/autopush/show-wingtip", getprop("sim/model/autopush/route/show-wingtip"));
|
||||
io.write_properties(getprop("sim/fg-home") ~ "/Export/A320-family-config.xml", "/systems/acconfig/options");
|
||||
|
@ -305,8 +308,7 @@ var colddark = func {
|
|||
}
|
||||
var colddark_b = func {
|
||||
# Continues the Cold and Dark script, after engines fully shutdown.
|
||||
setprop("controls/APU/master", 0);
|
||||
setprop("controls/APU/start", 0);
|
||||
setprop("controls/apu/master", 0);
|
||||
settimer(func {
|
||||
setprop("controls/gear/brake-left", 0);
|
||||
setprop("controls/gear/brake-right", 0);
|
||||
|
@ -342,16 +344,15 @@ var beforestart = func {
|
|||
setprop("controls/flight/elevator-trim", 0);
|
||||
libraries.systemsInit();
|
||||
failResetOld();
|
||||
setprop("controls/APU/master", 0);
|
||||
setprop("controls/APU/start", 0);
|
||||
setprop("controls/apu/master", 0);
|
||||
|
||||
# Now the Startup!
|
||||
props.globals.getNode("controls/electrical/switches/bat-1").setValue(1);
|
||||
props.globals.getNode("controls/electrical/switches/bat-2").setValue(1);
|
||||
setprop("controls/APU/master", 1);
|
||||
setprop("controls/APU/start", 1);
|
||||
var apu_rpm_chk = setlistener("/systems/apu/rpm", func {
|
||||
if (getprop("systems/apu/rpm") >= 98) {
|
||||
setprop("controls/apu/master", 1);
|
||||
systems.APUController.APU.startCommand(1);
|
||||
var apu_rpm_chk = setlistener("/engines/engine[2]/n1", func {
|
||||
if (getprop("engines/engine[2]/n1") >= 98) {
|
||||
removelistener(apu_rpm_chk);
|
||||
beforestart_b();
|
||||
}
|
||||
|
@ -433,16 +434,15 @@ var taxi = func {
|
|||
setprop("controls/flight/elevator-trim", 0);
|
||||
libraries.systemsInit();
|
||||
failResetOld();
|
||||
setprop("controls/APU/master", 0);
|
||||
setprop("controls/APU/start", 0);
|
||||
setprop("controls/apu/master", 0);
|
||||
|
||||
# Now the Startup!
|
||||
props.globals.getNode("controls/electrical/switches/bat-1").setValue(1);
|
||||
props.globals.getNode("controls/electrical/switches/bat-2").setValue(1);
|
||||
setprop("controls/APU/master", 1);
|
||||
setprop("controls/APU/start", 1);
|
||||
var apu_rpm_chk = setlistener("/systems/apu/rpm", func {
|
||||
if (getprop("systems/apu/rpm") >= 98) {
|
||||
setprop("controls/apu/master", 1);
|
||||
systems.APUController.APU.startCommand(1);
|
||||
var apu_rpm_chk = setlistener("/engines/engine[2]/n1", func {
|
||||
if (getprop("engines/engine[2]/n1") >= 98) {
|
||||
removelistener(apu_rpm_chk);
|
||||
taxi_b();
|
||||
}
|
||||
|
@ -510,8 +510,7 @@ var taxi_c = func {
|
|||
var taxi_d = func {
|
||||
# After Start items.
|
||||
setprop("controls/engines/engine-start-switch", 1);
|
||||
setprop("controls/APU/master", 0);
|
||||
setprop("controls/APU/start", 0);
|
||||
setprop("controls/apu/master", 0);
|
||||
setprop("controls/pneumatic/switches/bleedapu", 0);
|
||||
setprop("controls/gear/brake-left", 0);
|
||||
setprop("controls/gear/brake-right", 0);
|
||||
|
|
|
@ -6,167 +6,208 @@
|
|||
|
||||
<PropertyList>
|
||||
|
||||
<name>ground-services</name>
|
||||
<layout>vbox</layout>
|
||||
|
||||
<group>
|
||||
<layout>hbox</layout>
|
||||
<text>
|
||||
<halign>left</halign>
|
||||
<label>Ground Services</label>
|
||||
</text>
|
||||
<button>
|
||||
<halign>right</halign>
|
||||
<pref-width>20</pref-width>
|
||||
<pref-height>20</pref-height>
|
||||
<legend>X</legend>
|
||||
<key>Esc</key>
|
||||
<binding>
|
||||
<command>dialog-close</command>
|
||||
</binding>
|
||||
</button>
|
||||
</group>
|
||||
|
||||
<hrule/>
|
||||
|
||||
<group>
|
||||
<layout>vbox</layout>
|
||||
<name>ground-services</name>
|
||||
<layout>vbox</layout>
|
||||
|
||||
<group>
|
||||
<layout>hbox</layout>
|
||||
<text>
|
||||
<halign>left</halign>
|
||||
<label>Ground Services</label>
|
||||
</text>
|
||||
<button>
|
||||
<halign>right</halign>
|
||||
<pref-width>20</pref-width>
|
||||
<pref-height>20</pref-height>
|
||||
<legend>X</legend>
|
||||
<key>Esc</key>
|
||||
<binding>
|
||||
<command>dialog-close</command>
|
||||
</binding>
|
||||
</button>
|
||||
</group>
|
||||
|
||||
<hrule/>
|
||||
|
||||
<group>
|
||||
<layout>vbox</layout>
|
||||
|
||||
<checkbox>
|
||||
<label>Enable De-icing Truck</label>
|
||||
<halign>left</halign>
|
||||
<property>/services/deicing_truck/enable</property>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
</binding>
|
||||
<live>true</live>
|
||||
</checkbox>
|
||||
<checkbox>
|
||||
<label>Enable De-icing Truck</label>
|
||||
<halign>left</halign>
|
||||
<property>/services/deicing_truck/enable</property>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
</binding>
|
||||
<live>true</live>
|
||||
</checkbox>
|
||||
|
||||
<button>
|
||||
<legend>De-ice Aircraft</legend>
|
||||
<halign>center</halign>
|
||||
<padding>5</padding>
|
||||
<enable>
|
||||
<property>/services/deicing_truck/enable</property>
|
||||
</enable>
|
||||
<binding>
|
||||
<command>property-assign</command>
|
||||
<property>/services/deicing_truck/de-ice</property>
|
||||
<value>1</value>
|
||||
</binding>
|
||||
</button>
|
||||
|
||||
<hrule />
|
||||
|
||||
<button>
|
||||
<legend>Fuel Truck</legend>
|
||||
<halign>center</halign>
|
||||
<padding>5</padding>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>
|
||||
acconfig.fuel_dlg.open();
|
||||
</script>
|
||||
</binding>
|
||||
</button>
|
||||
|
||||
<hrule />
|
||||
|
||||
<checkbox>
|
||||
<label>Enable Catering Truck</label>
|
||||
<halign>left</halign>
|
||||
<property>/services/catering/enable</property>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
</binding>
|
||||
<live>true</live>
|
||||
</checkbox>
|
||||
<button>
|
||||
<legend>De-ice Aircraft</legend>
|
||||
<halign>center</halign>
|
||||
<padding>5</padding>
|
||||
<enable>
|
||||
<property>/services/deicing_truck/enable</property>
|
||||
</enable>
|
||||
<binding>
|
||||
<command>property-assign</command>
|
||||
<property>/services/deicing_truck/de-ice</property>
|
||||
<value>1</value>
|
||||
</binding>
|
||||
</button>
|
||||
|
||||
<hrule />
|
||||
|
||||
<button>
|
||||
<legend>Fuel Truck</legend>
|
||||
<halign>center</halign>
|
||||
<padding>5</padding>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>
|
||||
acconfig.fuel_dlg.open();
|
||||
</script>
|
||||
</binding>
|
||||
</button>
|
||||
|
||||
<hrule />
|
||||
|
||||
<checkbox>
|
||||
<label>Enable Catering Truck</label>
|
||||
<halign>left</halign>
|
||||
<property>/services/catering/enable</property>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
</binding>
|
||||
<live>true</live>
|
||||
</checkbox>
|
||||
|
||||
<button>
|
||||
<legend>Toggle Catering</legend>
|
||||
<halign>center</halign>
|
||||
<padding>5</padding>
|
||||
<enable>
|
||||
<property>/services/catering/enable</property>
|
||||
</enable>
|
||||
<binding>
|
||||
<condition>
|
||||
<less-than>
|
||||
<property>/services/catering/position-norm</property>
|
||||
<value>0.1</value>
|
||||
</less-than>
|
||||
</condition><command>property-interpolate</command>
|
||||
<property>/services/catering/position-norm</property>
|
||||
<value>0.68</value>
|
||||
<time>5</time>
|
||||
</binding>
|
||||
<binding>
|
||||
<condition>
|
||||
<greater-than-equals>
|
||||
<property>/services/catering/position-norm</property>
|
||||
<value>0.1</value>
|
||||
</greater-than-equals>
|
||||
</condition><command>property-interpolate</command>
|
||||
<property>/services/catering/position-norm</property>
|
||||
<value>0.0</value>
|
||||
<time>5</time>
|
||||
</binding>
|
||||
</button>
|
||||
|
||||
<checkbox>
|
||||
<label>Enable Baggage Ramp</label>
|
||||
<halign>left</halign>
|
||||
<property>/services/baggage/enable</property>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
</binding>
|
||||
<live>true</live>
|
||||
</checkbox>
|
||||
|
||||
<group>
|
||||
<button>
|
||||
<legend>Toggle Catering</legend>
|
||||
<halign>center</halign>
|
||||
<padding>5</padding>
|
||||
<enable>
|
||||
<property>/services/catering/enable</property>
|
||||
</enable>
|
||||
<binding>
|
||||
<condition>
|
||||
<less-than>
|
||||
<property>/services/catering/position-norm</property>
|
||||
<value>0.1</value>
|
||||
</less-than>
|
||||
</condition><command>property-interpolate</command>
|
||||
<property>/services/catering/position-norm</property>
|
||||
<value>0.68</value>
|
||||
<time>5</time>
|
||||
</binding>
|
||||
<binding>
|
||||
<condition>
|
||||
<greater-than-equals>
|
||||
<property>/services/catering/position-norm</property>
|
||||
<value>0.1</value>
|
||||
</greater-than-equals>
|
||||
</condition><command>property-interpolate</command>
|
||||
<property>/services/catering/position-norm</property>
|
||||
<value>0.0</value>
|
||||
<time>5</time>
|
||||
</binding>
|
||||
</button>
|
||||
|
||||
<checkbox>
|
||||
<label>Enable Baggage Ramp</label>
|
||||
<halign>left</halign>
|
||||
<property>/services/baggage/enable</property>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
</binding>
|
||||
<live>true</live>
|
||||
</checkbox>
|
||||
|
||||
<group>
|
||||
<layout>hbox</layout>
|
||||
|
||||
<hrule>
|
||||
<stretch type="bool">true</stretch>
|
||||
</hrule>
|
||||
<text>
|
||||
<label>Stairways</label>
|
||||
</text>
|
||||
<hrule>
|
||||
<stretch type="bool">true</stretch>
|
||||
</hrule>
|
||||
</group>
|
||||
|
||||
<checkbox>
|
||||
<label>Front Left</label>
|
||||
<halign>left</halign>
|
||||
<property>/services/stairs/l1</property>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
</binding>
|
||||
<live>true</live>
|
||||
</checkbox>
|
||||
|
||||
<checkbox>
|
||||
<label>Rear Left</label>
|
||||
<halign>left</halign>
|
||||
<property>/services/stairs/l4</property>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
</binding>
|
||||
<live>true</live>
|
||||
</checkbox>
|
||||
|
||||
<checkbox>
|
||||
<label>Stairway Cover</label>
|
||||
<halign>left</halign>
|
||||
<property>/services/stairs/cover</property>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
</binding>
|
||||
<live>true</live>
|
||||
</checkbox>
|
||||
|
||||
<group>
|
||||
<layout>hbox</layout>
|
||||
|
||||
<hrule>
|
||||
<stretch type="bool">true</stretch>
|
||||
</hrule>
|
||||
<text>
|
||||
<label>APU Oil Level</label>
|
||||
</text>
|
||||
<hrule>
|
||||
<stretch type="bool">true</stretch>
|
||||
</hrule>
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<layout>hbox</layout>
|
||||
|
||||
<hrule>
|
||||
<stretch type="bool">true</stretch>
|
||||
</hrule>
|
||||
<text>
|
||||
<label>Stairways</label>
|
||||
</text>
|
||||
<hrule>
|
||||
<stretch type="bool">true</stretch>
|
||||
</hrule>
|
||||
</group>
|
||||
|
||||
<checkbox>
|
||||
<label>Front Left</label>
|
||||
<halign>left</halign>
|
||||
<property>/services/stairs/l1</property>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
</binding>
|
||||
<live>true</live>
|
||||
</checkbox>
|
||||
|
||||
<checkbox>
|
||||
<label>Rear Left</label>
|
||||
<halign>left</halign>
|
||||
<property>/services/stairs/l4</property>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
</binding>
|
||||
<live>true</live>
|
||||
</checkbox>
|
||||
|
||||
<checkbox>
|
||||
<label>Stairway Cover</label>
|
||||
<halign>left</halign>
|
||||
<property>/services/stairs/cover</property>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
</binding>
|
||||
<live>true</live>
|
||||
</checkbox>
|
||||
|
||||
</group>
|
||||
|
||||
<slider>
|
||||
<enable>
|
||||
<property>/systems/apu/oil/allow-oil-consumption</property>
|
||||
</enable>
|
||||
<x>10</x>
|
||||
<y>50</y>
|
||||
<width>200</width>
|
||||
<property>/systems/apu/oil/level-l</property>
|
||||
<min>3.9</min>
|
||||
<max>5.4</max>
|
||||
<live>true</live>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
</binding>
|
||||
</slider>
|
||||
|
||||
<text>
|
||||
<x>10</x>
|
||||
<y>200</y>
|
||||
<label>8.8 litres</label> <!-- placeholder for width -->
|
||||
<format>%.1f litres</format>
|
||||
<property>/systems/apu/oil/level-l</property>
|
||||
<live>true</live>
|
||||
</text>
|
||||
</group>
|
||||
</group>
|
||||
|
||||
</PropertyList>
|
||||
|
|
|
@ -426,6 +426,26 @@
|
|||
</binding>
|
||||
<live>true</live>
|
||||
</checkbox>
|
||||
|
||||
<checkbox>
|
||||
<label>Allow APU Oil Consumption</label>
|
||||
<halign>left</halign>
|
||||
<property>/systems/apu/oil/allow-oil-consumption</property>
|
||||
<binding>
|
||||
<command>property-toggle</command>
|
||||
<property>/systems/apu/oil/allow-oil-consumption</property>
|
||||
</binding>
|
||||
<binding>
|
||||
<command>dialog-apply</command>
|
||||
</binding>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>
|
||||
acconfig.writeSettings();
|
||||
</script>
|
||||
</binding>
|
||||
<live>true</live>
|
||||
</checkbox>
|
||||
|
||||
<checkbox>
|
||||
<!-- TODO there might be a better way to formulate this. -->
|
||||
|
|
61
Engines/APS3200.xml
Normal file
61
Engines/APS3200.xml
Normal file
|
@ -0,0 +1,61 @@
|
|||
<?xml version="1.0"?>
|
||||
|
||||
<turbine_engine name="APS3200">
|
||||
<milthrust> 2.6 </milthrust>
|
||||
<bypassratio> 0.000 </bypassratio>
|
||||
<tsfc> 0.820 </tsfc>
|
||||
<bleed> 0.96</bleed> <!-- 16 / 400 KW exhaust energy -->
|
||||
|
||||
<!-- self sustaining speed is 55.0 -->
|
||||
<ignitionn1> 5.0</ignitionn1>
|
||||
<ignitionn2> 26</ignitionn2> <!-- hack to make work -->
|
||||
<n1spinup> 3.0</n1spinup>
|
||||
<n2spinup> 8.666</n2spinup> <!-- hack to make work -->
|
||||
<n1startrate> 1.8222</n1startrate>
|
||||
<n2startrate> 1.8222</n2startrate>
|
||||
<idlen1> 99.9 </idlen1>
|
||||
<idlen2> 99.9 </idlen2>
|
||||
<n1spindown> 20</n1spindown>
|
||||
<n2spindown> 20</n2spindown>
|
||||
<disable-windmill> 1</disable-windmill>
|
||||
|
||||
<maxn1> 100.0 </maxn1>
|
||||
<maxn2> 100.0 </maxn2>
|
||||
<augmented> 0 </augmented>
|
||||
<injected> 0 </injected>
|
||||
|
||||
<function name="IdleThrust">
|
||||
<table>
|
||||
<independentVar lookup="row">velocities/mach</independentVar>
|
||||
<independentVar lookup="column">atmosphere/density-altitude</independentVar>
|
||||
<tableData>
|
||||
-10000 0 10000 20000 30000 40000 50000 90000
|
||||
0.0 0.0430 0.0488 0.0528 0.0694 0.0899 0.1183 0.1467 0
|
||||
0.2 0.0500 0.0501 0.0335 0.0544 0.0797 0.1049 0.1342 0
|
||||
0.4 0.0040 0.0047 0.0020 0.0272 0.0595 0.0891 0.1203 0
|
||||
0.6 -0.0804 -0.0804 -0.0560 -0.0237 0.0276 0.0718 0.1073 0
|
||||
0.8 -0.2129 -0.2129 -0.1498 -0.1025 0.0474 0.0868 0.0900 0
|
||||
1.0 -0.2839 -0.2839 -0.1104 -0.0469 -0.0270 0.0552 0.0800 0
|
||||
</tableData>
|
||||
</table>
|
||||
</function>
|
||||
|
||||
<function name="MilThrust">
|
||||
<table>
|
||||
<independentVar lookup="row">velocities/mach</independentVar>
|
||||
<independentVar lookup="column">atmosphere/density-altitude</independentVar>
|
||||
<tableData>
|
||||
-10000 0 10000 20000 30000 40000 50000 60000 90000
|
||||
0.0 1.2600 1.0000 0.7400 0.5340 0.3720 0.2410 0.1490 0.0580 0
|
||||
0.2 1.1692 0.9326 0.6959 0.5052 0.3545 0.2306 0.1428 0.0399 0
|
||||
0.4 1.1465 0.9182 0.6899 0.5044 0.3559 0.2323 0.1446 0.0429 0
|
||||
0.6 1.1755 0.9466 0.7177 0.5295 0.3763 0.2469 0.1533 0.0468 0
|
||||
0.8 1.2503 1.0137 0.7772 0.5784 0.4144 0.2733 0.1690 0.0527 0
|
||||
1.0 1.3585 1.1114 0.8643 0.6460 0.4713 0.3126 0.1935 0.0625 0
|
||||
1.2 1.4713 1.2186 0.9660 0.7371 0.5400 0.3606 0.2229 0.0733 0
|
||||
1.4 1.5769 1.3256 1.0743 0.8359 0.6212 0.4194 0.2602 0.0890 0
|
||||
</tableData>
|
||||
</table>
|
||||
</function>
|
||||
|
||||
</turbine_engine>
|
|
@ -52,9 +52,9 @@ var lighting_du4 = props.globals.getNode("controls/lighting/DU/du4", 1);
|
|||
var ecam_page = props.globals.getNode("ECAM/Lower/page", 1);
|
||||
var hour = props.globals.getNode("sim/time/utc/hour", 1);
|
||||
var minute = props.globals.getNode("sim/time/utc/minute", 1);
|
||||
var apu_flap = props.globals.getNode("systems/apu/flap", 1);
|
||||
var apu_rpm = props.globals.getNode("systems/apu/rpm", 1);
|
||||
var apu_egt = props.globals.getNode("systems/apu/egt", 1);
|
||||
var apu_flap = props.globals.getNode("controls/apu/inlet-flap/position-norm", 1);
|
||||
var apu_rpm = props.globals.getNode("engines/engine[2]/n1", 1);
|
||||
var apu_egt = props.globals.getNode("systems/apu/egt-degC", 1);
|
||||
var door_left = props.globals.getNode("ECAM/Lower/door-left", 1);
|
||||
var door_right = props.globals.getNode("ECAM/Lower/door-right", 1);
|
||||
var door_nose_left = props.globals.getNode("ECAM/Lower/door-nose-left", 1);
|
||||
|
@ -77,7 +77,7 @@ var final_deg = props.globals.getNode("fdm/jsbsim/hydraulics/rudder/final-deg",
|
|||
var temperature_degc = props.globals.getNode("environment/temperature-degc", 1);
|
||||
var gw = props.globals.getNode("FMGC/internal/gw", 1);
|
||||
var tank3_content_lbs = props.globals.getNode("fdm/jsbsim/propulsion/tank[2]/contents-lbs", 1);
|
||||
var apu_master = props.globals.getNode("controls/APU/master", 1);
|
||||
var apu_master = props.globals.getNode("controls/apu/master", 1);
|
||||
var ir2_knob = props.globals.getNode("controls/adirs/ir[1]/knob", 1);
|
||||
var switch_bleedapu = props.globals.getNode("controls/pneumatic/switches/bleedapu", 1);
|
||||
var pneumatic_xbleed_state = props.globals.getNode("systems/pneumatic/xbleed-state", 1);
|
||||
|
@ -596,7 +596,7 @@ var canvas_lowerECAM_apu = {
|
|||
return m;
|
||||
},
|
||||
getKeys: func() {
|
||||
return ["TAT","SAT","GW","UTCh","UTCm","GW-weight-unit","APUN-needle","APUEGT-needle","APUN","APUEGT","APUAvail","APUFlapOpen","APUBleedValve","APUBleedOnline","APUGenOnline","APUGentext","APUGenLoad","APUGenbox","APUGenVolt","APUGenHz","APUBleedPSI","APUfuelLO",
|
||||
return ["TAT","SAT","GW","UTCh","UTCm","GW-weight-unit","APUN-needle","APUEGT-needle","APUN","APUEGT","APUAvail","APUFlapOpen","APUBleedValve","APUBleedOnline","APUGenOnline","APUGentext","APUGenLoad","APUGenbox","APUGenVolt","APUGenHz","APUBleedPSI","APUfuelLO","APU-low-oil",
|
||||
"text3724","text3728","text3732"];
|
||||
},
|
||||
update: func() {
|
||||
|
@ -669,7 +669,7 @@ var canvas_lowerECAM_apu = {
|
|||
me["APUGenHz"].setText(sprintf("%s", math.round(apu_hz.getValue())));
|
||||
|
||||
# APU Bleed
|
||||
if (ir2_knob.getValue() != 0 and (apu_master.getValue() == 1 or bleedapu.getValue() > 0)) {
|
||||
if (systems.ADIRSnew.Operating.adr[0].getValue() and (apu_master.getValue() == 1 or bleedapu.getValue() > 0)) {
|
||||
me["APUBleedPSI"].setColor(0.0509,0.7529,0.2941);
|
||||
me["APUBleedPSI"].setText(sprintf("%s", math.round(bleedapu.getValue())));
|
||||
} else {
|
||||
|
@ -690,12 +690,12 @@ var canvas_lowerECAM_apu = {
|
|||
me["APUN"].setColor(0.0509,0.7529,0.2941);
|
||||
me["APUN"].setText(sprintf("%s", math.round(apu_rpm.getValue())));
|
||||
me["APUEGT"].setColor(0.0509,0.7529,0.2941);
|
||||
me["APUEGT"].setText(sprintf("%s", math.round(apu_egt.getValue())));
|
||||
me["APUEGT"].setText(sprintf("%s", math.round(apu_egt.getValue(), 5)));
|
||||
} else if (apu_rpm.getValue() >= 1) {
|
||||
me["APUN"].setColor(0.0509,0.7529,0.2941);
|
||||
me["APUN"].setText(sprintf("%s", math.round(apu_rpm.getValue())));
|
||||
me["APUEGT"].setColor(0.0509,0.7529,0.2941);
|
||||
me["APUEGT"].setText(sprintf("%s", math.round(apu_egt.getValue())));
|
||||
me["APUEGT"].setText(sprintf("%s", math.round(apu_egt.getValue(), 5)));
|
||||
} else {
|
||||
me["APUN"].setColor(0.7333,0.3803,0);
|
||||
me["APUN"].setText(sprintf("%s", "XX"));
|
||||
|
@ -705,6 +705,12 @@ var canvas_lowerECAM_apu = {
|
|||
me["APUN-needle"].setRotation((apu_rpm_rot.getValue() + 90) * D2R);
|
||||
me["APUEGT-needle"].setRotation((apu_egt_rot.getValue() + 90) * D2R);
|
||||
|
||||
if (systems.APUNodes.Oil.level.getValue() < 3.69 and apu_rpm.getValue() < 94.9 and gear0_wow.getValue()) {
|
||||
me["APU-low-oil"].show();
|
||||
} else {
|
||||
me["APU-low-oil"].hide();
|
||||
}
|
||||
|
||||
me.updateBottomStatus();
|
||||
},
|
||||
};
|
||||
|
@ -2294,7 +2300,7 @@ var canvas_lowerECAM_fuel = {
|
|||
getKeys: func() {
|
||||
return["TAT","SAT","GW","UTCh","UTCm","GW-weight-unit","FUEL-Pump-Left-1","FUEL-Pump-Left-2","FUEL-Pump-Center-1","FUEL-Pump-Center-2","FUEL-Pump-Right-1","FUEL-Pump-Right-2","FUEL-Left-blocked","FUEL-Right-blocked","FUEL-Center-blocked","FUEL-Left-Transfer",
|
||||
"FUEL-Right-Transfer","FUEL-Left-Outer-Inacc","FUEL-Left-Inner-Inacc","FUEL-Center-Inacc","FUEL-Right-Inner-Inacc","FUEL-Right-Outer-Inacc","FUEL-Left-Outer-quantity","FUEL-Left-Inner-quantity","FUEL-Center-quantity","FUEL-Right-Inner-quantity",
|
||||
"FUEL-Right-Outer-quantity","FUEL-On-Board","FUEL-Flow-per-min","FUEL-APU-arrow","FUEL-APU-label","FUEL-used-1","FUEL-used-both","FUEL-used-2","FUEL-ENG-Master-1","FUEL-ENG-Master-2","FUEL-XFEED","FUEL-XFEED-pipes","FUEL-Left-Outer-temp",
|
||||
"FUEL-Right-Outer-quantity","FUEL-On-Board","FUEL-Flow-per-min","FUEL-APU-arrow","FUEL-APU-line","FUEL-APU-label","FUEL-used-1","FUEL-used-both","FUEL-used-2","FUEL-ENG-Master-1","FUEL-ENG-Master-2","FUEL-XFEED","FUEL-XFEED-pipes","FUEL-Left-Outer-temp",
|
||||
"FUEL-Left-Inner-temp","FUEL-Right-Inner-temp","FUEL-Right-Outer-temp","FUEL-Pump-Left-1-Closed","FUEL-Pump-Left-1-Open","FUEL-Pump-Left-2-Closed","FUEL-Pump-Left-2-Open","FUEL-Pump-Center-1-Open","FUEL-Pump-Center-1-Closed","FUEL-Pump-Center-2-Closed",
|
||||
"FUEL-Pump-Center-2-Open","FUEL-Pump-Right-1-Closed","FUEL-Pump-Right-1-Open","FUEL-Pump-Right-2-Closed","FUEL-Pump-Right-2-Open","FUEL-ENG-1-label","FUEL-ENG-2-label","FUEL-ENG-1-pipe","FUEL-ENG-2-pipe","ENG1idFFlow","ENG2idFFlow","FUEL-used-1","FUEL-used-2","FUEL-used-both",
|
||||
"Fused-weight-unit","FFlow-weight-unit","FOB-weight-unit"];
|
||||
|
@ -2528,6 +2534,30 @@ var canvas_lowerECAM_fuel = {
|
|||
} else {
|
||||
me["FUEL-Center-blocked"].hide();
|
||||
}
|
||||
|
||||
# APU
|
||||
if (systems.FUEL.Valves.apu.getValue() == 1 and systems.APUNodes.Controls.master.getValue() and !systems.APUNodes.Controls.fire.getValue()) {
|
||||
me["FUEL-APU-label"].setColor(0.8078, 0.8039, 0.8078);
|
||||
me["FUEL-APU-line"].setColor(0.0509,0.7529,0.2941);
|
||||
me["FUEL-APU-arrow"].setColor(0.0509,0.7529,0.2941);
|
||||
me["FUEL-APU-line"].show();
|
||||
me["FUEL-APU-arrow"].show();
|
||||
} elsif (systems.FUEL.Valves.apu.getValue() == 1 and (!systems.APUNodes.Controls.master.getValue() or systems.APUNodes.Controls.fire.getValue())) {
|
||||
me["FUEL-APU-label"].setColor(0.7333,0.3803,0);
|
||||
me["FUEL-APU-line"].setColor(0.7333,0.3803,0);
|
||||
me["FUEL-APU-arrow"].setColor(0.7333,0.3803,0);
|
||||
me["FUEL-APU-line"].show();
|
||||
me["FUEL-APU-arrow"].show();
|
||||
} elsif (systems.FUEL.Valves.apu.getValue() != 1 and (systems.APUNodes.Controls.master.getValue() or systems.APUNodes.Controls.fire.getValue())) {
|
||||
me["FUEL-APU-label"].setColor(0.7333,0.3803,0);
|
||||
me["FUEL-APU-line"].hide();
|
||||
me["FUEL-APU-arrow"].hide();
|
||||
} else {
|
||||
me["FUEL-APU-label"].setColor(0.8078, 0.8039, 0.8078);
|
||||
me["FUEL-APU-arrow"].setColor(0.8078, 0.8039, 0.8078);
|
||||
me["FUEL-APU-line"].hide();
|
||||
me["FUEL-APU-arrow"].show();
|
||||
}
|
||||
|
||||
# Hide not yet implemented features
|
||||
# TODO add them
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
viewBox="0 0 1024 1024"
|
||||
version="1.1"
|
||||
id="svg2"
|
||||
inkscape:version="0.91 r13725"
|
||||
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
|
||||
sodipodi:docname="apu.svg">
|
||||
<metadata
|
||||
id="metadata375">
|
||||
|
@ -37,14 +37,14 @@
|
|||
guidetolerance="10"
|
||||
inkscape:pageopacity="1"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1030"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="705"
|
||||
id="namedview371"
|
||||
showgrid="true"
|
||||
inkscape:zoom="0.94"
|
||||
inkscape:cx="702.20847"
|
||||
inkscape:cy="116.68691"
|
||||
inkscape:window-x="1592"
|
||||
inkscape:zoom="0.76543687"
|
||||
inkscape:cx="663.42185"
|
||||
inkscape:cy="457.30228"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg2">
|
||||
|
@ -81,8 +81,7 @@
|
|||
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Liberation Sans';letter-spacing:0px;word-spacing:0px;fill:#179ab7;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="500.75214"
|
||||
y="977.31793"
|
||||
id="text6232"
|
||||
sodipodi:linespacing="0%"><tspan
|
||||
id="text6232"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3726-1-4-5-7"
|
||||
x="500.75214"
|
||||
|
@ -93,8 +92,7 @@
|
|||
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Liberation Sans';letter-spacing:0px;word-spacing:0px;fill:#179ab7;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="254.86758"
|
||||
y="938.9859"
|
||||
id="text6233"
|
||||
sodipodi:linespacing="0%"><tspan
|
||||
id="text6233"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3726-1-4-5-3"
|
||||
x="254.86758"
|
||||
|
@ -105,8 +103,7 @@
|
|||
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Liberation Sans';letter-spacing:0px;word-spacing:0px;fill:#179ab7;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="940.17981"
|
||||
y="939.82428"
|
||||
id="GW-weight-unit"
|
||||
sodipodi:linespacing="0%"><tspan
|
||||
id="GW-weight-unit"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3726-1-4-5-7-7"
|
||||
x="940.17981"
|
||||
|
@ -117,8 +114,7 @@
|
|||
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Liberation Sans';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="695.24951"
|
||||
y="939.8045"
|
||||
id="text3912"
|
||||
sodipodi:linespacing="0%"><tspan
|
||||
id="text3912"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3914"
|
||||
x="695.24951"
|
||||
|
@ -129,8 +125,7 @@
|
|||
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Liberation Sans';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="48.73233"
|
||||
y="939.2984"
|
||||
id="text6235"
|
||||
sodipodi:linespacing="0%"><tspan
|
||||
id="text6235"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3914-9"
|
||||
x="48.73233"
|
||||
|
@ -141,8 +136,7 @@
|
|||
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Liberation Sans';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="47.952412"
|
||||
y="975.40332"
|
||||
id="text6236"
|
||||
sodipodi:linespacing="0%"><tspan
|
||||
id="text6236"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan3914-9-4"
|
||||
x="47.952412"
|
||||
|
@ -154,8 +148,7 @@
|
|||
x="212.32626"
|
||||
y="938.96637"
|
||||
id="TAT"
|
||||
inkscape:label="#text5149"
|
||||
sodipodi:linespacing="0%"><tspan
|
||||
inkscape:label="#text5149"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5151-5-7-1"
|
||||
x="212.32626"
|
||||
|
@ -167,8 +160,7 @@
|
|||
x="212.3264"
|
||||
y="975.40363"
|
||||
id="SAT"
|
||||
inkscape:label="#text5149"
|
||||
sodipodi:linespacing="0%"><tspan
|
||||
inkscape:label="#text5149"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5151-5-7-1-0"
|
||||
x="212.3264"
|
||||
|
@ -180,15 +172,13 @@
|
|||
x="925.0899"
|
||||
y="939.78522"
|
||||
id="GW"
|
||||
inkscape:label="#text5149"
|
||||
sodipodi:linespacing="0%"><tspan
|
||||
inkscape:label="#text5149"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan5151-5-7-1-9"
|
||||
x="925.0899"
|
||||
y="939.78522"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:36px;line-height:1.25;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';text-align:end;text-anchor:end;fill:#0dc04b">120000</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="0%"
|
||||
id="text4170"
|
||||
y="975.42352"
|
||||
x="254.86758"
|
||||
|
@ -200,7 +190,6 @@
|
|||
id="tspan4172"
|
||||
sodipodi:role="line">°C</tspan></text>
|
||||
<text
|
||||
sodipodi:linespacing="0%"
|
||||
inkscape:label="#text5149"
|
||||
id="UTCh"
|
||||
y="976.25214"
|
||||
|
@ -218,8 +207,7 @@
|
|||
x="560.88452"
|
||||
y="976.25214"
|
||||
id="UTCm"
|
||||
inkscape:label="#text5149"
|
||||
sodipodi:linespacing="0%"><tspan
|
||||
inkscape:label="#text5149"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4180"
|
||||
x="560.88452"
|
||||
|
@ -652,13 +640,13 @@
|
|||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;line-height:0%;font-family:'Liberation Sans';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="582.35168"
|
||||
y="618.75146"
|
||||
x="580.4906"
|
||||
y="637.36829"
|
||||
id="APUFlapOpen"
|
||||
inkscape:label="#text5149"><tspan
|
||||
sodipodi:role="line"
|
||||
x="582.35168"
|
||||
y="618.75146"
|
||||
x="580.4906"
|
||||
y="637.36829"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:48px;line-height:1.25;font-family:'Liberation Sans';-inkscape-font-specification:'Liberation Sans';fill:#0dc04b"
|
||||
id="tspan5227-3-2">FLAP OPEN</tspan></text>
|
||||
<text
|
||||
|
@ -757,4 +745,21 @@
|
|||
inkscape:transform-center-y="-3.4535777"
|
||||
transform="matrix(1.0702291,0,0,0.97557219,-0.2069507,6.7326558)" />
|
||||
</g>
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;font-size:12px;line-height:0%;font-family:'Liberation Sans';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
x="579.30688"
|
||||
y="743.22437"
|
||||
id="APU-low-oil"
|
||||
inkscape:label="#text4237"><tspan
|
||||
sodipodi:role="line"
|
||||
id="tspan4239-5"
|
||||
x="579.30688"
|
||||
y="743.22437"
|
||||
style="font-size:48px;line-height:1.25;fill:#bb6100;fill-opacity:1;stroke-width:1px">LOW OIL</tspan><tspan
|
||||
sodipodi:role="line"
|
||||
x="579.30688"
|
||||
y="803.22437"
|
||||
style="font-size:48px;line-height:1.25;fill:#bb6100;fill-opacity:1;stroke-width:1px"
|
||||
id="tspan953">LEVEL</tspan></text>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
|
@ -961,25 +961,21 @@
|
|||
style="fill:#0dc04b;fill-opacity:1;stroke:none;stroke-width:1.45647562;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
inkscape:label="#rect5105-6-0-7-8-6-8-8-6-6-6-4-6-7-5-6-9-8" />
|
||||
</g>
|
||||
<g
|
||||
id="FUEL-APU-arrow"
|
||||
inkscape:label="#g5828">
|
||||
<rect
|
||||
ry="0"
|
||||
transform="matrix(0,1,-1,0,0,0)"
|
||||
y="-261.75253"
|
||||
x="232.60442"
|
||||
height="18.894773"
|
||||
width="5.3955846"
|
||||
id="rect5105-6-0-7-8-6-8-8-6-6-6-4-0-0-42"
|
||||
style="fill:#0dc04b;fill-opacity:1;stroke:none;stroke-width:1.09431255;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
sodipodi:nodetypes="cccccsc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="path5824"
|
||||
d="m 209.24999,234.99999 15.75,-7.5 16.5,-8.25 v 17.25 l 0,15.30854 c 0,0 -1.69343,-0.68362 -19.69533,-10.2091 -11.05467,-5.84944 -12.55467,-6.59944 -12.55467,-6.59944 z"
|
||||
style="fill:none;stroke:#0dc04b;stroke-width:2.77499986;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.80000019;stroke-dasharray:none;stroke-opacity:1" />
|
||||
</g>
|
||||
<rect
|
||||
ry="0"
|
||||
transform="matrix(0,1,-1,0,0,0)"
|
||||
y="-261.75253"
|
||||
x="232.60442"
|
||||
height="18.894773"
|
||||
width="5.3955846"
|
||||
id="FUEL-APU-line"
|
||||
style="fill:#0dc04b;fill-opacity:1;stroke:none;stroke-width:1.09431255;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<path
|
||||
sodipodi:nodetypes="cccccsc"
|
||||
inkscape:connector-curvature="0"
|
||||
id="FUEL-APU-arrow"
|
||||
d="m 209.24999,234.99999 15.75,-7.5 16.5,-8.25 v 17.25 l 0,15.30854 c 0,0 -1.69343,-0.68362 -19.69533,-10.2091 -11.05467,-5.84944 -12.55467,-6.59944 -12.55467,-6.59944 z"
|
||||
style="fill:none;stroke:#0dc04b;stroke-width:2.77499986;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4.80000019;stroke-dasharray:none;stroke-opacity:1" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
style="font-style:normal;font-weight:normal;line-height:0%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0dc04b;fill-opacity:1;stroke:none;stroke-width:0.75"
|
||||
|
|
Before Width: | Height: | Size: 69 KiB After Width: | Height: | Size: 69 KiB |
|
@ -344,7 +344,7 @@
|
|||
<repeatable type="bool">false</repeatable>
|
||||
<binding>
|
||||
<command>property-toggle</command>
|
||||
<property>controls/APU/fire-switch</property>
|
||||
<property>controls/apu/fire-switch</property>
|
||||
</binding>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
|
@ -360,7 +360,7 @@
|
|||
<red>0.9</red>
|
||||
<green>0.7</green>
|
||||
<blue>0.7</blue>
|
||||
<factor-prop>controls/APU/fire-switch</factor-prop>
|
||||
<factor-prop>controls/apu/fire-switch</factor-prop>
|
||||
</emission>
|
||||
</animation>
|
||||
|
||||
|
@ -1515,7 +1515,7 @@
|
|||
<repeatable type="bool">false</repeatable>
|
||||
<binding>
|
||||
<command>property-toggle</command>
|
||||
<property>controls/APU/master-switch</property>
|
||||
<property>controls/apu/master-switch</property>
|
||||
</binding>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
|
@ -1541,7 +1541,7 @@
|
|||
<name>APU master switch on</name>
|
||||
<type>textranslate</type>
|
||||
<object-name>APUMasterBtn2</object-name>
|
||||
<property>controls/APU/master-switch</property>
|
||||
<property>controls/apu/master-switch</property>
|
||||
<factor>0.5</factor>
|
||||
<axis>
|
||||
<x>1</x>
|
||||
|
@ -1559,7 +1559,7 @@
|
|||
<repeatable type="bool">false</repeatable>
|
||||
<binding>
|
||||
<command>property-toggle</command>
|
||||
<property>controls/APU/starter</property>
|
||||
<property>controls/apu/starter</property>
|
||||
</binding>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
|
@ -1571,7 +1571,7 @@
|
|||
<name>APU starter on</name>
|
||||
<type>textranslate</type>
|
||||
<object-name>APUStartBtn2</object-name>
|
||||
<property>controls/APU/starter</property>
|
||||
<property>controls/apu/starter</property>
|
||||
<factor>0.5</factor>
|
||||
<axis>
|
||||
<x>1</x>
|
||||
|
|
|
@ -23,16 +23,6 @@
|
|||
<object-name>ADR2Btn2O</object-name>
|
||||
<object-name>ADR3Btn1F</object-name>
|
||||
<object-name>ADR3Btn2O</object-name>
|
||||
<object-name>APUBleedBtn1F</object-name>
|
||||
<object-name>APUBleedBtn2O</object-name>
|
||||
<object-name>APUFireAgtBtn1S</object-name>
|
||||
<object-name>APUFireAgtBtn2D</object-name>
|
||||
<object-name>APUGenBtn1F</object-name>
|
||||
<object-name>APUGenBtn2O</object-name>
|
||||
<object-name>APUMasterBtn1F</object-name>
|
||||
<object-name>APUMasterBtn2O</object-name>
|
||||
<object-name>APUStartBtn1A</object-name>
|
||||
<object-name>APUStartBtn2O</object-name>
|
||||
<object-name>BatteryBtn11F</object-name>
|
||||
<object-name>BatteryBtn21F</object-name>
|
||||
<object-name>BusTieBtn2O</object-name>
|
||||
|
@ -43,10 +33,6 @@
|
|||
<object-name>ExtPwrBtn2O</object-name>
|
||||
<object-name>FAC1Btn1F</object-name>
|
||||
<object-name>FAC1Btn2O</object-name>
|
||||
<object-name>Gen1Btn1F</object-name>
|
||||
<object-name>Gen1Btn2O</object-name>
|
||||
<object-name>Gen2Btn1F</object-name>
|
||||
<object-name>Gen2Btn2O</object-name>
|
||||
<object-name>IR1Btn1F</object-name>
|
||||
<object-name>IR1Btn2A</object-name>
|
||||
<object-name>IR2Btn1F</object-name>
|
||||
|
@ -57,6 +43,26 @@
|
|||
<object-name>SEC1Btn1F</object-name>
|
||||
<object-name>SEC1Btn2O</object-name>
|
||||
<object-name>VentBlowBtn1F</object-name>
|
||||
<condition>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/ac-ess</property>
|
||||
<value>5</value>
|
||||
</greater-than-equals>
|
||||
</condition>
|
||||
</animation>
|
||||
|
||||
<animation>
|
||||
<type>select</type>
|
||||
<object-name>APUBleedBtn1F</object-name>
|
||||
<object-name>APUBleedBtn2O</object-name>
|
||||
<object-name>APUGenBtn1F</object-name>
|
||||
<object-name>APUGenBtn2O</object-name>
|
||||
<object-name>APUMasterBtn1F</object-name>
|
||||
<object-name>APUMasterBtn2O</object-name>
|
||||
<object-name>APUStartBtn1A</object-name>
|
||||
<object-name>APUStartBtn2O</object-name>
|
||||
<object-name>APUFireAgtBtn1S</object-name>
|
||||
<object-name>APUFireAgtBtn2D</object-name>
|
||||
<object-name>Eng1FireAgt1Btn1S</object-name>
|
||||
<object-name>Eng1FireAgt1Btn2D</object-name>
|
||||
<object-name>Eng2FireAgt1Btn1S</object-name>
|
||||
|
@ -65,11 +71,21 @@
|
|||
<object-name>Eng1FireAgt2Btn2D</object-name>
|
||||
<object-name>Eng2FireAgt2Btn1S</object-name>
|
||||
<object-name>Eng2FireAgt2Btn2D</object-name>
|
||||
<object-name>Gen1Btn1F</object-name>
|
||||
<object-name>Gen1Btn2O</object-name>
|
||||
<object-name>Gen2Btn1F</object-name>
|
||||
<object-name>Gen2Btn2O</object-name>
|
||||
<condition>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/ac-ess</property>
|
||||
<value>5</value>
|
||||
</greater-than-equals>
|
||||
<or>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/ac-si-bus</property>
|
||||
<value>5</value>
|
||||
</greater-than-equals>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/ac-ess</property>
|
||||
<value>5</value>
|
||||
</greater-than-equals>
|
||||
</or>
|
||||
</condition>
|
||||
</animation>
|
||||
|
||||
|
@ -3251,7 +3267,7 @@
|
|||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/dc-bat</property>
|
||||
<value>25</value>
|
||||
</greater-than-equals> <!-- control is on DC BAT bus - so if you enter EMER ELEC with it turned off, too bad -->
|
||||
</greater-than-equals> <!-- control is on DC BAT bus 301PP via 11 PB - so if you enter EMER ELEC with it turned off, too bad -->
|
||||
</condition>
|
||||
<command>property-toggle</command>
|
||||
<property>controls/electrical/switches/apu</property>
|
||||
|
@ -5577,7 +5593,7 @@
|
|||
</or>
|
||||
</condition>
|
||||
<command>property-toggle</command>
|
||||
<property>controls/APU/master</property>
|
||||
<property>controls/apu/master</property>
|
||||
</binding>
|
||||
<binding>
|
||||
<command>nasal</command>
|
||||
|
@ -5591,7 +5607,7 @@
|
|||
<object-name>APUMasterBtn1F</object-name>
|
||||
<condition>
|
||||
<or>
|
||||
<property>systems/apu/emer-shutdown</property>
|
||||
<property>systems/apu/fault</property>
|
||||
<equals>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<value>1</value>
|
||||
|
@ -5606,7 +5622,7 @@
|
|||
<condition>
|
||||
<or>
|
||||
<equals>
|
||||
<property>controls/APU/master</property>
|
||||
<property>controls/apu/master</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
<equals>
|
||||
|
@ -5634,16 +5650,12 @@
|
|||
<property>systems/electrical/bus/dc-bat</property>
|
||||
<value>25</value>
|
||||
</greater-than-equals>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/dc-ess</property>
|
||||
<value>25</value>
|
||||
</greater-than-equals>
|
||||
</or>
|
||||
</condition>
|
||||
<command>nasal</command>
|
||||
<script>
|
||||
if (getprop("controls/APU/master") == 1 and getprop("controls/APU/start") != 1) {
|
||||
setprop("controls/APU/start", 1);
|
||||
if (getprop("controls/apu/master") == 1) {
|
||||
systems.APUController.APU.startCommand();
|
||||
}
|
||||
</script>
|
||||
</binding>
|
||||
|
@ -5659,10 +5671,10 @@
|
|||
<object-name>APUStartBtn1A</object-name>
|
||||
<condition>
|
||||
<or>
|
||||
<greater-than>
|
||||
<property>systems/apu/rpm</property>
|
||||
<value>94.9</value>
|
||||
</greater-than>
|
||||
<equals>
|
||||
<property>systems/apu/available</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
<equals>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<value>1</value>
|
||||
|
@ -5676,16 +5688,10 @@
|
|||
<object-name>APUStartBtn2O</object-name>
|
||||
<condition>
|
||||
<or>
|
||||
<and>
|
||||
<equals>
|
||||
<property>controls/APU/start</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
<less-than-equals>
|
||||
<property>systems/apu/rpm</property>
|
||||
<value>94.9</value>
|
||||
</less-than-equals>
|
||||
</and>
|
||||
<equals>
|
||||
<property>systems/apu/start</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
<equals>
|
||||
<property>controls/switches/annun-test</property>
|
||||
<value>1</value>
|
||||
|
@ -6708,16 +6714,10 @@
|
|||
<property>controls/fire/apu-test-btn</property>
|
||||
<value>1</value>
|
||||
<condition>
|
||||
<or>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/dc-hot-1</property>
|
||||
<value>25</value>
|
||||
</greater-than-equals>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/dc-hot-2</property>
|
||||
<value>25</value>
|
||||
</greater-than-equals>
|
||||
</or>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/dc-bat</property>
|
||||
<value>25</value>
|
||||
</greater-than-equals>
|
||||
</condition>
|
||||
</binding>
|
||||
<mod-up>
|
||||
|
@ -6740,13 +6740,13 @@
|
|||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>
|
||||
if (getprop("controls/APU/fire-btn") == 1) {
|
||||
setprop("controls/APU/fire-btn", 0);
|
||||
setprop("controls/APU/fire-btn-cover", 0);
|
||||
} else if (getprop("controls/APU/fire-btn-cover") == 1) {
|
||||
setprop("controls/APU/fire-btn", 1);
|
||||
if (getprop("controls/apu/fire-btn") == 1) {
|
||||
setprop("controls/apu/fire-btn", 0);
|
||||
setprop("controls/apu/fire-btn-cover", 0);
|
||||
} else if (getprop("controls/apu/fire-btn-cover") == 1) {
|
||||
setprop("controls/apu/fire-btn", 1);
|
||||
} else {
|
||||
setprop("controls/APU/fire-btn-cover", 1);
|
||||
setprop("controls/apu/fire-btn-cover", 1);
|
||||
}
|
||||
</script>
|
||||
</binding>
|
||||
|
@ -6763,13 +6763,13 @@
|
|||
<binding>
|
||||
<command>nasal</command>
|
||||
<script>
|
||||
if (getprop("controls/APU/fire-btn") == 1) {
|
||||
setprop("controls/APU/fire-btn", 0);
|
||||
setprop("controls/APU/fire-btn-cover", 0);
|
||||
} else if (getprop("controls/APU/fire-btn-cover") == 1) {
|
||||
setprop("controls/APU/fire-btn-cover", 0);
|
||||
if (getprop("controls/apu/fire-btn") == 1) {
|
||||
setprop("controls/apu/fire-btn", 0);
|
||||
setprop("controls/apu/fire-btn-cover", 0);
|
||||
} else if (getprop("controls/apu/fire-btn-cover") == 1) {
|
||||
setprop("controls/apu/fire-btn-cover", 0);
|
||||
} else {
|
||||
setprop("controls/APU/fire-btn-cover", 1);
|
||||
setprop("controls/apu/fire-btn-cover", 1);
|
||||
}
|
||||
</script>
|
||||
</binding>
|
||||
|
@ -6779,7 +6779,7 @@
|
|||
<animation>
|
||||
<type>rotate</type>
|
||||
<object-name>APUFireCover</object-name>
|
||||
<property>controls/APU/fire-btn-cover</property>
|
||||
<property>controls/apu/fire-btn-cover</property>
|
||||
<factor>-110</factor>
|
||||
<axis>
|
||||
<x1-m>-0.00583</x1-m>
|
||||
|
@ -6794,7 +6794,7 @@
|
|||
<animation>
|
||||
<type>translate</type>
|
||||
<object-name>APUFireBtn</object-name>
|
||||
<property>controls/APU/fire-btn</property>
|
||||
<property>controls/apu/fire-btn</property>
|
||||
<factor>0.025</factor>
|
||||
<axis>
|
||||
<x>1</x>
|
||||
|
@ -6829,23 +6829,13 @@
|
|||
<repeatable>false</repeatable>
|
||||
<binding>
|
||||
<command>property-assign</command>
|
||||
<property>controls/APU/agent-btn</property>
|
||||
<property>controls/apu/agent-btn</property>
|
||||
<value>1</value>
|
||||
<condition>
|
||||
<or>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/dc-hot-1</property>
|
||||
<value>25</value>
|
||||
</greater-than-equals>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/dc-hot-2</property>
|
||||
<value>25</value>
|
||||
</greater-than-equals>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/dc-bat</property>
|
||||
<value>25</value>
|
||||
</greater-than-equals>
|
||||
</or>
|
||||
<greater-than-equals>
|
||||
<property>systems/electrical/bus/dc-bat</property>
|
||||
<value>25</value>
|
||||
</greater-than-equals>
|
||||
</condition>
|
||||
</binding>
|
||||
</action>
|
||||
|
@ -6857,7 +6847,7 @@
|
|||
<condition>
|
||||
<or>
|
||||
<equals>
|
||||
<property>controls/APU/fire-btn</property>
|
||||
<property>controls/apu/fire-btn</property>
|
||||
<value>1</value>
|
||||
</equals>
|
||||
<equals>
|
||||
|
|
|
@ -14,9 +14,9 @@ var fac1Node = props.globals.getNode("controls/fctl/switches/fac1", 1);
|
|||
var state1Node = props.globals.getNode("engines/engine[0]/state", 1);
|
||||
var state2Node = props.globals.getNode("engines/engine[1]/state", 1);
|
||||
var wowNode = props.globals.getNode("fdm/jsbsim/position/wow", 1);
|
||||
var apu_rpm = props.globals.getNode("systems/apu/rpm", 1);
|
||||
var apu_rpm = props.globals.getNode("engines/engine[2]/n1", 1);
|
||||
var wing_pb = props.globals.getNode("controls/switches/wing", 1);
|
||||
var apumaster = props.globals.getNode("controls/APU/master", 1);
|
||||
var apumaster = props.globals.getNode("controls/apu/master", 1);
|
||||
var apu_bleedSw = props.globals.getNode("controls/pneumatic/switches/bleedapu", 1);
|
||||
var gear = props.globals.getNode("gear/gear-pos-norm", 1);
|
||||
var cutoff1 = props.globals.getNode("controls/engines/engine[0]/cutoff-switch", 1);
|
||||
|
@ -424,7 +424,7 @@ var messages_priority_3 = func {
|
|||
ECAM_controller.warningReset(eng1FireGnevacSw);
|
||||
}
|
||||
|
||||
if (eng1FireGnevacApu.clearFlag == 0 and getprop("controls/APU/master") and getprop("systems/apu/rpm") > 99) {
|
||||
if (eng1FireGnevacApu.clearFlag == 0 and getprop("controls/apu/master") and getprop("engines/engine[2]/n1") > 99) {
|
||||
eng1FireGnevacApu.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng1FireGnevacApu);
|
||||
|
@ -607,7 +607,7 @@ var messages_priority_3 = func {
|
|||
ECAM_controller.warningReset(eng2FireGnevacSw);
|
||||
}
|
||||
|
||||
if (eng2FireGnevacApu.clearFlag == 0 and getprop("controls/APU/master") and getprop("systems/apu/rpm") > 99) {
|
||||
if (eng2FireGnevacApu.clearFlag == 0 and getprop("controls/apu/master") and getprop("engines/engine[2]/n1") > 99) {
|
||||
eng2FireGnevacApu.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(eng2FireGnevacApu);
|
||||
|
@ -660,7 +660,7 @@ var messages_priority_3 = func {
|
|||
|
||||
# APU Fire
|
||||
if (apuFire.active == 1) {
|
||||
if (apuFirePB.clearFlag == 0 and !getprop("controls/APU/fire-btn")) {
|
||||
if (apuFirePB.clearFlag == 0 and !getprop("controls/apu/fire-btn")) {
|
||||
apuFirePB.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(apuFirePB);
|
||||
|
@ -670,19 +670,19 @@ var messages_priority_3 = func {
|
|||
apuFireAgentTimer.msg = " -AGENT AFT " ~ getprop("systems/fire/apu/agent-timer") ~ " S...DISCH";
|
||||
}
|
||||
|
||||
if (apuFireAgent.clearFlag == 0 and getprop("controls/APU/fire-btn") and !getprop("systems/fire/apu/disch") and getprop("systems/fire/apu/agent-timer") != 0) {
|
||||
if (apuFireAgent.clearFlag == 0 and getprop("controls/apu/fire-btn") and !getprop("systems/fire/apu/disch") and getprop("systems/fire/apu/agent-timer") != 0) {
|
||||
apuFireAgentTimer.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(apuFireAgentTimer);
|
||||
}
|
||||
|
||||
if (apuFireAgent.clearFlag == 0 and getprop("controls/APU/fire-btn") and !getprop("systems/fire/apu/disch") and getprop("systems/fire/apu/agent-timer") == 0) {
|
||||
if (apuFireAgent.clearFlag == 0 and getprop("controls/apu/fire-btn") and !getprop("systems/fire/apu/disch") and getprop("systems/fire/apu/agent-timer") == 0) {
|
||||
apuFireAgent.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(apuFireAgent);
|
||||
}
|
||||
|
||||
if (apuFireMaster.clearFlag == 0 and getprop("controls/APU/master")) {
|
||||
if (apuFireMaster.clearFlag == 0 and getprop("controls/apu/master")) {
|
||||
apuFireMaster.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(apuFireMaster);
|
||||
|
@ -887,7 +887,7 @@ var messages_priority_3 = func {
|
|||
}
|
||||
|
||||
# EMER CONFIG
|
||||
if (getprop("systems/electrical/some-electric-thingie/emer-elec-config") and !dualFailNode.getBoolValue() and phaseVar != 4 and phaseVar != 8 and emerconfig.clearFlag == 0) {
|
||||
if (getprop("systems/electrical/some-electric-thingie/emer-elec-config") and !dualFailNode.getBoolValue() and phaseVar != 4 and phaseVar != 8 and emerconfig.clearFlag == 0 and !getprop("systems/acconfig/autoconfig-running")) {
|
||||
emerconfig.active = 1;
|
||||
|
||||
if (getprop("systems/hydraulic/sources/rat/position") != 0 and emerconfigMinRat.clearFlag == 0) {
|
||||
|
@ -1197,20 +1197,35 @@ var messages_priority_2 = func {
|
|||
}
|
||||
|
||||
# APU EMER SHUT DOWN
|
||||
if (apuEmerShutdown.clearFlag == 0 and systems.apuEmerShutdown.getBoolValue() and !getprop("systems/fire/apu/warning-active") and (phaseVar == 6 or phaseVar >= 9 or phaseVar <= 2)) {
|
||||
if (apuEmerShutdown.clearFlag == 0 and systems.APUController.APU.signals.autoshutdown and systems.APUController.APU.signals.emer and !getprop("systems/fire/apu/warning-active") and (phaseVar == 6 or phaseVar >= 9 or phaseVar <= 2)) {
|
||||
apuEmerShutdown.active = 1;
|
||||
} elsif (apuEmerShutdown.clearFlag == 1) {
|
||||
ECAM_controller.warningReset(apuEmerShutdown);
|
||||
apuEmerShutdown.isMainMsg = 1;
|
||||
}
|
||||
|
||||
if (apuEmerShutdownMast.clearFlag == 0 and getprop("controls/APU/master") and apuEmerShutdown.active == 1) {
|
||||
if (apuEmerShutdownMast.clearFlag == 0 and getprop("controls/apu/master") and apuEmerShutdown.active == 1) {
|
||||
apuEmerShutdownMast.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(apuEmerShutdownMast);
|
||||
apuEmerShutdown.isMainMsg = 0;
|
||||
}
|
||||
|
||||
# APU AUTO SHUT DOWN
|
||||
if (apuEmerShutdown.clearFlag == 0 and systems.APUController.APU.signals.autoshutdown and !systems.APUController.APU.signals.emer and !getprop("systems/fire/apu/warning-active") and (phaseVar == 6 or phaseVar >= 9 or phaseVar <= 2)) {
|
||||
apuAutoShutdown.active = 1;
|
||||
} elsif (apuAutoShutdown.clearFlag == 1) {
|
||||
ECAM_controller.warningReset(apuAutoShutdown);
|
||||
apuAutoShutdown.isMainMsg = 1;
|
||||
}
|
||||
|
||||
if (apuAutoShutdownMast.clearFlag == 0 and getprop("controls/apu/master") and apuAutoShutdown.active == 1) {
|
||||
apuAutoShutdownMast.active = 1;
|
||||
} else {
|
||||
ECAM_controller.warningReset(apuAutoShutdownMast);
|
||||
apuAutoShutdown.isMainMsg = 0;
|
||||
}
|
||||
|
||||
if (eng1FireDetFault.clearFlag == 0 and (systems.engFireDetectorUnits.vector[0].condition == 0 or (systems.engFireDetectorUnits.vector[0].loopOne == 9 and systems.engFireDetectorUnits.vector[0].loopTwo == 9 and systems.eng1Inop.getBoolValue())) and (phaseVar == 6 or phaseVar >= 9 or phaseVar <= 2)) {
|
||||
eng1FireDetFault.active = 1;
|
||||
} else {
|
||||
|
@ -1660,13 +1675,13 @@ var messages_right_memo = func {
|
|||
ignition.active = 0;
|
||||
}
|
||||
|
||||
if (getprop("controls/pneumatic/switches/bleedapu") == 1 and getprop("systems/apu/rpm") >= 95) {
|
||||
if (getprop("controls/pneumatic/switches/bleedapu") == 1 and getprop("engines/engine[2]/n1") >= 95) {
|
||||
apu_bleed.active = 1;
|
||||
} else {
|
||||
apu_bleed.active = 0;
|
||||
}
|
||||
|
||||
if (apu_bleed.active == 0 and getprop("systems/apu/rpm") >= 95) {
|
||||
if (apu_bleed.active == 0 and getprop("engines/engine[2]/n1") >= 95) {
|
||||
apu_avail.active = 1;
|
||||
} else {
|
||||
apu_avail.active = 0;
|
||||
|
|
|
@ -237,6 +237,8 @@ var warnings = std.Vector.new([
|
|||
# APU shutdown
|
||||
var apuEmerShutdown = warning.new(msg: "APU EMER SHUT DOWN", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
||||
var apuEmerShutdownMast = warning.new(msg: " -MASTER SW..........OFF", colour: "c"),
|
||||
var apuAutoShutdown = warning.new(msg: "APU AUTO SHUT DOWN", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
||||
var apuAutoShutdownMast = warning.new(msg: " -MASTER SW..........OFF", colour: "c"),
|
||||
|
||||
# FIRE det fault
|
||||
var eng1FireDetFault = warning.new(msg: "ENG 1 FIRE DET FAULT", colour: "a", aural: 1, light: 1, isMainMsg: 1),
|
||||
|
|
|
@ -164,8 +164,9 @@ var CVR_test = func {
|
|||
}
|
||||
}
|
||||
|
||||
setlistener("/controls/APU/master", func() {
|
||||
if (!getprop("controls/APU/master") and systems.apuEmerShutdown.getBoolValue()) {
|
||||
systems.apuEmerShutdown.setBoolValue(0);
|
||||
setlistener("/controls/apu/master", func() { # poor mans set-reset latch
|
||||
if (!getprop("controls/apu/master") and (systems.APUController.APU.signals.emer or systems.APUController.APU.signals.autoshutdown)) {
|
||||
systems.APUController.APU.signals.emer = 0;
|
||||
systems.APUController.APU.signals.autoshutdown = 0;
|
||||
}
|
||||
}, 0, 0);
|
|
@ -203,6 +203,7 @@ var systemsInit = func {
|
|||
systems.ADIRS.init();
|
||||
systems.ADIRSnew.init();
|
||||
systems.eng_init();
|
||||
systems.APUController.init();
|
||||
systems.fire_init();
|
||||
systems.autobrake_init();
|
||||
fmgc.flightPlanController.reset();
|
||||
|
@ -242,6 +243,7 @@ var systemsLoop = maketimer(0.1, func {
|
|||
rmp.rmpUpdate();
|
||||
fcu.FCUController.loop();
|
||||
dmc.DMController.loop();
|
||||
systems.APUController.loop();
|
||||
|
||||
if ((getprop("controls/pneumatic/switches/groundair") or getprop("controls/electrical/ground-cart")) and ((getprop("velocities/groundspeed-kt") > 2) or (getprop("controls/gear/brake-parking") == 0 and getprop("services/chocks/nose") == 0 and getprop("services/chocks/left") == 0 and getprop("services/chocks/right") == 0))) {
|
||||
setprop("controls/electrical/ground-cart", 0);
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
# Usage Example: pts.Class.SubClass.node.getValue()
|
||||
|
||||
var APU = {
|
||||
masterSw: props.globals.getNode("controls/APU/master"),
|
||||
rpm: props.globals.getNode("systems/apu/rpm"),
|
||||
masterSw: props.globals.getNode("controls/apu/master"),
|
||||
rpm: props.globals.getNode("engines/engine[2]/n1"),
|
||||
};
|
||||
|
||||
var Consumables = {
|
||||
|
|
|
@ -3,50 +3,269 @@
|
|||
|
||||
# Copyright (c) 2019 Jonathan Redpath (legoboyvdlp)
|
||||
|
||||
var APUNodes = {
|
||||
Controls: {
|
||||
master: props.globals.getNode("controls/apu/master"),
|
||||
fire: props.globals.getNode("controls/apu/fire-btn"),
|
||||
bleed: props.globals.getNode("controls/pneumatic/switches/bleedapu"),
|
||||
},
|
||||
Oil: {
|
||||
level: props.globals.getNode("systems/apu/oil/level-l"),
|
||||
pressure: props.globals.getNode("systems/apu/oil/oil-pressure-psi"),
|
||||
temperature: props.globals.getNode("systems/apu/oil/oil-temperature-degC"),
|
||||
},
|
||||
masterElecThreeMin: props.globals.getNode("systems/apu/dc-bat-three-minutes"),
|
||||
};
|
||||
|
||||
var APU = {
|
||||
state: 0, # power up, watch, starting, run, cooldown, shutdown
|
||||
nRpm: 0,
|
||||
fuelValve: aircraft.door.new("/controls/apu/fuel-valve", 1),
|
||||
inletFlap: aircraft.door.new("/controls/apu/inlet-flap", 12),
|
||||
state: 0, # off, power up, watch, starting preparation, starting, run, cooldown, shutdown
|
||||
inletFlap: aircraft.door.new("controls/apu/inlet-flap", 12),
|
||||
fuelValveCmd: props.globals.getNode("/systems/fuel/valves/apu-lp-valve-cmd"),
|
||||
fuelValvePos: props.globals.getNode("/systems/fuel/valves/apu-lp-valve"),
|
||||
inletFlapPos: props.globals.getNode("controls/apu/inlet-flap/position-norm"),
|
||||
oilLevel: props.globals.getNode("systems/apu/oil/level-l"),
|
||||
listenSignals: 0,
|
||||
start: 0,
|
||||
cancelCheckFlap: 0,
|
||||
new: func() {
|
||||
var a = { parents:[APU] };
|
||||
return a;
|
||||
listenStopSignal: 0,
|
||||
bleedTime: 0,
|
||||
cooldownEndTime: 0,
|
||||
fastStart: 0,
|
||||
warnings: {
|
||||
lowOilLevel: 0,
|
||||
},
|
||||
GenericControls: {
|
||||
starter: props.globals.getNode("controls/engines/engine[2]/starter"),
|
||||
cutoff: props.globals.getNode("controls/engines/engine[2]/cutoff"),
|
||||
throttle: props.globals.getNode("controls/engines/engine[2]/throttle"),
|
||||
},
|
||||
signals: {
|
||||
startInProgress: props.globals.getNode("systems/apu/start"),
|
||||
oilTestComplete: 0,
|
||||
available: props.globals.getNode("systems/apu/available"),
|
||||
bleedWasUsed: 0,
|
||||
fault: props.globals.getNode("systems/apu/fault"),
|
||||
autoshutdown: 0,
|
||||
emer: 0,
|
||||
},
|
||||
setState: func(num) {
|
||||
me.state = num;
|
||||
},
|
||||
powerOn: func() {
|
||||
# apu able to receive emergency stop or start signals
|
||||
me.fuelValve.open();
|
||||
me.inletFlap.open();
|
||||
me.listenSignals = 1;
|
||||
settimer(me.setState(1), 3);
|
||||
resetStuff: func() {
|
||||
me.setState(0);
|
||||
me.warnings.lowOilLevel = 0;
|
||||
me.listenSignals = 0;
|
||||
me.listenStopSignal = 0;
|
||||
me.bleedTime = 0;
|
||||
me.cooldownEndTime = 0;
|
||||
me.signals.oilTestComplete = 0;
|
||||
me.signals.bleedWasUsed = 0;
|
||||
me.signals.fault.setValue(0);
|
||||
me.signals.autoshutdown = 0;
|
||||
me.signals.emer = 0;
|
||||
checkApuStartTimer.stop();
|
||||
apuStartTimer.stop();
|
||||
apuStartTimer2.stop();
|
||||
shutdownTimer.stop();
|
||||
cooldownTimer.stop();
|
||||
},
|
||||
getStartSignal: func() {
|
||||
if (me.listenSignals and me.state < 2 and me.nRpm < 7) {
|
||||
me.start = 1;
|
||||
me.startCheckFlap();
|
||||
} elsif (me.listenSignals) {
|
||||
settimer(me.getStartSignal(), 0);
|
||||
}
|
||||
new: func() {
|
||||
var a = { parents:[APU] };
|
||||
return a;
|
||||
me.GenericControls.throttle.setValue(1);
|
||||
},
|
||||
startCheckFlap: func() {
|
||||
if (me.inletFlap.getpos() != 1 and me.cancelCheckFlap == 0 and me.state == 1) {
|
||||
settimer(me.startCheckFlap(), 0);
|
||||
} elsif (me.cancelCheckFlap) {
|
||||
me.cancelCheckFlap = 0;
|
||||
# Tests
|
||||
checkOil: func() {
|
||||
if (me.oilLevel.getValue() < 3.69) {
|
||||
me.warnings.lowOilLevel = 1;
|
||||
} else {
|
||||
me.setState(2);
|
||||
me.warnings.lowOilLevel = 0;
|
||||
}
|
||||
me.signals.oilTestComplete = 1;
|
||||
},
|
||||
|
||||
# Routines to do with state
|
||||
powerOn: func() {
|
||||
# just in case
|
||||
me.resetStuff();
|
||||
if (systems.ELEC.Bus.dcBat.getValue() < 25) { return; }
|
||||
# apu able to receive emergency stop or start signals
|
||||
me.setState(1);
|
||||
me.fuelValveCmd.setValue(1);
|
||||
me.inletFlap.open();
|
||||
me.checkOil();
|
||||
me.listenSignals = 1;
|
||||
settimer(func() {
|
||||
if (APUNodes.Controls.master.getValue() and !getprop("systems/acconfig/autoconfig-running")) {
|
||||
me.setState(2);
|
||||
}
|
||||
}, 3);
|
||||
settimer(func() { me.checkOil }, 8);
|
||||
},
|
||||
startCommand: func(fast = 0) {
|
||||
|
||||
if (me.listenSignals and (me.state == 1 or me.state == 2)) {
|
||||
me.signals.startInProgress.setValue(1);
|
||||
me.setState(3);
|
||||
checkApuStartTimer.start();
|
||||
me.fastStart = fast;
|
||||
}
|
||||
},
|
||||
getStopSignal: func() {
|
||||
if (me.listenSignals) {
|
||||
me.cancelCheckFlap = 1;
|
||||
checkApuStart: func() {
|
||||
if (me.fastStart) {
|
||||
me.inletFlap.setpos(1);
|
||||
}
|
||||
if (pts.APU.rpm.getValue() < 7 and me.fuelValvePos.getValue() and me.inletFlapPos.getValue() == 1 and me.signals.oilTestComplete and !me.warnings.lowOilLevel) {
|
||||
me.setState(4);
|
||||
me.listenStopSignal = 1;
|
||||
checkApuStartTimer.stop();
|
||||
me.startSequence();
|
||||
}
|
||||
},
|
||||
startSequence: func() {
|
||||
me.GenericControls.starter.setValue(1);
|
||||
apuStartTimer.start();
|
||||
},
|
||||
waitStart: func() {
|
||||
if (pts.APU.rpm.getValue() >= 4.9) {
|
||||
me.GenericControls.cutoff.setValue(0);
|
||||
if (me.fastStart) {
|
||||
setprop("/fdm/jsbsim/propulsion/set-running", 2);
|
||||
}
|
||||
apuStartTimer.stop();
|
||||
apuStartTimer2.start();
|
||||
}
|
||||
},
|
||||
waitStart2: func() {
|
||||
if (pts.APU.rpm.getValue() >= 99.9) {
|
||||
me.GenericControls.starter.setValue(0);
|
||||
me.signals.startInProgress.setValue(0);
|
||||
me.signals.available.setValue(1);
|
||||
me.setState(5);
|
||||
apuStartTimer2.stop();
|
||||
}
|
||||
},
|
||||
cooldown: func() {
|
||||
if (APUNodes.Controls.master.getValue()) {
|
||||
cooldownTimer.stop();
|
||||
me.setState(5);
|
||||
return;
|
||||
}
|
||||
if (pts.Sim.Time.elapsedSec.getValue() >= me.cooldownEndTime) {
|
||||
cooldownTimer.stop();
|
||||
me.stopAPU();
|
||||
me.setState(7);
|
||||
shutdownTimer.start();
|
||||
}
|
||||
},
|
||||
shutdown: func() {
|
||||
if (!me.signals.autoshutdown and APUNodes.Controls.master.getValue()) {
|
||||
me.powerOn();
|
||||
return;
|
||||
}
|
||||
|
||||
me.GenericControls.cutoff.setValue(1);
|
||||
me.GenericControls.starter.setValue(0);
|
||||
|
||||
if (!me.signals.autoshutdown and pts.APU.rpm.getValue() < 95 and me.signals.available.getValue()) {
|
||||
me.signals.available.setValue(0);
|
||||
}
|
||||
if (me.signals.autoshutdown and (me.signals.available.getValue() or !me.signals.fault.getValue())) {
|
||||
me.signals.available.setValue(0);
|
||||
me.signals.fault.setValue(1);
|
||||
}
|
||||
|
||||
if (pts.APU.rpm.getValue() < 7 and !APUNodes.Controls.master.getValue()) {
|
||||
me.inletFlap.close();
|
||||
# wait for flap close --> power down relay output
|
||||
me.fuelValveCmd.setValue(0);
|
||||
if (!APUNodes.Controls.master.getValue()) {
|
||||
me.setState(0);
|
||||
me.resetStuff();
|
||||
shutdownTimer.stop();
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
# Signal generators / receivers
|
||||
stop: func() {
|
||||
if (me.listenStopSignal and me.state == 4) {
|
||||
me.signals.startInProgress.setValue(0);
|
||||
me.stopAPU();
|
||||
me.setState(7);
|
||||
shutdownTimer.start();
|
||||
} else {
|
||||
if (me.signals.bleedWasUsed) {
|
||||
if (me.bleedTime == 0) { me.shutBleed(); }
|
||||
if (120 - (pts.Sim.Time.elapsedSec.getValue() - me.bleedTime) > 0) {
|
||||
me.cooldownEndTime = me.bleedTime + 120;
|
||||
me.setState(6);
|
||||
cooldownTimer.start();
|
||||
} else {
|
||||
me.stopAPU();
|
||||
me.setState(7);
|
||||
shutdownTimer.start();
|
||||
}
|
||||
} else {
|
||||
me.stopAPU();
|
||||
me.setState(7);
|
||||
shutdownTimer.start();
|
||||
}
|
||||
}
|
||||
},
|
||||
autoStop: func() {
|
||||
if (me.state >= 4) {
|
||||
checkApuStartTimer.stop();
|
||||
apuStartTimer.stop();
|
||||
apuStartTimer2.stop();
|
||||
cooldownTimer.stop();
|
||||
me.stopAPU();
|
||||
me.setState(7);
|
||||
shutdownTimer.start();
|
||||
me.signals.autoshutdown = 1;
|
||||
me.signals.fault.setValue(1);
|
||||
} else {
|
||||
checkApuStartTimer.stop();
|
||||
me.inletFlap.close();
|
||||
me.fuelValveCmd.setValue(0);
|
||||
me.signals.autoshutdown = 1;
|
||||
me.signals.fault.setValue(1);
|
||||
me.setState(0);
|
||||
}
|
||||
},
|
||||
emergencyStop: func() {
|
||||
me.signals.emer = 1;
|
||||
if (me.listenSignals and (me.state < 4)) {
|
||||
checkApuStartTimer.stop();
|
||||
me.inletFlap.close();
|
||||
me.fuelValveCmd.setValue(0);
|
||||
me.signals.autoshutdown = 1;
|
||||
me.signals.fault.setValue(1);
|
||||
me.setState(0);
|
||||
} elsif (me.state >= 4) {
|
||||
me.fuelValveCmd.setValue(0);
|
||||
me.autoStop();
|
||||
}
|
||||
},
|
||||
|
||||
# Functions
|
||||
stopAPU: func() {
|
||||
me.GenericControls.cutoff.setValue(1);
|
||||
},
|
||||
shutBleed: func() {
|
||||
APUNodes.Controls.bleed.setValue(0);
|
||||
me.bleedTime = pts.Sim.Time.elapsedSec.getValue();
|
||||
},
|
||||
update: func() {
|
||||
if (me.state == 5 and APUNodes.Oil.pressure.getValue() < 35 or APUNodes.Oil.temperature.getValue() > 135) {
|
||||
me.autoStop();
|
||||
}
|
||||
|
||||
if (systems.ELEC.Bus.dcBat.getValue() < 25) {
|
||||
if (me.GenericControls.starter.getValue()) {
|
||||
me.GenericControls.starter.setValue(0);
|
||||
}
|
||||
if (me.state != 0) {
|
||||
me.autoStop();
|
||||
me.resetStuff();
|
||||
}
|
||||
}
|
||||
},
|
||||
};
|
||||
|
@ -57,11 +276,65 @@ var APUController = {
|
|||
init: func() {
|
||||
if (!me._init) {
|
||||
me.APU = APU.new();
|
||||
me._init = 1;
|
||||
}
|
||||
},
|
||||
loop: func() {
|
||||
if (me.APU != nil) {
|
||||
APU.update();
|
||||
if (me._init) {
|
||||
me.APU.update();
|
||||
}
|
||||
},
|
||||
};
|
||||
}
|
||||
};
|
||||
|
||||
var _masterTime = 0;
|
||||
setlistener("controls/apu/master", func() {
|
||||
if (APUController.APU != nil) {
|
||||
if (APUNodes.Controls.master.getValue() and APUController.APU.state == 0) {
|
||||
shutdownTimer.stop();
|
||||
APUNodes.masterElecThreeMin.setValue(1);
|
||||
checkMasterThreeMinTimer.start();
|
||||
_masterTime = pts.Sim.Time.elapsedSec.getValue();
|
||||
APUController.APU.powerOn();
|
||||
} elsif (!APUNodes.Controls.master.getValue()) {
|
||||
APUController.APU.stop();
|
||||
}
|
||||
}
|
||||
}, 0, 0);
|
||||
|
||||
setlistener("controls/pneumatic/switches/bleedapu", func() {
|
||||
if (APUController.APU != nil) {
|
||||
if (APUNodes.Controls.bleed.getValue()) {
|
||||
APUController.APU.signals.bleedWasUsed = 1;
|
||||
} else {
|
||||
APUController.APU.bleedTime = pts.Sim.Time.elapsedSec.getValue();
|
||||
}
|
||||
}
|
||||
}, 0, 0);
|
||||
|
||||
var checkMasterThreeMinTimer = maketimer(0.1, func() {
|
||||
if (!APUNodes.Controls.master.getValue()) {
|
||||
APUNodes.masterElecThreeMin.setValue(0);
|
||||
checkMasterThreeMinTimer.stop();
|
||||
return;
|
||||
}
|
||||
|
||||
if (pts.Sim.Time.elapsedSec.getValue() >= _masterTime + 180) {
|
||||
APUNodes.masterElecThreeMin.setValue(0);
|
||||
checkMasterThreeMinTimer.stop();
|
||||
}
|
||||
});
|
||||
var checkApuStartTimer = maketimer(0.1, func() {
|
||||
APUController.APU.checkApuStart();
|
||||
});
|
||||
var apuStartTimer = maketimer(0.1, func() {
|
||||
APUController.APU.waitStart();
|
||||
});
|
||||
var apuStartTimer2 = maketimer(0.1, func() {
|
||||
APUController.APU.waitStart2();
|
||||
});
|
||||
var cooldownTimer = maketimer(0.1, func() {
|
||||
APUController.APU.cooldown();
|
||||
});
|
||||
var shutdownTimer = maketimer(0.1, func() {
|
||||
APUController.APU.shutdown();
|
||||
});
|
|
@ -9,95 +9,10 @@ if (getprop("options/eng") == "IAE") {
|
|||
io.include("engines-cfm.nas");
|
||||
}
|
||||
|
||||
var spinup_time = 49;
|
||||
var apu_max = 100;
|
||||
var apu_egt_min = 352;
|
||||
var apu_egt_max = 704;
|
||||
setprop("systems/apu/rpm", 0);
|
||||
setprop("systems/apu/egt", 42);
|
||||
setprop("systems/apu/bleed-used", 0);
|
||||
setprop("systems/apu/bleed-counting", 0);
|
||||
setprop("systems/apu/bleed-time", 0);
|
||||
|
||||
var eng_common_init = func {
|
||||
setprop("systems/apu/bleed-used", 0);
|
||||
# nada
|
||||
}
|
||||
|
||||
# Start APU
|
||||
setlistener("/controls/APU/start", func {
|
||||
if (getprop("controls/APU/master") == 1 and getprop("controls/APU/start") == 1) {
|
||||
apuBleedChk.stop();
|
||||
setprop("systems/apu/bleed-counting", 0);
|
||||
if (getprop("systems/acconfig/autoconfig-running") == 0) {
|
||||
interpolate("/systems/apu/rpm", apu_max, spinup_time);
|
||||
apu_egt_check.start();
|
||||
} else if (getprop("systems/acconfig/autoconfig-running") == 1) {
|
||||
interpolate("/systems/apu/rpm", apu_max, 5);
|
||||
interpolate("/systems/apu/egt", apu_egt_min, 5);
|
||||
}
|
||||
} else if (getprop("controls/APU/master") == 0) {
|
||||
apu_egt_check.stop();
|
||||
apu_stop();
|
||||
}
|
||||
});
|
||||
|
||||
var apu_egt_check = maketimer(0.5, func {
|
||||
if (getprop("systems/apu/rpm") >= 28) {
|
||||
apu_egt_check.stop();
|
||||
interpolate("/systems/apu/egt", apu_egt_max, 5);
|
||||
apu_egt2_check.start();
|
||||
}
|
||||
});
|
||||
|
||||
var apu_egt2_check = maketimer(0.5, func {
|
||||
if (getprop("systems/apu/egt") >= 701) {
|
||||
apu_egt2_check.stop();
|
||||
interpolate("/systems/apu/egt", apu_egt_min, 30);
|
||||
}
|
||||
});
|
||||
|
||||
# Stop APU
|
||||
setlistener("/controls/APU/master", func {
|
||||
if (getprop("controls/APU/master") == 0) {
|
||||
setprop("controls/APU/start", 0);
|
||||
apu_egt_check.stop();
|
||||
apu_egt2_check.stop();
|
||||
apu_stop();
|
||||
} else if (getprop("controls/APU/master") == 1) {
|
||||
apuBleedChk.stop();
|
||||
setprop("systems/apu/bleed-counting", 0);
|
||||
setprop("systems/apu/bleed-used", 0);
|
||||
}
|
||||
});
|
||||
|
||||
var apu_stop = func {
|
||||
if (getprop("systems/apu/bleed-used") == 1 and getprop("systems/apu/bleed-counting") != 1 and getprop("systems/acconfig/autoconfig-running") != 1) {
|
||||
setprop("systems/apu/bleed-counting", 1);
|
||||
setprop("systems/apu/bleed-time", getprop("sim/time/elapsed-sec"));
|
||||
}
|
||||
if (getprop("systems/apu/bleed-used") == 1 and getprop("systems/apu/bleed-counting") == 1 and getprop("systems/acconfig/autoconfig-running") != 1) {
|
||||
apuBleedChk.start();
|
||||
} else {
|
||||
apuBleedChk.stop();
|
||||
interpolate("/systems/apu/rpm", 0, 30);
|
||||
interpolate("/systems/apu/egt", 42, 40);
|
||||
setprop("systems/apu/bleed-counting", 0);
|
||||
setprop("systems/apu/bleed-used", 0);
|
||||
}
|
||||
}
|
||||
|
||||
var apuBleedChk = maketimer(0.1, func {
|
||||
if (getprop("systems/apu/bleed-used") == 1 and getprop("systems/apu/bleed-counting") == 1) {
|
||||
if (getprop("systems/apu/bleed-time") + 60 <= getprop("sim/time/elapsed-sec")) {
|
||||
apuBleedChk.stop();
|
||||
interpolate("/systems/apu/rpm", 0, 30);
|
||||
interpolate("/systems/apu/egt", 42, 40);
|
||||
setprop("systems/apu/bleed-counting", 0);
|
||||
setprop("systems/apu/bleed-used", 0);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
# Various Other Stuff
|
||||
var doIdleThrust = func {
|
||||
# Idle does not respect selected engines, because it is used to respond
|
||||
|
|
|
@ -22,7 +22,6 @@ var eng2Inop = props.globals.initNode("/systems/fire/engine2/det-inop", 0, "BOOL
|
|||
var apuInop = props.globals.initNode("/systems/fire/apu/det-inop", 0, "BOOL");
|
||||
var aftCargoFireWarn = props.globals.initNode("/systems/fire/cargo/aft/warning-active", 0, "BOOL");
|
||||
var fwdCargoFireWarn = props.globals.initNode("/systems/fire/cargo/fwd/warning-active", 0, "BOOL");
|
||||
var apuEmerShutdown = props.globals.getNode("systems/apu/emer-shutdown", 1);
|
||||
var eng1AgentTimer = props.globals.initNode("/systems/fire/engine1/agent1-timer", 99, "INT");
|
||||
var eng2AgentTimer = props.globals.initNode("/systems/fire/engine2/agent1-timer", 99, "INT");
|
||||
var eng1Agent2Timer = props.globals.initNode("/systems/fire/engine1/agent2-timer", 99, "INT");
|
||||
|
@ -37,7 +36,7 @@ var wow = props.globals.getNode("fdm/jsbsim/position/wow", 1);
|
|||
var dcbatNode = props.globals.getNode("systems/electrical/bus/dc-bat", 1);
|
||||
var dcessNode = props.globals.getNode("systems/electrical/bus/dc-ess", 1);
|
||||
var apuBleedNode = props.globals.getNode("systems/apu/bleed-used", 1);
|
||||
var apuMaster = props.globals.getNode("controls/APU/master", 1);
|
||||
var apuMaster = props.globals.getNode("controls/apu/master", 1);
|
||||
|
||||
var fire_init = func {
|
||||
setprop("controls/OH/protectors/fwddisch", 0);
|
||||
|
@ -180,18 +179,11 @@ var engFireDetectorUnit = {
|
|||
} elsif (system == 2) {
|
||||
apuFireWarn.setBoolValue(1);
|
||||
if (me.wow.getValue() == 1) {
|
||||
if (apuMaster.getBoolValue()) {
|
||||
apuBleedNode.setValue(0);
|
||||
systems.apu_stop();
|
||||
apuEmerShutdown.setBoolValue(1);
|
||||
settimer(func() { # 3 sec delay - source TTM ATA 26 FIRE PROTECTION p102
|
||||
extinguisherBottles.vector[4].discharge();
|
||||
}, 3);
|
||||
} else {
|
||||
settimer(func() {
|
||||
extinguisherBottles.vector[4].discharge();
|
||||
}, 3);
|
||||
}
|
||||
apuBleedNode.setValue(0);
|
||||
systems.APUController.APU.emergencyStop();
|
||||
settimer(func() { # 3 sec delay - source TTM ATA 26 FIRE PROTECTION p102
|
||||
extinguisherBottles.vector[4].discharge();
|
||||
}, 3);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -645,9 +637,11 @@ eng2Agent2TimerMakeTimerFunc = func() {
|
|||
}
|
||||
}
|
||||
|
||||
setlistener("/controls/APU/fire-btn", func() {
|
||||
if (getprop("controls/APU/fire-btn") == 1) {
|
||||
setlistener("/controls/apu/fire-btn", func() {
|
||||
if (getprop("controls/apu/fire-btn") == 1) {
|
||||
ecam.shutUpYou();
|
||||
apuBleedNode.setValue(0);
|
||||
systems.APUController.APU.emergencyStop();
|
||||
apuAgentTimerMakeTimer.stop();
|
||||
apuAgentTimer.setValue(10);
|
||||
apuAgentTimerTime.setValue(elapsedTime.getValue() + 11);
|
||||
|
@ -790,7 +784,7 @@ createFireBottleListener("/controls/engines/engine[0]/agent1-btn", "/controls/en
|
|||
createFireBottleListener("/controls/engines/engine[0]/agent2-btn", "/controls/engines/engine[0]/fire-btn", 1);
|
||||
createFireBottleListener("/controls/engines/engine[1]/agent1-btn", "/controls/engines/engine[1]/fire-btn", 2);
|
||||
createFireBottleListener("/controls/engines/engine[1]/agent2-btn", "/controls/engines/engine[1]/fire-btn", 3);
|
||||
createFireBottleListener("/controls/APU/agent-btn", "/controls/APU/fire-btn", 4);
|
||||
createFireBottleListener("/controls/apu/agent-btn", "/controls/apu/fire-btn", 4);
|
||||
createCargoFireBottleListener("/controls/fire/cargo/aftdisch", 0);
|
||||
createCargoFireBottleListener("/controls/fire/cargo/fwddisch", 1);
|
||||
|
||||
|
|
|
@ -27,6 +27,7 @@ var FUEL = {
|
|||
allOff: props.globals.getNode("systems/fuel/pumps/all-eng-pump-off"),
|
||||
},
|
||||
Valves: {
|
||||
apu: props.globals.getNode("systems/fuel/valves/apu-lp-valve"),
|
||||
crossfeed: props.globals.getNode("systems/fuel/valves/crossfeed-valve"),
|
||||
lpValve1: props.globals.getNode("systems/fuel/valves/engine-1-lp-valve"),
|
||||
lpValve2: props.globals.getNode("systems/fuel/valves/engine-2-lp-valve"),
|
||||
|
|
|
@ -178,7 +178,7 @@ var PNEU = {
|
|||
eng2_starter = getprop("systems/pneumatic/eng2-starter");
|
||||
groundair = getprop("systems/pneumatic/groundair");
|
||||
groundair_supp = getprop("controls/pneumatic/switches/groundair");
|
||||
rpmapu = getprop("systems/apu/rpm");
|
||||
rpmapu = getprop("engines/engine[2]/n1");
|
||||
stateL = getprop("engines/engine[0]/state");
|
||||
stateR = getprop("engines/engine[1]/state");
|
||||
bleedapu_fail = getprop("systems/failures/bleed-apu");
|
||||
|
@ -196,7 +196,7 @@ var PNEU = {
|
|||
# Air Sources/PSI
|
||||
if (rpmapu >= 94.9 and bleedapu_sw and !bleedapu_fail) {
|
||||
setprop("systems/pneumatic/bleedapu", 34);
|
||||
if (getprop("controls/APU/master") == 1) {
|
||||
if (getprop("controls/apu/master") == 1) {
|
||||
setprop("systems/apu/bleed-used", 1);
|
||||
}
|
||||
} else {
|
||||
|
|
|
@ -25,6 +25,8 @@ var default = [
|
|||
"/consumables/fuel/tank[2]/level-lbs",
|
||||
"/consumables/fuel/tank[3]/level-lbs",
|
||||
"/consumables/fuel/tank[4]/level-lbs",
|
||||
# apu oil
|
||||
"/systems/apu/oil/level-l",
|
||||
# CONTROLS
|
||||
# rmp
|
||||
"/controls/radio/rmp[0]/on",
|
||||
|
|
|
@ -10,12 +10,12 @@
|
|||
<property>/sim/current-view/internal</property>
|
||||
</condition>
|
||||
<volume>
|
||||
<property>/systems/apu/rpm</property>
|
||||
<property>/engines/engine[2]/n1</property>
|
||||
<factor>0.005</factor>
|
||||
<max>0.25</max>
|
||||
</volume>
|
||||
<pitch>
|
||||
<property>/systems/apu/rpm</property>
|
||||
<property>/engines/engine[2]/n1</property>
|
||||
<factor>0.05</factor>
|
||||
<offset>-2</offset>
|
||||
</pitch>
|
||||
|
@ -29,11 +29,11 @@
|
|||
<not><property>/sim/current-view/internal</property></not>
|
||||
</condition>
|
||||
<volume>
|
||||
<property>/systems/apu/rpm</property>
|
||||
<property>/engines/engine[2]/n1</property>
|
||||
<factor>0.005</factor>
|
||||
</volume>
|
||||
<pitch>
|
||||
<property>/systems/apu/rpm</property>
|
||||
<property>/engines/engine[2]/n1</property>
|
||||
<factor>0.01</factor>
|
||||
</pitch>
|
||||
<reference-dist>60</reference-dist>
|
||||
|
|
187
Systems/a320-apu.xml
Normal file
187
Systems/a320-apu.xml
Normal file
|
@ -0,0 +1,187 @@
|
|||
<!-- Airbus A320 APU -->
|
||||
|
||||
<!-- Copyright (c) 2020 Jonathan Redpath -->
|
||||
|
||||
<system name="A320: APU">
|
||||
|
||||
<channel name="APU">
|
||||
<!-- bleed 1.8 kg / sec @ 42 psig -->
|
||||
<!-- fuel 148 kg/hr -->
|
||||
<!-- generator 24034 rpm, 10129 rpm fuel ctl, 32045 rpm starter, 51965 rpm cooling, 4137rpm oil pump -->
|
||||
|
||||
<fcs_function name="/systems/apu/bleed-load-kw">
|
||||
<function>
|
||||
<ifthen>
|
||||
<eq>
|
||||
<property>/controls/pneumatic/switches/bleedapu</property>
|
||||
<value>1</value>
|
||||
</eq>
|
||||
<value>252</value>
|
||||
<value>0</value>
|
||||
</ifthen>
|
||||
</function>
|
||||
</fcs_function>
|
||||
|
||||
|
||||
<fcs_function name="/systems/apu/electrical-load-kw">
|
||||
<function>
|
||||
<ifthen>
|
||||
<gt>
|
||||
<property>/systems/electrical/relay/apu-glc/output</property>
|
||||
<value>110</value>
|
||||
</gt>
|
||||
<value>132</value>
|
||||
<value>0</value>
|
||||
</ifthen>
|
||||
</function>
|
||||
</fcs_function>
|
||||
|
||||
<fcs_function name="/systems/apu/apu-load-cmd">
|
||||
<function>
|
||||
<quotient>
|
||||
<sum>
|
||||
<property>/systems/apu/electrical-load-kw</property>
|
||||
<property>/systems/apu/bleed-load-kw</property>
|
||||
</sum>
|
||||
<value>400</value>
|
||||
</quotient>
|
||||
</function>
|
||||
</fcs_function>
|
||||
|
||||
<actuator name="/systems/apu/apu-load">
|
||||
<input>/systems/apu/apu-load-cmd</input>
|
||||
<rate_limit>0.01</rate_limit> <!-- 60 seconds cooling period for bleed which is ~ 60% -->
|
||||
</actuator>
|
||||
|
||||
<washout_filter name="/systems/apu/dn-dt">
|
||||
<input>/engines/engine[2]/n1</input>
|
||||
<c1>1</c1>
|
||||
</washout_filter>
|
||||
|
||||
<fcs_function name="/systems/apu/egt-degC">
|
||||
<function>
|
||||
<sum>
|
||||
<product>
|
||||
<property>/systems/apu/apu-load</property>
|
||||
<value>50</value>
|
||||
</product>
|
||||
<ifthen>
|
||||
<or>
|
||||
<lt>
|
||||
<property>/engines/engine[2]/n1</property>
|
||||
<value>0.5</value>
|
||||
</lt>
|
||||
<gt>
|
||||
<property>/systems/apu/dn-dt</property>
|
||||
<value>0</value>
|
||||
</gt>
|
||||
</or>
|
||||
<table>
|
||||
<independentVar lookup="row">/engines/engine[2]/n1</independentVar>
|
||||
<tableData>
|
||||
5.0 20.0
|
||||
8.0 45.0
|
||||
10.0 120.0
|
||||
12.0 225.0
|
||||
18.0 430.0
|
||||
25.0 500.0
|
||||
27.0 560.0
|
||||
30.0 720.0
|
||||
35.0 785.0
|
||||
40.0 800.0
|
||||
45.0 795.0
|
||||
50.0 785.0
|
||||
60.0 755.0
|
||||
75.0 645.0
|
||||
90.0 520.0
|
||||
100.0 415.0
|
||||
</tableData>
|
||||
</table>
|
||||
<table>
|
||||
<independentVar lookup="row">/engines/engine[2]/n1</independentVar>
|
||||
<tableData>
|
||||
2.0 200.0
|
||||
8.0 220.0
|
||||
12.0 225.0
|
||||
18.0 240.0
|
||||
30.0 250.0
|
||||
50.0 265.0
|
||||
60.0 295.0
|
||||
75.0 380.0
|
||||
90.0 410.0
|
||||
100.0 415.0
|
||||
</tableData>
|
||||
</table>
|
||||
</ifthen>
|
||||
</sum>
|
||||
</function>
|
||||
</fcs_function>
|
||||
|
||||
<fcs_function name="/systems/apu/oil/oil-pressure-psi">
|
||||
<function>
|
||||
<table>
|
||||
<independentVar lookup="row">/engines/engine[2]/n1</independentVar>
|
||||
<independentVar lookup="column">/systems/apu/oil/level-l</independentVar>
|
||||
<tableData>
|
||||
0 3.6 5.4
|
||||
8 0 0 0
|
||||
12 0 1 10
|
||||
18 0 5 22
|
||||
30 0 22 41
|
||||
50 0 25 45
|
||||
60 0 28 48
|
||||
75 0 33 52
|
||||
90 0 35 54
|
||||
100 0 36 55
|
||||
</tableData>
|
||||
</table>
|
||||
</function>
|
||||
</fcs_function>
|
||||
|
||||
<fcs_function name="/systems/apu/oil/oil-temperature-degC">
|
||||
<function>
|
||||
<product>
|
||||
<sum>
|
||||
<value>1.0</value> <!-- tune -->
|
||||
<product>
|
||||
<property>/systems/apu/apu-load</property>
|
||||
<value>0.3</value>
|
||||
</product>
|
||||
</sum>
|
||||
<table>
|
||||
<independentVar lookup="row">/systems/apu/oil/oil-pressure-psi</independentVar>
|
||||
<tableData>
|
||||
0 0
|
||||
25 135
|
||||
35 105
|
||||
55 85
|
||||
</tableData>
|
||||
</table>
|
||||
<quotient>
|
||||
<property>/engines/engine[2]/n1</property>
|
||||
<value>100</value>
|
||||
</quotient>
|
||||
</product>
|
||||
</function>
|
||||
</fcs_function>
|
||||
|
||||
<fcs_function name="/systems/apu/oil/calc-oil-level">
|
||||
<function>
|
||||
<sum>
|
||||
<property>/systems/apu/oil/level-l</property>
|
||||
<product>
|
||||
<quotient>
|
||||
<property>/engines/engine[2]/n1</property>
|
||||
<value>100</value>
|
||||
</quotient>
|
||||
<property>/systems/apu/oil/allow-oil-consumption</property>
|
||||
<value>-0.00000131437</value>
|
||||
<property>simulation/channel-dt</property>
|
||||
</product>
|
||||
</sum>
|
||||
</function>
|
||||
<output>/systems/apu/oil/level-l</output>
|
||||
</fcs_function>
|
||||
</channel>
|
||||
|
||||
</system>
|
|
@ -232,14 +232,14 @@
|
|||
|
||||
<!-- APU gen -->
|
||||
<pure_gain name="/systems/electrical/sources/apu/drive-rpm-input">
|
||||
<input>/systems/apu/rpm</input>
|
||||
<gain>240</gain>
|
||||
<input>/engines/engine[2]/n1</input>
|
||||
<gain>240.34</gain>
|
||||
</pure_gain>
|
||||
|
||||
<switch name="/systems/electrical/sources/apu/working">
|
||||
<default value="1"/>
|
||||
<test logic="OR" value="0">
|
||||
/controls/APU/fire-btn eq 1
|
||||
/controls/apu/fire-btn eq 1
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
|
@ -525,7 +525,7 @@
|
|||
<switch name="/systems/electrical/relay/apu-glc/contact-pos">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/controls/APU/master eq 1
|
||||
/controls/apu/master eq 1
|
||||
/controls/electrical/switches/apu eq 1
|
||||
/systems/electrical/sources/apu/output-volt ge 110
|
||||
/systems/electrical/sources/apu/output-volt lt 130
|
||||
|
@ -1205,13 +1205,22 @@
|
|||
/systems/electrical/relay/dc-bus-tie-dc-2/contact-pos eq 1
|
||||
/systems/electrical/bus/dc-2-src ne 2
|
||||
</test>
|
||||
<test value="3"> <!-- BAT -->
|
||||
/instrumentation/airspeed-indicator/indicated-speed-kt lt 50
|
||||
<test logic="OR">
|
||||
/controls/electrical/switches/bat-1 eq 1
|
||||
/controls/electrical/switches/bat-2 eq 1
|
||||
<test logic="OR" value="3"> <!-- BAT -->
|
||||
<test logic="AND">
|
||||
/instrumentation/airspeed-indicator/indicated-speed-kt lt 50
|
||||
<test logic="OR">
|
||||
/controls/electrical/switches/bat-1 eq 1
|
||||
/controls/electrical/switches/bat-2 eq 1
|
||||
</test>
|
||||
/systems/electrical/some-electric-thingie/emer-elec-config eq 1
|
||||
</test>
|
||||
<test logic="AND">
|
||||
<test logic="OR">
|
||||
/controls/electrical/switches/bat-1 eq 1
|
||||
/controls/electrical/switches/bat-2 eq 1
|
||||
</test>
|
||||
/systems/apu/dc-bat-three-minutes eq 1
|
||||
</test>
|
||||
/systems/electrical/some-electric-thingie/emer-elec-config eq 1
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
|
@ -1228,19 +1237,35 @@
|
|||
/systems/electrical/relay/dc-bus-tie-dc-2/contact-pos eq 1
|
||||
/systems/electrical/bus/dc-2-src ne 2
|
||||
</test>
|
||||
<test logic="AND" value="/systems/electrical/sources/bat-1/volt">
|
||||
/instrumentation/airspeed-indicator/indicated-speed-kt lt 50
|
||||
/controls/electrical/switches/bat-1 eq 1
|
||||
/systems/electrical/bus/dc-bat-src eq 3
|
||||
/systems/electrical/sources/bat-1/volt ge 25
|
||||
/systems/electrical/some-electric-thingie/emer-elec-config eq 1
|
||||
<test logic="OR" value="/systems/electrical/sources/bat-1/volt">
|
||||
<test logic="AND">
|
||||
/instrumentation/airspeed-indicator/indicated-speed-kt lt 50
|
||||
/controls/electrical/switches/bat-1 eq 1
|
||||
/systems/electrical/bus/dc-bat-src eq 3
|
||||
/systems/electrical/sources/bat-1/volt ge 25
|
||||
/systems/electrical/some-electric-thingie/emer-elec-config eq 1
|
||||
</test>
|
||||
<test logic="AND">
|
||||
/systems/apu/dc-bat-three-minutes eq 1
|
||||
/controls/electrical/switches/bat-1 eq 1
|
||||
/systems/electrical/bus/dc-bat-src eq 3
|
||||
/systems/electrical/sources/bat-1/volt ge 25
|
||||
</test>
|
||||
</test>
|
||||
<test logic="AND" value="/systems/electrical/sources/bat-2/volt">
|
||||
/instrumentation/airspeed-indicator/indicated-speed-kt lt 50
|
||||
/controls/electrical/switches/bat-2 eq 1
|
||||
/systems/electrical/bus/dc-bat-src eq 3
|
||||
/systems/electrical/sources/bat-2/volt ge 25
|
||||
/systems/electrical/some-electric-thingie/emer-elec-config eq 1
|
||||
<test logic="OR" value="/systems/electrical/sources/bat-2/volt">
|
||||
<test logic="AND">
|
||||
/instrumentation/airspeed-indicator/indicated-speed-kt lt 50
|
||||
/controls/electrical/switches/bat-2 eq 1
|
||||
/systems/electrical/bus/dc-bat-src eq 3
|
||||
/systems/electrical/sources/bat-2/volt ge 25
|
||||
/systems/electrical/some-electric-thingie/emer-elec-config eq 1
|
||||
</test>
|
||||
<test logic="AND">
|
||||
/systems/apu/dc-bat-three-minutes eq 1
|
||||
/controls/electrical/switches/bat-2 eq 1
|
||||
/systems/electrical/bus/dc-bat-src eq 3
|
||||
/systems/electrical/sources/bat-2/volt ge 25
|
||||
</test>
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
|
@ -1282,10 +1307,8 @@
|
|||
<test logic="AND" value="1">
|
||||
/systems/electrical/bus/ac-1 lt 110
|
||||
/systems/electrical/bus/ac-2 lt 110
|
||||
/systems/acconfig/autoconfig-running ne 1
|
||||
</test>
|
||||
<test logic="AND" value="1">
|
||||
/systems/acconfig/autoconfig-running ne 1
|
||||
/systems/electrical/relay/ext-epc/contact-pos eq 0
|
||||
<test logic="OR">
|
||||
/controls/electrical/switches/gen-1 eq 0
|
||||
|
@ -1298,7 +1321,7 @@
|
|||
<test logic="OR">
|
||||
/controls/electrical/switches/apu eq 0
|
||||
/systems/failures/electrical/apu eq 1
|
||||
/systems/apu/rpm lt 94.9
|
||||
/engines/engine[2]/n1 lt 94.9
|
||||
</test>
|
||||
</test>
|
||||
</switch>
|
||||
|
|
|
@ -12,8 +12,8 @@
|
|||
<test logic="AND" value="1">
|
||||
/systems/fuel/pumps/all-eng-pump-off eq 1
|
||||
<test logic="OR">
|
||||
/systems/electrical/bus/ac-ess-shed ge 110
|
||||
/systems/electrical/bus/ac-si-bus ge 110
|
||||
/systems/electrical/bus/ac-ess-shed ge 110 <!-- TODO 2QC breaker -->
|
||||
/systems/electrical/bus/ac-si-bus ge 110 <!-- TODO 1QC breaker -->
|
||||
</test>
|
||||
</test>
|
||||
</switch>
|
||||
|
@ -309,19 +309,11 @@
|
|||
<rate_limit>/systems/fuel/valves/engine-2-lp-valve-power</rate_limit>
|
||||
</actuator>
|
||||
|
||||
<switch name="/systems/fuel/valves/apu-lp-valve-cmd">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/controls/APU/master eq 1
|
||||
/controls/APU/fire-btn eq 0
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/systems/fuel/valves/apu-lp-valve-power">
|
||||
<default value="0"/>
|
||||
<test logic="OR" value="1.0">
|
||||
/systems/electrical/bus/dc-bat ge 25
|
||||
/systems/electrical/bus/dc-hot-1 ge 25
|
||||
/systems/electrical/bus/dc-bat ge 25 <!-- 4WF -->
|
||||
/systems/electrical/bus/dc-hot-1 ge 25 <!-- 3WF -->
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
|
@ -462,6 +454,14 @@
|
|||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/systems/fuel/apu-feed-pump">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="1">
|
||||
/systems/fuel/pumps/apu-operate eq 1
|
||||
/systems/fuel/valves/apu-lp-valve eq 1
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<!-- Refuel system -->
|
||||
<switch name="/systems/fuel/internal/left-outer-wing-tank-refuel">
|
||||
<default value="0"/>
|
||||
|
@ -537,6 +537,24 @@
|
|||
</switch>
|
||||
|
||||
<!-- Feed system -->
|
||||
|
||||
<switch name="/systems/fuel/internal/apu-source"> <!-- this only when all pumps off -->
|
||||
<default value="0"/> <!-- no fuel -->
|
||||
<test logic="AND" value="2"> <!-- center preferentially, higher psi -->
|
||||
/systems/fuel/apu-feed-pump eq 1
|
||||
/consumables/fuel/tank[2]/level-gal_us gt /consumables/fuel/tank[2]/unusable-gal_us
|
||||
</test>
|
||||
<test logic="AND" value="1"> <!-- left -->
|
||||
/systems/fuel/apu-feed-pump eq 1
|
||||
/consumables/fuel/tank[1]/level-gal_us gt /consumables/fuel/tank[1]/unusable-gal_us
|
||||
</test>
|
||||
<test logic="AND" value="3"> <!-- right -->
|
||||
/systems/fuel/apu-feed-pump eq 1
|
||||
/systems/fuel/valves/crossfeed-valve eq 1
|
||||
/consumables/fuel/tank[3]/level-gal_us gt /consumables/fuel/tank[3]/unusable-gal_us
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/systems/fuel/internal/left-wing-tank-eng-1">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="9">
|
||||
|
@ -568,11 +586,12 @@
|
|||
<switch name="/systems/fuel/internal/right-wing-tank-eng-1">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="9">
|
||||
/systems/fuel/feed-right-inner eq 1
|
||||
<test logic="OR">
|
||||
/systems/fuel/quantity/center-low eq 1
|
||||
/systems/fuel/feed-center-2 eq 0
|
||||
</test>
|
||||
/systems/fuel/feed-left-inner eq 0
|
||||
/systems/fuel/feed-right-inner eq 1
|
||||
/systems/fuel/valves/crossfeed-valve eq 1
|
||||
/consumables/fuel/tank[3]/level-gal_us gt /consumables/fuel/tank[3]/unusable-gal_us
|
||||
propulsion/tank[5]/contents-lbs lt 9
|
||||
|
@ -582,12 +601,13 @@
|
|||
<switch name="/systems/fuel/internal/left-wing-tank-eng-2">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="9">
|
||||
/systems/fuel/valves/crossfeed-valve eq 1
|
||||
<test logic="OR">
|
||||
/systems/fuel/quantity/center-low eq 1
|
||||
/systems/fuel/feed-center-1 eq 0
|
||||
</test>
|
||||
/systems/fuel/feed-left-inner eq 1
|
||||
/systems/fuel/feed-right-inner eq 0
|
||||
/systems/fuel/valves/crossfeed-valve eq 1
|
||||
/consumables/fuel/tank[1]/level-gal_us gt /consumables/fuel/tank[1]/unusable-gal_us
|
||||
propulsion/tank[6]/contents-lbs lt 9
|
||||
</test>
|
||||
|
@ -621,6 +641,57 @@
|
|||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/systems/fuel/internal/left-wing-tank-apu">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="9">
|
||||
<test logic="OR">
|
||||
/systems/fuel/quantity/center-low eq 1
|
||||
/systems/fuel/feed-center-1 eq 0
|
||||
</test>
|
||||
<test logic="OR">
|
||||
/systems/fuel/pumps/wing-pump-left-1-operate eq 1
|
||||
/systems/fuel/pumps/wing-pump-left-2-operate eq 1
|
||||
/systems/fuel/internal/apu-source eq 1
|
||||
</test>
|
||||
/consumables/fuel/tank[1]/level-gal_us gt /consumables/fuel/tank[1]/unusable-gal_us
|
||||
propulsion/tank[7]/contents-lbs lt 9
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/systems/fuel/internal/center-tank-apu">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="9">
|
||||
<test logic="OR">
|
||||
/systems/fuel/feed-center-1 eq 1
|
||||
<test logic="AND">
|
||||
/systems/fuel/feed-center-2 eq 1
|
||||
/systems/fuel/valves/crossfeed-valve eq 1
|
||||
</test>
|
||||
/systems/fuel/internal/apu-source eq 2
|
||||
</test>
|
||||
/consumables/fuel/tank[2]/level-gal_us gt /consumables/fuel/tank[2]/unusable-gal_us
|
||||
propulsion/tank[7]/contents-lbs lt 9
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/systems/fuel/internal/right-wing-tank-apu">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="9">
|
||||
<test logic="OR">
|
||||
/systems/fuel/quantity/center-low eq 1
|
||||
/systems/fuel/feed-center-1 eq 0
|
||||
</test>
|
||||
<test logic="OR">
|
||||
/systems/fuel/pumps/wing-pump-right-1-operate eq 1
|
||||
/systems/fuel/pumps/wing-pump-right-2-operate eq 1
|
||||
/systems/fuel/internal/apu-source eq 3
|
||||
</test>
|
||||
/systems/fuel/valves/crossfeed-valve eq 1
|
||||
/consumables/fuel/tank[3]/level-gal_us gt /consumables/fuel/tank[3]/unusable-gal_us
|
||||
propulsion/tank[7]/contents-lbs lt 9
|
||||
</test>
|
||||
</switch>
|
||||
|
||||
<switch name="/systems/fuel/internal/left-wing-outer-to-inner-tank">
|
||||
<default value="0"/>
|
||||
<test logic="AND" value="/systems/fuel/internal/left-outer-wing-tank-refuel">
|
||||
|
@ -666,6 +737,7 @@
|
|||
<input>/systems/fuel/internal/left-inner-wing-tank-refuel</input>
|
||||
<input>-/systems/fuel/internal/left-wing-tank-eng-1</input>
|
||||
<input>-/systems/fuel/internal/left-wing-tank-eng-2</input>
|
||||
<input>-/systems/fuel/internal/left-wing-tank-apu</input>
|
||||
<output>propulsion/tank[1]/external-flow-rate-pps</output>
|
||||
</summer>
|
||||
|
||||
|
@ -673,6 +745,7 @@
|
|||
<input>/systems/fuel/internal/center-tank-refuel</input>
|
||||
<input>-/systems/fuel/internal/center-tank-eng-1</input>
|
||||
<input>-/systems/fuel/internal/center-tank-eng-2</input>
|
||||
<input>-/systems/fuel/internal/center-tank-apu</input>
|
||||
<output>propulsion/tank[2]/external-flow-rate-pps</output>
|
||||
</summer>
|
||||
|
||||
|
@ -681,6 +754,7 @@
|
|||
<input>/systems/fuel/internal/right-inner-wing-tank-refuel</input>
|
||||
<input>-/systems/fuel/internal/right-wing-tank-eng-1</input>
|
||||
<input>-/systems/fuel/internal/right-wing-tank-eng-2</input>
|
||||
<input>-/systems/fuel/internal/right-wing-tank-apu</input>
|
||||
<output>propulsion/tank[3]/external-flow-rate-pps</output>
|
||||
</summer>
|
||||
|
||||
|
@ -703,6 +777,13 @@
|
|||
<input>/systems/fuel/internal/center-tank-eng-2</input>
|
||||
<output>propulsion/tank[6]/external-flow-rate-pps</output>
|
||||
</summer>
|
||||
|
||||
<summer name="/systems/fuel/internal/apu-flow-rate">
|
||||
<input>/systems/fuel/internal/left-wing-tank-apu</input>
|
||||
<input>/systems/fuel/internal/center-tank-apu</input>
|
||||
<input>//systems/fuel/internal/right-wing-tank-apu</input>
|
||||
<output>propulsion/tank[7]/external-flow-rate-pps</output>
|
||||
</summer>
|
||||
</channel>
|
||||
|
||||
</system>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
<input>
|
||||
<expression>
|
||||
<table>
|
||||
<property>/systems/apu/rpm</property>
|
||||
<property>/engines/engine[2]/n1</property>
|
||||
<entry><ind> 0</ind><dep>-127</dep></entry>
|
||||
<entry><ind>100</ind><dep> 53</dep></entry>
|
||||
<entry><ind>110</ind><dep> 70</dep></entry>
|
||||
|
@ -28,7 +28,7 @@
|
|||
<input>
|
||||
<expression>
|
||||
<table>
|
||||
<property>/systems/apu/egt</property>
|
||||
<property>/systems/apu/egt-degC</property>
|
||||
<entry><ind> 0</ind><dep>-115</dep></entry>
|
||||
<entry><ind> 275</ind><dep>-115</dep></entry>
|
||||
<entry><ind> 300</ind><dep>-108</dep></entry>
|
||||
|
|
Loading…
Reference in a new issue