ITAF Update

This commit is contained in:
Joshua Davidson 2017-05-23 16:51:48 -04:00
parent 5d1819ac6d
commit 855105568b
3 changed files with 80 additions and 84 deletions

View file

@ -315,7 +315,6 @@
<fpa>0.30</fpa> <fpa>0.30</fpa>
</cmd> </cmd>
<autoland> <autoland>
<kp-roll>0.10</kp-roll>
<kp-pitch>0.03</kp-pitch> <kp-pitch>0.03</kp-pitch>
<kp-rudder>-0.25</kp-rudder> <kp-rudder>-0.25</kp-rudder>
</autoland> </autoland>
@ -323,7 +322,6 @@
<settings> <settings>
<default-bank-limit>30</default-bank-limit> <!-- Set the Default Bank Limit --> <default-bank-limit>30</default-bank-limit> <!-- Set the Default Bank Limit -->
<enable-cws>0</enable-cws> <!-- Enable/Disable CWS --> <enable-cws>0</enable-cws> <!-- Enable/Disable CWS -->
<flare-altitude>40</flare-altitude> <!-- Autoland Flare AGL -->
<land-enable>1</land-enable> <!-- Enable/Disable Autoland --> <land-enable>1</land-enable> <!-- Enable/Disable Autoland -->
<land-flap>0.645</land-flap> <!-- Minimum Flap used for Landing --> <land-flap>0.645</land-flap> <!-- Minimum Flap used for Landing -->
<retard-ft>40</retard-ft> <!-- Enable Thrust Retard --> <retard-ft>40</retard-ft> <!-- Enable Thrust Retard -->
@ -331,6 +329,7 @@
<togaspd>162</togaspd> <!-- V2 + 10kts --> <togaspd>162</togaspd> <!-- V2 + 10kts -->
<lat-agl-ft>30</lat-agl-ft> <!-- Set to 999999 if you do not want T/O to change automatically to HDG, or LNAV --> <lat-agl-ft>30</lat-agl-ft> <!-- Set to 999999 if you do not want T/O to change automatically to HDG, or LNAV -->
<reduc-agl-ft>3000</reduc-agl-ft> <!-- Set to 999999 if you do not want TOGA to change automatically to FLCH --> <reduc-agl-ft>3000</reduc-agl-ft> <!-- Set to 999999 if you do not want TOGA to change automatically to FLCH -->
<autoland-without-ap>1</autoland-without-ap> <!-- Engage LAND and FLARE Modes even if the AP is off -->
</settings> </settings>
<output> <output>
<ap1>0</ap1> <ap1>0</ap1>

View file

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

View file

@ -16,14 +16,6 @@
<seconds>5.0</seconds> <seconds>5.0</seconds>
<filter-gain>0.0</filter-gain> <filter-gain>0.0</filter-gain>
</predict-simple> </predict-simple>
<predict-simple>
<name>VOR/LOC 5 SECONDS AHEAD</name>
<input>/it-autoflight/internal/nav1-track-error-deg</input>
<output>/it-autoflight/internal/nav1-error-5-sec-ahead</output>
<seconds>12</seconds>
<filter-gain>0.1</filter-gain>
</predict-simple>
<predict-simple> <predict-simple>
<name>IAS 5 SECOND PREDICTOR</name> <name>IAS 5 SECOND PREDICTOR</name>
@ -216,15 +208,6 @@
</period> </period>
<gain>1.0</gain> <gain>1.0</gain>
</filter> </filter>
<filter>
<name>VOR/LOC HEADING ERROR FILTER</name>
<debug>false</debug>
<type>noise-spike</type>
<input>/it-autoflight/internal/nav1-error-5-sec-ahead</input>
<output>/it-autoflight/internal/nav1-heading-error-deg-filtered</output>
<max-rate-of-change>90.0</max-rate-of-change>
</filter>
<filter> <filter>
<name>INTERNAL VERTICAL SPEED COMPUTER</name> <name>INTERNAL VERTICAL SPEED COMPUTER</name>
@ -550,16 +533,10 @@
<config> <config>
<Kp> <Kp>
<condition> <condition>
<and> <not-equals>
<not-equals> <property>/it-autoflight/output/lat</property>
<property>/it-autoflight/output/lat</property> <value>2</value>
<value>2</value> </not-equals>
</not-equals>
<not-equals>
<property>/it-autoflight/output/lat</property>
<value>4</value>
</not-equals>
</and>
</condition> </condition>
<property>/it-autoflight/config/roll/kp</property> <property>/it-autoflight/config/roll/kp</property>
</Kp> </Kp>
@ -572,15 +549,6 @@
</condition> </condition>
<property>/it-autoflight/config/roll/kp-vloc</property> <property>/it-autoflight/config/roll/kp-vloc</property>
</Kp> </Kp>
<Kp>
<condition>
<equals>
<property>/it-autoflight/output/lat</property>
<value>4</value>
</equals>
</condition>
<property>/it-autoflight/config/autoland/kp-roll</property>
</Kp>
<beta>1.0</beta> <beta>1.0</beta>
<alpha>0.1</alpha> <alpha>0.1</alpha>
<gamma>0.0</gamma> <gamma>0.0</gamma>
@ -705,42 +673,6 @@
</config> </config>
</pid-controller> </pid-controller>
<pi-simple-controller>
<name>AUTOLAND VS HOLD</name>
<debug>false</debug>
<enable>
<condition>
<equals>
<property>/it-autoflight/output/vert</property>
<value>6</value>
</equals>
</condition>
</enable>
<input>
<property>/it-autoflight/internal/vert-speed-fpm</property>
<scale>0.2</scale>
</input>
<reference>
<property>/it-autoflight/autoland/target-vs</property>
<scale>0.2</scale>
</reference>
<output>
<property>/it-autoflight/internal/target-pitch-deg</property>
</output>
<config>
<Kp>
<property>/it-autoflight/config/autoland/kp-pitch</property>
</Kp>
<Ki>0.010</Ki>
<min>
<value>0</value>
</min>
<max>
<value>15</value>
</max>
</config>
</pi-simple-controller>
<pid-controller> <pid-controller>
<name>FLCH SPEED BY PITCH</name> <name>FLCH SPEED BY PITCH</name>
<debug>false</debug> <debug>false</debug>
@ -1015,6 +947,28 @@
</config> </config>
</pid-controller> </pid-controller>
<filter>
<name>AUTOLAND FPM</name>
<type>gain</type>
<gain>1</gain>
<update-interval-secs type="double">0.05</update-interval-secs>
<input>
<expression>
<table>
<property>/position/gear-agl-ft</property>
<entry><ind>100</ind><dep>-600</dep></entry>
<entry><ind> 50</ind><dep>-500</dep></entry>
<entry><ind> 40</ind><dep>-400</dep></entry>
<entry><ind> 30</ind><dep>-300</dep></entry>
<entry><ind> 20</ind><dep>-200</dep></entry>
<entry><ind> 10</ind><dep>-150</dep></entry>
<entry><ind> 5</ind><dep>-100</dep></entry>
</table>
</expression>
</input>
<output>/it-autoflight/internal/target-fpm-c</output>
</filter>
<pid-controller> <pid-controller>
<name>FPM HOLD</name> <name>FPM HOLD</name>
<debug>false</debug> <debug>false</debug>
@ -1037,6 +991,10 @@
<property>/it-autoflight/output/vert</property> <property>/it-autoflight/output/vert</property>
<value>4</value> <value>4</value>
</equals> </equals>
<equals>
<property>/it-autoflight/output/vert</property>
<value>6</value>
</equals>
<equals> <equals>
<property>/it-autoflight/output/vert</property> <property>/it-autoflight/output/vert</property>
<value>7</value> <value>7</value>
@ -1114,6 +1072,16 @@
<property>/it-autoflight/internal/prof-fpm</property> <property>/it-autoflight/internal/prof-fpm</property>
<scale>0.16667</scale> <scale>0.16667</scale>
</reference> </reference>
<reference>
<condition>
<equals>
<property>/it-autoflight/output/vert</property>
<value>6</value>
</equals>
</condition>
<property>/it-autoflight/internal/target-fpm-c</property>
<scale>0.16667</scale>
</reference>
<reference> <reference>
<condition> <condition>
<and> <and>
@ -1151,13 +1119,43 @@
</output> </output>
<config> <config>
<Kp> <Kp>
<condition>
<not-equals>
<property>/it-autoflight/output/vert</property>
<value>6</value>
</not-equals>
</condition>
<property>/it-autoflight/config/cmd/vs</property> <property>/it-autoflight/config/cmd/vs</property>
</Kp> </Kp>
<Kp>
<condition>
<equals>
<property>/it-autoflight/output/vert</property>
<value>6</value>
</equals>
</condition>
<property>/it-autoflight/config/autoland/kp-pitch</property>
</Kp>
<Ti>2.5</Ti> <Ti>2.5</Ti>
<Td>0.001</Td> <Td>0.001</Td>
<u_min> <u_min>
<condition>
<not-equals>
<property>/it-autoflight/output/vert</property>
<value>6</value>
</not-equals>
</condition>
<value>-10</value> <value>-10</value>
</u_min> </u_min>
<u_min>
<condition>
<equals>
<property>/it-autoflight/output/vert</property>
<value>6</value>
</equals>
</condition>
<value>0</value>
</u_min>
<u_max> <u_max>
<condition> <condition>
<and> <and>
@ -1295,7 +1293,7 @@
</condition> </condition>
</enable> </enable>
<input> <input>
<property>/it-autoflight/internal/nav1-heading-error-deg</property> <property>/it-autoflight/internal/nav-heading-error-deg</property>
</input> </input>
<reference> <reference>
<value>0</value> <value>0</value>