CST毫米波雷達(dá)仿真方案(七):結(jié)合Python完成雷達(dá)AoA仿真
作者 | Ma Bin
細(xì)心的讀者或許已經(jīng)發(fā)現(xiàn),近年來(lái)CST與Python的結(jié)合越來(lái)越多。利用Python我們可以更加方便的對(duì)CST進(jìn)行一些二次開發(fā),自動(dòng)化仿真,幫助用戶更加方便快捷地完成仿真項(xiàng)目。
在CST2023版本中,我們新增了兩個(gè)Python庫(kù):cst.asymptotic和cst.radar,分別用于A-solver和雷達(dá)數(shù)據(jù)后處理。
本期我們將利用cst.radar庫(kù)結(jié)合Python和CST軟件完成毫米波雷達(dá)AoA仿真。AoA即Angle of Arrival,主要是利用目標(biāo)與不同天線陣子的距離差引起的相位差來(lái)估算到達(dá)角。
測(cè)角原理
根據(jù)一維相位干涉儀原理,可以將由于接收天線位置差
但是需要注意,由于φ
為了解決“相位模糊”,可以采用長(zhǎng)短基線,長(zhǎng)基線測(cè)角,短基線用來(lái)解模糊,這里對(duì)短基線的要求是距離必須小于λ/2。
AoA場(chǎng)景構(gòu)建
雷達(dá)AoA仿真需要用到CST的A-solver,即高頻漸近求解器,依賴于彈跳射線算法。在CST中新建一個(gè)仿真工程,首先創(chuàng)建雷達(dá)天線陣列,這里我們用5個(gè)遠(yuǎn)場(chǎng)源代替。其中,2個(gè)遠(yuǎn)場(chǎng)源命名為Tx1、Tx2,作為發(fā)射天線,另外三個(gè)命名為RX1、Rx2、Rx3,作為接收天線。這里場(chǎng)源的名字很重要,需要與后面在Python代碼中定義的發(fā)射天線、接收天線的列表元素保持一致。
定義完場(chǎng)源后,我們需要導(dǎo)入人體模型。從CST的人體模型庫(kù)中我們可以很方便地調(diào)用人體模型。再用Coating的方式定義人體的表皮組織。
最終的仿真模型如下所示,包括人體模型和雷達(dá)天線陣列。
啟動(dòng)A-solver進(jìn)行求解,計(jì)算完成后,可以拿到Tx1和Tx2激勵(lì)下的F參數(shù)結(jié)果。
利用Python評(píng)估目標(biāo)距離及到達(dá)角
在CST中有專門的后處理模板Range
Doppler Map Calculation用于目標(biāo)距離和速度的計(jì)算,對(duì)于目標(biāo)角度信息的計(jì)算需要用到Python以及CST2023版本中新增的cst.radar庫(kù)。
Python代碼在Help中可以查看,計(jì)算AoA,除了需要導(dǎo)入一些CST研發(fā)工程師編寫的函數(shù)外,還需要導(dǎo)入一些必要的python函數(shù)庫(kù)。
運(yùn)行python代碼后,我們可以拿到如下結(jié)果。
從上述結(jié)果中我們可以提取出三個(gè)強(qiáng)散射點(diǎn)的距離-角度信息,如下表。需要注意的是,這里的結(jié)果是用肉眼看的,存在一定的誤差。
在CST中我們用Dimension功能驗(yàn)證下結(jié)果,可以看出對(duì)于雷達(dá)天線陣列來(lái)說(shuō),基本的三個(gè)強(qiáng)散射點(diǎn)都能捕捉到。在人體模型上取點(diǎn)的隨機(jī)性以及肉眼讀取Map圖結(jié)果的誤差,導(dǎo)致二者的結(jié)果不能完全匹配上,但誤差很小,不影響AoA的分析。