mrpPD#
Executive Summary#
This module provides a MRP based PD attitude control module. It is similar to 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.
Figure 1: mrpPD()
Module I/O Illustration#
Msg Variable Name |
Msg Type |
Description |
---|---|---|
cmdTorqueOutMsg |
CmdTorqueBodyMsgPayload |
Commanded external torque output message |
vehConfigInMsg |
VehicleConfigMsgPayload |
Vehicle configuration input message |
guidInMsg |
VehicleConfigMsgPayload |
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.
Class MrpPD#
-
class MrpPD : public SysModel#
Module configuration message definition.
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 – [ns] Time the method is called
- Returns:
void
-
void updateState(uint64_t callTime) override#
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:
callTime – The clock time at which the function was called (nanoseconds)
- Returns:
void
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
-
Message<CmdTorqueBodyMsgPayload> cmdTorqueOutMsg#
commanded torque output message
-
ReadFunctor<AttGuidMsgPayload> guidInMsg#
attitude guidance input message
-
ReadFunctor<VehicleConfigMsgPayload> vehConfigInMsg#
vehicle configuration input message
-
BSKLogger bskLogger = {}#
BSK Logging.
-
void reset(uint64_t callTime) override#