|
WSF
|
#include <WsfAero.hpp>


Public Member Functions | |
| WsfAero (const UtAtmosphere &aAtmosphere) | |
| ~WsfAero () override | |
| WsfAero * | Clone () 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 TypeList & | GetTypeList () const |
| bool | IsA_TypeOf (WsfStringId aType) const |
| WsfObject & | operator= (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 |
| WsfAero & | operator= (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< WsfStringId > | TypeList |
| The list of types returned by GetTypeList. | |
Base class for aerodynamics classes. A utility class for supporting platforms whose motion is influenced by aerodynamic lift, drag, and other forces.
| WsfAero::WsfAero | ( | const UtAtmosphere & | aAtmosphere | ) |
References mAltitude, mAtm, mDebug, mDrag, mDynPressure, mEntityPtr, mInitialized, mLiftCurveSlope, mMach, mMaximumForce, mRefArea, mSpeed, mYForce, mZForce, and WsfObject::WsfObject().
Referenced by WsfAero2D::Clone(), Clone(), operator=(), WsfAero(), WsfAero2D::WsfAero2D(), and WsfAero2D::WsfAero2D().
|
override |
|
protected |
Copy constructor, used by Clone().
References mAltitude, mAtm, mDebug, mDrag, mDynPressure, mEntityPtr, mInitialized, mLiftCurveSlope, mMach, mMaximumForce, mRefArea, mSpeed, mYForce, mZForce, WsfAero(), and WsfObject::WsfObject().
|
inlinevirtual |
Reimplemented in WsfAero2D.
|
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().
|
inline |
Get the aerodynamic drag force. A positive value opposes the direction of motion.
References mDrag.
|
protected |
References mAtm.
Referenced by WsfAero2D::CalculateDrag(), and Update().
|
inlinevirtual |
Get the 3-D resultant aerodynamic forces in the Entity Coordinate System frame.
References mDrag, mYForce, and mZForce.
Referenced by WsfGuidedMover::ComputeAeroForces().
|
protected |
|
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.
|
protected |
References WsfObject::GetName(), and mEntityPtr.
Referenced by Initialize(), and WsfAero2D::SetInternalValues().
|
inline |
References mDynPressure, and mRefArea.
|
protected |
References mAtm.
Referenced by WsfAero2D::CalculateDrag().
|
virtual |
Initialize the aerodynamics object.
Reimplemented in WsfAero2D.
References GetPlatformName(), mEntityPtr, mInitialized, and mRefArea.
Referenced by WsfBallisticMissileLaunchComputer::BallisticModel::BallisticModel(), Clone(), and WsfAero2D::Initialize().
|
inline |
Return the partial derivative of lift coefficient with angle of attack. Assumed constant.
References mLiftCurveSlope.
|
overridevirtual |
Recognize and process aerodynamics input.
Reimplemented from WsfObject.
Reimplemented in WsfAero2D.
References mAtm, mDebug, mLiftCurveSlope, and mRefArea.
Referenced by WsfAero2D::ProcessInput().
|
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.
| aSimTime | Current simulation time. |
| aRequestedYForce | Desired body-frame lateral force (positive to the right). |
| aRequestedZForce | Desired body-frame vertical force (positive down). |
| aTVC_Force | Thrust vector control force |
Reimplemented in WsfAero2D.
References GetDynamicPressure(), GetMach(), mAltitude, mDynPressure, mEntityPtr, mMach, mSpeed, mYForce, and mZForce.
Referenced by WsfGuidedMover::ComputeAeroForces(), and WsfAero2D::Update().
|
protected |
Referenced by GetDynamicPressure(), GetMach(), GetSpeed(), ProcessInput(), WsfAero(), and WsfAero().
|
protected |
Referenced by ProcessInput(), WsfAero2D::SetInternalValues(), WsfAero2D::Update(), WsfAero(), and WsfAero().
|
protected |
Referenced by GetDrag(), GetECSForces(), WsfAero2D::Update(), WsfAero(), and WsfAero().
|
protected |
Referenced by GetQS(), WsfAero2D::Update(), Update(), WsfAero(), and WsfAero().
|
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().
|
protected |
Referenced by WsfAero2D::Initialize(), Initialize(), WsfAero(), and WsfAero().
|
protected |
Referenced by LiftCurveSlope(), ProcessInput(), WsfAero(), and WsfAero().
|
protected |
Referenced by WsfAero2D::CalcCd0(), WsfAero2D::Update(), Update(), WsfAero(), and WsfAero().
|
protected |
Referenced by GetMaximumForce(), WsfAero2D::Update(), WsfAero(), and WsfAero().
|
protected |
Referenced by WsfAero2D::CalculateDrag(), GetQS(), Initialize(), ProcessInput(), WsfAero2D::Update(), WsfAero(), and WsfAero().
|
protected |
Referenced by GetECSForces(), WsfAero2D::Update(), Update(), WsfAero(), and WsfAero().
|
protected |
Referenced by GetECSForces(), WsfAero2D::Update(), Update(), WsfAero(), and WsfAero().