thrusterPlatformState#

Executive Summary#

This module simulates receives the measured tip and tilt angles of the thruster platform, together with the thruster configuration information expressed in platform-frame coordinates. The purpose of this module is to output the thruster configuration information in body-frame coordinates, at any instant in time, given the measured platform states (tip-and-tilt angles).

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.

Module I/O Messages#

Msg Variable Name

Msg Type

Description

thrusterConfigFInMsg

THRConfigMsgPayload

Input thruster configuration message containing the thrust direction vector and magnitude in platform frame coordinates. The entry rThrust_B here is the position of the thrust application point, with respect to the origin of the platform frame, in platform-frame coordinates (\({}^\mathcal{F}\boldsymbol{r}_{T/F}\)).

hingedRigidBody1InMsg

HingedRigidBodyMsgPayload

Input message containing the current tip angle and tip rate of the platform frame \(\mathcal{F}\) with respect to the mount frame \(\mathcal{M}\).

hingedRigidBody2InMsg

HingedRigidBodyMsgPayload

Input message containing the current tilt angle and tilt rate of the platform frame \(\mathcal{F}\) with respect to the mount frame \(\mathcal{M}\).

thrusterConfigBOutMsg

THRConfigMsgPayload

Output thruster configuration message containing the thrust direction vector and magnitude in body frame coordinates, as a function of tip and tilt angles. The entry rThrust_B here is the position of the thrust application point, with respect to the origin of the body frame, in body-frame coordinates (\({}^\mathcal{B}\boldsymbol{r}_{T/B}\)).

Detailed Module Description#

This module reads the tip and tilt angles from the spinningBodyTwoDOFStateEffector that simulates the platform. These angles allow to define the direction cosine matrix \([\mathcal{FM}]\) that describes the rotation between the platform frame \(\mathcal{F}\) with respect to the mount frame \(\mathcal{M}\). Accounting for the known offsets between the two frames, as well as the offset between the thruster application point and the origin of the frame \(\mathcal{F}\), this module outputs the thrust direction vector in body-frame coordinates \({}^\mathcal{B}\hat{t}\) and the position of the thrust application point with respect to the origin of the body frame \({}^\mathcal{B}r_{T/B}\).

A more detailed description of the thruster-platform assembly can be found in R. Calaon, L. Kiner, C. Allard and H. Schaub, “Momentum Management of a Spacecraft equipped with a Dual-Gimballed Electric Thruster” and in thrusterPlatformReference.

User Guide#

The required module configuration is:

platformState = thrusterPlatformState.thrusterPlatformState()
platformState.modelTag = "platformState"
platformState.sigma_MB = sigma_MB
platformState.r_BM_M = r_BM_M
platformState.r_FM_F = r_FM_F
scSim.AddModelToTaskAddModelToTask(simTaskName, platformState)

The module is configurable with the following parameters:

Module Parameters#

Parameter

Default

Description

sigma_MB

[0, 0, 0]

relative rotation between body-fixed frames \(\mathcal{M}\) and \(\mathcal{B}\)

r_BM_M

[0, 0, 0]

relative position of point \(B\) with respect to point \(M\), in \(\mathcal{M}\)-frame coordinates

r_FM_F

[0, 0, 0]

relative position of point \(F\) with respect to point \(M\), in \(\mathcal{F}\)-frame coordinates

Class ThrusterPlatformState#

class ThrusterPlatformState : public SysModel#

Top level structure for the sub-module routines.

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 updates the platformAngles message based on the updated information about the system center of mass

Parameters:

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

Returns:

void

Public Members

double sigma_MB[3]#

orientation of the M frame w.r.t. the B frame

double r_BM_M[3]#

position of B frame origin w.r.t. M frame origin, in M frame coordinates

double r_FM_F[3]#

position of F frame origin w.r.t. M frame origin, in F frame coordinates

double K#

momentum dumping time constant [1/s]

ReadFunctor<THRConfigMsgPayload> thrusterConfigFInMsg#

input thruster configuration msg

ReadFunctor<HingedRigidBodyMsgPayload> hingedRigidBody1InMsg#

output msg containing theta1 reference and thetaDot1 reference

ReadFunctor<HingedRigidBodyMsgPayload> hingedRigidBody2InMsg#

output msg containing theta2 reference and thetaDot2 reference

Message<THRConfigMsgPayload> thrusterConfigBOutMsg#

output msg containing the thruster configuration infor in B-frame

BSKLogger bskLogger = {}#

BSK Logging.