Module: MRP_PD

Attitude tracking control module using proportional/derivative MRP feedback and no RWs.

This module is similar to MRP_Feedback, 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. The module PDF Description contains further information on this module’s function, how to run it, as well as testing.


Functions

void SelfInit_MRP_PD(MRP_PDConfig *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

Return

void

Parameters
  • configData: The configuration data associated with this module

void CrossInit_MRP_PD(MRP_PDConfig *configData, int64_t moduleID)

This method performs the second stage of initialization for this module. Its primary function is to link the input messages that were created elsewhere.

Return

void

Parameters
  • configData: The configuration data associated with this module

void Update_MRP_PD(MRP_PDConfig *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.

Return

void

Parameters
  • configData: The configuration data associated with the MRP Steering attitude control

  • callTime: The clock time at which the function was called (nanoseconds)

void Reset_MRP_PD(MRP_PDConfig *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 MRP steering control

struct MRP_PDConfig
#include <MRP_PD.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

char outputDataName[MAX_STAT_MSG_LENGTH]

The name of the output message.

int32_t controlOutMsgId

[] ID for the outgoing body accel requests

char inputGuidName[MAX_STAT_MSG_LENGTH]

The name of the Input message.

int32_t guidInMsgId

[] ID for the incoming guidance errors

char inputVehicleConfigDataName[MAX_STAT_MSG_LENGTH]

The name of the Input message.

int32_t vehicleConfigDataInMsgId

[] ID for the incoming static vehicle data

BSKLogger *bskLogger

BSK Logging.