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
In_BodyMassMsg
Message for incoming body mass state from the root object.
public MassMessage? In_BodyMassMsg
Field Value
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
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
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
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
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
doubleThe current computation time
rDDot_BN_N
Vector3The acceleration in the body frame
omegaDot_BN_B
Vector3The derivative of the attitude rate in the body frame
sigma_BN
Vector3The 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
StateModelThe 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
doubleThe 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
doubleThe current time [s]
backSubMatrices
BackSubstitutionMatricesA reference to the Matrices
sigma_BN
Vector3The current Attitude
omega_BN_B
Vector3The current Attitude rate
g_N
Vector3The 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
doubleThe current time [s]
angMomentum_B
Vector3A reference to the Angular Momentum Vector
energy
doubleA reference to the Energy Contribution value
omega_BN_B
Vector3The current Attitude Rate of the body
WriteOutputStateMessages(double)
Writes state messages after integration
public virtual void WriteOutputStateMessages(double time)
Parameters
time
doubleThe current time [s]