WSF
WsfAero Class Referenceabstract

#include <WsfAero.hpp>

Inheritance diagram for WsfAero:
Collaboration diagram for WsfAero:

Public Member Functions

 WsfAero (const UtAtmosphere &aAtmosphere)
 ~WsfAero () override
WsfAeroClone () const override=0
virtual bool Initialize (double aSimTime, UtEntity *aPlatformPtr)
virtual void Update (double aSimTime, double aRequestedYForce=0.0, double aRequestedZForce=0.0, double aTVC_Force=0.0)
bool ProcessInput (UtInput &aInput) override
double GetDrag () const
virtual void GetECSForces (double aECSForces[3]) const
 Get the 3-D resultant aerodynamic forces in the Entity Coordinate System frame.
double GetQS () const
double GetMaximumForce () const
double LiftCurveSlope () const
 Return the partial derivative of lift coefficient with angle of attack. Assumed constant.
virtual double CalculateDrag (double aAltitude_m, double aMach, double aWeight_N) const
Public Member Functions inherited from WsfObject
 WsfObject ()
 This is the constructor for the WsfObject class.
 ~WsfObject () override
 This is the destructor for the WsfObject class.
const char * GetScriptClassName () const override
const std::string & GetType () const
WsfStringId GetTypeId () const
 Get the string ID of the 'type' of the object.
void SetType (WsfStringId aType)
const std::string & GetBaseType () const
WsfStringId GetBaseTypeId () const
const TypeListGetTypeList () const
bool IsA_TypeOf (WsfStringId aType) const
WsfObjectoperator= (const WsfObject &aRhs)
 Assignment operator.
template<typename T>
void Serialize (T &aBuff)
 For XIO (de)serialization.
const std::string & GetName () const
WsfStringId GetNameId () const
void SetName (WsfStringId aName)

Protected Member Functions

std::string GetPlatformName () const
 WsfAero (const WsfAero &aSrc)
 Copy constructor, used by Clone().
double GetDynamicPressure (double aAltitude_m, double aSpeed_mps) const
double GetMach (double aAltitude_m, double aSpeed_mps) const
double GetSpeed (double aAltitude_m, double aMach) const
WsfAerooperator= (const WsfAero &aRhs)=delete
 WsfObject (const WsfObject &aSrc)
 Copy constructor (for Clone()).

Protected Attributes

UtEntity * mEntityPtr
UtAtmosphere mAtm
double mRefArea
double mAltitude
double mDynPressure
double mSpeed
double mMach
double mDrag
double mZForce
double mYForce
double mMaximumForce
double mLiftCurveSlope
bool mDebug
bool mInitialized

Additional Inherited Members

Public Types inherited from WsfObject
typedef std::vector< WsfStringIdTypeList
 The list of types returned by GetTypeList.

Detailed Description

Base class for aerodynamics classes. A utility class for supporting platforms whose motion is influenced by aerodynamic lift, drag, and other forces.

Constructor & Destructor Documentation

◆ WsfAero() [1/2]

◆ ~WsfAero()

WsfAero::~WsfAero ( )
override

◆ WsfAero() [2/2]

WsfAero::WsfAero ( const WsfAero & aSrc)
protected

Member Function Documentation

◆ CalculateDrag()

virtual double WsfAero::CalculateDrag ( double aAltitude_m,
double aMach,
double aWeight_N ) const
inlinevirtual

Reimplemented in WsfAero2D.

◆ Clone()

WsfAero * WsfAero::Clone ( ) const
overridepure virtual

Return a copy of this object. Must be implemented by all derived types. If cloning is impossible, a WsfUncloneableException should be thrown.

Implements WsfObject.

Implemented in WsfAero2D.

References Initialize(), and WsfAero().

Referenced by WsfBallisticMissileLaunchComputer::BallisticModel::BallisticModel(), and Fires::BallisticPath::BallisticPath().

◆ GetDrag()

double WsfAero::GetDrag ( ) const
inline

Get the aerodynamic drag force. A positive value opposes the direction of motion.

References mDrag.

◆ GetDynamicPressure()

double WsfAero::GetDynamicPressure ( double aAltitude_m,
double aSpeed_mps ) const
protected

References mAtm.

Referenced by WsfAero2D::CalculateDrag(), and Update().

◆ GetECSForces()

virtual void WsfAero::GetECSForces ( double aECSForces[3]) const
inlinevirtual

Get the 3-D resultant aerodynamic forces in the Entity Coordinate System frame.

References mDrag, mYForce, and mZForce.

Referenced by WsfGuidedMover::ComputeAeroForces().

◆ GetMach()

double WsfAero::GetMach ( double aAltitude_m,
double aSpeed_mps ) const
protected

References mAtm.

Referenced by Update().

◆ GetMaximumForce()

double WsfAero::GetMaximumForce ( ) const
inline

Return the maximum possible applicable force that could have been applied as calculated by the last call to Update().

This is the force that is used to limit the requested forces.

References mMaximumForce.

◆ GetPlatformName()

std::string WsfAero::GetPlatformName ( ) const
protected

◆ GetQS()

double WsfAero::GetQS ( ) const
inline

References mDynPressure, and mRefArea.

◆ GetSpeed()

double WsfAero::GetSpeed ( double aAltitude_m,
double aMach ) const
protected

References mAtm.

Referenced by WsfAero2D::CalculateDrag().

◆ Initialize()

bool WsfAero::Initialize ( double aSimTime,
UtEntity * aPlatformPtr )
virtual

Initialize the aerodynamics object.

Returns
'True' if object successfully initialized, or 'false' if an error occurred.

Reimplemented in WsfAero2D.

References GetPlatformName(), mEntityPtr, mInitialized, and mRefArea.

Referenced by WsfBallisticMissileLaunchComputer::BallisticModel::BallisticModel(), Clone(), and WsfAero2D::Initialize().

◆ LiftCurveSlope()

double WsfAero::LiftCurveSlope ( ) const
inline

Return the partial derivative of lift coefficient with angle of attack. Assumed constant.

References mLiftCurveSlope.

◆ operator=()

WsfAero & WsfAero::operator= ( const WsfAero & aRhs)
protecteddelete

References WsfAero().

◆ ProcessInput()

bool WsfAero::ProcessInput ( UtInput & aInput)
overridevirtual

Recognize and process aerodynamics input.

Returns
'True' if it is a command I recognize, 'false' if not.

Reimplemented from WsfObject.

Reimplemented in WsfAero2D.

References mAtm, mDebug, mLiftCurveSlope, and mRefArea.

Referenced by WsfAero2D::ProcessInput().

◆ Update()

void WsfAero::Update ( double aSimTime,
double aRequestedYForce = 0.0,
double aRequestedZForce = 0.0,
double aTVC_Force = 0.0 )
virtual

Update the aerodynamics objects. Update() is the primary method of the class. Using the internal platform pointer, calculate aerodynamic data in the body frame for this motion state (as appropriate): The input (desired) body-frame forces may not be physically attainable under the current conditions, so the input values are merely requests, and may not be satisfied.

Parameters
aSimTimeCurrent simulation time.
aRequestedYForceDesired body-frame lateral force (positive to the right).
aRequestedZForceDesired body-frame vertical force (positive down).
aTVC_ForceThrust vector control force
Note
In the base class implementation, roll angles are zero!

Reimplemented in WsfAero2D.

References GetDynamicPressure(), GetMach(), mAltitude, mDynPressure, mEntityPtr, mMach, mSpeed, mYForce, and mZForce.

Referenced by WsfGuidedMover::ComputeAeroForces(), and WsfAero2D::Update().

Member Data Documentation

◆ mAltitude

double WsfAero::mAltitude
protected

Referenced by Update(), WsfAero(), and WsfAero().

◆ mAtm

UtAtmosphere WsfAero::mAtm
protected

◆ mDebug

bool WsfAero::mDebug
protected

◆ mDrag

double WsfAero::mDrag
protected

◆ mDynPressure

double WsfAero::mDynPressure
protected

◆ mEntityPtr

UtEntity* WsfAero::mEntityPtr
protected

Entity to which this Aero applies. Position, velocity, pitch, roll and yaw rates, etc. will be obtained from this platform data.

Referenced by GetPlatformName(), Initialize(), Update(), WsfAero(), and WsfAero().

◆ mInitialized

bool WsfAero::mInitialized
protected

◆ mLiftCurveSlope

double WsfAero::mLiftCurveSlope
protected

◆ mMach

double WsfAero::mMach
protected

◆ mMaximumForce

double WsfAero::mMaximumForce
protected

◆ mRefArea

double WsfAero::mRefArea
protected

◆ mSpeed

double WsfAero::mSpeed
protected

Referenced by Update(), WsfAero(), and WsfAero().

◆ mYForce

double WsfAero::mYForce
protected

◆ mZForce

double WsfAero::mZForce
protected

The documentation for this class was generated from the following files:
Copyrights Multiple, All Rights Reserved