improve hydraulics, make elevator/ailerons connected to hydraulics, fix animations exterior, elevator/aileron/rudder new props over MP

This commit is contained in:
Joshua Davidson 2017-05-02 22:16:53 -04:00
parent f861b6e525
commit 4d7197aefd
14 changed files with 340 additions and 74 deletions

View file

@ -566,7 +566,7 @@ YAW MOI_________3950000______23089847_______24848934
<flight_control name="FCS: A320"> <flight_control name="FCS: A320">
<channel name="Pitch"> <channel name="Pitch">
<summer name="Pitch Trim Sum"> <summer name="Pitch Trim Sum">
<input>/controls/flight/elevator-fbw</input> <input>/controls/flight/elevator-sum</input>
<input>/controls/flight/elevator-trim</input> <input>/controls/flight/elevator-trim</input>
<clipto> <clipto>
<min>-1</min> <min>-1</min>
@ -594,7 +594,7 @@ YAW MOI_________3950000______23089847_______24848934
</channel> </channel>
<channel name="Roll"> <channel name="Roll">
<summer name="Roll Trim Sum"> <summer name="Roll Trim Sum">
<input>/controls/flight/aileron-fbw</input> <input>/controls/flight/aileron-sum</input>
<input>/controls/flight/aileron-trim</input> <input>/controls/flight/aileron-trim</input>
<clipto> <clipto>
<min>-1</min> <min>-1</min>

View file

@ -566,7 +566,7 @@ YAW MOI_________3950000______23089847_______24848934
<flight_control name="FCS: A320"> <flight_control name="FCS: A320">
<channel name="Pitch"> <channel name="Pitch">
<summer name="Pitch Trim Sum"> <summer name="Pitch Trim Sum">
<input>/controls/flight/elevator-fbw</input> <input>/controls/flight/elevator-sum</input>
<input>/controls/flight/elevator-trim</input> <input>/controls/flight/elevator-trim</input>
<clipto> <clipto>
<min>-1</min> <min>-1</min>
@ -594,7 +594,7 @@ YAW MOI_________3950000______23089847_______24848934
</channel> </channel>
<channel name="Roll"> <channel name="Roll">
<summer name="Roll Trim Sum"> <summer name="Roll Trim Sum">
<input>/controls/flight/aileron-fbw</input> <input>/controls/flight/aileron-sum</input>
<input>/controls/flight/aileron-trim</input> <input>/controls/flight/aileron-trim</input>
<clipto> <clipto>
<min>-1</min> <min>-1</min>

View file

@ -34,9 +34,9 @@
<path></path> <path></path>
</electrical> </electrical>
<!-- Custom FBW/Flight Controls System --> <!-- Custom FBW/Flight Controls System -->
<!--autopilot> <autopilot>
<path>Aircraft/A320Family/Systems/hydraulics.xml</path> <path>Aircraft/A320Family/Systems/hydraulics.xml</path>
</autopilot--> </autopilot>
<autopilot> <autopilot>
<path>Aircraft/A320Family/Systems/it-fbw-b.xml</path> <path>Aircraft/A320Family/Systems/it-fbw-b.xml</path>
</autopilot> </autopilot>
@ -152,6 +152,11 @@
<float n="1" alias="/controls/lighting/interior" /> <float n="1" alias="/controls/lighting/interior" />
<float n="2" alias="/engines/engine[0]/reverser-pos-norm" /> <float n="2" alias="/engines/engine[0]/reverser-pos-norm" />
<float n="3" alias="/engines/engine[1]/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" />
<int n="2" alias="/controls/lighting/landing-lights[0]" /> <int n="2" alias="/controls/lighting/landing-lights[0]" />
<int n="3" alias="/controls/lighting/landing-lights[1]" /> <int n="3" alias="/controls/lighting/landing-lights[1]" />
<int n="4" alias="/controls/lighting/landing-lights[2]" /> <int n="4" alias="/controls/lighting/landing-lights[2]" />
@ -389,7 +394,13 @@
</engines> </engines>
<flight> <flight>
<aileron-fbw>0</aileron-fbw> <aileron-fbw>0</aileron-fbw>
<aileron-left>0.5</aileron-left>
<aileron-right>-0.5</aileron-right>
<aileron-sum>0.0</aileron-sum>
<elevator-fbw>0</elevator-fbw> <elevator-fbw>0</elevator-fbw>
<elevator-left>0.1</elevator-left>
<elevator-right>0.1</elevator-right>
<elevator-sum>0.2</elevator-sum>
<speedbrake-arm>0</speedbrake-arm> <speedbrake-arm>0</speedbrake-arm>
<ground-spoilers-armed type="bool">0</ground-spoilers-armed> <ground-spoilers-armed type="bool">0</ground-spoilers-armed>
<speedbrake-lever type="double">0</speedbrake-lever> <speedbrake-lever type="double">0</speedbrake-lever>

View file

@ -566,7 +566,7 @@ YAW MOI_________3950000______23089847_______24848934
<flight_control name="FCS: A320"> <flight_control name="FCS: A320">
<channel name="Pitch"> <channel name="Pitch">
<summer name="Pitch Trim Sum"> <summer name="Pitch Trim Sum">
<input>/controls/flight/elevator-fbw</input> <input>/controls/flight/elevator-sum</input>
<input>/controls/flight/elevator-trim</input> <input>/controls/flight/elevator-trim</input>
<clipto> <clipto>
<min>-1</min> <min>-1</min>
@ -594,7 +594,7 @@ YAW MOI_________3950000______23089847_______24848934
</channel> </channel>
<channel name="Roll"> <channel name="Roll">
<summer name="Roll Trim Sum"> <summer name="Roll Trim Sum">
<input>/controls/flight/aileron-fbw</input> <input>/controls/flight/aileron-sum</input>
<input>/controls/flight/aileron-trim</input> <input>/controls/flight/aileron-trim</input>
<clipto> <clipto>
<min>-1</min> <min>-1</min>

View file

@ -566,7 +566,7 @@ YAW MOI_________3950000______23089847_______24848934
<flight_control name="FCS: A320"> <flight_control name="FCS: A320">
<channel name="Pitch"> <channel name="Pitch">
<summer name="Pitch Trim Sum"> <summer name="Pitch Trim Sum">
<input>/controls/flight/elevator-fbw</input> <input>/controls/flight/elevator-sum</input>
<input>/controls/flight/elevator-trim</input> <input>/controls/flight/elevator-trim</input>
<clipto> <clipto>
<min>-1</min> <min>-1</min>
@ -594,7 +594,7 @@ YAW MOI_________3950000______23089847_______24848934
</channel> </channel>
<channel name="Roll"> <channel name="Roll">
<summer name="Roll Trim Sum"> <summer name="Roll Trim Sum">
<input>/controls/flight/aileron-fbw</input> <input>/controls/flight/aileron-sum</input>
<input>/controls/flight/aileron-trim</input> <input>/controls/flight/aileron-trim</input>
<clipto> <clipto>
<min>-1</min> <min>-1</min>

View file

@ -9,11 +9,11 @@
<name>Left elevator</name> <name>Left elevator</name>
<type>rotate</type> <type>rotate</type>
<object-name>ElevatorL</object-name> <object-name>ElevatorL</object-name>
<property>/controls/flight/elevator-fbw</property> <property>/sim/multiplay/generic/float[4]</property>
<interpolation> <interpolation>
<entry><ind>-1.0</ind><dep>-15.0</dep></entry> <entry><ind>-0.5</ind><dep>-20.0</dep></entry>
<entry><ind>0.0</ind><dep>0.0</dep></entry> <entry><ind>0.0</ind><dep>0.0</dep></entry>
<entry><ind>1.0</ind><dep>15.0</dep></entry> <entry><ind>0.5</ind><dep>20.0</dep></entry>
</interpolation> </interpolation>
<axis> <axis>
<x1-m>4.8217428</x1-m> <x1-m>4.8217428</x1-m>
@ -28,11 +28,11 @@
<name>Right elevator</name> <name>Right elevator</name>
<type>rotate</type> <type>rotate</type>
<object-name>ElevatorR</object-name> <object-name>ElevatorR</object-name>
<property>/controls/flight/elevator-fbw</property> <property>/sim/multiplay/generic/float[5]</property>
<interpolation> <interpolation>
<entry><ind>-1.0</ind><dep>-15.0</dep></entry> <entry><ind>-0.5</ind><dep>-20.0</dep></entry>
<entry><ind>0.0</ind><dep>0.0</dep></entry> <entry><ind>0.0</ind><dep>0.0</dep></entry>
<entry><ind>1.0</ind><dep>15.0</dep></entry> <entry><ind>0.5</ind><dep>20.0</dep></entry>
</interpolation> </interpolation>
<axis> <axis>
<x1-m>2.9796817</x1-m> <x1-m>2.9796817</x1-m>

View file

@ -9,11 +9,11 @@
<name>Left elevator</name> <name>Left elevator</name>
<type>rotate</type> <type>rotate</type>
<object-name>ElevatorL</object-name> <object-name>ElevatorL</object-name>
<property>/controls/flight/elevator-fbw</property> <property>/sim/multiplay/generic/float[4]</property>
<interpolation> <interpolation>
<entry><ind>-1.0</ind><dep>-15.0</dep></entry> <entry><ind>-0.5</ind><dep>-20.0</dep></entry>
<entry><ind>0.0</ind><dep>0.0</dep></entry> <entry><ind>0.0</ind><dep>0.0</dep></entry>
<entry><ind>1.0</ind><dep>15.0</dep></entry> <entry><ind>0.5</ind><dep>20.0</dep></entry>
</interpolation> </interpolation>
<axis> <axis>
<x1-m>4.8217428</x1-m> <x1-m>4.8217428</x1-m>
@ -28,11 +28,11 @@
<name>Right elevator</name> <name>Right elevator</name>
<type>rotate</type> <type>rotate</type>
<object-name>ElevatorR</object-name> <object-name>ElevatorR</object-name>
<property>/controls/flight/elevator-fbw</property> <property>/sim/multiplay/generic/float[5]</property>
<interpolation> <interpolation>
<entry><ind>-1.0</ind><dep>-15.0</dep></entry> <entry><ind>-0.5</ind><dep>-20.0</dep></entry>
<entry><ind>0.0</ind><dep>0.0</dep></entry> <entry><ind>0.0</ind><dep>0.0</dep></entry>
<entry><ind>1.0</ind><dep>15.0</dep></entry> <entry><ind>0.5</ind><dep>20.0</dep></entry>
</interpolation> </interpolation>
<axis> <axis>
<x1-m>2.9796817</x1-m> <x1-m>2.9796817</x1-m>

View file

@ -9,11 +9,11 @@
<name>Left elevator</name> <name>Left elevator</name>
<type>rotate</type> <type>rotate</type>
<object-name>ElevatorL</object-name> <object-name>ElevatorL</object-name>
<property>/controls/flight/elevator-fbw</property> <property>/sim/multiplay/generic/float[4]</property>
<interpolation> <interpolation>
<entry><ind>-1.0</ind><dep>-15.0</dep></entry> <entry><ind>-0.5</ind><dep>-20.0</dep></entry>
<entry><ind>0.0</ind><dep>0.0</dep></entry> <entry><ind>0.0</ind><dep>0.0</dep></entry>
<entry><ind>1.0</ind><dep>15.0</dep></entry> <entry><ind>0.5</ind><dep>20.0</dep></entry>
</interpolation> </interpolation>
<axis> <axis>
<x1-m>4.8217428</x1-m> <x1-m>4.8217428</x1-m>
@ -28,11 +28,11 @@
<name>Right elevator</name> <name>Right elevator</name>
<type>rotate</type> <type>rotate</type>
<object-name>ElevatorR</object-name> <object-name>ElevatorR</object-name>
<property>/controls/flight/elevator-fbw</property> <property>/sim/multiplay/generic/float[5]</property>
<interpolation> <interpolation>
<entry><ind>-1.0</ind><dep>-15.0</dep></entry> <entry><ind>-0.5</ind><dep>-20.0</dep></entry>
<entry><ind>0.0</ind><dep>0.0</dep></entry> <entry><ind>0.0</ind><dep>0.0</dep></entry>
<entry><ind>1.0</ind><dep>15.0</dep></entry> <entry><ind>0.5</ind><dep>20.0</dep></entry>
</interpolation> </interpolation>
<axis> <axis>
<x1-m>2.9796817</x1-m> <x1-m>2.9796817</x1-m>

View file

@ -9,11 +9,11 @@
<name>Left elevator</name> <name>Left elevator</name>
<type>rotate</type> <type>rotate</type>
<object-name>ElevatorL</object-name> <object-name>ElevatorL</object-name>
<property>/controls/flight/elevator-fbw</property> <property>/sim/multiplay/generic/float[4]</property>
<interpolation> <interpolation>
<entry><ind>-1.0</ind><dep>-15.0</dep></entry> <entry><ind>-0.5</ind><dep>-20.0</dep></entry>
<entry><ind>0.0</ind><dep>0.0</dep></entry> <entry><ind>0.0</ind><dep>0.0</dep></entry>
<entry><ind>1.0</ind><dep>15.0</dep></entry> <entry><ind>0.5</ind><dep>20.0</dep></entry>
</interpolation> </interpolation>
<axis> <axis>
<x1-m>4.8217428</x1-m> <x1-m>4.8217428</x1-m>
@ -28,11 +28,11 @@
<name>Right elevator</name> <name>Right elevator</name>
<type>rotate</type> <type>rotate</type>
<object-name>ElevatorR</object-name> <object-name>ElevatorR</object-name>
<property>/controls/flight/elevator-fbw</property> <property>/sim/multiplay/generic/float[5]</property>
<interpolation> <interpolation>
<entry><ind>-1.0</ind><dep>-15.0</dep></entry> <entry><ind>-0.5</ind><dep>-20.0</dep></entry>
<entry><ind>0.0</ind><dep>0.0</dep></entry> <entry><ind>0.0</ind><dep>0.0</dep></entry>
<entry><ind>1.0</ind><dep>15.0</dep></entry> <entry><ind>0.5</ind><dep>20.0</dep></entry>
</interpolation> </interpolation>
<axis> <axis>
<x1-m>2.9796817</x1-m> <x1-m>2.9796817</x1-m>

View file

@ -15,7 +15,7 @@
<name>Rudder</name> <name>Rudder</name>
<type>rotate</type> <type>rotate</type>
<object-name>Rudder</object-name> <object-name>Rudder</object-name>
<property>surface-positions/rudder-pos-norm</property> <property>/sim/multiplay/generic/float[8]</property>
<factor>25</factor> <factor>25</factor>
<axis> <axis>
<x1-m>4.013</x1-m> <x1-m>4.013</x1-m>

View file

@ -29,8 +29,8 @@
<name>Left aileron</name> <name>Left aileron</name>
<type>rotate</type> <type>rotate</type>
<object-name>AileronL</object-name> <object-name>AileronL</object-name>
<property>surface-positions/left-aileron-pos-norm</property> <property>/sim/multiplay/generic/float[6]</property>
<factor>25</factor> <factor>40</factor>
<axis> <axis>
<x1-m>8.7295</x1-m> <x1-m>8.7295</x1-m>
<y1-m>-16.3231163</y1-m> <y1-m>-16.3231163</y1-m>
@ -44,8 +44,8 @@
<name>Right aileron</name> <name>Right aileron</name>
<type>rotate</type> <type>rotate</type>
<object-name>AileronR</object-name> <object-name>AileronR</object-name>
<property>surface-positions/right-aileron-pos-norm</property> <property>/sim/multiplay/generic/float[7]</property>
<factor>25</factor> <factor>40</factor>
<axis> <axis>
<x1-m>7.6792</x1-m> <x1-m>7.6792</x1-m>
<y1-m>13.3967144</y1-m> <y1-m>13.3967144</y1-m>

View file

@ -53,9 +53,15 @@ var master_hyd = func {
} else { } else {
setprop("/systems/hydraulic/blue-psi", 3000); setprop("/systems/hydraulic/blue-psi", 3000);
} }
} else if (getprop("/instrumentation/airspeed-indicator/indicated-speed-kt") >= 120 and rat_man_sw == 1) {
if (blue_psi < 2400) {
setprop("/systems/hydraulic/blue-psi", blue_psi + 100);
} else {
setprop("/systems/hydraulic/blue-psi", 2500);
}
} else { } else {
if (blue_psi > 1) { if (blue_psi > 1) {
setprop("/systems/hydraulic/blue-psi", blue_psi - 0.1); setprop("/systems/hydraulic/blue-psi", blue_psi - 5);
} else { } else {
setprop("/systems/hydraulic/blue-psi", 0); setprop("/systems/hydraulic/blue-psi", 0);
} }
@ -75,7 +81,7 @@ var master_hyd = func {
} }
} else { } else {
if (green_psi > 1) { if (green_psi > 1) {
setprop("/systems/hydraulic/green-psi", green_psi - 0.1); setprop("/systems/hydraulic/green-psi", green_psi - 5);
} else { } else {
setprop("/systems/hydraulic/green-psi", 0); setprop("/systems/hydraulic/green-psi", 0);
} }
@ -101,7 +107,7 @@ var master_hyd = func {
} }
} else { } else {
if (yellow_psi > 1) { if (yellow_psi > 1) {
setprop("/systems/hydraulic/yellow-psi", yellow_psi - 0.1); setprop("/systems/hydraulic/yellow-psi", yellow_psi - 5);
} else { } else {
setprop("/systems/hydraulic/yellow-psi", 0); setprop("/systems/hydraulic/yellow-psi", 0);
} }

View file

@ -1,11 +1,11 @@
# Airbus A3XX FBW System by Joshua Davidson (it0uchpods) # Airbus A3XX FBW System by Joshua Davidson (it0uchpods)
# V0.9.6 # V0.9.7
######################## ###################
# Roll Update Function # # Update Function #
######################## ###################
var roll_input = func { var update_loop = func {
var ail = getprop("/controls/flight/aileron"); var ail = getprop("/controls/flight/aileron");
@ -29,13 +29,6 @@ var roll_input = func {
setprop("/it-fbw/roll-lim-max", "33"); setprop("/it-fbw/roll-lim-max", "33");
setprop("/it-fbw/roll-lim-min", "-33"); setprop("/it-fbw/roll-lim-min", "-33");
} }
}
#########################
# Pitch Update Function #
#########################
var pitch_input = func {
var elev = getprop("/controls/flight/elevator"); var elev = getprop("/controls/flight/elevator");
@ -54,29 +47,16 @@ var pitch_input = func {
setprop("/it-fbw/pitch-lim-max", "15"); setprop("/it-fbw/pitch-lim-max", "15");
setprop("/it-fbw/pitch-lim-min", "-15"); setprop("/it-fbw/pitch-lim-min", "-15");
} }
}
###########################
# Various Other Functions #
###########################
setlistener("/sim/signals/fdm-initialized", func {
setprop("/it-fbw/override", 0);
setprop("/it-fbw/law", 3);
update_roll.start();
update_pitch.start();
});
setlistener("/systems/electrical/bus/ac-ess", func {
fbw_law();
});
var fbw_law = func {
if (getprop("/it-fbw/override") == 0) { if (getprop("/it-fbw/override") == 0) {
if (getprop("/systems/electrical/bus/ac-ess") >= 110) { if ((getprop("/systems/electrical/bus/ac-ess") >= 110) and (getprop("/systems/hydraulic/green-psi") >= 1500) and (getprop("/systems/hydraulic/yellow-psi") >= 1500)) {
if (getprop("/it-fbw/law") != 0) { if (getprop("/it-fbw/law") != 0) {
setprop("/it-fbw/law", 0); setprop("/it-fbw/law", 0);
} }
} else if ((getprop("/systems/electrical/bus/ac-ess") >= 110) and (getprop("/systems/hydraulic/blue-psi") >= 1500)) {
if (getprop("/it-fbw/law") != 2) {
setprop("/it-fbw/law", 2);
}
} else { } else {
if (getprop("/it-fbw/law") != 3) { if (getprop("/it-fbw/law") != 3) {
setprop("/it-fbw/law", 3); setprop("/it-fbw/law", 3);
@ -85,8 +65,17 @@ var fbw_law = func {
} }
} }
###########################
# Various Other Functions #
###########################
setlistener("/sim/signals/fdm-initialized", func {
setprop("/it-fbw/override", 0);
setprop("/it-fbw/law", 3);
updatet.start();
});
########## ##########
# Timers # # Timers #
########## ##########
var update_roll = maketimer(0.01, roll_input); var updatet = maketimer(0.01, update_loop);
var update_pitch = maketimer(0.01, pitch_input);

View file

@ -4,6 +4,266 @@
<PropertyList> <PropertyList>
<!-- Elevator Control -->
<filter>
<debug>false</debug>
<type>gain</type>
<gain>1.0</gain>
<input>
<condition>
<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>
</condition>
<value>0.5</value>
</input>
<input>
<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>
</or>
</condition>
<expression>
<table>
<property>/controls/flight/aileron-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/aileron-left</output>
</filter>
<filter>
<debug>false</debug>
<type>gain</type>
<gain>1.0</gain>
<input>
<condition>
<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>
</condition>
<value>0.5</value>
</input>
<input>
<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>
</or>
</condition>
<expression>
<table>
<property>/controls/flight/aileron-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/aileron-right</output>
</filter>
<filter>
<debug>false</debug>
<type>gain</type>
<gain>1.0</gain>
<input>
<expression>
<sum>
<property>/controls/flight/aileron-left</property>
<property>/controls/flight/aileron-right</property>
</sum>
</expression>
</input>
<output>/controls/flight/aileron-sum</output>
</filter>
<!-- Elevator Control -->
<filter>
<debug>false</debug>
<type>gain</type>
<gain>1.0</gain>
<input>
<condition>
<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>
</condition>
<value>0.1</value>
</input>
<input>
<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>
</or>
</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</output>
</filter>
<filter>
<debug>false</debug>
<type>gain</type>
<gain>1.0</gain>
<input>
<condition>
<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>
</condition>
<value>0.1</value>
</input>
<input>
<condition>
<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>
</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</output>
</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>
</filter>
<!-- Rudder -->
<filter>
<debug>false</debug>
<type>gain</type>
<gain>1.0</gain>
<input>
<condition>
<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>
</condition>
<value>0.0</value>
</input>
<input>
<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>
<expression>
<sum>
<property>/controls/flight/rudder</property>
<property>/controls/flight/rudder-trim</property>
</sum>
</expression>
</input>
<output>/controls/flight/rudder-fdm</output>
<min>-1.0</min>
<max>1.0</max>
</filter>
</PropertyList> </PropertyList>