|
WSF
|
#include <WsfESA_AntennaPattern.hpp>


Classes | |
| struct | Element |
| class | ESA_Data |
Public Types | |
| enum | LatticeType { cLT_RECTANGLULAR , cLT_TRIANGLULAR } |
| enum | WeightingFun { cWT_None = 0 , cWT_Taylor = 1 , cWT_Uniform = 2 } |
| using | ElementVec = std::vector<Element> |
| using | WeightVec = std::vector<double> |
| Public Types inherited from WsfObject | |
| typedef std::vector< WsfStringId > | TypeList |
| The list of types returned by GetTypeList. | |
Public Member Functions | |
| WsfESA_AntennaPattern (ESA_Data *aEsaData=nullptr) | |
| ~WsfESA_AntennaPattern () override | |
| WsfAntennaPattern * | Clone () const override |
| bool | Initialize (WsfSimulation *aSimulationPtr) override |
| double | GetGain (double aFrequency, double aTargetAz, double aTargetEl, double aEBS_Az, double aEBS_EL) override |
| double | GetAzimuthBeamwidth (double aFrequency, double aEBS_Azimuth, double aEBS_Elevation) const override |
| double | GetElevationBeamwidth (double aFrequency, double aEBS_Azimuth, double aEBS_Elevation) const override |
| double | GetPeakGain (double aFrequency) const override |
| Public Member Functions inherited from WsfAntennaPattern | |
| WsfAntennaPattern () | |
| WsfAntennaPattern (BaseData *aBasePtr) | |
| ~WsfAntennaPattern () override | |
| const char * | GetScriptClassName () const override |
| virtual WSF_DEPRECATED double | GetAzimuthBeamwidth (double aFrequency) const final |
| virtual WSF_DEPRECATED double | GetElevationBeamwidth (double aFrequency) const final |
| virtual double | GetMinimumGain () const |
| virtual const GainAdjustmentTable & | GetGainAdjustmentTable () const |
| virtual double | GetGainAdjustment () const |
| bool | ProcessInput (UtInput &aInput) override |
| virtual double | GetGainThresholdFraction (double aGainThreshold, double aPeakGain, double aMinAz, double aMaxAz, double aFrequency) |
| virtual void | SetAntennaBeamCount (unsigned int aBeamCount) |
| 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) |
Static Public Member Functions | |
| static WsfAntennaPattern * | ObjectFactory (const std::string &aTypeName) |
Protected Attributes | |
| WeightVec | mWeightVecX |
| WeightVec | mWeightVecY |
| Calculated aperture efficiency. | |
| double | mApertureEff |
| double | mApertureEffX |
| double | mApertureEffY |
| WsfAntennaPattern * | mElementPatternPtr |
| Protected Attributes inherited from WsfAntennaPattern | |
| BaseData * | mSharedDataPtr |
Current ESA data | |
| ElementVec | mElements |
| Current vector of elements used for pattern calculations. | |
| double | mLengthX |
| Current X-axis length of the array in meters. | |
| double | mLengthY |
| Current Y-axis length of the array in meters. | |
| int | mNX |
| Current X-axis number of elements. | |
| int | mNY |
| Current Y-axis number of elements. | |
Private data access. | |
These methods return data that should not be considered part of the public interface. They were provided to support External Services. Use at your own risk! | |
| double | GetElementSpacingX () const |
| double | GetElementSpacingY () const |
| int | GetNumberElementsX () const |
| int | GetNumberElementsY () const |
| bool | IsDistributionTaylor () const |
| bool | IsDistributionUniform () const |
| double | GetTaylorDataSidelobeLevelX () const |
| double | GetTaylorDataSidelobeLevelY () const |
| double | GetTaylorDataN_BarX () const |
| double | GetTaylorDataN_BarY () const |
| int | GetPhaseNumBits () const |
| int | GetAmpNumBits () const |
| WsfESA_AntennaPattern (const WsfESA_AntennaPattern &aSrc) | |
| WsfESA_AntennaPattern & | operator= (const WsfESA_AntennaPattern &aRhs)=delete |
| Assignment is not supported. | |
| ESA_Data * | GetData () const |
| virtual double | ComputeDirectivityGain (double aFrequency, double aEBS_Az, double aEBS_El) const |
| virtual double | ComputeElementGain (double aFrequency, double aAzAngle, double aElAngle) const |
| virtual double | ComputeElementFactor (double aFrequency, double aEBS_Az, double aEBS_El, double aAzAngle, double aElAngle) const |
| void | SetESA_DataPtr (ESA_Data *aESA_DataPtr) |
| virtual void | ResizeArray () |
| virtual void | AdjustApertureElements (ut::Random &aRandom) |
| virtual void | AdjustElementLocations () |
| void | ComputeFailedModulesWeights (ut::Random &aRandom) |
Additional Inherited Members | |
| Static Public Attributes inherited from WsfAntennaPattern | |
| static const char * | cTYPE_KIND = "antenna_pattern" |
| Protected Member Functions inherited from WsfAntennaPattern | |
| WsfAntennaPattern (const WsfAntennaPattern &aSrc) | |
| Copy Constructor for Clone(). | |
| WsfAntennaPattern & | operator= (const WsfAntennaPattern &aRhs) |
| virtual double | ApplyEBS (double aBeamwidth, double aEBS_Az, double aEBS_El) const |
| WsfObject (const WsfObject &aSrc) | |
| Copy constructor (for Clone()). | |
The implementation of an 'Electronically Scanned Array (ESA)' antenna patterns.
Different weighting functions can be applied:
| using WsfESA_AntennaPattern::ElementVec = std::vector<Element> |
| using WsfESA_AntennaPattern::WeightVec = std::vector<double> |
| WsfESA_AntennaPattern::WsfESA_AntennaPattern | ( | ESA_Data * | aEsaData = nullptr | ) |
References mApertureEff, mApertureEffX, mApertureEffY, mElementPatternPtr, mElements, mLengthX, mLengthY, mNX, mNY, WsfAntennaPattern::mSharedDataPtr, mWeightVecX, mWeightVecY, and WsfAntennaPattern::WsfAntennaPattern().
Referenced by Clone(), ObjectFactory(), WsfESA_NX_AntennaPattern::ObjectFactory(), operator=(), WsfElementESA_AntennaPattern::WsfElementESA_AntennaPattern(), WsfElementESA_AntennaPattern::WsfElementESA_AntennaPattern(), WsfESA_AntennaPattern(), WsfESA_NX_AntennaPattern::WsfESA_NX_AntennaPattern(), and WsfESA_NX_AntennaPattern::WsfESA_NX_AntennaPattern().
|
override |
References mElementPatternPtr.
|
protected |
|
protectedvirtual |
References AdjustElementLocations(), ComputeFailedModulesWeights(), mElements, mNX, mNY, mWeightVecX, mWeightVecY, and ResizeArray().
Referenced by Initialize(), WsfESA_NX_AntennaPattern::Initialize(), and WsfESA_NX_AntennaPattern::SetAntennaBeamCount().
|
protectedvirtual |
Reimplemented in WsfESA_NX_AntennaPattern.
References cLT_TRIANGLULAR, mElements, WsfESA_AntennaPattern::Element::mLocation, mNX, and mNY.
Referenced by AdjustApertureElements().
|
overridevirtual |
Return a copy of this object. Must be implemented by all derived types. If cloning is impossible, a WsfUncloneableException should be thrown.
Reimplemented from WsfAntennaPattern.
Reimplemented in WsfESA_NX_AntennaPattern.
References WsfAntennaPattern::WsfAntennaPattern(), and WsfESA_AntennaPattern().
|
protectedvirtual |
Reimplemented in WsfElementESA_AntennaPattern, and WsfESA_NX_AntennaPattern.
References mApertureEff, mNX, and mNY.
Referenced by WsfESA_NX_AntennaPattern::ComputeDirectivityGain(), and ComputeElementFactor().
|
protectedvirtual |
References ComputeDirectivityGain(), ComputeElementGain(), and mApertureEff.
|
protectedvirtual |
Reimplemented in WsfElementESA_AntennaPattern.
References mElementPatternPtr, mElements, mNX, and mNY.
Referenced by ComputeElementFactor().
|
protected |
References mElements, mNX, and mNY.
Referenced by AdjustApertureElements(), and WsfElementESA_AntennaPattern::Initialize().
|
inline |
|
overridevirtual |
Return the azimuth beamwidth at the specified frequency. The beamwidth is defined to be the width of the main lobe where the gain is 3 dB down from the peak gain.
| aFrequency | The frequency in Hz. |
| aEBS_Azimuth | The Electronic Beamwidth Steering in terms of Azimuth (radians) |
| aEBS_Elevation | The Electronic Beamwidth Steering in terms of Elevation (radians) |
Reimplemented from WsfAntennaPattern.
References WsfAntennaPattern::ApplyEBS(), mApertureEffX, and mNX.
|
inlineprotected |
Referenced by WsfElementESA_AntennaPattern::GetEESA_Data(), and WsfESA_NX_AntennaPattern::NX_Data().
|
inline |
|
inline |
|
overridevirtual |
Return the elevation beamwidth at the specified frequency. The beamwidth is defined to be the width of the main lobe where the gain is 3 dB down from the peak gain.
| aFrequency | The frequency in Hz. |
| aEBS_Azimuth | The Electronic Beamwidth Steering in terms of Azimuth (radians) |
| aEBS_Elevation | The Electronic Beamwidth Steering in terms of Elevation (radians) |
Reimplemented from WsfAntennaPattern.
References WsfAntennaPattern::ApplyEBS(), mApertureEffY, and mNY.
|
overridevirtual |
Return the antenna gain at a specified azimuth and elevation.
| aFrequency | The frequency at which to get the gain (Hz). |
| aTargetAz | Target azimuth with respect to the gain pattern boresight (radians). |
| aTargetEl | Target elevation with respect to the gain pattern boresight (radians). |
| aEBS_Az | The Electronic Beam Steering azimuth angle (radians). |
| aEBS_El | The Electronic Beam Steering elevation angle (radians). |
Reimplemented from WsfAntennaPattern.
|
inline |
|
inline |
|
overridevirtual |
Return the peak (boresight) gain in the pattern at the specified frequency.
| aFrequency | The frequency in Hz. |
Reimplemented from WsfAntennaPattern.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
overridevirtual |
Initialize the antenna pattern. This is called after all the input for an antenna pattern has been processed.
Reimplemented from WsfAntennaPattern.
Reimplemented in WsfESA_NX_AntennaPattern.
References AdjustApertureElements(), WsfObjectTypeList< T >::Clone(), WsfAntennaPatternTypes::Get(), WsfSimulation::GetRandom(), WsfSimulation::GetScenario(), WsfObject::GetType(), WsfAntennaPattern::Initialize(), mApertureEff, mApertureEffX, mApertureEffY, mElementPatternPtr, and ok.
Referenced by WsfESA_AntennaPattern().
|
inline |
References cWT_Taylor.
|
inline |
References cWT_Uniform.
|
static |
Factory method for WsfAntennaPatternTypes. This is called by WsfAntennaPatternTypes::LoadType to determine if a pattern represented by this class is being requested.
References WsfAntennaPattern::WsfAntennaPattern(), and WsfESA_AntennaPattern().
Referenced by WsfMilExtension::AddedToScenario().
|
protecteddelete |
Assignment is not supported.
References WsfESA_AntennaPattern().
|
protectedvirtual |
Reimplemented in WsfESA_NX_AntennaPattern.
References mLengthX, mLengthY, mNX, and mNY.
Referenced by AdjustApertureElements().
|
inlineprotected |
|
protected |
Referenced by WsfElementESA_AntennaPattern::ComputeDirectivityGain(), ComputeDirectivityGain(), ComputeElementFactor(), WsfElementESA_AntennaPattern::Initialize(), Initialize(), WsfESA_NX_AntennaPattern::Initialize(), WsfElementESA_AntennaPattern::ProcessInput(), WsfESA_AntennaPattern(), and WsfESA_AntennaPattern().
|
protected |
|
protected |
|
protected |
Referenced by ComputeElementGain(), Initialize(), WsfESA_AntennaPattern(), WsfESA_AntennaPattern(), and ~WsfESA_AntennaPattern().
|
protected |
Current vector of elements used for pattern calculations.
Referenced by AdjustApertureElements(), AdjustElementLocations(), WsfESA_NX_AntennaPattern::AdjustElementLocations(), WsfElementESA_AntennaPattern::ComputeElementGain(), ComputeElementGain(), ComputeFailedModulesWeights(), WsfElementESA_AntennaPattern::ProcessInput(), WsfElementESA_AntennaPattern::WsfElementESA_AntennaPattern(), WsfESA_AntennaPattern(), and WsfESA_AntennaPattern().
|
protected |
Current X-axis length of the array in meters.
Referenced by WsfElementESA_AntennaPattern::Initialize(), ResizeArray(), WsfESA_NX_AntennaPattern::ResizeArray(), WsfESA_AntennaPattern(), and WsfESA_AntennaPattern().
|
protected |
Current Y-axis length of the array in meters.
Referenced by WsfElementESA_AntennaPattern::Initialize(), ResizeArray(), WsfESA_NX_AntennaPattern::ResizeArray(), WsfESA_AntennaPattern(), and WsfESA_AntennaPattern().
|
protected |
Current X-axis number of elements.
Referenced by AdjustApertureElements(), AdjustElementLocations(), WsfESA_NX_AntennaPattern::AdjustElementLocations(), WsfElementESA_AntennaPattern::ComputeDirectivityGain(), ComputeDirectivityGain(), WsfElementESA_AntennaPattern::ComputeElementGain(), ComputeElementGain(), ComputeFailedModulesWeights(), GetAzimuthBeamwidth(), WsfElementESA_AntennaPattern::Initialize(), ResizeArray(), WsfESA_NX_AntennaPattern::ResizeArray(), WsfESA_AntennaPattern(), and WsfESA_AntennaPattern().
|
protected |
Current Y-axis number of elements.
Referenced by AdjustApertureElements(), AdjustElementLocations(), WsfESA_NX_AntennaPattern::AdjustElementLocations(), WsfElementESA_AntennaPattern::ComputeDirectivityGain(), ComputeDirectivityGain(), WsfElementESA_AntennaPattern::ComputeElementGain(), ComputeElementGain(), ComputeFailedModulesWeights(), GetElevationBeamwidth(), WsfElementESA_AntennaPattern::Initialize(), ResizeArray(), WsfESA_NX_AntennaPattern::ResizeArray(), WsfESA_AntennaPattern(), and WsfESA_AntennaPattern().
|
protected |
Referenced by AdjustApertureElements(), WsfESA_AntennaPattern(), and WsfESA_AntennaPattern().
|
protected |
Calculated aperture efficiency.
Referenced by AdjustApertureElements(), WsfESA_AntennaPattern(), and WsfESA_AntennaPattern().