Module: mrpPD
Executive Summary
This module provides a MRP based PD attitude control module. It is similar to Module: mrpFeedback, but without the RW or the integral feedback option. The feedback control is able to asymptotically track a reference attitude if there are no unknown dynamics and the attitude control torque is implemented with a thruster set.
Message Connection Descriptions
The following table lists all the module input and output messages. The module msg variable name 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 |
---|---|---|
cmdTorqueOutMsg |
Commanded external torque output message |
|
vehConfigInMsg |
Vehicle configuration input message |
|
guidInMsg |
Vehicle configuration input message |
Detailed Module Description
This attitude feedback module using the MRP feedback control related to the control in section 8.4.1 in Analytical Mechanics of Space Systems:
Note that this control solution creates an external control torque which must be produced with a cluster of thrusters. No reaction wheel information is used here. Further, the feedback control component is a simple proportional and derivative feedback formulation. As shown in Analytical Mechanics of Space Systems, this control can asymptotically track a general reference trajectory given by the reference frame \(\cal R\).
Module Assumptions and Limitations
This control assumes the spacecraft is rigid and that the inertia tensor does not vary with time.
User Guide
The following parameters must be set for the module:
K
: the MRP proportional feedback gainP
: the \(\pmb\omega\) tracking error proportional feedback gainknownTorquePntB_B
: (Optional) the known external torque vector \({}^{B}{\bf L}\). The default value is a zero vector.
Functions
-
void SelfInit_mrpPD(MrpPDConfig *configData, int64_t moduleID)
This method initializes the configData for this module. It checks to ensure that the inputs are sane and then creates the output message
- Parameters:
configData – The configuration data associated with this module
moduleID – The module identifier
- Returns:
void
-
void Update_mrpPD(MrpPDConfig *configData, uint64_t callTime, int64_t moduleID)
This method takes the attitude and rate errors relative to the Reference frame, as well as the reference frame angular rates and acceleration, and computes the required control torque Lr.
- Parameters:
configData – The configuration data associated with the MRP Steering attitude control
callTime – The clock time at which the function was called (nanoseconds)
moduleID – The module identifier
- Returns:
void
-
void Reset_mrpPD(MrpPDConfig *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.
- Parameters:
configData – The configuration data associated with the MRP steering control
callTime – [ns] Time the method is called
moduleID – The module identifier
- Returns:
void
-
struct MrpPDConfig
- #include <mrpPD.h>
Module configuration message definition.
Public Members
-
double K
[rad/sec] Proportional gain applied to MRP errors
-
double P
[N*m*s] Rate error feedback gain applied
-
double knownTorquePntB_B[3]
[N*m] known external torque in body frame vector components
-
double ISCPntB_B[9]
[kg m^2] Spacecraft Inertia
-
CmdTorqueBodyMsg_C cmdTorqueOutMsg
commanded torque output message
-
AttGuidMsg_C guidInMsg
attitude guidance input message
-
VehicleConfigMsg_C vehConfigInMsg
vehicle configuration input message
-
BSKLogger *bskLogger
BSK Logging.
-
double K