A32X: Major FDM FCS and Hydraulics reworking, other fixes

This commit is contained in:
Joshua Davidson 2017-12-20 14:58:33 -05:00
parent d181325611
commit e5d90614b4
26 changed files with 957 additions and 1086 deletions

View file

@ -14,13 +14,13 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
<fileheader>
<author>Joshua Davidson (it0uchpods)</author>
<version>Pre V1.0</version>
<description>A3XX FDE</description>
<description>A32X FDE</description>
</fileheader>
<metrics>
<wingarea unit="FT2"> 1319.79 </wingarea>
<wingspan unit="FT" > 111.26 </wingspan>
<wing_incidence> 1.03 </wing_incidence>
<wing_incidence > 1.03 </wing_incidence>
<chord unit="FT" > 13.76 </chord>
<htailarea unit="FT2"> 334.24 </htailarea>
<htailarm unit="FT" > 57.88 </htailarm>
@ -28,7 +28,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
<vtailarm unit="FT" > 57.33 </vtailarm>
<location name="AERORP" unit="M">
<x> 19.3974 </x>
<x> 19.3174 </x>
<y> 0 </y>
<z> 0.19249 </z>
</location>
@ -453,7 +453,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
<system file="fuel" />
<system file="glass-effect1" />
<system file="fmgc" />
<system file="fcs" />
<system file="a320-fcs" />
<flight_control name="none"/>

View file

@ -14,13 +14,13 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
<fileheader>
<author>Joshua Davidson (it0uchpods)</author>
<version>Pre V1.0</version>
<description>A3XX FDE</description>
<description>A32X FDE</description>
</fileheader>
<metrics>
<wingarea unit="FT2"> 1319.79 </wingarea>
<wingspan unit="FT" > 111.26 </wingspan>
<wing_incidence> 1.03 </wing_incidence>
<wing_incidence > 1.03 </wing_incidence>
<chord unit="FT" > 13.76 </chord>
<htailarea unit="FT2"> 334.24 </htailarea>
<htailarm unit="FT" > 57.88 </htailarm>
@ -28,7 +28,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
<vtailarm unit="FT" > 57.33 </vtailarm>
<location name="AERORP" unit="M">
<x> 19.3974 </x>
<x> 19.3174 </x>
<y> 0 </y>
<z> 0.19249 </z>
</location>
@ -453,7 +453,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
<system file="fuel" />
<system file="glass-effect1" />
<system file="fmgc" />
<system file="fcs" />
<system file="a320-fcs" />
<flight_control name="none"/>

View file

@ -14,13 +14,13 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
<fileheader>
<author>Joshua Davidson (it0uchpods)</author>
<version>Pre V1.0</version>
<description>A3XX FDE</description>
<description>A32X FDE</description>
</fileheader>
<metrics>
<wingarea unit="FT2"> 1319.79 </wingarea>
<wingspan unit="FT" > 111.26 </wingspan>
<wing_incidence> 1.03 </wing_incidence>
<wing_incidence > 1.03 </wing_incidence>
<chord unit="FT" > 13.76 </chord>
<htailarea unit="FT2"> 334.24 </htailarea>
<htailarm unit="FT" > 57.88 </htailarm>
@ -28,7 +28,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
<vtailarm unit="FT" > 57.33 </vtailarm>
<location name="AERORP" unit="M">
<x> 19.3974 </x>
<x> 19.3174 </x>
<y> 0 </y>
<z> 0.19249 </z>
</location>
@ -453,7 +453,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
<system file="fuel" />
<system file="glass-effect1" />
<system file="fmgc" />
<system file="fcs" />
<system file="a320-fcs" />
<flight_control name="none"/>

View file

@ -318,6 +318,7 @@
<float n="6" alias="/controls/flight/aileron-left" />
<float n="7" alias="/controls/flight/aileron-right" />
<float n="8" alias="/controls/flight/rudder-fdm" />
<float n="9" alias="/fdm/jsbsim/fcs/pitch-trim-pos-deg" />
<float n="11" alias="/fdm/jsbsim/fcs/slat-pos-norm" />
<int n="2" alias="/controls/lighting/landing-lights[0]" />
<int n="3" alias="/controls/lighting/landing-lights[1]" />
@ -507,12 +508,11 @@
<aileron-input>0</aileron-input>
<aileron-left>0.5</aileron-left>
<aileron-right>-0.5</aileron-right>
<aileron-sum>0.0</aileron-sum>
<elevator-input>0</elevator-input>
<elevator-fbw>0</elevator-fbw>
<elevator-left>0.1</elevator-left>
<elevator-right>0.1</elevator-right>
<elevator-sum>0.2</elevator-sum>
<elevator-trim-fdm>0.0</elevator-trim-fdm>
<flap-pos type="int">0</flap-pos>
<ground-spoilers-armed type="bool">0</ground-spoilers-armed>
<roll-fbw>0</roll-fbw>
@ -531,6 +531,7 @@
<speedbrake-output>0.0</speedbrake-output>
<speedbrake-arm>0</speedbrake-arm>
<speedbrake-lever type="double">0</speedbrake-lever>
<speedbrake-norm>0</speedbrake-norm>
<slats>0</slats>
</flight>
<gear>
@ -656,6 +657,23 @@
</gear>
<systems>
<failures>
<aileron-left type="bool">0</aileron-left>
<aileron-right type="bool">0</aileron-right>
<elevator-left type="bool">0</elevator-left>
<elevator-right type="bool">0</elevator-right>
<rudder type="bool">0</rudder>
<spoiler-l1 type="bool">0</spoiler-l1>
<spoiler-l2 type="bool">0</spoiler-l2>
<spoiler-l3 type="bool">0</spoiler-l3>
<spoiler-l4 type="bool">0</spoiler-l4>
<spoiler-l5 type="bool">0</spoiler-l5>
<spoiler-r1 type="bool">0</spoiler-r1>
<spoiler-r2 type="bool">0</spoiler-r2>
<spoiler-r3 type="bool">0</spoiler-r3>
<spoiler-r4 type="bool">0</spoiler-r4>
<spoiler-r5 type="bool">0</spoiler-r5>
</failures>
<fuel n="0">
<only-use-ctr-tank type="bool">0</only-use-ctr-tank>
<tank n="0">

View file

@ -14,13 +14,13 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
<fileheader>
<author>Joshua Davidson (it0uchpods)</author>
<version>Pre V1.0</version>
<description>A3XX FDE</description>
<description>A32X FDE</description>
</fileheader>
<metrics>
<wingarea unit="FT2"> 1319.79 </wingarea>
<wingspan unit="FT" > 111.26 </wingspan>
<wing_incidence> 1.03 </wing_incidence>
<wing_incidence > 1.03 </wing_incidence>
<chord unit="FT" > 13.76 </chord>
<htailarea unit="FT2"> 334.24 </htailarea>
<htailarm unit="FT" > 57.88 </htailarm>
@ -28,7 +28,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
<vtailarm unit="FT" > 57.33 </vtailarm>
<location name="AERORP" unit="M">
<x> 19.3974 </x>
<x> 19.3174 </x>
<y> 0 </y>
<z> 0.19249 </z>
</location>
@ -453,7 +453,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
<system file="fuel" />
<system file="glass-effect1" />
<system file="fmgc" />
<system file="fcs" />
<system file="a320-fcs" />
<flight_control name="none"/>

View file

@ -14,13 +14,13 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
<fileheader>
<author>Joshua Davidson (it0uchpods)</author>
<version>Pre V1.0</version>
<description>A3XX FDE</description>
<description>A32X FDE</description>
</fileheader>
<metrics>
<wingarea unit="FT2"> 1319.79 </wingarea>
<wingspan unit="FT" > 111.26 </wingspan>
<wing_incidence> 1.03 </wing_incidence>
<wing_incidence > 1.03 </wing_incidence>
<chord unit="FT" > 13.76 </chord>
<htailarea unit="FT2"> 334.24 </htailarea>
<htailarm unit="FT" > 57.88 </htailarm>
@ -28,7 +28,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
<vtailarm unit="FT" > 57.33 </vtailarm>
<location name="AERORP" unit="M">
<x> 19.3974 </x>
<x> 19.3174 </x>
<y> 0 </y>
<z> 0.19249 </z>
</location>
@ -453,7 +453,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
<system file="fuel" />
<system file="glass-effect1" />
<system file="fmgc" />
<system file="fcs" />
<system file="a320-fcs" />
<flight_control name="none"/>

View file

@ -279,9 +279,9 @@ var beforestart_b = func {
setprop("/controls/pneumatic/switches/bleed2", 1);
setprop("/controls/pneumatic/switches/pack1", 1);
setprop("/controls/pneumatic/switches/pack2", 1);
setprop("controls/adirs/ir[0]/knob","1");
setprop("controls/adirs/ir[1]/knob","1");
setprop("controls/adirs/ir[2]/knob","1");
setprop("/controls/adirs/ir[0]/knob","1");
setprop("/controls/adirs/ir[1]/knob","1");
setprop("/controls/adirs/ir[2]/knob","1");
systems.ADIRS.skip(0);
systems.ADIRS.skip(1);
systems.ADIRS.skip(2);
@ -352,9 +352,9 @@ var taxi_b = func {
setprop("/controls/pneumatic/switches/bleed2", 1);
setprop("/controls/pneumatic/switches/pack1", 1);
setprop("/controls/pneumatic/switches/pack2", 1);
setprop("controls/adirs/ir[0]/knob","1");
setprop("controls/adirs/ir[1]/knob","1");
setprop("controls/adirs/ir[2]/knob","1");
setprop("/controls/adirs/ir[0]/knob","1");
setprop("/controls/adirs/ir[1]/knob","1");
setprop("/controls/adirs/ir[2]/knob","1");
systems.ADIRS.skip(0);
systems.ADIRS.skip(1);
systems.ADIRS.skip(2);

View file

@ -132,7 +132,7 @@
<slider>
<pref-width>150</pref-width>
<property>/controls/flight/aileron-sum</property>
<property>/fdm/jsbsim/hydraulics/roll-control</property>
<min>-1</min>
<max>1</max>
<step>0.0001</step>
@ -169,7 +169,7 @@
<col>0</col>
<pref-height>150</pref-height>
<vertical>true</vertical>
<property>/controls/flight/elevator-sum</property>
<property>/fdm/jsbsim/hydraulics/pitch-control</property>
<min>-1</min>
<max>1</max>
<step>0.0001</step>
@ -188,7 +188,7 @@
<col>0</col>
<pref-height>150</pref-height>
<vertical>true</vertical>
<property>/controls/flight/elevator-trim</property>
<property>/controls/flight/elevator-trim-fdm</property>
<min>-1</min>
<max>1</max>
<step>0.0001</step>

View file

@ -5014,8 +5014,9 @@
<animation>
<type>rotate</type>
<object-name>trim_2_lts</object-name>
<property>controls/flight/elevator-trim</property>
<factor>-150</factor>
<property>fdm/jsbsim/fcs/pitch-trim-cmd-deg</property>
<factor>-15.55</factor>
<offset-deg>-0.9</offset-deg>
<center>
<x-m>-0.1507</x-m>
<y-m>0</y-m>

View file

@ -17,9 +17,9 @@
<object-name>ElevatorL</object-name>
<property>sim/multiplay/generic/float[4]</property>
<interpolation>
<entry><ind>-0.5</ind><dep>-20.0</dep></entry>
<entry><ind>-0.5</ind><dep>-30.0</dep></entry>
<entry><ind>0.0</ind><dep>0.0</dep></entry>
<entry><ind>0.5</ind><dep>20.0</dep></entry>
<entry><ind>0.5</ind><dep>17.0</dep></entry>
</interpolation>
<axis>
<x1-m>4.8217428</x1-m>
@ -36,9 +36,9 @@
<object-name>ElevatorR</object-name>
<property>sim/multiplay/generic/float[5]</property>
<interpolation>
<entry><ind>-0.5</ind><dep>-20.0</dep></entry>
<entry><ind>-0.5</ind><dep>-30.0</dep></entry>
<entry><ind>0.0</ind><dep>0.0</dep></entry>
<entry><ind>0.5</ind><dep>20.0</dep></entry>
<entry><ind>0.5</ind><dep>17.0</dep></entry>
</interpolation>
<axis>
<x1-m>2.9796817</x1-m>
@ -54,11 +54,8 @@
<animation>
<name>Horizontal Stabilizer</name>
<type>rotate</type>
<property>controls/flight/elevator-trim</property>
<interpolation>
<entry><ind>-1.0</ind><dep>-10.0</dep></entry>
<entry><ind>1.0</ind><dep>10.0</dep></entry>
</interpolation>
<property>sim/multiplay/generic/float[9]</property>
<factor>1.0</factor>
<axis>
<x>0</x>
<y>1</y>

View file

@ -17,9 +17,9 @@
<object-name>ElevatorL</object-name>
<property>sim/multiplay/generic/float[4]</property>
<interpolation>
<entry><ind>-0.5</ind><dep>-20.0</dep></entry>
<entry><ind>-0.5</ind><dep>-30.0</dep></entry>
<entry><ind>0.0</ind><dep>0.0</dep></entry>
<entry><ind>0.5</ind><dep>20.0</dep></entry>
<entry><ind>0.5</ind><dep>17.0</dep></entry>
</interpolation>
<axis>
<x1-m>4.8217428</x1-m>
@ -36,9 +36,9 @@
<object-name>ElevatorR</object-name>
<property>sim/multiplay/generic/float[5]</property>
<interpolation>
<entry><ind>-0.5</ind><dep>-20.0</dep></entry>
<entry><ind>-0.5</ind><dep>-30.0</dep></entry>
<entry><ind>0.0</ind><dep>0.0</dep></entry>
<entry><ind>0.5</ind><dep>20.0</dep></entry>
<entry><ind>0.5</ind><dep>17.0</dep></entry>
</interpolation>
<axis>
<x1-m>2.9796817</x1-m>
@ -54,11 +54,8 @@
<animation>
<name>Horizontal Stabilizer</name>
<type>rotate</type>
<property>controls/flight/elevator-trim</property>
<interpolation>
<entry><ind>-1.0</ind><dep>-10.0</dep></entry>
<entry><ind>1.0</ind><dep>10.0</dep></entry>
</interpolation>
<property>sim/multiplay/generic/float[9]</property>
<factor>1.0</factor>
<axis>
<x>0</x>
<y>1</y>

View file

@ -17,9 +17,9 @@
<object-name>ElevatorL</object-name>
<property>sim/multiplay/generic/float[4]</property>
<interpolation>
<entry><ind>-0.5</ind><dep>-20.0</dep></entry>
<entry><ind>-0.5</ind><dep>-30.0</dep></entry>
<entry><ind>0.0</ind><dep>0.0</dep></entry>
<entry><ind>0.5</ind><dep>20.0</dep></entry>
<entry><ind>0.5</ind><dep>17.0</dep></entry>
</interpolation>
<axis>
<x1-m>4.8217428</x1-m>
@ -36,9 +36,9 @@
<object-name>ElevatorR</object-name>
<property>sim/multiplay/generic/float[5]</property>
<interpolation>
<entry><ind>-0.5</ind><dep>-20.0</dep></entry>
<entry><ind>-0.5</ind><dep>-30.0</dep></entry>
<entry><ind>0.0</ind><dep>0.0</dep></entry>
<entry><ind>0.5</ind><dep>20.0</dep></entry>
<entry><ind>0.5</ind><dep>17.0</dep></entry>
</interpolation>
<axis>
<x1-m>2.9796817</x1-m>
@ -54,11 +54,8 @@
<animation>
<name>Horizontal Stabilizer</name>
<type>rotate</type>
<property>controls/flight/elevator-trim</property>
<interpolation>
<entry><ind>-1.0</ind><dep>-10.0</dep></entry>
<entry><ind>1.0</ind><dep>10.0</dep></entry>
</interpolation>
<property>sim/multiplay/generic/float[9]</property>
<factor>1.0</factor>
<axis>
<x>0</x>
<y>1</y>

View file

@ -501,11 +501,11 @@ var canvas_lowerECAM_fctl = {
yellow_psi = getprop("/systems/hydraulic/yellow-psi");
# Pitch Trim
me["PT"].setText(sprintf("%2.1f", getprop("/ECAM/Lower/elevator-trim-deg")));
me["PT"].setText(sprintf("%2.1f", math.round(getprop("/ECAM/Lower/elevator-trim-deg"), 0.1)));
if (getprop("/controls/flight/elevator-trim") <= 0) {
if (math.round(getprop("/ECAM/Lower/elevator-trim-deg"), 0.1) >= 0) {
me["PTupdn"].setText(sprintf("UP"));
} else if (getprop("/controls/flight/elevator-trim") > 0) {
} else if (math.round(getprop("/ECAM/Lower/elevator-trim-deg"), 0.1) < 0) {
me["PTupdn"].setText(sprintf("DN"));
}

View file

@ -36,7 +36,7 @@
<type>rotate</type>
<object-name>AileronL</object-name>
<property>sim/multiplay/generic/float[6]</property>
<factor>40</factor>
<factor>50</factor>
<axis>
<x1-m>8.7295</x1-m>
<y1-m>-16.3231163</y1-m>
@ -51,7 +51,7 @@
<type>rotate</type>
<object-name>AileronR</object-name>
<property>sim/multiplay/generic/float[7]</property>
<factor>-40</factor>
<factor>-50</factor>
<axis>
<x1-m>7.6792</x1-m>
<y1-m>13.3967144</y1-m>
@ -318,7 +318,7 @@
<property>controls/flight/spoiler-l1</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>4.879</x1-m>
@ -336,7 +336,7 @@
<property>controls/flight/spoiler-l2</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>5.084</x1-m>
@ -354,7 +354,7 @@
<property>controls/flight/spoiler-l3</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>5.685</x1-m>
@ -372,7 +372,7 @@
<property>controls/flight/spoiler-l4</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>6.253</x1-m>
@ -390,7 +390,7 @@
<property>controls/flight/spoiler-l5</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>6.776</x1-m>
@ -408,7 +408,7 @@
<property>controls/flight/spoiler-r1</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>4.879</x1-m>
@ -426,7 +426,7 @@
<property>controls/flight/spoiler-r2</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>5.678</x1-m>
@ -444,7 +444,7 @@
<property>controls/flight/spoiler-r3</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>6.246</x1-m>
@ -462,7 +462,7 @@
<property>controls/flight/spoiler-r4</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>6.769</x1-m>
@ -480,7 +480,7 @@
<property>controls/flight/spoiler-r5</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>7.292</x1-m>

View file

@ -36,7 +36,7 @@
<type>rotate</type>
<object-name>AileronL</object-name>
<property>sim/multiplay/generic/float[6]</property>
<factor>40</factor>
<factor>50</factor>
<axis>
<x1-m>8.7295</x1-m>
<y1-m>-16.3231163</y1-m>
@ -51,7 +51,7 @@
<type>rotate</type>
<object-name>AileronR</object-name>
<property>sim/multiplay/generic/float[7]</property>
<factor>-40</factor>
<factor>-50</factor>
<axis>
<x1-m>7.6792</x1-m>
<y1-m>13.3967144</y1-m>
@ -318,7 +318,7 @@
<property>controls/flight/spoiler-l1</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>4.879</x1-m>
@ -336,7 +336,7 @@
<property>controls/flight/spoiler-l2</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>5.084</x1-m>
@ -354,7 +354,7 @@
<property>controls/flight/spoiler-l3</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>5.685</x1-m>
@ -372,7 +372,7 @@
<property>controls/flight/spoiler-l4</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>6.253</x1-m>
@ -390,7 +390,7 @@
<property>controls/flight/spoiler-l5</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>6.776</x1-m>
@ -408,7 +408,7 @@
<property>controls/flight/spoiler-r1</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>4.879</x1-m>
@ -426,7 +426,7 @@
<property>controls/flight/spoiler-r2</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>5.678</x1-m>
@ -444,7 +444,7 @@
<property>controls/flight/spoiler-r3</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>6.246</x1-m>
@ -462,7 +462,7 @@
<property>controls/flight/spoiler-r4</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>6.769</x1-m>
@ -480,7 +480,7 @@
<property>controls/flight/spoiler-r5</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>7.292</x1-m>

View file

@ -36,7 +36,7 @@
<type>rotate</type>
<object-name>AileronL</object-name>
<property>sim/multiplay/generic/float[6]</property>
<factor>40</factor>
<factor>50</factor>
<axis>
<x1-m>8.7295</x1-m>
<y1-m>-16.3231163</y1-m>
@ -51,7 +51,7 @@
<type>rotate</type>
<object-name>AileronR</object-name>
<property>sim/multiplay/generic/float[7]</property>
<factor>-40</factor>
<factor>-50</factor>
<axis>
<x1-m>7.6792</x1-m>
<y1-m>13.3967144</y1-m>
@ -318,7 +318,7 @@
<property>controls/flight/spoiler-l1</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>4.879</x1-m>
@ -336,7 +336,7 @@
<property>controls/flight/spoiler-l2</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>5.084</x1-m>
@ -354,7 +354,7 @@
<property>controls/flight/spoiler-l3</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>5.685</x1-m>
@ -372,7 +372,7 @@
<property>controls/flight/spoiler-l4</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>6.253</x1-m>
@ -390,7 +390,7 @@
<property>controls/flight/spoiler-l5</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>6.776</x1-m>
@ -408,7 +408,7 @@
<property>controls/flight/spoiler-r1</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>4.879</x1-m>
@ -426,7 +426,7 @@
<property>controls/flight/spoiler-r2</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>5.678</x1-m>
@ -444,7 +444,7 @@
<property>controls/flight/spoiler-r3</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>6.246</x1-m>
@ -462,7 +462,7 @@
<property>controls/flight/spoiler-r4</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>6.769</x1-m>
@ -480,7 +480,7 @@
<property>controls/flight/spoiler-r5</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>7.292</x1-m>

View file

@ -36,7 +36,7 @@
<type>rotate</type>
<object-name>AileronL</object-name>
<property>sim/multiplay/generic/float[6]</property>
<factor>40</factor>
<factor>50</factor>
<axis>
<x1-m>8.7295</x1-m>
<y1-m>-16.3231163</y1-m>
@ -51,7 +51,7 @@
<type>rotate</type>
<object-name>AileronR</object-name>
<property>sim/multiplay/generic/float[7]</property>
<factor>-40</factor>
<factor>-50</factor>
<axis>
<x1-m>7.6792</x1-m>
<y1-m>13.3967144</y1-m>
@ -318,7 +318,7 @@
<property>controls/flight/spoiler-l1</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>4.879</x1-m>
@ -336,7 +336,7 @@
<property>controls/flight/spoiler-l2</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>5.084</x1-m>
@ -354,7 +354,7 @@
<property>controls/flight/spoiler-l3</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>5.685</x1-m>
@ -372,7 +372,7 @@
<property>controls/flight/spoiler-l4</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>6.253</x1-m>
@ -390,7 +390,7 @@
<property>controls/flight/spoiler-l5</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>6.776</x1-m>
@ -408,7 +408,7 @@
<property>controls/flight/spoiler-r1</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>4.879</x1-m>
@ -426,7 +426,7 @@
<property>controls/flight/spoiler-r2</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>5.678</x1-m>
@ -444,7 +444,7 @@
<property>controls/flight/spoiler-r3</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>6.246</x1-m>
@ -462,7 +462,7 @@
<property>controls/flight/spoiler-r4</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>6.769</x1-m>
@ -480,7 +480,7 @@
<property>controls/flight/spoiler-r5</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>30</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<axis>
<x1-m>7.292</x1-m>

View file

@ -358,6 +358,24 @@ var flaptimer = maketimer(0.5, func {
}
});
var slewProp = func(prop, delta) {
delta *= getprop("/sim/time/delta-realtime-sec");
setprop(prop, getprop(prop) + delta);
return getprop(prop);
}
controls.elevatorTrim = func(speed) {
if (getprop("/systems/hydraulic/green-psi") >= 1500) {
slewProp("/controls/flight/elevator-trim", speed * 0.045);
}
}
setlistener("/controls/flight/elevator-trim", func {
if (getprop("/controls/flight/elevator-trim") > 0.32) {
setprop("/controls/flight/elevator-trim", 0.32);
}
});
var lightsLoop = maketimer(0.2, func {
gear = getprop("/gear/gear[0]/position-norm");
nose_lights = getprop("/sim/model/lights/nose-lights");

View file

@ -8,7 +8,9 @@
-->
<aerodynamics>
<property value="0.0">ice/wing</property>
<axis name="LIFT">
<function name="aero/force/Lift_alpha">
@ -204,8 +206,18 @@
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<abs><property>fcs/pitch-pos-norm</property></abs>
<value>0.035</value>
<abs><property>fcs/pitch-pos-rad</property></abs>
<value>0.07</value>
</product>
</function>
<function name="aero/force/Drag_pitch_trim_control">
<description>Drag due to pitch trim control deflection</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<abs><property>fcs/pitch-trim-pos-rad</property></abs>
<value>0.07</value>
</product>
</function>
@ -239,6 +251,7 @@
</table>
</product>
</function>
</axis>
<axis name="ROLL">
@ -285,7 +298,7 @@
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<property>fcs/roll-pos-rad</property>
<value>0.07</value>
<value>0.084</value>
</product>
</function>
@ -322,7 +335,18 @@
<property>metrics/Sw-sqft</property>
<property>metrics/cbarw-ft</property>
<property>fcs/pitch-pos-geared</property>
<value>-1.350</value>
<value>-1.825</value>
</product>
</function>
<function name="aero/moment/Pitch_trim_control">
<description>Pitch moment due to pitch trim control</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/cbarw-ft</property>
<property>fcs/pitch-trim-pos-geared</property>
<value>-2.745</value>
</product>
</function>
@ -384,7 +408,7 @@
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<property>fcs/rudder-pos-rad</property>
<value>-0.2</value>
<value>-0.043</value>
</product>
</function>

746
Systems/a320-fcs.xml Normal file
View file

@ -0,0 +1,746 @@
<!-- Airbus A320 FCS -->
<!--
##############################################
# Copyright (c) Joshua Davidson (it0uchpods) #
##############################################
-->
<system name="A320: FCS">
<channel name="Surface Droop">
<fcs_function name="hydraulics/aileron-droop">
<function>
<table>
<independentVar lookup="row">/velocities/airspeed-kt</independentVar>
<tableData>
62 0.5
116 0.0
</tableData>
</table>
</function>
</fcs_function>
<pure_gain name="hydraulics/aileron-droop-neg">
<input>hydraulics/aileron-droop</input>
<gain>-1.0</gain>
</pure_gain>
<fcs_function name="hydraulics/elevator-droop">
<function>
<table>
<independentVar lookup="row">/velocities/airspeed-kt</independentVar>
<tableData>
72 0.5
121 0.0
</tableData>
</table>
</function>
</fcs_function>
</channel>
<channel name="Aileron Common">
<summer name="hydraulics/roll-fbw-summer">
<input>/controls/flight/roll-fbw</input>
<input>/controls/flight/aileron-trim</input>
<clipto>
<min>-1</min>
<max>1</max>
</clipto>
</summer>
</channel>
<channel name="Aileron L">
<fcs_function name="hydraulics/aileron-l/extended">
<function>
<product>
<sum>
<property>/controls/flight/speedbrake-norm</property>
<max>
<product>
<property>hydraulics/roll-fbw-summer</property>
<value>-1</value>
</product>
<value>0</value>
</max>
</sum>
<value>-0.5</value>
</product>
</function>
</fcs_function>
<fcs_function name="hydraulics/aileron-l/retracted">
<function>
<sum>
<product>
<property>hydraulics/roll-fbw-summer</property>
<value>0.5</value>
</product>
<table>
<independentVar lookup="row">/fdm/jsbsim/fcs/flap-pos-deg</independentVar>
<tableData>
1 0.00
5 0.13
</tableData>
</table>
</sum>
</function>
</fcs_function>
<switch name="hydraulics/aileron-l/pressure-switch-or">
<default value="0"/>
<test logic="OR" value="1">
/systems/hydraulic/green-psi GE 1500
/systems/hydraulic/blue-psi GE 1500
</test>
</switch>
<switch name="hydraulics/aileron-l/switch">
<default value="hydraulics/aileron-droop"/>
<test logic="AND" value="hydraulics/aileron-l/extended">
hydraulics/aileron-l/pressure-switch-or EQ 1
/controls/flight/speedbrake-norm EQ 1
/gear/gear[1]/wow EQ 1
/gear/gear[2]/wow EQ 1
/systems/failures/aileron-left EQ 0
</test>
<test logic="AND" value="hydraulics/aileron-l/retracted">
hydraulics/aileron-l/pressure-switch-or EQ 1
/systems/failures/aileron-left EQ 0
</test>
<clipto>
<min>-0.5</min>
<max>0.5</max>
</clipto>
</switch>
<kinematic name="hydraulics/aileron-l/final">
<input>hydraulics/aileron-l/switch</input>
<traverse>
<setting>
<position>-1.0</position>
<time>1.1</time>
</setting>
<setting>
<position>1.0</position>
<time>1.1</time>
</setting>
</traverse>
<output>/controls/flight/aileron-left</output>
</kinematic>
</channel>
<channel name="Aileron R">
<fcs_function name="hydraulics/aileron-r/extended">
<function>
<product>
<sum>
<property>/controls/flight/speedbrake-norm</property>
<max>
<property>hydraulics/roll-fbw-summer</property>
<value>0</value>
</max>
</sum>
<value>0.5</value>
</product>
</function>
</fcs_function>
<fcs_function name="hydraulics/aileron-r/retracted">
<function>
<sum>
<product>
<property>hydraulics/roll-fbw-summer</property>
<value>0.5</value>
</product>
<table>
<independentVar lookup="row">/fdm/jsbsim/fcs/flap-pos-deg</independentVar>
<tableData>
1 0.00
5 -0.13
</tableData>
</table>
</sum>
</function>
</fcs_function>
<switch name="hydraulics/aileron-r/pressure-switch-or">
<default value="0"/>
<test logic="OR" value="1">
/systems/hydraulic/green-psi GE 1500
/systems/hydraulic/blue-psi GE 1500
</test>
</switch>
<switch name="hydraulics/aileron-r/switch">
<default value="hydraulics/aileron-droop-neg"/>
<test logic="AND" value="hydraulics/aileron-r/extended">
hydraulics/aileron-r/pressure-switch-or EQ 1
/controls/flight/speedbrake-norm EQ 1
/gear/gear[1]/wow EQ 1
/gear/gear[2]/wow EQ 1
/systems/failures/aileron-right EQ 0
</test>
<test logic="AND" value="hydraulics/aileron-r/retracted">
hydraulics/aileron-r/pressure-switch-or EQ 1
/systems/failures/aileron-right EQ 0
</test>
<clipto>
<min>-0.5</min>
<max>0.5</max>
</clipto>
</switch>
<kinematic name="hydraulics/aileron-r/final">
<input>hydraulics/aileron-r/switch</input>
<traverse>
<setting>
<position>-1.0</position>
<time>1.1</time>
</setting>
<setting>
<position>1.0</position>
<time>1.1</time>
</setting>
</traverse>
<output>/controls/flight/aileron-right</output>
</kinematic>
</channel>
<channel name="Roll">
<fcs_function name="hydraulics/roll-control">
<function>
<product>
<sum>
<product>
<sum>
<property>hydraulics/aileron-l/final</property>
<property>hydraulics/aileron-r/final</property>
</sum>
<value>1.75</value>
</product>
<product>
<sum>
<product>
<property>/controls/flight/spoiler-l-sum</property>
<value>-1.0</value>
</product>
<property>/controls/flight/spoiler-r-sum</property>
</sum>
<value>0.25</value>
</product>
</sum>
<value>0.444444</value>
</product>
</function>
<clipto>
<min>-1.0</min>
<max>1.0</max>
</clipto>
</fcs_function>
<aerosurface_scale name="fcs/roll-pos-rad">
<input>hydraulics/roll-control</input>
<range>
<min>-0.436332</min>
<max>0.436332</max>
</range>
</aerosurface_scale>
</channel>
<channel name="Elevator Common">
<aerosurface_scale name="hydraulics/elevator-fbw-scale">
<input>/controls/flight/elevator-fbw</input>
<range>
<min>-0.6666666666666666666666666666666</min>
<max>1.0</max>
</range>
</aerosurface_scale>
<switch name="hydraulics/elevator-fbw-switch">
<default value="hydraulics/elevator-fbw-scale"/>
<test value="/controls/flight/elevator-fbw">
/velocities/groundspeed-kt LT 75
</test>
</switch>
<pure_gain name="hydraulics/elevator-fbw-gain">
<input>hydraulics/elevator-fbw-switch</input>
<gain>0.5</gain>
</pure_gain>
</channel>
<channel name="Elevator L">
<switch name="hydraulics/elevator-l/pressure-switch-or">
<default value="0"/>
<test logic="OR" value="1">
/systems/hydraulic/green-psi GE 1500
/systems/hydraulic/blue-psi GE 1500
</test>
</switch>
<switch name="hydraulics/elevator-l/switch">
<default value="hydraulics/elevator-droop"/>
<test logic="AND" value="hydraulics/elevator-fbw-gain">
hydraulics/elevator-l/pressure-switch-or EQ 1
/systems/failures/elevator-left EQ 0
</test>
<clipto>
<min>-0.5</min>
<max>0.5</max>
</clipto>
</switch>
<kinematic name="hydraulics/elevator-l/final">
<input>hydraulics/elevator-l/switch</input>
<traverse>
<setting>
<position>-1.0</position>
<time>1.1</time>
</setting>
<setting>
<position>1.0</position>
<time>1.1</time>
</setting>
</traverse>
<output>/controls/flight/elevator-left</output>
</kinematic>
</channel>
<channel name="Elevator R">
<switch name="hydraulics/elevator-r/pressure-switch-or">
<default value="0"/>
<test logic="OR" value="1">
/systems/hydraulic/yellow-psi GE 1500
/systems/hydraulic/blue-psi GE 1500
</test>
</switch>
<switch name="hydraulics/elevator-r/switch">
<default value="hydraulics/elevator-droop"/>
<test logic="AND" value="hydraulics/elevator-fbw-gain">
hydraulics/elevator-r/pressure-switch-or EQ 1
/systems/failures/elevator-right EQ 0
</test>
<clipto>
<min>-0.5</min>
<max>0.5</max>
</clipto>
</switch>
<kinematic name="hydraulics/elevator-r/final">
<input>hydraulics/elevator-r/switch</input>
<traverse>
<setting>
<position>-1.0</position>
<time>1.1</time>
</setting>
<setting>
<position>1.0</position>
<time>1.1</time>
</setting>
</traverse>
<output>/controls/flight/elevator-right</output>
</kinematic>
</channel>
<channel name="Pitch">
<fcs_function name="hydraulics/pitch-control">
<function>
<sum>
<property>hydraulics/elevator-l/final</property>
<property>hydraulics/elevator-r/final</property>
</sum>
</function>
<clipto>
<min>-1.0</min>
<max>1.0</max>
</clipto>
</fcs_function>
<aerosurface_scale name="fcs/pitch-pos-rad">
<input>hydraulics/pitch-control</input>
<range>
<min>-0.523599</min>
<max>0.296706</max>
</range>
</aerosurface_scale>
<scheduled_gain name="fcs/pitch-pos-geared">
<input>fcs/pitch-pos-rad</input>
<table>
<independentVar lookup="row">velocities/mach</independentVar>
<independentVar lookup="column">atmosphere/density-altitude</independentVar>
<tableData>
0 43000
0.0 1.00 0.850
0.9 0.02 0.750
</tableData>
</table>
</scheduled_gain>
</channel>
<channel name="Pitch Trim">
<aerosurface_scale name="fcs/pitch-trim-cmd-deg">
<input>/controls/flight/elevator-trim</input>
<domain>
<min>-1.00</min>
<max>0.32</max>
</domain>
<range>
<min>-12.5</min>
<max>4.0</max>
</range>
</aerosurface_scale>
<aerosurface_scale name="fcs/pitch-trim-pos-rad">
<input>/controls/flight/elevator-trim-fdm</input>
<domain>
<min>-1.00</min>
<max>0.32</max>
</domain>
<range>
<min>-0.2181662</min>
<max>0.0698132</max>
</range>
</aerosurface_scale>
<aerosurface_scale name="fcs/pitch-trim-pos-deg">
<input>/controls/flight/elevator-trim-fdm</input>
<domain>
<min>-1.00</min>
<max>0.32</max>
</domain>
<range>
<min>-12.5</min>
<max>4.0</max>
</range>
</aerosurface_scale>
<scheduled_gain name="fcs/pitch-trim-pos-geared">
<input>fcs/pitch-trim-pos-rad</input>
<table>
<independentVar lookup="row">velocities/mach</independentVar>
<independentVar lookup="column">atmosphere/density-altitude</independentVar>
<tableData>
0 43000
0.0 1.00 0.850
0.9 0.02 0.750
</tableData>
</table>
</scheduled_gain>
</channel>
<channel name="FADEC">
<lag_filter name="fcs/throttle1">
<input>/controls/engines/engine[0]/throttle-output</input>
<c1>0.95</c1>
<output>fcs/throttle-cmd-norm</output>
<output>fcs/throttle-pos-norm</output>
</lag_filter>
<lag_filter name="fcs/throttle2">
<input>/controls/engines/engine[1]/throttle-output</input>
<c1>0.95</c1>
<output>fcs/throttle-cmd-norm[1]</output>
<output>fcs/throttle-pos-norm[1]</output>
</lag_filter>
<lag_filter name="fcs/n1-actual1">
<input>/engines/engine[0]/n1</input>
<c1>2.25</c1>
<output>/engines/engine[0]/n1-actual</output>
<output>/engines/engine[3]/n1</output>
</lag_filter>
<lag_filter name="fcs/n1-actual2">
<input>/engines/engine[1]/n1</input>
<c1>2.25</c1>
<output>/engines/engine[1]/n1-actual</output>
<output>/engines/engine[4]/n1</output>
</lag_filter>
<lag_filter name="fcs/n2-actual1">
<input>/engines/engine[0]/n2</input>
<c1>2.25</c1>
<output>/engines/engine[0]/n2-actual</output>
<output>/engines/engine[3]/n2</output>
</lag_filter>
<lag_filter name="fcs/n2-actual2">
<input>/engines/engine[1]/n2</input>
<c1>2.25</c1>
<output>/engines/engine[1]/n2-actual</output>
<output>/engines/engine[4]/n2</output>
</lag_filter>
</channel>
<channel name="Rudder">
<switch name="hydraulics/rudder/pressure-switch-or">
<default value="0"/>
<test logic="OR" value="1">
/systems/hydraulic/green-psi GE 1500
/systems/hydraulic/blue-psi GE 1500
/systems/hydraulic/yellow-psi GE 1500
</test>
</switch>
<summer name="hydraulics/rudder/summer">
<input>/controls/flight/rudder-fbw</input>
<input>/controls/flight/rudder-trim</input>
<clipto>
<min>-1</min>
<max>1</max>
</clipto>
</summer>
<switch name="hydraulics/rudder/switch">
<default value="0"/>
<test logic="AND" value="hydraulics/rudder/summer">
hydraulics/rudder/pressure-switch-or EQ 1
/systems/failures/rudder EQ 0
</test>
<clipto>
<min>-1.0</min>
<max>1.0</max>
</clipto>
</switch>
<kinematic name="hydraulics/rudder/final">
<input>hydraulics/rudder/switch</input>
<traverse>
<setting>
<position>-1.0</position>
<time>1.1</time>
</setting>
<setting>
<position>1.0</position>
<time>1.1</time>
</setting>
</traverse>
<output>/controls/flight/rudder-fdm</output>
</kinematic>
</channel>
<channel name="Yaw">
<pure_gain name="hydraulics/rudder/gain">
<input>hydraulics/rudder/final</input>
<gain>-1.0</gain>
</pure_gain>
<scheduled_gain name="fcs/yaw-damper-rate">
<input>velocities/r-aero-rad_sec</input>
<table>
<independentVar lookup="row">velocities/ve-kts</independentVar>
<tableData>
30 0.00
60 2.00
</tableData>
</table>
<clipto>
<min>-0.05</min>
<max>0.05</max>
</clipto>
</scheduled_gain>
<scheduled_gain name="fcs/yaw-damper-final">
<input>fcs/yaw-damper-rate</input>
<table>
<independentVar lookup="row">velocities/ve-kts</independentVar>
<tableData>
30 0.0
31 1.0
</tableData>
</table>
</scheduled_gain>
<switch name="fcs/yaw-damper-switch">
<default value="0"/>
<test logic="AND" value="fcs/yaw-damper-final">
/it-fbw/law == 0
/gear/gear[1]/wow EQ 0
/gear/gear[2]/wow EQ 0
</test>
<test logic="AND" value="fcs/yaw-damper-final">
/it-fbw/law == 1
/gear/gear[1]/wow EQ 0
/gear/gear[2]/wow EQ 0
</test>
</switch>
<summer name="fcs/yaw-sum">
<input>hydraulics/rudder/gain</input>
<input>fcs/yaw-damper-switch</input>
<clipto>
<min>-1</min>
<max>1</max>
</clipto>
</summer>
<aerosurface_scale name="rubbish/rudder-pos-rad">
<input>fcs/yaw-sum</input>
<range>
<min>-0.436332</min>
<max>0.436332</max>
</range>
<output>fcs/rudder-pos-rad</output>
</aerosurface_scale>
<aerosurface_scale name="rubbish/rudder-pos-norm">
<input>fcs/rudder-pos-rad</input>
<domain>
<min>-0.436332</min>
<max>0.436332</max>
</domain>
<range>
<min>-1</min>
<max>1</max>
</range>
<output>fcs/rudder-pos-norm</output>
</aerosurface_scale>
</channel>
<channel name="Flaps">
<kinematic name="rubbish/flap-pos-deg">
<input>/controls/flight/flaps</input>
<traverse>
<setting>
<position>0</position>
<time>0</time>
</setting>
<setting>
<position>35</position>
<time>30</time>
</setting>
</traverse>
<output>fcs/flap-pos-deg</output>
</kinematic>
<aerosurface_scale name="rubbish/flap-pos-norm">
<input>fcs/flap-pos-deg</input>
<domain>
<min>0</min>
<max>35</max>
</domain>
<range>
<min>0</min>
<max>1</max>
</range>
<output>fcs/flap-pos-norm</output>
</aerosurface_scale>
</channel>
<channel name="Slats">
<kinematic name="rubbish/slat-pos-deg">
<input>/controls/flight/slats</input>
<traverse>
<setting>
<position>0</position>
<time>0</time>
</setting>
<setting>
<position>27</position>
<time>20</time>
</setting>
</traverse>
<output>fcs/slat-pos-deg</output>
</kinematic>
<aerosurface_scale name="rubbish/slat-pos-norm">
<input>fcs/slat-pos-deg</input>
<domain>
<min>0</min>
<max>27</max>
</domain>
<range>
<min>0</min>
<max>1</max>
</range>
<output>fcs/slat-pos-norm</output>
</aerosurface_scale>
</channel>
<channel name="Landing Gear">
<kinematic name="rubbish/gear-pos-norm">
<input>gear/gear-cmd-norm</input>
<traverse>
<setting>
<position>0</position>
<time>0</time>
</setting>
<setting>
<position>1</position>
<time>10</time>
</setting>
</traverse>
<output>gear/gear-pos-norm</output>
</kinematic>
</channel>
<channel name="Speedbrake">
<pure_gain name="rubbish/speedbrake-pos-norm">
<input>/controls/flight/speedbrake-output</input>
<gain>1.0</gain>
<output>fcs/speedbrake-pos-norm</output>
</pure_gain>
</channel>
<channel name="Tiller">
<fcs_function name="fcs/steer-nose-deg[0]">
<function>
<table>
<independentVar lookup="row">/velocities/groundspeed-kt</independentVar>
<independentVar lookup="column">/controls/flight/rudder</independentVar>
<tableData>
-1 0 1
30.000 -70.0 0 70.0
30.001 -10.0 0 10.0
</tableData>
</table>
</function>
</fcs_function>
<actuator name="fcs/steer-deg">
<input>fcs/steer-nose-deg[0]</input>
<rate_limit>70</rate_limit>
<output>fcs/steer-pos-deg[0]</output>
</actuator>
</channel>
</system>

View file

@ -346,7 +346,7 @@
<expression>
<table>
<property>/velocities/mach</property>
<entry><ind>0.2</ind><dep>-0.26</dep></entry>
<entry><ind>0.2</ind><dep>-0.28</dep></entry>
<entry><ind>0.9</ind><dep>-0.13</dep></entry>
</table>
</expression>
@ -552,6 +552,7 @@
<name>IT-CONTROLLER: PITCH TRIM</name>
<debug>false</debug>
<initialize-to>output</initialize-to>
<type>noise-spike</type>
<enable>
<condition>
<and>
@ -645,7 +646,8 @@
<value>-1</value>
</input>
<output>/controls/flight/elevator-trim</output>
<type>noise-spike</type>
<min>-1.0</min>
<max>0.32</max>
<max-rate-of-change>0.01</max-rate-of-change>
</filter>

View file

@ -1,376 +0,0 @@
<!-- Airbus A3XX FCS by Joshua Davidson (it0uchpods) -->
<!--
##############################################
# Copyright (c) Joshua Davidson (it0uchpods) #
##############################################
-->
<system name="A3XX: FCS">
<property value="2">fcs/internal-fbw-law</property>
<channel name="FBW">
<switch name="Internal FBW Law">
<default value="/it-fbw/law"/>
<test logic="OR" value="2">
/gear/gear[1]/wow == 1
/gear/gear[2]/wow == 1
</test>
</switch>
</channel>
<channel name="Roll">
<summer name="Roll Trim Sum">
<input>/controls/flight/aileron-sum</input>
<input>/controls/flight/aileron-trim</input>
<clipto>
<min>-1</min>
<max>1</max>
</clipto>
</summer>
<aerosurface_scale name="Roll Control">
<input>fcs/roll-trim-sum</input>
<range>
<min>-0.523599</min>
<max>0.523599</max>
</range>
<output>fcs/roll-pos-rad</output>
</aerosurface_scale>
<aerosurface_scale name="Roll Control Normalized">
<input>fcs/roll-pos-rad</input>
<domain>
<min>-0.523599</min>
<max>0.523599</max>
</domain>
<range>
<min>-1</min>
<max>1</max>
</range>
<output>fcs/roll-pos-norm</output>
</aerosurface_scale>
</channel>
<channel name="Pitch">
<summer name="Pitch Trim Sum">
<input>/controls/flight/elevator-sum</input>
<input>/controls/flight/elevator-trim</input>
<clipto>
<min>-1</min>
<max>1</max>
</clipto>
</summer>
<aerosurface_scale name="Pitch Control">
<input>fcs/pitch-trim-sum</input>
<range>
<min>-0.523599</min>
<max>0.523599</max>
</range>
<output>fcs/pitch-pos-rad</output>
</aerosurface_scale>
<scheduled_gain name="Pitch Control Gearing">
<input>fcs/pitch-pos-rad</input>
<table>
<independentVar lookup="row">velocities/mach</independentVar>
<independentVar lookup="column">atmosphere/density-altitude</independentVar>
<tableData>
0.0 43000
0.0 1.00 0.85
0.9 0.02 0.75
</tableData>
</table>
<output>fcs/pitch-pos-geared</output>
</scheduled_gain>
<aerosurface_scale name="Pitch Control Normalized">
<input>fcs/pitch-pos-geared</input>
<domain>
<min>-0.523599</min>
<max>0.523599</max>
</domain>
<range>
<min>-1</min>
<max>1</max>
</range>
<output>fcs/pitch-pos-norm</output>
</aerosurface_scale>
</channel>
<channel name="FADEC">
<lag_filter name="fcs/throttle1">
<input>/controls/engines/engine[0]/throttle-output</input>
<c1>0.95</c1>
<output>fcs/throttle-cmd-norm</output>
<output>fcs/throttle-pos-norm</output>
</lag_filter>
<lag_filter name="fcs/throttle2">
<input>/controls/engines/engine[1]/throttle-output</input>
<c1>0.95</c1>
<output>fcs/throttle-cmd-norm[1]</output>
<output>fcs/throttle-pos-norm[1]</output>
</lag_filter>
<lag_filter name="fcs/n1-actual1">
<input>/engines/engine[0]/n1</input>
<c1>2.25</c1>
<output>/engines/engine[0]/n1-actual</output>
<output>/engines/engine[3]/n1</output>
</lag_filter>
<lag_filter name="fcs/n1-actual2">
<input>/engines/engine[1]/n1</input>
<c1>2.25</c1>
<output>/engines/engine[1]/n1-actual</output>
<output>/engines/engine[4]/n1</output>
</lag_filter>
<lag_filter name="fcs/n2-actual1">
<input>/engines/engine[0]/n2</input>
<c1>2.25</c1>
<output>/engines/engine[0]/n2-actual</output>
<output>/engines/engine[3]/n2</output>
</lag_filter>
<lag_filter name="fcs/n2-actual2">
<input>/engines/engine[1]/n2</input>
<c1>2.25</c1>
<output>/engines/engine[1]/n2-actual</output>
<output>/engines/engine[4]/n2</output>
</lag_filter>
</channel>
<channel name="Yaw">
<pure_gain name="fcs/rudder-cmd">
<input>/controls/flight/rudder-fdm</input>
<gain>-1</gain>
<output>fcs/rudder-cmd-norm</output>
</pure_gain>
<summer name="Rudder Command Sum">
<input>fcs/rudder-cmd-norm</input>
<input>fcs/yaw-trim-cmd-norm</input>
<clipto>
<min> -0.35 </min>
<max> 0.35 </max>
</clipto>
</summer>
<scheduled_gain name="Yaw Damper Rate">
<input>velocities/r-aero-rad_sec</input>
<table>
<independentVar lookup="row">velocities/ve-kts</independentVar>
<tableData>
30 0.00
60 2.00
</tableData>
</table>
</scheduled_gain>
<scheduled_gain name="Yaw Damper Beta">
<input>aero/beta-rad</input>
<table>
<independentVar lookup="row">velocities/ve-kts</independentVar>
<tableData>
30 0.00
60 0.00
</tableData>
</table>
</scheduled_gain>
<summer name="Yaw Damper Sum">
<input>fcs/yaw-damper-beta</input>
<input>fcs/yaw-damper-rate</input>
<clipto>
<min> -0.1 </min>
<max> 0.1 </max>
</clipto>
</summer>
<scheduled_gain name="Yaw Damper Final">
<input>fcs/yaw-damper-sum</input>
<table>
<independentVar lookup="row">velocities/ve-kts</independentVar>
<tableData>
30 0.0
31 1.0
</tableData>
</table>
</scheduled_gain>
<summer name="Rudder Sum">
<input>fcs/rudder-command-sum</input>
<input>fcs/yaw-damper-final</input>
<clipto>
<min> -1 </min>
<max> 1 </max>
</clipto>
</summer>
<aerosurface_scale name="Rudder Control">
<input>fcs/rudder-sum</input>
<range>
<min> -0.35 </min>
<max> 0.35 </max>
</range>
<output>fcs/rudder-pos-rad</output>
</aerosurface_scale>
<aerosurface_scale name="rudder normalization">
<input>fcs/rudder-pos-rad</input>
<domain>
<min> -0.35 </min>
<max> 0.35 </max>
</domain>
<range>
<min> -1 </min>
<max> 1 </max>
</range>
<output>fcs/rudder-pos-norm</output>
</aerosurface_scale>
</channel>
<channel name="Flaps">
<kinematic name="Flaps Control">
<input>/controls/flight/flaps</input>
<traverse>
<setting>
<position>0</position>
<time>0</time>
</setting>
<setting>
<position>35</position>
<time>30</time>
</setting>
</traverse>
<output>fcs/flap-pos-deg</output>
</kinematic>
<aerosurface_scale name="Flap position normalized">
<input>fcs/flap-pos-deg</input>
<domain>
<min>0</min>
<max>35</max>
</domain>
<range>
<min>0</min>
<max>1</max>
</range>
<output>fcs/flap-pos-norm</output>
</aerosurface_scale>
</channel>
<channel name="Slats">
<kinematic name="Slats Control">
<input>/controls/flight/slats</input>
<traverse>
<setting>
<position>0</position>
<time>0</time>
</setting>
<setting>
<position>27</position>
<time>20</time>
</setting>
</traverse>
<output>fcs/slat-pos-deg</output>
</kinematic>
<aerosurface_scale name="Slat position normalized">
<input>fcs/slat-pos-deg</input>
<domain>
<min>0</min>
<max>27</max>
</domain>
<range>
<min>0</min>
<max>1</max>
</range>
<output>fcs/slat-pos-norm</output>
</aerosurface_scale>
</channel>
<channel name="Landing Gear">
<kinematic name="Gear Control">
<input>gear/gear-cmd-norm</input>
<traverse>
<setting>
<position>0</position>
<time>0</time>
</setting>
<setting>
<position>1</position>
<time>10</time>
</setting>
</traverse>
<output>gear/gear-pos-norm</output>
</kinematic>
</channel>
<channel name="Speedbrake">
<kinematic name="Speedbrake">
<input>/controls/flight/speedbrake-output</input>
<traverse>
<setting>
<position>0</position>
<time>0</time>
</setting>
<setting>
<position>1</position>
<time>1</time>
</setting>
</traverse>
<output>fcs/speedbrake-pos-norm</output>
</kinematic>
</channel>
<channel name="Tiller">
<fcs_function name="Nose Wheel Steering 0">
<function name="fcs/steer-nose-deg[0]">
<description>Steering command for nose gear</description>
<product>
<table>
<independentVar lookup="row">/velocities/groundspeed-kt</independentVar>
<independentVar lookup="column">/controls/flight/rudder</independentVar>
<tableData>
-1 0 1
30.000 -70 0 70
30.001 -10 0 10
</tableData>
</table>
</product>
</function>
</fcs_function>
<actuator name="Gear Nose Actuator">
<input>fcs/steer-nose-deg[0]</input>
<rate_limit>70</rate_limit>
<output>fcs/steer-pos-deg[0]</output>
</actuator>
</channel>
</system>

View file

@ -6,289 +6,10 @@
##############################################
-->
<!-- Airbus A3XX Hydraulics System -->
<!-- Airbus A32X Hydraulics System -->
<PropertyList>
<!-- =============================================================== -->
<!-- Surface Droop -->
<!-- =============================================================== -->
<filter>
<name>Aileron Droop</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/velocities/airspeed-kt</property>
<entry><ind> 62</ind><dep>0.5</dep></entry>
<entry><ind>116</ind><dep>0.0</dep></entry>
</table>
</expression>
</input>
<output>/systems/hydraulic/aileron-droop</output>
</filter>
<filter>
<name>Elevator Droop</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/velocities/airspeed-kt</property>
<entry><ind> 72</ind><dep>0.5</dep></entry>
<entry><ind>121</ind><dep>0.0</dep></entry>
</table>
</expression>
</input>
<output>/systems/hydraulic/elevator-droop</output>
</filter>
<!-- =============================================================== -->
<!-- Aileron Control -->
<!-- =============================================================== -->
<!-- Aileron L -->
<filter>
<debug>false</debug>
<type>gain</type>
<gain>1.0</gain>
<input>
<condition>
<and>
<or>
<greater-than-equals>
<property>/systems/hydraulic/green-psi</property>
<value>1500</value>
</greater-than-equals>
<greater-than-equals>
<property>/systems/hydraulic/blue-psi</property>
<value>1500</value>
</greater-than-equals>
</or>
<equals>
<property>/controls/flight/speedbrake-norm</property>
<value>1.0</value>
</equals>
<equals>
<property>/gear/gear[1]/wow</property>
<value>1</value>
</equals>
<equals>
<property>/gear/gear[2]/wow</property>
<value>1</value>
</equals>
<equals>
<property>/systems/failures/aileron-left</property>
<value>0</value>
</equals>
</and>
</condition>
<expression>
<sum>
<property>/controls/flight/speedbrake-norm</property>
<table>
<property>/controls/flight/roll-fbw</property>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>-1.0</dep></entry>
</table>
</sum>
</expression>
<scale>-0.5</scale>
</input>
<input>
<condition>
<or>
<and>
<less-than>
<property>/systems/hydraulic/green-psi</property>
<value>1500</value>
</less-than>
<less-than>
<property>/systems/hydraulic/blue-psi</property>
<value>1500</value>
</less-than>
</and>
<equals>
<property>/systems/failures/aileron-left</property>
<value>1</value>
</equals>
</or>
</condition>
<property>/systems/hydraulic/aileron-droop</property>
</input>
<input>
<condition>
<and>
<or>
<greater-than-equals>
<property>/systems/hydraulic/green-psi</property>
<value>1500</value>
</greater-than-equals>
<greater-than-equals>
<property>/systems/hydraulic/blue-psi</property>
<value>1500</value>
</greater-than-equals>
</or>
<equals>
<property>/systems/failures/aileron-left</property>
<value>0</value>
</equals>
</and>
</condition>
<expression>
<sum>
<table>
<property>/controls/flight/roll-fbw</property>
<entry><ind>-1</ind><dep>-0.5</dep></entry>
<entry><ind> 0</ind><dep> 0.0</dep></entry>
<entry><ind> 1</ind><dep> 0.5</dep></entry>
</table>
<table>
<property>/fdm/jsbsim/fcs/flap-pos-deg</property>
<entry><ind>1</ind><dep>0.00</dep></entry>
<entry><ind>5</ind><dep>0.13</dep></entry>
</table>
</sum>
</expression>
</input>
<output>/controls/flight/aileron-left-cmd</output>
<min>-0.5</min>
<max>0.5</max>
</filter>
<filter>
<debug>false</debug>
<type>noise-spike</type>
<input>/controls/flight/aileron-left-cmd</input>
<output>/controls/flight/aileron-left</output>
<max-rate-of-change>2.5</max-rate-of-change>
</filter>
<!-- Aileron R -->
<filter>
<debug>false</debug>
<type>gain</type>
<gain>1.0</gain>
<input>
<condition>
<and>
<or>
<greater-than-equals>
<property>/systems/hydraulic/green-psi</property>
<value>1500</value>
</greater-than-equals>
<greater-than-equals>
<property>/systems/hydraulic/blue-psi</property>
<value>1500</value>
</greater-than-equals>
</or>
<equals>
<property>/controls/flight/speedbrake-norm</property>
<value>1.0</value>
</equals>
<equals>
<property>/gear/gear[1]/wow</property>
<value>1</value>
</equals>
<equals>
<property>/gear/gear[2]/wow</property>
<value>1</value>
</equals>
<equals>
<property>/systems/failures/aileron-right</property>
<value>0</value>
</equals>
</and>
</condition>
<expression>
<sum>
<property>/controls/flight/speedbrake-norm</property>
<table>
<property>/controls/flight/roll-fbw</property>
<entry><ind>-0.0</ind><dep> 0</dep></entry>
<entry><ind>-1.0</ind><dep>-1.0</dep></entry>
</table>
</sum>
</expression>
<scale>0.5</scale>
</input>
<input>
<condition>
<or>
<and>
<less-than>
<property>/systems/hydraulic/green-psi</property>
<value>1500</value>
</less-than>
<less-than>
<property>/systems/hydraulic/blue-psi</property>
<value>1500</value>
</less-than>
</and>
<equals>
<property>/systems/failures/aileron-right</property>
<value>1</value>
</equals>
</or>
</condition>
<property>/systems/hydraulic/aileron-droop</property>
<scale>-1.0</scale>
</input>
<input>
<condition>
<and>
<or>
<greater-than-equals>
<property>/systems/hydraulic/green-psi</property>
<value>1500</value>
</greater-than-equals>
<greater-than-equals>
<property>/systems/hydraulic/blue-psi</property>
<value>1500</value>
</greater-than-equals>
</or>
<equals>
<property>/systems/failures/aileron-right</property>
<value>0</value>
</equals>
</and>
</condition>
<expression>
<sum>
<table>
<property>/controls/flight/roll-fbw</property>
<entry><ind>-1</ind><dep>-0.5</dep></entry>
<entry><ind> 0</ind><dep> 0.0</dep></entry>
<entry><ind> 1</ind><dep> 0.5</dep></entry>
</table>
<table>
<property>/fdm/jsbsim/fcs/flap-pos-deg</property>
<entry><ind>1</ind><dep> 0.00</dep></entry>
<entry><ind>5</ind><dep>-0.13</dep></entry>
</table>
</sum>
</expression>
</input>
<output>/controls/flight/aileron-right-cmd</output>
<min>-0.5</min>
<max>0.5</max>
</filter>
<filter>
<debug>false</debug>
<type>noise-spike</type>
<input>/controls/flight/aileron-right-cmd</input>
<output>/controls/flight/aileron-right</output>
<max-rate-of-change>2.5</max-rate-of-change>
</filter>
<!-- =============================================================== -->
<!-- Spoiler Control -->
<!-- =============================================================== -->
@ -1439,272 +1160,20 @@
<output>/controls/flight/spoiler-r-sum</output>
</filter>
<!-- =============================================================== -->
<!-- Roll Control -->
<!-- =============================================================== -->
<filter>
<debug>false</debug>
<type>gain</type>
<gain>1.0</gain>
<input>
<expression>
<product>
<sum>
<product>
<sum>
<property>/controls/flight/aileron-left</property>
<property>/controls/flight/aileron-right</property>
</sum>
<value>1.75</value>
</product>
<product>
<sum>
<product>
<property>/controls/flight/spoiler-l-sum</property>
<value>-1.0</value>
</product>
<property>/controls/flight/spoiler-r-sum</property>
</sum>
<value>0.25</value>
</product>
</sum>
<value>0.444444</value>
</product>
</expression>
</input>
<output>/controls/flight/aileron-sum</output>
<min>-1.0</min>
<max>1.0</max>
</filter>
<!-- =============================================================== -->
<!-- Elevator Control -->
<!-- =============================================================== -->
<filter>
<debug>false</debug>
<type>gain</type>
<gain>1.0</gain>
<input>
<condition>
<or>
<and>
<less-than>
<property>/systems/hydraulic/green-psi</property>
<value>1500</value>
</less-than>
<less-than>
<property>/systems/hydraulic/blue-psi</property>
<value>1500</value>
</less-than>
</and>
<equals>
<property>/systems/failures/elevator-left</property>
<value>1</value>
</equals>
</or>
</condition>
<property>/systems/hydraulic/elevator-droop</property>
</input>
<input>
<condition>
<and>
<or>
<greater-than-equals>
<property>/systems/hydraulic/green-psi</property>
<value>1500</value>
</greater-than-equals>
<greater-than-equals>
<property>/systems/hydraulic/blue-psi</property>
<value>1500</value>
</greater-than-equals>
</or>
<equals>
<property>/systems/failures/elevator-left</property>
<value>0</value>
</equals>
</and>
</condition>
<expression>
<table>
<property>/controls/flight/elevator-fbw</property>
<entry><ind>-1</ind><dep>-0.5</dep></entry>
<entry><ind> 0</ind><dep> 0.0</dep></entry>
<entry><ind> 1</ind><dep> 0.5</dep></entry>
</table>
</expression>
</input>
<output>/controls/flight/elevator-left-cmd</output>
<min>-0.5</min>
<max>0.5</max>
</filter>
<filter>
<debug>false</debug>
<type>noise-spike</type>
<input>/controls/flight/elevator-left-cmd</input>
<output>/controls/flight/elevator-left</output>
<max-rate-of-change>2.5</max-rate-of-change>
</filter>
<filter>
<debug>false</debug>
<type>gain</type>
<gain>1.0</gain>
<input>
<enable>
<condition>
<or>
<and>
<less-than>
<property>/systems/hydraulic/yellow-psi</property>
<value>1500</value>
</less-than>
<less-than>
<property>/systems/hydraulic/blue-psi</property>
<value>1500</value>
</less-than>
</and>
<equals>
<property>/systems/failures/elevator-right</property>
<value>1</value>
</equals>
</or>
</condition>
<property>/systems/hydraulic/elevator-droop</property>
</input>
<input>
<condition>
<and>
<or>
<greater-than-equals>
<property>/systems/hydraulic/yellow-psi</property>
<value>1500</value>
</greater-than-equals>
<greater-than-equals>
<property>/systems/hydraulic/blue-psi</property>
<value>1500</value>
</greater-than-equals>
</or>
<equals>
<property>/systems/failures/elevator-right</property>
<value>0</value>
</equals>
</and>
</condition>
<expression>
<table>
<property>/controls/flight/elevator-fbw</property>
<entry><ind>-1</ind><dep>-0.5</dep></entry>
<entry><ind> 0</ind><dep> 0.0</dep></entry>
<entry><ind> 1</ind><dep> 0.5</dep></entry>
</table>
</expression>
</input>
<output>/controls/flight/elevator-right-cmd</output>
<min>-0.5</min>
<max>0.5</max>
</filter>
<filter>
<debug>false</debug>
<type>noise-spike</type>
<input>/controls/flight/elevator-right-cmd</input>
<output>/controls/flight/elevator-right</output>
<max-rate-of-change>2.5</max-rate-of-change>
</filter>
<filter>
<debug>false</debug>
<type>gain</type>
<gain>1.0</gain>
<input>
<expression>
<sum>
<property>/controls/flight/elevator-left</property>
<property>/controls/flight/elevator-right</property>
</sum>
</expression>
</input>
<output>/controls/flight/elevator-sum</output>
<min>-1.0</min>
<max>1.0</max>
</filter>
<!-- =============================================================== -->
<!-- Rudder Control -->
<!-- =============================================================== -->
<filter>
<debug>false</debug>
<type>gain</type>
<gain>1.0</gain>
<input>
<condition>
<or>
<and>
<less-than>
<property>/systems/hydraulic/green-psi</property>
<value>1500</value>
</less-than>
<less-than>
<property>/systems/hydraulic/blue-psi</property>
<value>1500</value>
</less-than>
<less-than>
<property>/systems/hydraulic/yellow-psi</property>
<value>1500</value>
</less-than>
</and>
<equals>
<property>/systems/failures/rudder</property>
<value>1</value>
</equals>
</or>
</condition>
<value>0</value>
</input>
<input>
<condition>
<and>
<or>
<greater-than-equals>
<property>/systems/hydraulic/green-psi</property>
<value>1500</value>
</greater-than-equals>
<greater-than-equals>
<property>/systems/hydraulic/blue-psi</property>
<value>1500</value>
</greater-than-equals>
<greater-than-equals>
<property>/systems/hydraulic/yellow-psi</property>
<value>1500</value>
</greater-than-equals>
</or>
<equals>
<property>/systems/failures/rudder</property>
<value>0</value>
</equals>
</and>
</condition>
<expression>
<sum>
<property>/controls/flight/rudder-fbw</property>
<property>/controls/flight/rudder-trim</property>
</sum>
</expression>
</input>
<output>/controls/flight/rudder-fdm-cmd</output>
<min>-1.0</min>
<max>1.0</max>
</filter>
<filter>
<debug>false</debug>
<type>noise-spike</type>
<input>/controls/flight/rudder-fdm-cmd</input>
<output>/controls/flight/rudder-fdm</output>
<max-rate-of-change>2.5</max-rate-of-change>
</enable>
<input>/controls/flight/elevator-trim</input>
<output>/controls/flight/elevator-trim-fdm</output>
<max-rate-of-change>0.1</max-rate-of-change>
</filter>
<!-- =============================================================== -->
@ -1766,8 +1235,6 @@
<output>/controls/flight/speedbrake-output</output>
</filter>
<!-- Auto Speedbrake -->
<flipflop>
<name>Auto Speedbrake</name>
<debug>false</debug>
@ -1823,8 +1290,6 @@
<output>/controls/flight/speedbrake-lever</output>
</flipflop>
<!-- Speedbrake Selector -->
<filter>
<name>Main Speedbrake Controller</name>
<type>gain</type>
@ -1837,15 +1302,10 @@
</max>
</expression>
</input>
<output>/controls/flight/speedbrake</output>
</filter>
<filter>
<name>Speedbrake Norm</name>
<type>noise-spike</type>
<input>/controls/flight/speedbrake</input>
<output>/controls/flight/speedbrake-norm</output>
<max-rate-of-change>0.7</max-rate-of-change>
<output>
<property>/controls/flight/speedbrake</property>
<property>/controls/flight/speedbrake-norm</property>
</output>
</filter>
<!-- Braking -->

View file

@ -11,7 +11,7 @@
<filter>
<name>APU N Output</name>
<type>gain</type>
<gain>1</gain>
<gain>1.0</gain>
<input>
<expression>
<table>
@ -28,7 +28,7 @@
<filter>
<name>APU EGT Output</name>
<type>gain</type>
<gain>1</gain>
<gain>1.0</gain>
<input>
<expression>
<table>
@ -48,7 +48,7 @@
<filter>
<name>Oil QT Output 1</name>
<type>gain</type>
<gain>1</gain>
<gain>1.0</gain>
<input>
<expression>
<table>
@ -64,7 +64,7 @@
<filter>
<name>Oil QT Output 2</name>
<type>gain</type>
<gain>1</gain>
<gain>1.0</gain>
<input>
<expression>
<table>
@ -80,7 +80,7 @@
<filter>
<name>Oil PSI Output 1</name>
<type>gain</type>
<gain>1</gain>
<gain>1.0</gain>
<input>
<expression>
<table>
@ -97,7 +97,7 @@
<filter>
<name>Oil PSIOutput 2</name>
<type>gain</type>
<gain>1</gain>
<gain>1.0</gain>
<input>
<expression>
<table>
@ -114,7 +114,7 @@
<filter>
<name>Aileron L Indication</name>
<type>gain</type>
<gain>1</gain>
<gain>1.0</gain>
<input>
<expression>
<table>
@ -131,7 +131,7 @@
<filter>
<name>Aileron R Indication</name>
<type>gain</type>
<gain>1</gain>
<gain>1.0</gain>
<input>
<expression>
<table>
@ -148,7 +148,7 @@
<filter>
<name>Elevator L Indication</name>
<type>gain</type>
<gain>1</gain>
<gain>1.0</gain>
<input>
<expression>
<table>
@ -165,7 +165,7 @@
<filter>
<name>Elevator R Indication</name>
<type>gain</type>
<gain>1</gain>
<gain>1.0</gain>
<input>
<expression>
<table>
@ -182,21 +182,8 @@
<filter>
<name>Elevator Trim Deg</name>
<type>gain</type>
<gain>1</gain>
<input>
<expression>
<table>
<property>/controls/flight/elevator-trim</property>
<entry><ind> 0.4200</ind><dep>-4.0</dep></entry>
<entry><ind> 0.2150</ind><dep>-2.0</dep></entry>
<entry><ind> 0.1100</ind><dep>-1.0</dep></entry>
<entry><ind> 0.0000</ind><dep> 0.0</dep></entry>
<entry><ind>-0.1000</ind><dep> 1.0</dep></entry>
<entry><ind>-0.2000</ind><dep> 2.0</dep></entry>
<entry><ind>-0.5000</ind><dep> 5.0</dep></entry>
</table>
</expression>
</input>
<gain>-1.0</gain>
<input>/fdm/jsbsim/fcs/pitch-trim-pos-deg</input>
<output>/ECAM/Lower/elevator-trim-deg</output>
</filter>

View file

@ -11,7 +11,7 @@
<filter>
<name>EPR 1</name>
<type>gain</type>
<gain>1</gain>
<gain>1.0</gain>
<input>
<condition>
<equals>
@ -38,7 +38,7 @@
<filter>
<name>EPR THR 1</name>
<type>gain</type>
<gain>1</gain>
<gain>1.0</gain>
<input>
<condition>
<equals>
@ -65,7 +65,7 @@
<filter>
<name>EPR 2</name>
<type>gain</type>
<gain>1</gain>
<gain>1.0</gain>
<input>
<condition>
<equals>
@ -92,7 +92,7 @@
<filter>
<name>EPR THR 2</name>
<type>gain</type>
<gain>1</gain>
<gain>1.0</gain>
<input>
<condition>
<equals>
@ -119,7 +119,7 @@
<filter>
<name>EPR LIMIT</name>
<type>gain</type>
<gain>1</gain>
<gain>1.0</gain>
<input>
<condition>
<equals>
@ -146,7 +146,7 @@
<filter>
<name>EGT 1</name>
<type>gain</type>
<gain>1</gain>
<gain>1.0</gain>
<input>
<condition>
<equals>
@ -185,7 +185,7 @@
<filter>
<name>EGT 2</name>
<type>gain</type>
<gain>1</gain>
<gain>1.0</gain>
<input>
<condition>
<equals>
@ -224,7 +224,7 @@
<filter>
<name>N1 1</name>
<type>gain</type>
<gain>1</gain>
<gain>1.0</gain>
<input>
<condition>
<equals>
@ -265,7 +265,7 @@
<filter>
<name>N1 THR 1</name>
<type>gain</type>
<gain>1</gain>
<gain>1.0</gain>
<input>
<condition>
<equals>
@ -306,7 +306,7 @@
<filter>
<name>N1 2</name>
<type>gain</type>
<gain>1</gain>
<gain>1.0</gain>
<input>
<condition>
<equals>
@ -347,7 +347,7 @@
<filter>
<name>N1 THR 2</name>
<type>gain</type>
<gain>1</gain>
<gain>1.0</gain>
<input>
<condition>
<equals>
@ -388,7 +388,7 @@
<filter>
<name>N1 LIMIT</name>
<type>gain</type>
<gain>1</gain>
<gain>1.0</gain>
<input>
<expression>
<table>

View file

@ -1 +1 @@
4074
4100