Skip to main content

Class: AbstractAutothrottle

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.

Hierarchy

Constructors

constructor

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

Constructor.

Parameters

NameTypeDescription
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

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:431

Properties

accelSmoother

Protected Optional Readonly accelSmoother: MultiExpSmoother

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:368


airspeedIndex

Protected Readonly airspeedIndex: Subscribable<number>

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:328


airspeedSimVar

Protected airspeedSimVar: string

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:329


hysteresis

Protected Readonly hysteresis: number

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:394


hysteresisRecord

Protected Readonly hysteresisRecord: Record<AutothrottleThrottleIndex, number>

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:395


iasLookahead

Protected Readonly iasLookahead: Subscribable<number>

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:356


iasSmoother

Protected Readonly iasSmoother: MultiExpSmoother

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:357


isAlive

Protected isAlive: boolean = true

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:417


isOverpowerProtActive

Protected Readonly isOverpowerProtActive: Subject<boolean>

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:335


isOverspeedProtActive

Protected Readonly isOverspeedProtActive: Subject<boolean>

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:333


isUnderspeedProtActive

Protected Readonly isUnderspeedProtActive: Subject<boolean>

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:334


lastIasLookahead

Protected lastIasLookahead: number

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:359


lastOverspeedIas

Protected lastOverspeedIas: undefined | number = undefined

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:387


lastSmoothedIas

Protected lastSmoothedIas: undefined | number = undefined

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:360


lastTargetIas

Protected lastTargetIas: undefined | number = undefined

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:386


lastUnderspeedIas

Protected lastUnderspeedIas: undefined | number = undefined

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:388


lookaheadIasSmoother

Protected Readonly lookaheadIasSmoother: MultiExpSmoother

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:358


machToKiasSmoother

Protected Readonly machToKiasSmoother: ExpSmoother

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:354


maxIas

Protected Readonly maxIas: Subject<number>

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:345


maxMach

Protected Readonly maxMach: Subject<number>

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:347


maxPower

Protected Readonly maxPower: Subject<number>

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:349


maxThrottlePos

Protected Readonly maxThrottlePos: Subject<number>

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:351


minIas

Protected Readonly minIas: Subject<number>

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:346


minMach

Protected Readonly minMach: Subject<number>

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:348


minThrottlePos

Protected Readonly minThrottlePos: Subject<number>

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:352


overpowerPids

Protected Readonly overpowerPids: Record<AutothrottleThrottleIndex, PidController>

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:380


overspeedAccelTargetFunc

Protected Optional Readonly overspeedAccelTargetFunc: (iasError: number, targetIas: number, effectiveIas: number) => number

Type declaration

▸ (iasError, targetIas, effectiveIas): number

Parameters
NameType
iasErrornumber
targetIasnumber
effectiveIasnumber
Returns

number

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:365


overspeedChangeThreshold

Protected Readonly overspeedChangeThreshold: number

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:383


overspeedPid

Protected Readonly overspeedPid: PidController

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:377


overspeedProtAccelTargetSmoother

Protected Optional Readonly overspeedProtAccelTargetSmoother: ExpSmoother

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:371


overspeedProtPowerTargetSmoother

Protected Readonly overspeedProtPowerTargetSmoother: ExpSmoother

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:391


powerCommand

Protected Readonly powerCommand: PowerCommand

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:409


powerLookahead

Protected Readonly powerLookahead: Subscribable<number>

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:374


publisher

Protected Readonly publisher: Publisher<AutothrottleEvents>

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:324


selectedIas

Protected Readonly selectedIas: Subject<number>

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:340


selectedMach

Protected Readonly selectedMach: Subject<number>

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:341


selectedPower

Protected Readonly selectedPower: Subject<number>

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:342


selectedPowerPids

Protected Readonly selectedPowerPids: Record<AutothrottleThrottleIndex, PidController>

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:379


selectedSpeedAccelTargetFunc

Protected Optional Readonly selectedSpeedAccelTargetFunc: (iasError: number, targetIas: number, effectiveIas: number) => number

Type declaration

▸ (iasError, targetIas, effectiveIas): number

Parameters
NameType
iasErrornumber
targetIasnumber
effectiveIasnumber
Returns

number

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:364


selectedSpeedAccelTargetSmoother

Protected Optional Readonly selectedSpeedAccelTargetSmoother: ExpSmoother

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:370


selectedSpeedIsMach

Protected Readonly selectedSpeedIsMach: Subject<boolean>

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:339


selectedSpeedPid

Protected Readonly selectedSpeedPid: PidController

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:376


selectedSpeedPowerTargetSmoother

Protected Readonly selectedSpeedPowerTargetSmoother: ExpSmoother

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:390


selectedThrottlePos

Protected Readonly selectedThrottlePos: Subject<number>

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:343


shouldTargetAccel

Protected Readonly shouldTargetAccel: boolean

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:362


speedCommand

Protected Readonly speedCommand: SpeedCommand

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:402


speedTargetChangeThreshold

Protected Readonly speedTargetChangeThreshold: number

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:382


targetMode

Protected Readonly targetMode: Subject<AutothrottleTargetMode>

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:337


throttles

Protected Readonly throttles: AutothrottleThrottle[]

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:331


underspeedAccelTargetFunc

Protected Optional Readonly underspeedAccelTargetFunc: (iasError: number, targetIas: number, effectiveIas: number) => number

Type declaration

▸ (iasError, targetIas, effectiveIas): number

Parameters
NameType
iasErrornumber
targetIasnumber
effectiveIasnumber
Returns

number

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:366


underspeedChangeThreshold

Protected Readonly underspeedChangeThreshold: number

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:384


underspeedPid

Protected Readonly underspeedPid: PidController

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:378


underspeedProtAccelTargetSmoother

Protected Optional Readonly underspeedProtAccelTargetSmoother: ExpSmoother

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:372


underspeedProtPowerTargetSmoother

Protected Readonly underspeedProtPowerTargetSmoother: ExpSmoother

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:392


useIndicatedMach

Protected Readonly useIndicatedMach: boolean

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:326


ALL_THROTTLE_INDEXES

Static Protected Readonly ALL_THROTTLE_INDEXES: readonly [1, 2, 3, 4]

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:322

Methods

calculatePowerTargetThrottlePos

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

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

NameTypeDescription
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.

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:1182


calculateSpeedTargetPower

calculateSpeedTargetPower(dt, out): SpeedCommand

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

NameTypeDescription
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.

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:885


createThrottle

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

Creates a throttle controlled by this autothrottle system.

Parameters

NameTypeDescription
busEventBusThe event bus.
infoAutothrottleThrottleInfoInformation describing the throttle to create.
servoSpeednumberThe 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.

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:559


destroy

destroy(): void

Destroys this autothrottle.

Returns

void

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:1318


setMaxIas

setMaxIas(ias): void

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

Parameters

NameTypeDescription
iasnumberAn indicated airspeed, in knots.

Returns

void

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:647


setMaxMach

setMaxMach(mach): void

Sets this autothrottle's maximum allowed mach number.

Parameters

NameTypeDescription
machnumberA mach number.

Returns

void

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:663


setMaxPower

setMaxPower(power): void

Sets this autothrottle's maximum allowed engine power.

Parameters

NameTypeDescription
powernumberAn engine power value.

Returns

void

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:679


setMaxThrottlePos

setMaxThrottlePos(pos): void

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

Parameters

NameTypeDescription
posnumberA normalized throttle lever position.

Returns

void

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:687


setMinIas

setMinIas(ias): void

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

Parameters

NameTypeDescription
iasnumberAn indicated airspeed, in knots.

Returns

void

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:655


setMinMach

setMinMach(mach): void

Sets this autothrottle's minimum allowed mach number.

Parameters

NameTypeDescription
machnumberA mach number.

Returns

void

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:671


setMinThrottlePos

setMinThrottlePos(pos): void

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

Parameters

NameTypeDescription
posnumberA normalized throttle lever position.

Returns

void

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:695


setOverpowerProtActive

setOverpowerProtActive(val): void

Sets whether this autothrottle's overpower protection is active.

Parameters

NameTypeDescription
valbooleanWhether overpower protection is active.

Returns

void

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:591


setOverspeedProtActive

setOverspeedProtActive(val): void

Sets whether this autothrottle's overspeed protection is active.

Parameters

NameTypeDescription
valbooleanWhether overspeed protection is active.

Returns

void

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:575


setSelectedIas

setSelectedIas(ias): void

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

Parameters

NameTypeDescription
iasnumberAn indicated airspeed, in knots.

Returns

void

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:615


setSelectedMach

setSelectedMach(mach): void

Sets this autothrottle's selected mach number target.

Parameters

NameTypeDescription
machnumberA mach number.

Returns

void

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:623


setSelectedPower

setSelectedPower(power): void

Sets this autothrottle's selected engine power target.

Parameters

NameTypeDescription
powernumberAn engine power value.

Returns

void

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:631


setSelectedSpeedIsMach

setSelectedSpeedIsMach(val): void

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

Parameters

NameTypeDescription
valbooleanWhether the selected speed target is a mach number.

Returns

void

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:607


setSelectedThrottlePos

setSelectedThrottlePos(pos): void

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

Parameters

NameTypeDescription
posnumberA normalized throttle lever position.

Returns

void

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:639


setServoActive

setServoActive(index, active): void

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

Parameters

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

Returns

void

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:704


setTargetMode

setTargetMode(mode): void

Sets this autothrottle's target mode.

Parameters

NameTypeDescription
modeAutothrottleTargetModeA target mode.

Returns

void

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:599


setUnderspeedProtActive

setUnderspeedProtActive(val): void

Sets whether this autothrottle's underspeed protection is active.

Parameters

NameTypeDescription
valbooleanWhether underspeed protection is active.

Returns

void

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:583


start

start(frequency): void

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

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

Returns

void

Throws

Error if this autothrottle has been destroyed.

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:717


stop

stop(): void

Turns this autothrottle off.

Returns

void

Throws

Error if this autothrottle has been destroyed.

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:733


update

update(): void

Updates this autothrottle.

Returns

void

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:785


createPidFromParams

createPidFromParams(params): PidController

Creates a PID controller using a given set of parameters.

Parameters

NameTypeDescription
paramsAutothrottlePidParamsA set of PID parameters.

Returns

PidController

A new PID controller created using the specified parameters.

Defined in

src/sdk/autothrottle/AbstractAutothrottle.ts:1333