Module: facetDragDynamicEffector¶
Drag dynamics class used to compute drag effects on spacecraft bodies
This class is used to implement drag dynamic effects on spacecraft using a variety of simple or complex models, which will include
cannonball (attitude-independent) drag, single flat-plate drag, faceted drag models, and an interface to full-CAD GPU-accellerated
drag models.
For more information see the
PDF Description
.
-
struct
SpacecraftGeometryData
¶
-
class
FacetDragDynamicEffector
: public SysModel, public DynamicEffector¶ Public Functions
-
FacetDragDynamicEffector
()¶
-
~FacetDragDynamicEffector
()¶ The destructor.
-
void
linkInStates
(DynParamManager &states)¶ This method is used to link the dragEffector to the hub attitude and velocity, which are required for calculating drag forces and torques.
- Return
void
- Parameters
currentTime
: The current simulation time converted to a double
-
void
computeForceTorque
(double integTime)¶ This method computes the body forces and torques for the dragEffector in a simulation loop, selecting the model type based on the settable attribute “modelType.”
-
void
SelfInit
()¶ This method currently does very little.
- Return
void
-
void
CrossInit
()¶ This method is used to connect the input density message to the drag effector. It sets the message ID based on what it finds for the input string.
- Return
void
-
void
Reset
(uint64_t CurrentSimNanos)¶
-
void
UpdateState
(uint64_t CurrentSimNanos)¶ This method is called to update the local atmospheric conditions at each timestep. Naturally, this means that conditions are held piecewise-constant over an integration step.
- Return
void
- Parameters
CurrentSimNanos
: The current simulation time in nanoseconds
-
void
WriteOutputMessages
(uint64_t CurrentClock)¶ The DragEffector does not write output messages to the rest of the sim.
- Return
void
-
bool
ReadInputs
()¶ This method is used to read the incoming density message and update the internal density/ atmospheric data.
- Return
void
-
void
setDensityMessage
(std::string newDensMessage)¶ This method is used to set the input density message produced by some atmospheric model.
- Return
void
Public Members
-
uint64_t
numFacets
¶
-
std::string
atmoDensInMsgName
¶ message used to read command inputs
message used to read command inputs
Private Functions
-
void
plateDrag
()¶ This method WILL implement a more complex flat-plate aerodynamics model with attitude dependence and lift forces.
-
void
updateDragDir
()¶ This method updates the internal drag direction based on the spacecraft velocity vector.
Private Members
-
int64_t
densInMsgId
¶ Message ID for incoming data
-
AtmoPropsSimMsg
atmoInData
¶
-
SpacecraftGeometryData
scGeometry
¶ Struct to hold spacecraft facet data
-