Module: hingedRigidBodyStateEffector¶
This class is an instantiation of the stateEffector class and is a 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.
-
class
HingedRigidBodyStateEffector
: public StateEffector, public SysModel¶ Public Functions
-
HingedRigidBodyStateEffector
()¶ Contructor
This is the constructor, setting variables to default values
-
~HingedRigidBodyStateEffector
()¶ Destructor
This is the destructor, nothing to report here
-
void
SelfInit
()¶ This method initializes the object. It creates the module’s output messages.
- Return
void
-
void
CrossInit
()¶ This method subscribes to messages the HRB needs.
- Return
void
-
void
writeOutputStateMessages
(uint64_t CurrentClock)¶ This method takes the computed theta states and outputs them to the m messaging system.
- Return
void
- Parameters
CurrentClock
: The current simulation time (used for time stamping)
-
void
UpdateState
(uint64_t CurrentSimNanos)¶ This method is used so that the simulation will ask HRB to update messages.
- Return
void
- Parameters
CurrentSimNanos
: The current simulation time in nanoseconds
-
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
updateContributions
(double integTime, BackSubMatrices &backSubContr, Eigen::Vector3d sigma_BN, Eigen::Vector3d omega_BN_B, Eigen::Vector3d g_N)¶ Method for back-sub contributions
This method allows the HRB state effector to give its contributions to the matrices needed for the back-sub method
-
void
computeDerivatives
(double integTime, Eigen::Vector3d rDDot_BN_N, Eigen::Vector3d omegaDot_BN_B, Eigen::Vector3d sigma_BN)¶ Method for HRB to compute its derivatives
This method is used to find the derivatives for the HRB stateEffector: thetaDDot and the kinematic derivative
-
void
updateEffectorMassProps
(double integTime)¶ Method for giving the s/c the HRB mass props and prop rates
This method allows the HRB state effector to provide its contributions to the mass props and mass prop rates of the spacecraft
-
void
updateEnergyMomContributions
(double integTime, Eigen::Vector3d &rotAngMomPntCContr_B, double &rotEnergyContr, Eigen::Vector3d omega_BN_B)¶ Computing energy and momentum for HRBs
This method is for calculating the contributions of the HRB state effector to the energy and momentum of the s/c
-
void
calcForceTorqueOnBody
(double integTime, Eigen::Vector3d omega_BN_B)¶ Force and torque on s/c due to HRBs
-
void
prependSpacecraftNameToStates
()¶
Public Members
-
double
mass
¶ [kg] mass of hinged rigid body
-
double
d
¶ [m] distance from hinge point to hinged rigid body center of mass
-
double
k
¶ [N-m/rad] torsional spring constant of hinge
-
double
c
¶ [N-m-s/rad] rotational damping coefficient of hinge
-
double
thetaInit
¶ [rad] Initial hinged rigid body angle
-
double
thetaDotInit
¶ [rad/s] Initial hinged rigid body angle rate
-
std::string
nameOfThetaState
¶ Identifier for the theta state data container
-
std::string
nameOfThetaDotState
¶ Identifier for the thetaDot state data container
-
std::string
HingedRigidBodyOutMsgName
¶ state output message name
-
HingedRigidBodySimMsg
HRBoutputStates
¶ instance of messaging system message struct
-