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">
<channel name="Pitch">
<summer name="Pitch Trim Sum">
<input>/controls/flight/elevator-fbw</input>
<input>/controls/flight/elevator-sum</input>
<input>/controls/flight/elevator-trim</input>
<clipto>
<min>-1</min>
@ -594,7 +594,7 @@ YAW MOI_________3950000______23089847_______24848934
</channel>
<channel name="Roll">
<summer name="Roll Trim Sum">
<input>/controls/flight/aileron-fbw</input>
<input>/controls/flight/aileron-sum</input>
<input>/controls/flight/aileron-trim</input>
<clipto>
<min>-1</min>

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -53,9 +53,15 @@ var master_hyd = func {
} else {
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 {
if (blue_psi > 1) {
setprop("/systems/hydraulic/blue-psi", blue_psi - 0.1);
setprop("/systems/hydraulic/blue-psi", blue_psi - 5);
} else {
setprop("/systems/hydraulic/blue-psi", 0);
}
@ -75,7 +81,7 @@ var master_hyd = func {
}
} else {
if (green_psi > 1) {
setprop("/systems/hydraulic/green-psi", green_psi - 0.1);
setprop("/systems/hydraulic/green-psi", green_psi - 5);
} else {
setprop("/systems/hydraulic/green-psi", 0);
}
@ -101,7 +107,7 @@ var master_hyd = func {
}
} else {
if (yellow_psi > 1) {
setprop("/systems/hydraulic/yellow-psi", yellow_psi - 0.1);
setprop("/systems/hydraulic/yellow-psi", yellow_psi - 5);
} else {
setprop("/systems/hydraulic/yellow-psi", 0);
}

View file

@ -1,11 +1,11 @@
# 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");
@ -29,13 +29,6 @@ var roll_input = func {
setprop("/it-fbw/roll-lim-max", "33");
setprop("/it-fbw/roll-lim-min", "-33");
}
}
#########################
# Pitch Update Function #
#########################
var pitch_input = func {
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-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("/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) {
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 {
if (getprop("/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 #
##########
var update_roll = maketimer(0.01, roll_input);
var update_pitch = maketimer(0.01, pitch_input);
var updatet = maketimer(0.01, update_loop);

View file

@ -4,6 +4,266 @@
<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>