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
ForceOnBody_B
[N] Force that the state effector applies to the Object
protected Vector3 ForceOnBody_B
Field Value
In_MassPropsMsg
Message ID for incoming body mass state
public MassPropsMessage In_MassPropsMsg
Field Value
Properties
A reference to the Dynamic Parameters
protected StateProperties Properties
Field Value
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
TorqueOnBodyPntB_B
[Nm] Torque that the state effector applies to the body about point B
protected Vector3 TorqueOnBodyPntB_B
Field Value
TorqueOnBodyPntC_B
[Nm] Torque that the state effector applies to the body about point C
protected Vector3 TorqueOnBodyPntC_B
Field 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
LinkInStates(StateProperties)
Links any state variables
public virtual void LinkInStates(StateProperties properties)
Parameters
properties
StatePropertiesThe current list of states
ModifyStates(double)
Modifies any state values after integration
public virtual void ModifyStates(double time)
Parameters
time
doubleThe 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
RegisterStates(StateProperties)
Registers any of the states to the state parameters
public virtual void RegisterStates(StateProperties properties)
Parameters
properties
StatePropertiesThe 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
doubleThe current time [s]
backSubContribution
BackSubstitutionMatricesA reference to the Matrices
sigma_BN
Vector3The current Attitude
omega_BN_B
Vector3The current Attitude rate
g_N
Vector3The 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
doubleThe current time [s]
rotAngMomPntCContr_B
Vector3A reference to the Angular Momentum Vector
rotEnergyContr
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]