thrFiringSchmitt#

Executive Summary#

A Schmitt trigger logic is implemented to map a desired thruster force value into a thruster on command time.

The module reads in the attitude control thruster force values for both on- and off-pulsing scenarios, and then maps this into a time which specifies how long a thruster should be on. The thruster configuration data is read in through a separate input message in the reset method. The Schmitt trigger allows for an upper and lower bound where the thruster is either turned on or off. 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 Schmitt Trigger 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/moduleImgThrFiringSchmitt.svg

Figure 1: thrFiringSchmitt() 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 ThrFiringSchmitt#

class ThrFiringSchmitt : public SysModel#

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

double getLevelOn() const#

Get the ON duty cycle fraction.

Returns:

double The current ON duty cycle fraction.

void setLevelOn(double level)#

Set the ON duty cycle fraction.

Parameters:

level – The new ON duty cycle fraction to set.

double getLevelOff() const#

Get the OFF duty cycle fraction.

Returns:

double The current OFF duty cycle fraction.

void setLevelOff(double level)#

Set the OFF duty cycle fraction.

Parameters:

level – The new OFF duty cycle fraction to set.

double getThrMinFireTime() const#

Get the minimum ON time for thrusters.

Returns:

double The current minimum ON time in seconds.

void setThrMinFireTime(double time)#

Set the minimum ON time for thrusters.

Parameters:

time – The new minimum ON time in seconds to set.

uint32_t getBaseThrustState() const#

Get the base thrust state.

Returns:

int The current base thrust state (0 for off-pulsing, 1 for on-pulsing).

void setBaseThrustState(uint32_t state)#

Set the base thrust state.

Parameters:

state – The new base thrust state to set (0 for off-pulsing, 1 for on-pulsing).

Public Members

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.