1
0
Fork 0

Control: Fix FADEC issues, make throttle lever available to systems

This commit is contained in:
Josh Davidson 2021-04-23 18:01:12 -04:00
parent 14801700db
commit 35d3c7f178
9 changed files with 285 additions and 594 deletions

View file

@ -1,7 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!-- Copyright (c) 2021 Josh Davidson (Octal450) -->
<!-- Copyright (c) 2020 Matthew Maring (mattmaring) -->
<!-- Copyright (c) 2021 Josh Davidson (Octal450) and Matthew Maring (mattmaring) -->
<PropertyList include="Aircraft/Generic/Human/Include/walker-include.xml">
<sim>
@ -883,11 +882,8 @@
<emer-elec-man-on type="bool">0</emer-elec-man-on>
</switches>
</electrical>
<engines>
<engines n="0">
<engine-start-switch type="int">1</engine-start-switch>
<epr-limit type="double">0.0</epr-limit>
<n1-limit type="double">0.0</n1-limit>
<thrust-limit type="string">TOGA</thrust-limit>
<engine n="0">
<cutoff type="bool">true</cutoff>
<cutoff-switch type="bool">true</cutoff-switch>
@ -897,9 +893,7 @@
<man-start type="bool">0</man-start>
<starter type="bool">0</starter>
<starter-switch type="bool">0</starter-switch>
<max-athr-thrust type="double">0.94</max-athr-thrust>
<!-- Remove these throttles... -->
<throttle-lever type="double">0</throttle-lever>
<throttle-pos type="double">0</throttle-pos>
<throttle-output type="double">0</throttle-output>
<throttle-fdm type="double">0</throttle-fdm>
@ -919,10 +913,7 @@
<man-start type="bool">0</man-start>
<starter type="bool">0</starter>
<starter-switch type="bool">0</starter-switch>
<max-athr-thrust type="double">0.94</max-athr-thrust>
<max-athr-thrust type="double">0.94</max-athr-thrust>
<!-- Remove these throttles... -->
<throttle-lever type="double">0</throttle-lever>
<throttle-pos type="double">0</throttle-pos>
<throttle-output type="double">0</throttle-output>
<throttle-fdm type="double">0</throttle-fdm>

View file

@ -6830,23 +6830,8 @@
<name>Engine 1 throttle lever</name>
<type>rotate</type>
<object-name>thr_l</object-name>
<property>fdm/jsbsim/fcs/throttle-lever[0]</property>
<interpolation>
<entry><ind>0.00000</ind><dep> 0</dep></entry>
<entry><ind>0.00999</ind><dep> 0</dep></entry>
<entry><ind>0.01000</ind><dep> 2</dep></entry>
<entry><ind>0.59999</ind><dep>24</dep></entry>
<entry><ind>0.60000</ind><dep>26</dep></entry>
<entry><ind>0.64999</ind><dep>26</dep></entry>
<entry><ind>0.65000</ind><dep>28</dep></entry>
<entry><ind>0.77999</ind><dep>33</dep></entry>
<entry><ind>0.78000</ind><dep>35</dep></entry>
<entry><ind>0.82999</ind><dep>35</dep></entry>
<entry><ind>0.83000</ind><dep>37</dep></entry>
<entry><ind>0.94999</ind><dep>43</dep></entry>
<entry><ind>0.95000</ind><dep>45</dep></entry>
<entry><ind>1.00000</ind><dep>45</dep></entry>
</interpolation>
<property>fdm/jsbsim/fadec/throttle-lever[0]</property>
<factor>45</factor>
<axis>
<object-name>trim.axis</object-name>
</axis>
@ -6905,23 +6890,8 @@
<name>Engine 2 throttle lever</name>
<type>rotate</type>
<object-name>thr_r</object-name>
<property>fdm/jsbsim/fcs/throttle-lever[1]</property>
<interpolation>
<entry><ind>0.00000</ind><dep> 0</dep></entry>
<entry><ind>0.00999</ind><dep> 0</dep></entry>
<entry><ind>0.01000</ind><dep> 2</dep></entry>
<entry><ind>0.59999</ind><dep>24</dep></entry>
<entry><ind>0.60000</ind><dep>26</dep></entry>
<entry><ind>0.64999</ind><dep>26</dep></entry>
<entry><ind>0.65000</ind><dep>28</dep></entry>
<entry><ind>0.77999</ind><dep>33</dep></entry>
<entry><ind>0.78000</ind><dep>35</dep></entry>
<entry><ind>0.82999</ind><dep>35</dep></entry>
<entry><ind>0.83000</ind><dep>37</dep></entry>
<entry><ind>0.94999</ind><dep>43</dep></entry>
<entry><ind>0.95000</ind><dep>45</dep></entry>
<entry><ind>1.00000</ind><dep>45</dep></entry>
</interpolation>
<property>fdm/jsbsim/fadec/throttle-lever[1]</property>
<factor>45</factor>
<axis>
<object-name>trim.axis</object-name>
</axis>

View file

@ -141,7 +141,7 @@ var messages_priority_3 = func {
ECAM_controller.warningReset(allEngFailAPU);
}
if (allEngFailLevers.clearFlag == 0 and (pts.Controls.Engines.Engine.throttleLever[0].getValue() > 0.01 or pts.Controls.Engines.Engine.throttleLever[1].getValue() > 0.01)) {
if (allEngFailLevers.clearFlag == 0 and (systems.FADEC.detent[0].getValue() != 0 or systems.FADEC.detent[1].getValue() != 0)) {
allEngFailLevers.active = 1;
} else {
ECAM_controller.warningReset(allEngFailLevers);
@ -231,7 +231,7 @@ var messages_priority_3 = func {
if (eng1Fire.active == 1) {
if (phaseVar3 >= 5 and phaseVar3 <= 7) {
if (eng1FireFllever.clearFlag == 0 and pts.Controls.Engines.Engine.throttleLever[0].getValue() > 0.01) {
if (eng1FireFllever.clearFlag == 0 and systems.FADEC.detent[0].getValue() != 0) {
eng1FireFllever.active = 1;
} else {
ECAM_controller.warningReset(eng1FireFllever);
@ -297,7 +297,7 @@ var messages_priority_3 = func {
}
if (phaseVar3 < 5 or phaseVar3 > 7) {
if (eng1FireGnlever.clearFlag == 0 and pts.Controls.Engines.Engine.throttleLever[0].getValue() > 0.01 and pts.Controls.Engines.Engine.throttleLever[1].getValue() > 0.01) {
if (eng1FireGnlever.clearFlag == 0 and systems.FADEC.detent[0].getValue() != 0 and systems.FADEC.detent[1].getValue() != 0) {
eng1FireGnlever.active = 1;
} else {
ECAM_controller.warningReset(eng1FireGnlever);
@ -386,7 +386,7 @@ var messages_priority_3 = func {
if (eng2Fire.active == 1) {
if (phaseVar3 >= 5 and phaseVar3 <= 7) {
if (eng2FireFllever.clearFlag == 0 and pts.Controls.Engines.Engine.throttleLever[1].getValue() > 0.01) {
if (eng2FireFllever.clearFlag == 0 and systems.FADEC.detent[1].getValue() != 0) {
eng2FireFllever.active = 1;
} else {
ECAM_controller.warningReset(eng2FireFllever);
@ -452,7 +452,7 @@ var messages_priority_3 = func {
}
if (phaseVar3 < 5 or phaseVar3 > 7) {
if (eng2FireGnlever.clearFlag == 0 and pts.Controls.Engines.Engine.throttleLever[0].getValue() > 0.01 and pts.Controls.Engines.Engine.throttleLever[1].getValue() > 0.01) {
if (eng2FireGnlever.clearFlag == 0 and systems.FADEC.detent[0].getValue() != 0 and systems.FADEC.detent[1].getValue() != 0) {
eng2FireGnlever.active = 1;
} else {
ECAM_controller.warningReset(eng2FireGnlever);
@ -1215,7 +1215,7 @@ var messages_priority_2 = func {
}
if (phaseVar2 != 4 and warningNodes.Logic.phase5Trans.getValue() == 1) {
if (eng1FailThrLvrIdle.clearFlag == 0 and pts.Controls.Engines.Engine.throttleLever[0].getValue() > 0.01) {
if (eng1FailThrLvrIdle.clearFlag == 0 and systems.FADEC.detent[0].getValue() != 0) {
eng1FailThrLvrIdle.active = 1;
} else {
ECAM_controller.warningReset(eng1FailThrLvrIdle);
@ -1422,7 +1422,7 @@ var messages_priority_2 = func {
}
if (phaseVar2 != 4 and warningNodes.Logic.phase5Trans.getValue() == 1) {
if (eng2FailThrLvrIdle.clearFlag == 0 and pts.Controls.Engines.Engine.throttleLever[1].getValue() > 0.01) {
if (eng2FailThrLvrIdle.clearFlag == 0 and systems.FADEC.detent[1].getValue() != 0) {
eng2FailThrLvrIdle.active = 1;
} else {
ECAM_controller.warningReset(eng2FailThrLvrIdle);

View file

@ -34,7 +34,7 @@ var Controls = {
starter: [props.globals.getNode("/controls/engines/engine[0]/starter"), props.globals.getNode("/controls/engines/engine[1]/starter")],
throttle: [props.globals.getNode("/controls/engines/engine[0]/throttle"), props.globals.getNode("/controls/engines/engine[1]/throttle")],
throttleFdm: [props.globals.getNode("/controls/engines/engine[0]/throttle-fdm"), props.globals.getNode("/controls/engines/engine[1]/throttle-fdm")],
throttleLever: [props.globals.getNode("/controls/engines/engine[0]/throttle-lever"), props.globals.getNode("/controls/engines/engine[1]/throttle-lever")],
throttleLever: [props.globals.getNode("/controls/engines/engine[0]/throttle-lever"), props.globals.getNode("fadec/throttle-lever[1]")],
throttleOutput: [props.globals.getNode("/controls/engines/engine[0]/throttle-output"), props.globals.getNode("/controls/engines/engine[1]/throttle-output")],
throttlePos: [props.globals.getNode("/controls/engines/engine[0]/throttle-pos"), props.globals.getNode("/controls/engines/engine[1]/throttle-pos")],
},

View file

@ -405,7 +405,7 @@
</lag_filter>
<switch name="fadec/control-1/detent">
<default value="0"/>
<default value="0"/> <!-- IDLE -->
<test value="6"> <!-- TOGA -->
fadec/control-1/throttle-pos ge /systems/acconfig/options/fadec/toga-b
</test>
@ -426,6 +426,112 @@
</test>
</switch>
<fcs_function name="fadec/control-1/lever/idle-climb">
<function>
<sum>
<value>2</value>
<product>
<difference>
<property>fadec/control-1/throttle-pos</property>
<property>/systems/acconfig/options/fadec/idle-t</property>
</difference>
<quotient>
<difference>
<value>24</value>
<value>2</value>
</difference>
<difference>
<property>/systems/acconfig/options/fadec/climb-b</property>
<property>/systems/acconfig/options/fadec/idle-t</property>
</difference>
</quotient>
</product>
</sum>
</function>
<clipto>
<min>2</min>
<max>24</max>
</clipto>
</fcs_function>
<fcs_function name="fadec/control-1/lever/climb-mct">
<function>
<sum>
<value>28</value>
<product>
<difference>
<property>fadec/control-1/throttle-pos</property>
<property>/systems/acconfig/options/fadec/climb-t</property>
</difference>
<quotient>
<difference>
<value>33</value>
<value>28</value>
</difference>
<difference>
<property>/systems/acconfig/options/fadec/mct-b</property>
<property>/systems/acconfig/options/fadec/climb-t</property>
</difference>
</quotient>
</product>
</sum>
</function>
<clipto>
<min>28</min>
<max>33</max>
</clipto>
</fcs_function>
<fcs_function name="fadec/control-1/lever/mct-toga">
<function>
<sum>
<value>37</value>
<product>
<difference>
<property>fadec/control-1/throttle-pos</property>
<property>/systems/acconfig/options/fadec/mct-t</property>
</difference>
<quotient>
<difference>
<value>43</value>
<value>37</value>
</difference>
<difference>
<property>/systems/acconfig/options/fadec/toga-b</property>
<property>/systems/acconfig/options/fadec/mct-t</property>
</difference>
</quotient>
</product>
</sum>
</function>
<clipto>
<min>37</min>
<max>43</max>
</clipto>
</fcs_function>
<switch name="fadec/control-1/lever/angle">
<default value="0"/> <!-- IDLE -->
<test value="45"> <!-- TOGA -->
fadec/control-1/throttle-pos ge /systems/acconfig/options/fadec/toga-b
</test>
<test value="fadec/control-1/lever/mct-toga"> <!-- MAN THR -->
fadec/control-1/throttle-pos gt /systems/acconfig/options/fadec/mct-t
</test>
<test value="35"> <!-- MCT/FLX -->
fadec/control-1/throttle-pos ge /systems/acconfig/options/fadec/mct-b
</test>
<test value="fadec/control-1/lever/climb-mct"> <!-- MAN THR -->
fadec/control-1/throttle-pos gt /systems/acconfig/options/fadec/climb-t
</test>
<test value="26"> <!-- CL -->
fadec/control-1/throttle-pos ge /systems/acconfig/options/fadec/climb-b
</test>
<test value="fadec/control-1/lever/idle-climb"> <!-- MAN -->
fadec/control-1/throttle-pos gt /systems/acconfig/options/fadec/idle-t
</test>
</switch>
<!-- Engine 2 -->
<lag_filter name="fadec/control-2/throttle-lag">
<input>/controls/engines/engine[1]/throttle</input>
@ -559,7 +665,7 @@
</lag_filter>
<switch name="fadec/control-2/detent">
<default value="0"/>
<default value="0"/> <!-- IDLE -->
<test value="6"> <!-- TOGA -->
fadec/control-2/throttle-pos ge /systems/acconfig/options/fadec/toga-b
</test>
@ -580,6 +686,112 @@
</test>
</switch>
<fcs_function name="fadec/control-2/lever/idle-climb">
<function>
<sum>
<value>2</value>
<product>
<difference>
<property>fadec/control-2/throttle-pos</property>
<property>/systems/acconfig/options/fadec/idle-t</property>
</difference>
<quotient>
<difference>
<value>24</value>
<value>2</value>
</difference>
<difference>
<property>/systems/acconfig/options/fadec/climb-b</property>
<property>/systems/acconfig/options/fadec/idle-t</property>
</difference>
</quotient>
</product>
</sum>
</function>
<clipto>
<min>2</min>
<max>24</max>
</clipto>
</fcs_function>
<fcs_function name="fadec/control-2/lever/climb-mct">
<function>
<sum>
<value>28</value>
<product>
<difference>
<property>fadec/control-2/throttle-pos</property>
<property>/systems/acconfig/options/fadec/climb-t</property>
</difference>
<quotient>
<difference>
<value>33</value>
<value>28</value>
</difference>
<difference>
<property>/systems/acconfig/options/fadec/mct-b</property>
<property>/systems/acconfig/options/fadec/climb-t</property>
</difference>
</quotient>
</product>
</sum>
</function>
<clipto>
<min>28</min>
<max>33</max>
</clipto>
</fcs_function>
<fcs_function name="fadec/control-2/lever/mct-toga">
<function>
<sum>
<value>37</value>
<product>
<difference>
<property>fadec/control-2/throttle-pos</property>
<property>/systems/acconfig/options/fadec/mct-t</property>
</difference>
<quotient>
<difference>
<value>43</value>
<value>37</value>
</difference>
<difference>
<property>/systems/acconfig/options/fadec/toga-b</property>
<property>/systems/acconfig/options/fadec/mct-t</property>
</difference>
</quotient>
</product>
</sum>
</function>
<clipto>
<min>37</min>
<max>43</max>
</clipto>
</fcs_function>
<switch name="fadec/control-2/lever/angle">
<default value="0"/> <!-- IDLE -->
<test value="45"> <!-- TOGA -->
fadec/control-2/throttle-pos ge /systems/acconfig/options/fadec/toga-b
</test>
<test value="fadec/control-2/lever/mct-toga"> <!-- MAN THR -->
fadec/control-2/throttle-pos gt /systems/acconfig/options/fadec/mct-t
</test>
<test value="35"> <!-- MCT/FLX -->
fadec/control-2/throttle-pos ge /systems/acconfig/options/fadec/mct-b
</test>
<test value="fadec/control-2/lever/climb-mct"> <!-- MAN THR -->
fadec/control-2/throttle-pos gt /systems/acconfig/options/fadec/climb-t
</test>
<test value="26"> <!-- CL -->
fadec/control-2/throttle-pos ge /systems/acconfig/options/fadec/climb-b
</test>
<test value="fadec/control-2/lever/idle-climb"> <!-- MAN -->
fadec/control-2/throttle-pos gt /systems/acconfig/options/fadec/idle-t
</test>
</switch>
<!-- Common Control Logic -->
<fcs_function name="fadec/both-at-idle">
<function>

View file

@ -7,7 +7,23 @@
<channel name="Animations">
<fcs_function name="fadec/throttle-lever[0]">
<function>
<quotient>
<property>fadec/control-1/lever/angle</property>
<value>45</value>
</quotient>
</function>
</fcs_function>
<fcs_function name="fadec/throttle-lever[1]">
<function>
<quotient>
<property>fadec/control-2/lever/angle</property>
<value>45</value>
</quotient>
</function>
</fcs_function>
</channel>

View file

@ -641,16 +641,6 @@
<channel name="FADEC"> <!-- Redo it later -->
<lag_filter name="fcs/throttle-lever[0]">
<input>/controls/engines/engine[0]/throttle-lever</input>
<c1>20</c1>
</lag_filter>
<lag_filter name="fcs/throttle-lever[1]">
<input>/controls/engines/engine[1]/throttle-lever</input>
<c1>20</c1>
</lag_filter>
<lag_filter name="fcs/reverse-lever[0]">
<input>/controls/engines/engine[0]/reverse-cmd</input>
<c1>20</c1>

View file

@ -2341,14 +2341,14 @@
<switch name="/ECAM/warnings/logic/eng/eng-1-tla-abv-6">
<default value="0"/>
<test logic="OR" value="1">
/controls/engines/engine[0]/throttle-lever ge 0.13333333333
fadec/throttle-lever[0] ge 0.13333333333
</test>
</switch>
<switch name="/ECAM/warnings/logic/eng/eng-1-tla-abv-6-2">
<default value="0"/>
<test logic="AND" value="1">
/controls/engines/engine[0]/throttle-lever ge 0.13333333333
fadec/throttle-lever[0] ge 0.13333333333
/ECAM/phases/phase-calculation/takeoff-power eq 0
</test>
</switch>
@ -2368,7 +2368,7 @@
<switch name="/ECAM/warnings/logic/eng/eng-1-tla-idle">
<default value="0"/>
<test logic="OR" value="1">
/controls/engines/engine[0]/throttle-lever lt 0.055
fadec/throttle-lever[0] lt 0.055
</test>
</switch>
@ -2394,14 +2394,14 @@
<switch name="/ECAM/warnings/logic/eng/eng-2-tla-abv-6">
<default value="0"/>
<test logic="OR" value="1">
/controls/engines/engine[1]/throttle-lever ge 0.13333333333
fadec/throttle-lever[1] ge 0.13333333333
</test>
</switch>
<switch name="/ECAM/warnings/logic/eng/eng-2-tla-abv-6-2">
<default value="0"/>
<test logic="AND" value="1">
/controls/engines/engine[1]/throttle-lever ge 0.13333333333
fadec/throttle-lever[1] ge 0.13333333333
/ECAM/phases/phase-calculation/takeoff-power eq 0
</test>
</switch>
@ -2421,7 +2421,7 @@
<switch name="/ECAM/warnings/logic/eng/eng-2-tla-idle">
<default value="0"/>
<test logic="OR" value="1">
/controls/engines/engine[1]/throttle-lever lt 0.055
fadec/throttle-lever[1] lt 0.055
</test>
</switch>

View file

@ -6,13 +6,12 @@
<!-- Thrust Axis -->
<filter>
<name>A/THR Knots Input Filter</name>
<name>A/THR Knots Input Gain</name>
<debug>false</debug>
<type>noise-spike</type>
<feedback-if-disabled>true</feedback-if-disabled>
<initialize-to>output</initialize-to>
<type>gain</type>
<gain>1.0</gain>
<input>/it-autoflight/input/kts</input>
<output>/it-autoflight/internal/athr-kts</output>
<output>/it-autoflight/internal/athr-kts-cmd</output>
<min>
<expression>
<difference>
@ -29,6 +28,15 @@
</sum>
</expression>
</max>
</filter>
<filter>
<name>A/THR Knots Input Filter</name>
<debug>false</debug>
<type>noise-spike</type>
<initialize-to>output</initialize-to>
<input>/it-autoflight/internal/athr-kts-cmd</input>
<output>/it-autoflight/internal/athr-kts</output>
<max-rate-of-change>
<condition>
<and>
@ -52,10 +60,6 @@
<property>/gear/gear[2]/wow</property>
<value>0</value>
</equals>
<not-equals>
<property>/fdm/jsbsim/fadec/thr-locked</property>
<value>1</value>
</not-equals>
</and>
</condition>
<value>10</value>
@ -64,13 +68,12 @@
</filter>
<filter>
<name>A/THR Mach Input Filter</name>
<name>A/THR Mach Input Gain</name>
<debug>false</debug>
<type>noise-spike</type>
<feedback-if-disabled>true</feedback-if-disabled>
<initialize-to>output</initialize-to>
<type>gain</type>
<gain>1.0</gain>
<input>/it-autoflight/input/mach</input>
<output>/it-autoflight/internal/athr-mach</output>
<output>/it-autoflight/internal/athr-mach-cmd</output>
<min>
<expression>
<difference>
@ -87,6 +90,16 @@
</sum>
</expression>
</max>
</filter>
<filter>
<name>A/THR Mach Input Filter</name>
<debug>false</debug>
<type>noise-spike</type>
<feedback-if-disabled>true</feedback-if-disabled>
<initialize-to>output</initialize-to>
<input>/it-autoflight/internal/athr-mach-cmd</input>
<output>/it-autoflight/internal/athr-mach</output>
<max-rate-of-change>
<condition>
<and>
@ -110,10 +123,6 @@
<property>/gear/gear[2]/wow</property>
<value>0</value>
</equals>
<not-equals>
<property>/fdm/jsbsim/fadec/thr-locked</property>
<value>1</value>
</not-equals>
</and>
</condition>
<value>0.08</value>
@ -121,21 +130,6 @@
<max-rate-of-change>2</max-rate-of-change>
</filter>
<filter>
<name>Throttle Comparator</name>
<type>gain</type>
<gain>1.0</gain>
<input>
<expression>
<max>
<property>/controls/engines/engine[0]/throttle-man</property>
<property>/controls/engines/engine[1]/throttle-man</property>
</max>
</expression>
</input>
<output>/controls/engines/throttle-pid-max</output>
</filter>
<pid-controller>
<name>IT-CONTROLLER: Knots</name>
<debug>false</debug>
@ -150,100 +144,10 @@
<property>/it-autoflight/input/kts-mach</property>
<value>0</value>
</equals>
<not-equals>
<property>/fdm/jsbsim/fadec/thr-locked</property>
<value>1</value>
</not-equals>
<or>
<and>
<equals>
<property>/it-autoflight/output/fd1</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/output/fd2</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/output/ap1</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/output/ap2</property>
<value>0</value>
</equals>
</and>
<equals>
<property>/it-autoflight/output/thr-mode</property>
<value>0</value>
</equals>
</or>
<or>
<and>
<equals>
<property>/fdm/jsbsim/fadec/eng-out</property>
<value>1</value>
</equals>
<equals>
<property>/fdm/jsbsim/fadec/limit/flex-active</property>
<value>0</value>
</equals>
<or>
<equals>
<property>/fdm/jsbsim/fadec/control-1/detent-text</property>
<value>MCT</value>
</equals>
<equals>
<property>/fdm/jsbsim/fadec/control-2/detent-text</property>
<value>MCT</value>
</equals>
</or>
</and>
<and>
<equals>
<property>/fdm/jsbsim/fadec/eng-out</property>
<value>1</value>
</equals>
<or>
<and>
<less-than>
<property>/controls/engines/engine[0]/throttle-pos</property>
<value>0.83</value>
</less-than>
<equals>
<property>/fdm/jsbsim/fadec/control-1/detent-text</property>
<value>MAN THR</value>
</equals>
</and>
<and>
<less-than>
<property>/controls/engines/engine[1]/throttle-pos</property>
<value>0.83</value>
</less-than>
<equals>
<property>/fdm/jsbsim/fadec/control-2/detent-text</property>
<value>MAN THR</value>
</equals>
</and>
</or>
</and>
<equals>
<property>/fdm/jsbsim/fadec/control-1/detent-text</property>
<value>MAN</value>
</equals>
<equals>
<property>/fdm/jsbsim/fadec/control-1/detent-text</property>
<value>CL</value>
</equals>
<equals>
<property>/fdm/jsbsim/fadec/control-2/detent-text</property>
<value>MAN</value>
</equals>
<equals>
<property>/fdm/jsbsim/fadec/control-2/detent-text</property>
<value>CL</value>
</equals>
</or>
<equals>
<property>/it-autoflight/output/thr-mode</property>
<value>0</value>
</equals>
</and>
</condition>
</enable>
@ -273,100 +177,10 @@
<property>/it-autoflight/input/kts-mach</property>
<value>1</value>
</equals>
<not-equals>
<property>/fdm/jsbsim/fadec/thr-locked</property>
<value>1</value>
</not-equals>
<or>
<and>
<equals>
<property>/it-autoflight/output/fd1</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/output/fd2</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/output/ap1</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/output/ap2</property>
<value>0</value>
</equals>
</and>
<equals>
<property>/it-autoflight/output/thr-mode</property>
<value>0</value>
</equals>
</or>
<or>
<and>
<equals>
<property>/fdm/jsbsim/fadec/eng-out</property>
<value>1</value>
</equals>
<equals>
<property>/fdm/jsbsim/fadec/limit/flex-active</property>
<value>0</value>
</equals>
<or>
<equals>
<property>/fdm/jsbsim/fadec/control-1/detent-text</property>
<value>MCT</value>
</equals>
<equals>
<property>/fdm/jsbsim/fadec/control-2/detent-text</property>
<value>MCT</value>
</equals>
</or>
</and>
<and>
<equals>
<property>/fdm/jsbsim/fadec/eng-out</property>
<value>1</value>
</equals>
<or>
<and>
<less-than>
<property>/controls/engines/engine[0]/throttle-pos</property>
<value>0.83</value>
</less-than>
<equals>
<property>/fdm/jsbsim/fadec/control-1/detent-text</property>
<value>MAN THR</value>
</equals>
</and>
<and>
<less-than>
<property>/controls/engines/engine[1]/throttle-pos</property>
<value>0.83</value>
</less-than>
<equals>
<property>/fdm/jsbsim/fadec/control-2/detent-text</property>
<value>MAN THR</value>
</equals>
</and>
</or>
</and>
<equals>
<property>/fdm/jsbsim/fadec/control-1/detent-text</property>
<value>MAN</value>
</equals>
<equals>
<property>/fdm/jsbsim/fadec/control-1/detent-text</property>
<value>CL</value>
</equals>
<equals>
<property>/fdm/jsbsim/fadec/control-2/detent-text</property>
<value>MAN</value>
</equals>
<equals>
<property>/fdm/jsbsim/fadec/control-2/detent-text</property>
<value>CL</value>
</equals>
</or>
<equals>
<property>/it-autoflight/output/thr-mode</property>
<value>0</value>
</equals>
</and>
</condition>
</enable>
@ -400,98 +214,10 @@
<property>/it-autoflight/output/athr</property>
<value>1</value>
</equals>
<not-equals>
<property>/fdm/jsbsim/fadec/thr-locked</property>
<value>1</value>
</not-equals>
<or>
<equals>
<property>/it-autoflight/output/fd1</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/fd2</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/ap1</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/ap2</property>
<value>1</value>
</equals>
</or>
<equals>
<property>/it-autoflight/output/thr-mode</property>
<value>1</value>
</equals>
<or>
<and>
<equals>
<property>/fdm/jsbsim/fadec/eng-out</property>
<value>1</value>
</equals>
<equals>
<property>/fdm/jsbsim/fadec/limit/flex-active</property>
<value>0</value>
</equals>
<or>
<equals>
<property>/fdm/jsbsim/fadec/control-1/detent-text</property>
<value>MCT</value>
</equals>
<equals>
<property>/fdm/jsbsim/fadec/control-2/detent-text</property>
<value>MCT</value>
</equals>
</or>
</and>
<and>
<equals>
<property>/fdm/jsbsim/fadec/eng-out</property>
<value>1</value>
</equals>
<or>
<and>
<less-than>
<property>/controls/engines/engine[0]/throttle-pos</property>
<value>0.83</value>
</less-than>
<equals>
<property>/fdm/jsbsim/fadec/control-1/detent-text</property>
<value>MAN THR</value>
</equals>
</and>
<and>
<less-than>
<property>/controls/engines/engine[1]/throttle-pos</property>
<value>0.83</value>
</less-than>
<equals>
<property>/fdm/jsbsim/fadec/control-2/detent-text</property>
<value>MAN THR</value>
</equals>
</and>
</or>
</and>
<equals>
<property>/fdm/jsbsim/fadec/control-1/detent-text</property>
<value>MAN</value>
</equals>
<equals>
<property>/fdm/jsbsim/fadec/control-1/detent-text</property>
<value>CL</value>
</equals>
<equals>
<property>/fdm/jsbsim/fadec/control-2/detent-text</property>
<value>MAN</value>
</equals>
<equals>
<property>/fdm/jsbsim/fadec/control-2/detent-text</property>
<value>CL</value>
</equals>
</or>
</and>
</condition>
</enable>
@ -511,229 +237,15 @@
<property>/it-autoflight/output/athr</property>
<value>1</value>
</equals>
<not-equals>
<property>/fdm/jsbsim/fadec/thr-locked</property>
<value>1</value>
</not-equals>
<or>
<equals>
<property>/it-autoflight/output/fd1</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/fd2</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/ap1</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/ap2</property>
<value>1</value>
</equals>
</or>
<equals>
<property>/it-autoflight/output/thr-mode</property>
<value>2</value>
</equals>
<or>
<and>
<equals>
<property>/fdm/jsbsim/fadec/eng-out</property>
<value>1</value>
</equals>
<equals>
<property>/fdm/jsbsim/fadec/limit/flex-active</property>
<value>0</value>
</equals>
<or>
<equals>
<property>/fdm/jsbsim/fadec/control-1/detent-text</property>
<value>MCT</value>
</equals>
<equals>
<property>/fdm/jsbsim/fadec/control-2/detent-text</property>
<value>MCT</value>
</equals>
</or>
</and>
<and>
<equals>
<property>/fdm/jsbsim/fadec/eng-out</property>
<value>1</value>
</equals>
<or>
<and>
<less-than>
<property>/controls/engines/engine[0]/throttle-pos</property>
<value>0.83</value>
</less-than>
<equals>
<property>/fdm/jsbsim/fadec/control-1/detent-text</property>
<value>MAN THR</value>
</equals>
</and>
<and>
<less-than>
<property>/controls/engines/engine[1]/throttle-pos</property>
<value>0.83</value>
</less-than>
<equals>
<property>/fdm/jsbsim/fadec/control-2/detent-text</property>
<value>MAN THR</value>
</equals>
</and>
</or>
</and>
<equals>
<property>/fdm/jsbsim/fadec/control-1/detent-text</property>
<value>MAN</value>
</equals>
<equals>
<property>/fdm/jsbsim/fadec/control-1/detent-text</property>
<value>CL</value>
</equals>
<equals>
<property>/fdm/jsbsim/fadec/control-2/detent-text</property>
<value>MAN</value>
</equals>
<equals>
<property>/fdm/jsbsim/fadec/control-2/detent-text</property>
<value>CL</value>
</equals>
</or>
</and>
</condition>
</enable>
<input>1</input>
<output>/controls/engines/throttle-cmd-pid</output>
</filter>
<filter>
<name>IT-CONTROLLER: Throttle Inactive Sync</name>
<debug>false</debug>
<type>gain</type>
<gain>1.0</gain>
<enable>
<condition>
<or>
<equals>
<property>/it-autoflight/output/athr</property>
<value>0</value>
</equals>
<equals>
<property>/fdm/jsbsim/fadec/thr-locked</property>
<value>1</value>
</equals>
<and>
<not>
<equals>
<property>/fdm/jsbsim/fadec/eng-out</property>
<value>1</value>
</equals>
<equals>
<property>/fdm/jsbsim/fadec/limit/flex-active</property>
<value>0</value>
</equals>
<or>
<equals>
<property>/fdm/jsbsim/fadec/control-1/detent-text</property>
<value>MCT</value>
</equals>
<equals>
<property>/fdm/jsbsim/fadec/control-2/detent-text</property>
<value>MCT</value>
</equals>
</or>
</not>
<not>
<equals>
<property>/fdm/jsbsim/fadec/eng-out</property>
<value>1</value>
</equals>
<or>
<and>
<less-than>
<property>/controls/engines/engine[0]/throttle-pos</property>
<value>0.83</value>
</less-than>
<equals>
<property>/fdm/jsbsim/fadec/control-1/detent-text</property>
<value>MAN THR</value>
</equals>
</and>
<and>
<less-than>
<property>/controls/engines/engine[1]/throttle-pos</property>
<value>0.83</value>
</less-than>
<equals>
<property>/fdm/jsbsim/fadec/control-2/detent-text</property>
<value>MAN THR</value>
</equals>
</and>
</or>
</not>
<not-equals>
<property>/fdm/jsbsim/fadec/control-1/detent-text</property>
<value>MAN</value>
</not-equals>
<not-equals>
<property>/fdm/jsbsim/fadec/control-1/detent-text</property>
<value>CL</value>
</not-equals>
<not-equals>
<property>/fdm/jsbsim/fadec/control-2/detent-text</property>
<value>MAN</value>
</not-equals>
<not-equals>
<property>/fdm/jsbsim/fadec/control-2/detent-text</property>
<value>CL</value>
</not-equals>
</and>
</or>
</condition>
</enable>
<input>
<condition>
<equals>
<property>/fdm/jsbsim/fadec/thr-locked</property>
<value>1</value>
</equals>
</condition>
<expression>
<div>
<max>
<property>/fdm/jsbsim/fadec/thr-lock-cmd[0]</property>
<property>/fdm/jsbsim/fadec/thr-lock-cmd[1]</property>
</max>
<table>
<property>/environment/temperature-degc</property>
<entry><ind> 70</ind><dep>0.797</dep></entry>
<entry><ind> 40</ind><dep>0.822</dep></entry>
<entry><ind>-60</ind><dep>1.000</dep></entry>
</table>
</div>
</expression>
</input>
<input>
<condition>
<and>
<not-equals>
<property>/fdm/jsbsim/fadec/control-1/detent-text</property>
<value>IDLE</value>
</not-equals>
<not-equals>
<property>/fdm/jsbsim/fadec/control-2/detent-text</property>
<value>IDLE</value>
</not-equals>
</and>
</condition>
<value>1.0</value>
</input>
<input>0.0</input>
<output>/controls/engines/throttle-cmd-pid</output>
</filter>
</PropertyList>