Attached is a patch that adds filters to the 777 autopilot's Heading,
LNAV and Altitude
Major bug is LNAV.
The 777 currently doesn't fly on a LNAV/CRS properly.
The aircraft ends up on the correct heading, but with no correction, ie
parallel to predicted path and not correcting. The values in the PID are
completely different to other observed aircraft, so am unsure what the
problem is atmo.
Also this warning message is output below, not sure when it starts but
its goes on forever
Warning: State::drawQuads(0, 58464) too large handle in remapping to
ushort glDrawElements.
Warning: State::drawQuads(0, 58468) too large handle in remapping to
ushort glDrawElements.
Warning: State::drawQuads(0, 58468) too large handle in remapping to
ushort glDrawElements.
Warning: State::drawQuads(0, 58468) too large handle in remapping to
ushort glDrawElements.
regards
pete
<?xml version="1.0"?>
<PropertyList>
<predict-simple>
<input>/autopilot/internal/nav1-track-error-deg</input>
<output>/autopilot/internal/nav1-track-error-lookahead-deg</output>
<seconds>8.0</seconds>
<filter-gain>0.0</filter-gain>
</predict-simple>
<!-- =============================================================== -->
<!-- Roll Axis Modes -->
<!-- =============================================================== -->
<pid-controller>
<name>TO/GA1</name>
<debug>false</debug>
<enable>
<prop>instrumentation/afds/ap-modes/roll-mode</prop>
<value>TO/GA</value>
<honor-passive>true</honor-passive>
</enable>
<input>
<prop>orientation/roll-deg</prop>
</input>
<reference>
<value>0.0</value>
</reference>
<output>
<prop>/controls/flight/aileron</prop>
</output>
<config>
<Kp>0.20</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>10.0</Ti>
<Td>0.00001</Td>
<u_min>-0.2</u_min>
<u_max>0.2</u_max>
</config>
</pid-controller>
<!-- Heading Hold -->
<pid-controller>
<name>Heading Hold 1</name>
<debug>false</debug>
<enable>
<prop>instrumentation/afds/ap-modes/roll-mode</prop>
<value>HDG SEL</value>
</enable>
<input>
<prop>/autopilot/internal/fdm-heading-bug-error-deg</prop>
</input>
<reference>
<value>0.0</value>
</reference>
<output>
<prop>/autopilot/internal/target-roll-deg</prop>
</output>
<config>
<Kp>-5.0</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>10.0</Ti>
<Td>0.00001</Td>
<u_min>
<prop>instrumentation/afds/settings/bank-min</prop>
</u_min>
<u_max>
<prop>instrumentation/afds/settings/bank-max</prop>
</u_max>
</config>
</pid-controller>
<filter>
<name>Heading hold spike filter</name>
<debug>false</debug>
<type>noise-spike</type>
<input>/autopilot/internal/target-roll-deg</input>
<output>/autopilot/internal/heading-target-roll-deg-filtered</output>
<max-rate-of-change>8.0</max-rate-of-change>
</filter>
<pid-controller>
<name>Heading Hold 2</name>
<debug>false</debug>
<enable>
<prop>instrumentation/afds/ap-modes/roll-mode</prop>
<value>HDG SEL</value>
<honor-passive>true</honor-passive>
</enable>
<input>
<prop>/orientation/roll-deg</prop>
</input>
<reference>
<prop>/autopilot/internal/heading-target-roll-deg-filtered</prop>
</reference>
<output>
<prop>/controls/flight/aileron</prop>
</output>
<config>
<Kp>0.021</Kp>
<beta>1.2</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>1.0</Ti>
<Td>0.1</Td>
<u_min>-0.5</u_min>
<u_max>0.5</u_max>
</config>
</pid-controller>
<pid-controller>
<name>LNAV FMS</name>
<debug>false</debug>
<enable>
<prop>instrumentation/afds/ap-modes/roll-mode</prop>
<value>LNAV</value>
</enable>
<input>
<prop>instrumentation/afds/settings/lnav-crs</prop>
</input>
<reference>
<value>0.0</value>
</reference>
<output>
<prop>/autopilot/internal/target-roll-deg</prop>
</output>
<config>
<Kp>-2.0</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>10.0</Ti>
<Td>0.00001</Td>
<u_min>
<prop>instrumentation/afds/settings/bank-min</prop>
</u_min>
<u_max>
<prop>instrumentation/afds/settings/bank-max</prop>
</u_max>
</config>
</pid-controller>
<filter>
<name>LNAV spike filter</name>
<debug>false</debug>
<type>noise-spike</type>
<input>/autopilot/internal/target-roll-deg</input>
<output>/autopilot/internal/lnav-target-roll-deg-filtered</output>
<max-rate-of-change>10.0</max-rate-of-change>
</filter>
<pid-controller>
<name>LNAV 2</name>
<debug>false</debug>
<enable>
<prop>instrumentation/afds/ap-modes/roll-mode</prop>
<value>LNAV</value>
<honor-passive>true</honor-passive>
</enable>
<input>
<prop>/orientation/roll-deg</prop>
</input>
<reference>
<prop>/autopilot/internal/lnav-target-roll-deg-filtered</prop>
</reference>
<output>
<prop>/controls/flight/aileron</prop>
</output>
<config>
<Kp>0.03</Kp>
<beta>1.5</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>1.0</Ti>
<Td>0.0</Td>
<u_min>-0.35</u_min>
<u_max>0.35</u_max>
</config>
</pid-controller>
<pid-controller>
<name>LOC Hold 1</name>
<debug>false</debug>
<enable>
<prop>instrumentation/afds/ap-modes/roll-mode</prop>
<value>LOC</value>
</enable>
<input>
<prop>/autopilot/internal/nav1-heading-error-deg</prop>
</input>
<reference>
<value>0.0</value>
</reference>
<output>
<prop>/autopilot/internal/target-roll-deg</prop>
</output>
<config>
<Kp>-2.0</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>10.0</Ti>
<Td>0.00001</Td>
<u_min>
<prop>instrumentation/afds/settings/bank-min</prop>
</u_min>
<u_max>
<prop>instrumentation/afds/settings/bank-max</prop>
</u_max>
</config>
</pid-controller>
<pid-controller>
<name>LOC 2</name>
<debug>false</debug>
<enable>
<prop>instrumentation/afds/ap-modes/roll-mode</prop>
<value>LOC</value>
<honor-passive>true</honor-passive>
</enable>
<input>
<prop>/orientation/roll-deg</prop>
</input>
<reference>
<prop>/autopilot/internal/target-roll-deg</prop>
</reference>
<output>
<prop>/controls/flight/aileron</prop>
</output>
<config>
<Kp>0.05</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>1.0</Ti>
<Td>0.00001</Td>
<u_min>-0.5</u_min>
<u_max>0.5</u_max>
</config>
</pid-controller>
<pid-controller>
<name>Yaw Damper</name>
<debug>false</debug>
<enable>
<prop>instrumentation/afds/ap-modes/yaw-damper</prop>
<value>1</value>
<honor-passive>true</honor-passive>
</enable>
<input>
<prop>/orientation/roll-deg</prop>
</input>
<reference>
<prop>/autopilot/internal/target-roll-deg</prop>
</reference>
<output>
<prop>/controls/flight/rudder</prop>
</output>
<config>
<Kp>0.25</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>10.0</Ti>
<Td>0.000000001</Td>
<u_min>-0.25</u_min>
<u_max>0.25</u_max>
</config>
</pid-controller>
<!-- =============================================================== -->
<!-- Pitch Axis Modes -->
<!-- =============================================================== -->
<pi-simple-controller>
<name>TO/GA</name>
<debug>false</debug>
<enable>
<prop>instrumentation/afds/ap-modes/pitch-mode</prop>
<value>TO/GA</value>
</enable>
<input>
<prop>instrumentation/altimeter/indicated-altitude-ft</prop>
</input>
<reference>
<value>10000</value>
</reference>
<output>
<prop>/autopilot/internal/target-climb-rate-fps</prop>
</output>
<config>
<Kp>0.3</Kp>
<Ki>0.0</Ki>
<u_min>-16.67</u_min>
<u_max>33.33</u_max>
</config>
</pi-simple-controller>
<pid-controller>
<name>Altitude Hold (Altimeter based) Stage 2</name>
<debug>false</debug>
<enable>
<prop>instrumentation/afds/ap-modes/pitch-mode</prop>
<value>TO/GA</value>
<honor-passive>true</honor-passive>
</enable>
<input>
<prop>/velocities/vertical-speed-fps</prop>
</input>
<reference>
<prop>/autopilot/internal/target-climb-rate-fps</prop>
</reference>
<output>
<prop>/controls/flight/elevator-trim</prop>
</output>
<config>
<Kp>-0.01</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>10.0</Ti>
<Td>0.00001</Td>
<u_min>-0.2</u_min>
<u_max>0.2</u_max>
</config>
</pid-controller>
<pi-simple-controller>
<name>Altitude Stage 1</name>
<debug>false</debug>
<enable>
<prop>instrumentation/afds/ap-modes/pitch-mode</prop>
<value>ALT</value>
</enable>
<input>
<prop>instrumentation/altimeter/indicated-altitude-ft</prop>
</input>
<reference>
<prop>/autopilot/settings/target-altitude-ft</prop>
</reference>
<output>
<prop>/autopilot/internal/target-climb-rate-fps</prop>
</output>
<config>
<Kp>0.3</Kp>
<Ki>0.0</Ki>
<u_min>-16.67</u_min>
<u_max>33.33</u_max>
</config>
</pi-simple-controller>
<filter>
<name>Altitude hold spike filter</name>
<debug>false</debug>
<type>noise-spike</type>
<input>/autopilot/internal/target-climb-rate-fps</input>
<output>/autopilot/internal/target-climb-rate-fps-filtered</output>
<max-rate-of-change>10.0</max-rate-of-change>
</filter>
<pid-controller>
<name>Altitude Hold (Altimeter based) Stage 2</name>
<debug>false</debug>
<enable>
<prop>instrumentation/afds/ap-modes/pitch-mode</prop>
<value>ALT</value>
<honor-passive>true</honor-passive>
</enable>
<input>
<prop>/velocities/vertical-speed-fps</prop>
</input>
<reference>
<prop>/autopilot/internal/target-climb-rate-fps-filtered</prop>
</reference>
<output>
<prop>/controls/flight/elevator-trim</prop>
</output>
<config>
<Kp>-0.015</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>10.0</Ti>
<Td>0.00001</Td>
<u_min>-0.2</u_min>
<u_max>0.2</u_max>
</config>
</pid-controller>
<pi-simple-controller>
<name>VNAV Altitude Stage 1</name>
<debug>false</debug>
<enable>
<prop>instrumentation/afds/ap-modes/pitch-mode</prop>
<value>VNAV ALT</value>
</enable>
<input>
<prop>instrumentation/altimeter/indicated-altitude-ft</prop>
</input>
<reference>
<prop>/instrumentation/afds/settings/vnav-alt</prop>
</reference>
<output>
<prop>/autopilot/internal/target-climb-rate-fps</prop>
</output>
<config>
<Kp>0.3</Kp>
<Ki>0.0</Ki>
<u_min>-16.67</u_min>
<u_max>33.33</u_max>
</config>
</pi-simple-controller>
<pid-controller>
<name>Altitude Hold (Altimeter based) Stage 2</name>
<debug>false</debug>
<enable>
<prop>instrumentation/afds/ap-modes/pitch-mode</prop>
<value>VNAV ALT</value>
<honor-passive>true</honor-passive>
</enable>
<input>
<prop>/velocities/vertical-speed-fps</prop>
</input>
<reference>
<prop>/autopilot/internal/target-climb-rate-fps</prop>
</reference>
<output>
<prop>/controls/flight/elevator-trim</prop>
</output>
<config>
<Kp>-0.01</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>10.0</Ti>
<Td>0.00001</Td>
<u_min>-0.2</u_min>
<u_max>0.2</u_max>
</config>
</pid-controller>
<pid-controller>
<name>Glideslop Hold</name>
<debug>false</debug>
<enable>
<prop>instrumentation/afds/ap-modes/pitch-mode</prop>
<value>G/S</value>
<honor-passive>true</honor-passive>
</enable>
<input>
<prop>/velocities/vertical-speed-fps</prop>
</input>
<reference>
<prop>/instrumentation/nav[0]/gs-rate-of-climb</prop>
</reference>
<output>
<prop>controls/flight/elevator-trim</prop>
</output>
<config>
<Kp>-0.02</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>10.0</Ti>
<Td>0.00001</Td>
<u_min>-0.5</u_min>
<u_max>0.5</u_max>
</config>
</pid-controller>
<!-- vertical speed hold -->
<pid-controller>
<name>Vertical Speed Hold</name>
<debug>false</debug>
<enable>
<prop>instrumentation/afds/ap-modes/pitch-mode</prop>
<value>V/S</value>
<honor-passive>true</honor-passive>
</enable>
<input>
<prop>/velocities/vertical-speed-fps</prop>
</input>
<reference>
<prop>/autopilot/settings/vertical-speed-fpm</prop>
<scale>0.01666666</scale>
</reference>
<output>
<prop>/controls/flight/elevator-trim</prop>
</output>
<config>
<Kp>-0.015</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>1.0</Ti>
<Td>0.00001</Td>
<u_min>-0.35</u_min>
<u_max>0.35</u_max>
</config>
</pid-controller>
<!-- vertical speed hold -->
<pid-controller>
<name>Flight Path Hold</name>
<debug>false</debug>
<enable>
<prop>instrumentation/afds/ap-modes/pitch-mode</prop>
<value>FPA</value>
<honor-passive>true</honor-passive>
</enable>
<input>
<prop>autopilot/internal/fpa</prop>
</input>
<reference>
<prop>/autopilot/settings/flight-path-angle</prop>
</reference>
<output>
<prop>/controls/flight/elevator-trim</prop>
</output>
<config>
<Kp>-0.15</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>1.0</Ti>
<Td>0.0</Td>
<u_min>-0.25</u_min>
<u_max>0.25</u_max>
</config>
</pid-controller>
<!-- =============================================================== -->
<!-- Velocity Modes -->
<!-- =============================================================== -->
<!-- Auto throttle -->
<pid-controller>
<name>Auto Throttle1 ias</name>
<debug>false</debug>
<enable>
<prop>instrumentation/afds/ap-modes/throttle[0]</prop>
<value>ias</value>
<honor-passive>true</honor-passive>
</enable>
<input>
<prop>/velocities/airspeed-kt</prop>
</input>
<reference>
<prop>/autopilot/settings/target-speed-kt</prop>
</reference>
<output>
<prop>/controls/engines/engine[0]/throttle</prop>
</output>
<config>
<Kp>0.15</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>20.0</Ti>
<Td>0.00001</Td>
<u_min>0.0</u_min>
<u_max>1.0</u_max>
</config>
</pid-controller>
<pid-controller>
<name>Auto Throttle2 ias</name>
<debug>false</debug>
<enable>
<prop>instrumentation/afds/ap-modes/throttle[1]</prop>
<value>ias</value>
<honor-passive>true</honor-passive>
</enable>
<input>
<prop>/velocities/airspeed-kt</prop>
</input>
<reference>
<prop>/autopilot/settings/target-speed-kt</prop>
</reference>
<output>
<prop>/controls/engines/engine[1]/throttle</prop>
</output>
<config>
<Kp>0.15</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>20.0</Ti>
<Td>0.00001</Td>
<u_min>0.0</u_min>
<u_max>1.0</u_max>
</config>
</pid-controller>
<pid-controller>
<name>Auto Throttle1 mach</name>
<debug>false</debug>
<enable>
<prop>instrumentation/afds/ap-modes/throttle[0]</prop>
<value>mach</value>
<honor-passive>true</honor-passive>
</enable>
<input>
<prop>/velocities/mach</prop>
</input>
<reference>
<prop>/autopilot/settings/target-speed-mach</prop>
</reference>
<output>
<prop>/controls/engines/engine[0]/throttle</prop>
</output>
<config>
<Kp>20.0</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>10.0</Ti>
<Td>0.00001</Td>
<u_min>0.0</u_min>
<u_max>1.0</u_max>
</config>
</pid-controller>
<pid-controller>
<name>Auto Throttle2 mach</name>
<debug>false</debug>
<enable>
<prop>instrumentation/afds/ap-modes/throttle[1]</prop>
<value>mach</value>
<honor-passive>true</honor-passive>
</enable>
<input>
<prop>/velocities/mach</prop>
</input>
<reference>
<prop>/autopilot/settings/target-speed-mach</prop>
</reference>
<output>
<prop>/controls/engines/engine[1]/throttle</prop>
</output>
<config>
<Kp>20.0</Kp>
<beta>1.0</beta>
<alpha>0.1</alpha>
<gamma>0.0</gamma>
<Ti>10.0</Ti>
<Td>0.00001</Td>
<u_min>0.0</u_min>
<u_max>1.0</u_max>
</config>
</pid-controller>
</PropertyList>
? .git
? ap.patch.txt
Index: Systems/777-autopilot.xml
===================================================================
RCS file:
/var/cvs/FlightGear-0.9/data/Aircraft/777-200/Systems/777-autopilot.xml,v
retrieving revision 1.11
diff -r1.11 777-autopilot.xml
45a46,47
> <!-- Heading Hold -->
>
77a80,88
> <filter>
> <name>Heading hold spike filter</name>
> <debug>false</debug>
> <type>noise-spike</type>
> <input>/autopilot/internal/target-roll-deg</input>
> <output>/autopilot/internal/heading-target-roll-deg-filtered</output>
> <max-rate-of-change>8.0</max-rate-of-change>
> </filter>
>
90c101
< <prop>/autopilot/internal/target-roll-deg</prop>
---
> <prop>/autopilot/internal/heading-target-roll-deg-filtered</prop>
96,97c107,108
< <Kp>1.0</Kp>
< <beta>1.0</beta>
---
> <Kp>0.021</Kp>
> <beta>1.2</beta>
101c112
< <Td>0.0</Td>
---
> <Td>0.1</Td>
138a150,159
> <filter>
> <name>LNAV spike filter</name>
> <debug>false</debug>
> <type>noise-spike</type>
> <input>/autopilot/internal/target-roll-deg</input>
> <output>/autopilot/internal/lnav-target-roll-deg-filtered</output>
> <max-rate-of-change>10.0</max-rate-of-change>
> </filter>
>
>
151c172
< <prop>/autopilot/internal/target-roll-deg</prop>
---
> <prop>/autopilot/internal/lnav-target-roll-deg-filtered</prop>
157,158c178,179
< <Kp>0.5</Kp>
< <beta>1.0</beta>
---
> <Kp>0.03</Kp>
> <beta>1.5</beta>
218c239
< <Kp>0.25</Kp>
---
> <Kp>0.05</Kp>
340a362,370
> <filter>
> <name>Altitude hold spike filter</name>
> <debug>false</debug>
> <type>noise-spike</type>
> <input>/autopilot/internal/target-climb-rate-fps</input>
> <output>/autopilot/internal/target-climb-rate-fps-filtered</output>
> <max-rate-of-change>10.0</max-rate-of-change>
> </filter>
>
353c383
< <prop>/autopilot/internal/target-climb-rate-fps</prop>
---
> <prop>/autopilot/internal/target-climb-rate-fps-filtered</prop>
359c389
< <Kp>-0.01</Kp>
---
> <Kp>-0.015</Kp>
------------------------------------------------------------------------------
The Planet: dedicated and managed hosting, cloud storage, colocation
Stay online with enterprise data centers and the best network in the business
Choose flexible plans and management services without long-term contracts
Personal 24x7 support from experience hosting pros just a phone call away.
http://p.sf.net/sfu/theplanet-com
_______________________________________________
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel