1
0
Fork 0

FMGC: Improved FLARE law

This commit is contained in:
Josh Davidson 2021-07-25 20:12:22 -04:00
parent 527c60bd4a
commit b8ec096b68
3 changed files with 77 additions and 49 deletions

View file

@ -291,14 +291,11 @@ var ITAF = {
if (Position.gearAglFtTemp <= 400 and Position.gearAglFtTemp >= 5) { if (Position.gearAglFtTemp <= 400 and Position.gearAglFtTemp >= 5) {
me.updateVertText("LAND"); me.updateVertText("LAND");
if (Position.gearAglFtTemp <= 100) { # switch to internal flare logic at 100 feet -- but on FMA at 50! if (Position.gearAglFtTemp <= 50) {
me.setVertMode(6); me.setVertMode(6);
} }
} }
} else if (Output.vertTemp == 6) { } else if (Output.vertTemp == 6) {
if (Position.gearAglFtTemp <= 50 and Position.gearAglFtTemp >= 5 and Text.vert.getValue() != "FLARE") {
me.updateVertText("FLARE");
}
if (Gear.wow1Temp and Gear.wow2Temp and Text.vert.getValue() != "ROLLOUT") { if (Gear.wow1Temp and Gear.wow2Temp and Text.vert.getValue() != "ROLLOUT") {
me.updateLatText("RLOU"); me.updateLatText("RLOU");
me.updateVertText("ROLLOUT"); me.updateVertText("ROLLOUT");
@ -671,6 +668,7 @@ var ITAF = {
me.updateApprArm(0); me.updateApprArm(0);
Output.vert.setValue(6); Output.vert.setValue(6);
me.updateThrustMode(); me.updateThrustMode();
me.updateVertText("FLARE");
} else if (n == 7) { # T/O CLB or G/A CLB, text is set by TOGA selector } else if (n == 7) { # T/O CLB or G/A CLB, text is set by TOGA selector
Internal.flchActive = 0; Internal.flchActive = 0;
Internal.altCaptureActive = 0; Internal.altCaptureActive = 0;

View file

@ -588,6 +588,32 @@
<debug>false</debug> <debug>false</debug>
<type>gain</type> <type>gain</type>
<gain>1.0</gain> <gain>1.0</gain>
<input> <!-- Under 110ft glideslope data starts to become unusable -->
<condition>
<and>
<or>
<equals>
<property>/it-autoflight/output/vert</property>
<value>2</value>
</equals>
<equals>
<property>/it-autoflight/output/vert</property>
<value>6</value>
</equals>
</or>
<less-than-equals>
<property>/position/gear-agl-ft</property>
<value>110</value>
</less-than-equals>
</and>
</condition>
<expression>
<min>
<property>/it-autoflight/internal/nav-rate-of-climb-fpm</property>
<value>-500</value>
</min>
</expression>
</input>
<input>/instrumentation/nav[0]/gs-rate-of-climb-fpm</input> <input>/instrumentation/nav[0]/gs-rate-of-climb-fpm</input>
<output>/it-autoflight/internal/nav-rate-of-climb-fpm</output> <output>/it-autoflight/internal/nav-rate-of-climb-fpm</output>
<min> <min>

View file

@ -282,6 +282,8 @@
<gain>1.0</gain> <gain>1.0</gain>
<input> <input>
<expression> <expression>
<max>
<property>/it-autoflight/internal/nav-rate-of-climb-fpm</property>
<sum> <sum>
<difference> <!-- Fix an issue with the calculation --> <difference> <!-- Fix an issue with the calculation -->
<property>/it-autoflight/internal/vert-speed-fpm</property> <property>/it-autoflight/internal/vert-speed-fpm</property>
@ -295,9 +297,8 @@
<deg2rad> <deg2rad>
<table> <table>
<property>/position/gear-agl-ft</property> <property>/position/gear-agl-ft</property>
<entry><ind>100</ind><dep>-2.80</dep></entry> <entry><ind>50</ind><dep>-3.0</dep></entry>
<entry><ind> 50</ind><dep>-2.12</dep></entry> <entry><ind>45</ind><dep>-0.7</dep></entry>
<entry><ind> 45</ind><dep>-0.61</dep></entry>
</table> </table>
</deg2rad> </deg2rad>
</sin> </sin>
@ -305,6 +306,7 @@
<value>101.26859142607174</value> <!-- FPM to Knot --> <value>101.26859142607174</value> <!-- FPM to Knot -->
</product> </product>
</sum> </sum>
</max>
</expression> </expression>
</input> </input>
<output>/it-autoflight/internal/target-fpm-land-fd</output> <output>/it-autoflight/internal/target-fpm-land-fd</output>
@ -318,6 +320,8 @@
<gain>1.0</gain> <gain>1.0</gain>
<input> <input>
<expression> <expression>
<max>
<property>/it-autoflight/internal/nav-rate-of-climb-fpm</property>
<sum> <sum>
<difference> <!-- Fix an issue with the calculation --> <difference> <!-- Fix an issue with the calculation -->
<property>/it-autoflight/internal/vert-speed-fpm</property> <property>/it-autoflight/internal/vert-speed-fpm</property>
@ -331,12 +335,11 @@
<deg2rad> <deg2rad>
<table> <table>
<property>/position/gear-agl-ft</property> <property>/position/gear-agl-ft</property>
<entry><ind>100</ind><dep>-2.80</dep></entry> <entry><ind>50</ind><dep>-3.0</dep></entry>
<entry><ind> 50</ind><dep>-2.12</dep></entry> <entry><ind>40</ind><dep>-1.8</dep></entry>
<entry><ind> 40</ind><dep>-1.58</dep></entry> <entry><ind>30</ind><dep>-1.5</dep></entry>
<entry><ind> 30</ind><dep>-1.23</dep></entry> <entry><ind>20</ind><dep>-1.2</dep></entry>
<entry><ind> 20</ind><dep>-0.92</dep></entry> <entry><ind> 5</ind><dep>-0.7</dep></entry>
<entry><ind> 10</ind><dep>-0.61</dep></entry>
</table> </table>
</deg2rad> </deg2rad>
</sin> </sin>
@ -344,6 +347,7 @@
<value>101.26859142607174</value> <!-- FPM to Knot --> <value>101.26859142607174</value> <!-- FPM to Knot -->
</product> </product>
</sum> </sum>
</max>
</expression> </expression>
</input> </input>
<output>/it-autoflight/internal/target-fpm-land</output> <output>/it-autoflight/internal/target-fpm-land</output>