thrFiringRemainder#

Executive Summary#

A thruster force message is read in and converted to a thruster on-time output message. The module ensures the requested on-time is at least as large as the thruster’s minimum on time. If not then the on-time is zeroed, but the unimplemented thrust time is kept as a remainder calculation. If these add up to reach the minimum on time, then a thruster pulse is requested. If the thruster on time is larger than the control period, then an on-time that is 1.1 times the control period is requested. More information can be found in the PDF Description. The paper Steady-State Attitude and Control Effort Sensitivity Analysis of Discretized Thruster Implementations includes a detailed discussion on the Remainder Trigger algorithm and compares it to other thruster firing methods.

Message Connection Descriptions#

The following table lists all the module input and output messages. The module msg connection is set by the user from python. The msg type contains a link to the message structure definition, while the description provides information on what this message is used for.

../../../../../_images/moduleImgThrFiringRemainder.svg

Figure 1: rwNullSpace() Module I/O Illustration#

Module I/O Messages#

Msg Variable Name

Msg Type

Description

thrForceInMsg

THRArrayCmdForceMsgPayload

thruster force input message

onTimeOutMsg

THRArrayOnTimeCmdMsgPayload

thruster on-time output message

thrConfInMsg

THRArrayConfigMsgPayload

Thruster array configuration input message

Class ThrFiringRemainder#

class ThrFiringRemainder : public SysModel#

Top level structure for the sub-module routines.

Public Functions

void reset(uint64_t callTime) override#

This method performs a complete reset of the module. Local module variables that retain time varying states between function calls are reset to their default values.

Parameters:

callTime – The clock time at which the function was called (nanoseconds)

Returns:

void

void updateState(uint64_t callTime) override#

This method maps the input thruster command forces into thruster on times using a remainder tracking logic.

Parameters:

callTime – The clock time at which the function was called (nanoseconds)

Returns:

void

Public Members

double pulseRemainder[MAX_EFF_CNT]#

[-] Unimplemented thrust pulses (number of minimum pulses)

double thrMinFireTime#

[s] Minimum fire time

int numThrusters#

[-] The number of thrusters available on vehicle

double maxThrust[MAX_EFF_CNT]#

[N] Max thrust

int baseThrustState#

[-] Indicates on-pulsing (0) or off-pulsing (1)

double defaultControlPeriod#

[s] Default control period used for first call

uint64_t prevCallTime#

callTime from previous function call

ReadFunctor<THRArrayCmdForceMsgPayload> thrForceInMsg#

The name of the Input message.

Message<THRArrayOnTimeCmdMsgPayload> onTimeOutMsg#

The name of the output message, onTimeOutMsg.

ReadFunctor<THRArrayConfigMsgPayload> thrConfInMsg#

The name of the thruster cluster Input message.

BSKLogger bskLogger = {}#

BSK Logging.