This commit is contained in:
omega13a 2017-05-24 13:30:05 -07:00
commit 11a31f63a2
24 changed files with 625 additions and 464 deletions

View file

@ -315,22 +315,21 @@
<fpa>0.30</fpa>
</cmd>
<autoland>
<kp-roll>0.10</kp-roll>
<kp-pitch>0.03</kp-pitch>
<kp-rudder>-0.25</kp-rudder>
</autoland>
</config>
<settings>
<default-bank-limit>30</default-bank-limit> <!-- Set the Default Bank Limit -->
<default-bank-limit>25</default-bank-limit> <!-- Set the Default Bank Limit -->
<enable-cws>0</enable-cws> <!-- Enable/Disable CWS -->
<flare-altitude>40</flare-altitude> <!-- Autoland Flare AGL -->
<land-enable>1</land-enable> <!-- Enable/Disable Autoland -->
<land-flap>0.645</land-flap> <!-- Minimum Flap used for Landing -->
<retard-ft>40</retard-ft> <!-- Enable Thrust Retard -->
<retard-enable>0</retard-enable> <!-- AGL to Thrust Retard -->
<togaspd>162</togaspd> <!-- V2 + 10kts -->
<togaspd>157</togaspd> <!-- V2 + 10kts -->
<lat-agl-ft>30</lat-agl-ft> <!-- Set to 999999 if you do not want T/O to change automatically to HDG, or LNAV -->
<reduc-agl-ft>3000</reduc-agl-ft> <!-- Set to 999999 if you do not want TOGA to change automatically to FLCH -->
<autoland-without-ap>1</autoland-without-ap> <!-- Engage LAND and FLARE Modes even if the AP is off -->
</settings>
<output>
<ap1>0</ap1>
@ -392,6 +391,7 @@
<fault type="bool">false</fault>
</ir>
<onbat type="bool">false</onbat>
<skip userarchive="y" type="bool">0</skip>
</adirs>
<APU>
<fire-switch type="bool">0</fire-switch>
@ -521,7 +521,7 @@
<options n="0">
<pfd n="0">
<sidestick-pos type="bool">0</sidestick-pos>
<sidestick-pos userarchive="y" type="bool">0</sidestick-pos>
</pfd>
</options>
@ -636,11 +636,11 @@
<keyboard>
<key n="127">
<name>DEL</name>
<desc>REV MSG</desc>
<desc>Simple Engage/Disengage reversers</desc>
<binding>
<command>nasal</command>
<script>
gui.popupTip("Use w to activate reverse thrust, and q to deactivate reverse thrust.");
systems.toggleFastRevThrust();
</script>
</binding>
</key>
@ -650,7 +650,7 @@
<binding>
<command>nasal</command>
<script>
systems.un_rev_thrust();
systems.unRevThrust();
</script>
</binding>
</key>
@ -660,7 +660,7 @@
<binding>
<command>nasal</command>
<script>
systems.do_rev_thrust();
systems.doRevThrust();
</script>
</binding>
</key>
@ -670,7 +670,7 @@
<binding>
<command>nasal</command>
<script>
systems.do_idle_thrust();
systems.doIdleThrust();
</script>
</binding>
</key>

View file

@ -24,7 +24,7 @@
<text>
<halign>center</halign>
<label>A3XX Logic is startup up...</label>
<label>Initializing...</label>
</text>
</group>

View file

@ -12,15 +12,16 @@ var fbw_dlg = gui.Dialog.new("sim/gui/dialogs/acconfig/fbw/dialog", "Aircraft/A3
init_dlg.open();
setlistener("/sim/signals/fdm-initialized", func {
# loadSettings();
init_dlg.close();
welcome_dlg.open();
});
#var loadSettings = func {
# var file = io.open(getprop("/sim/aircraft-dir")~"/AircraftConfig/settings.conf","r+");
# print(file);
#}
var saveSettings = func {
aircraft.data.add("/options/pfd/sidestick-pos", "/controls/adirs/skip");
aircraft.data.save();
}
saveSettings();
var systemsReset = func {
systems.elec_init();

View file

@ -59,6 +59,10 @@
<halign>left</halign>
<label>E - Set Idle Thrust</label>
</text>
<text>
<halign>left</halign>
<label>DEL - Toggle Reverse Thrust</label>
</text>
<text>
<halign>left</halign>
<label>CTRL + B - Cycle Spoilers</label>

View file

@ -288,7 +288,7 @@
<hrule/>
<checkbox>
<label>Skip IRS Alignment</label>
<label>Skip ADIRS Alignment</label>
<halign>left</halign>
<property>/controls/adirs/skip</property>
<binding>
@ -298,6 +298,12 @@
<binding>
<command>dialog-apply</command>
</binding>
<binding>
<command>nasal</command>
<script>
acconfig.saveSettings();
</script>
</binding>
<live>true</live>
</checkbox>
@ -312,6 +318,12 @@
<binding>
<command>dialog-apply</command>
</binding>
<binding>
<command>nasal</command>
<script>
acconfig.saveSettings();
</script>
</binding>
<live>true</live>
</checkbox>

View file

@ -1,2 +0,0 @@
skipADIRS=0
showPFDSideStick=0

View file

@ -2132,13 +2132,7 @@
<name>Engine 1 throttle lever</name>
<type>rotate</type>
<object-name>thr_l</object-name>
<condition>
<not-equals>
<property>/controls/engines/engine[0]/reverser</property>
<value>1</value>
</not-equals>
</condition>
<property>controls/engines/engine[0]/throttle-pos</property>
<property>controls/engines/engine[0]/throttle-lever</property>
<interpolation>
<entry><ind>0.00000</ind><dep>10</dep></entry>
<entry><ind>0.59999</ind><dep>33</dep></entry>
@ -2168,16 +2162,10 @@
<name>Engine 1 throttle lever rev</name>
<type>rotate</type>
<object-name>thr_l</object-name>
<condition>
<equals>
<property>/controls/engines/engine[0]/reverser</property>
<value>1</value>
</equals>
</condition>
<property>controls/engines/engine[0]/throttle-pos</property>
<property>controls/engines/engine[0]/throttle-rev</property>
<interpolation>
<entry><ind>0.00</ind><dep> 0</dep></entry>
<entry><ind>0.25</ind><dep>-10</dep></entry>
<entry><ind>0.50</ind><dep>-10</dep></entry>
</interpolation>
<axis>
<x>0</x>
@ -2221,13 +2209,7 @@
<name>Engine 2 throttle lever</name>
<type>rotate</type>
<object-name>thr_r</object-name>
<condition>
<not-equals>
<property>/controls/engines/engine[0]/reverser</property>
<value>1</value>
</not-equals>
</condition>
<property>controls/engines/engine[1]/throttle-pos</property>
<property>controls/engines/engine[1]/throttle-lever</property>
<interpolation>
<entry><ind>0.00000</ind><dep>10</dep></entry>
<entry><ind>0.59999</ind><dep>33</dep></entry>
@ -2257,16 +2239,10 @@
<name>Engine 2 throttle lever rev</name>
<type>rotate</type>
<object-name>thr_r</object-name>
<condition>
<equals>
<property>/controls/engines/engine[0]/reverser</property>
<value>1</value>
</equals>
</condition>
<property>controls/engines/engine[1]/throttle-pos</property>
<property>controls/engines/engine[1]/throttle-rev</property>
<interpolation>
<entry><ind>0.00</ind><dep> 0</dep></entry>
<entry><ind>0.25</ind><dep>-10</dep></entry>
<entry><ind>0.50</ind><dep>-10</dep></entry>
</interpolation>
<axis>
<x>0</x>

View file

@ -931,7 +931,7 @@
<animation>
<type>rotate</type>
<object-name>thrpos1</object-name>
<property>/controls/engines/engine[0]/throttle</property>
<property>/controls/engines/engine[0]/throttle-lever</property>
<interpolation>
<entry><ind>0.00000</ind><dep>-12</dep></entry>
<entry><ind>0.23350</ind><dep> 53</dep></entry>
@ -962,7 +962,7 @@
<animation>
<type>rotate</type>
<object-name>thrpos2</object-name>
<property>/controls/engines/engine[1]/throttle</property>
<property>/controls/engines/engine[1]/throttle-lever</property>
<interpolation>
<entry><ind>0.00000</ind><dep>-12</dep></entry>
<entry><ind>0.23350</ind><dep> 53</dep></entry>

View file

@ -1137,7 +1137,7 @@
<animation>
<type>rotate</type>
<object-name>thrpos1</object-name>
<property>/controls/engines/engine[0]/throttle</property>
<property>/controls/engines/engine[0]/throttle-lever</property>
<interpolation>
<entry><ind>0.00000</ind><dep>-10</dep></entry>
<entry><ind>0.19560</ind><dep> 28</dep></entry>
@ -1169,7 +1169,7 @@
<animation>
<type>rotate</type>
<object-name>thrpos2</object-name>
<property>/controls/engines/engine[1]/throttle</property>
<property>/controls/engines/engine[1]/throttle-lever</property>
<interpolation>
<entry><ind>0.00000</ind><dep>-10</dep></entry>
<entry><ind>0.19560</ind><dep> 28</dep></entry>

View file

@ -935,7 +935,7 @@
<animation>
<type>rotate</type>
<object-name>thrpos1</object-name>
<property>/controls/engines/engine[0]/throttle</property>
<property>/controls/engines/engine[0]/throttle-lever</property>
<interpolation>
<entry><ind>0.00000</ind><dep> -2</dep></entry>
<entry><ind>0.23350</ind><dep> 72</dep></entry>
@ -966,7 +966,7 @@
<animation>
<type>rotate</type>
<object-name>thrpos2</object-name>
<property>/controls/engines/engine[1]/throttle</property>
<property>/controls/engines/engine[1]/throttle-lever</property>
<interpolation>
<entry><ind>0.00000</ind><dep> -2</dep></entry>
<entry><ind>0.23350</ind><dep> 72</dep></entry>

View file

@ -1137,7 +1137,7 @@
<animation>
<type>rotate</type>
<object-name>thrpos1</object-name>
<property>/controls/engines/engine[0]/throttle</property>
<property>/controls/engines/engine[0]/throttle-lever</property>
<interpolation>
<entry><ind>0.00000</ind><dep>05</dep></entry>
<entry><ind>0.19560</ind><dep>33</dep></entry>
@ -1169,7 +1169,7 @@
<animation>
<type>rotate</type>
<object-name>thrpos2</object-name>
<property>/controls/engines/engine[1]/throttle</property>
<property>/controls/engines/engine[1]/throttle-lever</property>
<interpolation>
<entry><ind>0.00000</ind><dep>05</dep></entry>
<entry><ind>0.19560</ind><dep>33</dep></entry>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 529 KiB

View file

@ -1,16 +0,0 @@
<PropertyList>
<sim>
<model>
<livery>
<name type="string">Lufthansa (D-AIPE)</name>
<texture>Liveries/A320/CFM/D-AIPE.png</texture>
</livery>
</model>
</sim>
<options>
<EIS2 type="bool">1</EIS2>
</options>
<sharklet type="bool">0</sharklet>
</PropertyList>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 461 KiB

After

Width:  |  Height:  |  Size: 528 KiB

View file

@ -1,19 +1,16 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Deutsche Lufthansa AG livery for Airbus Industries A320-200 mady by D-SVEN. Have fun! -->
<PropertyList>
<sim>
<model>
<livery>
<name>Lufthansa</name>
<texture>Liveries/A320/CFM/DLH.png</texture>
</livery>
</model>
</sim>
<sim>
<model>
<livery>
<name type="string">Lufthansa D-AIZA</name>
<texture>Liveries/A320/CFM/DLH.png</texture>
</livery>
</model>
</sim>
<options>
<EIS2 type="bool">0</EIS2>
<EIS2 type="bool">1</EIS2>
</options>
<sharklet type="bool">0</sharklet>
</PropertyList>

Binary file not shown.

After

Width:  |  Height:  |  Size: 461 KiB

View file

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Deutsche Lufthansa AG livery for Airbus Industries A320-200 mady by D-SVEN. Have fun! -->
<PropertyList>
<sim>
<model>
<livery>
<name>Lufthansa D-AIUA (WL)</name>
<texture>Liveries/A320/CFM/DLH_WL.png</texture>
</livery>
</model>
</sim>
<options>
<EIS2 type="bool">0</EIS2>
</options>
<sharklet type="bool">1</sharklet>
</PropertyList>

Binary file not shown.

After

Width:  |  Height:  |  Size: 461 KiB

View file

@ -15,7 +15,6 @@ setprop("/systems/electrical/bus/ac2", 0);
setprop("/systems/electrical/bus/ac-ess", 0);
var adirs_init = func {
setprop("controls/adirs/skip",0); #define this here, as we want this to be off on startup
setprop("/controls/adirs/mcducbtn",0);
adirs_timer.start();
}
@ -50,7 +49,6 @@ var ADIRSreset = func {
setprop("/controls/adirs/ir[1]/fault",0);
setprop("/controls/adirs/ir[2]/fault",0);
setprop("/controls/adirs/onbat",0);
setprop("/controls/adirs/skip",0);
setprop("/controls/adirs/mcducbtn",0);
adirs_init();
}

View file

@ -252,7 +252,7 @@ setlistener("/systems/pneumatic/start-psi", func {
}
});
var do_idle_thrust = func {
var doIdleThrust = func {
setprop("/controls/engines/engine[0]/throttle", 0.0);
setprop("/controls/engines/engine[1]/throttle", 0.0);
}
@ -260,17 +260,8 @@ var do_idle_thrust = func {
#########################
# Reverse Thrust System #
#########################
var do_rev_thrust = func {
if ((getprop("/controls/engines/engine[0]/reverser") == "1") and (getprop("/controls/engines/engine[1]/reverser") == "1") and (getprop("/gear/gear[1]/wow") == 1) and (getprop("/gear/gear[2]/wow") == 1)) {
var pos1 = getprop("/controls/engines/engine[0]/throttle-pos");
var pos2 = getprop("/controls/engines/engine[1]/throttle-pos");
if (pos1 < 0.5) {
setprop("/controls/engines/engine[0]/throttle-pos", pos1 + 0.167);
}
if (pos2 < 0.5) {
setprop("/controls/engines/engine[1]/throttle-pos", pos2 + 0.167);
}
}
var toggleFastRevThrust = func {
var state1 = getprop("/systems/thrust/state1");
var state2 = getprop("/systems/thrust/state2");
if ((state1 == "IDLE") and (state2 == "IDLE") and (getprop("/controls/engines/engine[0]/reverser") == "0") and (getprop("/controls/engines/engine[1]/reverser") == "0") and (getprop("/gear/gear[1]/wow") == 1) and (getprop("/gear/gear[2]/wow") == 1)) {
@ -278,35 +269,69 @@ var do_rev_thrust = func {
interpolate("/engines/engine[1]/reverser-pos-norm", 1, 1.4);
setprop("/controls/engines/engine[0]/reverser", 1);
setprop("/controls/engines/engine[1]/reverser", 1);
setprop("/controls/engines/engine[0]/throttle-pos", 0);
setprop("/controls/engines/engine[1]/throttle-pos", 0);
setprop("/controls/engines/engine[0]/throttle-rev", 0.5);
setprop("/controls/engines/engine[1]/throttle-rev", 0.5);
setprop("/fdm/jsbsim/propulsion/engine[0]/reverser-angle-rad", 3.14);
setprop("/fdm/jsbsim/propulsion/engine[1]/reverser-angle-rad", 3.14);
} else if ((getprop("/controls/engines/engine[0]/reverser") == "1") or (getprop("/controls/engines/engine[1]/reverser") == "1") and (getprop("/gear/gear[1]/wow") == 1) and (getprop("/gear/gear[2]/wow") == 1)) {
setprop("/controls/engines/engine[0]/throttle-rev", 0);
setprop("/controls/engines/engine[1]/throttle-rev", 0);
interpolate("/engines/engine[0]/reverser-pos-norm", 0, 1.0);
interpolate("/engines/engine[1]/reverser-pos-norm", 0, 1.0);
setprop("/fdm/jsbsim/propulsion/engine[0]/reverser-angle-rad", 0);
setprop("/fdm/jsbsim/propulsion/engine[1]/reverser-angle-rad", 0);
setprop("/controls/engines/engine[0]/reverser", 0);
setprop("/controls/engines/engine[1]/reverser", 0);
}
}
var doRevThrust = func {
if ((getprop("/controls/engines/engine[0]/reverser") == "1") and (getprop("/controls/engines/engine[1]/reverser") == "1") and (getprop("/gear/gear[1]/wow") == 1) and (getprop("/gear/gear[2]/wow") == 1)) {
var pos1 = getprop("/controls/engines/engine[0]/throttle-rev");
var pos2 = getprop("/controls/engines/engine[1]/throttle-rev");
if (pos1 < 0.5) {
setprop("/controls/engines/engine[0]/throttle-rev", pos1 + 0.167);
}
if (pos2 < 0.5) {
setprop("/controls/engines/engine[1]/throttle-rev", pos2 + 0.167);
}
}
var state1 = getprop("/systems/thrust/state1");
var state2 = getprop("/systems/thrust/state2");
if ((state1 == "IDLE") and (state2 == "IDLE") and (getprop("/controls/engines/engine[0]/reverser") == "0") and (getprop("/controls/engines/engine[1]/reverser") == "0") and (getprop("/gear/gear[1]/wow") == 1) and (getprop("/gear/gear[2]/wow") == 1)) {
setprop("/controls/engines/engine[0]/throttle-rev", 0);
setprop("/controls/engines/engine[1]/throttle-rev", 0);
interpolate("/engines/engine[0]/reverser-pos-norm", 1, 1.4);
interpolate("/engines/engine[1]/reverser-pos-norm", 1, 1.4);
setprop("/controls/engines/engine[0]/reverser", 1);
setprop("/controls/engines/engine[1]/reverser", 1);
setprop("/fdm/jsbsim/propulsion/engine[0]/reverser-angle-rad", 3.14);
setprop("/fdm/jsbsim/propulsion/engine[1]/reverser-angle-rad", 3.14);
}
}
var un_rev_thrust = func {
if ((getprop("/controls/engines/engine[0]/reverser") == "1") and (getprop("/controls/engines/engine[1]/reverser") == "1")) {
var pos1 = getprop("/controls/engines/engine[0]/throttle-pos");
var pos2 = getprop("/controls/engines/engine[1]/throttle-pos");
var unRevThrust = func {
if ((getprop("/controls/engines/engine[0]/reverser") == "1") or (getprop("/controls/engines/engine[1]/reverser") == "1")) {
var pos1 = getprop("/controls/engines/engine[0]/throttle-rev");
var pos2 = getprop("/controls/engines/engine[1]/throttle-rev");
if (pos1 > 0.0) {
setprop("/controls/engines/engine[0]/throttle-pos", pos1 - 0.167);
setprop("/controls/engines/engine[0]/throttle-rev", pos1 - 0.167);
} else {
un_rev_thrust_b();
unRevThrust_b();
}
if (pos2 > 0.0) {
setprop("/controls/engines/engine[1]/throttle-pos", pos2 - 0.167);
setprop("/controls/engines/engine[1]/throttle-rev", pos2 - 0.167);
} else {
un_rev_thrust_b();
unRevThrust_b();
}
}
}
var un_rev_thrust_b = func {
var unRevThrust_b = func {
setprop("/controls/engines/engine[0]/throttle-rev", 0);
setprop("/controls/engines/engine[1]/throttle-rev", 0);
interpolate("/engines/engine[0]/reverser-pos-norm", 0, 1.0);
interpolate("/engines/engine[1]/reverser-pos-norm", 0, 1.0);
setprop("/controls/engines/engine[0]/throttle-pos", 0);
setprop("/controls/engines/engine[1]/throttle-pos", 0);
setprop("/fdm/jsbsim/propulsion/engine[0]/reverser-angle-rad", 0);
setprop("/fdm/jsbsim/propulsion/engine[1]/reverser-angle-rad", 0);
setprop("/controls/engines/engine[0]/reverser", 0);

View file

@ -1,6 +1,6 @@
# IT AUTOFLIGHT System Controller
# Joshua Davidson (it0uchpods)
# V3.0.0 Build 180
# V3.0.0 Build 182
# This program is 100% GPL!
print("IT-AUTOFLIGHT: Please Wait!");
@ -51,7 +51,6 @@ var ap_init = func {
setprop("/it-autoflight/internal/fpa", 0);
setprop("/it-autoflight/internal/prof-fpm", 0);
setprop("/it-autoflight/internal/top-of-des-nm", 0);
setprop("/it-autoflight/autoland/target-vs", "-650");
setprop("/it-autoflight/mode/thr", "PITCH");
setprop("/it-autoflight/mode/arm", "HDG");
setprop("/it-autoflight/mode/lat", "T/O");
@ -301,7 +300,6 @@ var vertical = func {
setprop("/instrumentation/nav[1]/gs-rate-of-climb", 0);
setprop("/it-autoflight/output/appr-armed", 1);
setprop("/it-autoflight/mode/arm", "ILS");
setprop("/it-autoflight/autoland/target-vs", "-650");
}
} else if (vertset == 3) {
alandt.stop();
@ -366,7 +364,6 @@ var vertical = func {
alandt.stop();
alandt1.start();
prof_sys_stop();
setprop("/it-autoflight/autoland/target-vs", "-650");
} else if (vertset == 7) {
alandt.stop();
alandt1.stop();
@ -770,8 +767,12 @@ var make_appr_active = func {
var aland = func {
var ap1 = getprop("/it-autoflight/output/ap1");
var ap2 = getprop("/it-autoflight/output/ap2");
var landoption = getprop("/it-autoflight/settings/autoland-without-ap");
if (getprop("/position/gear-agl-ft") <= 100) {
if (ap1 or ap2) {
if (ap1 == 1 or ap2 == 1) {
setprop("/it-autoflight/input/lat", 4);
setprop("/it-autoflight/input/vert", 6);
} else if (ap1 == 0 and ap2 == 0 and landoption) {
setprop("/it-autoflight/input/lat", 4);
setprop("/it-autoflight/input/vert", 6);
} else {
@ -783,12 +784,10 @@ var aland = func {
var aland1 = func {
var aglal = getprop("/position/gear-agl-ft");
var flarealt = getprop("/it-autoflight/settings/flare-altitude");
if (aglal <= flarealt and aglal > 5) {
if (aglal <= 50 and aglal > 5) {
setprop("/it-autoflight/mode/vert", "FLARE");
setprop("/it-autoflight/autoland/target-vs", "-120");
}
if ((getprop("/it-autoflight/output/ap1") == 0) and (getprop("/it-autoflight/output/ap2") == 0)) {
if ((getprop("/it-autoflight/output/ap1") == 0) and (getprop("/it-autoflight/output/ap2") == 0) and (getprop("/it-autoflight/settings/autoland-without-ap") == 0)) {
alandt.stop();
alandt1.stop();
setprop("/it-autoflight/output/loc-armed", 0);

View file

@ -223,37 +223,81 @@
<max-rate-of-change>1000</max-rate-of-change>
</filter>
<filter>
<name>PFD IAS Sync</name>
<type>gain</type>
<gain>1</gain>
<enable>
<condition>
<equals>
<property>/it-autoflight/input/kts-mach</property>
<value>1</value>
</equals>
</condition>
</enable>
<update-interval-secs type="double">0.5</update-interval-secs>
<input>/instrumentation/airspeed-indicator/indicated-speed-kt</input>
<output>/it-autoflight/input/spd-kts</output>
</filter>
<filter>
<name>Throttle L</name>
<type>gain</type>
<gain>1</gain>
<enable>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<condition>
<equals>
<property>/controls/engines/engine[0]/reverser</property>
<value>0</value>
</equals>
</condition>
</enable>
<property>/controls/engines/engine[0]/throttle</property>
</input>
<input>
<condition>
<equals>
<property>/controls/engines/engine[0]/reverser</property>
<value>1</value>
</equals>
</condition>
<value>0</value>
</input>
<output>/controls/engines/engine[0]/throttle-lever</output>
</filter>
<filter>
<name>Throttle R</name>
<type>gain</type>
<gain>1</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>/controls/engines/engine[0]/throttle</input>
<input>
<condition>
<equals>
<property>/controls/engines/engine[1]/reverser</property>
<value>0</value>
</equals>
</condition>
<property>/controls/engines/engine[1]/throttle</property>
</input>
<input>
<condition>
<equals>
<property>/controls/engines/engine[1]/reverser</property>
<value>1</value>
</equals>
</condition>
<value>0</value>
</input>
<output>/controls/engines/engine[1]/throttle-lever</output>
</filter>
<filter>
<name>Throttle L</name>
<type>gain</type>
<gain>1</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<condition>
<equals>
<property>/controls/engines/engine[0]/reverser</property>
<value>0</value>
</equals>
</condition>
<property>/controls/engines/engine[0]/throttle</property>
</input>
<input>
<condition>
<equals>
<property>/controls/engines/engine[0]/reverser</property>
<value>1</value>
</equals>
</condition>
<property>/controls/engines/engine[0]/throttle-rev</property>
</input>
<output>/controls/engines/engine[0]/throttle-pos</output>
</filter>
@ -261,16 +305,25 @@
<name>Throttle R</name>
<type>gain</type>
<gain>1</gain>
<enable>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<condition>
<equals>
<property>/controls/engines/engine[1]/reverser</property>
<value>0</value>
</equals>
</condition>
</enable>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>/controls/engines/engine[1]/throttle</input>
<property>/controls/engines/engine[1]/throttle</property>
</input>
<input>
<condition>
<equals>
<property>/controls/engines/engine[1]/reverser</property>
<value>1</value>
</equals>
</condition>
<property>/controls/engines/engine[1]/throttle-rev</property>
</input>
<output>/controls/engines/engine[1]/throttle-pos</output>
</filter>

View file

@ -16,14 +16,6 @@
<seconds>5.0</seconds>
<filter-gain>0.0</filter-gain>
</predict-simple>
<predict-simple>
<name>VOR/LOC 5 SECONDS AHEAD</name>
<input>/it-autoflight/internal/nav1-track-error-deg</input>
<output>/it-autoflight/internal/nav1-error-5-sec-ahead</output>
<seconds>12</seconds>
<filter-gain>0.1</filter-gain>
</predict-simple>
<predict-simple>
<name>IAS 5 SECOND PREDICTOR</name>
@ -82,63 +74,285 @@
<!-- =============================================================== -->
<!-- Autopilot Helpers -->
<!-- =============================================================== -->
<filter>
<name>KTS INPUT FILTER</name>
<debug>false</debug>
<feedback-if-disabled>true</feedback-if-disabled>
<initialize-to>output</initialize-to>
<input>
<condition>
<not-equals>
<property>/it-autoflight/mode/vert</property>
<value>T/O CLB</value>
</not-equals>
</condition>
<property>/it-autoflight/input/spd-kts</property>
</input>
<input>
<condition>
<equals>
<property>/it-autoflight/mode/vert</property>
<value>T/O CLB</value>
</equals>
</condition>
<property>/it-autoflight/settings/togaspd</property>
</input>
<output>/it-autoflight/internal/flch-kts</output>
<type>noise-spike</type>
<max-rate-of-change>
<condition>
<or>
<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>100</value>
</max-rate-of-change>
<max-rate-of-change>
<condition>
<and>
<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>5</value>
</max-rate-of-change>
</filter>
<filter>
<name>MACH INPUT FILTER</name>
<debug>false</debug>
<feedback-if-disabled>true</feedback-if-disabled>
<initialize-to>output</initialize-to>
<input>
<property>/it-autoflight/input/spd-mach</property>
</input>
<output>/it-autoflight/internal/flch-mach</output>
<type>noise-spike</type>
<max-rate-of-change>
<condition>
<or>
<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>1</value>
</max-rate-of-change>
<max-rate-of-change>
<condition>
<and>
<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>0.05</value>
</max-rate-of-change>
</filter>
<filter>
<name>IAS SYNC</name>
<type>gain</type>
<gain>1</gain>
<enable>
<condition>
<equals>
<property>/it-autoflight/input/kts-mach</property>
<value>1</value>
</equals>
</condition>
</enable>
<update-interval-secs type="double">0.5</update-interval-secs>
<input>/instrumentation/airspeed-indicator/indicated-speed-kt</input>
<output>/it-autoflight/input/spd-kts</output>
</filter>
<filter>
<name>MACH SYNC</name>
<type>gain</type>
<gain>1</gain>
<enable>
<condition>
<equals>
<property>/it-autoflight/input/kts-mach</property>
<value>0</value>
</equals>
</condition>
</enable>
<update-interval-secs type="double">0.5</update-interval-secs>
<input>/instrumentation/airspeed-indicator/indicated-mach</input>
<output>/it-autoflight/input/spd-mach</output>
</filter>
<filter>
<name>MAGNETIC HDG ERROR DEG</name>
<name>HEADING ERROR DEG</name>
<debug>false</debug>
<type>gain</type>
<input>
<condition>
<and>
<equals>
<property>/it-autoflight/output/lat</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/input/trk</property>
<value>0</value>
</equals>
</and>
</condition>
<property>/it-autoflight/input/hdg</property>
<offset>
<property>/orientation/heading-magnetic-deg</property>
<scale>-1.0</scale>
</offset>
</input>
<output>/it-autoflight/internal/heading-bug-error-deg</output>
<output>/it-autoflight/internal/fdm-heading-bug-error-deg</output>
<period>
<min>-180</min>
<max>180</max>
</period>
<gain>1.0</gain>
</filter>
<filter>
<name>TRUE HDG ERROR DEG</name>
<debug>false</debug>
<type>gain</type>
<input>
<condition>
<and>
<equals>
<property>/it-autoflight/output/lat</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/input/trk</property>
<value>1</value>
</equals>
</and>
</condition>
<property>/it-autoflight/input/hdg</property>
<offset>
<property>/orientation/heading-deg</property>
<scale>-1.0</scale>
</offset>
</input>
<output>/it-autoflight/internal/true-heading-error-deg</output>
<input>
<condition>
<equals>
<property>/it-autoflight/output/lat</property>
<value>1</value>
</equals>
</condition>
<property>/it-autoflight/input/hdg</property>
<offset>
<property>/autopilot/settings/true-heading-deg</property>
<scale>-1.0</scale>
</offset>
</input>
<output>/it-autoflight/internal/heading-error-deg-cmd</output>
<period>
<min>-180</min>
<max>180</max>
</period>
<gain>1.0</gain>
</filter>
<filter>
<name>LNAV HDG ERROR DEG</name>
<name>HEADING ERROR FILTER</name>
<debug>false</debug>
<type>gain</type>
<feedback-if-disabled>true</feedback-if-disabled>
<initialize-to>output</initialize-to>
<input>
<property>/autopilot/settings/true-heading-deg</property>
<offset>
<property>/orientation/heading-deg</property>
<scale>-1.0</scale>
</offset>
<property>/it-autoflight/internal/heading-error-deg-cmd</property>
</input>
<output>/it-autoflight/internal/lnav-hdg-error-deg</output>
<period>
<min>-180</min>
<max>180</max>
</period>
<gain>1.0</gain>
<output>/it-autoflight/internal/heading-error-deg</output>
<type>noise-spike</type>
<max-rate-of-change>
<condition>
<or>
<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>
<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>2.5</value>
</max-rate-of-change>
</filter>
<filter>
<name>VERT SPEED FILTER</name>
<debug>false</debug>
<feedback-if-disabled>true</feedback-if-disabled>
<initialize-to>output</initialize-to>
<input>
<property>/it-autoflight/input/vs</property>
</input>
<output>/it-autoflight/internal/vs</output>
<type>noise-spike</type>
<max-rate-of-change>
<condition>
<or>
<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>2000</value>
</max-rate-of-change>
<max-rate-of-change>
<condition>
<and>
<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>300</value>
</max-rate-of-change>
</filter>
<filter>
@ -179,53 +393,6 @@
<gain>1.0</gain>
</filter>
<filter>
<name>NAV COURSE ERROR</name>
<debug>false</debug>
<type>gain</type>
<input>
<condition>
<equals>
<property>/it-autoflight/settings/use-nav2-radio</property>
<value>0</value>
</equals>
</condition>
<property>/instrumentation/nav[0]/radials/selected-deg</property>
<offset>
<property>/orientation/heading-magnetic-deg</property>
<scale>-1.0</scale>
</offset>
</input>
<input>
<condition>
<equals>
<property>/it-autoflight/settings/use-nav2-radio</property>
<value>1</value>
</equals>
</condition>
<property>/instrumentation/nav[1]/radials/selected-deg</property>
<offset>
<property>/orientation/heading-magnetic-deg</property>
<scale>-1.0</scale>
</offset>
</input>
<output>/it-autoflight/internal/nav-course-error</output>
<period>
<min>-180</min>
<max>180</max>
</period>
<gain>1.0</gain>
</filter>
<filter>
<name>VOR/LOC HEADING ERROR FILTER</name>
<debug>false</debug>
<type>noise-spike</type>
<input>/it-autoflight/internal/nav1-error-5-sec-ahead</input>
<output>/it-autoflight/internal/nav1-heading-error-deg-filtered</output>
<max-rate-of-change>90.0</max-rate-of-change>
</filter>
<filter>
<name>INTERNAL VERTICAL SPEED COMPUTER</name>
<debug>false</debug>
@ -261,34 +428,6 @@
<output>/it-autoflight/internal/target-fpm-b</output>
<gain>55.5</gain>
</filter>
<filter>
<name>STATIC PRESSURE COMPUTER</name>
<debug>false</debug>
<type>derivative</type>
<input>/systems/static[0]/pressure-inhg</input>
<output>/it-autoflight/internal/pressure-rate</output>
<filter-time>1.0</filter-time>
</filter>
<filter>
<name>NAV1 TRACK ERROR</name>
<debug>false</debug>
<type>gain</type>
<input>
<property>/instrumentation/nav[0]/radials/target-auto-hdg-deg</property>
<offset>
<property>/orientation/track-deg</property>
<scale>-1.0</scale>
</offset>
</input>
<output>/it-autoflight/internal/nav1-track-error-deg</output>
<period>
<min>-180</min>
<max>180</max>
</period>
<gain>1.0</gain>
</filter>
<filter>
<name>NAV1 G/S FPM Calc</name>
@ -334,49 +473,7 @@
</condition>
</enable>
<input>
<condition>
<and>
<equals>
<property>/it-autoflight/output/lat</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/input/trk</property>
<value>0</value>
</equals>
</and>
</condition>
<property>/it-autoflight/internal/heading-bug-error-deg</property>
<scale>
<property>/it-autoflight/config/cmd/roll-scale</property>
</scale>
</input>
<input>
<condition>
<and>
<equals>
<property>/it-autoflight/output/lat</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/input/trk</property>
<value>1</value>
</equals>
</and>
</condition>
<property>/it-autoflight/internal/true-heading-error-deg</property>
<scale>
<property>/it-autoflight/config/cmd/roll-scale</property>
</scale>
</input>
<input>
<condition>
<equals>
<property>/it-autoflight/output/lat</property>
<value>1</value>
</equals>
</condition>
<property>/it-autoflight/internal/lnav-hdg-error-deg</property>
<property>/it-autoflight/internal/heading-error-deg</property>
<scale>
<property>/it-autoflight/config/cmd/roll-scale</property>
</scale>
@ -476,8 +573,8 @@
<gamma>0.0</gamma>
<Ti>10.0</Ti>
<Td>0.00001</Td>
<u_min>-30</u_min>
<u_max>30</u_max>
<u_min>-25</u_min>
<u_max>25</u_max>
</config>
</pid-controller>
@ -550,16 +647,10 @@
<config>
<Kp>
<condition>
<and>
<not-equals>
<property>/it-autoflight/output/lat</property>
<value>2</value>
</not-equals>
<not-equals>
<property>/it-autoflight/output/lat</property>
<value>4</value>
</not-equals>
</and>
<not-equals>
<property>/it-autoflight/output/lat</property>
<value>2</value>
</not-equals>
</condition>
<property>/it-autoflight/config/roll/kp</property>
</Kp>
@ -572,15 +663,6 @@
</condition>
<property>/it-autoflight/config/roll/kp-vloc</property>
</Kp>
<Kp>
<condition>
<equals>
<property>/it-autoflight/output/lat</property>
<value>4</value>
</equals>
</condition>
<property>/it-autoflight/config/autoland/kp-roll</property>
</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
@ -705,51 +787,21 @@
</config>
</pid-controller>
<pi-simple-controller>
<name>AUTOLAND VS HOLD</name>
<debug>false</debug>
<enable>
<condition>
<equals>
<property>/it-autoflight/output/vert</property>
<value>6</value>
</equals>
</condition>
</enable>
<input>
<property>/it-autoflight/internal/vert-speed-fpm</property>
<scale>0.2</scale>
</input>
<reference>
<property>/it-autoflight/autoland/target-vs</property>
<scale>0.2</scale>
</reference>
<output>
<property>/it-autoflight/internal/target-pitch-deg</property>
</output>
<config>
<Kp>
<property>/it-autoflight/config/autoland/kp-pitch</property>
</Kp>
<Ki>0.010</Ki>
<min>
<value>0</value>
</min>
<max>
<value>15</value>
</max>
</config>
</pi-simple-controller>
<pid-controller>
<name>FLCH SPEED BY PITCH</name>
<debug>false</debug>
<enable>
<condition>
<equals>
<property>/it-autoflight/output/vert</property>
<value>4</value>
</equals>
<or>
<equals>
<property>/it-autoflight/output/vert</property>
<value>4</value>
</equals>
<equals>
<property>/it-autoflight/output/vert</property>
<value>7</value>
</equals>
</or>
</condition>
</enable>
<input>
@ -769,7 +821,7 @@
</equals>
</condition>
<property>/it-autoflight/internal/lookahead-15-sec-mach</property>
<scale>350.0</scale>
<scale>500.0</scale>
</input>
<reference>
<condition>
@ -778,7 +830,7 @@
<value>0</value>
</equals>
</condition>
<property>/it-autoflight/input/spd-kts</property>
<property>/it-autoflight/internal/flch-kts</property>
</reference>
<reference>
<condition>
@ -787,132 +839,104 @@
<value>1</value>
</equals>
</condition>
<property>/it-autoflight/input/spd-mach</property>
<scale>350.0</scale>
<property>/it-autoflight/internal/flch-mach</property>
<scale>500.0</scale>
</reference>
<output>
<property>/it-autoflight/internal/target-fpm-b</property>
</output>
<config>
<Kp>-40</Kp>
<Kp>
<condition>
<equals>
<property>/it-autoflight/output/vert</property>
<value>4</value>
</equals>
</condition>
<value>-40</value>
</Kp>
<Kp>
<condition>
<equals>
<property>/it-autoflight/output/vert</property>
<value>7</value>
</equals>
</condition>
<value>-55</value>
</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>2.5</Ti>
<Td>0.001</Td>
<Td>0.001</Td>
<u_min>
<condition>
<greater-than>
<property>/it-autoflight/internal/alt</property>
<property>/instrumentation/altimeter/indicated-altitude-ft</property>
</greater-than>
<equals>
<property>/it-autoflight/output/thr-mode</property>
<value>2</value>
</equals>
</condition>
<value>200</value>
<value>150</value>
</u_min>
<u_min>
<condition>
<less-than>
<property>/it-autoflight/internal/alt</property>
<property>/instrumentation/altimeter/indicated-altitude-ft</property>
</less-than>
<equals>
<property>/it-autoflight/output/thr-mode</property>
<value>1</value>
</equals>
</condition>
<value>-6000</value>
</u_min>
<u_max>
<condition>
<greater-than>
<property>/it-autoflight/internal/alt</property>
<property>/instrumentation/altimeter/indicated-altitude-ft</property>
</greater-than>
<and>
<equals>
<property>/it-autoflight/output/thr-mode</property>
<value>2</value>
</equals>
<and>
<equals>
<property>/gear/gear[1]/wow</property>
<value>0</value>
</equals>
<equals>
<property>/gear/gear[2]/wow</property>
<value>0</value>
</equals>
</and>
</and>
</condition>
<value>10000</value>
</u_max>
<u_max>
<condition>
<less-than>
<property>/it-autoflight/internal/alt</property>
<property>/instrumentation/altimeter/indicated-altitude-ft</property>
</less-than>
</condition>
<value>-150</value>
</u_max>
</config>
</pid-controller>
<pid-controller>
<name>TOGA SPEED BY PITCH</name>
<debug>false</debug>
<enable>
<condition>
<equals>
<property>/it-autoflight/output/vert</property>
<value>7</value>
</equals>
</condition>
</enable>
<input>
<property>/it-autoflight/internal/lookahead-10-sec-airspeed-kt</property>
</input>
<reference>
<condition>
<equals>
<property>/it-autoflight/mode/vert</property>
<value>T/O CLB</value>
</equals>
</condition>
<property>/it-autoflight/settings/togaspd</property>
</reference>
<reference>
<condition>
<equals>
<property>/it-autoflight/mode/vert</property>
<value>G/A CLB</value>
</equals>
</condition>
<property>/it-autoflight/input/spd-kts</property>
</reference>
<output>
<property>/it-autoflight/internal/target-fpm-b</property>
</output>
<config>
<Kp>-55</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>2.5</Ti>
<Td>0.001</Td>
<u_min>
<value>150</value>
</u_min>
<u_max>
<condition>
<and>
<equals>
<property>/gear/gear[1]/wow</property>
<value>0</value>
</equals>
<equals>
<property>/gear/gear[2]/wow</property>
<value>0</value>
<property>/it-autoflight/output/thr-mode</property>
<value>2</value>
</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>
<value>8000</value>
<value>1000</value>
</u_max>
<u_max>
<condition>
<or>
<equals>
<property>/gear/gear[1]/wow</property>
<value>1</value>
</equals>
<equals>
<property>/gear/gear[2]/wow</property>
<value>1</value>
</equals>
</or>
<equals>
<property>/it-autoflight/output/thr-mode</property>
<value>1</value>
</equals>
</condition>
<value>1000</value>
<value>-150</value>
</u_max>
</config>
</pid-controller>
@ -945,7 +969,7 @@
</equals>
</condition>
<property>/it-autoflight/internal/lookahead-15-sec-mach</property>
<scale>350.0</scale>
<scale>500.0</scale>
</input>
<reference>
<condition>
@ -954,7 +978,7 @@
<value>0</value>
</equals>
</condition>
<property>/it-autoflight/input/spd-kts</property>
<property>/it-autoflight/internal/flch-kts</property>
</reference>
<reference>
<condition>
@ -963,8 +987,8 @@
<value>1</value>
</equals>
</condition>
<property>/it-autoflight/input/spd-mach</property>
<scale>350.0</scale>
<property>/it-autoflight/internal/flch-mach</property>
<scale>500.0</scale>
</reference>
<output>
<property>/it-autoflight/internal/target-fpm-b</property>
@ -983,7 +1007,7 @@
<property>/instrumentation/altimeter/indicated-altitude-ft</property>
</greater-than>
</condition>
<value>200</value>
<value>150</value>
</u_min>
<u_min>
<condition>
@ -1015,6 +1039,28 @@
</config>
</pid-controller>
<filter>
<name>AUTOLAND FPM</name>
<type>gain</type>
<gain>1</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/position/gear-agl-ft</property>
<entry><ind>100</ind><dep>-600</dep></entry>
<entry><ind> 50</ind><dep>-500</dep></entry>
<entry><ind> 40</ind><dep>-400</dep></entry>
<entry><ind> 30</ind><dep>-300</dep></entry>
<entry><ind> 20</ind><dep>-200</dep></entry>
<entry><ind> 10</ind><dep>-150</dep></entry>
<entry><ind> 5</ind><dep>-100</dep></entry>
</table>
</expression>
</input>
<output>/it-autoflight/internal/target-fpm-c</output>
</filter>
<pid-controller>
<name>FPM HOLD</name>
<debug>false</debug>
@ -1037,6 +1083,10 @@
<property>/it-autoflight/output/vert</property>
<value>4</value>
</equals>
<equals>
<property>/it-autoflight/output/vert</property>
<value>6</value>
</equals>
<equals>
<property>/it-autoflight/output/vert</property>
<value>7</value>
@ -1069,7 +1119,7 @@
<value>1</value>
</equals>
</condition>
<property>/it-autoflight/input/vs</property>
<property>/it-autoflight/internal/vs</property>
<scale>0.16667</scale>
</reference>
<reference>
@ -1114,6 +1164,16 @@
<property>/it-autoflight/internal/prof-fpm</property>
<scale>0.16667</scale>
</reference>
<reference>
<condition>
<equals>
<property>/it-autoflight/output/vert</property>
<value>6</value>
</equals>
</condition>
<property>/it-autoflight/internal/target-fpm-c</property>
<scale>0.16667</scale>
</reference>
<reference>
<condition>
<and>
@ -1151,13 +1211,43 @@
</output>
<config>
<Kp>
<condition>
<not-equals>
<property>/it-autoflight/output/vert</property>
<value>6</value>
</not-equals>
</condition>
<property>/it-autoflight/config/cmd/vs</property>
</Kp>
<Kp>
<condition>
<equals>
<property>/it-autoflight/output/vert</property>
<value>6</value>
</equals>
</condition>
<property>/it-autoflight/config/autoland/kp-pitch</property>
</Kp>
<Ti>2.5</Ti>
<Td>0.001</Td>
<u_min>
<condition>
<not-equals>
<property>/it-autoflight/output/vert</property>
<value>6</value>
</not-equals>
</condition>
<value>-10</value>
</u_min>
<u_min>
<condition>
<equals>
<property>/it-autoflight/output/vert</property>
<value>6</value>
</equals>
</condition>
<value>0</value>
</u_min>
<u_max>
<condition>
<and>
@ -1295,7 +1385,7 @@
</condition>
</enable>
<input>
<property>/it-autoflight/internal/nav1-heading-error-deg</property>
<property>/it-autoflight/internal/nav-heading-error-deg</property>
</input>
<reference>
<value>0</value>

View file

@ -77,6 +77,10 @@
<property>/it-autoflight/output/ap2</property>
<value>0</value>
</eq>
<eq>
<property>/gear/gear[0]/wow</property>
<value>0</value>
</eq>
<or>
<eq>
<property>/it-fbw/law</property>