improve FBW, add beginning of ALPHA FLOOR, misc fixes

This commit is contained in:
Joshua Davidson 2017-05-19 15:13:28 -04:00
parent 90b8710607
commit 6844d06113
11 changed files with 651 additions and 184 deletions

View file

@ -337,6 +337,11 @@
</output>
</it-autoflight>
<it-fbw n="0">
<alpha-hld type="bool">0</alpha-hld>
<target-g-load type="float">1.0</target-g-load>
</it-fbw>
<apu>
<rpm type="float">0</rpm>
<egt type="float">0</egt>

View file

@ -2574,7 +2574,7 @@
<!--Right sidestick -->
<animation>
<!--animation>
<type>rotate</type>
<object-name>sidestick_2</object-name>
<object-name>sidestick_4</object-name>
@ -2736,7 +2736,7 @@
<y>0.0</y>
<z>0.0</z>
</axis>
</animation>
</animation-->

View file

@ -152,7 +152,7 @@
<type>translate</type>
<object-name>fd_roll</object-name>
<property>/it-autoflight/fd/roll-bar</property>
<factor>0.0001</factor>
<factor>0.0002</factor>
<axis>
<x>0</x>
<y>1</y>
@ -1123,43 +1123,6 @@
</font-resolution>
</text>
<animation>
<type>select</type>
<object-name>thrust-mode-fma</object-name>
<condition>
<and>
<equals>
<property>/it-autoflight/output/athr</property>
<value>1</value>
</equals>
<not-equals>
<property>/systems/thrust/state1</property>
<value>MAN THR</value>
</not-equals>
<not-equals>
<property>/systems/thrust/state2</property>
<value>MAN THR</value>
</not-equals>
<not-equals>
<property>/systems/thrust/state1</property>
<value>MCT</value>
</not-equals>
<not-equals>
<property>/systems/thrust/state2</property>
<value>MCT</value>
</not-equals>
<not-equals>
<property>/systems/thrust/state1</property>
<value>TOGA</value>
</not-equals>
<not-equals>
<property>/systems/thrust/state2</property>
<value>TOGA</value>
</not-equals>
</and>
</condition>
</animation>
<text>
<name>pitch-mode-fma</name>
<offsets>
@ -1413,14 +1376,68 @@
<value>1</value>
</equals>
<or>
<equals>
<property>/systems/thrust/state1</property>
<value>CL</value>
</equals>
<equals>
<property>/systems/thrust/state2</property>
<value>CL</value>
</equals>
<and>
<equals>
<property>/it-autoflight/output/thr-mode</property>
<value>2</value>
</equals>
<or>
<equals>
<property>/it-autoflight/output/fd1</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/fd2</property>
<value>1</value>
</equals>
</or>
<or>
<equals>
<property>/systems/thrust/state1</property>
<value>CL</value>
</equals>
<equals>
<property>/systems/thrust/state2</property>
<value>CL</value>
</equals>
</or>
</and>
<and>
<or>
<not-equals>
<property>/it-autoflight/output/thr-mode</property>
<value>2</value>
</not-equals>
<and>
<equals>
<property>/it-autoflight/output/fd1</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/output/fd2</property>
<value>0</value>
</equals>
</and>
</or>
<or>
<equals>
<property>/systems/thrust/state1</property>
<value>MAN</value>
</equals>
<equals>
<property>/systems/thrust/state2</property>
<value>MAN</value>
</equals>
<equals>
<property>/systems/thrust/state1</property>
<value>CL</value>
</equals>
<equals>
<property>/systems/thrust/state2</property>
<value>CL</value>
</equals>
</or>
</and>
</or>
</and>
</condition>
@ -1431,6 +1448,14 @@
<object-name>athr-active-fma</object-name>
<condition>
<and>
<equals>
<property>/systems/thrust/alpha-floor</property>
<value>0</value>
</equals>
<equals>
<property>/systems/thrust/toga-lk</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/output/athr</property>
<value>1</value>
@ -1491,6 +1516,14 @@
<value>1</value>
</equals>
<or>
<equals>
<property>/systems/thrust/alpha-floor</property>
<value>1</value>
</equals>
<equals>
<property>/systems/thrust/toga-lk</property>
<value>1</value>
</equals>
<equals>
<property>/systems/thrust/state1</property>
<value>MAN THR</value>
@ -1529,6 +1562,20 @@
<property>/it-autoflight/output/athr</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/thr-mode</property>
<value>2</value>
</equals>
<or>
<equals>
<property>/it-autoflight/output/fd1</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/fd2</property>
<value>1</value>
</equals>
</or>
<less-than>
<property>/controls/engines/engine[0]/throttle</property>
<value>0.60</value>
@ -1537,14 +1584,6 @@
<property>/controls/engines/engine[1]/throttle</property>
<value>0.60</value>
</less-than>
<less-than>
<property>/controls/engines/engine[2]/throttle</property>
<value>0.60</value>
</less-than>
<less-than>
<property>/controls/engines/engine[3]/throttle</property>
<value>0.60</value>
</less-than>
</and>
</condition>
</animation>
@ -1834,6 +1873,118 @@
<property>/systems/thrust/lvrclb</property>
<value>1</value>
</equals>
<equals>
<property>/systems/thrust/alpha-floor</property>
<value>0</value>
</equals>
<equals>
<property>/systems/thrust/toga-lk</property>
<value>0</value>
</equals>
</and>
</condition>
</animation>
<animation>
<type>select</type>
<object-name>thrust-mode-fma</object-name>
<object-name>athr-lvrclb-fma</object-name>
<object-name>athr-thrlvr-fma</object-name>
<object-name>athr-thr-fma</object-name>
<object-name>athr-mct-fma</object-name>
<object-name>athr-toga-fma</object-name>
<object-name>athr-man-fma</object-name>
<object-name>athr-box-fma</object-name>
<condition>
<and>
<equals>
<property>/systems/thrust/alpha-floor</property>
<value>0</value>
</equals>
<equals>
<property>/systems/thrust/toga-lk</property>
<value>0</value>
</equals>
</and>
</condition>
</animation>
<text>
<name>athr-afloor-fma</name>
<offsets>
<x-m>0.00091828</x-m>
<y-m>-0.0546226</y-m>
<z-m>0.0710781</z-m>
</offsets>
<alignment>center-center</alignment>
<axis-alignment>yz-plane</axis-alignment>
<type type="string">text-value</type>
<format type="string">A.FLOOR</format>
<property>autopilot/serviceable</property>
<font type="string">helvetica_medium.txf</font>
<draw-text type="bool">true</draw-text>
<draw-alignment type="bool">false</draw-alignment>
<draw-boundingbox type="bool">true</draw-boundingbox>
<character-size>0.0055</character-size>
<font-resolution>
<width type="int">32</width>
<height type="int">32</height>
</font-resolution>
</text>
<text>
<name>athr-togalk-fma</name>
<offsets>
<x-m>0.00091828</x-m>
<y-m>-0.0546226</y-m>
<z-m>0.0710781</z-m>
</offsets>
<alignment>center-center</alignment>
<axis-alignment>yz-plane</axis-alignment>
<type type="string">text-value</type>
<format type="string">TOGA LK</format>
<property>autopilot/serviceable</property>
<font type="string">helvetica_medium.txf</font>
<draw-text type="bool">true</draw-text>
<draw-alignment type="bool">false</draw-alignment>
<draw-boundingbox type="bool">true</draw-boundingbox>
<character-size>0.0055</character-size>
<font-resolution>
<width type="int">32</width>
<height type="int">32</height>
</font-resolution>
</text>
<animation>
<type>select</type>
<object-name>athr-afloor-fma</object-name>
<condition>
<and>
<equals>
<property>/systems/thrust/alpha-floor</property>
<value>1</value>
</equals>
<equals>
<property>/systems/thrust/toga-lk</property>
<value>0</value>
</equals>
</and>
</condition>
</animation>
<animation>
<type>select</type>
<object-name>athr-togalk-fma</object-name>
<condition>
<and>
<equals>
<property>/systems/thrust/alpha-floor</property>
<value>0</value>
</equals>
<equals>
<property>/systems/thrust/toga-lk</property>
<value>1</value>
</equals>
</and>
</condition>
</animation>
@ -2220,4 +2371,30 @@
</emission>
</animation>
<animation>
<type>material</type>
<object-name>athr-afloor-fma</object-name>
<object-name>athr-togalk-fma</object-name>
<diffuse>
<red>1</red>
<green>0.45</green>
<blue>0</blue>
</diffuse>
<ambient>
<red>0</red>
<green>0</green>
<blue>0</blue>
</ambient>
<specular>
<red>0</red>
<green>0</green>
<blue>0</blue>
</specular>
<emission>
<red>1</red>
<green>0.45</green>
<blue>0</blue>
</emission>
</animation>
</PropertyList>

View file

@ -152,7 +152,7 @@
<type>translate</type>
<object-name>fd_roll</object-name>
<property>/it-autoflight/fd/roll-bar</property>
<factor>0.0001</factor>
<factor>0.0002</factor>
<axis>
<x>0</x>
<y>1</y>
@ -1123,43 +1123,6 @@
</font-resolution>
</text>
<animation>
<type>select</type>
<object-name>thrust-mode-fma</object-name>
<condition>
<and>
<equals>
<property>/it-autoflight/output/athr</property>
<value>1</value>
</equals>
<not-equals>
<property>/systems/thrust/state1</property>
<value>MAN THR</value>
</not-equals>
<not-equals>
<property>/systems/thrust/state2</property>
<value>MAN THR</value>
</not-equals>
<not-equals>
<property>/systems/thrust/state1</property>
<value>MCT</value>
</not-equals>
<not-equals>
<property>/systems/thrust/state2</property>
<value>MCT</value>
</not-equals>
<not-equals>
<property>/systems/thrust/state1</property>
<value>TOGA</value>
</not-equals>
<not-equals>
<property>/systems/thrust/state2</property>
<value>TOGA</value>
</not-equals>
</and>
</condition>
</animation>
<text>
<name>pitch-mode-fma</name>
<offsets>
@ -1413,14 +1376,68 @@
<value>1</value>
</equals>
<or>
<equals>
<property>/systems/thrust/state1</property>
<value>CL</value>
</equals>
<equals>
<property>/systems/thrust/state2</property>
<value>CL</value>
</equals>
<and>
<equals>
<property>/it-autoflight/output/thr-mode</property>
<value>2</value>
</equals>
<or>
<equals>
<property>/it-autoflight/output/fd1</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/fd2</property>
<value>1</value>
</equals>
</or>
<or>
<equals>
<property>/systems/thrust/state1</property>
<value>CL</value>
</equals>
<equals>
<property>/systems/thrust/state2</property>
<value>CL</value>
</equals>
</or>
</and>
<and>
<or>
<not-equals>
<property>/it-autoflight/output/thr-mode</property>
<value>2</value>
</not-equals>
<and>
<equals>
<property>/it-autoflight/output/fd1</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/output/fd2</property>
<value>0</value>
</equals>
</and>
</or>
<or>
<equals>
<property>/systems/thrust/state1</property>
<value>MAN</value>
</equals>
<equals>
<property>/systems/thrust/state2</property>
<value>MAN</value>
</equals>
<equals>
<property>/systems/thrust/state1</property>
<value>CL</value>
</equals>
<equals>
<property>/systems/thrust/state2</property>
<value>CL</value>
</equals>
</or>
</and>
</or>
</and>
</condition>
@ -1431,6 +1448,14 @@
<object-name>athr-active-fma</object-name>
<condition>
<and>
<equals>
<property>/systems/thrust/alpha-floor</property>
<value>0</value>
</equals>
<equals>
<property>/systems/thrust/toga-lk</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/output/athr</property>
<value>1</value>
@ -1491,6 +1516,14 @@
<value>1</value>
</equals>
<or>
<equals>
<property>/systems/thrust/alpha-floor</property>
<value>1</value>
</equals>
<equals>
<property>/systems/thrust/toga-lk</property>
<value>1</value>
</equals>
<equals>
<property>/systems/thrust/state1</property>
<value>MAN THR</value>
@ -1529,6 +1562,20 @@
<property>/it-autoflight/output/athr</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/thr-mode</property>
<value>2</value>
</equals>
<or>
<equals>
<property>/it-autoflight/output/fd1</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/fd2</property>
<value>1</value>
</equals>
</or>
<less-than>
<property>/controls/engines/engine[0]/throttle</property>
<value>0.60</value>
@ -1537,14 +1584,6 @@
<property>/controls/engines/engine[1]/throttle</property>
<value>0.60</value>
</less-than>
<less-than>
<property>/controls/engines/engine[2]/throttle</property>
<value>0.60</value>
</less-than>
<less-than>
<property>/controls/engines/engine[3]/throttle</property>
<value>0.60</value>
</less-than>
</and>
</condition>
</animation>
@ -1834,6 +1873,118 @@
<property>/systems/thrust/lvrclb</property>
<value>1</value>
</equals>
<equals>
<property>/systems/thrust/alpha-floor</property>
<value>0</value>
</equals>
<equals>
<property>/systems/thrust/toga-lk</property>
<value>0</value>
</equals>
</and>
</condition>
</animation>
<animation>
<type>select</type>
<object-name>thrust-mode-fma</object-name>
<object-name>athr-lvrclb-fma</object-name>
<object-name>athr-thrlvr-fma</object-name>
<object-name>athr-thr-fma</object-name>
<object-name>athr-mct-fma</object-name>
<object-name>athr-toga-fma</object-name>
<object-name>athr-man-fma</object-name>
<object-name>athr-box-fma</object-name>
<condition>
<and>
<equals>
<property>/systems/thrust/alpha-floor</property>
<value>0</value>
</equals>
<equals>
<property>/systems/thrust/toga-lk</property>
<value>0</value>
</equals>
</and>
</condition>
</animation>
<text>
<name>athr-afloor-fma</name>
<offsets>
<x-m>0.00091828</x-m>
<y-m>-0.0546226</y-m>
<z-m>0.0710781</z-m>
</offsets>
<alignment>center-center</alignment>
<axis-alignment>yz-plane</axis-alignment>
<type type="string">text-value</type>
<format type="string">A.FLOOR</format>
<property>autopilot/serviceable</property>
<font type="string">helvetica_medium.txf</font>
<draw-text type="bool">true</draw-text>
<draw-alignment type="bool">false</draw-alignment>
<draw-boundingbox type="bool">true</draw-boundingbox>
<character-size>0.0055</character-size>
<font-resolution>
<width type="int">32</width>
<height type="int">32</height>
</font-resolution>
</text>
<text>
<name>athr-togalk-fma</name>
<offsets>
<x-m>0.00091828</x-m>
<y-m>-0.0546226</y-m>
<z-m>0.0710781</z-m>
</offsets>
<alignment>center-center</alignment>
<axis-alignment>yz-plane</axis-alignment>
<type type="string">text-value</type>
<format type="string">TOGA LK</format>
<property>autopilot/serviceable</property>
<font type="string">helvetica_medium.txf</font>
<draw-text type="bool">true</draw-text>
<draw-alignment type="bool">false</draw-alignment>
<draw-boundingbox type="bool">true</draw-boundingbox>
<character-size>0.0055</character-size>
<font-resolution>
<width type="int">32</width>
<height type="int">32</height>
</font-resolution>
</text>
<animation>
<type>select</type>
<object-name>athr-afloor-fma</object-name>
<condition>
<and>
<equals>
<property>/systems/thrust/alpha-floor</property>
<value>1</value>
</equals>
<equals>
<property>/systems/thrust/toga-lk</property>
<value>0</value>
</equals>
</and>
</condition>
</animation>
<animation>
<type>select</type>
<object-name>athr-togalk-fma</object-name>
<condition>
<and>
<equals>
<property>/systems/thrust/alpha-floor</property>
<value>0</value>
</equals>
<equals>
<property>/systems/thrust/toga-lk</property>
<value>1</value>
</equals>
</and>
</condition>
</animation>
@ -2220,4 +2371,30 @@
</emission>
</animation>
<animation>
<type>material</type>
<object-name>athr-afloor-fma</object-name>
<object-name>athr-togalk-fma</object-name>
<diffuse>
<red>1</red>
<green>0.45</green>
<blue>0</blue>
</diffuse>
<ambient>
<red>0</red>
<green>0</green>
<blue>0</blue>
</ambient>
<specular>
<red>0</red>
<green>0</green>
<blue>0</blue>
</specular>
<emission>
<red>1</red>
<green>0.45</green>
<blue>0</blue>
</emission>
</animation>
</PropertyList>

View file

@ -1,5 +1,5 @@
# Airbus A3XX FBW System by Joshua Davidson (it0uchpods)
# V0.9.7.1
# V0.9.8
###################
# Update Function #
@ -37,6 +37,9 @@ var update_loop = func {
if (getprop("/position/gear-agl-ft") <= 2) {
setprop("/it-fbw/pitch-lim-max", "15");
setprop("/it-fbw/pitch-lim-min", "-5");
} else if (getprop("/controls/flight/flap-lever") == 4) {
setprop("/it-fbw/pitch-lim-max", "25");
setprop("/it-fbw/pitch-lim-min", "-15");
} else {
setprop("/it-fbw/pitch-lim-max", "30");
setprop("/it-fbw/pitch-lim-min", "-15");

View file

@ -1,7 +1,10 @@
# A3XX Throttle Control System by Joshua Davidson (it0uchpods)
# Set A/THR modes to Custom IT-AUTOTHRUST, and other thrust modes like MCT, TOGA and eventually TO FLEX.
# Also handles FADEC
# V1.9.1
# V1.9.5
setprop("/systems/thrust/alpha-floor", 0);
setprop("/systems/thrust/toga-lk", 0);
setlistener("/sim/signals/fdm-initialized", func {
setprop("/controls/engines/thrust-limit", "TOGA");
@ -16,51 +19,98 @@ setlistener("/sim/signals/fdm-initialized", func {
setlistener("/controls/engines/engine[0]/throttle-pos", func {
var thrr = getprop("/controls/engines/engine[0]/throttle-pos");
if (thrr < 0.01) {
setprop("/systems/thrust/state1", "IDLE");
atoff_request();
} else if (thrr >= 0.01 and thrr < 0.60) {
setprop("/systems/thrust/state1", "MAN");
} else if (thrr >= 0.60 and thrr < 0.65) {
setprop("/systems/thrust/state1", "CL");
} else if (thrr >= 0.65 and thrr < 0.78) {
setprop("/systems/thrust/state1", "MAN THR");
} else if (thrr >= 0.78 and thrr < 0.83) {
setprop("/it-autoflight/input/athr", 1);
setprop("/controls/engines/engine[0]/throttle-fdm", 0.90);
setprop("/systems/thrust/state1", "MCT");
} else if (thrr >= 0.83 and thrr < 0.95) {
setprop("/it-autoflight/input/athr", 1);
setprop("/systems/thrust/state1", "MAN THR");
} else if (thrr >= 0.95) {
setprop("/it-autoflight/input/athr", 1);
if (getprop("/systems/thrust/alpha-floor") == 0 and getprop("/systems/thrust/toga-lk") == 0) {
if (thrr < 0.01) {
setprop("/systems/thrust/state1", "IDLE");
atoff_request();
} else if (thrr >= 0.01 and thrr < 0.60) {
setprop("/systems/thrust/state1", "MAN");
} else if (thrr >= 0.60 and thrr < 0.65) {
setprop("/systems/thrust/state1", "CL");
} else if (thrr >= 0.65 and thrr < 0.78) {
setprop("/systems/thrust/state1", "MAN THR");
} else if (thrr >= 0.78 and thrr < 0.83) {
setprop("/it-autoflight/input/athr", 1);
setprop("/controls/engines/engine[0]/throttle-fdm", 0.90);
setprop("/systems/thrust/state1", "MCT");
} else if (thrr >= 0.83 and thrr < 0.95) {
setprop("/it-autoflight/input/athr", 1);
setprop("/systems/thrust/state1", "MAN THR");
} else if (thrr >= 0.95) {
setprop("/it-autoflight/input/athr", 1);
setprop("/controls/engines/engine[0]/throttle-fdm", 0.95);
setprop("/systems/thrust/state1", "TOGA");
}
} else {
if (thrr < 0.01) {
setprop("/systems/thrust/state1", "IDLE");
} else if (thrr >= 0.01 and thrr < 0.60) {
setprop("/systems/thrust/state1", "MAN");
} else if (thrr >= 0.60 and thrr < 0.65) {
setprop("/systems/thrust/state1", "CL");
} else if (thrr >= 0.65 and thrr < 0.78) {
setprop("/systems/thrust/state1", "MAN THR");
} else if (thrr >= 0.78 and thrr < 0.83) {
setprop("/systems/thrust/state1", "MCT");
} else if (thrr >= 0.83 and thrr < 0.95) {
setprop("/systems/thrust/state1", "MAN THR");
} else if (thrr >= 0.95) {
setprop("/systems/thrust/state1", "TOGA");
}
setprop("/controls/engines/engine[0]/throttle-fdm", 0.95);
setprop("/systems/thrust/state1", "TOGA");
}
});
setlistener("/controls/engines/engine[1]/throttle-pos", func {
var thrr = getprop("/controls/engines/engine[1]/throttle-pos");
if (thrr < 0.01) {
setprop("/systems/thrust/state2", "IDLE");
atoff_request();
} else if (thrr >= 0.01 and thrr < 0.60) {
setprop("/systems/thrust/state2", "MAN");
} else if (thrr >= 0.60 and thrr < 0.65) {
setprop("/systems/thrust/state2", "CL");
} else if (thrr >= 0.65 and thrr < 0.78) {
setprop("/systems/thrust/state2", "MAN THR");
} else if (thrr >= 0.78 and thrr < 0.83) {
setprop("/it-autoflight/input/athr", 1);
setprop("/controls/engines/engine[1]/throttle-fdm", 0.90);
setprop("/systems/thrust/state2", "MCT");
} else if (thrr >= 0.83 and thrr < 0.95) {
setprop("/it-autoflight/input/athr", 1);
setprop("/systems/thrust/state2", "MAN THR");
} else if (thrr >= 0.95) {
setprop("/it-autoflight/input/athr", 1);
if (getprop("/systems/thrust/alpha-floor") == 0 and getprop("/systems/thrust/toga-lk") == 0) {
if (thrr < 0.01) {
setprop("/systems/thrust/state2", "IDLE");
atoff_request();
} else if (thrr >= 0.01 and thrr < 0.60) {
setprop("/systems/thrust/state2", "MAN");
} else if (thrr >= 0.60 and thrr < 0.65) {
setprop("/systems/thrust/state2", "CL");
} else if (thrr >= 0.65 and thrr < 0.78) {
setprop("/systems/thrust/state2", "MAN THR");
} else if (thrr >= 0.78 and thrr < 0.83) {
setprop("/it-autoflight/input/athr", 1);
setprop("/controls/engines/engine[1]/throttle-fdm", 0.90);
setprop("/systems/thrust/state2", "MCT");
} else if (thrr >= 0.83 and thrr < 0.95) {
setprop("/it-autoflight/input/athr", 1);
setprop("/systems/thrust/state2", "MAN THR");
} else if (thrr >= 0.95) {
setprop("/it-autoflight/input/athr", 1);
setprop("/controls/engines/engine[1]/throttle-fdm", 0.95);
setprop("/systems/thrust/state2", "TOGA");
}
} else {
if (thrr < 0.01) {
setprop("/systems/thrust/state2", "IDLE");
} else if (thrr >= 0.01 and thrr < 0.60) {
setprop("/systems/thrust/state2", "MAN");
} else if (thrr >= 0.60 and thrr < 0.65) {
setprop("/systems/thrust/state2", "CL");
} else if (thrr >= 0.65 and thrr < 0.78) {
setprop("/systems/thrust/state2", "MAN THR");
} else if (thrr >= 0.78 and thrr < 0.83) {
setprop("/systems/thrust/state2", "MCT");
} else if (thrr >= 0.83 and thrr < 0.95) {
setprop("/systems/thrust/state2", "MAN THR");
} else if (thrr >= 0.95) {
setprop("/systems/thrust/state2", "TOGA");
}
setprop("/controls/engines/engine[1]/throttle-fdm", 0.95);
setprop("/systems/thrust/state2", "TOGA");
}
});
# Alpha Floor and Toga Lock
setlistener("/it-autoflight/input/athr", func {
if (getprop("/systems/thrust/alpha-floor") == 1) {
setprop("/it-autoflight/input/athr", 1);
} else {
setprop("/systems/thrust/toga-lk", 0);
}
});
@ -68,7 +118,7 @@ setlistener("/controls/engines/engine[1]/throttle-pos", func {
var atoff_request = func {
var state1 = getprop("/systems/thrust/state1");
var state2 = getprop("/systems/thrust/state2");
if ((state1 == "IDLE") and (state2 == "IDLE")) {
if ((state1 == "IDLE") and (state2 == "IDLE") and (getprop("/systems/thrust/alpha-floor") == 0) and (getprop("/systems/thrust/toga-lk") == 0)) {
setprop("/it-autoflight/input/athr", 0);
}
}
@ -87,7 +137,7 @@ var thrust_lim = func {
var thr1 = getprop("/controls/engines/engine[0]/throttle-pos");
var thr2 = getprop("/controls/engines/engine[0]/throttle-pos");
if (getprop("/gear/gear[1]/wow") == 0 and getprop("/gear/gear[2]/wow") == 0) {
if (state1 == "TOGA" or state2 == "TOGA" or (state1 == "MAN THR" and thr1 >= 0.83) or (state2 == "MAN THR" and thr2 >= 0.83)) {
if ((state1 == "TOGA" or state2 == "TOGA" or (state1 == "MAN THR" and thr1 >= 0.83) or (state2 == "MAN THR" and thr2 >= 0.83)) or getprop("/systems/thrust/alpha-floor") == 1 or getprop("/systems/thrust/toga-lk") == 1) {
setprop("/controls/engines/thrust-limit", "TOGA");
setprop("/controls/engines/epr-limit", 1.308);
setprop("/controls/engines/n1-limit", 101.8);
@ -128,6 +178,35 @@ var thrust_loop = func {
setprop("/systems/thrust/lvrclb", "0");
}
}
# var AoA = getprop("/fdm/jsbsim/aero/alpha-deg");
# var flaps = getprop("/controls/flight/flap-lever");
# if (getprop("/gear/gear[1]/wow") == 0 and getprop("/gear/gear[2]/wow") == 0 and getprop("/it-fbw/law") == 0) {
# if (AoA >= 6.0 and flaps == 0) {
# setprop("/systems/thrust/alpha-floor", 1);
# setprop("/systems/thrust/toga-lk", 0);
# setprop("/it-autoflight/input/athr", 1);
# } else if (AoA >= 8.0 and (flaps == 1 or flaps == 2)) {
# setprop("/systems/thrust/alpha-floor", 1);
# setprop("/systems/thrust/toga-lk", 0);
# setprop("/it-autoflight/input/athr", 1);
# } else if (AoA >= 8.0 and flaps == 3) {
# setprop("/systems/thrust/alpha-floor", 1);
# setprop("/systems/thrust/toga-lk", 0);
# setprop("/it-autoflight/input/athr", 1);
# } else if (AoA >= 7.5 and flaps == 4) {
# setprop("/systems/thrust/alpha-floor", 1);
# setprop("/systems/thrust/toga-lk", 0);
# setprop("/it-autoflight/input/athr", 1);
# } else if (getprop("/systems/thrust/alpha-floor") == 1) {
# setprop("/systems/thrust/alpha-floor", 0);
# setprop("/it-autoflight/input/athr", 1);
# setprop("/systems/thrust/toga-lk", 1);
# }
# } else {
# setprop("/systems/thrust/alpha-floor", 0);
# setprop("/systems/thrust/toga-lk", 0);
# }
}
# Timers

View file

@ -209,7 +209,7 @@
</expression>
</input>
<output>/it-autoflight/internal/vert-speed-fpm-pfd</output>
<max-rate-of-change>5</max-rate-of-change>
<max-rate-of-change>10</max-rate-of-change>
</filter>
<filter>
@ -220,7 +220,7 @@
<property>/it-autoflight/internal/vert-speed-fpm</property>
</input>
<output>/it-autoflight/internal/vert-speed-fpm-filtered</output>
<max-rate-of-change>500</max-rate-of-change>
<max-rate-of-change>1000</max-rate-of-change>
</filter>
<filter>

View file

@ -542,8 +542,7 @@
</less-than>
</and>
</condition>
<property>/controls/flight/rudder</property>
<scale>0.5</scale>
<value>0</value>
</input>
<input>
<condition>

View file

@ -220,6 +220,10 @@
<property>/gear/gear[2]/wow</property>
<value>0</value>
</equals>
<equals>
<property>/it-fbw/alpha-hld</property>
<value>0</value>
</equals>
<or>
<equals>
<property>/it-fbw/law</property>

View file

@ -8,6 +8,8 @@
<property value="-33">/it-fbw/roll-lim-min</property>
<property value="30">/it-fbw/pitch-lim-max</property>
<property value="-15">/it-fbw/pitch-lim-min</property>
<property value="14">/it-fbw/alpha-max</property>
<property value="0">/it-fbw/alpha-min</property>
<channel name="FBW Aileron">
<fcs_function name="/it-fbw/roll-deg">
@ -61,6 +63,7 @@
</clipto>
</fcs_function>
</channel>
<channel name="FBW Elevator">
<fcs_function name="/it-fbw/pitch-deg">
<function>

View file

@ -54,24 +54,34 @@
<initialize-to>output</initialize-to>
<enable>
<condition>
<or>
<and>
<equals>
<property>/systems/thrust/state1</property>
<value>MAN THR</value>
<property>/systems/thrust/alpha-floor</property>
<value>0</value>
</equals>
<equals>
<property>/systems/thrust/state1</property>
<value>CL</value>
<property>/systems/thrust/toga-lk</property>
<value>0</value>
</equals>
<equals>
<property>/systems/thrust/state1</property>
<value>MAN</value>
</equals>
<equals>
<property>/systems/thrust/state1</property>
<value>IDLE</value>
</equals>
</or>
<or>
<equals>
<property>/systems/thrust/state1</property>
<value>MAN THR</value>
</equals>
<equals>
<property>/systems/thrust/state1</property>
<value>CL</value>
</equals>
<equals>
<property>/systems/thrust/state1</property>
<value>MAN</value>
</equals>
<equals>
<property>/systems/thrust/state1</property>
<value>IDLE</value>
</equals>
</or>
</and>
</condition>
</enable>
<input>
@ -215,24 +225,34 @@
<initialize-to>output</initialize-to>
<enable>
<condition>
<or>
<and>
<equals>
<property>/systems/thrust/state2</property>
<value>MAN THR</value>
<property>/systems/thrust/alpha-floor</property>
<value>0</value>
</equals>
<equals>
<property>/systems/thrust/state2</property>
<value>CL</value>
<property>/systems/thrust/toga-lk</property>
<value>0</value>
</equals>
<equals>
<property>/systems/thrust/state2</property>
<value>MAN</value>
</equals>
<equals>
<property>/systems/thrust/state2</property>
<value>IDLE</value>
</equals>
</or>
<or>
<equals>
<property>/systems/thrust/state2</property>
<value>MAN THR</value>
</equals>
<equals>
<property>/systems/thrust/state2</property>
<value>CL</value>
</equals>
<equals>
<property>/systems/thrust/state2</property>
<value>MAN</value>
</equals>
<equals>
<property>/systems/thrust/state2</property>
<value>IDLE</value>
</equals>
</or>
</and>
</condition>
</enable>
<input>