Control: Major rework of Flight Controls/Spoilers, Sim: Bugfixes

This reworks the entire inner workings of the flight controls, and makes
the aerodynamics and operation of spoilers better. I also fixed a few
bugs in the aircraft, and made some refinements. This is a huge change.
This fixes #26
This commit is contained in:
Joshua Davidson 2018-07-15 21:26:26 -04:00
parent 69e93d8a90
commit bac32ed52e
28 changed files with 1736 additions and 2217 deletions

View file

@ -453,6 +453,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
<system file="fuel"/>
<system file="glass-effect1"/>
<system file="a320-fcs"/>
<system file="a320-spoiler"/>
<flight_control name="none"/>

View file

@ -453,6 +453,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
<system file="fuel"/>
<system file="glass-effect1"/>
<system file="a320-fcs"/>
<system file="a320-spoiler"/>
<flight_control name="none"/>

View file

@ -453,6 +453,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
<system file="fuel"/>
<system file="glass-effect1"/>
<system file="a320-fcs"/>
<system file="a320-spoiler"/>
<flight_control name="none"/>

View file

@ -114,37 +114,34 @@
</electrical>
<!-- 0 is FADEC -->
<autopilot n="1">
<path>Aircraft/IDG-A32X/Systems/hydraulics.xml</path>
</autopilot>
<autopilot n="2">
<path>Aircraft/IDG-A32X/Systems/fbw-pitch.xml</path>
</autopilot>
<autopilot n="3">
<autopilot n="2">
<path>Aircraft/IDG-A32X/Systems/fmgc-drivers.xml</path>
</autopilot>
<autopilot n="4">
<autopilot n="3">
<path>Aircraft/IDG-A32X/Systems/fmgc-roll-yaw.xml</path>
</autopilot>
<autopilot n="5">
<autopilot n="4">
<path>Aircraft/IDG-A32X/Systems/fmgc-pitch.xml</path>
</autopilot>
<autopilot n="6">
<autopilot n="5">
<path>Aircraft/IDG-A32X/Systems/fmgc-thrust.xml</path>
</autopilot>
<autopilot n="7">
<autopilot n="6">
<path>Aircraft/IDG-A32X/Systems/libraries.xml</path>
</autopilot>
<autopilot n="8">
<autopilot n="7">
<path>Aircraft/IDG-A32X/Systems/upper-ecam.xml</path>
</autopilot>
<autopilot n="9">
<autopilot n="8">
<path>Aircraft/IDG-A32X/Systems/lower-ecam.xml</path>
</autopilot>
<autopilot n="9">
<path>Aircraft/IDG-A32X/Systems/pfd.xml</path>
</autopilot>
<!-- 10 is sound -->
<autopilot n="11">
<path>Aircraft/IDG-A32X/Systems/pfd.xml</path>
</autopilot>
<autopilot n="12">
<path>Aircraft/IDG-A32X/Systems/zoom-views.xml</path>
</autopilot>
</systems>
@ -321,11 +318,11 @@
<float n="1" alias="/gear/gear[0]/steering-norm" />
<float n="2" alias="/engines/engine[0]/reverser-pos-norm" />
<float n="3" alias="/engines/engine[1]/reverser-pos-norm" />
<float n="4" alias="/controls/flight/elevator-left" />
<float n="5" alias="/controls/flight/elevator-right" />
<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="4" alias="/fdm/jsbsim/hydraulics/elevator-l/final-deg" />
<float n="5" alias="/fdm/jsbsim/hydraulics/elevator-r/final-deg" />
<float n="6" alias="/fdm/jsbsim/hydraulics/aileron-l/final-deg" />
<float n="7" alias="/fdm/jsbsim/hydraulics/aileron-r/final-deg" />
<float n="8" alias="/fdm/jsbsim/hydraulics/rudder/final-deg" />
<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]" />
@ -540,31 +537,12 @@
<flight>
<aileron-drives-tiller type="bool">0</aileron-drives-tiller>
<aileron-input>0</aileron-input>
<aileron-left>0.5</aileron-left>
<aileron-right>-0.5</aileron-right>
<elevator-input>0</elevator-input>
<elevator-left>0.1</elevator-left>
<elevator-right>0.1</elevator-right>
<elevator-trim-fdm>0.0</elevator-trim-fdm>
<flap-pos type="int">0</flap-pos>
<ground-spoilers-armed type="bool">0</ground-spoilers-armed>
<rudder-trim-fdm>0.0</rudder-trim-fdm>
<spoiler-l1>0.0</spoiler-l1>
<spoiler-l2>0.0</spoiler-l2>
<spoiler-l3>0.0</spoiler-l3>
<spoiler-l4>0.0</spoiler-l4>
<spoiler-l5>0.0</spoiler-l5>
<spoiler-l-sum>0.0</spoiler-l-sum>
<spoiler-r1>0.0</spoiler-r1>
<spoiler-r2>0.0</spoiler-r2>
<spoiler-r3>0.0</spoiler-r3>
<spoiler-r4>0.0</spoiler-r4>
<spoiler-r5>0.0</spoiler-r5>
<spoiler-r-sum>0.0</spoiler-r-sum>
<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>
@ -1372,32 +1350,37 @@
<key n="2">
<name>Ctrl-b</name>
<desc>Cycle speedbrake setting</desc>
<binding>
<command>property-assign</command>
<property>controls/flight/speedbrake-arm</property>
<value>0</value>
</binding>
<binding>
<condition>
<or>
<equals>
<property>/gear/gear[1]/wow</property>
<and>
<not-equals>
<property>/controls/flight/speedbrake-arm</property>
<value>1</value>
</equals>
<equals>
<property>/gear/gear[2]/wow</property>
<value>1</value>
</equals>
</or>
</not-equals>
<or>
<equals>
<property>/gear/gear[1]/wow</property>
<value>1</value>
</equals>
<equals>
<property>/gear/gear[2]/wow</property>
<value>1</value>
</equals>
</or>
</and>
</condition>
<command>property-cycle</command>
<property>controls/flight/speedbrake-lever</property>
<value>0</value>
<value>1</value>
<property>controls/flight/speedbrake</property>
<value>0.0</value>
<value>1.0</value>
</binding>
<binding>
<condition>
<and>
<not-equals>
<property>/controls/flight/speedbrake-arm</property>
<value>1</value>
</not-equals>
<equals>
<property>/gear/gear[1]/wow</property>
<value>0</value>
@ -1409,10 +1392,15 @@
</and>
</condition>
<command>property-cycle</command>
<property>controls/flight/speedbrake-lever</property>
<value>0</value>
<property>controls/flight/speedbrake</property>
<value>0.0</value>
<value>0.5</value>
<value>1</value>
<value>1.0</value>
</binding>
<binding>
<command>property-assign</command>
<property>controls/flight/speedbrake-arm</property>
<value>0</value>
</binding>
</key>
</keyboard>

View file

@ -453,6 +453,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
<system file="fuel"/>
<system file="glass-effect1"/>
<system file="a320-fcs"/>
<system file="a320-spoiler"/>
<flight_control name="none"/>

View file

@ -453,6 +453,7 @@ xsi:noNamespaceSchemaLocation="http://jsbsim.sourceforge.net/JSBSim.xsd">
<system file="fuel"/>
<system file="glass-effect1"/>
<system file="a320-fcs"/>
<system file="a320-spoiler"/>
<flight_control name="none"/>

View file

@ -207,6 +207,7 @@ var colddark = func {
setprop("/controls/flight/flap-txt", " ");
libraries.flaptimer.stop();
setprop("/controls/flight/speedbrake-arm", 0);
setprop("/controls/flight/speedbrake", 0);
setprop("/controls/gear/gear-down", 1);
setprop("/controls/flight/elevator-trim", 0);
libraries.systemsInit();
@ -255,6 +256,7 @@ var beforestart = func {
setprop("/controls/flight/flap-txt", " ");
libraries.flaptimer.stop();
setprop("/controls/flight/speedbrake-arm", 0);
setprop("/controls/flight/speedbrake", 0);
setprop("/controls/gear/gear-down", 1);
setprop("/controls/flight/elevator-trim", 0);
libraries.systemsInit();
@ -329,6 +331,7 @@ var taxi = func {
setprop("/controls/flight/flap-txt", " ");
libraries.flaptimer.stop();
setprop("/controls/flight/speedbrake-arm", 0);
setprop("/controls/flight/speedbrake", 0);
setprop("/controls/gear/gear-down", 1);
setprop("/controls/flight/elevator-trim", 0);
libraries.systemsInit();

View file

@ -129,13 +129,34 @@
<group>
<layout>vbox</layout>
<text>
<label>L:</label>
</text>
<slider>
<pref-width>150</pref-width>
<property>/fdm/jsbsim/hydraulics/roll-control</property>
<min>-1</min>
<max>1</max>
<step>0.0001</step>
<pref-height>150</pref-height>
<vertical>true</vertical>
<property>/fdm/jsbsim/hydraulics/aileron-l/final-deg</property>
<min>-25</min>
<max>25</max>
<step>0.0025</step>
<live>true</live>
</slider>
</group>
<group>
<layout>vbox</layout>
<text>
<label>R:</label>
</text>
<slider>
<pref-height>150</pref-height>
<vertical>true</vertical>
<property>/fdm/jsbsim/hydraulics/aileron-r/final-deg</property>
<min>-25</min>
<max>25</max>
<step>0.0025</step>
<live>true</live>
</slider>
</group>
@ -162,17 +183,15 @@
<layout>vbox</layout>
<text>
<label>Pitch CMD: </label>
<label>L:</label>
</text>
<slider>
<row>2</row>
<col>0</col>
<pref-height>150</pref-height>
<vertical>true</vertical>
<property>/fdm/jsbsim/hydraulics/pitch-control</property>
<min>-1</min>
<max>1</max>
<step>0.0001</step>
<property>/fdm/jsbsim/hydraulics/elevator-l/final-deg</property>
<min>-30</min>
<max>17</max>
<step>0.003</step>
<live>true</live>
</slider>
</group>
@ -181,17 +200,32 @@
<layout>vbox</layout>
<text>
<label>Pitch Trim: </label>
<label>Trim:</label>
</text>
<slider>
<row>2</row>
<col>0</col>
<pref-height>150</pref-height>
<vertical>true</vertical>
<property>/controls/flight/elevator-trim-fdm</property>
<min>-1</min>
<max>1</max>
<step>0.0001</step>
<property>/fdm/jsbsim/hydraulics/elevator-trim/final-deg</property>
<min>-12.5</min>
<max>4</max>
<step>0.00125</step>
<live>true</live>
</slider>
</group>
<group>
<layout>vbox</layout>
<text>
<label>R:</label>
</text>
<slider>
<pref-height>150</pref-height>
<vertical>true</vertical>
<property>/fdm/jsbsim/hydraulics/elevator-r/final-deg</property>
<min>-30</min>
<max>17</max>
<step>0.003</step>
<live>true</live>
</slider>
</group>
@ -204,7 +238,7 @@
<stretch type="bool">true</stretch>
</hrule>
<text>
<label>Yaw</label>
<label>Rudder</label>
</text>
<hrule>
<stretch type="bool">true</stretch>
@ -219,10 +253,10 @@
<slider>
<pref-width>150</pref-width>
<property>/controls/flight/rudder-fdm</property>
<min>-1</min>
<max>1</max>
<step>0.0001</step>
<property>/fdm/jsbsim/hydraulics/rudder/final-deg</property>
<min>-25</min>
<max>25</max>
<step>0.0025</step>
<live>true</live>
</slider>
</group>

View file

@ -508,7 +508,7 @@
<axis-alignment>xy-plane</axis-alignment>
<type type="string">number-value</type>
<format type="string">%2.1f</format>
<property>fdm/jsbsim/fcs/rudder-trim-cmd-deg</property>
<property>fdm/jsbsim/hydraulics/rudder/trim-cmd-deg</property>
<truncate type="bool">false</truncate>
<font type="string">led.txf</font>
<draw-text type="bool">true</draw-text>
@ -4772,7 +4772,7 @@
<animation>
<type>rotate</type>
<object-name>trim_2_lts</object-name>
<property>fdm/jsbsim/fcs/pitch-trim-cmd-deg</property>
<property>fdm/jsbsim/hydraulics/elevator-trim/cmd-deg</property>
<factor>-15.55</factor>
<offset-deg>-0.9</offset-deg>
<center>
@ -4876,7 +4876,7 @@
<repeatable type="bool">false</repeatable>
<binding>
<command>property-assign</command>
<property>controls/flight/speedbrake-lever</property>
<property>controls/flight/speedbrake</property>
<value>0</value>
</binding>
<binding>
@ -4892,14 +4892,14 @@
<binding>
<command>nasal</command>
<script>
var spdBrk = getprop("/controls/flight/speedbrake-lever" );
var spdBrk = getprop("/controls/flight/speedbrake" );
if(spdBrk == 0){
setprop("/controls/flight/speedbrake-arm", 0);
setprop("/controls/flight/speedbrake-lever", 0.5);
setprop("/controls/flight/speedbrake", 0.5);
}
elsif(spdBrk == 0.5){
setprop("/controls/flight/speedbrake-arm", 0);
setprop("/controls/flight/speedbrake-lever", 1);
setprop("/controls/flight/speedbrake", 1);
}
elsif(spdBrk == 1){
setprop("/controls/flight/speedbrake-arm", 0);
@ -4914,18 +4914,18 @@
<binding>
<command>nasal</command>
<script>
var spdBrk = getprop("/controls/flight/speedbrake-lever");
var spdBrk = getprop("/controls/flight/speedbrake");
if(spdBrk == 0){
setprop("/controls/flight/speedbrake-arm", 0);
# Do nothing because spoilers are fully down.
}
elsif(spdBrk == 0.5){
setprop("/controls/flight/speedbrake-arm", 0);
setprop("/controls/flight/speedbrake-lever", 0);
setprop("/controls/flight/speedbrake", 0);
}
elsif(spdBrk == 1){
setprop("/controls/flight/speedbrake-arm", 0);
setprop("/controls/flight/speedbrake-lever", 0.5);
setprop("/controls/flight/speedbrake", 0.5);
}
</script>
</binding>
@ -4935,7 +4935,7 @@
<animation>
<type>rotate</type>
<object-name>SpdBrk</object-name>
<property>controls/flight/speedbrake-lever</property>
<property>controls/flight/speedbrake</property>
<factor>45</factor>
<!--offset-deg>10</offset-deg-->
<axis>

View file

@ -16,11 +16,7 @@
<type>rotate</type>
<object-name>ElevatorL</object-name>
<property>sim/multiplay/generic/float[4]</property>
<interpolation>
<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>17.0</dep></entry>
</interpolation>
<factor>1</factor>
<axis>
<x1-m>4.8217428</x1-m>
<y1-m>-6.225</y1-m>
@ -35,11 +31,7 @@
<type>rotate</type>
<object-name>ElevatorR</object-name>
<property>sim/multiplay/generic/float[5]</property>
<interpolation>
<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>17.0</dep></entry>
</interpolation>
<factor>1</factor>
<axis>
<x1-m>2.9796817</x1-m>
<y1-m>0.96224</y1-m>

View file

@ -22,7 +22,7 @@
<type>rotate</type>
<object-name>Rudder</object-name>
<property>sim/multiplay/generic/float[8]</property>
<factor>25</factor>
<factor>1</factor>
<axis>
<x1-m>4.013</x1-m>
<y1-m>0</y1-m>

View file

@ -16,11 +16,7 @@
<type>rotate</type>
<object-name>ElevatorL</object-name>
<property>sim/multiplay/generic/float[4]</property>
<interpolation>
<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>17.0</dep></entry>
</interpolation>
<factor>1</factor>
<axis>
<x1-m>4.8217428</x1-m>
<y1-m>-6.225</y1-m>
@ -35,11 +31,7 @@
<type>rotate</type>
<object-name>ElevatorR</object-name>
<property>sim/multiplay/generic/float[5]</property>
<interpolation>
<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>17.0</dep></entry>
</interpolation>
<factor>1</factor>
<axis>
<x1-m>2.9796817</x1-m>
<y1-m>0.96224</y1-m>

View file

@ -22,7 +22,7 @@
<type>rotate</type>
<object-name>Rudder</object-name>
<property>sim/multiplay/generic/float[8]</property>
<factor>25</factor>
<factor>1</factor>
<axis>
<x1-m>4.013</x1-m>
<y1-m>0</y1-m>

View file

@ -16,11 +16,7 @@
<type>rotate</type>
<object-name>ElevatorL</object-name>
<property>sim/multiplay/generic/float[4]</property>
<interpolation>
<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>17.0</dep></entry>
</interpolation>
<factor>1</factor>
<axis>
<x1-m>4.8217428</x1-m>
<y1-m>-6.225</y1-m>
@ -35,11 +31,7 @@
<type>rotate</type>
<object-name>ElevatorR</object-name>
<property>sim/multiplay/generic/float[5]</property>
<interpolation>
<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>17.0</dep></entry>
</interpolation>
<factor>1</factor>
<axis>
<x1-m>2.9796817</x1-m>
<y1-m>0.96224</y1-m>

View file

@ -22,7 +22,7 @@
<type>rotate</type>
<object-name>Rudder</object-name>
<property>sim/multiplay/generic/float[8]</property>
<factor>25</factor>
<factor>1</factor>
<axis>
<x1-m>4.013</x1-m>
<y1-m>0</y1-m>

View file

@ -50,7 +50,7 @@ setprop("/ECAM/Lower/aileron-ind-right", 0);
setprop("/ECAM/Lower/elevator-ind-left", 0);
setprop("/ECAM/Lower/elevator-ind-right", 0);
setprop("/ECAM/Lower/elevator-trim-deg", 0);
setprop("/controls/flight/rudder-fdm", 0);
setprop("/fdm/jsbsim/hydraulics/rudder/final-deg", 0);
setprop("/environment/temperature-degc", 0);
setprop("/FMGC/internal/gw", 0);
setprop("/controls/flight/spoiler-l1-failed", 0);
@ -526,8 +526,8 @@ var canvas_lowerECAM_fctl = {
}
# Ailerons
me["ailL"].setTranslation(0,getprop("/ECAM/Lower/aileron-ind-left")*100);
me["ailR"].setTranslation(0,getprop("/ECAM/Lower/aileron-ind-right")*(-100));
me["ailL"].setTranslation(0, getprop("/ECAM/Lower/aileron-ind-left") * 100);
me["ailR"].setTranslation(0, getprop("/ECAM/Lower/aileron-ind-right") * (-100));
if (blue_psi < 1500 and green_psi < 1500) {
me["ailL"].setColor(0.7333,0.3803,0);
@ -538,8 +538,8 @@ var canvas_lowerECAM_fctl = {
}
# Elevators
me["elevL"].setTranslation(0,getprop("/ECAM/Lower/elevator-ind-left")*100);
me["elevR"].setTranslation(0,getprop("/ECAM/Lower/elevator-ind-right")*100);
me["elevL"].setTranslation(0, getprop("/ECAM/Lower/elevator-ind-left") * 100);
me["elevR"].setTranslation(0, getprop("/ECAM/Lower/elevator-ind-right") * 100);
if (blue_psi < 1500 and green_psi < 1500) {
me["elevL"].setColor(0.7333,0.3803,0);
@ -554,7 +554,7 @@ var canvas_lowerECAM_fctl = {
}
# Rudder
me["rudder"].setRotation(getprop("/controls/flight/rudder-fdm")*(-0.6));
me["rudder"].setRotation(getprop("/fdm/jsbsim/hydraulics/rudder/final-deg") * -0.024);
if (blue_psi < 1500 and yellow_psi < 1500 and green_psi < 1500) {
me["rudder"].setColor(0.7333,0.3803,0);
@ -563,7 +563,7 @@ var canvas_lowerECAM_fctl = {
}
# Spoilers
if (getprop("/controls/flight/spoiler-l1") < 0.033) {
if (getprop("/fdm/jsbsim/hydraulics/spoiler-l1/final-deg") < 1.5) {
me["spoiler1Lex"].hide();
me["spoiler1Lrt"].show();
} else {
@ -571,7 +571,7 @@ var canvas_lowerECAM_fctl = {
me["spoiler1Lex"].show();
}
if (getprop("/controls/flight/spoiler-l2") < 0.033) {
if (getprop("/fdm/jsbsim/hydraulics/spoiler-l2/final-deg") < 1.5) {
me["spoiler2Lex"].hide();
me["spoiler2Lrt"].show();
} else {
@ -579,7 +579,7 @@ var canvas_lowerECAM_fctl = {
me["spoiler2Lex"].show();
}
if (getprop("/controls/flight/spoiler-l3") < 0.033) {
if (getprop("/fdm/jsbsim/hydraulics/spoiler-l3/final-deg") < 1.5) {
me["spoiler3Lex"].hide();
me["spoiler3Lrt"].show();
} else {
@ -587,7 +587,7 @@ var canvas_lowerECAM_fctl = {
me["spoiler3Lex"].show();
}
if (getprop("/controls/flight/spoiler-l4") < 0.033) {
if (getprop("/fdm/jsbsim/hydraulics/spoiler-l4/final-deg") < 1.5) {
me["spoiler4Lex"].hide();
me["spoiler4Lrt"].show();
} else {
@ -595,7 +595,7 @@ var canvas_lowerECAM_fctl = {
me["spoiler4Lex"].show();
}
if (getprop("/controls/flight/spoiler-l5") < 0.033) {
if (getprop("/fdm/jsbsim/hydraulics/spoiler-l5/final-deg") < 1.5) {
me["spoiler5Lex"].hide();
me["spoiler5Lrt"].show();
} else {
@ -603,7 +603,7 @@ var canvas_lowerECAM_fctl = {
me["spoiler5Lex"].show();
}
if (getprop("/controls/flight/spoiler-r1") < 0.033) {
if (getprop("/fdm/jsbsim/hydraulics/spoiler-r1/final-deg") < 1.5) {
me["spoiler1Rex"].hide();
me["spoiler1Rrt"].show();
} else {
@ -611,7 +611,7 @@ var canvas_lowerECAM_fctl = {
me["spoiler1Rex"].show();
}
if (getprop("/controls/flight/spoiler-r2") < 0.033) {
if (getprop("/fdm/jsbsim/hydraulics/spoiler-r2/final-deg") < 1.5) {
me["spoiler2Rex"].hide();
me["spoiler2Rrt"].show();
} else {
@ -619,7 +619,7 @@ var canvas_lowerECAM_fctl = {
me["spoiler2Rex"].show();
}
if (getprop("/controls/flight/spoiler-r3") < 0.033) {
if (getprop("/fdm/jsbsim/hydraulics/spoiler-r3/final-deg") < 1.5) {
me["spoiler3Rex"].hide();
me["spoiler3Rrt"].show();
} else {
@ -627,7 +627,7 @@ var canvas_lowerECAM_fctl = {
me["spoiler3Rex"].show();
}
if (getprop("/controls/flight/spoiler-r4") < 0.033) {
if (getprop("/fdm/jsbsim/hydraulics/spoiler-r4/final-deg") < 1.5) {
me["spoiler4Rex"].hide();
me["spoiler4Rrt"].show();
} else {
@ -635,7 +635,7 @@ var canvas_lowerECAM_fctl = {
me["spoiler4Rex"].show();
}
if (getprop("/controls/flight/spoiler-r5") < 0.033) {
if (getprop("/fdm/jsbsim/hydraulics/spoiler-r5/final-deg") < 1.5) {
me["spoiler5Rex"].hide();
me["spoiler5Rrt"].show();
} else {

View file

@ -36,7 +36,7 @@
<type>rotate</type>
<object-name>AileronL</object-name>
<property>sim/multiplay/generic/float[6]</property>
<factor>50</factor>
<factor>1</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>-50</factor>
<factor>1</factor>
<axis>
<x1-m>7.6792</x1-m>
<y1-m>13.3967144</y1-m>
@ -315,11 +315,8 @@
<name>Left spoiler 1</name>
<type>rotate</type>
<object-name>SpoilerL1</object-name>
<property>controls/flight/spoiler-l1</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-l1/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>4.879</x1-m>
<y1-m>-4.455</y1-m>
@ -333,11 +330,8 @@
<name>Left spoiler 2</name>
<type>rotate</type>
<object-name>SpoilerL2</object-name>
<property>controls/flight/spoiler-l2</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-l2/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>5.084</x1-m>
<y1-m>-6.905</y1-m>
@ -351,11 +345,8 @@
<name>Left spoiler 3</name>
<type>rotate</type>
<object-name>SpoilerL3</object-name>
<property>controls/flight/spoiler-l3</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-l3/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>5.685</x1-m>
<y1-m>-8.581</y1-m>
@ -369,11 +360,8 @@
<name>Left spoiler 4</name>
<type>rotate</type>
<object-name>SpoilerL4</object-name>
<property>controls/flight/spoiler-l4</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-l4/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>6.253</x1-m>
<y1-m>-10.164</y1-m>
@ -387,11 +375,8 @@
<name>Left spoiler 5</name>
<type>rotate</type>
<object-name>SpoilerL5</object-name>
<property>controls/flight/spoiler-l5</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-l5/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>6.776</x1-m>
<y1-m>-11.622</y1-m>
@ -405,11 +390,8 @@
<name>Right spoiler 1</name>
<type>rotate</type>
<object-name>SpoilerR1</object-name>
<property>controls/flight/spoiler-r1</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-r1/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>4.879</x1-m>
<y1-m>6.201</y1-m>
@ -423,11 +405,8 @@
<name>Right spoiler 2</name>
<type>rotate</type>
<object-name>SpoilerR2</object-name>
<property>controls/flight/spoiler-r2</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-r2/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>5.678</x1-m>
<y1-m>8.563</y1-m>
@ -441,11 +420,8 @@
<name>Right spoiler 3</name>
<type>rotate</type>
<object-name>SpoilerR3</object-name>
<property>controls/flight/spoiler-r3</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-r3/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>6.246</x1-m>
<y1-m>10.145</y1-m>
@ -459,11 +435,8 @@
<name>Right spoiler 4</name>
<type>rotate</type>
<object-name>SpoilerR4</object-name>
<property>controls/flight/spoiler-r4</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-r4/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>6.769</x1-m>
<y1-m>11.603</y1-m>
@ -477,11 +450,8 @@
<name>Right spoiler 5</name>
<type>rotate</type>
<object-name>SpoilerR5</object-name>
<property>controls/flight/spoiler-r5</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-r5/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>7.292</x1-m>
<y1-m>13.06</y1-m>
@ -491,7 +461,7 @@
<z2-m>0.949</z2-m>
</axis>
</animation>
<animation>
<animation>
<name>SlatsL</name>
<type>translate</type>
<object-name>SlatR1</object-name>

View file

@ -36,7 +36,7 @@
<type>rotate</type>
<object-name>AileronL</object-name>
<property>sim/multiplay/generic/float[6]</property>
<factor>50</factor>
<factor>1</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>-50</factor>
<factor>1</factor>
<axis>
<x1-m>7.6792</x1-m>
<y1-m>13.3967144</y1-m>
@ -315,11 +315,8 @@
<name>Left spoiler 1</name>
<type>rotate</type>
<object-name>SpoilerL1</object-name>
<property>controls/flight/spoiler-l1</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-l1/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>4.879</x1-m>
<y1-m>-4.455</y1-m>
@ -333,11 +330,8 @@
<name>Left spoiler 2</name>
<type>rotate</type>
<object-name>SpoilerL2</object-name>
<property>controls/flight/spoiler-l2</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-l2/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>5.084</x1-m>
<y1-m>-6.905</y1-m>
@ -351,11 +345,8 @@
<name>Left spoiler 3</name>
<type>rotate</type>
<object-name>SpoilerL3</object-name>
<property>controls/flight/spoiler-l3</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-l3/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>5.685</x1-m>
<y1-m>-8.581</y1-m>
@ -369,11 +360,8 @@
<name>Left spoiler 4</name>
<type>rotate</type>
<object-name>SpoilerL4</object-name>
<property>controls/flight/spoiler-l4</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-l4/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>6.253</x1-m>
<y1-m>-10.164</y1-m>
@ -387,11 +375,8 @@
<name>Left spoiler 5</name>
<type>rotate</type>
<object-name>SpoilerL5</object-name>
<property>controls/flight/spoiler-l5</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-l5/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>6.776</x1-m>
<y1-m>-11.622</y1-m>
@ -405,11 +390,8 @@
<name>Right spoiler 1</name>
<type>rotate</type>
<object-name>SpoilerR1</object-name>
<property>controls/flight/spoiler-r1</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-r1/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>4.879</x1-m>
<y1-m>6.201</y1-m>
@ -423,11 +405,8 @@
<name>Right spoiler 2</name>
<type>rotate</type>
<object-name>SpoilerR2</object-name>
<property>controls/flight/spoiler-r2</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-r2/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>5.678</x1-m>
<y1-m>8.563</y1-m>
@ -441,11 +420,8 @@
<name>Right spoiler 3</name>
<type>rotate</type>
<object-name>SpoilerR3</object-name>
<property>controls/flight/spoiler-r3</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-r3/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>6.246</x1-m>
<y1-m>10.145</y1-m>
@ -459,11 +435,8 @@
<name>Right spoiler 4</name>
<type>rotate</type>
<object-name>SpoilerR4</object-name>
<property>controls/flight/spoiler-r4</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-r4/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>6.769</x1-m>
<y1-m>11.603</y1-m>
@ -477,11 +450,8 @@
<name>Right spoiler 5</name>
<type>rotate</type>
<object-name>SpoilerR5</object-name>
<property>controls/flight/spoiler-r5</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-r5/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>7.292</x1-m>
<y1-m>13.06</y1-m>
@ -491,7 +461,7 @@
<z2-m>0.949</z2-m>
</axis>
</animation>
<animation>
<animation>
<name>SlatsL</name>
<type>translate</type>
<object-name>SlatR1</object-name>

View file

@ -36,7 +36,7 @@
<type>rotate</type>
<object-name>AileronL</object-name>
<property>sim/multiplay/generic/float[6]</property>
<factor>50</factor>
<factor>1</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>-50</factor>
<factor>1</factor>
<axis>
<x1-m>7.6792</x1-m>
<y1-m>13.3967144</y1-m>
@ -315,11 +315,8 @@
<name>Left spoiler 1</name>
<type>rotate</type>
<object-name>SpoilerL1</object-name>
<property>controls/flight/spoiler-l1</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-l1/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>4.879</x1-m>
<y1-m>-4.455</y1-m>
@ -333,11 +330,8 @@
<name>Left spoiler 2</name>
<type>rotate</type>
<object-name>SpoilerL2</object-name>
<property>controls/flight/spoiler-l2</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-l2/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>5.084</x1-m>
<y1-m>-6.905</y1-m>
@ -351,11 +345,8 @@
<name>Left spoiler 3</name>
<type>rotate</type>
<object-name>SpoilerL3</object-name>
<property>controls/flight/spoiler-l3</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-l3/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>5.685</x1-m>
<y1-m>-8.581</y1-m>
@ -369,11 +360,8 @@
<name>Left spoiler 4</name>
<type>rotate</type>
<object-name>SpoilerL4</object-name>
<property>controls/flight/spoiler-l4</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-l4/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>6.253</x1-m>
<y1-m>-10.164</y1-m>
@ -387,11 +375,8 @@
<name>Left spoiler 5</name>
<type>rotate</type>
<object-name>SpoilerL5</object-name>
<property>controls/flight/spoiler-l5</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-l5/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>6.776</x1-m>
<y1-m>-11.622</y1-m>
@ -405,11 +390,8 @@
<name>Right spoiler 1</name>
<type>rotate</type>
<object-name>SpoilerR1</object-name>
<property>controls/flight/spoiler-r1</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-r1/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>4.879</x1-m>
<y1-m>6.201</y1-m>
@ -423,11 +405,8 @@
<name>Right spoiler 2</name>
<type>rotate</type>
<object-name>SpoilerR2</object-name>
<property>controls/flight/spoiler-r2</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-r2/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>5.678</x1-m>
<y1-m>8.563</y1-m>
@ -441,11 +420,8 @@
<name>Right spoiler 3</name>
<type>rotate</type>
<object-name>SpoilerR3</object-name>
<property>controls/flight/spoiler-r3</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-r3/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>6.246</x1-m>
<y1-m>10.145</y1-m>
@ -459,11 +435,8 @@
<name>Right spoiler 4</name>
<type>rotate</type>
<object-name>SpoilerR4</object-name>
<property>controls/flight/spoiler-r4</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-r4/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>6.769</x1-m>
<y1-m>11.603</y1-m>
@ -477,11 +450,8 @@
<name>Right spoiler 5</name>
<type>rotate</type>
<object-name>SpoilerR5</object-name>
<property>controls/flight/spoiler-r5</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-r5/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>7.292</x1-m>
<y1-m>13.06</y1-m>
@ -491,7 +461,7 @@
<z2-m>0.949</z2-m>
</axis>
</animation>
<animation>
<animation>
<name>SlatsL</name>
<type>translate</type>
<object-name>SlatR1</object-name>

View file

@ -36,7 +36,7 @@
<type>rotate</type>
<object-name>AileronL</object-name>
<property>sim/multiplay/generic/float[6]</property>
<factor>50</factor>
<factor>1</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>-50</factor>
<factor>1</factor>
<axis>
<x1-m>7.6792</x1-m>
<y1-m>13.3967144</y1-m>
@ -315,11 +315,8 @@
<name>Left spoiler 1</name>
<type>rotate</type>
<object-name>SpoilerL1</object-name>
<property>controls/flight/spoiler-l1</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-l1/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>4.879</x1-m>
<y1-m>-4.455</y1-m>
@ -333,11 +330,8 @@
<name>Left spoiler 2</name>
<type>rotate</type>
<object-name>SpoilerL2</object-name>
<property>controls/flight/spoiler-l2</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-l2/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>5.084</x1-m>
<y1-m>-6.905</y1-m>
@ -351,11 +345,8 @@
<name>Left spoiler 3</name>
<type>rotate</type>
<object-name>SpoilerL3</object-name>
<property>controls/flight/spoiler-l3</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-l3/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>5.685</x1-m>
<y1-m>-8.581</y1-m>
@ -369,11 +360,8 @@
<name>Left spoiler 4</name>
<type>rotate</type>
<object-name>SpoilerL4</object-name>
<property>controls/flight/spoiler-l4</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-l4/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>6.253</x1-m>
<y1-m>-10.164</y1-m>
@ -387,11 +375,8 @@
<name>Left spoiler 5</name>
<type>rotate</type>
<object-name>SpoilerL5</object-name>
<property>controls/flight/spoiler-l5</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-l5/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>6.776</x1-m>
<y1-m>-11.622</y1-m>
@ -405,11 +390,8 @@
<name>Right spoiler 1</name>
<type>rotate</type>
<object-name>SpoilerR1</object-name>
<property>controls/flight/spoiler-r1</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-r1/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>4.879</x1-m>
<y1-m>6.201</y1-m>
@ -423,11 +405,8 @@
<name>Right spoiler 2</name>
<type>rotate</type>
<object-name>SpoilerR2</object-name>
<property>controls/flight/spoiler-r2</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-r2/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>5.678</x1-m>
<y1-m>8.563</y1-m>
@ -441,11 +420,8 @@
<name>Right spoiler 3</name>
<type>rotate</type>
<object-name>SpoilerR3</object-name>
<property>controls/flight/spoiler-r3</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-r3/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>6.246</x1-m>
<y1-m>10.145</y1-m>
@ -459,11 +435,8 @@
<name>Right spoiler 4</name>
<type>rotate</type>
<object-name>SpoilerR4</object-name>
<property>controls/flight/spoiler-r4</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-r4/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>6.769</x1-m>
<y1-m>11.603</y1-m>
@ -477,11 +450,8 @@
<name>Right spoiler 5</name>
<type>rotate</type>
<object-name>SpoilerR5</object-name>
<property>controls/flight/spoiler-r5</property>
<interpolation>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>35</dep></entry>
</interpolation>
<property>fdm/jsbsim/hydraulics/spoiler-r5/final-deg</property>
<factor>1</factor>
<axis>
<x1-m>7.292</x1-m>
<y1-m>13.06</y1-m>
@ -491,7 +461,7 @@
<z2-m>0.949</z2-m>
</axis>
</animation>
<animation>
<animation>
<name>SlatsL</name>
<type>translate</type>
<object-name>SlatR1</object-name>

View file

@ -61,13 +61,23 @@
</product>
</function>
<function name="aero/force/Lift_pitch_control">
<description>Lift due to pitch control deflection</description>
<function name="aero/force/Lift_left_elevator">
<description>Lift due to left elevator deflection</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>fcs/pitch-pos-geared</property>
<value>0.2395</value>
<toradians><property>hydraulics/elevator-l/final-deg-aero</property></toradians>
<value>0.11975</value>
</product>
</function>
<function name="aero/force/Lift_right_elevator">
<description>Lift due to right elevator deflection</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<toradians><property>hydraulics/elevator-r/final-deg-aero</property></toradians>
<value>0.11975</value>
</product>
</function>
@ -76,7 +86,7 @@
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>fcs/pitch-trim-pos-geared</property>
<toradians><property>hydraulics/elevator-trim/final-deg-aero</property></toradians>
<value>0.0151</value>
</product>
</function>
@ -220,13 +230,23 @@
</product>
</function>
<function name="aero/force/Drag_pitch_control">
<description>Drag due to pitch control deflection</description>
<function name="aero/force/Drag_left_elevator">
<description>Drag due to left elevator deflection</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<abs><property>fcs/pitch-pos-geared</property></abs>
<value>0.02</value>
<abs><toradians><property>hydraulics/elevator-l/final-deg-aero</property></toradians></abs>
<value>0.01</value>
</product>
</function>
<function name="aero/force/Drag_right_elevator">
<description>Drag due to right elevator deflection</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<abs><toradians><property>hydraulics/elevator-r/final-deg-aero</property></toradians></abs>
<value>0.01</value>
</product>
</function>
@ -235,7 +255,7 @@
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<abs><property>fcs/pitch-trim-pos-geared</property></abs>
<abs><toradians><property>hydraulics/elevator-trim/final-deg-aero</property></toradians></abs>
<value>0.02</value>
</product>
</function>
@ -270,13 +290,60 @@
</product>
</function>
<function name="aero/force/Drag_speedbrake">
<description>Drag due to speedbrake</description>
<function name="aero/force/Drag_left_aileron">
<description>Drag due to left aileron</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>fcs/speedbrake-pos-norm</property>
<value>0.0275</value>
<abs><toradians><property>hydraulics/aileron-l/final-deg</property></toradians></abs>
<value>0.00811826141696</value>
</product>
</function>
<function name="aero/force/Drag_left_spoiler">
<description>Drag due to left spoiler</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<toradians><property>fcs/spoiler-left-deg</property></toradians>
<value>0.025369566928</value>
</product>
</function>
<function name="aero/force/Drag_right_spoiler">
<description>Drag due to right spoiler</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<toradians><property>fcs/spoiler-right-deg</property></toradians>
<value>0.025369566928</value>
</product>
</function>
<function name="aero/force/Drag_right_aileron">
<description>Drag due to right aileron</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<abs><toradians><property>hydraulics/aileron-r/final-deg</property></toradians></abs>
<value>0.00811826141696</value>
</product>
</function>
<function name="aero/force/Drag_wingice">
<description>Drag_due_to_ice_on_wing</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<table>
<independentVar>ice/wing</independentVar>
<tableData>
0.0 0.000
0.5 0.004
1.0 0.010
2.0 0.100
</tableData>
</table>
</product>
</function>
@ -333,23 +400,6 @@
<value>0.2653</value>
</product>
</function>
<function name="aero/force/Drag_wingice">
<description>Drag_due_to_ice_on_wing</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<table>
<independentVar>ice/wing</independentVar>
<tableData>
0.0 0.000
0.5 0.004
1.0 0.010
2.0 0.100
</tableData>
</table>
</product>
</function>
</axis>
@ -390,14 +440,47 @@
</product>
</function>
<function name="aero/moment/Roll_control">
<description>Roll moment due to roll control</description>
<function name="aero/moment/Roll_left_aileron">
<description>Roll moment due to left aileron</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<property>fcs/roll-pos-rad</property>
<value>0.11</value>
<toradians><property>hydraulics/aileron-l/final-deg</property></toradians>
<value>0.044</value>
</product>
</function>
<function name="aero/moment/Roll_right_aileron">
<description>Roll moment due to right aileron</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<toradians><property>hydraulics/aileron-r/final-deg</property></toradians>
<value>-0.044</value>
</product>
</function>
<function name="aero/moment/Roll_left_spoiler">
<description>Roll moment due to left spoiler</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<toradians><property>fcs/spoiler-left-deg</property></toradians>
<value>-0.033</value>
</product>
</function>
<function name="aero/moment/Roll_right_spoiler">
<description>Roll moment due to right spoiler</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<toradians><property>fcs/spoiler-right-deg</property></toradians>
<value>0.033</value>
</product>
</function>
@ -427,24 +510,35 @@
</product>
</function>
<function name="aero/moment/Pitch_control">
<description>Pitch moment due to pitch control</description>
<function name="aero/moment/Pitch_left_elevator">
<description>Pitch moment due to left elevator</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/cbarw-ft</property>
<property>fcs/pitch-pos-geared</property>
<value>-1.425</value>
<toradians><property>hydraulics/elevator-l/final-deg-aero</property></toradians>
<value>-0.7125</value>
</product>
</function>
<function name="aero/moment/Pitch_trim_control">
<description>Pitch moment due to pitch trim control</description>
<function name="aero/moment/Pitch_right_elevator">
<description>Pitch moment due to right elevator</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/cbarw-ft</property>
<property>fcs/pitch-trim-pos-geared</property>
<toradians><property>hydraulics/elevator-r/final-deg-aero</property></toradians>
<value>-0.7125</value>
</product>
</function>
<function name="aero/moment/Pitch_elevator_trim">
<description>Pitch moment due to elevator trim control</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/cbarw-ft</property>
<toradians><property>hydraulics/elevator-trim/final-deg-aero</property></toradians>
<value>-2.845</value>
</product>
</function>
@ -518,21 +612,10 @@
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<property>fcs/rudder-pos-rad</property>
<toradians><property>hydraulics/rudder/final-deg</property></toradians>
<value>0.053</value>
</product>
</function>
<function name="aero/moment/Yaw_aileron">
<description>Adverse yaw</description>
<product>
<property>aero/qbar-psf</property>
<property>metrics/Sw-sqft</property>
<property>metrics/bw-ft</property>
<property>fcs/roll-pos-rad</property>
<value>0</value>
</product>
</function>
</axis>

View file

@ -13,6 +13,7 @@
<property value="0">fbw/pitch/g-pi</property>
<property value="0">fbw/pitch/pid</property>
<property value="0">fbw/yaw/tc-pid</property>
<property value="0">fbw/spoiler-output</property>
<!-- Default gains for tuning -->
<property value="0">fbw/roll/p-gain</property>
@ -546,7 +547,6 @@
/it-fbw/law ne 3
/systems/failures/aileron-left eq 1
</test>
<output>/controls/flight/spoiler-left-fbw-cmd</output>
</switch>
<switch name="fbw/roll/s-r">
@ -559,7 +559,6 @@
/it-fbw/law ne 3
/systems/failures/aileron-right eq 1
</test>
<output>/controls/flight/spoiler-right-fbw-cmd</output>
</switch>
</channel>
@ -1179,11 +1178,6 @@
</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>
@ -1195,19 +1189,24 @@
</table>
</function>
</fcs_function>
</channel>
<channel name="Aileron Common">
<summer name="hydraulics/roll-fbw-summer">
<input>fbw/aileron-output</input>
<input>/controls/flight/aileron-trim</input>
<clipto>
<min>-1</min>
<max>1</max>
</clipto>
</summer>
<actuator name="spoilers/anti-droop-cmd">
<input>fbw/spoiler-output</input>
<rate_limit sense="incr">0.9</rate_limit>
<rate_limit sense="decr">2.5</rate_limit>
</actuator>
<fcs_function name="spoilers/anti-droop-final">
<function>
<table>
<independentVar lookup="row">spoilers/anti-droop-cmd</independentVar>
<tableData>
0.5 0.0
1.0 1.0
</tableData>
</table>
</function>
</fcs_function>
</channel>
@ -1215,31 +1214,22 @@
<fcs_function name="hydraulics/aileron-l/extended">
<function>
<product>
<sum>
<property>/controls/flight/speedbrake-norm</property>
<product>
<property>hydraulics/roll-fbw-summer</property>
<value>-1</value>
</product>
</sum>
<value>-0.5</value>
</product>
<sum>
<value>-1</value>
<property>fbw/aileron-output</property>
</sum>
</function>
</fcs_function>
<fcs_function name="hydraulics/aileron-l/retracted">
<function>
<sum>
<product>
<property>hydraulics/roll-fbw-summer</property>
<value>0.5</value>
</product>
<property>fbw/aileron-output</property>
<table>
<independentVar lookup="row">/fdm/jsbsim/fcs/flap-pos-deg</independentVar>
<tableData>
1 0.00
5 0.13
5 0.26
</tableData>
</table>
</sum>
@ -1258,7 +1248,7 @@
<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
spoilers/anti-droop-final ne 0
/gear/gear[1]/wow eq 1
/gear/gear[2]/wow eq 1
/systems/failures/aileron-left eq 0
@ -1268,16 +1258,23 @@
/systems/failures/aileron-left eq 0
</test>
<clipto>
<min>-0.5</min>
<max>0.5</max>
<min>-1.0</min>
<max>1.0</max>
</clipto>
</switch>
<lag_filter name="hydraulics/aileron-l/final">
<input>hydraulics/aileron-l/switch</input>
<c1>14.5</c1>
<output>/controls/flight/aileron-left</output>
</lag_filter>
<aerosurface_scale name="hydraulics/aileron-l/final-deg">
<input>hydraulics/aileron-l/final</input>
<range>
<min>-25</min>
<max>25</max>
</range>
</aerosurface_scale>
</channel>
@ -1287,10 +1284,10 @@
<function>
<product>
<sum>
<property>/controls/flight/speedbrake-norm</property>
<property>hydraulics/roll-fbw-summer</property>
<value>1</value>
<property>fbw/aileron-output</property>
</sum>
<value>0.5</value>
<value>-1.0</value>
</product>
</function>
</fcs_function>
@ -1299,14 +1296,14 @@
<function>
<sum>
<product>
<property>hydraulics/roll-fbw-summer</property>
<value>0.5</value>
<property>fbw/aileron-output</property>
<value>-1.0</value>
</product>
<table>
<independentVar lookup="row">/fdm/jsbsim/fcs/flap-pos-deg</independentVar>
<tableData>
1 0.00
5 -0.13
5 0.26
</tableData>
</table>
</sum>
@ -1322,10 +1319,10 @@
</switch>
<switch name="hydraulics/aileron-r/switch">
<default value="hydraulics/aileron-droop-neg"/>
<default value="hydraulics/aileron-droop"/>
<test logic="AND" value="hydraulics/aileron-r/extended">
hydraulics/aileron-r/pressure-switch-or eq 1
/controls/flight/speedbrake-norm eq 1
spoilers/anti-droop-final ne 0
/gear/gear[1]/wow eq 1
/gear/gear[2]/wow eq 1
/systems/failures/aileron-right eq 0
@ -1335,57 +1332,21 @@
/systems/failures/aileron-right eq 0
</test>
<clipto>
<min>-0.5</min>
<max>0.5</max>
<min>-1.0</min>
<max>1.0</max>
</clipto>
</switch>
<lag_filter name="hydraulics/aileron-r/final">
<input>hydraulics/aileron-r/switch</input>
<c1>14.5</c1>
<output>/controls/flight/aileron-right</output>
</lag_filter>
</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>
<aerosurface_scale name="hydraulics/aileron-r/final-deg">
<input>hydraulics/aileron-r/final</input>
<range>
<min>-0.436332</min>
<max>0.436332</max>
<min>-25</min>
<max>25</max>
</range>
</aerosurface_scale>
@ -1407,11 +1368,6 @@
/velocities/groundspeed-kt lt 75
</test>
</switch>
<pure_gain name="hydraulics/elevator-output-gain">
<input>hydraulics/elevator-output-switch</input>
<gain>0.5</gain>
</pure_gain>
</channel>
@ -1427,13 +1383,13 @@
<switch name="hydraulics/elevator-l/switch">
<default value="hydraulics/elevator-droop"/>
<test logic="AND" value="hydraulics/elevator-output-gain">
<test logic="AND" value="hydraulics/elevator-output-switch">
hydraulics/elevator-l/pressure-switch-or eq 1
/systems/failures/elevator-left eq 0
</test>
<clipto>
<min>-0.5</min>
<max>0.5</max>
<min>-1.0</min>
<max>1.0</max>
</clipto>
</switch>
@ -1442,6 +1398,14 @@
<c1>14.5</c1>
<output>/controls/flight/elevator-left</output>
</lag_filter>
<aerosurface_scale name="hydraulics/elevator-l/final-deg">
<input>hydraulics/elevator-l/final</input>
<range>
<min>-30</min>
<max>17</max>
</range>
</aerosurface_scale>
</channel>
@ -1457,13 +1421,13 @@
<switch name="hydraulics/elevator-r/switch">
<default value="hydraulics/elevator-droop"/>
<test logic="AND" value="hydraulics/elevator-output-gain">
<test logic="AND" value="hydraulics/elevator-output-switch">
hydraulics/elevator-r/pressure-switch-or eq 1
/systems/failures/elevator-right eq 0
</test>
<clipto>
<min>-0.5</min>
<max>0.5</max>
<min>-1.0</min>
<max>1.0</max>
</clipto>
</switch>
@ -1472,50 +1436,20 @@
<c1>14.5</c1>
<output>/controls/flight/elevator-right</output>
</lag_filter>
</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>
<aerosurface_scale name="hydraulics/elevator-r/final-deg">
<input>hydraulics/elevator-r/final</input>
<range>
<min>-0.523599</min>
<max>0.296706</max>
<min>-30</min>
<max>17</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">
<channel name="Elevator Trim">
<aerosurface_scale name="fcs/pitch-trim-cmd-deg">
<aerosurface_scale name="hydraulics/elevator-trim/cmd-deg">
<input>/controls/flight/elevator-trim</input>
<domain>
<min>-1.00</min>
@ -1527,20 +1461,13 @@
</range>
</aerosurface_scale>
<aerosurface_scale name="fcs/pitch-trim-pos-rad">
<lag_filter name="hydraulics/elevator-trim/lag">
<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>
<c1>0.5</c1>
</lag_filter>
<aerosurface_scale name="fcs/pitch-trim-pos-deg">
<input>/controls/flight/elevator-trim-fdm</input>
<aerosurface_scale name="hydraulics/elevator-trim/final-deg">
<input>hydraulics/elevator-trim/lag</input>
<domain>
<min>-1.00</min>
<max>0.32</max>
@ -1550,9 +1477,13 @@
<max>4.0</max>
</range>
</aerosurface_scale>
</channel>
<channel name="Pitch Aero">
<scheduled_gain name="fcs/pitch-trim-pos-geared">
<input>fcs/pitch-trim-pos-rad</input>
<scheduled_gain name="hydraulics/elevator-l/final-deg-aero">
<input>hydraulics/elevator-l/final-deg</input>
<table>
<independentVar lookup="row">velocities/mach</independentVar>
<independentVar lookup="column">atmosphere/density-altitude</independentVar>
@ -1563,52 +1494,32 @@
</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>
<scheduled_gain name="hydraulics/elevator-r/final-deg-aero">
<input>hydraulics/elevator-r/final-deg</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>
<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>
<scheduled_gain name="hydraulics/elevator-trim/final-deg-aero">
<input>hydraulics/elevator-trim/final-deg</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>
@ -1693,7 +1604,7 @@
</test>
</switch>
<aerosurface_scale name="fcs/rudder-trim-cmd-deg">
<aerosurface_scale name="hydraulics/rudder/trim-cmd-deg">
<input>/controls/flight/rudder-trim</input>
<domain>
<min>-1.0</min>
@ -1737,21 +1648,61 @@
<lag_filter name="hydraulics/rudder/final">
<input>hydraulics/rudder/switch</input>
<c1>13.5</c1>
<output>/controls/flight/rudder-fdm</output>
</lag_filter>
<aerosurface_scale name="hydraulics/rudder/final-deg">
<input>hydraulics/rudder/final</input>
<range>
<min>-25</min>
<max>25</max>
</range>
</aerosurface_scale>
</channel>
<channel name="Yaw">
<channel name="FADEC">
<aerosurface_scale name="rubbish/rudder-pos-rad">
<input>hydraulics/rudder/final</input>
<range>
<min>-0.436332</min>
<max>0.436332</max>
</range>
<output>fcs/rudder-pos-rad</output>
</aerosurface_scale>
<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>
@ -1838,16 +1789,6 @@
</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">
<switch name="hydraulics/tiller/switch">

924
Systems/a320-spoiler.xml Normal file
View file

@ -0,0 +1,924 @@
<!-- Airbus A320 FCS -->
<!-- Joshua Davidson (it0uchpods) -->
<!--
##############################################
# Copyright (c) Joshua Davidson (it0uchpods) #
##############################################
-->
<system name="A320: Spoilers">
<property value="0">hydraulics/spoiler-l2/main-cmd-feedback</property>
<channel name="Spoiler Logic">
<switch name="spoilers/main-gear-or">
<default value="0"/>
<test logic="OR" value="1">
gear/unit[1]/WOW eq 1
gear/unit[2]/WOW eq 1
</test>
</switch>
<switch name="spoilers/main-gear-and">
<default value="0"/>
<test logic="AND" value="1">
gear/unit[1]/WOW eq 1
gear/unit[2]/WOW eq 1
</test>
</switch>
<switch name="spoilers/throttle[0]">
<default value="/controls/engines/engine[0]/throttle"/>
<test logic="OR" value="0">
/controls/engines/engine[0]/reverser eq 1
</test>
</switch>
<switch name="spoilers/throttle[1]">
<default value="/controls/engines/engine[1]/throttle"/>
<test logic="OR" value="0">
/controls/engines/engine[1]/reverser eq 1
</test>
</switch>
<switch name="spoilers/auto-speedbrake-cmd">
<default value="spoilers/auto-speedbrake-cmd"/>
<test logic="OR" value="0"> <!-- Reset -->
spoilers/throttle[0] ge 0.01
spoilers/throttle[1] ge 0.01
/controls/flight/speedbrake-arm ne 1
</test>
<test logic="AND" value="1"> <!-- Set -->
spoilers/throttle[0] lt 0.01
spoilers/throttle[1] lt 0.01
/controls/flight/speedbrake-arm eq 1
spoilers/main-gear-or eq 1
/velocities/groundspeed-kt ge 72
</test>
</switch>
<switch name="spoilers/max-spoiler">
<default value="1.0"/>
<test logic="AND" value="0.5">
spoilers/main-gear-or eq 0
fbw/fmgc/enabled eq 1
</test>
</switch>
<fcs_function name="spoilers/speedbrake-nul">
<function>
<table>
<independentVar lookup="row">/controls/flight/speedbrake</independentVar>
<tableData>
0.10 0.0
0.45 0.5
0.55 0.5
0.95 1.0
</tableData>
</table>
</function>
</fcs_function>
<summer name="spoilers/main-cmd">
<input>spoilers/speedbrake-nul</input>
<input>spoilers/auto-speedbrake-cmd</input>
<clipto>
<min>0.0</min>
<max>spoilers/max-spoiler</max>
</clipto>
<output>fbw/spoiler-output</output>
</summer>
</channel>
<channel name="Spoiler L1">
<switch name="hydraulics/spoiler-l1/switch">
<default value="hydraulics/spoiler-l1/switch"/>
<test logic="AND" value="0">
/systems/hydraulic/green-psi ge 1500
spoilers/main-gear-and eq 0
</test>
<test logic="AND" value="0">
/systems/hydraulic/green-psi ge 1500
/systems/failures/spoiler-l1 eq 1
</test>
<test logic="AND" value="spoilers/main-cmd">
/systems/hydraulic/green-psi ge 1500
spoilers/main-gear-and eq 1
/systems/failures/spoiler-l1 eq 0
</test>
<clipto>
<min>0.0</min>
<max>1.0</max>
</clipto>
</switch>
<actuator name="hydraulics/spoiler-l1/final">
<input>hydraulics/spoiler-l1/switch</input>
<rate_limit>0.9</rate_limit>
</actuator>
<lag_filter name="hydraulics/spoiler-l1/final-lag">
<input>hydraulics/spoiler-l1/final</input>
<c1>16.3</c1>
</lag_filter>
<pure_gain name="hydraulics/spoiler-l1/final-deg">
<input>hydraulics/spoiler-l1/final-lag</input>
<gain>40.0</gain>
</pure_gain>
</channel>
<channel name="Spoiler L2">
<switch name="hydraulics/spoiler-l2/main-cmd-rate">
<default value="0.72"/>
<test value="0.9">
spoilers/main-gear-and eq 1
</test>
</switch>
<actuator name="hydraulics/spoiler-l2/main-cmd">
<input>spoilers/main-cmd</input>
<rate_limit>hydraulics/spoiler-l2/main-cmd-rate</rate_limit>
<output>hydraulics/spoiler-l2/main-cmd-feedback</output>
</actuator>
<fcs_function name="hydraulics/spoiler-l2/air-extended">
<function>
<sum>
<product>
<property>hydraulics/spoiler-l2/main-cmd</property>
<value>0.5</value>
</product>
<table>
<independentVar lookup="row">fbw/roll/s-l</independentVar>
<tableData>
0.0 0.0
1.0 -0.4
</tableData>
</table>
</sum>
</function>
</fcs_function>
<fcs_function name="hydraulics/spoiler-l2/ground-extended">
<function>
<sum>
<property>spoilers/main-cmd</property>
<table>
<independentVar lookup="row">fbw/roll/s-l</independentVar>
<tableData>
0.0 0.0
1.0 -0.5
</tableData>
</table>
</sum>
</function>
</fcs_function>
<fcs_function name="hydraulics/spoiler-l2/retracted">
<function>
<table>
<independentVar lookup="row">fbw/roll/s-l</independentVar>
<tableData>
-1.0 0.5
0.0 0.0
</tableData>
</table>
</function>
</fcs_function>
<switch name="hydraulics/spoiler-l2/switch">
<default value="hydraulics/spoiler-l2/switch"/>
<test logic="AND" value="0">
/systems/hydraulic/yellow-psi ge 1500
/systems/failures/spoiler-l2 eq 1
</test>
<test logic="AND" value="hydraulics/spoiler-l2/air-extended">
/systems/hydraulic/yellow-psi ge 1500
spoilers/main-gear-and eq 0
/systems/failures/spoiler-l2 eq 0
spoilers/main-cmd gt 0
</test>
<test logic="AND" value="hydraulics/spoiler-l2/ground-extended">
/systems/hydraulic/yellow-psi ge 1500
spoilers/main-gear-and eq 1
/systems/failures/spoiler-l2 eq 0
spoilers/main-cmd gt 0
</test>
<test logic="AND" value="hydraulics/spoiler-l2/retracted">
/systems/hydraulic/yellow-psi ge 1500
/systems/failures/spoiler-l2 eq 0
spoilers/main-cmd eq 0
</test>
<clipto>
<min>0.0</min>
<max>1.0</max>
</clipto>
</switch>
<actuator name="hydraulics/spoiler-l2/final">
<input>hydraulics/spoiler-l2/switch</input>
<rate_limit>0.9</rate_limit>
</actuator>
<lag_filter name="hydraulics/spoiler-l2/final-lag">
<input>hydraulics/spoiler-l2/final</input>
<c1>16.3</c1>
</lag_filter>
<pure_gain name="hydraulics/spoiler-l2/final-deg">
<input>hydraulics/spoiler-l2/final-lag</input>
<gain>40.0</gain>
</pure_gain>
</channel>
<channel name="Spoiler L3">
<fcs_function name="hydraulics/spoiler-l3/air-extended">
<function>
<sum>
<property>spoilers/main-cmd</property>
<table>
<independentVar lookup="row">fbw/roll/s-l</independentVar>
<tableData>
0.0 0.0
1.0 -0.5
</tableData>
</table>
</sum>
</function>
</fcs_function>
<fcs_function name="hydraulics/spoiler-l3/ground-extended">
<function>
<sum>
<property>spoilers/main-cmd</property>
<table>
<independentVar lookup="row">fbw/roll/s-l</independentVar>
<tableData>
0.0 0.0
1.0 -0.5
</tableData>
</table>
</sum>
</function>
</fcs_function>
<fcs_function name="hydraulics/spoiler-l3/retracted">
<function>
<table>
<independentVar lookup="row">fbw/roll/s-l</independentVar>
<tableData>
-1.0 0.5
0.0 0.0
</tableData>
</table>
</function>
</fcs_function>
<switch name="hydraulics/spoiler-l3/switch">
<default value="hydraulics/spoiler-l3/switch"/>
<test logic="AND" value="0">
/systems/hydraulic/blue-psi ge 1500
/systems/failures/spoiler-l3 eq 1
</test>
<test logic="AND" value="hydraulics/spoiler-l3/air-extended">
/systems/hydraulic/blue-psi ge 1500
spoilers/main-gear-and eq 0
/systems/failures/spoiler-l3 eq 0
spoilers/main-cmd gt 0
</test>
<test logic="AND" value="hydraulics/spoiler-l3/ground-extended">
/systems/hydraulic/blue-psi ge 1500
spoilers/main-gear-and eq 1
/systems/failures/spoiler-l3 eq 0
spoilers/main-cmd gt 0
</test>
<test logic="AND" value="hydraulics/spoiler-l3/retracted">
/systems/hydraulic/blue-psi ge 1500
/systems/failures/spoiler-l3 eq 0
spoilers/main-cmd eq 0
</test>
<clipto>
<min>0.0</min>
<max>1.0</max>
</clipto>
</switch>
<actuator name="hydraulics/spoiler-l3/final">
<input>hydraulics/spoiler-l3/switch</input>
<rate_limit>0.9</rate_limit>
</actuator>
<lag_filter name="hydraulics/spoiler-l3/final-lag">
<input>hydraulics/spoiler-l3/final</input>
<c1>16.3</c1>
</lag_filter>
<pure_gain name="hydraulics/spoiler-l3/final-deg">
<input>hydraulics/spoiler-l3/final-lag</input>
<gain>40.0</gain>
</pure_gain>
</channel>
<channel name="Spoiler L4">
<fcs_function name="hydraulics/spoiler-l4/air-extended">
<function>
<sum>
<property>spoilers/main-cmd</property>
<table>
<independentVar lookup="row">fbw/roll/s-l</independentVar>
<tableData>
0.0 0.0
1.0 -0.5
</tableData>
</table>
</sum>
</function>
</fcs_function>
<fcs_function name="hydraulics/spoiler-l4/ground-extended">
<function>
<sum>
<property>spoilers/main-cmd</property>
<table>
<independentVar lookup="row">fbw/roll/s-l</independentVar>
<tableData>
0.0 0.0
1.0 -0.5
</tableData>
</table>
</sum>
</function>
</fcs_function>
<fcs_function name="hydraulics/spoiler-l4/retracted">
<function>
<table>
<independentVar lookup="row">fbw/roll/s-l</independentVar>
<tableData>
-1.0 0.5
0.0 0.0
</tableData>
</table>
</function>
</fcs_function>
<switch name="hydraulics/spoiler-l4/switch">
<default value="hydraulics/spoiler-l4/switch"/>
<test logic="AND" value="0">
/systems/hydraulic/yellow-psi ge 1500
/systems/failures/spoiler-l4 eq 1
</test>
<test logic="AND" value="hydraulics/spoiler-l4/air-extended">
/systems/hydraulic/yellow-psi ge 1500
spoilers/main-gear-and eq 0
/systems/failures/spoiler-l4 eq 0
spoilers/main-cmd gt 0
</test>
<test logic="AND" value="hydraulics/spoiler-l4/ground-extended">
/systems/hydraulic/yellow-psi ge 1500
spoilers/main-gear-and eq 1
/systems/failures/spoiler-l4 eq 0
spoilers/main-cmd gt 0
</test>
<test logic="AND" value="hydraulics/spoiler-l4/retracted">
/systems/hydraulic/yellow-psi ge 1500
/systems/failures/spoiler-l4 eq 0
spoilers/main-cmd eq 0
</test>
<clipto>
<min>0.0</min>
<max>1.0</max>
</clipto>
</switch>
<actuator name="hydraulics/spoiler-l4/final">
<input>hydraulics/spoiler-l4/switch</input>
<rate_limit>0.9</rate_limit>
</actuator>
<lag_filter name="hydraulics/spoiler-l4/final-lag">
<input>hydraulics/spoiler-l4/final</input>
<c1>16.3</c1>
</lag_filter>
<pure_gain name="hydraulics/spoiler-l4/final-deg">
<input>hydraulics/spoiler-l4/final-lag</input>
<gain>40.0</gain>
</pure_gain>
</channel>
<channel name="Spoiler L5">
<fcs_function name="hydraulics/spoiler-l5/ground-extended">
<function>
<sum>
<property>spoilers/main-cmd</property>
<table>
<independentVar lookup="row">fbw/roll/s-l</independentVar>
<tableData>
0.0 0.0
1.0 -0.5
</tableData>
</table>
</sum>
</function>
</fcs_function>
<fcs_function name="hydraulics/spoiler-l5/retracted">
<function>
<table>
<independentVar lookup="row">fbw/roll/s-l</independentVar>
<tableData>
-1.0 0.5
0.0 0.0
</tableData>
</table>
</function>
</fcs_function>
<switch name="hydraulics/spoiler-l5/switch">
<default value="hydraulics/spoiler-l5/switch"/>
<test logic="AND" value="0">
/systems/hydraulic/green-psi ge 1500
/systems/failures/spoiler-l5 eq 1
</test>
<test logic="AND" value="hydraulics/spoiler-l5/ground-extended">
/systems/hydraulic/green-psi ge 1500
spoilers/main-gear-and eq 1
/systems/failures/spoiler-l5 eq 0
spoilers/main-cmd gt 0
</test>
<test logic="AND" value="hydraulics/spoiler-l5/retracted">
/systems/hydraulic/green-psi ge 1500
/systems/failures/spoiler-l5 eq 0
spoilers/main-cmd eq 0
</test>
<clipto>
<min>0.0</min>
<max>1.0</max>
</clipto>
</switch>
<actuator name="hydraulics/spoiler-l5/final">
<input>hydraulics/spoiler-l5/switch</input>
<rate_limit>0.9</rate_limit>
</actuator>
<lag_filter name="hydraulics/spoiler-l5/final-lag">
<input>hydraulics/spoiler-l5/final</input>
<c1>16.3</c1>
</lag_filter>
<pure_gain name="hydraulics/spoiler-l5/final-deg">
<input>hydraulics/spoiler-l5/final-lag</input>
<gain>40.0</gain>
</pure_gain>
</channel>
<channel name="Spoiler R1">
<switch name="hydraulics/spoiler-r1/switch">
<default value="hydraulics/spoiler-r1/switch"/>
<test logic="AND" value="0">
/systems/hydraulic/green-psi ge 1500
spoilers/main-gear-and eq 0
</test>
<test logic="AND" value="0">
/systems/hydraulic/green-psi ge 1500
/systems/failures/spoiler-r1 eq 1
</test>
<test logic="AND" value="spoilers/main-cmd">
/systems/hydraulic/green-psi ge 1500
spoilers/main-gear-and eq 1
/systems/failures/spoiler-r1 eq 0
</test>
<clipto>
<min>0.0</min>
<max>1.0</max>
</clipto>
</switch>
<actuator name="hydraulics/spoiler-r1/final">
<input>hydraulics/spoiler-r1/switch</input>
<rate_limit>0.9</rate_limit>
</actuator>
<lag_filter name="hydraulics/spoiler-r1/final-lag">
<input>hydraulics/spoiler-r1/final</input>
<c1>16.3</c1>
</lag_filter>
<pure_gain name="hydraulics/spoiler-r1/final-deg">
<input>hydraulics/spoiler-r1/final-lag</input>
<gain>40.0</gain>
</pure_gain>
</channel>
<channel name="Spoiler R2">
<switch name="hydraulics/spoiler-r2/main-cmd-rate">
<default value="0.72"/>
<test value="0.9">
spoilers/main-gear-and eq 1
</test>
</switch>
<actuator name="hydraulics/spoiler-r2/main-cmd">
<input>spoilers/main-cmd</input>
<rate_limit>hydraulics/spoiler-r2/main-cmd-rate</rate_limit>
<output>hydraulics/spoiler-r2/main-cmd-feedback</output>
</actuator>
<fcs_function name="hydraulics/spoiler-r2/air-extended">
<function>
<sum>
<product>
<property>hydraulics/spoiler-r2/main-cmd</property>
<value>0.5</value>
</product>
<table>
<independentVar lookup="row">fbw/roll/s-l</independentVar>
<tableData>
-1.0 -0.4
0.0 0.0
</tableData>
</table>
</sum>
</function>
</fcs_function>
<fcs_function name="hydraulics/spoiler-r2/ground-extended">
<function>
<sum>
<property>spoilers/main-cmd</property>
<table>
<independentVar lookup="row">fbw/roll/s-l</independentVar>
<tableData>
-1.0 -0.5
0.0 0.0
</tableData>
</table>
</sum>
</function>
</fcs_function>
<fcs_function name="hydraulics/spoiler-r2/retracted">
<function>
<table>
<independentVar lookup="row">fbw/roll/s-l</independentVar>
<tableData>
0.0 0.0
1.0 0.5
</tableData>
</table>
</function>
</fcs_function>
<switch name="hydraulics/spoiler-r2/switch">
<default value="hydraulics/spoiler-r2/switch"/>
<test logic="AND" value="0">
/systems/hydraulic/yellow-psi ge 1500
/systems/failures/spoiler-r2 eq 1
</test>
<test logic="AND" value="hydraulics/spoiler-r2/air-extended">
/systems/hydraulic/yellow-psi ge 1500
spoilers/main-gear-and eq 0
/systems/failures/spoiler-r2 eq 0
spoilers/main-cmd gt 0
</test>
<test logic="AND" value="hydraulics/spoiler-r2/ground-extended">
/systems/hydraulic/yellow-psi ge 1500
spoilers/main-gear-and eq 1
/systems/failures/spoiler-r2 eq 0
spoilers/main-cmd gt 0
</test>
<test logic="AND" value="hydraulics/spoiler-r2/retracted">
/systems/hydraulic/yellow-psi ge 1500
/systems/failures/spoiler-r2 eq 0
spoilers/main-cmd eq 0
</test>
<clipto>
<min>0.0</min>
<max>1.0</max>
</clipto>
</switch>
<actuator name="hydraulics/spoiler-r2/final">
<input>hydraulics/spoiler-r2/switch</input>
<rate_limit>0.9</rate_limit>
</actuator>
<lag_filter name="hydraulics/spoiler-r2/final-lag">
<input>hydraulics/spoiler-r2/final</input>
<c1>16.3</c1>
</lag_filter>
<pure_gain name="hydraulics/spoiler-r2/final-deg">
<input>hydraulics/spoiler-r2/final-lag</input>
<gain>40.0</gain>
</pure_gain>
</channel>
<channel name="Spoiler R3">
<fcs_function name="hydraulics/spoiler-r3/air-extended">
<function>
<sum>
<property>spoilers/main-cmd</property>
<table>
<independentVar lookup="row">fbw/roll/s-l</independentVar>
<tableData>
-1.0 -0.5
0.0 0.0
</tableData>
</table>
</sum>
</function>
</fcs_function>
<fcs_function name="hydraulics/spoiler-r3/ground-extended">
<function>
<sum>
<property>spoilers/main-cmd</property>
<table>
<independentVar lookup="row">fbw/roll/s-l</independentVar>
<tableData>
-1.0 -0.5
0.0 0.0
</tableData>
</table>
</sum>
</function>
</fcs_function>
<fcs_function name="hydraulics/spoiler-r3/retracted">
<function>
<table>
<independentVar lookup="row">fbw/roll/s-l</independentVar>
<tableData>
0.0 0.0
1.0 0.5
</tableData>
</table>
</function>
</fcs_function>
<switch name="hydraulics/spoiler-r3/switch">
<default value="hydraulics/spoiler-r3/switch"/>
<test logic="AND" value="0">
/systems/hydraulic/blue-psi ge 1500
/systems/failures/spoiler-r3 eq 1
</test>
<test logic="AND" value="hydraulics/spoiler-r3/air-extended">
/systems/hydraulic/blue-psi ge 1500
spoilers/main-gear-and eq 0
/systems/failures/spoiler-r3 eq 0
spoilers/main-cmd gt 0
</test>
<test logic="AND" value="hydraulics/spoiler-r3/ground-extended">
/systems/hydraulic/blue-psi ge 1500
spoilers/main-gear-and eq 1
/systems/failures/spoiler-r3 eq 0
spoilers/main-cmd gt 0
</test>
<test logic="AND" value="hydraulics/spoiler-r3/retracted">
/systems/hydraulic/blue-psi ge 1500
/systems/failures/spoiler-r3 eq 0
spoilers/main-cmd eq 0
</test>
<clipto>
<min>0.0</min>
<max>1.0</max>
</clipto>
</switch>
<actuator name="hydraulics/spoiler-r3/final">
<input>hydraulics/spoiler-r3/switch</input>
<rate_limit>0.9</rate_limit>
</actuator>
<lag_filter name="hydraulics/spoiler-r3/final-lag">
<input>hydraulics/spoiler-r3/final</input>
<c1>16.3</c1>
</lag_filter>
<pure_gain name="hydraulics/spoiler-r3/final-deg">
<input>hydraulics/spoiler-r3/final-lag</input>
<gain>40.0</gain>
</pure_gain>
</channel>
<channel name="Spoiler R4">
<fcs_function name="hydraulics/spoiler-r4/air-extended">
<function>
<sum>
<property>spoilers/main-cmd</property>
<table>
<independentVar lookup="row">fbw/roll/s-l</independentVar>
<tableData>
-1.0 -0.5
0.0 0.0
</tableData>
</table>
</sum>
</function>
</fcs_function>
<fcs_function name="hydraulics/spoiler-r4/ground-extended">
<function>
<sum>
<property>spoilers/main-cmd</property>
<table>
<independentVar lookup="row">fbw/roll/s-l</independentVar>
<tableData>
-1.0 -0.5
0.0 0.0
</tableData>
</table>
</sum>
</function>
</fcs_function>
<fcs_function name="hydraulics/spoiler-r4/retracted">
<function>
<table>
<independentVar lookup="row">fbw/roll/s-l</independentVar>
<tableData>
0.0 0.0
1.0 0.5
</tableData>
</table>
</function>
</fcs_function>
<switch name="hydraulics/spoiler-r4/switch">
<default value="hydraulics/spoiler-r4/switch"/>
<test logic="AND" value="0">
/systems/hydraulic/yellow-psi ge 1500
/systems/failures/spoiler-r4 eq 1
</test>
<test logic="AND" value="hydraulics/spoiler-r4/air-extended">
/systems/hydraulic/yellow-psi ge 1500
spoilers/main-gear-and eq 0
/systems/failures/spoiler-r4 eq 0
spoilers/main-cmd gt 0
</test>
<test logic="AND" value="hydraulics/spoiler-r4/ground-extended">
/systems/hydraulic/yellow-psi ge 1500
spoilers/main-gear-and eq 1
/systems/failures/spoiler-r4 eq 0
spoilers/main-cmd gt 0
</test>
<test logic="AND" value="hydraulics/spoiler-r4/retracted">
/systems/hydraulic/yellow-psi ge 1500
/systems/failures/spoiler-r4 eq 0
spoilers/main-cmd eq 0
</test>
<clipto>
<min>0.0</min>
<max>1.0</max>
</clipto>
</switch>
<actuator name="hydraulics/spoiler-r4/final">
<input>hydraulics/spoiler-r4/switch</input>
<rate_limit>0.9</rate_limit>
</actuator>
<lag_filter name="hydraulics/spoiler-r4/final-lag">
<input>hydraulics/spoiler-r4/final</input>
<c1>16.3</c1>
</lag_filter>
<pure_gain name="hydraulics/spoiler-r4/final-deg">
<input>hydraulics/spoiler-r4/final-lag</input>
<gain>40.0</gain>
</pure_gain>
</channel>
<channel name="Spoiler R5">
<fcs_function name="hydraulics/spoiler-r5/ground-extended">
<function>
<sum>
<property>spoilers/main-cmd</property>
<table>
<independentVar lookup="row">fbw/roll/s-l</independentVar>
<tableData>
-1.0 -0.5
0.0 0.0
</tableData>
</table>
</sum>
</function>
</fcs_function>
<fcs_function name="hydraulics/spoiler-r5/retracted">
<function>
<table>
<independentVar lookup="row">fbw/roll/s-l</independentVar>
<tableData>
0.0 0.0
1.0 0.5
</tableData>
</table>
</function>
</fcs_function>
<switch name="hydraulics/spoiler-r5/switch">
<default value="hydraulics/spoiler-r5/switch"/>
<test logic="AND" value="0">
/systems/hydraulic/green-psi ge 1500
/systems/failures/spoiler-r5 eq 1
</test>
<test logic="AND" value="hydraulics/spoiler-r5/ground-extended">
/systems/hydraulic/green-psi ge 1500
spoilers/main-gear-and eq 1
/systems/failures/spoiler-r5 eq 0
spoilers/main-cmd gt 0
</test>
<test logic="AND" value="hydraulics/spoiler-r5/retracted">
/systems/hydraulic/green-psi ge 1500
/systems/failures/spoiler-r5 eq 0
spoilers/main-cmd eq 0
</test>
<clipto>
<min>0.0</min>
<max>1.0</max>
</clipto>
</switch>
<actuator name="hydraulics/spoiler-r5/final">
<input>hydraulics/spoiler-r5/switch</input>
<rate_limit>0.9</rate_limit>
</actuator>
<lag_filter name="hydraulics/spoiler-r5/final-lag">
<input>hydraulics/spoiler-r5/final</input>
<c1>16.3</c1>
</lag_filter>
<pure_gain name="hydraulics/spoiler-r5/final-deg">
<input>hydraulics/spoiler-r5/final-lag</input>
<gain>40.0</gain>
</pure_gain>
</channel>
<channel name="Output">
<summer name="fcs/spoiler-left-sum">
<input>hydraulics/spoiler-l1/final-deg</input>
<input>hydraulics/spoiler-l2/final-deg</input>
<input>hydraulics/spoiler-l3/final-deg</input>
<input>hydraulics/spoiler-l4/final-deg</input>
<input>hydraulics/spoiler-l5/final-deg</input>
</summer>
<fcs_function name="fcs/spoiler-left-deg">
<function>
<quotient>
<property>fcs/spoiler-left-sum</property>
<value>5</value>
</quotient>
</function>
</fcs_function>
<summer name="fcs/spoiler-right-sum">
<input>hydraulics/spoiler-r1/final-deg</input>
<input>hydraulics/spoiler-r2/final-deg</input>
<input>hydraulics/spoiler-r3/final-deg</input>
<input>hydraulics/spoiler-r4/final-deg</input>
<input>hydraulics/spoiler-r5/final-deg</input>
</summer>
<fcs_function name="fcs/spoiler-right-deg">
<function>
<quotient>
<property>fcs/spoiler-right-sum</property>
<value>5</value>
</quotient>
</function>
</fcs_function>
</channel>
</system>

View file

@ -37,9 +37,17 @@
<group>
<layout>hbox</layout>
<button>
<legend>A/THR</legend>
<pref-width>43</pref-width>
<binding>
<command>property-toggle</command>
<property>/it-autoflight/input/athr</property>
</binding>
</button>
<button>
<legend>AP1</legend>
<pref-width>55</pref-width>
<pref-width>43</pref-width>
<binding>
<command>property-toggle</command>
<property>/it-autoflight/input/ap1</property>
@ -47,7 +55,7 @@
</button>
<button>
<legend>AP2</legend>
<pref-width>55</pref-width>
<pref-width>43</pref-width>
<binding>
<command>property-toggle</command>
<property>/it-autoflight/input/ap2</property>
@ -55,7 +63,7 @@
</button>
<button>
<legend>FD1</legend>
<pref-width>55</pref-width>
<pref-width>43</pref-width>
<binding>
<command>property-toggle</command>
<property>/it-autoflight/input/fd1</property>
@ -63,7 +71,7 @@
</button>
<button>
<legend>FD2</legend>
<pref-width>55</pref-width>
<pref-width>43</pref-width>
<binding>
<command>property-toggle</command>
<property>/it-autoflight/input/fd2</property>

File diff suppressed because it is too large Load diff

View file

@ -680,5 +680,256 @@
<input>0</input>
<output>/controls/flight/auto-coordination</output>
</filter>
<filter>
<debug>false</debug>
<type>noise-spike</type>
<enable>
<condition>
<greater-than-equals>
<property>/systems/hydraulic/green-psi</property>
<value>1500</value>
</greater-than-equals>
</condition>
</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>
<filter>
<debug>false</debug>
<type>noise-spike</type>
<enable>
<condition>
<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>
</condition>
</enable>
<input>/controls/flight/rudder-trim</input>
<output>/controls/flight/rudder-trim-fdm</output>
<max-rate-of-change>0.5</max-rate-of-change>
</filter>
<!-- Braking -->
<filter>
<name>Left Press</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/controls/gear/brake-left</property>
<entry><ind> 0</ind><dep>0</dep></entry>
<entry><ind>0.3</ind><dep>1000</dep></entry>
<entry><ind>0.6</ind><dep>2000</dep></entry>
<entry><ind> 1</ind><dep>3000</dep></entry>
</table>
</expression>
</input>
<output>/systems/hydraulic/brakes/pressure-left-psi</output>
</filter>
<filter>
<name>Right Press</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/controls/gear/brake-right</property>
<entry><ind> 0</ind><dep>0</dep></entry>
<entry><ind>0.3</ind><dep>1000</dep></entry>
<entry><ind>0.6</ind><dep>2000</dep></entry>
<entry><ind> 1</ind><dep>3000</dep></entry>
</table>
</expression>
</input>
<output>/systems/hydraulic/brakes/pressure-right-psi</output>
</filter>
<filter>
<name>Left Door</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/gear/gear[1]/position-norm</property>
<entry><ind> 0</ind><dep>0</dep></entry>
<entry><ind>0.19</ind><dep>1</dep></entry>
<entry><ind>0.81</ind><dep>1</dep></entry>
<entry><ind> 1</ind><dep>0</dep></entry>
</table>
</expression>
</input>
<output>/systems/hydraulic/gear/door-left</output>
</filter>
<filter>
<name>Left Door Conversion to Degrees</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/systems/hydraulic/gear/door-left</property>
<entry><ind> 0</ind><dep>0</dep></entry>
<entry><ind> 1</ind><dep>-100</dep></entry>
</table>
</expression>
</input>
<output>/ECAM/Lower/door-left</output>
</filter>
<filter>
<name>Right Door</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/gear/gear[2]/position-norm</property>
<entry><ind> 0</ind><dep>0</dep></entry>
<entry><ind>0.19</ind><dep>1</dep></entry>
<entry><ind>0.81</ind><dep>1</dep></entry>
<entry><ind> 1</ind><dep>0</dep></entry>
</table>
</expression>
</input>
<output>/systems/hydraulic/gear/door-right</output>
</filter>
<filter>
<name>Right Door Conversion to Degrees</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/systems/hydraulic/gear/door-right</property>
<entry><ind> 0</ind><dep>0</dep></entry>
<entry><ind> 1</ind><dep>100</dep></entry>
</table>
</expression>
</input>
<output>/ECAM/Lower/door-right</output>
</filter>
<filter>
<name>Nose Door</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/gear/gear[0]/position-norm</property>
<entry><ind> 0</ind><dep>0</dep></entry>
<entry><ind>0.19</ind><dep>1</dep></entry>
<entry><ind>0.81</ind><dep>1</dep></entry>
<entry><ind> 1</ind><dep>0</dep></entry>
</table>
</expression>
</input>
<output>/systems/hydraulic/gear/door-nose</output>
</filter>
<filter>
<name>NLG Left Door Conversion to Degrees</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/systems/hydraulic/gear/door-nose</property>
<entry><ind> 0</ind><dep>0</dep></entry>
<entry><ind> 1</ind><dep>95</dep></entry>
</table>
</expression>
</input>
<output>/ECAM/Lower/door-nose-left</output>
</filter>
<filter>
<name>NLG Right Door Conversion to Degrees</name>
<type>gain</type>
<gain>1.0</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/systems/hydraulic/gear/door-nose</property>
<entry><ind> 0</ind><dep>0</dep></entry>
<entry><ind> 1</ind><dep>-95</dep></entry>
</table>
</expression>
</input>
<output>/ECAM/Lower/door-nose-right</output>
</filter>
<filter>
<name>Autobrake Decel Error</name>
<type>gain</type>
<gain>1.0</gain>
<input>
<expression>
<dif>
<property>/velocities/groundspeed-mps</property>
<property>/velocities/groundspeed-mps-ahead</property>
</dif>
</expression>
</input>
<output>/controls/autobrake/decel-error</output>
</filter>
<pi-simple-controller>
<name>IT-CONTROLLER: AUTOBRAKE DECEL</name>
<debug>false</debug>
<enable>
<condition>
<equals>
<property>/controls/autobrake/active</property>
<value>1</value>
</equals>
</condition>
</enable>
<input>
<property>/controls/autobrake/decel-error</property>
</input>
<reference>
<property>/controls/autobrake/decel-rate</property>
</reference>
<output>
<property>/controls/autobrake/brake-left</property>
<property>/controls/autobrake/brake-right</property>
</output>
<config>
<Kp>0.45</Kp>
<Ki>0.25</Ki>
<min>0.0</min>
<max>1.0</max>
</config>
</pi-simple-controller>
</PropertyList>

View file

@ -118,10 +118,10 @@
<input>
<expression>
<table>
<property>/controls/flight/aileron-left</property>
<entry><ind>-0.5</ind><dep>-0.73</dep></entry>
<entry><ind> 0.0</ind><dep> 0.00</dep></entry>
<entry><ind> 0.5</ind><dep> 0.83</dep></entry>
<property>/fdm/jsbsim/hydraulics/aileron-l/final-deg</property>
<entry><ind>-25</ind><dep>-0.83</dep></entry>
<entry><ind> 0</ind><dep> 0.00</dep></entry>
<entry><ind> 25</ind><dep> 0.73</dep></entry>
</table>
</expression>
</input>
@ -135,10 +135,10 @@
<input>
<expression>
<table>
<property>/controls/flight/aileron-right</property>
<entry><ind>-0.5</ind><dep>-0.83</dep></entry>
<entry><ind> 0.0</ind><dep> 0.00</dep></entry>
<entry><ind> 0.5</ind><dep> 0.73</dep></entry>
<property>/fdm/jsbsim/hydraulics/aileron-r/final-deg</property>
<entry><ind>-25</ind><dep> 0.73</dep></entry>
<entry><ind> 0</ind><dep> 0.00</dep></entry>
<entry><ind> 25</ind><dep>-0.83</dep></entry>
</table>
</expression>
</input>
@ -152,10 +152,10 @@
<input>
<expression>
<table>
<property>/controls/flight/elevator-left</property>
<entry><ind>-0.5</ind><dep>-1.03</dep></entry>
<entry><ind> 0.0</ind><dep> 0.00</dep></entry>
<entry><ind> 0.5</ind><dep> 0.63</dep></entry>
<property>/fdm/jsbsim/hydraulics/elevator-l/final-deg</property>
<entry><ind>-30</ind><dep>-1.03</dep></entry>
<entry><ind> 0</ind><dep> 0.00</dep></entry>
<entry><ind> 17</ind><dep> 0.63</dep></entry>
</table>
</expression>
</input>
@ -169,10 +169,10 @@
<input>
<expression>
<table>
<property>/controls/flight/elevator-right</property>
<entry><ind>-0.5</ind><dep>-1.03</dep></entry>
<entry><ind> 0.0</ind><dep> 0.00</dep></entry>
<entry><ind> 0.5</ind><dep> 0.63</dep></entry>
<property>/fdm/jsbsim/hydraulics/elevator-r/final-deg</property>
<entry><ind>-30</ind><dep>-1.03</dep></entry>
<entry><ind> 0</ind><dep> 0.00</dep></entry>
<entry><ind> 17</ind><dep> 0.63</dep></entry>
</table>
</expression>
</input>
@ -183,7 +183,7 @@
<name>Elevator Trim Deg</name>
<type>gain</type>
<gain>-1.0</gain>
<input>/fdm/jsbsim/fcs/pitch-trim-pos-deg</input>
<input>/fdm/jsbsim/hydraulics/elevator-trim/final-deg</input>
<output>/ECAM/Lower/elevator-trim-deg</output>
</filter>

View file

@ -1 +1 @@
4515
4600