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.

../../../../../_images/moduleIOMrpPd.svg

Figure 1: mrpPD() Module I/O Illustration#

Module I/O Messages#

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:

(1)#\[{\bf L}_{r} = -K \pmb\sigma - [P] \delta\pmb\omega + [I](\dot{\pmb\omega}_{r} - [\tilde{\pmb\omega}]\pmb\omega_{r}) +[\tilde{\pmb \omega}_{r}] ] [I]\pmb\omega - \bf L\]

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 gain

  • P: the \(\pmb\omega\) tracking error proportional feedback gain

  • knownTorquePntB_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.