Skip to main content

Abstract Class: AbstractAutothrottle

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:452

An abstract implementation of an autothrottle system.

The system contains a global speed controller and one power controller for each engine throttle. The speed controller commands a synced engine power target for all throttles based on over/underspeed protection and the selected speed target, if active. Each power controller commands a position for its individual throttle based on overpower protection and power target, either from the speed controller or the selected power target, if active.

Extended by

Constructors

Constructor

new AbstractAutothrottle(bus, airspeedIndex, throttleInfos, options, throttleLeverManager?): AbstractAutothrottle

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:584

Constructor.

Parameters

ParameterTypeDescription
busEventBusThe event bus.
airspeedIndexnumber | Subscribable<number>The index of the sim airspeed indicator from which this autothrottle should source airspeed data.
throttleInfosreadonly Readonly<AutothrottleThrottleInfo>[]Information on the throttles controlled by this autothrottle. Each entry in the array should describe a single unique throttle. Order does not matter.
optionsAutothrottleOptionsOptions with which to initialize this autothrottle.
throttleLeverManager?ThrottleLeverManagerThe throttle lever manager to use to request position changes for virtual throttle levers. If not defined, position changes for virtual throttle levers will be requested using key events (specifically the THROTTLE[N]_SET event).

Returns

AbstractAutothrottle

Properties

accelSmoother?

protected readonly optional accelSmoother: MultiExpSmoother

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:499


airspeedIndex

protected readonly airspeedIndex: Subscribable<number>

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:459


airspeedSimVar

protected airspeedSimVar: string

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:460


hysteresis

protected readonly hysteresis: number

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:542


hysteresisRecord

protected readonly hysteresisRecord: Record<AutothrottleThrottleIndex, number>

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:543


iasLookahead

protected readonly iasLookahead: Subscribable<number>

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:487


iasSmoother

protected readonly iasSmoother: MultiExpSmoother

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:488


isAlive

protected isAlive: boolean = true

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:570


isOverpowerProtActive

protected readonly isOverpowerProtActive: Subject<boolean>

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:466


isOverspeedProtActive

protected readonly isOverspeedProtActive: Subject<boolean>

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:464


isUnderspeedProtActive

protected readonly isUnderspeedProtActive: Subject<boolean>

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:465


lastIasLookahead

protected lastIasLookahead: number

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:490


lastSmoothedIas

protected lastSmoothedIas: undefined | number = undefined

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:491


latchOptions

protected readonly latchOptions: Readonly<Required<AutothrottleLatchOptions>>

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:539


latchRecord

protected readonly latchRecord: Record<AutothrottleThrottleIndex, number>

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:540


lookaheadIasSmoother

protected readonly lookaheadIasSmoother: MultiExpSmoother

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:489


machToKiasSmoother

protected readonly machToKiasSmoother: ExpSmoother

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:485


maxIas

protected readonly maxIas: Subject<number>

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:476


maxMach

protected readonly maxMach: Subject<number>

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:478


maxPower

protected readonly maxPower: Subject<number>

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:480


maxThrottlePos

protected readonly maxThrottlePos: Subject<number>

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:482


minIas

protected readonly minIas: Subject<number>

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:477


minMach

protected readonly minMach: Subject<number>

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:479


minThrottlePos

protected readonly minThrottlePos: Subject<number>

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:483


overpowerPids

protected readonly overpowerPids: Record<AutothrottleThrottleIndex, PidController>

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:519


overspeedAccelCorrectionSmoother?

protected readonly optional overspeedAccelCorrectionSmoother: MultiExpSmoother

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:502


overspeedAccelTargetFunc?

protected readonly optional overspeedAccelTargetFunc: AutothrottleAccelTargetFunc

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:496


overspeedChangeThreshold

protected readonly overspeedChangeThreshold: number

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:524


overspeedPid

protected readonly overspeedPid: PidController

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:516


overspeedPowerCorrectionTransformer

protected readonly overspeedPowerCorrectionTransformer: AutothrottlePowerCorrectionTransformer

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:510


overspeedProtAccelTargetSmoother?

protected readonly optional overspeedProtAccelTargetSmoother: ExpSmoother

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:506


overspeedProtPowerTargetSmoother

protected readonly overspeedProtPowerTargetSmoother: ExpSmoother

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:536


overspeedSpeedTarget

protected readonly overspeedSpeedTarget: AutothrottleSpeedTargetRecord

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:528


powerCommand

protected readonly powerCommand: PowerCommand

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:557


powerLookahead

protected readonly powerLookahead: Subscribable<number>

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:513


prevOverspeedSpeedTarget

protected readonly prevOverspeedSpeedTarget: AutothrottleSpeedTargetRecord

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:532


prevSelectedSpeedTarget

protected readonly prevSelectedSpeedTarget: AutothrottleSpeedTargetRecord

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:531


prevUnderspeedSpeedTarget

protected readonly prevUnderspeedSpeedTarget: AutothrottleSpeedTargetRecord

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:533


publisher

protected readonly publisher: Publisher<AutothrottleEvents>

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:455


selectedIas

protected readonly selectedIas: Subject<number>

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:471


selectedMach

protected readonly selectedMach: Subject<number>

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:472


selectedPower

protected readonly selectedPower: Subject<number>

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:473


selectedPowerPids

protected readonly selectedPowerPids: Record<AutothrottleThrottleIndex, PidController>

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:518


selectedSpeedAccelCorrectionSmoother?

protected readonly optional selectedSpeedAccelCorrectionSmoother: MultiExpSmoother

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:501


selectedSpeedAccelTargetFunc?

protected readonly optional selectedSpeedAccelTargetFunc: AutothrottleAccelTargetFunc

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:495


selectedSpeedAccelTargetSmoother?

protected readonly optional selectedSpeedAccelTargetSmoother: ExpSmoother

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:505


selectedSpeedIsMach

protected readonly selectedSpeedIsMach: Subject<boolean>

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:470


selectedSpeedPid

protected readonly selectedSpeedPid: PidController

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:515


selectedSpeedPowerCorrectionTransformer

protected readonly selectedSpeedPowerCorrectionTransformer: AutothrottlePowerCorrectionTransformer

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:509


selectedSpeedPowerTargetSmoother

protected readonly selectedSpeedPowerTargetSmoother: ExpSmoother

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:535


selectedSpeedTarget

protected readonly selectedSpeedTarget: AutothrottleSpeedTargetRecord

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:527


selectedThrottlePos

protected readonly selectedThrottlePos: Subject<number>

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:474


shouldTargetAccel

protected readonly shouldTargetAccel: boolean

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:493


speedCommand

protected readonly speedCommand: SpeedCommand

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:550


speedTargetChangeThreshold

protected readonly speedTargetChangeThreshold: number

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:523


targetMode

protected readonly targetMode: Subject<AutothrottleTargetMode>

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:468


throttles

protected readonly throttles: AutothrottleThrottle[]

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:462


throttleSpeedSmoothers

protected readonly throttleSpeedSmoothers: Record<AutothrottleThrottleIndex, ExpSmoother>

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:521


underspeedAccelCorrectionSmoother?

protected readonly optional underspeedAccelCorrectionSmoother: MultiExpSmoother

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:503


underspeedAccelTargetFunc?

protected readonly optional underspeedAccelTargetFunc: AutothrottleAccelTargetFunc

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:497


underspeedChangeThreshold

protected readonly underspeedChangeThreshold: number

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:525


underspeedPid

protected readonly underspeedPid: PidController

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:517


underspeedPowerCorrectionTransformer

protected readonly underspeedPowerCorrectionTransformer: AutothrottlePowerCorrectionTransformer

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:511


underspeedProtAccelTargetSmoother?

protected readonly optional underspeedProtAccelTargetSmoother: ExpSmoother

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:507


underspeedProtPowerTargetSmoother

protected readonly underspeedProtPowerTargetSmoother: ExpSmoother

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:537


underspeedSpeedTarget

protected readonly underspeedSpeedTarget: AutothrottleSpeedTargetRecord

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:529


useIndicatedMach

protected readonly useIndicatedMach: boolean

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:457


ALL_THROTTLE_INDEXES

protected readonly static ALL_THROTTLE_INDEXES: readonly [1, 2, 3, 4]

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:453

Methods

calculatePowerTargetThrottlePos()

protected calculatePowerTargetThrottlePos(throttle, speedCommand, isOverpowerProtActive, isPowerTargetActive, isThrottlePosTargetActive, dt, out): PowerCommand

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:1499

Calculates the throttle position for a specific throttle commanded by this autothrottle's power controller. The power controller incorporates the power target if active and overpower protection.

Parameters

ParameterTypeDescription
throttleAutothrottleThrottleThe throttle for which to calculate commanded throttle position.
speedCommandSpeedCommandThe engine power commanded by this autothrottle's speed controller.
isOverpowerProtActivebooleanWhether overpower protection is active.
isPowerTargetActivebooleanWhether power target is active.
isThrottlePosTargetActivebooleanWhether throttle lever position target is active.
dtnumberThe elapsed time since the last update.
outPowerCommandThe object to which to write the results.

Returns

PowerCommand

The throttle position for the specified throttle commanded by this autothrottle's power controller.


calculateSpeedTargetPower()

protected calculateSpeedTargetPower(dt, out): SpeedCommand

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:1135

Calculates the engine power for all throttles commanded by this autothrottle's speed controller. The speed controller incorporates the speed target and over-/under-speed protection if active.

Parameters

ParameterTypeDescription
dtnumberThe elapsed time since the last update.
outSpeedCommandThe object to which to write the results.

Returns

SpeedCommand

The engine power for all throttles commanded by this autothrottle's speed controller.


createThrottle()

abstract protected createThrottle(bus, info, servoSpeed, powerSmoothingConstant, powerSmoothingVelocityConstant, powerLookahead, powerLookaheadSmoothingConstant, powerLookaheadSmoothingVelocityConstant, throttleLeverManager): AutothrottleThrottle

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:732

Creates a throttle controlled by this autothrottle system.

Parameters

ParameterTypeDescription
busEventBusThe event bus.
infoAutothrottleThrottleInfoInformation describing the throttle to create.
servoSpeednumber | Accessible<number>The speed delivered by the servo controlling the throttle, in units of normalized position per second.
powerSmoothingConstantnumberThe smoothing time constant, in seconds, to use to smooth engine power data.
powerSmoothingVelocityConstantundefined | numberThe smoothing time constant, in seconds, to use to smooth estimated power velocity while smoothing engine power data. A value of zero is equivalent to no smoothing. If not defined, estimated power velocity will not be used to adjust smoothed engine power data.
powerLookaheadSubscribable<number>The lookahead time, in seconds, to use for engine power data.
powerLookaheadSmoothingConstantundefined | numberThe smoothing time constant, in seconds, to use to smooth lookahead engine power data. If not defined, defaults to the value of powerSmoothingConstant.
powerLookaheadSmoothingVelocityConstantundefined | numberThe smoothing time constant, in seconds, to use to smooth estimated power velocity while smoothing lookahead engine power data. A value of zero is equivalent to no smoothing. If not defined, estimated power velocity will not be used to adjust smoothed lookahead engine power data. If not defined, defaults to the value of powerSmoothingVelocityConstant.
throttleLeverManagerundefined | ThrottleLeverManagerThe throttle lever manager to use to request position changes for the throttle's lever.

Returns

AutothrottleThrottle

A new throttle controlled by this autothrottle system.


destroy()

destroy(): void

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:1669

Destroys this autothrottle.

Returns

void


setMaxIas()

setMaxIas(ias): void

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:820

Sets this autothrottle's maximum allowed indicated airspeed, in knots.

Parameters

ParameterTypeDescription
iasnumberAn indicated airspeed, in knots.

Returns

void


setMaxMach()

setMaxMach(mach): void

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:836

Sets this autothrottle's maximum allowed mach number.

Parameters

ParameterTypeDescription
machnumberA mach number.

Returns

void


setMaxPower()

setMaxPower(power): void

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:852

Sets this autothrottle's maximum allowed engine power.

Parameters

ParameterTypeDescription
powernumberAn engine power value.

Returns

void


setMaxThrottlePos()

setMaxThrottlePos(pos): void

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:860

Sets this autothrottle's maximum allowed normalized throttle lever position.

Parameters

ParameterTypeDescription
posnumberA normalized throttle lever position.

Returns

void


setMinIas()

setMinIas(ias): void

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:828

Sets this autothrottle's minimum allowed indicated airspeed, in knots.

Parameters

ParameterTypeDescription
iasnumberAn indicated airspeed, in knots.

Returns

void


setMinMach()

setMinMach(mach): void

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:844

Sets this autothrottle's minimum allowed mach number.

Parameters

ParameterTypeDescription
machnumberA mach number.

Returns

void


setMinThrottlePos()

setMinThrottlePos(pos): void

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:868

Sets this autothrottle's minimum allowed normalized throttle lever position.

Parameters

ParameterTypeDescription
posnumberA normalized throttle lever position.

Returns

void


setOverpowerProtActive()

setOverpowerProtActive(val): void

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:764

Sets whether this autothrottle's overpower protection is active.

Parameters

ParameterTypeDescription
valbooleanWhether overpower protection is active.

Returns

void


setOverspeedProtActive()

setOverspeedProtActive(val): void

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:748

Sets whether this autothrottle's overspeed protection is active.

Parameters

ParameterTypeDescription
valbooleanWhether overspeed protection is active.

Returns

void


setSelectedIas()

setSelectedIas(ias): void

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:788

Sets this autothrottle's selected indicated airspeed target, in knots.

Parameters

ParameterTypeDescription
iasnumberAn indicated airspeed, in knots.

Returns

void


setSelectedMach()

setSelectedMach(mach): void

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:796

Sets this autothrottle's selected mach number target.

Parameters

ParameterTypeDescription
machnumberA mach number.

Returns

void


setSelectedPower()

setSelectedPower(power): void

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:804

Sets this autothrottle's selected engine power target.

Parameters

ParameterTypeDescription
powernumberAn engine power value.

Returns

void


setSelectedSpeedIsMach()

setSelectedSpeedIsMach(val): void

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:780

Sets whether this autothrottle's selected speed target is a mach number.

Parameters

ParameterTypeDescription
valbooleanWhether the selected speed target is a mach number.

Returns

void


setSelectedThrottlePos()

setSelectedThrottlePos(pos): void

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:812

Sets this autothrottle's selected normalized throttle lever position target.

Parameters

ParameterTypeDescription
posnumberA normalized throttle lever position.

Returns

void


setServoActive()

setServoActive(index, active): void

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:877

Sets whether one of this autothrottle's throttle servos are active.

Parameters

ParameterTypeDescription
indexAutothrottleThrottleIndexThe index of the throttle servo to activate/deactivate.
activebooleanWhether the servo should be activated.

Returns

void


setTargetMode()

setTargetMode(mode): void

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:772

Sets this autothrottle's target mode.

Parameters

ParameterTypeDescription
modeAutothrottleTargetModeA target mode.

Returns

void


setUnderspeedProtActive()

setUnderspeedProtActive(val): void

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:756

Sets whether this autothrottle's underspeed protection is active.

Parameters

ParameterTypeDescription
valbooleanWhether underspeed protection is active.

Returns

void


start()

start(frequency): void

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:890

Turns this autothrottle on with a specified update frequency. If this autothrottle is already running, then it will be turned off before turning on again with the specified frequency.

Parameters

ParameterTypeDescription
frequencynumberThe frequency, in hertz, at which this autothrottle will update.

Returns

void

Throws

Error if this autothrottle has been destroyed.


stop()

stop(): void

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:906

Turns this autothrottle off.

Returns

void

Throws

Error if this autothrottle has been destroyed.


update()

protected update(): void

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:963

Updates this autothrottle.

Returns

void


createPidFromParams()

protected static createPidFromParams(params): PidController

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:1684

Creates a PID controller using a given set of parameters.

Parameters

ParameterTypeDescription
paramsAutothrottlePidParamsA set of PID parameters.

Returns

PidController

A new PID controller created using the specified parameters.


defaultPowerCorrectionTransformer()

protected static defaultPowerCorrectionTransformer(correction): number

Defined in: src/sdk/autothrottle/AbstractAutothrottle.ts:1693

A default transformation function for power target corrections which returns the correction unchanged.

Parameters

ParameterTypeDescription
correctionnumberThe raw power target correction.

Returns

number

The transformed power target correction.