CST毫米波雷达仿真方案(七):结合Python完成雷达AoA仿真
作者 | Ma Bin
细心的读者或许已经发现,近年来CST与Python的结合越来越多。利用Python我们可以更加方便的对CST进行一些二次开发,自动化仿真,帮助用户更加方便快捷地完成仿真项目。
在CST2023版本中,我们新增了两个Python库:cst.asymptotic和cst.radar,分别用于A-solver和雷达数据后处理。
本期我们将利用cst.radar库结合Python和CST软件完成毫米波雷达AoA仿真。AoA即Angle of Arrival,主要是利用目标与不同天线阵子的距离差引起的相位差来估算到达角。
测角原理
根据一维相位干涉仪原理,可以将由于接收天线位置差
但是需要注意,由于φ
为了解决“相位模糊”,可以采用长短基线,长基线测角,短基线用来解模糊,这里对短基线的要求是距离必须小于λ/2。
AoA场景构建
雷达AoA仿真需要用到CST的A-solver,即高频渐近求解器,依赖于弹跳射线算法。在CST中新建一个仿真工程,首先创建雷达天线阵列,这里我们用5个远场源代替。其中,2个远场源命名为Tx1、Tx2,作为发射天线,另外三个命名为RX1、Rx2、Rx3,作为接收天线。这里场源的名字很重要,需要与后面在Python代码中定义的发射天线、接收天线的列表元素保持一致。
定义完场源后,我们需要导入人体模型。从CST的人体模型库中我们可以很方便地调用人体模型。再用Coating的方式定义人体的表皮组织。
最终的仿真模型如下所示,包括人体模型和雷达天线阵列。
启动A-solver进行求解,计算完成后,可以拿到Tx1和Tx2激励下的F参数结果。
利用Python评估目标距离及到达角
在CST中有专门的后处理模板Range
Doppler Map Calculation用于目标距离和速度的计算,对于目标角度信息的计算需要用到Python以及CST2023版本中新增的cst.radar库。
Python代码在Help中可以查看,计算AoA,除了需要导入一些CST研发工程师编写的函数外,还需要导入一些必要的python函数库。
运行python代码后,我们可以拿到如下结果。
从上述结果中我们可以提取出三个强散射点的距离-角度信息,如下表。需要注意的是,这里的结果是用肉眼看的,存在一定的误差。
在CST中我们用Dimension功能验证下结果,可以看出对于雷达天线阵列来说,基本的三个强散射点都能捕捉到。在人体模型上取点的随机性以及肉眼读取Map图结果的误差,导致二者的结果不能完全匹配上,但误差很小,不影响AoA的分析。