dragDynamicEffector¶
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-accelerated drag models.
-
struct
DragBaseData¶ - #include <dragDynamicEffector.h>
Container for basic drag parameters - the spacecraft’s atmosphere-relative velocity, its projected area, and its drag coefficient.
-
class
DragDynamicEffector: public SysModel, public DynamicEffector¶ Public Functions
-
DragDynamicEffector()¶
-
~DragDynamicEffector()¶ 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
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
cannonballDrag()¶ This method implements a simple “cannnonball” (attitude-independent) drag model.
-
void
updateDragDir()¶ This method updates the internal drag direction based on the spacecraft velocity vector.
-
void
setDensityMessage(std::string newDensMessage)¶ This method is used to set the input density message produced by some atmospheric model.
- Return
void
Public Members
-
DragBaseData
coreParams¶ Struct used to hold drag parameters
-
std::string
atmoDensInMsgName¶ message used to read command inputs
message used to read spacecraft attitude
-
std::string
modelType¶ String used to set the type of model used to compute drag
-