Engee 文档
Notebook

多目标单定位雷达系统模型

该模型演示了带有多个目标(默认为 4 个)的简单单定位雷达系统的运行,这些目标的坐标在 ParamMMT.jl 文件中指定。

与[单目标单静态雷达模拟示例]("https://engee.com/helpcenter/stable/ru/interactive-scripts/radars/Monostatic_Radar_model.html")不同的是,发射和接收路径能够控制天线阵列的几何形状,从而形成多叶片模式。

1. 模型结构描述

让我们来详细了解一下模型的结构方案:

  • 信号源(矩形波形)**:使用一串矩形脉冲作为探测信号;
  • 发射器:在发射器中,信号被放大,并在天线阵列的帮助下形成 DNL; **自由空间:信号传播到目标,然后返回接收器,其衰减与目标的距离成正比;
  • 雷达目标*:反射入射信号并模拟两个目标的移动;
  • 接收器前置放大器*:将目标反射的信号送入接收天线阵列,并加上接收器自身的热噪声进行放大。
  • 数字信号处理**:数字处理包括以下步骤:波束成型器、匹配褶皱器、时变增益、脉冲积分器;

该模型的工作原理图如下图所示。

shem_1.jpg

数字处理包括以下要素

image.png

根据结构图,我们开发了下图所示的雷达模型。

image_2.png

2 输入参数初始化

为了初始化模型的输入参数,我们连接了文件 "ParamMMT.jl"。如果需要更改参数值,请打开该文件并编辑必要的参数

In [ ]:
include("$(@__DIR__)/ParamMMT.jl");
paramRadarMT = calcParams();

该模型允许对发射机和接收机的天线阵列进行灵活调整,包括:元件类型、天线阵列的几何形状(天线阵列参数设置示例如下图所示):

image_2.png

此外,还可以使用函数pattern() 直观显示天线阵列(AA)的方向图。让我们以上图中的几何图形为基础,构建一个天线阵:

In [ ]:
# задание антенного элемента
antenna_element = EngeePhased.IsotropicAntennaElement(FrequencyRange=[0.0 1e20], BackBaffled=false)

# проектирование геометрии антенной решетки (в нашем случае ULA - линейная эквидистатная АР)
ULA_Array = EngeePhased.ULA(
    Element=antenna_element, # инициализация антенного элемента
    NumElements=4,# количество антенных элементов
    ElementSpacing=paramRadarMT.lambda/2, # расстояние между антенными элементами
    ArrayAxis="y", # ориентация элементов антенной решетки,
    Taper = 1 # весовой коэффициент антенного элемента
) 

# построение диаграммы направленности
pattern(ULA_Array,paramRadarMT.fc)
Out[0]:

从 DND 可以看出,沿着y轴,天线阵列实际上没有辐射,但在 x-z 平面上,它的辐射效果最好。

3.运行模型

In [ ]:
function run_model( name_model, path_to_folder ) # определение функции для прогона модели
    Path = path_to_folder * "/" * name_model * ".engee"
    if name_model in [m.name for m in engee.get_all_models()] # Проверка условия загрузки модели в ядро
        model = engee.open( name_model ) # Открыть модель
        engee.run( model, verbose=true ); # Запустить модель
        engee.close( name_model, force=true ); # Закрыть модель
    else
        model = engee.load( Path, force=true ) # Загрузить модель
        model_output = engee.run( model, verbose=true ); # Запустить модель
        engee.close( name_model, force=true ); # Закрыть модель
    end
    return model_output
end;
In [ ]:
out = run_model("MonostaticRadarMT", @__DIR__); # запуск модели
Building...
Progress 0%
Progress 3%
Progress 9%
Progress 16%
Progress 22%
Progress 29%
Progress 34%
Progress 40%
Progress 45%
Progress 52%
Progress 58%
Progress 65%
Progress 72%
Progress 77%
Progress 85%
Progress 97%
Progress 100%
Progress 100%

4.读取输出数据

从变量 out中读取所需的输出数据(本例中为 "out_MR_MT"):

In [ ]:
result = (out["out_MR_MT"]).value;

5.显示结果

让我们来绘制上一段中模型最后一步的系统响应图:

In [ ]:
out_step_end = result[end] # считывание последнего шага модели
R_engee = paramRadarMT.metersPerSample .* (0:size(out_step_end, 1) - 1) .+ paramRadarMT.rangeOffset # сетка дальности
# построение графика
plot(R_engee,abs.(out_step_end)*1e6,title="Сигнал на выходе модели после обработки от 4 целей",label="",
    xlabel="Расстояние,м",ylabel="Мощность приемника, мкВт",gridalpha=0.5,lw=2,color=:blue)
Out[0]:

输出

该示例检查了一个简单的单定位雷达系统的运行情况。雷达在事先指定的距离(1045 米、1988 米、3532 米和 3845 米)探测到 4 个目标。