Engee 文档
Notebook

双目标双稳态雷达系统模型

在本示例中,考虑建立一个有两个目标的双稳态雷达系统模型。双稳态雷达的发射器和接收器位于不同的位置,并沿着不同的轨迹移动。

1. 模型结构描述

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

  • 信号源(线性调频):使用连续的线性调频信号作为探测信号(带宽为 3 兆赫,相当于 50 米的测距分辨率); ** **雷达发射器:放大脉冲并模拟发射器的移动; **自由空间:信号传播到目标并返回接收器,衰减与目标的距离成正比; ** **雷达目标*:反射入射信号并模拟两个目标的移动; ** **雷达接收器:接收来自目标的反射信号,添加接收器噪声并模拟运动;
  • 滤波(测距多普勒处理)**:处理单元使用一个缓冲器来累积 64 个脉冲,并使用一个处理器来执行匹配滤波以进行测距估计和 FFT 以进行多普勒频移(速度)估计;

模型示意图如下图所示。

image.png

数字处理包括以下要素

image.png

雷达模型如下图所示。

image_2.png

2 输入参数初始化

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

In [ ]:
include("$(@__DIR__)/ParamBistatic.jl")

paramBistatic = calc_param_BistaticRadar();

在模型中,接收器和发射器是分开的,并按不同轨迹运动。有 3 种运动模式匀速、等速和用户(运动轨迹按点定义)。设置发射机匀速运动的示例如下:

image_2.png

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 ) # Открыть модель
        model_output = engee.run( model, verbose=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( "BistaticRadar", @__DIR__); # Запустить модель
Building...
Progress 0%
Progress 6%
Progress 15%
Progress 25%
Progress 31%
Progress 40%
Progress 50%
Progress 59%
Progress 65%
Progress 75%
Progress 81%
Progress 89%
Progress 96%
Progress 100%
Progress 100%

4.读取输出数据

out 变量中读取所需的输出(在我们的例子中为 "out_bistatic"):

In [ ]:
out_bistatic_engee = zeros(ComplexF64,size(out["out_bistatic"].value[1],1),size(out["out_bistatic"].value[2],2),length(out["out_bistatic"].value))
[out_bistatic_engee[:,:,i] = collect(out["out_bistatic"].value[i]) for i in eachindex(out["out_bistatic"].value)];

5.显示结果

让我们绘制上一段中获得的系统速度和范围响应图:

In [ ]:
abs_out_map = abs.(out_bistatic_engee[:,:,2]).+eps(1.0)
range_doppler_map =  10log10.(abs.(abs_out_map).^2)
x_speed = range(-5000,5000;length = length(range_doppler_map[1,:]))
y_range = range(0,45;length = length(range_doppler_map[:,1]))
Plots.heatmap(x_speed, y_range, range_doppler_map,ylabel="Дальность,км ", 
    xlabel="Скорость км/ч", title="Карта доплеровских и временных задержек", colorbar_title="Мощность, дбВт",
    color=:viridis,size = (600,400), margin = 5*Plots.mm)
Out[0]:

结论

该示例研究了带有两个目标的双稳态雷达系统的运行情况。雷达运行的结果是绘制了多普勒响应(速度)和时间延迟(范围)图,用于确定两个目标的位置和速度。