Module: facetDragDynamicEffector¶
Executive Summary¶
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
.
Message Connection Descriptions¶
The following table lists all the module input and output messages. The module msg variable name is set by the user from python. The msg type contains a link to the message structure definition, while the description provides information on what this message is used for.
Msg Variable Name |
Msg Type |
Description |
---|---|---|
atmoDensInMsg |
input message for atmospheric density information |
-
struct SpacecraftGeometryData¶
- #include <facetDragDynamicEffector.h>
spacecraft geometry data
-
class FacetDragDynamicEffector : public SysModel, public DynamicEffector¶
- #include <facetDragDynamicEffector.h>
faceted atmospheric drag dynamic effector
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.
- Parameters
states – dynamic parameter states
- Returns
void
-
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 Reset(uint64_t CurrentSimNanos)¶
class method
-
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.
- Parameters
CurrentSimNanos – The current simulation time in nanoseconds
- Returns
void
-
void WriteOutputMessages(uint64_t CurrentClock)¶
The DragEffector does not write output messages to the rest of the sim.
- Returns
void
-
bool ReadInputs()¶
This method is used to read the incoming density message and update the internal density/ atmospheric data.
- Returns
void
-
void addFacet(double area, double dragCoeff, Eigen::Vector3d B_normal_hat, Eigen::Vector3d B_location)¶
add a facet
- Parameters
area –
dragCoeff –
B_normal_hat –
B_location –
Public Members
-
uint64_t numFacets¶
number of facets
-
ReadFunctor<AtmoPropsMsgPayload> atmoDensInMsg¶
atmospheric density input message
-
Eigen::Vector3d v_B¶
m/s local variable to hold the inertial velocity
-
Eigen::Vector3d v_hat_B¶
class variable
-
BSKLogger bskLogger¶
BSK Logging
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
-
AtmoPropsMsgPayload atmoInData¶
-
SpacecraftGeometryData scGeometry¶
Struct to hold spacecraft facet data
-
FacetDragDynamicEffector()¶