Table of Contents

Class StateEffector

Namespace
NominalSystems.Universe
Assembly
NominalSystems.Universe.dll

[Nominal] 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 class StateEffector : PhysicalObject
Inheritance
StateEffector
Derived
Extension Methods

Constructors

StateEffector()

Default constructor

protected StateEffector()

Fields

Force_B

Force that the state effector applies to the body (B) frame.

[Unit(UnitType.NEWTON)]
[ReadOnly]
[Metadata(DisplayName = "Body Force")]
public Vector3 Force_B

Field Value

Vector3

In_BodyMassMsg

Message for incoming body mass state from the root object.

public MassMessage? In_BodyMassMsg

Field Value

MassMessage

Torque_LB_B

Torque that the state effector applies to the body about the body frame (B).

[Unit(UnitType.NEWTON_METRE)]
[ReadOnly]
[Metadata(DisplayName = "Body Torque")]
public Vector3 Torque_LB_B

Field Value

Vector3

Torque_LC_B

Torque that the state effector applies to the body about the center of mass (C).

[Unit(UnitType.NEWTON_METRE)]
[ReadOnly]
[Metadata(DisplayName = "Body Center Torque", IsAdvanced = true)]
public Vector3 Torque_LC_B

Field Value

Vector3

Properties

StateProperties

A reference to the state model which should be connected up when the link all effectors are done.

protected StateModel? StateProperties { get; }

Property Value

StateModel

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

LinkStateProperties(StateModel?)

Links and registers any of the states from the state model that is associated with the root object.

public virtual void LinkStateProperties(StateModel? properties)

Parameters

properties StateModel

The model that contains the list of states to fetch

ModifyStates(double)

Modifies any state values after integration

public virtual void ModifyStates(double time)

Parameters

time double

The current time [s]

UpdateBackContributions(double, ref BackSubstitutionMatrices, Vector3, Vector3, Vector3)

Substitutes in the Back Substitution Matrices and performs some calculations.

public virtual void UpdateBackContributions(double time, ref BackSubstitutionMatrices backSubMatrices, Vector3 sigma_BN, Vector3 omega_BN_B, Vector3 g_N)

Parameters

time double

The current time [s]

backSubMatrices 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

UpdateEnergyContributions(double, ref Vector3, ref double, Vector3)

Computes the Energy and Momentum Contributions from the Body

public virtual void UpdateEnergyContributions(double time, ref Vector3 angMomentum_B, ref double energy, Vector3 omega_BN_B)

Parameters

time double

The current time [s]

angMomentum_B Vector3

A reference to the Angular Momentum Vector

energy 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]