Module: thrFiringRemainder¶
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.
Functions
-
void
SelfInit_thrFiringRemainder
(thrFiringRemainderConfig *configData, int64_t moduleID)¶ This method initializes the configData for this module. It creates a single output message of type THRArrayOnTimeCmdIntMsg.
- Return
void
- Parameters
configData
: The configuration data associated with this module
-
void
CrossInit_thrFiringRemainder
(thrFiringRemainderConfig *configData, int64_t moduleID)¶ This method performs the second stage of initialization for this module. It links to 2 required input messages of type THRArrayCmdForceFswMsg and THRArrayConfigFswMsg.
- Return
void
- Parameters
configData
: The configuration data associated with this module
-
void
Update_thrFiringRemainder
(thrFiringRemainderConfig *configData, uint64_t callTime, int64_t moduleID)¶ This method maps the input thruster command forces into thruster on times using a remainder tracking logic.
- Return
void
- Parameters
configData
: The configuration data associated with the modulecallTime
: The clock time at which the function was called (nanoseconds)
-
void
Reset_thrFiringRemainder
(thrFiringRemainderConfig *configData, uint64_t callTime, int64_t moduleID)¶ 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.
- Return
void
- Parameters
configData
: The configuration data associated with the module
-
struct
thrFiringRemainderConfig
¶ - #include <thrFiringRemainder.h>
Top level structure for the sub-module routines.
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-pusling (1)
-
uint64_t
prevCallTime
¶ callTime from previous function call
-
char
thrForceInMsgName
[MAX_STAT_MSG_LENGTH
]¶ The name of the Input message.
-
int32_t
thrForceInMsgId
¶ ID for the incoming message.
-
char
onTimeOutMsgName
[MAX_STAT_MSG_LENGTH
]¶ The name of the output message, onTimeOutMsgName.
-
int32_t
onTimeOutMsgId
¶ ID for the outgoing message.
-
char
thrConfInMsgName
[MAX_STAT_MSG_LENGTH
]¶ The name of the thruster cluster Input message.
-
int32_t
thrConfInMsgId
¶ ID for the incoming Thruster configuration data.
-
double