Engee 文档
Notebook

目标波动模型

一个例子说明了如何使用目标模型来描述有效散射面积(ESR)的波动。该场景包括一个扫描单静态雷达和一个用"Swerling-2"模型描述 EPR 的目标。

第 1 类和第 2 类波动模型的比较

在 1 型和 2 型目标模型中,EPR 来自多个独立的小反射体,其 EPR 大致相等。总 EPR 可能随扫描中每个脉冲的变化而变化(类型 2),也可能在由多个脉冲组成的整个扫描过程中保持不变(类型 1)。无论哪种情况,统计量都服从具有两个自由度的秩方概率密度函数。

停留时间和雷达扫描

为简单起见,让我们从驻留时间为 5 秒的旋转雷达开始,这相当于 72 度/秒的旋转或扫描速度。

In [ ]:
Trot = 5.0;
scanrate = 360/Trot;

雷达的主波束宽度为 3.0 度。在主波束照射目标的时间段内,雷达脉冲击中目标并反射回雷达。目标被照射的时间段称为扫描时间。雷达将对目标进行 3 次扫描。

In [ ]:
HPBW = 3.0; # ширина ДН
Tdwell = HPBW/scanrate; # время 1 круга сканирования
Nscan = 3; # количество сканирований

停留时间内到达目标的脉冲数取决于脉冲重复率(PRR)。脉冲重复率是脉冲重复周期(PRP)的倒数。假设每秒发射 5000 个脉冲。

In [ ]:
prf = 5000.0; # частота следовния импульсов
pri = 1/prf; # период повторения импульсов

每个停留时间的脉冲数为

In [ ]:
Np = floor(Int64,Tdwell*prf) 
print("Количество импульсов: $Np")
Количество импульсов: 208

设置波动模式类型 2

让我们使用EngeePhased.RadarTarget对象创建一个具有Swerling-2波动模型的目标。要创建Swerling-2模型,请将RadarTarget对象的Model属性设置为"Swerling1""Swerling2"。这两个选项是等价的。然后,每次访问该对象时,将 updatercs 参数设置为 true。该参数表示雷达 EPR 在每次脉冲时都会更新。

将目标模型设置为 "Swerling2"。

In [ ]:
tgtmodel = "Swerling2"

使用系统对象设置雷达模型

让我们安装辐射天线。假设天线的工作频率为 1 GHz。

In [ ]:
fc = 1e9 # несущая частота
antenna = EngeePhased.IsotropicAntennaElement(BackBaffled=true) # объекта антенного элемента приемника
radiator = EngeePhased.Radiator(OperatingFrequency=fc,Sensor=antenna) # излучатель

指定固定天线和目标的位置

In [ ]:
radarplatform = EngeePhased.Platform(InitialPosition=[0;0;0]) # модель движения радара
targetplatform = EngeePhased.Platform(InitialPosition=[2000;0;0]); # модель движения цели

发射信号是线性频率调制信号。每个目标呼叫发射一个脉冲。

In [ ]:
waveform = EngeePhased.LinearFMWaveform(PulseWidth=50e-6,
    OutputFormat="Pulses",NumPulses=1);

设置发射放大器。

In [ ]:
transmitter = EngeePhased.Transmitter(PeakPower=1000.0,Gain=40);

将传播介质设置为自由空间。

In [ ]:
channel = EngeePhased.FreeSpace(
    OperatingFrequency=fc,
    TwoWayPropagation=true
);

指定雷达目标必须具有中等RCS=1 м^2 ,并且是Swerling 类型 1 或 2 模型。

In [ ]:
target = EngeePhased.RadarTarget(
    MeanRCS=1,
    OperatingFrequency=fc,
    Model=tgtmodel
);

接收天线分配

In [ ]:
collector = EngeePhased.Collector(
    OperatingFrequency=1e9,
    Sensor=antenna
);

定义一个匹配滤波器来处理输入信号。

In [ ]:
wav = waveform(); # вызов прямоугольного генератора
mfilter = EngeePhased.MatchedFilter(
    Coefficients=getMatchedFilter(waveform) # коэффициенты согласованного фильтра
);

对目标 "Swerling 2 "进行 3 次扫描的处理周期

雷达系统模型的各个阶段:

  1. 辐射信号的形成
  2. 发射信号的放大
  3. 研究目标方向的信号
  4. 电磁波向目标传播和从目标传播;
  5. 目标对电磁波的反射; 6;
  6. 使用相控天线阵接收电磁波; 7.
  7. 实现接收信号的协调滤波算法

雷达信号幅度的内存分配。

In [ ]:
z = zeros(Nscan,Np);
tp = zeros(Nscan,Np);

仅为第一个扫描脉冲设置 updatercs = true

In [ ]:
for m = 1:Nscan
    t0 = (m-1)*Trot;
    t = t0;
    updatercs = true;
    for k = 1:Np
        t += pri;
        txwav = transmitter(wav);
        
        # Нахождение координат и скоростей цели и радара
        xradar,vradar = radarplatform(t);
        xtgt,vtgt = targetplatform(t);
        
        # Излучение ЭМ-волны по заданному направлению
        _,ang = rangeangle(xtgt,xradar);
        radwav = radiator(txwav,ang);
        
        # Распространение ЭМ-волны от радара до цели
        propwav = channel(radwav,radarplatform.InitialPosition,
            targetplatform.InitialPosition,[0;0;0],[0;0;0]);
        
        # Отражение ЭМ-волны от цели
        reflwav = target(propwav,updatercs);
        
        # Прием ЭМ-волны с помощью приемной антенны
        collwav = collector(reflwav,ang);
        
        # Применение согласованной фильтрации для пришедшего сигнала
        y = mfilter(collwav);
        z[m,k] = maximum(abs.(y));
        tp[m,k] = t;
    end
end

绘制脉冲振幅图

绘制扫描脉冲幅度随时间变化的曲线图。

In [ ]:
Plots.scatter(tp[:],z[:],lab="")
xlabel!("Время,с")
ylabel!("Амплитуда импульса")
Out[0]:

请注意,脉冲振幅在单次扫描中是变化的。

脉冲振幅直方图

我们来绘制处理后的接收信号振幅分布直方图

In [ ]:
Plots.histogram(z[:].*1e3,lab="")
xlabel!("Амплитуда импульса, мВ")
ylabel!("Количество")
Out[0]:

结论

在案例研究中,考虑了雷达系统在探测 1 个目标时的运行情况,以研究目标波动模型 "Swerling-2"