|
WSF
|
#include <WsfGuidedMover.hpp>

Public Types | |
| enum | EngineType { cNONE , cROCKET , cJET } |
| enum | ThrustReference { cDEFAULT , cVACUUM , cSEA_LEVEL , cPAIRED } |
| enum | TurnMethod { cSKID_TO_TURN , cBANK_TO_TURN } |
Public Member Functions | |
| Stage () | |
| Stage (const Stage &aSrc) | |
| ~Stage () | |
| Stage & | operator= (const Stage &)=delete |
| bool | CompletePairedValues (WsfGuidedMover *aMoverPtr) |
| double | ComputeTimeWeightedAverage (const UtTable::Curve &aCurve) const |
| bool | ComputeUnknownValues (WsfGuidedMover *aMoverPtr, int &aRecursionDepth) |
| bool | Initialize (double aSimTime, WsfGuidedMover *aMoverPtr, bool aShowStatus) |
| bool | ProcessInput (UtInput &aInput) |
| void | ShowStatus (WsfGuidedMover *aMoverPtr, ut::log::MessageStream &aMsgStream) const |
| double | ComputeSpecificImpulse (double aAmbientPressure, double aSeaLevelPressure) const |
| double | DetermineCurrentThrust (double aAmbientPressure, double aSeaLevelPressure, double aPhaseTime) |
Input Values | |
| EngineType | mEngineType |
| The type of the engine. | |
| ThrustReference | mThrustReference |
| Reference for thrust. | |
| ThrustReference | mImpulseReference |
| Reference for specific impulse. | |
| double | mEmptyMass |
| double | mFuelMass |
| double | mTotalMass |
| double | mThrust |
| The thrust (N). | |
| double | mThrustSeaLevel |
| The thrust (N) at sea level. | |
| double | mThrustVacuum |
| The thrust (N) in vacuum. | |
| CurvePtr | mThrustTablePtr |
| Thrust as a function of time. | |
| CurvePtr | mSeaLevelThrustTablePtr |
| Sea level thrust as a function of time. | |
| CurvePtr | mVacuumThrustTablePtr |
| Vacuum thrust as a function of time. | |
| double | mNozzleExitArea |
| The nozzle exit area (m^2). | |
| double | mSpecificImpulse |
| The specific impulse (sec). | |
| double | mSpecificImpulseSeaLevel |
| The specific impulse (sec) at sea level. | |
| double | mSpecificImpulseVacuum |
| The specific impulse (sec) in vacuum. | |
| double | mBurnRate |
| The rate of fuel expenditure (Kg/Sec). | |
| CurvePtr | mBurnRateTablePtr |
| The rate of fuel expenditure as a function of time. | |
| TablePtr | mThrottlePtr |
| The throttle setting. | |
| double | mThrustDuration |
| The engine burn time (sec). | |
| double | mPreIgnitionCoastTime |
| Coast time between separation of previous state and ignition of this stage. | |
| double | mPreSeparationCoastTime |
| WsfStringId | mAeroId |
| The string ID of the aerodynamic attributes to be used. | |
| WsfAero * | mAeroPtr |
| The pointer to the aerodynamic attributes to be used. | |
| TablePtr | mTimeConstantPtr |
| The airframe time constant. | |
| TablePtr | mAngleOfAttackPtr |
| The angle of attack. | |
| double | mMinTVC_Time |
| The minimum time that thrust vector control can be used (relative to ignition start). | |
| double | mMaxTVC_Time |
| The maximum time that thrust vector control can be used (relative to ignition start). | |
| double | mMaxTVC_Angle |
| Maximum TVC angle. | |
| double | mLateralThrustGain |
| Lateral thrust gain for TVC and divert. | |
| double | mIntegrationTimestep |
| The integration timestep. | |
| double | mProbabilityOfSeparation |
| The probability of separation of this stage from subsequent stages. | |
| double | mProbabilityOfIgnition |
| The probability of ignition of this stage. | |
| TurnMethod | mTurnMethod |
| The visual method for turns (skid or bank). | |
| bool | mReverseThrust |
| 'true' if the direction of the thrust should be reversed. | |
| bool | mFinalBoostStage |
Derived values | |
| double | mPayloadMass |
| WsfGuidedMover::Stage::Stage | ( | ) |
References cDEFAULT, cROCKET, cSKID_TO_TURN, mAeroId, mAeroPtr, mAngleOfAttackPtr, mBurnRate, mBurnRateTablePtr, mEmptyMass, mEngineType, mFinalBoostStage, mFuelMass, mImpulseReference, mIntegrationTimestep, mLateralThrustGain, mMaxTVC_Angle, mMaxTVC_Time, mMinTVC_Time, mNozzleExitArea, mPayloadMass, mPreIgnitionCoastTime, mPreSeparationCoastTime, mProbabilityOfIgnition, mProbabilityOfSeparation, mReverseThrust, mSeaLevelThrustTablePtr, mSpecificImpulse, mSpecificImpulseSeaLevel, mSpecificImpulseVacuum, mThrottlePtr, mThrust, mThrustDuration, mThrustReference, mThrustSeaLevel, mThrustTablePtr, mThrustVacuum, mTimeConstantPtr, mTotalMass, mTurnMethod, and mVacuumThrustTablePtr.
Referenced by operator=(), and Stage().
| WsfGuidedMover::Stage::Stage | ( | const Stage & | aSrc | ) |
References mAeroId, mAeroPtr, mAngleOfAttackPtr, mBurnRate, mBurnRateTablePtr, mEmptyMass, mEngineType, mFinalBoostStage, mFuelMass, mImpulseReference, mIntegrationTimestep, mLateralThrustGain, mMaxTVC_Angle, mMaxTVC_Time, mMinTVC_Time, mNozzleExitArea, mPayloadMass, mPreIgnitionCoastTime, mPreSeparationCoastTime, mProbabilityOfIgnition, mProbabilityOfSeparation, mReverseThrust, mSeaLevelThrustTablePtr, mSpecificImpulse, mSpecificImpulseSeaLevel, mSpecificImpulseVacuum, mThrottlePtr, mThrust, mThrustDuration, mThrustReference, mThrustSeaLevel, mThrustTablePtr, mThrustVacuum, mTimeConstantPtr, mTotalMass, mTurnMethod, mVacuumThrustTablePtr, and Stage().
| WsfGuidedMover::Stage::~Stage | ( | ) |
References mAeroPtr.
| bool WsfGuidedMover::Stage::CompletePairedValues | ( | WsfGuidedMover * | aMoverPtr | ) |
Complete paired values. If scalar reference values of thrust or specific impulse are employed this routine will attempt to derive any missing values and verify the consistency of known values. This routine may be called multiple times, but at the end, if ANY reference values were defined then ALL of them should be known and the reference for both pairs should be 'cPAIRED'.
This routine does nothing if thrust tables are employed.
| aMoverPtr | Pointer to the parent mover. |
References cPAIRED, cSEA_LEVEL, cVACUUM, WsfGuidedMoverBase::mAtmosphere, mImpulseReference, mNozzleExitArea, mSpecificImpulseSeaLevel, mSpecificImpulseVacuum, mThrustReference, mThrustSeaLevel, mThrustVacuum, ok, and WsfGuidedMover::WsfGuidedMover().
Referenced by ComputeUnknownValues(), Initialize(), and operator=().
| double WsfGuidedMover::Stage::ComputeSpecificImpulse | ( | double | aAmbientPressure, |
| double | aSeaLevelPressure ) const |
References cPAIRED, cSEA_LEVEL, cVACUUM, mImpulseReference, mNozzleExitArea, mSpecificImpulse, mSpecificImpulseSeaLevel, mSpecificImpulseVacuum, and mThrust.
Referenced by WsfGuidedMover::GetHorizontalThrust(), and operator=().
| double WsfGuidedMover::Stage::ComputeTimeWeightedAverage | ( | const UtTable::Curve & | aCurve | ) | const |
Compute the time-weighted average of a function represented by the supplied curve. It assumes the independent variable is 'time'.
Referenced by Initialize(), and operator=().
| bool WsfGuidedMover::Stage::ComputeUnknownValues | ( | WsfGuidedMover * | aMoverPtr, |
| int & | aRecursionDepth ) |
Compute unknown variables. This routine recursively calls itself attempting to determine as many unknown variables as possible. It is first called from Stage::Initialize with only the input values known.
References cDEFAULT, CompletePairedValues(), ComputeUnknownValues(), cPAIRED, cSEA_LEVEL, cVACUUM, mBurnRate, mEmptyMass, mFuelMass, mImpulseReference, mSpecificImpulse, mSpecificImpulseSeaLevel, mSpecificImpulseVacuum, mThrust, mThrustDuration, mThrustReference, mThrustSeaLevel, mThrustVacuum, mTotalMass, ok, and WsfGuidedMover::WsfGuidedMover().
Referenced by ComputeUnknownValues(), Initialize(), and operator=().
| double WsfGuidedMover::Stage::DetermineCurrentThrust | ( | double | aAmbientPressure, |
| double | aSeaLevelPressure, | ||
| double | aPhaseTime ) |
References cPAIRED, cSEA_LEVEL, cVACUUM, mNozzleExitArea, mSeaLevelThrustTablePtr, mThrust, mThrustReference, mThrustSeaLevel, mThrustTablePtr, mThrustVacuum, and mVacuumThrustTablePtr.
Referenced by WsfGuidedMover::GetHorizontalThrust(), and operator=().
| bool WsfGuidedMover::Stage::Initialize | ( | double | aSimTime, |
| WsfGuidedMover * | aMoverPtr, | ||
| bool | aShowStatus ) |
Initialize the stage.
| aSimTime | The current simulation time. |
| aMoverPtr | The pointer to the mover. |
| aShowStatus | If 'show_status' was enabled for the mover. |
References WsfObjectTypeList< T >::Clone(), CompletePairedValues(), ComputeTimeWeightedAverage(), ComputeUnknownValues(), cPAIRED, cSEA_LEVEL, cVACUUM, WsfAeroTypes::Get(), WsfPlatformPart::GetPlatform(), WsfPlatformPart::GetScenario(), mAeroId, mAeroPtr, mBurnRate, mBurnRateTablePtr, mEmptyMass, mFuelMass, mNozzleExitArea, mSeaLevelThrustTablePtr, mSpecificImpulse, mSpecificImpulseSeaLevel, mSpecificImpulseVacuum, mThrottlePtr, mThrust, mThrustDuration, mThrustReference, mThrustSeaLevel, mThrustTablePtr, mThrustVacuum, mTotalMass, mVacuumThrustTablePtr, ok, and WsfGuidedMover::WsfGuidedMover().
Referenced by WsfGuidedMover::Initialize(), and operator=().
| bool WsfGuidedMover::Stage::ProcessInput | ( | UtInput & | aInput | ) |
References cBANK_TO_TURN, cDEFAULT, cJET, cNONE, cPAIRED, cROCKET, cSEA_LEVEL, cSKID_TO_TURN, cVACUUM, mAeroId, mAngleOfAttackPtr, mBurnRate, mBurnRateTablePtr, mEmptyMass, mEngineType, mFinalBoostStage, mFuelMass, mImpulseReference, mIntegrationTimestep, mLateralThrustGain, mMaxTVC_Angle, mMaxTVC_Time, mMinTVC_Time, mNozzleExitArea, mPreIgnitionCoastTime, mPreSeparationCoastTime, mProbabilityOfIgnition, mProbabilityOfSeparation, mReverseThrust, mSeaLevelThrustTablePtr, mSpecificImpulse, mSpecificImpulseSeaLevel, mSpecificImpulseVacuum, mThrottlePtr, mThrust, mThrustDuration, mThrustReference, mThrustSeaLevel, mThrustTablePtr, mThrustVacuum, mTimeConstantPtr, mTotalMass, mTurnMethod, and mVacuumThrustTablePtr.
Referenced by operator=().
| void WsfGuidedMover::Stage::ShowStatus | ( | WsfGuidedMover * | aMoverPtr, |
| ut::log::MessageStream & | aMsgStream ) const |
References cPAIRED, cSEA_LEVEL, cVACUUM, mBurnRate, mEmptyMass, mFuelMass, mImpulseReference, mNozzleExitArea, mSpecificImpulse, mSpecificImpulseSeaLevel, mSpecificImpulseVacuum, mThrust, mThrustDuration, mThrustReference, mThrustSeaLevel, mThrustVacuum, mTotalMass, and WsfGuidedMover::WsfGuidedMover().
Referenced by WsfGuidedMover::Initialize(), and operator=().
| WsfStringId WsfGuidedMover::Stage::mAeroId |
The string ID of the aerodynamic attributes to be used.
Referenced by Initialize(), ProcessInput(), Stage(), and Stage().
| WsfAero* WsfGuidedMover::Stage::mAeroPtr |
The pointer to the aerodynamic attributes to be used.
Referenced by WsfGuidedMover::ComputeAeroForces(), Initialize(), Stage(), Stage(), and ~Stage().
| TablePtr WsfGuidedMover::Stage::mAngleOfAttackPtr |
The angle of attack.
Referenced by WsfGuidedMover::PostUpdate(), ProcessInput(), Stage(), and Stage().
| double WsfGuidedMover::Stage::mBurnRate |
The rate of fuel expenditure (Kg/Sec).
Referenced by ComputeUnknownValues(), Initialize(), ProcessInput(), ShowStatus(), Stage(), and Stage().
| CurvePtr WsfGuidedMover::Stage::mBurnRateTablePtr |
The rate of fuel expenditure as a function of time.
Referenced by WsfGuidedMover::GetHorizontalThrust(), Initialize(), ProcessInput(), Stage(), and Stage().
| double WsfGuidedMover::Stage::mEmptyMass |
Mass of the THIS stage minus the mass of the fuel on THIS.
Referenced by ComputeUnknownValues(), WsfGuidedMover::Initialize(), Initialize(), WsfGuidedMover::InitiateStage(), ProcessInput(), ShowStatus(), Stage(), and Stage().
| EngineType WsfGuidedMover::Stage::mEngineType |
The type of the engine.
Referenced by ProcessInput(), Stage(), and Stage().
| bool WsfGuidedMover::Stage::mFinalBoostStage |
'true' if this is the final stage of 'boost' phase. Normally the last stage with 'thrust' defines the when boost phase is complete, but the user can define an earlier stage defines the completion.
Referenced by WsfGuidedMover::InitiateStage(), ProcessInput(), Stage(), and Stage().
| double WsfGuidedMover::Stage::mFuelMass |
Mass of just the fuel on THIS stage.
Referenced by ComputeUnknownValues(), WsfGuidedMover::Initialize(), Initialize(), WsfGuidedMover::InitiateStage(), ProcessInput(), ShowStatus(), Stage(), and Stage().
| ThrustReference WsfGuidedMover::Stage::mImpulseReference |
Reference for specific impulse.
Referenced by CompletePairedValues(), ComputeSpecificImpulse(), ComputeUnknownValues(), ProcessInput(), ShowStatus(), Stage(), and Stage().
| double WsfGuidedMover::Stage::mIntegrationTimestep |
The integration timestep.
Referenced by WsfGuidedMover::Initialize(), WsfGuidedMover::InitiateStage(), ProcessInput(), Stage(), and Stage().
| double WsfGuidedMover::Stage::mLateralThrustGain |
Lateral thrust gain for TVC and divert.
Referenced by WsfGuidedMover::ComputeVectoredThrustForces(), ProcessInput(), Stage(), and Stage().
| double WsfGuidedMover::Stage::mMaxTVC_Angle |
Maximum TVC angle.
Referenced by WsfGuidedMover::ComputeVectoredThrustForces(), ProcessInput(), Stage(), and Stage().
| double WsfGuidedMover::Stage::mMaxTVC_Time |
The maximum time that thrust vector control can be used (relative to ignition start).
Referenced by WsfGuidedMover::ComputeVectoredThrustForces(), ProcessInput(), Stage(), and Stage().
| double WsfGuidedMover::Stage::mMinTVC_Time |
The minimum time that thrust vector control can be used (relative to ignition start).
Referenced by WsfGuidedMover::ComputeVectoredThrustForces(), ProcessInput(), Stage(), and Stage().
| double WsfGuidedMover::Stage::mNozzleExitArea |
The nozzle exit area (m^2).
Referenced by CompletePairedValues(), ComputeSpecificImpulse(), DetermineCurrentThrust(), Initialize(), ProcessInput(), ShowStatus(), Stage(), and Stage().
| double WsfGuidedMover::Stage::mPayloadMass |
The sum of the initial masses of any subsequent stages (kg) Consider anything stacked on top of this stage as "payload".
Referenced by WsfGuidedMover::Initialize(), WsfGuidedMover::InitiateStage(), Stage(), and Stage().
| double WsfGuidedMover::Stage::mPreIgnitionCoastTime |
Coast time between separation of previous state and ignition of this stage.
Referenced by WsfGuidedMover::InitiateStage(), ProcessInput(), Stage(), and Stage().
| double WsfGuidedMover::Stage::mPreSeparationCoastTime |
Coast time from burnout of this stage to separation.
Referenced by WsfGuidedMover::InitiateStage(), ProcessInput(), Stage(), and Stage().
| double WsfGuidedMover::Stage::mProbabilityOfIgnition |
The probability of ignition of this stage.
Referenced by ProcessInput(), Stage(), and Stage().
| double WsfGuidedMover::Stage::mProbabilityOfSeparation |
The probability of separation of this stage from subsequent stages.
Referenced by ProcessInput(), Stage(), and Stage().
| bool WsfGuidedMover::Stage::mReverseThrust |
'true' if the direction of the thrust should be reversed.
Referenced by WsfGuidedMover::GetHorizontalThrust(), ProcessInput(), Stage(), and Stage().
| CurvePtr WsfGuidedMover::Stage::mSeaLevelThrustTablePtr |
Sea level thrust as a function of time.
Referenced by DetermineCurrentThrust(), Initialize(), ProcessInput(), Stage(), and Stage().
| double WsfGuidedMover::Stage::mSpecificImpulse |
The specific impulse (sec).
Referenced by ComputeSpecificImpulse(), WsfGuidedMover::ComputeThrustForCommandedSpeed(), ComputeUnknownValues(), WsfGuidedMover::GetHorizontalThrust(), Initialize(), ProcessInput(), ShowStatus(), Stage(), and Stage().
| double WsfGuidedMover::Stage::mSpecificImpulseSeaLevel |
The specific impulse (sec) at sea level.
Referenced by CompletePairedValues(), ComputeSpecificImpulse(), ComputeUnknownValues(), Initialize(), ProcessInput(), ShowStatus(), Stage(), and Stage().
| double WsfGuidedMover::Stage::mSpecificImpulseVacuum |
The specific impulse (sec) in vacuum.
Referenced by CompletePairedValues(), ComputeSpecificImpulse(), ComputeUnknownValues(), Initialize(), ProcessInput(), ShowStatus(), Stage(), and Stage().
| TablePtr WsfGuidedMover::Stage::mThrottlePtr |
The throttle setting.
Referenced by WsfGuidedMover::GetHorizontalThrust(), Initialize(), ProcessInput(), Stage(), and Stage().
| double WsfGuidedMover::Stage::mThrust |
The thrust (N).
Referenced by ComputeSpecificImpulse(), ComputeUnknownValues(), DetermineCurrentThrust(), WsfGuidedMover::Initialize(), Initialize(), ProcessInput(), ShowStatus(), Stage(), and Stage().
| double WsfGuidedMover::Stage::mThrustDuration |
The engine burn time (sec).
Referenced by WsfGuidedMover::AdvanceTimeSinglestep(), ComputeUnknownValues(), Initialize(), ProcessInput(), ShowStatus(), Stage(), and Stage().
| ThrustReference WsfGuidedMover::Stage::mThrustReference |
Reference for thrust.
Referenced by CompletePairedValues(), ComputeUnknownValues(), DetermineCurrentThrust(), Initialize(), ProcessInput(), ShowStatus(), Stage(), and Stage().
| double WsfGuidedMover::Stage::mThrustSeaLevel |
The thrust (N) at sea level.
Referenced by CompletePairedValues(), ComputeUnknownValues(), DetermineCurrentThrust(), Initialize(), ProcessInput(), ShowStatus(), Stage(), and Stage().
| CurvePtr WsfGuidedMover::Stage::mThrustTablePtr |
Thrust as a function of time.
Referenced by DetermineCurrentThrust(), Initialize(), ProcessInput(), Stage(), and Stage().
| double WsfGuidedMover::Stage::mThrustVacuum |
The thrust (N) in vacuum.
Referenced by CompletePairedValues(), ComputeUnknownValues(), DetermineCurrentThrust(), Initialize(), ProcessInput(), ShowStatus(), Stage(), and Stage().
| TablePtr WsfGuidedMover::Stage::mTimeConstantPtr |
The airframe time constant.
Referenced by WsfGuidedMover::GetTimeConstant(), ProcessInput(), Stage(), and Stage().
| double WsfGuidedMover::Stage::mTotalMass |
The total mass of the THIS stage (empty mass plus fuel mass).
Referenced by ComputeUnknownValues(), Initialize(), ProcessInput(), ShowStatus(), Stage(), and Stage().
| TurnMethod WsfGuidedMover::Stage::mTurnMethod |
The visual method for turns (skid or bank).
Referenced by WsfGuidedMover::PostUpdate(), ProcessInput(), Stage(), and Stage().
| CurvePtr WsfGuidedMover::Stage::mVacuumThrustTablePtr |
Vacuum thrust as a function of time.
Referenced by DetermineCurrentThrust(), Initialize(), ProcessInput(), Stage(), and Stage().