WSF
P6DofUtils Namespace Reference

Enumerations

enum  CanFlyAtReturnValue { CAN_NOT_FLY , CONTROL_FAIL , CAN_FLY }

Functions

P6DOF_EXPORT void Autotune (P6DofVehicle *aVehicle)
P6DOF_EXPORT void CreateAutopilotConfigFile (P6DofVehicle *aVehicle, const std::string &aFilename)
P6DOF_EXPORT std::vector< P6DOF::Pid::TypeGetRelevantPids (P6DofVehicle *aVehicle)
P6DOF_EXPORT const P6DOF::SinglePidValueDataGetSinglePidData (P6DOF::Pid::Type aPidType, const P6DOF::AutopilotPidGroupValueData &aPidValues)
P6DOF_EXPORT CanFlyAtReturnValue CanFlyAt (P6DofVehicle *aObject, double aAltitude_ft, double aVelocity_fps, double aThrottleForward, double aFlapsDown)
P6DOF_EXPORT void CreateAutopilotSupportFile (P6DofVehicle *aObject, const std::string &aFilename)
P6DOF_EXPORT void CreateAutopilotSupportFileWithMaxMach (P6DofVehicle *aObject, const std::string &aFilename, const double &aMaxMach)
P6DOF_EXPORT void CommonCreateAutopilotSupportFile (P6DofTableTool &aTool, const std::string &aFilename)
P6DOF_EXPORT int64_t TimeToTime (double aSimTime_sec)
P6DOF_EXPORT double TimeToTime (int64_t aSimTime_nanosec)
P6DOF_EXPORT void CalcSphericalLatLonAlt (const UtVec3dX &aPos_m, double &aLat_deg, double &aLon_deg, double &aAlt_m)
P6DOF_EXPORT void CalcSphericalVecToNED (const UtVec3dX &aPos, const UtVec3dX &aSphericalVec, UtVec3dX &aNEDVec)
P6DOF_EXPORT void CalcUnitVectors (const UtDCM &aDCM, UtVec3dX &aUnitVecX, UtVec3dX &aUnitVecY, UtVec3dX &aUnitVecZ)
P6DOF_EXPORT void CalcLocalNEDVectors (const UtVec3dX &aPos, UtVec3dX &aLocalNorth, UtVec3dX &aLocalEast, UtVec3dX &aLocalDown)
P6DOF_EXPORT void CalcLocalAngles (const UtVec3dX &aLocalNorth, const UtVec3dX &aLocalEast, const UtVec3dX &aLocalDown, const UtVec3dX &aUnitVecX, const UtVec3dX &aUnitVecZ, double &aLocalYaw_rad, double &aLocalPitch_rad, double &aLocalRoll_rad)
P6DOF_EXPORT void CalcSphericalWCSAngles (const UtDCM &aDCM, double &aYaw_rad, double &aPitch_rad, double &aRoll_rad)
P6DOF_EXPORT void SphericalGreatCircleHeadingAndDistance (const double aLat, const double aLon, const double aTargetLat, const double aTargetLon, double &aTargetHeading_r, double &aTargetDistance_m)
P6DOF_EXPORT void CalcSphericalPositionFromLatLonAlt (const double aLat_deg, const double aLon_deg, const double aAlt_m, UtVec3dX &aPos_m)
P6DOF_EXPORT void InertialToBodyRel (const UtDCM &aMatrix, const UtVec3dX &aInertial, UtVec3dX &aBodyRel)
P6DOF_EXPORT double GetSphericalEarthRadius_m ()
P6DOF_EXPORT void DCM_InertialToBodyRel (const UtDCM &aMatrix, const UtVec3dX &aInertial, UtVec3dX &aBodyRel)
P6DOF_EXPORT void SetSphericalDCM (const double aLat, const double aLon, UtDCM &aDCM)
P6DOF_EXPORT void SetSphericalDCM (const double aLat, const double aLon, const double aYaw_rad, const double aPitch_rad, const double aRoll_rad, UtDCM &aDCM)
P6DOF_EXPORT void SetSphericalDCM (const UtVec3dX &aPos_m, const double aHdg_rad, const double aPitch_rad, const double aRoll_rad, UtDCM &aDCM)
P6DOF_EXPORT void GetSphericalNEDAngles (const UtDCM &aDCM, const UtVec3dX &aPos, double &aHdg_rad, double &aPitch_rad, double &aRoll_rad)
P6DOF_EXPORT UtVec3dX CalcWGS84VecToNED (const UtVec3dX &aWGS84Pos_m, const UtVec3dX &aVecWGS84_m)
P6DOF_EXPORT void CalcSphericalNEDVelToSphericalVel (const UtVec3dX &aPos, const UtVec3dX &aNEDVec, UtVec3dX &aSphericalVec)
P6DOF_EXPORT double CalcSphericalRangeToPoint_m (const UtVec3dX &aPos, const UtVec3dX &aPoint)
P6DOF_EXPORT double CalcSphericalHeadingToPoint_r (const UtVec3dX &aPos, const UtVec3dX &aPoint)
P6DOF_EXPORT void AlphaBetaFromInertialVel (const UtDCM &aMatrix, const UtVec3dX &aInertialVel_mps, double &aSpeed_fps, double &aAlpha_deg, double &aBeta_deg)
P6DOF_EXPORT void AlphaBetaFromBodyRelVel (const UtVec3dX &aVel_fps, double &aAlpha_deg, double &aBeta_deg, double &aSpeed_fps)
P6DOF_EXPORT void AlphaBetaFromBodyRelVel (const UtVec3dX &aVel_fps, double &aAlpha_deg, double &aBeta_deg)
P6DOF_EXPORT void GetPositionFromLLA (const double aLat, const double aLon, const double aAlt_m, const bool aUseSpericalCoords, UtVec3dX &aPosition_m)
P6DOF_EXPORT void GetVelocityFromVelNED (const double aNorthVel_mps, const double aEastVel_mps, const double aDownVel_mps, const bool aUseSpericalCoords, UtVec3dX &aPosition_m, UtVec3dX &aVelocity_mps)
P6DOF_EXPORT void GetLLAFromPosition (const UtVec3dX &aPosition_m, const bool aUseSpericalCoords, double &aLat, double &aLon, double &aAlt_m)
P6DOF_EXPORT void LimitThrottleNormalized (double &aThrottle)
P6DOF_EXPORT void LimitThrottleAfterburner (double &aThrottle)

Variables

static constexpr int64_t cEPSILON_SIMTIME_NANOSEC = 100
static constexpr double cEPSILON_SIMTIME_SEC = (0.000000001 * static_cast<double>(cEPSILON_SIMTIME_NANOSEC))

Enumeration Type Documentation

◆ CanFlyAtReturnValue

Enumerator
CAN_NOT_FLY 
CONTROL_FAIL 
CAN_FLY 

Function Documentation

◆ AlphaBetaFromBodyRelVel() [1/2]

void P6DofUtils::AlphaBetaFromBodyRelVel ( const UtVec3dX & aVel_fps,
double & aAlpha_deg,
double & aBeta_deg )

◆ AlphaBetaFromBodyRelVel() [2/2]

void P6DofUtils::AlphaBetaFromBodyRelVel ( const UtVec3dX & aVel_fps,
double & aAlpha_deg,
double & aBeta_deg,
double & aSpeed_fps )

◆ AlphaBetaFromInertialVel()

void P6DofUtils::AlphaBetaFromInertialVel ( const UtDCM & aMatrix,
const UtVec3dX & aInertialVel_mps,
double & aSpeed_fps,
double & aAlpha_deg,
double & aBeta_deg )

◆ Autotune()

void P6DofUtils::Autotune ( P6DofVehicle * aVehicle)

References P6dofTunerGAManager::Advance(), P6DOF::Pid::Alpha, P6DOF::Pid::Altitude, P6DOF::Pid::BankAngle, P6DOF::Pid::Beta, P6DOF::Pid::DeltaPitch, P6DOF::Pid::DeltaRoll, P6DOF::Pid::FltPathAngle, P6DofVehicle::ForceLandingGearDownInstantly(), P6DofCommonController::GetAutopilotPidValues(), P6DofPilotObject::GetCommonController(), P6dofTunerGAManager::GetCurrentSpecimen(), P6DofTunerGASpecimen::GetKd(), P6DofTunerGASpecimen::GetKi(), P6DofTunerGASpecimen::GetKp(), P6DofVehicle::GetLandingGear(), P6DofLandingGear::GetNominalHeightAboveGroundOnGear(), P6dofTunerGAManager::GetOptimum(), P6DofVehicle::GetPilotObject(), GetRelevantPids(), P6DofObject::GetScenario(), GetSinglePidData(), P6DofVehicle::GetStartingLatLon(), P6DofScenario::GetTerrain(), P6DofTerrain::HeightOfTerrain_m(), P6dofTunerGAManager::InitializePopulation(), P6dofTunerGAManager::IsComplete(), P6DofTunerGASpecimen::PidLogElement::pidValues, P6DOF::Pid::PitchAngle, P6DOF::Pid::PitchRate, P6DOF::Pid::RollHeading, P6DOF::Pid::RollRate, P6DofPilotObject::SetAutopilotAlpha(), P6DofPilotObject::SetAutopilotAltitude(), P6DofPilotObject::SetAutopilotBeta(), P6DofPilotObject::SetAutopilotDeltaPitch(), P6DofPilotObject::SetAutopilotDeltaRoll(), P6DofPilotObject::SetAutopilotFlightPathAngle(), P6DofPilotObject::SetAutopilotPitchAngle(), P6DofPilotObject::SetAutopilotPitchRate(), P6DofPilotObject::SetAutopilotRollAngle(), P6DofPilotObject::SetAutopilotRollHeading(), P6DofPilotObject::SetAutopilotRollRate(), P6DofPilotObject::SetAutopilotSpeedKTAS(), P6DofPilotObject::SetAutopilotVerticalSpeed(), P6DofPilotObject::SetAutopilotYawHeading(), P6DofPilotObject::SetAutopilotYawRate(), P6DofCommonController::SetPidGainKD(), P6DofCommonController::SetPidGainKI(), P6DofCommonController::SetPidGainKP(), P6DofPilotObject::SetPrePositionTAS(), P6DOF::Pid::Speed, P6DOF::Pid::TaxiHeading, P6DOF::Pid::TaxiSpeed, P6DOF::Pid::TaxiYawRate, P6DofTunerGASpecimen::PidLogElement::timeStamp, P6DofVehicle::Update(), P6DOF::Pid::VertSpeed, P6DOF::Pid::YawHeading, and P6DOF::Pid::YawRate.

Referenced by WsfP6DOF_MoverTestObject::Autotune().

◆ CalcLocalAngles()

void P6DofUtils::CalcLocalAngles ( const UtVec3dX & aLocalNorth,
const UtVec3dX & aLocalEast,
const UtVec3dX & aLocalDown,
const UtVec3dX & aUnitVecX,
const UtVec3dX & aUnitVecZ,
double & aLocalYaw_rad,
double & aLocalPitch_rad,
double & aLocalRoll_rad )

◆ CalcLocalNEDVectors()

void P6DofUtils::CalcLocalNEDVectors ( const UtVec3dX & aPos,
UtVec3dX & aLocalNorth,
UtVec3dX & aLocalEast,
UtVec3dX & aLocalDown )

◆ CalcSphericalHeadingToPoint_r()

double P6DofUtils::CalcSphericalHeadingToPoint_r ( const UtVec3dX & aPos,
const UtVec3dX & aPoint )

◆ CalcSphericalLatLonAlt()

◆ CalcSphericalNEDVelToSphericalVel()

void P6DofUtils::CalcSphericalNEDVelToSphericalVel ( const UtVec3dX & aPos,
const UtVec3dX & aNEDVec,
UtVec3dX & aSphericalVec )

◆ CalcSphericalPositionFromLatLonAlt()

◆ CalcSphericalRangeToPoint_m()

double P6DofUtils::CalcSphericalRangeToPoint_m ( const UtVec3dX & aPos,
const UtVec3dX & aPoint )

◆ CalcSphericalVecToNED()

◆ CalcSphericalWCSAngles()

void P6DofUtils::CalcSphericalWCSAngles ( const UtDCM & aDCM,
double & aYaw_rad,
double & aPitch_rad,
double & aRoll_rad )

◆ CalcUnitVectors()

void P6DofUtils::CalcUnitVectors ( const UtDCM & aDCM,
UtVec3dX & aUnitVecX,
UtVec3dX & aUnitVecY,
UtVec3dX & aUnitVecZ )

◆ CalcWGS84VecToNED()

UtVec3dX P6DofUtils::CalcWGS84VecToNED ( const UtVec3dX & aWGS84Pos_m,
const UtVec3dX & aVecWGS84_m )

◆ CanFlyAt()

P6DofUtils::CanFlyAtReturnValue P6DofUtils::CanFlyAt ( P6DofVehicle * aObject,
double aAltitude_ft,
double aVelocity_fps,
double aThrottleForward,
double aFlapsDown )

◆ CommonCreateAutopilotSupportFile()

◆ CreateAutopilotConfigFile()

void P6DofUtils::CreateAutopilotConfigFile ( P6DofVehicle * aVehicle,
const std::string & aFilename )

References P6DOF::AutopilotLimitsAndSettings::afterburnerThreshold, P6DOF::Pid::Alpha, P6DOF::AutopilotLimitsAndSettings::alpha_Max, P6DOF::AutopilotLimitsAndSettings::alpha_Min, P6DOF::Pid::Altitude, P6DOF::Pid::BankAngle, P6DOF::AutopilotLimitsAndSettings::bankAngle_Max, P6DOF::Control::BankToTurnNoYaw, P6DOF::Control::BankToTurnWithYaw, P6DOF::Pid::Beta, P6DOF::AutopilotLimitsAndSettings::beta_Max, P6DOF::Pid::DeltaPitch, P6DOF::Pid::DeltaRoll, P6DOF::Pid::FltPathAngle, P6DOF::Pid::ForwardAccel, P6DOF::AutopilotLimitsAndSettings::forwardAccel_Max, P6DOF::AutopilotLimitsAndSettings::forwardAccel_Min, P6DofPilotObject::GetCommonController(), P6DofCommonController::GetControlMethod(), P6DofCommonController::GetCurrentLimitsAndSettings(), P6DofVehicle::GetPilotObject(), P6DOF::Pid::PitchAngle, P6DOF::AutopilotLimitsAndSettings::pitchGLoad_Max, P6DOF::AutopilotLimitsAndSettings::pitchGLoad_Min, P6DOF::Pid::PitchRate, P6DOF::AutopilotLimitsAndSettings::pitchRate_Max, P6DOF::AutopilotLimitsAndSettings::pitchRate_Min, P6DOF::Pid::RollHeading, P6DOF::Pid::RollRate, P6DOF::AutopilotLimitsAndSettings::rollRate_Max, P6DOF::AutopilotLimitsAndSettings::routeAllowableAngleError_rad, P6DOF::Pid::Speed, P6DOF::AutopilotLimitsAndSettings::speedBrakeThreshold, P6DOF::Pid::TaxiForwardAccel, P6DOF::Pid::TaxiHeading, P6DOF::Pid::TaxiSpeed, P6DOF::AutopilotLimitsAndSettings::taxiSpeed_Max, P6DOF::Pid::TaxiYawRate, P6DOF::AutopilotLimitsAndSettings::taxiYawRate_Max, P6DOF::AutopilotLimitsAndSettings::turnRollInMultiplier, P6DOF::AutopilotLimitsAndSettings::vertSpd_Max, P6DOF::AutopilotLimitsAndSettings::vertSpd_Min, P6DOF::Pid::VertSpeed, WritePIDBlock(), P6DOF::AutopilotLimitsAndSettings::yawGLoad_Max, P6DOF::Pid::YawHeading, P6DOF::Pid::YawRate, P6DOF::AutopilotLimitsAndSettings::yawRate_Max, P6DOF::Control::YawToTurnNoRoll, P6DOF::Control::YawToTurnRollRate, and P6DOF::Control::YawToTurnZeroBank.

Referenced by WsfP6DOF_MoverTestObject::CreateAutopilotConfigFile().

◆ CreateAutopilotSupportFile()

void P6DofUtils::CreateAutopilotSupportFile ( P6DofVehicle * aObject,
const std::string & aFilename )

◆ CreateAutopilotSupportFileWithMaxMach()

void P6DofUtils::CreateAutopilotSupportFileWithMaxMach ( P6DofVehicle * aObject,
const std::string & aFilename,
const double & aMaxMach )

◆ DCM_InertialToBodyRel()

void P6DofUtils::DCM_InertialToBodyRel ( const UtDCM & aMatrix,
const UtVec3dX & aInertial,
UtVec3dX & aBodyRel )

◆ GetLLAFromPosition()

void P6DofUtils::GetLLAFromPosition ( const UtVec3dX & aPosition_m,
const bool aUseSpericalCoords,
double & aLat,
double & aLon,
double & aAlt_m )

◆ GetPositionFromLLA()

void P6DofUtils::GetPositionFromLLA ( const double aLat,
const double aLon,
const double aAlt_m,
const bool aUseSpericalCoords,
UtVec3dX & aPosition_m )

◆ GetRelevantPids()

std::vector< P6DOF::Pid::Type > P6DofUtils::GetRelevantPids ( P6DofVehicle * aVehicle)

◆ GetSinglePidData()

const P6DOF::SinglePidValueData & P6DofUtils::GetSinglePidData ( P6DOF::Pid::Type aPidType,
const P6DOF::AutopilotPidGroupValueData & aPidValues )

◆ GetSphericalEarthRadius_m()

double P6DofUtils::GetSphericalEarthRadius_m ( )

◆ GetSphericalNEDAngles()

void P6DofUtils::GetSphericalNEDAngles ( const UtDCM & aDCM,
const UtVec3dX & aPos,
double & aHdg_rad,
double & aPitch_rad,
double & aRoll_rad )

◆ GetVelocityFromVelNED()

void P6DofUtils::GetVelocityFromVelNED ( const double aNorthVel_mps,
const double aEastVel_mps,
const double aDownVel_mps,
const bool aUseSpericalCoords,
UtVec3dX & aPosition_m,
UtVec3dX & aVelocity_mps )

◆ InertialToBodyRel()

void P6DofUtils::InertialToBodyRel ( const UtDCM & aMatrix,
const UtVec3dX & aInertial,
UtVec3dX & aBodyRel )

◆ LimitThrottleAfterburner()

void P6DofUtils::LimitThrottleAfterburner ( double & aThrottle)

◆ LimitThrottleNormalized()

◆ SetSphericalDCM() [1/3]

void P6DofUtils::SetSphericalDCM ( const double aLat,
const double aLon,
const double aYaw_rad,
const double aPitch_rad,
const double aRoll_rad,
UtDCM & aDCM )

References SetSphericalDCM().

◆ SetSphericalDCM() [2/3]

void P6DofUtils::SetSphericalDCM ( const double aLat,
const double aLon,
UtDCM & aDCM )

◆ SetSphericalDCM() [3/3]

void P6DofUtils::SetSphericalDCM ( const UtVec3dX & aPos_m,
const double aHdg_rad,
const double aPitch_rad,
const double aRoll_rad,
UtDCM & aDCM )

◆ SphericalGreatCircleHeadingAndDistance()

void P6DofUtils::SphericalGreatCircleHeadingAndDistance ( const double aLat,
const double aLon,
const double aTargetLat,
const double aTargetLon,
double & aTargetHeading_r,
double & aTargetDistance_m )

◆ TimeToTime() [1/2]

◆ TimeToTime() [2/2]

double P6DofUtils::TimeToTime ( int64_t aSimTime_nanosec)

Variable Documentation

◆ cEPSILON_SIMTIME_NANOSEC

int64_t P6DofUtils::cEPSILON_SIMTIME_NANOSEC = 100
staticconstexpr

Referenced by P6DofVehicle::Update().

◆ cEPSILON_SIMTIME_SEC

Copyrights Multiple, All Rights Reserved