- Messages
- 205
- Country
-
Hi all,
Working on the 747 again, I have resigned myself to forcing it to work with the default autopilot instead of my own (for now at least, just to get the dang thing flying...).
I am attempting to use the default autopilot variables with some XML trickery to make the gauges on the panel behave accurately while making the system functional.
However, during testing, I could not get the aircraft to smoothly capture an altitude. If I use the default 747 panel, the autopilot behaves perfectly: it begins capturing a given altitude about 300 feet out from it given a climb/descent rate of 2000 fpm. However, on my panel, altitude acquiring does not begin until 100 feet for some reason, causing the autopilot to overshoot, and instead of trying to acquire the correct altitude, it simply remains at whatever altitude it overshot to. I cannot for the life of me figure out what is conflicting and causing the problem.
Here is the relevant portion of gauge code:
Working on the 747 again, I have resigned myself to forcing it to work with the default autopilot instead of my own (for now at least, just to get the dang thing flying...).
I am attempting to use the default autopilot variables with some XML trickery to make the gauges on the panel behave accurately while making the system functional.
However, during testing, I could not get the aircraft to smoothly capture an altitude. If I use the default 747 panel, the autopilot behaves perfectly: it begins capturing a given altitude about 300 feet out from it given a climb/descent rate of 2000 fpm. However, on my panel, altitude acquiring does not begin until 100 feet for some reason, causing the autopilot to overshoot, and instead of trying to acquire the correct altitude, it simply remains at whatever altitude it overshot to. I cannot for the life of me figure out what is conflicting and causing the problem.
Here is the relevant portion of gauge code:
XML:
<!--Vertical Speed Mode-->
(L:AP Vertical Mode Knob, number) 1 !=
if{
(A:VERTICAL SPEED, feet per minute) (>L:VS Wheel Setting, number)
}
(L:AP Vertical Mode Knob, number) 1 == (L:Autopilot Altitude Select Switch, number) 0 == (A:AUTOPILOT VERTICAL HOLD VAR, feet/minute) 0 > and and
if{ 99999 (>K:AP_ALT_VAR_SET_ENGLISH) }
(L:AP Vertical Mode Knob, number) 1 == (L:Autopilot Altitude Select Switch, number) 0 == (A:AUTOPILOT VERTICAL HOLD VAR, feet/minute) 0 < and and
if{ -5000 (>K:AP_ALT_VAR_SET_ENGLISH) }
<!--Altitude Modes-->
(A:AUTOPILOT MASTER, bool) 1 ==
if{
(L:Autopilot Altitude Select Switch, number) 1 ==
if{
(L:AltHoldDoOnce, bool) 0 ==
if{
(L:Altitude Filtered, number) (>K:AP_ALT_VAR_SET_ENGLISH)
1 (>L:AltHoldDoOnce, bool)
}
(>K:AP_PANEL_ALTITUDE_ON)
(>K:AP_ATT_HOLD_OFF)
0 (>L:AP Vertical Mode Knob, number)
}
els{ 0 (>L:AltHoldDoOnce, bool) }
(L:AP Vertical Mode Knob, number) 0 == (L:Autopilot Altitude Select Switch, number) -1 == and
if{
(L:AP Altitude Setting, number) (>K:AP_ALT_VAR_SET_ENGLISH)
(>K:AP_PANEL_ALTITUDE_ON)
(>K:AP_ATT_HOLD_OFF)
}
(L:AP Vertical Mode Knob, number) 1 == (L:Autopilot Altitude Select Switch, number) -1 == and
if{
(>K:AP_PANEL_ALTITUDE_ON)
(>K:AP_ATT_HOLD_OFF)
(L:VS Wheel Setting, number) (>K:AP_VS_VAR_SET_ENGLISH)
(L:AP Altitude Setting, number) (>K:AP_ALT_VAR_SET_ENGLISH)
}
(L:AP Vertical Mode Knob, number) 0 == (L:Autopilot Altitude Select Switch, number) 0 == and
if{
(>K:AP_PANEL_ALTITUDE_OFF)
(>K:AP_ATT_HOLD_ON)
(>K:AP_WING_LEVELER_OFF)
}
(L:AP Vertical Mode Knob, number) 1 == (L:Autopilot Altitude Select Switch, number) 0 == and
if{
(>K:AP_PANEL_ALTITUDE_ON)
(>K:AP_ATT_HOLD_OFF)
(L:VS Wheel Setting, number) (>K:AP_VS_VAR_SET_ENGLISH)
}
}
Last edited: