Autobrake internals: Difference between revisions

From FlightGear wiki
Jump to navigation Jump to search
No edit summary
(Add example code)
Line 1: Line 1:
This page discusses the operation of the generic, C++ based autobrake system. It is assumed the reader is familiar with the general concepts of autobrakes as discussed [[Autobrake|here]].
This page discusses the operation of the generic, C++ based autobrake system. It is assumed the reader is familiar with the general concepts of autobrakes as discussed [[Autobrake|here]].


===Concepts===
==Concepts==
The code is built around the notion of steps, with 0 being off/disarmed, and positive steps (up to a limit) corresponding to increasing braking severity. Steps above and below this range are ignored; the Boeing rotary selectors use 0 to represent 'disarmed' and '-1' to represent 'off'. RTO mode is defined as a step value; it can be negative, positive, and overlap the valid step range out be outside it. Overlapping the range is typically used to make the 'maximum' step automatically select RTO mode if activated while on the ground (eg, in Airbuses)


The code is built around the notion of steps, with 0 being off/disarmed, and positive steps (up to a limit) corresponding to increasing braking severity. Steps above and below this range are ignored; the Boeing rotary selectors use 0 to represent 'disarmed' and '-1' to represent 'off'. RTO mode is defined as a step value; it can be negative, positive, and overlap the valid step range out be outside it. Overlapping the range is typically used to make the 'maximum' step automatically select RTO mode if activated while on the ground (eg, in Airbuses)
==Aircraft Integration==
The <tt>-set.xml</tt> file should specify the configuration parameters as discussed below. An autopilot controller should be created to relate the target-decel-ft-sec property to the fcs-brake property, using gains that are appropriate to the aircraft.


===Aircraft Integration===
For [[YASim]] based aircraft, the gear section of the FDM XML file should be updated to use /autopilot/autobrake/left-brake-output and right-brake-output to control the wheel brakes as appropriate. For [[JSBSim]] aircraft, this connection is done in <tt>JSBSim.cxx</tt>.


The <tt>-set.xml</tt> file should specify the configuration parameters as discussed below. An autopilot controller should be created to relate the target-decel-ft-sec property to the fcs-brake property, using gains that are appropriate to the aircraft.
<sim>
  <systems>
  <autopilot>
    <name>Autobrake System</name>
    <path>Aircraft/.../Systems/autobrake.xml</path>
  </autopilot>
  </systems>


For YASim based aircraft, the gear section of the FDM XML file should be updated to use /autopilot/autobrake/left-brake-output and right-brake-output to control the wheel brakes as appropriate. (For JSBSim aircraft, this connection is done in <tt>JSBSim.cxx</tt>)
Where <tt>Aircraft/.../Systems/autobrake.xml</tt> can be a copy of <tt>777-200/Systems/777-autobrake.xml</tt> (for YASim aircraft) or <tt>747-400/Systems/autobrake.xml</tt> (for JSBSim).


===Configuration===
===Configuration===
Real-world devices differ in their interface and behaviour; this is expressed in FlightGear via the <tt>config</tt> properties. If you encounter a real-world device that can't be modelled by the current code, ask on the developer mailing list; support can probably be added. There is also a possibility of adding Nasal callbacks to allow scripted behaviour for various conditions.
</sim>
<autopilot>
  <autobrake>
  <step type="int">-1</step> <!-- OFF on selection -->
  <config>
    <idle-throttle type="double">0.10</idle-throttle>
    <pilot-input type="double">0.25</pilot-input> <!-- 25% input cancel AB operation -->
  </config>
  </autobrake>
<autopilot>
* '''step:'''
* '''idle-throttle:''' the value of <tt>/controls/engine[n]/throttle</tt> at which the system may engage.
* '''pilot-input:''' input from pilot's brake pedals at which the system should disarm. This has (almost) no effect on keyboard-simmers, but can make quite a difference for pedal-simmers.


Real-world devices differ in their interface and behaviour; this is expressed in FlightGear via the <tt>config</tt> properties. If you encounter a real-world device that can't be modelled by the current code, ask on the developer mailing list; support can probably be added. There is also a possibility of adding Nasal callbacks to allow scripted behaviour for various conditions.
==Related content==
* [[Autobrake]]

Revision as of 16:25, 24 October 2010

This page discusses the operation of the generic, C++ based autobrake system. It is assumed the reader is familiar with the general concepts of autobrakes as discussed here.

Concepts

The code is built around the notion of steps, with 0 being off/disarmed, and positive steps (up to a limit) corresponding to increasing braking severity. Steps above and below this range are ignored; the Boeing rotary selectors use 0 to represent 'disarmed' and '-1' to represent 'off'. RTO mode is defined as a step value; it can be negative, positive, and overlap the valid step range out be outside it. Overlapping the range is typically used to make the 'maximum' step automatically select RTO mode if activated while on the ground (eg, in Airbuses)

Aircraft Integration

The -set.xml file should specify the configuration parameters as discussed below. An autopilot controller should be created to relate the target-decel-ft-sec property to the fcs-brake property, using gains that are appropriate to the aircraft.

For YASim based aircraft, the gear section of the FDM XML file should be updated to use /autopilot/autobrake/left-brake-output and right-brake-output to control the wheel brakes as appropriate. For JSBSim aircraft, this connection is done in JSBSim.cxx.

<sim>

 <systems>
  <autopilot>
   <name>Autobrake System</name>
   <path>Aircraft/.../Systems/autobrake.xml</path>
  </autopilot>
 </systems>

Where Aircraft/.../Systems/autobrake.xml can be a copy of 777-200/Systems/777-autobrake.xml (for YASim aircraft) or 747-400/Systems/autobrake.xml (for JSBSim).

Configuration

Real-world devices differ in their interface and behaviour; this is expressed in FlightGear via the config properties. If you encounter a real-world device that can't be modelled by the current code, ask on the developer mailing list; support can probably be added. There is also a possibility of adding Nasal callbacks to allow scripted behaviour for various conditions.

</sim>

<autopilot>
 <autobrake>
  <step type="int">-1</step> 
  <config>
   <idle-throttle type="double">0.10</idle-throttle>
   <pilot-input type="double">0.25</pilot-input> 
  </config>
 </autobrake>
<autopilot>
  • step:
  • idle-throttle: the value of /controls/engine[n]/throttle at which the system may engage.
  • pilot-input: input from pilot's brake pedals at which the system should disarm. This has (almost) no effect on keyboard-simmers, but can make quite a difference for pedal-simmers.

Related content