Description
Provides access to the properties and methods defining an Radar object.
Object Model
Public Methods
Public Properties
Example
Compute the probability of detection of a target for a monostatic search/track radar
[C#] | Copy Code |
---|
IAgStkObject rdrAsStkObject = radar as IAgStkObject;
IAgStkObject tgtAsStkObject = targetAircraft as IAgStkObject;
scenarioRFEnv.PropagationChannel.EnableRainLoss = true;
radar.SetModel("Monostatic");
IAgRadarModelMonostatic monostaticModel = radar.Model as IAgRadarModelMonostatic;
radar.Model.AntennaControl.EmbeddedModelOrientation.AssignAzEl(50.9, 36.8, AgEAzElAboutBoresight.eAzElAboutBoresightRotate);
radar.Model.AntennaControl.SetEmbeddedModel("Parabolic");
IAgAntennaModelParabolic parabolic = radar.Model.AntennaControl.EmbeddedModel as IAgAntennaModelParabolic;
parabolic.InputType = AgEAntennaModelInputType.eAntennaModelInputTypeBeamwidth;
parabolic.Beamwidth = 2.0;
monostaticModel.SetMode("Search Track");
IAgRadarModeMonostaticSearchTrack searchTrackMode = monostaticModel.Mode as IAgRadarModeMonostaticSearchTrack;
searchTrackMode.SetWaveformType(AgERadarWaveformSearchTrackType.eRadarWaveformSearchTrackTypeFixedPRF);
IAgRadarWaveformMonostaticSearchTrackFixedPRF fixedPrf = searchTrackMode.Waveform as IAgRadarWaveformMonostaticSearchTrackFixedPRF;
fixedPrf.PulseDefinition.Prf = 0.002;
fixedPrf.PulseDefinition.PulseWidth = 1.0e-8;
fixedPrf.PulseDefinition.NumberOfPulses = 25;
fixedPrf.PulseIntegrationType = AgERadarPulseIntegrationType.eRadarPulseIntegrationTypeGoalSNR;
IAgRadarPulseIntegrationGoalSNR pulseIntGoalSNR = fixedPrf.PulseIntegration as IAgRadarPulseIntegrationGoalSNR;
pulseIntGoalSNR.SNR = 40.0;
monostaticModel.Transmitter.FrequencySpecification = AgERadarFrequencySpec.eRadarFrequencySpecFrequency;
monostaticModel.Transmitter.Frequency = 2.1;
monostaticModel.Transmitter.Power = 50.0;
monostaticModel.Receiver.UseRain = true;
monostaticModel.Receiver.RainOutagePercent = 0.001;
monostaticModel.Receiver.SystemNoiseTemperature.ComputeType = AgENoiseTempComputeType.eNoiseTempComputeTypeCalculate;
monostaticModel.Receiver.SystemNoiseTemperature.AntennaNoiseTemperature.ComputeType = AgENoiseTempComputeType.eNoiseTempComputeTypeCalculate;
monostaticModel.Receiver.SystemNoiseTemperature.AntennaNoiseTemperature.UseRain = true;
targetAircraft.RadarCrossSection.Inherit = false;
IAgRadarCrossSectionModel rcs = targetAircraft.RadarCrossSection.Model as IAgRadarCrossSectionModel;
rcs.FrequencyBands[0].SetComputeStrategy("Constant Value");
IAgRadarCrossSectionComputeStrategyConstantValue constValRcs =
rcs.FrequencyBands[0].ComputeStrategy as IAgRadarCrossSectionComputeStrategyConstantValue;
constValRcs.ConstantValue = 0.5;
IAgStkAccess radarAccess = rdrAsStkObject.GetAccessToObject(tgtAsStkObject);
radarAccess.ComputeAccess();
IAgIntervalCollection accessIntervals = radarAccess.ComputedAccessIntervalTimes;
Array dataPrvElements = new object[] { "Time", "S/T SNR1", "S/T PDet1", "S/T Integrated SNR", "S/T Integrated PDet" };
IAgDataPrvTimeVar dp = radarAccess.DataProviders["Radar SearchTrack"] as IAgDataPrvTimeVar;
for (int index0 = 0; index0 < accessIntervals.Count; ++index0)
{
object startTime = null, stopTime = null;
accessIntervals.GetInterval(index0, out startTime, out stopTime);
IAgDrResult result = dp.ExecElements(startTime, stopTime, 60, ref dataPrvElements);
Array timeValues = result.DataSets.GetDataSetByName("Time").GetValues();
Array snr1 = result.DataSets.GetDataSetByName("S/T SNR1").GetValues();
Array pdet1 = result.DataSets.GetDataSetByName("S/T PDet1").GetValues();
Array integSnr = result.DataSets.GetDataSetByName("S/T Integrated SNR").GetValues();
Array integPdet = result.DataSets.GetDataSetByName("S/T Integrated PDet").GetValues();
for (int index1 = 0; index1 < timeValues.GetLength(0); ++index1)
{
string time = (string)timeValues.GetValue(index1);
double snr1Val = (double)snr1.GetValue(index1);
double pdet1Val = (double)pdet1.GetValue(index1);
double integSnrVal = (double)integSnr.GetValue(index1);
double integPdetVal = (double)integPdet.GetValue(index1);
Console.WriteLine("{0}: SNR1={1} PDet1={2} Integrated SNR={3} Integrated PDet={4}", time, snr1Val, pdet1Val, integSnrVal, integPdetVal);
}
Console.WriteLine();
}
|
|
Compute the probability of detection of a target for a monostatic search/track radar
[Visual Basic .NET] | Copy Code |
---|
Dim rdrAsStkObject As IAgStkObject = TryCast(radar, IAgStkObject) Dim tgtAsStkObject As IAgStkObject = TryCast(targetAircraft, IAgStkObject)
scenarioRFEnv.PropagationChannel.EnableRainLoss = True
radar.SetModel("Monostatic") Dim monostaticModel As IAgRadarModelMonostatic = TryCast(radar.Model, IAgRadarModelMonostatic)
radar.Model.AntennaControl.EmbeddedModelOrientation.AssignAzEl(50.9, 36.8, AgEAzElAboutBoresight.eAzElAboutBoresightRotate)
radar.Model.AntennaControl.SetEmbeddedModel("Parabolic") Dim parabolic As IAgAntennaModelParabolic = TryCast(radar.Model.AntennaControl.EmbeddedModel, IAgAntennaModelParabolic)
parabolic.InputType = AgEAntennaModelInputType.eAntennaModelInputTypeBeamwidth parabolic.Beamwidth = 2
monostaticModel.SetMode("Search Track") Dim searchTrackMode As IAgRadarModeMonostaticSearchTrack = TryCast(monostaticModel.Mode, IAgRadarModeMonostaticSearchTrack)
searchTrackMode.SetWaveformType(AgERadarWaveformSearchTrackType.eRadarWaveformSearchTrackTypeFixedPRF) Dim fixedPrf As IAgRadarWaveformMonostaticSearchTrackFixedPRF = TryCast(searchTrackMode.Waveform, IAgRadarWaveformMonostaticSearchTrackFixedPRF) fixedPrf.PulseDefinition.Prf = 0.002
fixedPrf.PulseDefinition.PulseWidth = 1E-08
fixedPrf.PulseDefinition.NumberOfPulses = 25
fixedPrf.PulseIntegrationType = AgERadarPulseIntegrationType.eRadarPulseIntegrationTypeGoalSNR Dim pulseIntGoalSNR As IAgRadarPulseIntegrationGoalSNR = TryCast(fixedPrf.PulseIntegration, IAgRadarPulseIntegrationGoalSNR) pulseIntGoalSNR.SNR = 40
monostaticModel.Transmitter.FrequencySpecification = AgERadarFrequencySpec.eRadarFrequencySpecFrequency monostaticModel.Transmitter.Frequency = 2.1
monostaticModel.Transmitter.Power = 50
monostaticModel.Receiver.UseRain = True monostaticModel.Receiver.RainOutagePercent = 0.001
monostaticModel.Receiver.SystemNoiseTemperature.ComputeType = AgENoiseTempComputeType.eNoiseTempComputeTypeCalculate
monostaticModel.Receiver.SystemNoiseTemperature.AntennaNoiseTemperature.ComputeType = AgENoiseTempComputeType.eNoiseTempComputeTypeCalculate monostaticModel.Receiver.SystemNoiseTemperature.AntennaNoiseTemperature.UseRain = True
targetAircraft.RadarCrossSection.Inherit = False Dim rcs As IAgRadarCrossSectionModel = TryCast(targetAircraft.RadarCrossSection.Model, IAgRadarCrossSectionModel)
rcs.FrequencyBands(0).SetComputeStrategy("Constant Value") Dim constValRcs As IAgRadarCrossSectionComputeStrategyConstantValue = TryCast(rcs.FrequencyBands(0).ComputeStrategy, IAgRadarCrossSectionComputeStrategyConstantValue)
constValRcs.ConstantValue = 0.5
Dim radarAccess As IAgStkAccess = rdrAsStkObject.GetAccessToObject(tgtAsStkObject)
radarAccess.ComputeAccess()
Dim accessIntervals As IAgIntervalCollection = radarAccess.ComputedAccessIntervalTimes
Dim dataPrvElements As Array = New Object() {"Time", "S/T SNR1", "S/T PDet1", "S/T Integrated SNR", "S/T Integrated PDet"} accessIntervals.GetInterval(index0, startTime, stopTime) Dim result As IAgDrResult = dp.ExecElements(startTime, stopTime, 60, dataPrvElements)
|
|
CoClasses that Implement IAgRadar