WSF
WsfGuidanceProgram Class Referenceabstract

Base class for the guidance programs (maneuvers) used by WsfGuidanceComputer. More...

#include <WsfGuidanceProgram.hpp>

Inheritance diagram for WsfGuidanceProgram:
Collaboration diagram for WsfGuidanceProgram:

Public Types

enum  Status { cCONTINUE , cCOMPLETE }
 The return status for the Execute method. More...
enum  Axis { cX_AXIS = 0 , cY_AXIS = 1 , cZ_AXIS = 2 }
using State = WsfGuidanceComputer::State
using Commands = WsfGuidanceComputer::Commands
using Phase = WsfGuidanceComputer::Phase
Public Types inherited from WsfObject
typedef std::vector< WsfStringIdTypeList
 The list of types returned by GetTypeList.

Public Member Functions

 WsfGuidanceProgram ()
 Constructor.
 WsfGuidanceProgram (const WsfGuidanceProgram &aSrc)=default
 ~WsfGuidanceProgram () override=default
WsfGuidanceProgramoperator= (const WsfGuidanceProgram &)=delete
WsfGuidanceProgramClone () const override=0
 Virtual copy constructor.
virtual bool Initialize (double aSimTime, WsfGuidanceComputer *aComputerPtr)
bool ProcessInput (UtInput &aInput) override
virtual void Start (double aSimTime, double aCurTime)
 Start using the program.
virtual void Terminate (double aSimTime)
 Terminate the program.
virtual Status Execute (State &aState, Commands &aCommands)=0
WsfPlatformGetPlatform ()
 A convenience method for getting the pointer to the platform.
WsfGuidanceComputerGetComputer ()
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)

Static Public Attributes

static const char * cGC_ORBIT_DECLARED = "GC_ORBIT_DECLARED"
static const char * cGC_DELTA_V_REMAINING = "GC_DELTA_IV_REMAINING"
static const char * cGC_BURN_TIME_REMAINING = "GC_BURN_TIME_REMAINING"
static const char * cGC_FUEL_REMAINING = "GC_FUEL_REMAINING"

Protected Member Functions

void AltitudeGuidance (State &aState, Phase &aPhase, double &aZ_Accel)
 Compute the 'climb/dive-to-altitude and hold' guidance.
void AngleOffsetGuidance (State &aState, Phase &aPhase, double &aY_Accel, double &aZ_Accel)
bool FlightPathAngleAchieved (const State &aState, double aCommandedFlightPathAngle) const
void FlightPathAngleGuidance (State &aState, Phase &aPhase, double aCommandedFlightPathAngle, double &aY_Accel, double &aZ_Accel)
void ProNavGuidance (State &aState, double aProNavGain, bool aAugmented, double &aY_Accel, double &aZ_Accel)
void PursuitGuidance (State &aState, double aPursuitGain, double &aY_Accel, double &aZ_Accel)
 WsfObject (const WsfObject &aSrc)
 Copy constructor (for Clone()).

Static Protected Member Functions

static void ApplyGravityBias (UtEntity &aEntity, double aGravityBiasFactor, double &aY_Accel, double &aZ_Accel)
static void ApplyLateralBias (UtEntity &aEntity, double aLateralBiasFactor, double &aY_Accel, double &aZ_Accel)
static void ComputeGravitationalAcceleration (const double aLocWCS[3], double aGravAclWCS[3])

Protected Attributes

WsfGuidanceComputermComputerPtr
double mStartTime
 Simulation time when this program was started.
bool mDebugEnabled
 True if debug output is enabled.

Detailed Description

Base class for the guidance programs (maneuvers) used by WsfGuidanceComputer.

Member Typedef Documentation

◆ Commands

◆ Phase

◆ State

Member Enumeration Documentation

◆ Axis

Enumerator
cX_AXIS 
cY_AXIS 
cZ_AXIS 

◆ Status

The return status for the Execute method.

Enumerator
cCONTINUE 

The program should be continued to be called (remains in the active program list).

cCOMPLETE 

The program is complete and no longer needs to be called (removed from the active program list).

Constructor & Destructor Documentation

◆ WsfGuidanceProgram() [1/2]

WsfGuidanceProgram::WsfGuidanceProgram ( )

◆ WsfGuidanceProgram() [2/2]

WsfGuidanceProgram::WsfGuidanceProgram ( const WsfGuidanceProgram & aSrc)
default

References WsfGuidanceProgram().

◆ ~WsfGuidanceProgram()

WsfGuidanceProgram::~WsfGuidanceProgram ( )
overridedefault

Member Function Documentation

◆ AltitudeGuidance()

◆ AngleOffsetGuidance()

◆ ApplyGravityBias()

void WsfGuidanceProgram::ApplyGravityBias ( UtEntity & aEntity,
double aGravityBiasFactor,
double & aY_Accel,
double & aZ_Accel )
staticprotected

If requested, add in G bias to fight drop due to gravity.

Parameters
aEntity[input] The weapon entity.
aGravityBiasFactor[input] The gravity bias factor.
aY_Accel[updated] The required ECS Y acceleration.
aZ_Accel[updated] The required ECS Z acceleration.

References ComputeGravitationalAcceleration().

◆ ApplyLateralBias()

void WsfGuidanceProgram::ApplyLateralBias ( UtEntity & aEntity,
double aLateralBiasFactor,
double & aY_Accel,
double & aZ_Accel )
staticprotected

If requested, add in Lateral bias to fly a curving path to the target (used by radars to spread the clutter in doppler to boost SNR. "Doppler Beam Sharpening")

Parameters
aEntity[input] The weapon entity.
aLateralBiasFactor[input] The lateral bias factor.
aY_Accel[updated] The required ECS Y acceleration.
aZ_Accel[updated] The required ECS Z acceleration.

◆ Clone()

WsfGuidanceProgram * WsfGuidanceProgram::Clone ( ) const
overridepure virtual

Virtual copy constructor.

Implements WsfObject.

References Initialize(), Start(), Terminate(), and WsfGuidanceProgram().

◆ ComputeGravitationalAcceleration()

void WsfGuidanceProgram::ComputeGravitationalAcceleration ( const double aLocWCS[3],
double aGravAclWCS[3] )
staticprotected

Compute the gravitational acceleration vector at a specified location.

Parameters
aLocWCS[input] The WCS position of the location.
aGravAclWCS[output] The gravitational acceleration vector (pointing to the Earth's center).

Referenced by ApplyGravityBias(), and FlightPathAngleGuidance().

◆ Execute()

virtual Status WsfGuidanceProgram::Execute ( State & aState,
Commands & aCommands )
pure virtual

Execute the guidance program.

Parameters
aState[input] The current state of the weapon and guidance target.
aCommands[input/output] guidance program input/output.
Returns
the status of the program. 'cCONTINUE' means the program is not complete and should continue to be called. 'cCOMPLETE' means the program is complete and no longer needs to be called.

◆ FlightPathAngleAchieved()

bool WsfGuidanceProgram::FlightPathAngleAchieved ( const State & aState,
double aCommandedFlightPathAngle ) const
protected

◆ FlightPathAngleGuidance()

◆ GetComputer()

WsfGuidanceComputer * WsfGuidanceProgram::GetComputer ( )
inline

References mComputerPtr.

◆ GetPlatform()

WsfPlatform * WsfGuidanceProgram::GetPlatform ( )
inline

A convenience method for getting the pointer to the platform.

References mComputerPtr.

Referenced by AltitudeGuidance(), and FlightPathAngleGuidance().

◆ Initialize()

bool WsfGuidanceProgram::Initialize ( double aSimTime,
WsfGuidanceComputer * aComputerPtr )
virtual

Initialize the program.

This is called by the owning guidance computer when it performs its initialization.

References WsfPlatformPart::DebugEnabled(), mComputerPtr, and mDebugEnabled.

Referenced by Clone(), wsf::six_dof::GuidanceComputer::Initialize(), WsfGuidanceComputer::Initialize(), and WsfP6DOF_GuidanceComputer::Initialize().

◆ operator=()

WsfGuidanceProgram & WsfGuidanceProgram::operator= ( const WsfGuidanceProgram & )
delete

References WsfGuidanceProgram().

◆ ProcessInput()

bool WsfGuidanceProgram::ProcessInput ( UtInput & aInput)
overridevirtual

Process input for the program.

Parameters
aInputThe current input stream.
Returns
'true' if the command was one recognized by the program or 'false' if not.

Reimplemented from WsfObject.

References mDebugEnabled, and WsfObject::ProcessInput().

◆ ProNavGuidance()

void WsfGuidanceProgram::ProNavGuidance ( State & aState,
double aProNavGain,
bool aAugmented,
double & aY_Accel,
double & aZ_Accel )
protected

◆ PursuitGuidance()

void WsfGuidanceProgram::PursuitGuidance ( State & aState,
double aPursuitGain,
double & aY_Accel,
double & aZ_Accel )
protected

◆ Start()

void WsfGuidanceProgram::Start ( double aSimTime,
double aCurTime )
virtual

◆ Terminate()

void WsfGuidanceProgram::Terminate ( double aSimTime)
virtual

Terminate the program.

Referenced by Clone().

Member Data Documentation

◆ cGC_BURN_TIME_REMAINING

const char * WsfGuidanceProgram::cGC_BURN_TIME_REMAINING = "GC_BURN_TIME_REMAINING"
static

◆ cGC_DELTA_V_REMAINING

const char * WsfGuidanceProgram::cGC_DELTA_V_REMAINING = "GC_DELTA_IV_REMAINING"
static

◆ cGC_FUEL_REMAINING

const char * WsfGuidanceProgram::cGC_FUEL_REMAINING = "GC_FUEL_REMAINING"
static

◆ cGC_ORBIT_DECLARED

const char * WsfGuidanceProgram::cGC_ORBIT_DECLARED = "GC_ORBIT_DECLARED"
static

The following are names of aux_data variables that are defined when the ORBIT_INSERTION_PROGRAM declares that orbit conditions have been satisfied. These are tested in weapon_tools...

Referenced by OrbitalLaunchComputerGenerator::GuidanceComputerPhaseChanged().

◆ mComputerPtr

◆ mDebugEnabled

bool WsfGuidanceProgram::mDebugEnabled
protected

True if debug output is enabled.

Referenced by Initialize(), ProcessInput(), and WsfGuidanceProgram().

◆ mStartTime

double WsfGuidanceProgram::mStartTime
protected

Simulation time when this program was started.

Referenced by Start(), and WsfGuidanceProgram().


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