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.
Figure 1: rwNullSpace()
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 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.
-
void reset(uint64_t callTime) override#