|
WSF
|
#include <WsfAero2D.hpp>


Classes | |
| struct | DragPoint |
Public Member Functions | |
| WsfAero2D (const UtAtmosphere &aAtmosphere) | |
| Constructor. | |
| ~WsfAero2D () override | |
| WsfAero * | Clone () const override |
| bool | Initialize (double aSimTime, UtEntity *aPlatformPtr) override |
| void | Update (double aSimTime, double aRequestedYForce=0.0, double aRequestedZForce=0.0, double aTVC_Force=0.0) override |
| bool | ProcessInput (UtInput &aInput) override |
| double | CalculateDrag (double aAltitude_m, double aMach, double aWeight_N) const override |
| Public Member Functions inherited from WsfAero | |
| WsfAero (const UtAtmosphere &aAtmosphere) | |
| ~WsfAero () 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. | |
| 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 Types | |
| enum | DragSpecType { cINCOMPRESSIBLE , cPARAMETRIC , cCURVE_POINTS } |
Protected Member Functions | |
| WsfAero2D (const WsfAero2D &aSrc) | |
| Copy constructor, used by Clone(). | |
| WsfAero2D & | operator= (const WsfAero2D &aRhs)=delete |
| bool | SetInternalValues (double aSimTime) |
| void | CalcCd0 () |
| void | CalcCdTotal () |
| Protected Member Functions inherited from WsfAero | |
| 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 | |
| double | mAR |
| double | mE |
| double | mClMax |
| double | mK |
| double | mCdZeroSubsonic |
| double | mCdZeroSupersonic |
| double | mMachBeginCdRise |
| double | mMachEndCdRise |
| double | mSubsonicCdSlope |
| double | mSupersonicCdSlope |
| double | mMachMaxSupersonic |
| std::vector< DragPoint > | mCd0s |
| double | mCl |
| double | mCd0 |
| double | mCdTotal |
| DragSpecType | mType |
| std::vector< DragPoint >::size_type | mIndex |
| double | mLateralForce |
| Protected Attributes inherited from WsfAero | |
| 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. | |
A simple 2-D Aerodynamics class, supporting platforms whose motion is influenced by aerodynamic lift and drag.
ASSUMPTIONS:
|
protected |
| WsfAero2D::WsfAero2D | ( | const UtAtmosphere & | aAtmosphere | ) |
Constructor.
References cINCOMPRESSIBLE, mAR, mCd0, mCd0s, mCdTotal, mCdZeroSubsonic, mCdZeroSupersonic, mCl, mClMax, mE, mIndex, mK, mLateralForce, mMachBeginCdRise, mMachEndCdRise, mMachMaxSupersonic, mSubsonicCdSlope, mSupersonicCdSlope, mType, and WsfAero::WsfAero().
Referenced by Clone(), operator=(), and WsfAero2D().
|
override |
|
protected |
Copy constructor, used by Clone().
References mAR, mCd0, mCd0s, mCdTotal, mCdZeroSubsonic, mCdZeroSupersonic, mCl, mClMax, mE, mIndex, mK, mLateralForce, mMachBeginCdRise, mMachEndCdRise, mMachMaxSupersonic, mSubsonicCdSlope, mSupersonicCdSlope, mType, WsfAero::WsfAero(), and WsfAero2D().
|
protected |
References mCd0, and WsfAero::mMach.
Referenced by CalcCdTotal(), and operator=().
|
protected |
References CalcCd0(), cINCOMPRESSIBLE, mCd0, mCdTotal, mCl, mK, and mType.
Referenced by operator=(), and Update().
|
overridevirtual |
Reimplemented from WsfAero.
References WsfAero::GetDynamicPressure(), WsfAero::GetSpeed(), and WsfAero::mRefArea.
|
overridevirtual |
Return a copy of this object. Must be implemented by all derived types. If cloning is impossible, a WsfUncloneableException should be thrown.
Implements WsfAero.
References WsfAero::WsfAero(), and WsfAero2D().
|
overridevirtual |
Initialize the aerodynamics object. Method will be used to place drag values into increasing order by Mach number, and facilitate run-time interpolations.
Reimplemented from WsfAero.
References WsfAero::Initialize(), WsfAero::mInitialized, and SetInternalValues().
References CalcCd0(), CalcCdTotal(), SetInternalValues(), and WsfAero2D().
|
overridevirtual |
Recognize and process aerodynamics input.
Reimplemented from WsfAero.
References cCURVE_POINTS, cINCOMPRESSIBLE, cPARAMETRIC, mAR, mCd0, mCd0s, mCdZeroSubsonic, mCdZeroSupersonic, mClMax, mE, mMachBeginCdRise, mMachEndCdRise, mMachMaxSupersonic, mSubsonicCdSlope, mSupersonicCdSlope, mType, and WsfAero::ProcessInput().
|
protected |
SetInternalValues is a protected method which initializes the aerodynamics object. It assures that necessary values are set in the object before it is used. Method will make sure that drag table mach numbers (if used) are continuously increasing, to facilitate run-time interpolations. Depending upon how drag values are specified, it may create Cd versus Mach number drag values to produce the desired transonic drag rise shape.
References cCURVE_POINTS, cINCOMPRESSIBLE, cPARAMETRIC, WsfAero::GetPlatformName(), mAR, mCd0, mCd0s, mCdZeroSubsonic, mCdZeroSupersonic, mClMax, WsfAero::mDebug, mE, mK, mMachBeginCdRise, mMachEndCdRise, mMachMaxSupersonic, mSubsonicCdSlope, mSupersonicCdSlope, and mType.
Referenced by Initialize(), and operator=().
|
overridevirtual |
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 from WsfAero.
References CalcCdTotal(), cINCOMPRESSIBLE, mCd0, mCdTotal, mCl, mClMax, WsfAero::mDebug, WsfAero::mDrag, WsfAero::mDynPressure, mLateralForce, WsfAero::mMach, WsfAero::mMaximumForce, WsfAero::mRefArea, mType, WsfAero::mYForce, WsfAero::mZForce, and WsfAero::Update().
|
protected |
Referenced by ProcessInput(), SetInternalValues(), WsfAero2D(), and WsfAero2D().
|
protected |
Referenced by CalcCd0(), CalcCdTotal(), ProcessInput(), SetInternalValues(), Update(), WsfAero2D(), and WsfAero2D().
|
protected |
Referenced by ProcessInput(), SetInternalValues(), WsfAero2D(), and WsfAero2D().
|
protected |
Referenced by CalcCdTotal(), Update(), WsfAero2D(), and WsfAero2D().
|
protected |
Referenced by ProcessInput(), SetInternalValues(), WsfAero2D(), and WsfAero2D().
|
protected |
Referenced by ProcessInput(), SetInternalValues(), WsfAero2D(), and WsfAero2D().
|
protected |
Referenced by CalcCdTotal(), Update(), WsfAero2D(), and WsfAero2D().
|
protected |
Referenced by ProcessInput(), SetInternalValues(), Update(), WsfAero2D(), and WsfAero2D().
|
protected |
Referenced by ProcessInput(), SetInternalValues(), WsfAero2D(), and WsfAero2D().
|
protected |
Referenced by WsfAero2D(), and WsfAero2D().
|
protected |
Referenced by CalcCdTotal(), SetInternalValues(), WsfAero2D(), and WsfAero2D().
|
protected |
Referenced by Update(), WsfAero2D(), and WsfAero2D().
|
protected |
Referenced by ProcessInput(), SetInternalValues(), WsfAero2D(), and WsfAero2D().
|
protected |
Referenced by ProcessInput(), SetInternalValues(), WsfAero2D(), and WsfAero2D().
|
protected |
Referenced by ProcessInput(), SetInternalValues(), WsfAero2D(), and WsfAero2D().
|
protected |
Referenced by ProcessInput(), SetInternalValues(), WsfAero2D(), and WsfAero2D().
|
protected |
Referenced by ProcessInput(), SetInternalValues(), WsfAero2D(), and WsfAero2D().
|
protected |
Referenced by CalcCdTotal(), ProcessInput(), SetInternalValues(), Update(), WsfAero2D(), and WsfAero2D().