Skip to main content

Abstract Class: AbstractAutothrottle

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

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:583

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:498


airspeedIndex

protected readonly airspeedIndex: Subscribable<number>

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


airspeedSimVar

protected airspeedSimVar: string

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


hysteresis

protected readonly hysteresis: number

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


hysteresisRecord

protected readonly hysteresisRecord: Record<AutothrottleThrottleIndex, number>

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


iasLookahead

protected readonly iasLookahead: Subscribable<number>

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


iasSmoother

protected readonly iasSmoother: MultiExpSmoother

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


isAlive

protected isAlive: boolean = true

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


isOverpowerProtActive

protected readonly isOverpowerProtActive: Subject<boolean>

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


isOverspeedProtActive

protected readonly isOverspeedProtActive: Subject<boolean>

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


isUnderspeedProtActive

protected readonly isUnderspeedProtActive: Subject<boolean>

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


lastIasLookahead

protected lastIasLookahead: number

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


lastSmoothedIas

protected lastSmoothedIas: undefined | number = undefined

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


latchOptions

protected readonly latchOptions: Readonly<Required<AutothrottleLatchOptions>>

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


latchRecord

protected readonly latchRecord: Record<AutothrottleThrottleIndex, number>

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


lookaheadIasSmoother

protected readonly lookaheadIasSmoother: MultiExpSmoother

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


machToKiasSmoother

protected readonly machToKiasSmoother: ExpSmoother

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


maxIas

protected readonly maxIas: Subject<number>

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


maxMach

protected readonly maxMach: Subject<number>

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


maxPower

protected readonly maxPower: Subject<number>

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


maxThrottlePos

protected readonly maxThrottlePos: Subject<number>

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


minIas

protected readonly minIas: Subject<number>

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


minMach

protected readonly minMach: Subject<number>

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


minThrottlePos

protected readonly minThrottlePos: Subject<number>

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


overpowerPids

protected readonly overpowerPids: Record<AutothrottleThrottleIndex, PidController>

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


overspeedAccelCorrectionSmoother?

protected readonly optional overspeedAccelCorrectionSmoother: MultiExpSmoother

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


overspeedAccelTargetFunc?

protected readonly optional overspeedAccelTargetFunc: AutothrottleAccelTargetFunc

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


overspeedChangeThreshold

protected readonly overspeedChangeThreshold: number

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


overspeedPid

protected readonly overspeedPid: PidController

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


overspeedPowerCorrectionTransformer

protected readonly overspeedPowerCorrectionTransformer: AutothrottlePowerCorrectionTransformer

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


overspeedProtAccelTargetSmoother?

protected readonly optional overspeedProtAccelTargetSmoother: ExpSmoother

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


overspeedProtPowerTargetSmoother

protected readonly overspeedProtPowerTargetSmoother: ExpSmoother

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


overspeedSpeedTarget

protected readonly overspeedSpeedTarget: AutothrottleSpeedTargetRecord

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


powerCommand

protected readonly powerCommand: PowerCommand

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


powerLookahead

protected readonly powerLookahead: Subscribable<number>

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


prevOverspeedSpeedTarget

protected readonly prevOverspeedSpeedTarget: AutothrottleSpeedTargetRecord

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


prevSelectedSpeedTarget

protected readonly prevSelectedSpeedTarget: AutothrottleSpeedTargetRecord

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


prevUnderspeedSpeedTarget

protected readonly prevUnderspeedSpeedTarget: AutothrottleSpeedTargetRecord

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


publisher

protected readonly publisher: Publisher<AutothrottleEvents>

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


selectedIas

protected readonly selectedIas: Subject<number>

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


selectedMach

protected readonly selectedMach: Subject<number>

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


selectedPower

protected readonly selectedPower: Subject<number>

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


selectedPowerPids

protected readonly selectedPowerPids: Record<AutothrottleThrottleIndex, PidController>

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


selectedSpeedAccelCorrectionSmoother?

protected readonly optional selectedSpeedAccelCorrectionSmoother: MultiExpSmoother

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


selectedSpeedAccelTargetFunc?

protected readonly optional selectedSpeedAccelTargetFunc: AutothrottleAccelTargetFunc

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


selectedSpeedAccelTargetSmoother?

protected readonly optional selectedSpeedAccelTargetSmoother: ExpSmoother

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


selectedSpeedIsMach

protected readonly selectedSpeedIsMach: Subject<boolean>

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


selectedSpeedPid

protected readonly selectedSpeedPid: PidController

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


selectedSpeedPowerCorrectionTransformer

protected readonly selectedSpeedPowerCorrectionTransformer: AutothrottlePowerCorrectionTransformer

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


selectedSpeedPowerTargetSmoother

protected readonly selectedSpeedPowerTargetSmoother: ExpSmoother

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


selectedSpeedTarget

protected readonly selectedSpeedTarget: AutothrottleSpeedTargetRecord

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


selectedThrottlePos

protected readonly selectedThrottlePos: Subject<number>

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


shouldTargetAccel

protected readonly shouldTargetAccel: boolean

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


speedCommand

protected readonly speedCommand: SpeedCommand

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


speedTargetChangeThreshold

protected readonly speedTargetChangeThreshold: number

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


targetMode

protected readonly targetMode: Subject<AutothrottleTargetMode>

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


throttles

protected readonly throttles: AutothrottleThrottle[]

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


throttleSpeedSmoothers

protected readonly throttleSpeedSmoothers: Record<AutothrottleThrottleIndex, ExpSmoother>

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


underspeedAccelCorrectionSmoother?

protected readonly optional underspeedAccelCorrectionSmoother: MultiExpSmoother

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


underspeedAccelTargetFunc?

protected readonly optional underspeedAccelTargetFunc: AutothrottleAccelTargetFunc

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


underspeedChangeThreshold

protected readonly underspeedChangeThreshold: number

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


underspeedPid

protected readonly underspeedPid: PidController

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


underspeedPowerCorrectionTransformer

protected readonly underspeedPowerCorrectionTransformer: AutothrottlePowerCorrectionTransformer

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


underspeedProtAccelTargetSmoother?

protected readonly optional underspeedProtAccelTargetSmoother: ExpSmoother

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


underspeedProtPowerTargetSmoother

protected readonly underspeedProtPowerTargetSmoother: ExpSmoother

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


underspeedSpeedTarget

protected readonly underspeedSpeedTarget: AutothrottleSpeedTargetRecord

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


useIndicatedMach

protected readonly useIndicatedMach: boolean

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


ALL_THROTTLE_INDEXES

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

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

Methods

calculatePowerTargetThrottlePos()

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

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

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:1134

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:731

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:1668

Destroys this autothrottle.

Returns

void


setMaxIas()

setMaxIas(ias): void

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

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:835

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:851

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:859

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:827

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:843

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:867

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:763

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:747

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:787

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:795

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:803

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:779

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:811

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:876

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:771

Sets this autothrottle's target mode.

Parameters

ParameterTypeDescription
modeAutothrottleTargetModeA target mode.

Returns

void


setUnderspeedProtActive()

setUnderspeedProtActive(val): void

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

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:889

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:905

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:962

Updates this autothrottle.

Returns

void


createPidFromParams()

protected static createPidFromParams(params): PidController

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

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:1692

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.