nHingedRigidBodyStateEffector#
Executive Summary#
This class is an instantiation of the stateEffector class and is a N-hinged rigid body effector. This effector is a rigid body attached to the hub through a torsional spring and damper that approximates a flexible appendage. See Allard, Schaub, and Piggott paper: General Hinged Solar Panel Dynamics Approximating First-Order Spacecraft Flexing for a detailed description of this model. A hinged rigid body has 2 states: theta and thetaDot
The module
PDF Description
contains further information on this module’s function,
how to run it, as well as testing.
Message Connection Descriptions#
This state effector has no input or output messages.
Class NHingedRigidBodyStateEffector#
-
class NHingedRigidBodyStateEffector : public StateEffector, public SysModel#
NHingedRigidBodyStateEffector class.
Public Functions
-
inline void addHingedPanel(HingedPanel NewPanel)#
class method
-
NHingedRigidBodyStateEffector()#
— Contructor
This is the constructor, setting variables to default values
-
~NHingedRigidBodyStateEffector()#
— Destructor
This is the destructor, nothing to report here
-
double HeaviFunc(double cond)#
— Heaviside function used for matrix contributions
Method for defining the Heaviside function for the EOMs */
-
void WriteOutputMessages(uint64_t CurrentClock)#
This method takes the computed theta states and outputs them to the messaging system.
- Parameters:
CurrentClock – The current simulation time (used for time stamping)
- Returns:
void
-
void updateState(uint64_t currentSimNanos)#
This method is used so that the simulation will ask HRB to update messages.
- Parameters:
currentSimNanos – The current simulation time in nanoseconds
- Returns:
void
-
void registerStates(DynParamManager &statesIn)#
— Method for registering the HRB states
This method allows the HRB state effector to register its states: theta and thetaDot with the dyn param manager
-
void linkInStates(DynParamManager &states)#
— Method for getting access to other states
This method allows the HRB state effector to have access to the hub states and gravity
-
void updateEffectorMassProps(double integTime)#
— Method for stateEffector to give mass contributions
This method allows the HRB state effector to provide its contributions to the mass props and mass prop rates of the spacecraft
-
void updateContributions(double integTime, BackSubMatrices &backSubContr, Eigen::Vector3d sigma_BN, Eigen::Vector3d omega_BN_B, Eigen::Vector3d g_N)#
— Back-sub contributions
This method allows the HRB state effector to give its contributions to the matrices needed for the back-sub method
-
void updateEnergyMomContributions(double integTime, Eigen::Vector3d &rotAngMomPntCContr_B, double &rotEnergyContr, Eigen::Vector3d omega_BN_B)#
— Energy and momentum calculations
This method is for calculating the contributions of the HRB state effector to the energy and momentum of the s/c
-
void computeDerivatives(double integTime, Eigen::Vector3d rDDot_BN_N, Eigen::Vector3d omegaDot_BN_B, Eigen::Vector3d sigma_BN)#
— Method for each stateEffector to calculate derivatives
This method is used to find the derivatives for the HRB stateEffector: thetaDDot and the kinematic derivative
-
void readInputMessages()#
— method to read input messages
This method reads necessary input messages
- Returns:
void
Public Members
-
std::string nameOfThetaState#
— Identifier for the theta state data container
-
std::string nameOfThetaDotState#
— Identifier for the thetaDot state data container
-
Eigen::Vector3d r_HB_B#
[m] vector pointing from body frame origin to the first Hinge location
-
Eigen::Matrix3d rTilde_HB_B#
— Tilde matrix of rHB_B
-
Eigen::Matrix3d dcm_HB#
— DCM from body frame to hinge frame
-
BSKLogger bskLogger#
— BSK Logging
-
inline void addHingedPanel(HingedPanel NewPanel)#