This commit is contained in:
omega13a 2017-05-31 13:59:51 -07:00
commit d09f27cbec
21 changed files with 5329 additions and 871 deletions

View file

@ -76,14 +76,6 @@
<name>Custom engine values system</name>
<path>Aircraft/A320Family/Systems/engine-timing.xml</path>
</autopilot>
<autopilot n="6">
<name>Autobrake</name>
<path>Aircraft/A320Family/Systems/a320-autobrake.xml</path>
</autopilot>
<autopilot n="7">
<name>Spoilers</name>
<path>Aircraft/A320Family/Systems/a320-spoilers.xml</path>
</autopilot>
<autopilot n="8">
<path>Systems/fl2070_sound.xml</path>
</autopilot>
@ -426,6 +418,7 @@
</engine>
</engines>
<flight>
<aileron-input>0</aileron-input>
<aileron-fbw>0</aileron-fbw>
<aileron-left>0.5</aileron-left>
<aileron-right>-0.5</aileron-right>

View file

@ -386,16 +386,10 @@
<type>select</type>
<object-name>lat.dash</object-name>
<condition>
<and>
<not-equals>
<property>/it-autoflight/output/lat</property>
<value>0</value>
</not-equals>
<equals>
<property>/it-autoflight/custom/hdg-input</property>
<value>0</value>
</equals>
</and>
<not-equals>
<property>/it-autoflight/output/lat</property>
<value>0</value>
</not-equals>
</condition>
</animation>
@ -560,7 +554,7 @@
<binding>
<condition>
<equals>
<property>/it-autoflight/input/lat</property>
<property>/it-autoflight/output/lat</property>
<value>0</value>
</equals>
</condition>
@ -578,7 +572,7 @@
<binding>
<condition>
<equals>
<property>/it-autoflight/input/lat</property>
<property>/it-autoflight/output/lat</property>
<value>0</value>
</equals>
</condition>

View file

@ -443,5 +443,15 @@
<z>0</z>
</axis>
</animation>
<model>
<name>RAT</name>
<path>Aircraft/A320Family/Models/RAT/RAT.xml</path>
<offsets>
<x-m>18</x-m>
<y-m>-1</y-m>
<z-m>-2.9</z-m>
</offsets>
</model>
</PropertyList>

View file

@ -353,5 +353,15 @@
<z2-m>-2.0790732</z2-m>
</axis>
</animation>
<model>
<name>RAT</name>
<path>Aircraft/A320Family/Models/RAT/RAT.xml</path>
<offsets>
<x-m>18</x-m>
<y-m>-1</y-m>
<z-m>-2.9</z-m>
</offsets>
</model>
</PropertyList>

View file

@ -668,5 +668,15 @@
<z>0</z>
</axis>
</animation>
<model>
<name>RAT</name>
<path>Aircraft/A320Family/Models/RAT/RAT.xml</path>
<offsets>
<x-m>18</x-m>
<y-m>-1</y-m>
<z-m>-2.9</z-m>
</offsets>
</model>
</PropertyList>

View file

@ -443,5 +443,15 @@
<z>0</z>
</axis>
</animation>
<model>
<name>RAT</name>
<path>Aircraft/A320Family/Models/RAT/RAT.xml</path>
<offsets>
<x-m>18</x-m>
<y-m>-1</y-m>
<z-m>-2.9</z-m>
</offsets>
</model>
</PropertyList>

View file

@ -1010,6 +1010,24 @@
</condition>
</animation>
<animation>
<name>RAT MAN pick</name>
<type>pick</type>
<object-name>RATMan</object-name>
<action>
<button>0</button>
<repeatable>false</repeatable>
<binding>
<command>property-toggle</command>
<property>/controls/hydraulic/rat-man</property>
</binding>
<binding>
<command>nasal</command>
<script>setprop("/sim/sounde/btn1", 1);</script>
</binding>
</action>
</animation>
<animation>
<name>Blue Elec Pump pick</name>
<type>pick</type>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 461 KiB

After

Width:  |  Height:  |  Size: 466 KiB

View file

@ -4,7 +4,7 @@
<sim>
<model>
<livery>
<name>jetBlue</name>
<name>JetBlue Airways</name>
<texture>Liveries/A321/IAE/jetBlue.png</texture>
</livery>
</model>

4912
Models/RAT/RAT.ac Normal file

File diff suppressed because it is too large Load diff

36
Models/RAT/RAT.xml Normal file
View file

@ -0,0 +1,36 @@
<?xml version = '1.0' encoding = 'UTF-8' ?>
<PropertyList>
<path>RAT.ac</path>
<!-- Ram Air Turbine Select and Spin Animations -->
<animation>
<name>Ram Air Turbine Spin</name>
<type>spin</type>
<object-name>fan</object-name>
<factor>5</factor>
<property>velocities/airspeed-kt</property>
<center>
<x-m>0</x-m>
<y-m>0</y-m>
<z-m>0</z-m>
</center>
<axis>
<x>1</x>
<y>0</y>
<z>0</z>
</axis>
</animation>
<animation>
<name>Ram Air Turbine Select</name>
<type>select</type>
<object-name>fan</object-name>
<object-name>holder</object-name>
<condition>
<property>/controls/hydraulic/rat-deployed</property>
</condition>
</animation>
</PropertyList>

View file

@ -18,6 +18,7 @@ var elec_init = func {
setprop("/controls/electrical/switches/idg2", 0);
setprop("/controls/electrical/switches/gen1", 0);
setprop("/controls/electrical/switches/gen2", 0);
setprop("/controls/electrical/switches/emer-gen", 0);
setprop("/controls/electrical/switches/gen-apu", 0);
setprop("/controls/electrical/switches/gen-ext", 0);
setprop("/controls/electrical/switches/apu-ext-crosstie", 1);
@ -36,11 +37,13 @@ var elec_init = func {
setprop("/systems/electrical/bus/dc-ess", 0);
setprop("/systems/electrical/bus/ac1", 0);
setprop("/systems/electrical/bus/ac2", 0);
setprop("/systems/electrical/bus/emergen-hz", 0);
setprop("/systems/electrical/bus/gen1-hz", 0);
setprop("/systems/electrical/bus/gen2-hz", 0);
setprop("/systems/electrical/bus/ac-ess", 0);
setprop("/systems/electrical/extra/ext-volts", 0);
setprop("/systems/electrical/extra/apu-volts", 0);
setprop("/systems/electrical/extra/emergen-volts", 0);
setprop("/systems/electrical/extra/gen1-volts", 0);
setprop("/systems/electrical/extra/gen2-volts", 0);
setprop("/systems/electrical/extra/ext-hz", 0);
@ -124,6 +127,12 @@ var master_elec = func {
var galley_shed = getprop("/systems/electrical/extra/galleyshed");
var bat1_con = getprop("/systems/electrical/extra/battery/bat1-contact");
var bat2_con = getprop("/systems/electrical/extra/battery/bat2-contact");
var emergen = getprop("/controls/electrical/switches/emer-gen");
var emergenvolts = getprop("/systems/electrical/extra/emergen-volts");
var emergenhz = getprop("/systems/electrical/bus/emergen-hz");
var gs = getprop("/velocities/groundspeed-kt");
var rat = getprop("/controls/hydraulic/rat");
var manrat = getprop("/controls/hydraulic/rat-man");
# Left cross tie yes?
@ -274,6 +283,22 @@ var master_elec = func {
setprop("/systems/electrical/gen-ext", 0);
}
if ((ac1 == 0) and (ac2 == 0) and (gs > 100) or (manrat)) {
setprop("/controls/hydraulic/rat-deployed", 1);
setprop("/controls/hydraulic/rat", 1);
setprop("/controls/electrical/switches/emer-gen", 1);
setprop("/systems/electrical/bus/dc-ess", ac_volt_std);
setprop("/systems/electrical/bus/ac-ess", dc_volt_std);
}
if (rat and (gs < 100)) {
setprop("/controls/electrical/switches/emer-gen", 0);
setprop("/controls/hydraulic/rat", 0);
setprop("/systems/electrical/bus/dc-ess", 0);
setprop("/systems/electrical/bus/ac-ess", 0);
}
# Battery Amps
if (battery1_sw) {
setprop("/systems/electrical/battery1-amps", dc_amps_std);
@ -414,11 +439,11 @@ var charge2 = maketimer(6, func {
var bat2_volts = getprop("/systems/electrical/battery2-volts");
setprop("/systems/electrical/battery2-volts", bat2_volts + 0.1);
});
var decharge1 = maketimer(60, func {
var decharge1 = maketimer(69, func { # interval is at 69 seconds, to allow about 30 min from 25.9
var bat1_volts = getprop("/systems/electrical/battery1-volts");
setprop("/systems/electrical/battery1-volts", bat1_volts - 0.1);
});
var decharge2 = maketimer(60, func {
var decharge2 = maketimer(69, func {
var bat2_volts = getprop("/systems/electrical/battery2-volts");
setprop("/systems/electrical/battery2-volts", bat2_volts - 0.1);
});

View file

@ -12,6 +12,8 @@ var hyd_init = func {
setprop("/controls/hydraulic/elec-pump-yellow", 0);
setprop("/controls/hydraulic/ptu", 1);
setprop("/controls/hydraulic/rat-man", 0);
setprop("/controls/hydraulic/rat", 0);
setprop("/controls/hydraulic/rat-deployed", 0);
setprop("/systems/hydraulic/ptu-active", 0);
setprop("/systems/hydraulic/blue-psi", 0);
setprop("/systems/hydraulic/green-psi", 0);
@ -38,12 +40,22 @@ var master_hyd = func {
var stateR = getprop("/engines/engine[1]/state");
var dc_ess = getprop("/systems/electrical/bus/dc-ess");
var psi_diff = green_psi - yellow_psi;
var rat = getprop("/controls/hydraulic/rat");
var ratout = getprop("/controls/hydraulic/rat-deployed");
var gs = getprop("/velocities/groundspeed-kt");
if (psi_diff > 500 or psi_diff < -500 and ptu_sw) {
setprop("/systems/hydraulic/ptu-active", 1);
} else if (psi_diff < 20 and psi_diff > -20) {
setprop("/systems/hydraulic/ptu-active", 0);
}
if ((rat_man_sw == 1) and (gs > 100)) {
setprop("/controls/hydraulic/rat", 1);
setprop("/controls/hydraulic/rat-deployed", 1);
} else if (gs < 100) {
setprop("/controls/hydraulic/rat", 0);
}
var ptu_active = getprop("/systems/hydraulic/ptu-active");
@ -53,7 +65,7 @@ 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) {
} else if (gs >= 100 and rat) {
if (blue_psi < 2400) {
setprop("/systems/hydraulic/blue-psi", blue_psi + 100);
} else {

View file

@ -1,330 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Airbus A320 autobrake configuration -->
<!-- Adapated from the Boeing 777-200ER -->
<PropertyList>
<logic>
<name>Disabled state</name>
<!-- ensure output is consistent when no mode is selected-->
<enable>
<condition>
<equals>
<property>/autopilot/autobrake/step</property>
<value>0</value>
</equals>
</condition>
</enable>
<input><false/></input>
<output>/autopilot/autobrake/engaged</output>
</logic>
<logic>
<name>Max (RTO in Boeing terms) selected</name>
<input>
<equals>
<property>/autopilot/autobrake/step</property>
<value>3</value>
</equals>
</input>
<output>/autopilot/autobrake/max-selected</output>
</logic>
<logic>
<name>Autobrake Selected</name>
<input>
<greater-than>
<property>/autopilot/autobrake/step</property>
<value>0</value>
</greater-than>
</input>
<output>/autopilot/autobrake/selected</output>
</logic>
<logic>
<name>Throttles At Idle</name>
<input>
<!-- engine 0 -->
<and>
<or>
<less-than>
<property>/controls/engines/engine[0]/throttle</property>
<property>/autopilot/autobrake/config/idle-throttle</property>
</less-than>
<property>/controls/engines/engine[0]/reverser</property>
</or>
<!-- engine 1 -->
<or>
<less-than>
<property>/controls/engines/engine[1]/throttle</property>
<property>/autopilot/autobrake/config/idle-throttle</property>
</less-than>
<property>/controls/engines/engine[1]/reverser</property>
</or>
</and>
</input>
<output>/autopilot/autobrake/throttles-at-idle</output>
</logic>
<logic>
<name>Airborne</name>
<input>
<not><property>/gear/gear/wow</property></not>
</input>
<output>/autopilot/autobrake/airborne</output>
</logic>
<logic>
<name>High-speed</name>
<input>
<greater-than>
<property>/instrumentation/airspeed-indicator/indicated-speed-kt</property>
<value>40</value>
</greater-than>
</input>
<output>/autopilot/autobrake/above-40-kts</output>
</logic>
<logic>
<name>Spoilers deployed</name>
<input>
<greater-than>
<property>/surface-positions/speedbrake-pos-norm</property>
<value>0</value>
</greater-than>
</input>
<output>/autopilot/autobrake/spoilers-deployed</output>
</logic>
<!-- pilot brake input -->
<logic>
<name>Pilot Input</name>
<input>
<less-than>
<property>/autopilot/autobrake/config/pilot-input</property>
<expression>
<max>
<property>/controls/gear/brake-left</property>
<property>/controls/gear/brake-right</property>
</max>
</expression>
</less-than>
</input>
<output>/autopilot/autobrake/pilot-input</output>
</logic>
<flipflop>
<name>Autobrake Engage logic</name>
<debug>false</debug>
<type>RS</type>
<enable>
<condition>
<and>
<property>/autopilot/autobrake/selected</property>
<not>
<property>/autopilot/autobrake/max-selected</property>
</not>
</and>
</condition>
</enable>
<S>
<and>
<property>/autopilot/autobrake/throttles-at-idle</property>
<property>/autopilot/autobrake/spoilers-deployed</property>
<not>
<property>/autopilot/autobrake/airborne</property>
</not>
</and>
</S>
<R>
<false/>
</R>
<output>/autopilot/autobrake/engaged</output>
</flipflop>
<filter>
<name>MAX cancel logic</name>
<type>gain</type>
<gain>1.0</gain>
<debug>false</debug>
<enable>
<condition>
<property>/autopilot/autobrake/max-selected</property>
<property>/autopilot/autobrake/airborne</property>
</condition>
</enable>
<input><value>0</value></input> <!-- switch to 'off' -->
<output>/autopilot/autobrake/step</output>
</filter>
<flipflop>
<name>MAX engage logic</name>
<type>RS</type>
<debug>false</debug>
<enable>
<condition>
<property>/autopilot/autobrake/max-selected</property>
<property>/autopilot/autobrake/above-40-kts</property>
</condition>
</enable>
<S>
<and>
<property>/autopilot/autobrake/throttles-at-idle</property>
<property>/autopilot/autobrake/spoilers-deployed</property>
</and>
</S>
<R>
<false/>
</R>
<output>/autopilot/autobrake/engaged</output>
</flipflop>
<filter>
<name>Disengage logic</name>
<debug>false</debug>
<type>gain</type>
<gain>1.0</gain>
<enable>
<condition>
<property>/autopilot/autobrake/engaged</property>
<or>
<!-- disengage on pilot input -->
<property>/autopilot/autobrake/pilot-input</property>
<!-- disengage if the throttles are not at idle -->
<not><property>/autopilot/autobrake/throttles-at-idle</property></not>
<!-- disengage if the spoilers are retracted -->
<not><property>/autopilot/autobrake/spoilers-deployed</property></not>
</or>
</condition>
</enable>
<input><value>0</value></input> <!-- switch to 'off' -->
<output>/autopilot/autobrake/step</output>
</filter>
<!-- model the accelerometer portion of the AB system.
This could differentiate indicated-airspeed, but I suspect real-
world systems use accelerometers directly. -->
<filter>
<name>Deceleration Sensor</name>
<type>noise-spike</type>
<max-rate-of-change>5.0</max-rate-of-change>
<input>
<scale>-1</scale> <!-- deceleration, not acceleration -->
<property>/fdm/jsbsim/accelerations/udot-ft_sec2</property>
</input>
<output>/autopilot/autobrake/actual-decel-ftsec2</output>
</filter>
<!-- translate dial setting levels into target decelerations, based upon
information in the POH -->
<filter>
<name>Target Deceleration Table</name>
<type>gain</type>
<debug>false</debug>
<gain>1.0</gain>
<output>/autopilot/autobrake/target-decel-ftsec2</output>
<input>
<condition>
<not>
<property>/autopilot/autobrake/max-selected</property>
</not>
</condition>
<expression>
<!-- values taken from http://www.pprune.org/tech-log/304333-a320-autoland-distance-autobrake-vs-manual-landing-distance-autobrake-2.html#post3809602 -->
<table>
<property>/autopilot/autobrake/step</property>
<entry><ind>0</ind><dep>0</dep></entry>
<entry><ind>1</ind><dep>5.6</dep></entry>
<entry><ind>2</ind><dep>9.8</dep></entry>
</table>
</expression>
</input>
<input>
<condition>
<property>/autopilot/autobrake/max-selected</property>
</condition>
<!-- RTO setting applies max hydraulic pressure, simulate this
with a huge value here, to ensure the PI drives to 1.0 output -->
<value>50</value>
</input>
</filter>
<pi-simple-controller>
<name>Brake Effort Computer</name>
<debug>false</debug>
<enable>
<property>/autopilot/autobrake/engaged</property>
</enable>
<input><property>/autopilot/autobrake/actual-decel-ftsec2</property></input>
<reference>/autopilot/autobrake/target-decel-ftsec2</reference>
<output>/autopilot/autobrake/output-brake</output>
<min>0.0</min>
<max>1.0</max>
<config>
<Kp>1.0</Kp>
<Ki>0.0</Ki>
</config>
</pi-simple-controller>
<!-- left output summer -->
<filter>
<name>Left Output Summer</name>
<type>gain</type>
<gain>1.0</gain>
<input>
<condition>
<property>/autopilot/autobrake/engaged</property>
</condition>
<expression>
<max>
<property>/controls/gear/brake-left</property>
<property>/autopilot/autobrake/output-brake</property>
</max>
</expression>
</input>
<!-- default input -->
<input>
<property>/controls/gear/brake-left</property>
</input>
<output>/autopilot/autobrake/brake-left-output</output>
</filter>
<!-- right output summer -->
<filter>
<name>Right Output Summer</name>
<type>gain</type>
<gain>1.0</gain>
<input>
<condition>
<property>/autopilot/autobrake/engaged</property>
</condition>
<expression>
<max>
<property>/controls/gear/brake-right</property>
<property>/autopilot/autobrake/output-brake</property>
</max>
</expression>
</input>
<!-- default input -->
<input>
<property>/controls/gear/brake-right</property>
</input>
<output>/autopilot/autobrake/brake-right-output</output>
</filter>
</PropertyList>

View file

@ -1,77 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Airbus A320 speedbrake/ground spoiler configuration -->
<PropertyList>
<flipflop>
<name>Auto Speedbrake Engage logic</name>
<debug>false</debug>
<type>RS</type>
<enable>
<condition>
<and>
<equals>
<property>/controls/flight/speedbrake-arm</property>
<value>1</value>
</equals>
<less-than>
<property>/engines/engine[0]/reverser-pos-norm</property>
<value>0.01</value>
</less-than>
<less-than>
<property>/engines/engine[1]/reverser-pos-norm</property>
<value>0.01</value>
</less-than>
</and>
</condition>
</enable>
<S>
<and>
<less-than>
<property>/controls/engines/engine/throttle</property>
<value>0.15</value>
</less-than>
<less-than>
<property>/controls/engines/engine[1]/throttle</property>
<value>0.15</value>
</less-than>
<property>/gear/gear[1]/wow</property>
<property>/gear/gear[2]/wow</property>
<greater-than>
<property>/velocities/groundspeed-kt</property>
<value>60</value>
</greater-than>
</and>
</S>
<R>
<or>
<greater-than>
<property>/controls/engines/engine/throttle</property>
<value>0.16</value>
</greater-than>
<greater-than>
<property>/controls/engines/engine[1]/throttle</property>
<value>0.16</value>
</greater-than>
</or>
</R>
<output>/controls/flight/speedbrake-lever</output>
</flipflop>
<filter>
<name>Main speedbrake controller</name>
<type>gain</type>
<gain>1.0</gain>
<input>
<expression>
<max>
<property>/controls/flight/ground-spoilers</property>
<property>/controls/flight/speedbrake-lever</property>
</max>
</expression>
</input>
<output>/controls/flight/speedbrake</output>
</filter>
</PropertyList>

View file

@ -1,68 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyList>
<name>failures-dlg</name>
<layout>vbox</layout>
<text>
<label>Failures</label>
</text>
<hrule/>
<text>
<label>Engine fire</label>
</text>
<group>
<layout>hbox</layout>
<checkbox>
<label>Engine 1</label>
<property>engines/engine[0]/on-fire</property>
<binding>
<command>dialog-apply</command>
</binding>
<live>true</live>
</checkbox>
<checkbox>
<label>Engine 2</label>
<property>engines/engine[1]/on-fire</property>
<binding>
<command>dialog-apply</command>
</binding>
<live>true</live>
</checkbox>
<checkbox>
<label>APU</label>
<property>engines/apu/on-fire</property>
<binding>
<command>dialog-apply</command>
</binding>
<live>true</live>
</checkbox>
</group>
<hrule/>
<group>
<layout>vbox</layout>
<button>
<legend>Close</legend>
<default>true</default>
<key>Esc</key>
<padding>10</padding>
<binding>
<command>dialog-apply</command>
</binding>
<binding>
<command>dialog-close</command>
</binding>
</button>
</group>
</PropertyList>

View file

@ -4,7 +4,10 @@
<PropertyList>
<!-- Aileron/Spoileron/Speedbrake Control -->
<!-- =============================================================== -->
<!-- Aileron Control -->
<!-- =============================================================== -->
<filter>
<debug>false</debug>
<type>gain</type>
@ -36,7 +39,16 @@
</equals>
</and>
</condition>
<property>/surface-positions/speedbrake-pos-norm</property>
<expression>
<sum>
<property>/surface-positions/speedbrake-pos-norm</property>
<table>
<property>/controls/flight/roll-fbw</property>
<entry><ind>0.2</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>-1.0</dep></entry>
</table>
</sum>
</expression>
<scale>-0.5</scale>
</input>
<input>
@ -125,7 +137,16 @@
</equals>
</and>
</condition>
<property>/surface-positions/speedbrake-pos-norm</property>
<expression>
<sum>
<property>/surface-positions/speedbrake-pos-norm</property>
<table>
<property>/controls/flight/roll-fbw</property>
<entry><ind>-0.2</ind><dep> 0</dep></entry>
<entry><ind>-1.0</ind><dep>-1.0</dep></entry>
</table>
</sum>
</expression>
<scale>0.5</scale>
</input>
<input>
@ -183,6 +204,10 @@
<max-rate-of-change>2.5</max-rate-of-change>
</filter>
<!-- =============================================================== -->
<!-- Spoiler Control -->
<!-- =============================================================== -->
<filter>
<debug>false</debug>
<type>gain</type>
@ -191,18 +216,26 @@
<condition>
<and>
<or>
<greater-than-equals>
<property>/systems/hydraulic/green-psi</property>
<value>1500</value>
</greater-than-equals>
<greater-than-equals>
<property>/systems/hydraulic/blue-psi</property>
<value>1500</value>
</greater-than-equals>
<greater-than-equals>
<property>/systems/hydraulic/yellow-psi</property>
<value>1500</value>
</greater-than-equals>
<and>
<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>
</and>
<and>
<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>
</and>
</or>
<not-equals>
<property>/controls/flight/speedbrake-lever</property>
@ -214,9 +247,9 @@
<sum>
<property>/surface-positions/speedbrake-pos-norm</property>
<table>
<property>/controls/flight/aileron-fbw</property>
<entry><ind>0</ind><dep> 0</dep></entry>
<entry><ind>1</ind><dep>-0.5</dep></entry>
<property>/controls/flight/roll-fbw</property>
<entry><ind>0.2</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>-0.5</dep></entry>
</table>
</sum>
</expression>
@ -243,24 +276,32 @@
<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>
<and>
<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>
</and>
<and>
<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>
</and>
</or>
</condition>
<expression>
<table>
<property>/controls/flight/aileron-fbw</property>
<entry><ind> 0.0</ind><dep> 0</dep></entry>
<property>/controls/flight/spoiler-left-fbw-cmd</property>
<entry><ind>-0.2</ind><dep> 0</dep></entry>
<entry><ind>-1.0</ind><dep>0.5</dep></entry>
</table>
</expression>
@ -275,7 +316,7 @@
<type>noise-spike</type>
<input>/controls/flight/spoiler-left-cmd</input>
<output>/controls/flight/spoiler-left</output>
<max-rate-of-change>1.5</max-rate-of-change>
<max-rate-of-change>1.0</max-rate-of-change>
</filter>
<filter>
@ -286,18 +327,26 @@
<condition>
<and>
<or>
<greater-than-equals>
<property>/systems/hydraulic/green-psi</property>
<value>1500</value>
</greater-than-equals>
<greater-than-equals>
<property>/systems/hydraulic/blue-psi</property>
<value>1500</value>
</greater-than-equals>
<greater-than-equals>
<property>/systems/hydraulic/yellow-psi</property>
<value>1500</value>
</greater-than-equals>
<and>
<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>
</and>
<and>
<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>
</and>
</or>
<not-equals>
<property>/controls/flight/speedbrake-lever</property>
@ -309,9 +358,9 @@
<sum>
<property>/surface-positions/speedbrake-pos-norm</property>
<table>
<property>/controls/flight/aileron-fbw</property>
<entry><ind> 0</ind><dep> 0</dep></entry>
<entry><ind>-1</ind><dep>-0.5</dep></entry>
<property>/controls/flight/roll-fbw</property>
<entry><ind>-0.2</ind><dep> 0</dep></entry>
<entry><ind>-1.0</ind><dep>-0.5</dep></entry>
</table>
</sum>
</expression>
@ -338,24 +387,32 @@
<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>
<and>
<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>
</and>
<and>
<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>
</and>
</or>
</condition>
<expression>
<table>
<property>/controls/flight/aileron-fbw</property>
<entry><ind>0.0</ind><dep> 0</dep></entry>
<property>/controls/flight/spoiler-right-fbw-cmd</property>
<entry><ind>0.2</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep>0.5</dep></entry>
</table>
</expression>
@ -370,7 +427,7 @@
<type>noise-spike</type>
<input>/controls/flight/spoiler-right-cmd</input>
<output>/controls/flight/spoiler-right</output>
<max-rate-of-change>1.5</max-rate-of-change>
<max-rate-of-change>1.0</max-rate-of-change>
</filter>
<filter>
@ -400,7 +457,10 @@
<output>/controls/flight/aileron-sum</output>
</filter>
<!-- Elevator Control -->
<!-- =============================================================== -->
<!-- Elevator Control -->
<!-- =============================================================== -->
<filter>
<debug>false</debug>
<type>gain</type>
@ -520,7 +580,10 @@
<output>/controls/flight/elevator-sum</output>
</filter>
<!-- Rudder -->
<!-- =============================================================== -->
<!-- Rudder Control -->
<!-- =============================================================== -->
<filter>
<debug>false</debug>
<type>gain</type>
@ -580,5 +643,79 @@
<output>/controls/flight/rudder-fdm</output>
<max-rate-of-change>2.5</max-rate-of-change>
</filter>
<!-- =============================================================== -->
<!-- Speedbrake Logic -->
<!-- =============================================================== -->
<flipflop>
<name>Auto Speedbrake</name>
<debug>false</debug>
<type>RS</type>
<enable>
<condition>
<and>
<equals>
<property>/controls/flight/speedbrake-arm</property>
<value>1</value>
</equals>
<less-than>
<property>/engines/engine[0]/reverser-pos-norm</property>
<value>0.01</value>
</less-than>
<less-than>
<property>/engines/engine[1]/reverser-pos-norm</property>
<value>0.01</value>
</less-than>
</and>
</condition>
</enable>
<S>
<and>
<less-than>
<property>/controls/engines/engine/throttle</property>
<value>0.15</value>
</less-than>
<less-than>
<property>/controls/engines/engine[1]/throttle</property>
<value>0.15</value>
</less-than>
<property>/gear/gear[1]/wow</property>
<property>/gear/gear[2]/wow</property>
<greater-than>
<property>/velocities/groundspeed-kt</property>
<value>60</value>
</greater-than>
</and>
</S>
<R>
<or>
<greater-than>
<property>/controls/engines/engine/throttle</property>
<value>0.16</value>
</greater-than>
<greater-than>
<property>/controls/engines/engine[1]/throttle</property>
<value>0.16</value>
</greater-than>
</or>
</R>
<output>/controls/flight/speedbrake-lever</output>
</flipflop>
<filter>
<name>Main speedbrake controller</name>
<type>gain</type>
<gain>1.0</gain>
<input>
<expression>
<max>
<property>/controls/flight/ground-spoilers</property>
<property>/controls/flight/speedbrake-lever</property>
</max>
</expression>
</input>
<output>/controls/flight/speedbrake</output>
</filter>
</PropertyList>

View file

@ -278,7 +278,7 @@
</condition>
<value>0</value>
</input>
<output>/it-autoflight/internal/heading-error-deg-cmd</output>
<output>/it-autoflight/internal/heading-error-deg</output>
<period>
<min>-180</min>
<max>180</max>
@ -286,68 +286,6 @@
<gain>1.0</gain>
</filter>
<filter>
<name>HEADING ERROR FILTER</name>
<debug>false</debug>
<feedback-if-disabled>true</feedback-if-disabled>
<initialize-to>output</initialize-to>
<input>
<property>/it-autoflight/internal/heading-error-deg-cmd</property>
</input>
<output>/it-autoflight/internal/heading-error-deg</output>
<type>noise-spike</type>
<max-rate-of-change>
<condition>
<or>
<and>
<not-equals>
<property>/it-autoflight/output/lat</property>
<value>0</value>
</not-equals>
<not-equals>
<property>/it-autoflight/output/lat</property>
<value>1</value>
</not-equals>
</and>
<equals>
<property>/gear/gear[1]/wow</property>
<value>1</value>
</equals>
<equals>
<property>/gear/gear[2]/wow</property>
<value>1</value>
</equals>
</or>
</condition>
<value>90</value>
</max-rate-of-change>
<max-rate-of-change>
<condition>
<and>
<or>
<equals>
<property>/it-autoflight/output/lat</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/output/lat</property>
<value>1</value>
</equals>
</or>
<equals>
<property>/gear/gear[1]/wow</property>
<value>0</value>
</equals>
<equals>
<property>/gear/gear[2]/wow</property>
<value>0</value>
</equals>
</and>
</condition>
<value>4</value>
</max-rate-of-change>
</filter>
<filter>
<name>VERT SPEED FILTER</name>
<debug>false</debug>
@ -623,7 +561,7 @@
</input>
<output>/it-autoflight/internal/target-roll</output>
<type>noise-spike</type>
<max-rate-of-change>15</max-rate-of-change>
<max-rate-of-change>6</max-rate-of-change>
</filter>
<pid-controller>
@ -740,7 +678,7 @@
</input>
<output>/controls/flight/aileron</output>
<type>noise-spike</type>
<max-rate-of-change>0.9</max-rate-of-change>
<max-rate-of-change>2.5</max-rate-of-change>
</filter>
<!-- =============================================================== -->
@ -888,7 +826,7 @@
<value>4</value>
</equals>
</condition>
<value>-40</value>
<value>-50</value>
</Kp>
<Kp>
<condition>
@ -897,7 +835,7 @@
<value>7</value>
</equals>
</condition>
<value>-55</value>
<value>-60</value>
</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
@ -1029,7 +967,7 @@
<property>/it-autoflight/internal/target-fpm-b</property>
</output>
<config>
<Kp>-40</Kp>
<Kp>-50</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
@ -1264,7 +1202,7 @@
<property>/it-autoflight/config/autoland/kp-pitch</property>
</Kp>
<Ti>5.0</Ti>
<Td>0.001</Td>
<Td>0.003</Td>
<u_min>
<condition>
<not-equals>
@ -1326,7 +1264,7 @@
</input>
<output>/it-autoflight/internal/target-pitch</output>
<type>noise-spike</type>
<max-rate-of-change>10</max-rate-of-change>
<max-rate-of-change>6</max-rate-of-change>
</filter>
<pid-controller>
@ -1401,7 +1339,7 @@
</input>
<output>/controls/flight/elevator</output>
<type>noise-spike</type>
<max-rate-of-change>0.4</max-rate-of-change>
<max-rate-of-change>2.5</max-rate-of-change>
</filter>
<!-- =============================================================== -->

View file

@ -5,14 +5,22 @@
<PropertyList>
<!-- =============================================================== -->
<!-- Elevator Position Feeding -->
<!-- Surface Position Feeding -->
<!-- =============================================================== -->
<filter>
<debug>false</debug>
<type>gain</type>
<gain>1.0</gain>
<type>noise-spike</type>
<input>/controls/flight/aileron</input>
<output>/controls/flight/aileron-input</output>
<max-rate-of-change>2.5</max-rate-of-change>
</filter>
<filter>
<debug>false</debug>
<type>noise-spike</type>
<input>
<condition>
<and>
@ -61,6 +69,7 @@
<property>/controls/flight/elevator</property>
</input>
<output>/controls/flight/elevator-input</output>
<max-rate-of-change>2.5</max-rate-of-change>
</filter>
<!-- =============================================================== -->
@ -106,11 +115,11 @@
<property>/controls/flight/aileron-fbw-cmd</property>
</output>
<config>
<Kp>0.14</Kp>
<Kp>0.12</Kp>
<beta>1</beta>
<alpha>0.1</alpha>
<gamma>0</gamma>
<Ti>5</Ti>
<Ti>10</Ti>
<Td>0.005</Td>
<u_min>-1</u_min>
<u_max>1</u_max>
@ -178,7 +187,7 @@
</equals>
</or>
</condition>
<property>/controls/flight/aileron</property>
<property>/controls/flight/aileron-input</property>
</input>
<input>
<condition>
@ -189,11 +198,42 @@
</condition>
<value>0</value>
</input>
<output>/controls/flight/aileron-fbw</output>
<output>/controls/flight/roll-fbw</output>
<type>noise-spike</type>
<max-rate-of-change>10</max-rate-of-change>
</filter>
<filter>
<name>IT-FBW: AILERON</name>
<type>gain</type>
<gain>1</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>/controls/flight/roll-fbw</input>
<output>/controls/flight/aileron-fbw</output>
</filter>
<filter>
<name>IT-FBW: LEFT SPOILER</name>
<type>gain</type>
<gain>1</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>/controls/flight/roll-fbw</input>
<output>/controls/flight/spoiler-left-fbw-cmd</output>
<min>-1</min>
<max>0</max>
</filter>
<filter>
<name>IT-FBW: RIGHT SPOILER</name>
<type>gain</type>
<gain>1</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>/controls/flight/roll-fbw</input>
<output>/controls/flight/spoiler-right-fbw-cmd</output>
<min>0</min>
<max>1</max>
</filter>
<!-- =============================================================== -->
<!-- Vertical -->
<!-- =============================================================== -->
@ -247,11 +287,11 @@
<property>/controls/flight/elevator-fbw-cmd</property>
</output>
<config>
<Kp>-0.25</Kp>
<Kp>-0.22</Kp>
<beta>1</beta>
<alpha>0.1</alpha>
<gamma>0</gamma>
<Ti>5</Ti>
<Ti>10</Ti>
<Td>0.005</Td>
<u_min>-1</u_min>
<u_max>1</u_max>
@ -321,7 +361,7 @@
</equals>
</or>
</condition>
<property>/controls/flight/elevator</property>
<property>/controls/flight/elevator-input</property>
</input>
<input>
<condition>

View file

@ -36,21 +36,21 @@
<sum>
<property>/it-fbw/roll-deg</property>
<table>
<independentVar lookup="row">/controls/flight/aileron</independentVar>
<independentVar lookup="row">/controls/flight/aileron-input</independentVar>
<tableData>
-1.0 -0.1
-0.7 -0.05
-0.5 -0.02
-0.3 -0.011
-0.15 -0.004
-0.05 -0.0015
0.00 0.000
0.05 0.0015
0.15 0.004
0.3 0.011
0.5 0.02
0.7 0.05
1.0 0.1
-1.0 -0.15
-0.7 -0.1
-0.5 -0.05
-0.3 -0.025
-0.15 -0.01
-0.05 -0.005
0.00 0.00
0.05 0.005
0.15 0.01
0.3 0.025
0.5 0.05
0.7 0.1
1.0 0.15
</tableData>
</table>
</sum>

View file

@ -1,212 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyList>
<name>lights-dlg</name>
<layout>vbox</layout>
<text>
<label>A320 Light Controller</label>
</text>
<hrule />
<group>
<layout>vbox</layout>
<text>
<label>Landing lights</label>
</text>
<group>
<layout>hbox</layout>
<checkbox>
<label>Left</label>
<property>controls/lighting/landing-lights[0]</property>
<binding>
<command>dialog-apply</command>
</binding>
<live>true</live>
</checkbox>
<checkbox>
<label>Nosegear</label>
<property>controls/lighting/landing-lights[1]</property>
<binding>
<command>dialog-apply</command>
</binding>
<live>true</live>
</checkbox>
<checkbox>
<label>Right</label>
<property>controls/lighting/landing-lights[2]</property>
<binding>
<command>dialog-apply</command>
</binding>
<live>true</live>
</checkbox>
</group>
<hrule/>
<text>
<label>Navigation/logo lights</label>
</text>
<group>
<layout>hbox</layout>
<button>
<legend>Off</legend>
<binding>
<command>dialog-apply</command>
</binding>
<binding>
<command>property-assign</command>
<property>controls/lighting/nav-lights-switch</property>
<value>0</value>
</binding>
</button>
<button>
<legend>1</legend>
<binding>
<command>dialog-apply</command>
</binding>
<binding>
<command>property-assign</command>
<property>controls/lighting/nav-lights-switch</property>
<value>1</value>
</binding>
</button>
<button>
<legend>2</legend>
<binding>
<command>dialog-apply</command>
</binding>
<binding>
<command>property-assign</command>
<property>controls/lighting/nav-lights-switch</property>
<value>2</value>
</binding>
</button>
</group>
<checkbox>
<label>Strobe lights</label>
<property>controls/lighting/strobe</property>
<binding>
<command>dialog-apply</command>
</binding>
<live>true</live>
</checkbox>
<!-- <checkbox>
<label>Wing lights</label>
<property>controls/lighting/wing-lights</property>
<binding>
<command>dialog-apply</command>
</binding>
<live>true</live>
</checkbox>-->
<checkbox>
<label>Beacon</label>
<property>controls/lighting/beacon</property>
<binding>
<command>dialog-apply</command>
</binding>
<live>true</live>
</checkbox>
<text>
<label>Cockpit dome lighting</label>
</text>
<slider>
<width>200</width>
<property>controls/lighting/dome-norm</property>
<step>0.5</step>
<min>0</min>
<max>1</max>
<binding>
<command>dialog-apply</command>
</binding>
</slider>
<text>
<label>Cabin lighting</label>
</text>
<slider>
<width>200</width>
<property>controls/lighting/interior</property>
<step>0.05</step>
<min>0</min>
<max>1</max>
<binding>
<command>dialog-apply</command>
</binding>
</slider>
<text>
<label>Overhead panel lighting</label>
</text>
<slider>
<width>200</width>
<property>controls/lighting/overhead-panel-norm</property>
<step>0.05</step>
<min>0</min>
<max>1</max>
<binding>
<command>dialog-apply</command>
</binding>
</slider>
<text>
<label>Pedestal/main panel lighting</label>
</text>
<slider>
<width>200</width>
<property>controls/lighting/main-panel-pedestal-norm</property>
<step>0.05</step>
<min>0</min>
<max>1</max>
<binding>
<command>dialog-apply</command>
</binding>
</slider>
<checkbox>
<label>3D light cones</label>
<property>controls/lighting/cones</property>
<binding>
<command>dialog-apply</command>
</binding>
<live>true</live>
</checkbox>
</group>
<hrule />
<group>
<layout>vbox</layout>
<button>
<legend>Close</legend>
<default>true</default>
<key>Esc</key>
<padding>10</padding>
<binding>
<command>dialog-apply</command>
</binding>
<binding>
<command>dialog-close</command>
</binding>
</button>
</group>
</PropertyList>