James Turner <[EMAIL PROTECTED]> said: > > On Tuesday, June 11, 2002, at 02:34 am, Jim Wilson wrote: > > > Not a problem...give me a day or two to get things together. Probably > > there > > won't be as much changed as there will be added, but some of the > > "settings" > > need to be exposed in the property tree. > > yeah, this is basically what I was expecting, The current auto-pilot > code is a bit hard-coded to use the radio stack for NAV modes, for > example, we need a general course deviation or heading deviation (once > we decide which) input, and then a NAV/GPS toggle on the panels, I guess. >
Here is a basic run down of autopilot function. This will cover the three axes which are possible and configuration for a given aircraft will specify which of the three axes are supported and which functions are supportable. They will be the basis for the FGAutopilot class (along with any suggestions and corrections of course). Armed vs. Active modes: Active modes are the only ones that affect control surfaces. Armed modes select an impending active mode that may or may not get triggered, depending on if the condition for that mode is satisfied. Note that if you have armed for a higher altitude but have the aircraft set maintain pitch down, you will continue to descend and never trigger the armed altitude hold mode. Note that often a flight computer can ensure that an armed mode is reachable by coordinating multiple settings, but the autopilot by itself does not guarantee this. AXIS 1) Lateral control modes: Active modes: a. Wing Leveler (WL) uses ailerons to maintain 0 degrees of roll. b. Heading Hold (HDG) uses ailerons to maintain current heading. c. Heading NAV (HDG-NAV1, HDG-NAV2) only activated from arm mode (see below). Armed modes: c. Heading Select (HDG-SEL) uses ailerons to turn toward heading bug (or setting from FMC). Switches to active Heading Hold when target reached. Changing heading bug after Heading Hold is active requires initiating HDG-SEL again (won't automatically go there like it does now). d. Heading NAV Arm (HDG-NAV1-ARM, HDG-NAV2-ARM) Maintain HDG (Heading Hold) or Wing Leveler (WL) until radial is intercepted. Upon interception, automatically switch to active HDG-NAV1 or HDG-NAV2. Note that on ILS this will be synonymous with APR ARM and APR mode which will also arm for GS. AXIS 2) Vertical control modes: Active modes: a. Altitude Hold (ALT-HLD) maintain altitude using elevator trim. b. Pitch Angle (PITCH) maintain aircraft pitch angle to setting using elevator trim. Change in pitch angle is limited to 1 degree per second. c. Speed (SPD) maintain aircraft speed setting by varying pitch angle via elevator trim. Change in pitch angle is limited to 1 degree per second. d. Glide slope (GS-NAV1, GS-NAV2) only activated from arm mode (see below). e. Vertical Speed (VERT-SPD) apply elevator to a preset climb rate. Armed Modes: e. Altitude Arm (ALT-ARM) maintain vertical mode (PITCH or SPD) until selected altitude is reached (within 100 ft), at which point automatically activate ALT-HLD for the selected altitude. f. Glide-slope Arm (GS-NAV1-ARM, GS-NAV2-ARM) maintain current active vertical control mode (probably exclusively ALT-HLD) until GS intercepted. Upon interception switch to active Glide-slope (GS-NAV1, GS-NAV2). Note that APR ARM is synonymous with this mode and will also arm for LNAV radial. AXIS 3) Yaw damper: a. The goal is to reduce slip-skid to zero. Currently a proportional value is applied to the rudder based on the aileron movement value. The first pass will probably see this simple logic applied. At some point I'll test the slip-skid value and apply rudder to reduce it. Engage: Upon engagement the autopilot will begin processing any preselected modes (limited to one Arm and one Active mode per axis at a time). If no mode is preselected then vertical will default to PITCH and lateral will default to HDG-HLD. It may be desirable to have these defaults configurable, since some autopilots may default to either ALT HLD for vertical or WL for lateral. Disengage: The autopilot will be able to disengage. Certain conditions will require it. Suggestions on how to specify conditions would be welcome. Note that the current autopilot will reduce pitch to prevent a stall (as "min climb" is approached). I believe that the more correct behavior would be to disengage once airspeed reaches a certain minimum. Some aircraft have other automated stall prevention measures (e.g. automatic nose dropping on aircraft that are incapable of stall recovery), but those involve separate systems that go beyond the scope of typical autopilot functionality. Notes: The current autopilot supports some degree of throttle control...not sure if this should be included or if it belongs in a separate class. In any case thrust control gets involved with some aircraft. A variety of flight management modes should be configurable with these basic autopilot functions. For example if the Boeing "FL CH" mode is selected on an FMC then the FMC can command the autopilot for "ALT ARM" and "SPD", and until a thrust computer class is developed, set the throttle controls with an approximation for throttle in climb or descent mode. This is the second time I've outlined autopilot functions, but what I'm striving for here is to actually outline how the class methods will be constructed, and the way that the modes will interact. Now is the time to set me straight if something doesn't look right, or looks too inflexible :-) Best, Jim _______________________________________________ Flightgear-devel mailing list [EMAIL PROTECTED] http://mail.flightgear.org/mailman/listinfo/flightgear-devel
