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.
Figure 1: thrFiringSchmitt()
Module I/O Illustration#
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.
-
void reset(uint64_t callTime) override#