Table of Contents

Class StateEffector

Namespace
NominalSystems.Universe
Assembly
NominalSystems.Universe.dll

A State Effector is able to provide a force to rotate an object on an axis. A state effector does not adjust the position of the spacecraft, merely adjusts the internal states or rotations.

public abstract class StateEffector : PhysicalComponent
Inheritance
StateEffector
Derived
Inherited Members

Constructors

StateEffector()

protected StateEffector()

Fields

DCM_BP

[-] DCM of the spacecraft body frame B relative to primary spacecraft body frame P

protected Matrix3 DCM_BP

Field Value

Matrix3

ForceOnBody_B

[N] Force that the state effector applies to the Object

protected Vector3 ForceOnBody_B

Field Value

Vector3

In_MassPropsMsg

Message ID for incoming body mass state

public MassPropsMessage In_MassPropsMsg

Field Value

MassPropsMessage

Properties

A reference to the Dynamic Parameters

protected StateProperties Properties

Field Value

StateProperties

R_BP_P

[m] position vector of the spacecraft mody frame origin B relative to the primary spacecraft body frame P. This is used in the SpacecraftDynamics module where multiple spacecraft hubs can be a single spacecraft

protected Vector3 R_BP_P

Field Value

Vector3

TorqueOnBodyPntB_B

[Nm] Torque that the state effector applies to the body about point B

protected Vector3 TorqueOnBodyPntB_B

Field Value

Vector3

TorqueOnBodyPntC_B

[Nm] Torque that the state effector applies to the body about point C

protected Vector3 TorqueOnBodyPntC_B

Field Value

Vector3

Methods

CalculateForceTorqueOnBody(double, Vector3)

Calculates the Force and Torque of the object due to the State Effector

public virtual void CalculateForceTorqueOnBody(double time, Vector3 omega_BNB_B)

Parameters

time double

The current time [s]

omega_BNB_B Vector3

The current attitude rate

ComputeDerivatives(double, Vector3, Vector3, Vector3)

Computers the Derivatives of the Body along with the Kinematic Derivatives

public virtual void ComputeDerivatives(double time, Vector3 rDDot_BN_N, Vector3 omegaDot_BN_B, Vector3 sigma_BN)

Parameters

time double

The current computation time

rDDot_BN_N Vector3

The acceleration in the body frame

omegaDot_BN_B Vector3

The derivative of the attitude rate in the body frame

sigma_BN Vector3

The current attitude in the body frame

LinkInStates(StateProperties)

Links any state variables

public virtual void LinkInStates(StateProperties properties)

Parameters

properties StateProperties

The current list of states

ModifyStates(double)

Modifies any state values after integration

public virtual void ModifyStates(double time)

Parameters

time double

The current time [s]

ReceiveKinematicBodyData(Vector3, Matrix3)

Receives data from the kinematic body and stores the data

public virtual void ReceiveKinematicBodyData(Vector3 r_BP_P, Matrix3 dcm_BP)

Parameters

r_BP_P Vector3

The current position

dcm_BP Matrix3

The current rotation matrix

RegisterStates(StateProperties)

Registers any of the states to the state parameters

public virtual void RegisterStates(StateProperties properties)

Parameters

properties StateProperties

The current list of states

UpdateContributions(double, ref BackSubstitutionMatrices, Vector3, Vector3, Vector3)

Subsitutes in the BackSubstitutionMatrices and performs some calculations.

public virtual void UpdateContributions(double time, ref BackSubstitutionMatrices backSubContribution, Vector3 sigma_BN, Vector3 omega_BN_B, Vector3 g_N)

Parameters

time double

The current time [s]

backSubContribution BackSubstitutionMatrices

A reference to the Matrices

sigma_BN Vector3

The current Attitude

omega_BN_B Vector3

The current Attitude rate

g_N Vector3

The spacecraft local gravity vector

UpdateEnergyMomentumContributions(double, ref Vector3, ref double, Vector3)

Computes the Energy and Momentum Contributions from the Body

public virtual void UpdateEnergyMomentumContributions(double time, ref Vector3 rotAngMomPntCContr_B, ref double rotEnergyContr, Vector3 omega_BN_B)

Parameters

time double

The current time [s]

rotAngMomPntCContr_B Vector3

A reference to the Angular Momentum Vector

rotEnergyContr double

A reference to the Energy Contribution value

omega_BN_B Vector3

The current Attitude Rate of the body

WriteOutputStateMessages(double)

Writes state messages after integration

public virtual void WriteOutputStateMessages(double time)

Parameters

time double

The current time [s]