Module: mtbMomentumManagementSimple
Executive Summary
This module computes the desired Body frame torque to dump the momentum in the reaction wheels.
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.
Msg Variable Name |
Msg Type |
Description |
---|---|---|
rwParamsInMsg |
input message for RW parameters |
|
rwSpeedsInMsg |
input message for RW speeds |
|
tauMtbRequestOutMsg |
output message containing control torque in the Body frame |
Detailed Module Description
The following presents the mathematics for computing the torque to be requested by the magnetic torque rods to drive the net momentum of the reaction wheels to zero.
Assume the spacecraft contains \(N_{\text{RW}}\) RWs. The net RW angular momentum is given by
where \(\hat{\bf g}_{s_i}\) is the RW spin axis in the Body frame \(\cal B\), \(J_{s_i}\) is the spin axis RW inertia and \(\Omega_i\) is the RW speed rate about this axis. The desired torque to be produced by the torque rods to drive the wheel momentum to zero is then given by the proportional control law
where \(K_p\) is the proportional feedback gain with units of 1/s.
User Guide
See the example script scenarioMtbMomentumManagementSimple for an illustration on how to use this module. Note that the user must set the momentum dumping gain value Kp
to a postive value and GsMatrix_B
must be specified in column major format.
Functions
-
void SelfInit_mtbMomentumManagementSimple(mtbMomentumManagementSimpleConfig *configData, int64_t moduleID)
This method initializes the output messages for this module.
- Parameters:
configData – The configuration data associated with this module
moduleID – The module identifier
- Returns:
void
-
void Update_mtbMomentumManagementSimple(mtbMomentumManagementSimpleConfig *configData, uint64_t callTime, int64_t moduleID)
This routine calculate the current desired torque in the Body frame to meet the momentum target.
- Parameters:
configData – The configuration data associated with the module
callTime – The clock time at which the function was called (nanoseconds)
moduleID – The module identifier
- Returns:
void
-
void Reset_mtbMomentumManagementSimple(mtbMomentumManagementSimpleConfig *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. Check if required input messages are connected.
- Parameters:
configData – The configuration data associated with the module
callTime – [ns] time the method is called
moduleID – The module identifier
- Returns:
void
-
struct mtbMomentumManagementSimpleConfig
- #include <mtbMomentumManagementSimple.h>
Top level structure for the sub-module routines.
Public Members
-
double Kp
[1/s] momentum feedback gain
-
RWArrayConfigMsg_C rwParamsInMsg
input message containing RW parameters
-
RWSpeedMsg_C rwSpeedsInMsg
input message containingRW speeds
-
CmdTorqueBodyMsg_C tauMtbRequestOutMsg
output message containing control torque in the Body frame
-
RWArrayConfigMsgPayload rwConfigParams
configuration for RW’s
-
double Gs[3 * MAX_EFF_CNT]
transformation from the wheelspace to the Body frame
-
BSKLogger *bskLogger
BSK Logging.
-
double Kp