多目标单定位雷达系统模型
该模型演示了带有多个目标(默认为 4 个)的简单单定位雷达系统的运行,这些目标的坐标在 ParamMMT.jl 文件中指定。
与[单目标单静态雷达模拟示例]("https://engee.com/helpcenter/stable/ru/interactive-scripts/radars/Monostatic_Radar_model.html")不同的是,发射和接收路径能够控制天线阵列的几何形状,从而形成多叶片模式。
1. 模型结构描述
让我们来详细了解一下模型的结构方案:
- 信号源(矩形波形)**:使用一串矩形脉冲作为探测信号;
- 发射器*:在发射器中,信号被放大,并在天线阵列的帮助下形成 DNL;
*自由空间:信号传播到目标,然后返回接收器,其衰减与目标的距离成正比; - 雷达目标*:反射入射信号并模拟两个目标的移动;
- 接收器前置放大器*:将目标反射的信号送入接收天线阵列,并加上接收器自身的热噪声进行放大。
- 数字信号处理**:数字处理包括以下步骤:波束成型器、匹配褶皱器、时变增益、脉冲积分器;
该模型的工作原理图如下图所示。

数字处理包括以下要素

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

2 输入参数初始化
为了初始化模型的输入参数,我们连接了文件 "ParamMMT.jl"。如果需要更改参数值,请打开该文件并编辑必要的参数
In [ ]:
include("$(@__DIR__)/ParamMMT.jl");
paramRadarMT = calcParams();
该模型允许对发射机和接收机的天线阵列进行灵活调整,包括:元件类型、天线阵列的几何形状(天线阵列参数设置示例如下图所示):

此外,还可以使用函数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__); # запуск модели
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 个目标。