Engee 文档
Notebook

一种具有多个目标的单位置雷达系统的系统模型

该模型演示了具有多个目标(默认为4)的简单单位置雷达系统的操作,其坐标在ParamMMT中设置。jl文件。

用一个单稳态雷达建模的例子целью在接收和发射路径中,能够控制天线阵列的几何形状,其形成多瓣辐射图(DN)。

1. 模型结构的描述

让我们仔细看看模型的结构方案:

*源(波形矩形):矩形脉冲序列用作探测信号;
*发射器:信号在发射器中放大,底部使用天线阵列形成;
*分布环境(自由空间):信号传播到目标并返回接收器,经历与到目标的距离成比例的衰减;
*目标(雷达目标):反映传入信号并模拟两个目标的运动;
*接收器前置放大器:从目标反射的信号到达接收天线阵列,并通过添加接收器自身的热噪声进行放大。
*数字信号处理:数字处理由以下步骤组成:BeamFormer,Matched Felter,Tunable Gain,非相干累加(脉冲积分器);

该模型的运行方案如下图所示。

shem_1.jpg

数字处理由以下元素组成:

image.png

基于框图,我们开发了下图所示的雷达模型。

image_2.png

2. 输入参数的初始化

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

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

发射器和接收器的天线阵列的灵活配置在模型中是可能的,包括:元件类型,天线阵列几何形状(设置天线阵列参数的示例如下图所示):

image_2.png

此外,还可以使用该函数可视化天线阵列(AR)的辐射模式 pattern(). 让我们根据上图中的几何构建它。:

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]:

从底部可以看出,沿y轴AR实际上不发射辐射,但在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 ) # 打开模型
        model_output = 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 7%
Progress 16%
Progress 27%
Progress 34%
Progress 42%
Progress 49%
Progress 55%
Progress 60%
Progress 65%
Progress 70%
Progress 76%
Progress 81%
Progress 88%
Progress 95%
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="距离,m",ylabel="接收功率,MCW",gridalpha=0.5,lw=2,color=:blue)
Out[0]:

结论

在示例中,考虑了简单单位置雷达系统的操作。 由于雷达操作,在先前设定的距离(1045,1988,3532和3845米)检测到4目标。

示例中使用的块