Module: MRP_Steering

This module implements a kinematic MRP steering control whose command output is a desired body rate vector.

The module PDF Description contains further information on this module’s function, how to run it, as well as testing.


Functions

void SelfInit_MRP_Steering(MRP_SteeringConfig *configData, int64_t moduleID)

This method sets up the module output message of type RateCmdFswMsg.

Return

void

Parameters
  • configData: The configuration data associated with this module

void CrossInit_MRP_Steering(MRP_SteeringConfig *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_Steering(MRP_SteeringConfig *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

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_Steering(MRP_SteeringConfig *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

void MRPSteeringLaw(MRP_SteeringConfig *configData, double sigma_BR[3], double omega_ast[3], double omega_ast_p[3])

This method computes the MRP Steering law. A commanded body rate is returned given the MRP attitude error measure of the body relative to a reference frame. The function returns the commanded body rate, as well as the body frame derivative of this rate command.

Return

void

Parameters
  • configData: The configuration data associated with this module

  • sigma_BR: MRP attitude error of B relative to R

  • omega_ast: Commanded body rates

  • omega_ast_p: Body frame derivative of the commanded body rates

struct MRP_SteeringConfig
#include <MRP_Steering.h>

Data structure for the MRP feedback attitude control routine.

Public Members

double K1

[rad/sec] Proportional gain applied to MRP errors

double K3

[rad/sec] Cubic gain applied to MRP error in steering saturation function

double omega_max

[rad/sec] Maximum rate command of steering control

uint32_t ignoreOuterLoopFeedforward

[] Boolean flag indicating if outer feedforward term should be included

char outputDataName[MAX_STAT_MSG_LENGTH]

The name of the output message.

int32_t outputMsgID

[] ID for the outgoing body accel requests

char inputGuidName[MAX_STAT_MSG_LENGTH]

The name of the Input message.

int32_t inputGuidID

[] ID for the incoming guidance errors

BSKLogger *bskLogger

BSK Logging.