Completely overhaul Thrust System, Correct EPR calculation, proper EPR Thrust Limits

This commit is contained in:
Joshua Davidson 2017-05-26 16:40:23 -04:00
parent b16ea6861d
commit 16a70be8ff
17 changed files with 832 additions and 210 deletions

View file

@ -102,6 +102,12 @@
</config>
</view>
<systems n="0">
<autopilot n="0">
<path>Aircraft/A320Family/Systems/fadec-cfm.xml</path>
</autopilot>
</systems>
</sim>
<options>

View file

@ -101,14 +101,12 @@
<default-field-of-view-deg type="double">85</default-field-of-view-deg>
</config>
</view>
<menubar>
<default>
<menu n="100">
<label>Airbus A319-100</label>
</menu>
</default>
</menubar>
<systems n="0">
<autopilot n="0">
<path>Aircraft/A320Family/Systems/fadec-iae.xml</path>
</autopilot>
</systems>
</sim>

View file

@ -95,6 +95,12 @@
</config>
</view>
<systems n="0">
<autopilot n="0">
<path>Aircraft/A320Family/Systems/fadec-cfm.xml</path>
</autopilot>
</systems>
</sim>
<options>

View file

@ -95,6 +95,12 @@
</config>
</view>
<systems n="0">
<autopilot n="0">
<path>Aircraft/A320Family/Systems/fadec-iae.xml</path>
</autopilot>
</systems>
</sim>
<options>

View file

@ -60,34 +60,31 @@
<path></path>
</electrical>
<!-- Custom FBW/Flight Controls System -->
<autopilot>
<autopilot n="1">
<path>Aircraft/A320Family/Systems/hydraulics.xml</path>
</autopilot>
<autopilot>
<autopilot n="2">
<path>Aircraft/A320Family/Systems/it-fbw-b.xml</path>
</autopilot>
<autopilot>
<autopilot n="3">
<path>Aircraft/A320Family/Systems/it-autoflight.xml</path>
</autopilot>
<autopilot>
<autopilot n="4">
<path>Aircraft/A320Family/Systems/custom-autothrust.xml</path>
</autopilot>
<autopilot>
<path>Aircraft/A320Family/Systems/thrust.xml</path>
</autopilot>
<autopilot>
<autopilot n="5">
<name>Custom engine values system</name>
<path>Aircraft/A320Family/Systems/engine-timing.xml</path>
</autopilot>
<autopilot>
<autopilot n="6">
<name>Autobrake</name>
<path>Aircraft/A320Family/Systems/a320-autobrake.xml</path>
</autopilot>
<autopilot>
<autopilot n="7">
<name>Spoilers</name>
<path>Aircraft/A320Family/Systems/a320-spoilers.xml</path>
</autopilot>
<autopilot>
<autopilot n="8">
<path>Systems/fl2070_sound.xml</path>
</autopilot>
<property-rule n="100">

View file

@ -94,14 +94,12 @@
<default-field-of-view-deg type="double">85</default-field-of-view-deg>
</config>
</view>
<menubar>
<default>
<menu n="100">
<label>Airbus A321-200</label>
</menu>
</default>
</menubar>
<systems n="0">
<autopilot n="0">
<path>Aircraft/A320Family/Systems/fadec-cfm.xml</path>
</autopilot>
</systems>
</sim>

View file

@ -95,6 +95,12 @@
</config>
</view>
<systems n="0">
<autopilot n="0">
<path>Aircraft/A320Family/Systems/fadec-iae.xml</path>
</autopilot>
</systems>
</sim>
<options>

View file

@ -100,14 +100,12 @@
<default-field-of-view-deg type="double">85</default-field-of-view-deg>
</config>
</view>
<menubar>
<default>
<menu n="100">
<label>Airbus ACJ</label>
</menu>
</default>
</menubar>
<systems n="0">
<autopilot n="0">
<path>Aircraft/A320Family/Systems/fadec-iae.xml</path>
</autopilot>
</systems>
</sim>

View file

@ -931,21 +931,12 @@
<animation>
<type>rotate</type>
<object-name>thrpos1</object-name>
<property>/controls/engines/engine[0]/throttle-lever</property>
<property>/engines/engine[0]/n1-cmd</property>
<interpolation>
<entry><ind>0.00000</ind><dep>-12</dep></entry>
<entry><ind>0.23350</ind><dep> 53</dep></entry>
<entry><ind>0.59999</ind><dep>135</dep></entry>
<entry><ind>0.60000</ind><dep>136</dep></entry>
<entry><ind>0.64999</ind><dep>136</dep></entry>
<entry><ind>0.65000</ind><dep>137</dep></entry>
<entry><ind>0.77999</ind><dep>146</dep></entry>
<entry><ind>0.78000</ind><dep>147</dep></entry>
<entry><ind>0.82999</ind><dep>147</dep></entry>
<entry><ind>0.83000</ind><dep>148</dep></entry>
<entry><ind>0.94999</ind><dep>154</dep></entry>
<entry><ind>0.95000</ind><dep>155</dep></entry>
<entry><ind>1.00000</ind><dep>155</dep></entry>
<entry><ind> 23</ind><dep>-13</dep></entry>
<entry><ind> 50</ind><dep> 53</dep></entry>
<entry><ind>100</ind><dep>152</dep></entry>
<entry><ind>110</ind><dep>170</dep></entry>
</interpolation>
<center>
<x-m>0</x-m>
@ -962,21 +953,12 @@
<animation>
<type>rotate</type>
<object-name>thrpos2</object-name>
<property>/controls/engines/engine[1]/throttle-lever</property>
<property>/engines/engine[1]/n1-cmd</property>
<interpolation>
<entry><ind>0.00000</ind><dep>-12</dep></entry>
<entry><ind>0.23350</ind><dep> 53</dep></entry>
<entry><ind>0.59999</ind><dep>135</dep></entry>
<entry><ind>0.60000</ind><dep>136</dep></entry>
<entry><ind>0.64999</ind><dep>136</dep></entry>
<entry><ind>0.65000</ind><dep>137</dep></entry>
<entry><ind>0.77999</ind><dep>146</dep></entry>
<entry><ind>0.78000</ind><dep>147</dep></entry>
<entry><ind>0.82999</ind><dep>147</dep></entry>
<entry><ind>0.83000</ind><dep>148</dep></entry>
<entry><ind>0.94999</ind><dep>154</dep></entry>
<entry><ind>0.95000</ind><dep>155</dep></entry>
<entry><ind>1.00000</ind><dep>155</dep></entry>
<entry><ind> 23</ind><dep>-13</dep></entry>
<entry><ind> 50</ind><dep> 53</dep></entry>
<entry><ind>100</ind><dep>152</dep></entry>
<entry><ind>110</ind><dep>170</dep></entry>
</interpolation>
<center>
<x-m>0</x-m>

View file

@ -1137,22 +1137,14 @@
<animation>
<type>rotate</type>
<object-name>thrpos1</object-name>
<property>/controls/engines/engine[0]/throttle-lever</property>
<property>/engines/engine[0]/epr-cmd</property>
<interpolation>
<entry><ind>0.00000</ind><dep>-10</dep></entry>
<entry><ind>0.19560</ind><dep> 28</dep></entry>
<entry><ind>0.42999</ind><dep> 63</dep></entry>
<entry><ind>0.59999</ind><dep> 84</dep></entry>
<entry><ind>0.60000</ind><dep> 85</dep></entry>
<entry><ind>0.64999</ind><dep> 85</dep></entry>
<entry><ind>0.65000</ind><dep> 86</dep></entry>
<entry><ind>0.77999</ind><dep> 91</dep></entry>
<entry><ind>0.78000</ind><dep> 92</dep></entry>
<entry><ind>0.82999</ind><dep> 92</dep></entry>
<entry><ind>0.83000</ind><dep> 93</dep></entry>
<entry><ind>0.94999</ind><dep> 95</dep></entry>
<entry><ind>0.95000</ind><dep> 96</dep></entry>
<entry><ind>1.00000</ind><dep> 96</dep></entry>
<entry><ind>0.8</ind><dep>-18</dep></entry>
<entry><ind>1.0</ind><dep>-11</dep></entry>
<entry><ind>1.1</ind><dep> 28</dep></entry>
<entry><ind>1.2</ind><dep> 63</dep></entry>
<entry><ind>1.4</ind><dep>125</dep></entry>
<entry><ind>1.6</ind><dep>191</dep></entry>
</interpolation>
<center>
<x-m>0</x-m>
@ -1169,22 +1161,14 @@
<animation>
<type>rotate</type>
<object-name>thrpos2</object-name>
<property>/controls/engines/engine[1]/throttle-lever</property>
<property>/engines/engine[1]/epr-cmd</property>
<interpolation>
<entry><ind>0.00000</ind><dep>-10</dep></entry>
<entry><ind>0.19560</ind><dep> 28</dep></entry>
<entry><ind>0.42999</ind><dep> 63</dep></entry>
<entry><ind>0.59999</ind><dep> 84</dep></entry>
<entry><ind>0.60000</ind><dep> 85</dep></entry>
<entry><ind>0.64999</ind><dep> 85</dep></entry>
<entry><ind>0.65000</ind><dep> 86</dep></entry>
<entry><ind>0.77999</ind><dep> 91</dep></entry>
<entry><ind>0.78000</ind><dep> 92</dep></entry>
<entry><ind>0.82999</ind><dep> 92</dep></entry>
<entry><ind>0.83000</ind><dep> 93</dep></entry>
<entry><ind>0.94999</ind><dep> 95</dep></entry>
<entry><ind>0.95000</ind><dep> 96</dep></entry>
<entry><ind>1.00000</ind><dep> 96</dep></entry>
<entry><ind>0.8</ind><dep>-18</dep></entry>
<entry><ind>1.0</ind><dep>-11</dep></entry>
<entry><ind>1.1</ind><dep> 28</dep></entry>
<entry><ind>1.2</ind><dep> 63</dep></entry>
<entry><ind>1.4</ind><dep>125</dep></entry>
<entry><ind>1.6</ind><dep>191</dep></entry>
</interpolation>
<center>
<x-m>0</x-m>

View file

@ -935,21 +935,13 @@
<animation>
<type>rotate</type>
<object-name>thrpos1</object-name>
<property>/controls/engines/engine[0]/throttle-lever</property>
<property>/engines/engine[0]/n1-cmd</property>
<interpolation>
<entry><ind>0.00000</ind><dep> -2</dep></entry>
<entry><ind>0.23350</ind><dep> 72</dep></entry>
<entry><ind>0.59999</ind><dep>160</dep></entry>
<entry><ind>0.60000</ind><dep>161</dep></entry>
<entry><ind>0.64999</ind><dep>161</dep></entry>
<entry><ind>0.65000</ind><dep>162</dep></entry>
<entry><ind>0.77999</ind><dep>172</dep></entry>
<entry><ind>0.78000</ind><dep>173</dep></entry>
<entry><ind>0.82999</ind><dep>173</dep></entry>
<entry><ind>0.83000</ind><dep>174</dep></entry>
<entry><ind>0.94999</ind><dep>180</dep></entry>
<entry><ind>0.95000</ind><dep>181</dep></entry>
<entry><ind>1.00000</ind><dep>181</dep></entry>
<entry><ind> 0</ind><dep> -3</dep></entry>
<entry><ind> 23</ind><dep> -3</dep></entry>
<entry><ind> 50</ind><dep> 72</dep></entry>
<entry><ind>100</ind><dep>178</dep></entry>
<entry><ind>110</ind><dep>195</dep></entry>
</interpolation>
<center>
<x-m>0</x-m>
@ -966,21 +958,13 @@
<animation>
<type>rotate</type>
<object-name>thrpos2</object-name>
<property>/controls/engines/engine[1]/throttle-lever</property>
<property>/engines/engine[1]/n1-cmd</property>
<interpolation>
<entry><ind>0.00000</ind><dep> -2</dep></entry>
<entry><ind>0.23350</ind><dep> 72</dep></entry>
<entry><ind>0.59999</ind><dep>160</dep></entry>
<entry><ind>0.60000</ind><dep>161</dep></entry>
<entry><ind>0.64999</ind><dep>161</dep></entry>
<entry><ind>0.65000</ind><dep>162</dep></entry>
<entry><ind>0.77999</ind><dep>172</dep></entry>
<entry><ind>0.78000</ind><dep>173</dep></entry>
<entry><ind>0.82999</ind><dep>173</dep></entry>
<entry><ind>0.83000</ind><dep>174</dep></entry>
<entry><ind>0.94999</ind><dep>180</dep></entry>
<entry><ind>0.95000</ind><dep>181</dep></entry>
<entry><ind>1.00000</ind><dep>181</dep></entry>
<entry><ind> 0</ind><dep> -3</dep></entry>
<entry><ind> 23</ind><dep> -3</dep></entry>
<entry><ind> 50</ind><dep> 72</dep></entry>
<entry><ind>100</ind><dep>178</dep></entry>
<entry><ind>110</ind><dep>195</dep></entry>
</interpolation>
<center>
<x-m>0</x-m>

View file

@ -1137,22 +1137,14 @@
<animation>
<type>rotate</type>
<object-name>thrpos1</object-name>
<property>/controls/engines/engine[0]/throttle-lever</property>
<property>/engines/engine[0]/epr-cmd</property>
<interpolation>
<entry><ind>0.00000</ind><dep>05</dep></entry>
<entry><ind>0.19560</ind><dep>33</dep></entry>
<entry><ind>0.42999</ind><dep>64</dep></entry>
<entry><ind>0.59999</ind><dep>82</dep></entry>
<entry><ind>0.60000</ind><dep>83</dep></entry>
<entry><ind>0.64999</ind><dep>83</dep></entry>
<entry><ind>0.65000</ind><dep>84</dep></entry>
<entry><ind>0.77999</ind><dep>88</dep></entry>
<entry><ind>0.78000</ind><dep>89</dep></entry>
<entry><ind>0.82999</ind><dep>89</dep></entry>
<entry><ind>0.83000</ind><dep>90</dep></entry>
<entry><ind>0.94999</ind><dep>92</dep></entry>
<entry><ind>0.95000</ind><dep>93</dep></entry>
<entry><ind>1.00000</ind><dep>93</dep></entry>
<entry><ind>0.8</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep> 05</dep></entry>
<entry><ind>1.1</ind><dep> 33</dep></entry>
<entry><ind>1.2</ind><dep> 64</dep></entry>
<entry><ind>1.4</ind><dep>117</dep></entry>
<entry><ind>1.6</ind><dep>165</dep></entry>
</interpolation>
<center>
<x-m>0</x-m>
@ -1169,22 +1161,14 @@
<animation>
<type>rotate</type>
<object-name>thrpos2</object-name>
<property>/controls/engines/engine[1]/throttle-lever</property>
<property>/engines/engine[1]/epr-cmd</property>
<interpolation>
<entry><ind>0.00000</ind><dep>05</dep></entry>
<entry><ind>0.19560</ind><dep>33</dep></entry>
<entry><ind>0.42999</ind><dep>64</dep></entry>
<entry><ind>0.59999</ind><dep>82</dep></entry>
<entry><ind>0.60000</ind><dep>83</dep></entry>
<entry><ind>0.64999</ind><dep>83</dep></entry>
<entry><ind>0.65000</ind><dep>84</dep></entry>
<entry><ind>0.77999</ind><dep>88</dep></entry>
<entry><ind>0.78000</ind><dep>89</dep></entry>
<entry><ind>0.82999</ind><dep>89</dep></entry>
<entry><ind>0.83000</ind><dep>90</dep></entry>
<entry><ind>0.94999</ind><dep>92</dep></entry>
<entry><ind>0.95000</ind><dep>93</dep></entry>
<entry><ind>1.00000</ind><dep>93</dep></entry>
<entry><ind>0.8</ind><dep> 0</dep></entry>
<entry><ind>1.0</ind><dep> 05</dep></entry>
<entry><ind>1.1</ind><dep> 33</dep></entry>
<entry><ind>1.2</ind><dep> 64</dep></entry>
<entry><ind>1.4</ind><dep>117</dep></entry>
<entry><ind>1.6</ind><dep>165</dep></entry>
</interpolation>
<center>
<x-m>0</x-m>

View file

@ -1,19 +1,24 @@
# 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.5
# A3XX FADEC/Throttle Control System by Joshua Davidson (it0uchpods)
# V2.0.0
setprop("/systems/thrust/alpha-floor", 0);
setprop("/systems/thrust/toga-lk", 0);
setprop("/systems/thrust/epr/toga-lim", 0.0);
setprop("/systems/thrust/epr/mct-lim", 0.0);
setprop("/systems/thrust/epr/clb-lim", 0.0);
setlistener("/sim/signals/fdm-initialized", func {
setprop("/controls/engines/thrust-limit", "TOGA");
setprop("/controls/engines/epr-limit", 1.308);
setprop("/controls/engines/n1-limit", 101.9);
setprop("/controls/engines/n1-limit", 101.8);
setprop("/systems/thrust/state1", "IDLE");
setprop("/systems/thrust/state2", "IDLE");
setprop("/systems/thrust/lvrclb", "0");
setprop("/systems/thrust/clbreduc-ft", "1500");
setprop("/systems/thrust/toga-lim", 0.0);
setprop("/systems/thrust/mct-lim", 0.0);
setprop("/systems/thrust/clb-lim", 0.0);
setprop("/systems/thrust/lim-flex", 0);
thrustt.start();
});
@ -149,33 +154,36 @@ var thrust_lim = func {
var state2 = getprop("/systems/thrust/state2");
var thr1 = getprop("/controls/engines/engine[0]/throttle-pos");
var thr2 = getprop("/controls/engines/engine[0]/throttle-pos");
var eprtoga = getprop("/systems/thrust/epr/toga-lim") + 0.001;
var eprmct = getprop("/systems/thrust/epr/mct-lim") + 0.001;
var eprclb = getprop("/systems/thrust/epr/clb-lim") + 0.001;
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)) 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/epr-limit", eprtoga);
setprop("/controls/engines/n1-limit", 101.8);
} else if ((state1 == "MCT" or state2 == "MCT" or (state1 == "MAN THR" and thr1 < 0.83) or (state2 == "MAN THR" and thr2 < 0.83)) and getprop("/systems/thrust/lim-flex") == 0) {
setprop("/controls/engines/thrust-limit", "MCT");
setprop("/controls/engines/epr-limit", 1.293);
setprop("/controls/engines/epr-limit", eprmct);
setprop("/controls/engines/n1-limit", 97.7);
} else if ((state1 == "MCT" or state2 == "MCT" or (state1 == "MAN THR" and thr1 < 0.83) or (state2 == "MAN THR" and thr2 < 0.83)) and getprop("/systems/thrust/lim-flex") == 1) {
setprop("/controls/engines/thrust-limit", "FLX");
setprop("/controls/engines/epr-limit", 1.293);
setprop("/controls/engines/epr-limit", eprmct);
setprop("/controls/engines/n1-limit", 97.7);
} else if (state1 == "CL" or state2 == "CL" or state1 == "MAN" or state2 == "MAN" or state1 == "IDLE" or state2 == "IDLE") {
setprop("/controls/engines/thrust-limit", "CLB");
setprop("/controls/engines/epr-limit", 1.271);
setprop("/controls/engines/epr-limit", eprclb);
setprop("/controls/engines/n1-limit", 91.9);
}
} else if (getprop("/FMGC/internal/flex-set") == 1) {
setprop("/systems/thrust/lim-flex", 1);
setprop("/controls/engines/thrust-limit", "FLX");
setprop("/controls/engines/epr-limit", 1.293);
setprop("/controls/engines/epr-limit", eprmct);
setprop("/controls/engines/n1-limit", 97.7);
} else {
setprop("/controls/engines/thrust-limit", "TOGA");
setprop("/controls/engines/epr-limit", 1.308);
setprop("/controls/engines/n1-limit", 101.9);
setprop("/controls/engines/epr-limit", eprtoga);
setprop("/controls/engines/n1-limit", 101.8);
}
}
@ -208,7 +216,8 @@ var thrust_loop = func {
setprop("/systems/thrust/lvrclb", "0");
}
}
# Disabled until FDE AoA and stall characteristics are correct.
# 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) {

View file

@ -195,7 +195,7 @@
<gamma>0.0</gamma>
<Ti>10.0</Ti>
<Td>0.00001</Td>
<u_min>0.04</u_min>
<u_min>0.01</u_min>
<u_max>
<property>/controls/engines/engine[0]/throttle-man</property>
</u_max>
@ -468,7 +468,7 @@
<gamma>0.0</gamma>
<Ti>10.0</Ti>
<Td>0.00001</Td>
<u_min>0.04</u_min>
<u_min>0.01</u_min>
<u_max>
<property>/controls/engines/engine[1]/throttle-man</property>
</u_max>

View file

@ -2,44 +2,6 @@
<PropertyList>
<filter>
<name>EPR 1</name>
<type>gain</type>
<gain>1</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/engines/engine[0]/n1</property>
<entry><ind> 18</ind><dep>0.988</dep></entry>
<entry><ind> 23</ind><dep>1.000</dep></entry>
<entry><ind> 35</ind><dep>1.060</dep></entry>
<entry><ind>105.8</ind><dep>1.322</dep></entry>
</table>
</expression>
</input>
<output>/engines/engine[0]/epr-actual</output>
</filter>
<filter>
<name>EPR 2</name>
<type>gain</type>
<gain>1</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/engines/engine[1]/n1</property>
<entry><ind> 18</ind><dep>0.988</dep></entry>
<entry><ind> 23</ind><dep>1.000</dep></entry>
<entry><ind> 35</ind><dep>1.060</dep></entry>
<entry><ind>105.8</ind><dep>1.322</dep></entry>
</table>
</expression>
</input>
<output>/engines/engine[1]/epr-actual</output>
</filter>
<filter>
<name>EGT L</name>
<type>gain</type>
@ -209,7 +171,7 @@
</expression>
</input>
<output>/it-autoflight/internal/vert-speed-fpm-pfd</output>
<max-rate-of-change>10</max-rate-of-change>
<max-rate-of-change>50</max-rate-of-change>
</filter>
<filter>
@ -220,7 +182,7 @@
<property>/it-autoflight/internal/vert-speed-fpm</property>
</input>
<output>/it-autoflight/internal/vert-speed-fpm-filtered</output>
<max-rate-of-change>1000</max-rate-of-change>
<max-rate-of-change>5000</max-rate-of-change>
</filter>
<filter>

View file

@ -1,8 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Joshua Davidson (it0uchpods/411) -->
<!-- This file adjustes the value for the manual thrust/autothrottle input for the engines. -->
<PropertyList>
<filter>
@ -47,6 +44,40 @@
<output>/controls/engines/engine[1]/throttle-man</output>
</filter>
<filter>
<name>N1 CMD 1</name>
<type>gain</type>
<gain>1</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/controls/engines/engine[0]/throttle-man</property>
<entry><ind>0.00</ind><dep> 23.4</dep></entry>
<entry><ind>0.95</ind><dep>101.7</dep></entry>
</table>
</expression>
</input>
<output>/engines/engine[0]/n1-cmd</output>
</filter>
<filter>
<name>N1 CMD 2</name>
<type>gain</type>
<gain>1</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/controls/engines/engine[1]/throttle-man</property>
<entry><ind>0.00</ind><dep> 23.4</dep></entry>
<entry><ind>0.95</ind><dep>101.7</dep></entry>
</table>
</expression>
</input>
<output>/engines/engine[1]/n1-cmd</output>
</filter>
<filter>
<name>Throttle 1</name>
<debug>false</debug>
@ -259,7 +290,7 @@
<condition>
<or>
<equals>
<property>/systems/thrust/state2</property>
<property>/systems/thrust/state1</property>
<value>MAN THR</value>
</equals>
<and>

671
Systems/fadec-iae.xml Normal file
View file

@ -0,0 +1,671 @@
<?xml version="1.0" encoding="UTF-8"?>
<PropertyList>
<filter>
<name>MAN One</name>
<type>gain</type>
<gain>1</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/controls/engines/engine[0]/throttle-pos</property>
<entry><ind>0.00</ind><dep>0.00</dep></entry>
<entry><ind>0.60</ind><dep>0.83</dep></entry>
<entry><ind>0.65</ind><dep>0.83</dep></entry>
<entry><ind>0.78</ind><dep>0.90</dep></entry>
<entry><ind>0.83</ind><dep>0.90</dep></entry>
<entry><ind>0.95</ind><dep>0.95</dep></entry>
</table>
</expression>
</input>
<output>/controls/engines/engine[0]/throttle-man</output>
</filter>
<filter>
<name>MAN Two</name>
<type>gain</type>
<gain>1</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/controls/engines/engine[1]/throttle-pos</property>
<entry><ind>0.00</ind><dep>0.00</dep></entry>
<entry><ind>0.60</ind><dep>0.83</dep></entry>
<entry><ind>0.65</ind><dep>0.83</dep></entry>
<entry><ind>0.78</ind><dep>0.90</dep></entry>
<entry><ind>0.83</ind><dep>0.90</dep></entry>
<entry><ind>0.95</ind><dep>0.95</dep></entry>
</table>
</expression>
</input>
<output>/controls/engines/engine[1]/throttle-man</output>
</filter>
<filter>
<name>EPR Scale</name>
<type>gain</type>
<gain>1</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/position/altitude-ft</property>
<entry><ind> 0</ind><dep>0.344</dep></entry>
<entry><ind>42000</ind><dep>0.644</dep></entry>
</table>
</expression>
</input>
<output>/engines/epr-scale</output>
</filter>
<filter>
<name>EPR Scale 2</name>
<type>gain</type>
<gain>1</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/position/altitude-ft</property>
<entry><ind> 0</ind><dep>0.993</dep></entry>
<entry><ind>12000</ind><dep>0.979</dep></entry>
<entry><ind>41000</ind><dep>0.968</dep></entry>
</table>
</expression>
</input>
<output>/engines/epr-scale-b</output>
</filter>
<filter>
<name>EPR 1</name>
<type>gain</type>
<gain>1</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/engines/engine[0]/n1</property>
<entry><ind> 18.0</ind><dep>0.00</dep></entry>
<entry><ind> 23.4</ind><dep>0.03</dep></entry>
<entry><ind> 35.0</ind><dep>0.20</dep></entry>
<entry><ind>105.8</ind><dep>1.00</dep></entry>
</table>
</expression>
<scale>/engines/epr-scale</scale>
</input>
<output>/engines/engine[0]/epr-actual-cmd</output>
</filter>
<filter>
<name>EPR 1</name>
<type>gain</type>
<gain>1</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<sum>
<property>/engines/engine[0]/epr-actual-cmd</property>
<property>/engines/epr-scale-b</property>
</sum>
</expression>
</input>
<output>/engines/engine[0]/epr-actual</output>
</filter>
<filter>
<name>EPR CMD 1</name>
<type>gain</type>
<gain>1</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/controls/engines/engine[0]/throttle-man</property>
<entry><ind>0.000</ind><dep>0.03</dep></entry>
<entry><ind>0.141</ind><dep>0.20</dep></entry>
<entry><ind>1.000</ind><dep>1.00</dep></entry>
</table>
</expression>
<scale>/engines/epr-scale</scale>
</input>
<output>/engines/engine[0]/epr-cmd-cmd</output>
</filter>
<filter>
<name>EPR CMD 1</name>
<type>gain</type>
<gain>1</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<sum>
<property>/engines/engine[0]/epr-cmd-cmd</property>
<property>/engines/epr-scale-b</property>
</sum>
</expression>
</input>
<output>/engines/engine[0]/epr-cmd</output>
</filter>
<filter>
<name>EPR 2</name>
<type>gain</type>
<gain>1</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/engines/engine[1]/n1</property>
<entry><ind> 18.0</ind><dep>0.00</dep></entry>
<entry><ind> 23.4</ind><dep>0.03</dep></entry>
<entry><ind> 35.0</ind><dep>0.20</dep></entry>
<entry><ind>105.8</ind><dep>1.00</dep></entry>
</table>
</expression>
<scale>/engines/epr-scale</scale>
</input>
<output>/engines/engine[1]/epr-actual-cmd</output>
</filter>
<filter>
<name>EPR 2</name>
<type>gain</type>
<gain>1</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<sum>
<property>/engines/engine[1]/epr-actual-cmd</property>
<property>/engines/epr-scale-b</property>
</sum>
</expression>
</input>
<output>/engines/engine[1]/epr-actual</output>
</filter>
<filter>
<name>EPR CMD 2</name>
<type>gain</type>
<gain>1</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/controls/engines/engine[1]/throttle-man</property>
<entry><ind>0.000</ind><dep>0.03</dep></entry>
<entry><ind>0.141</ind><dep>0.20</dep></entry>
<entry><ind>1.000</ind><dep>1.00</dep></entry>
</table>
</expression>
<scale>/engines/epr-scale</scale>
</input>
<output>/engines/engine[1]/epr-cmd-cmd</output>
</filter>
<filter>
<name>EPR CMD 2</name>
<type>gain</type>
<gain>1</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<sum>
<property>/engines/engine[1]/epr-cmd-cmd</property>
<property>/engines/epr-scale-b</property>
</sum>
</expression>
</input>
<output>/engines/engine[1]/epr-cmd</output>
</filter>
<filter>
<name>Throttle 1</name>
<debug>false</debug>
<feedback-if-disabled>true</feedback-if-disabled>
<initialize-to>output</initialize-to>
<enable>
<condition>
<and>
<equals>
<property>/systems/thrust/alpha-floor</property>
<value>0</value>
</equals>
<equals>
<property>/systems/thrust/toga-lk</property>
<value>0</value>
</equals>
<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>
<condition>
<or>
<equals>
<property>/systems/thrust/state1</property>
<value>MAN THR</value>
</equals>
<and>
<equals>
<property>/it-autoflight/output/athr</property>
<value>0</value>
</equals>
<or>
<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>
</or>
</condition>
<property>/controls/engines/engine[0]/throttle-man</property>
</input>
<input>
<condition>
<and>
<equals>
<property>/it-autoflight/output/athr</property>
<value>1</value>
</equals>
<or>
<equals>
<property>/systems/thrust/state1</property>
<value>CL</value>
</equals>
<equals>
<property>/systems/thrust/state1</property>
<value>MAN</value>
</equals>
</or>
</and>
</condition>
<property>/controls/engines/engine[0]/throttle-cmd</property>
</input>
<output>
<property>/controls/engines/engine[0]/throttle-fdm</property>
</output>
<type>noise-spike</type>
<max-rate-of-change>
<condition>
<equals>
<property>/systems/thrust/state1</property>
<value>MAN THR</value>
</equals>
</condition>
<value>1</value>
</max-rate-of-change>
<max-rate-of-change>
<condition>
<and>
<or>
<equals>
<property>/systems/thrust/state1</property>
<value>CL</value>
</equals>
<equals>
<property>/systems/thrust/state1</property>
<value>MAN</value>
</equals>
</or>
<equals>
<property>/it-autoflight/output/athr</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/thr-mode</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/output/retard</property>
<value>0</value>
</equals>
</and>
</condition>
<value>0.40</value>
</max-rate-of-change>
<max-rate-of-change>
<condition>
<and>
<or>
<equals>
<property>/systems/thrust/state1</property>
<value>CL</value>
</equals>
<equals>
<property>/systems/thrust/state1</property>
<value>MAN</value>
</equals>
</or>
<equals>
<property>/it-autoflight/output/athr</property>
<value>1</value>
</equals>
<not-equals>
<property>/it-autoflight/output/thr-mode</property>
<value>0</value>
</not-equals>
<equals>
<property>/it-autoflight/output/retard</property>
<value>0</value>
</equals>
</and>
</condition>
<value>0.2</value>
</max-rate-of-change>
<max-rate-of-change>
<condition>
<equals>
<property>/it-autoflight/output/athr</property>
<value>0</value>
</equals>
</condition>
<value>1</value>
</max-rate-of-change>
</filter>
<filter>
<name>Throttle 2</name>
<debug>false</debug>
<feedback-if-disabled>true</feedback-if-disabled>
<initialize-to>output</initialize-to>
<enable>
<condition>
<and>
<equals>
<property>/systems/thrust/alpha-floor</property>
<value>0</value>
</equals>
<equals>
<property>/systems/thrust/toga-lk</property>
<value>0</value>
</equals>
<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>
<condition>
<or>
<equals>
<property>/systems/thrust/state1</property>
<value>MAN THR</value>
</equals>
<and>
<equals>
<property>/it-autoflight/output/athr</property>
<value>0</value>
</equals>
<or>
<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>
</or>
</condition>
<property>/controls/engines/engine[1]/throttle-man</property>
</input>
<input>
<condition>
<and>
<equals>
<property>/it-autoflight/output/athr</property>
<value>1</value>
</equals>
<or>
<equals>
<property>/systems/thrust/state2</property>
<value>CL</value>
</equals>
<equals>
<property>/systems/thrust/state2</property>
<value>MAN</value>
</equals>
</or>
</and>
</condition>
<property>/controls/engines/engine[1]/throttle-cmd</property>
</input>
<output>
<property>/controls/engines/engine[1]/throttle-fdm</property>
</output>
<type>noise-spike</type>
<max-rate-of-change>
<condition>
<equals>
<property>/systems/thrust/state2</property>
<value>MAN THR</value>
</equals>
</condition>
<value>1</value>
</max-rate-of-change>
<max-rate-of-change>
<condition>
<and>
<or>
<equals>
<property>/systems/thrust/state2</property>
<value>CL</value>
</equals>
<equals>
<property>/systems/thrust/state2</property>
<value>MAN</value>
</equals>
</or>
<equals>
<property>/it-autoflight/output/athr</property>
<value>1</value>
</equals>
<equals>
<property>/it-autoflight/output/thr-mode</property>
<value>0</value>
</equals>
<equals>
<property>/it-autoflight/output/retard</property>
<value>0</value>
</equals>
</and>
</condition>
<value>0.40</value>
</max-rate-of-change>
<max-rate-of-change>
<condition>
<and>
<or>
<equals>
<property>/systems/thrust/state2</property>
<value>CL</value>
</equals>
<equals>
<property>/systems/thrust/state2</property>
<value>MAN</value>
</equals>
</or>
<equals>
<property>/it-autoflight/output/athr</property>
<value>1</value>
</equals>
<not-equals>
<property>/it-autoflight/output/thr-mode</property>
<value>0</value>
</not-equals>
<equals>
<property>/it-autoflight/output/retard</property>
<value>0</value>
</equals>
</and>
</condition>
<value>0.2</value>
</max-rate-of-change>
<max-rate-of-change>
<condition>
<equals>
<property>/it-autoflight/output/athr</property>
<value>0</value>
</equals>
</condition>
<value>1</value>
</max-rate-of-change>
</filter>
<filter>
<name>EPR Limit TOGA</name>
<type>gain</type>
<gain>1</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<value>0.95</value>
<entry><ind>0.000</ind><dep>0.03</dep></entry>
<entry><ind>0.141</ind><dep>0.20</dep></entry>
<entry><ind>1.000</ind><dep>1.00</dep></entry>
</table>
</expression>
<scale>/engines/epr-scale</scale>
</input>
<output>/systems/thrust/epr/toga-lim-cmd</output>
</filter>
<filter>
<name>EPR CMD TOGA</name>
<type>gain</type>
<gain>1</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<sum>
<property>/systems/thrust/epr/toga-lim-cmd</property>
<property>/engines/epr-scale-b</property>
</sum>
</expression>
</input>
<output>/systems/thrust/epr/toga-lim</output>
</filter>
<filter>
<name>EPR Limit MCT</name>
<type>gain</type>
<gain>1</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<value>0.90</value>
<entry><ind>0.000</ind><dep>0.03</dep></entry>
<entry><ind>0.141</ind><dep>0.20</dep></entry>
<entry><ind>1.000</ind><dep>1.00</dep></entry>
</table>
</expression>
<scale>/engines/epr-scale</scale>
</input>
<output>/systems/thrust/epr/mct-lim-cmd</output>
</filter>
<filter>
<name>EPR CMD MCT</name>
<type>gain</type>
<gain>1</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<sum>
<property>/systems/thrust/epr/mct-lim-cmd</property>
<property>/engines/epr-scale-b</property>
</sum>
</expression>
</input>
<output>/systems/thrust/epr/mct-lim</output>
</filter>
<filter>
<name>EPR Limit CLB</name>
<type>gain</type>
<gain>1</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<value>0.83</value>
<entry><ind>0.000</ind><dep>0.03</dep></entry>
<entry><ind>0.141</ind><dep>0.20</dep></entry>
<entry><ind>1.000</ind><dep>1.00</dep></entry>
</table>
</expression>
<scale>/engines/epr-scale</scale>
</input>
<output>/systems/thrust/epr/clb-lim-cmd</output>
</filter>
<filter>
<name>EPR CMD CLB</name>
<type>gain</type>
<gain>1</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<sum>
<property>/systems/thrust/epr/clb-lim-cmd</property>
<property>/engines/epr-scale-b</property>
</sum>
</expression>
</input>
<output>/systems/thrust/epr/clb-lim</output>
</filter>
</PropertyList>