張一凡,張國軍,荊博原,朱 珊,梁曉琦
(中北大學(xué),省部共建動(dòng)態(tài)測試技術(shù)國家重點(diǎn)實(shí)驗(yàn)室,山西太原 030051)
隨著對海洋資源開發(fā)利用的重視,對水下目標(biāo)進(jìn)行實(shí)時(shí)方位估計(jì)成為近年來重要的研究課題[1]。矢量水聽器不僅可以檢測水下目標(biāo)的聲壓信息,還能夠檢測振速信息。因此,矢量水聽器具有單支就可以進(jìn)行目標(biāo)方位估計(jì)的優(yōu)勢[2-3]。設(shè)計(jì)的定向系統(tǒng)使用自主研制的仿生MEMS矢量水聽器,該水聽器具有體積小、成本低、靈敏度高以及指向性良好等優(yōu)點(diǎn)。隨著水聽器制作工藝以及工作性能的不斷優(yōu)化,該矢量水聽器將被廣泛應(yīng)用于水聲領(lǐng)域[4-5]。因此,設(shè)計(jì)基于STM32的MEMS矢量水聽器定向系統(tǒng)對水下目標(biāo)探測具有重要意義。
基于STM32的MEMS矢量水聽器實(shí)時(shí)定向系統(tǒng)主要由MEMS矢量水聽器、信號調(diào)理電路模塊、A/D轉(zhuǎn)化模塊、STM32單片機(jī)核心控制模塊以及串口通信模塊等部分組成。為了達(dá)到實(shí)時(shí)計(jì)算方位角的目的,將具有良好的抗同向干擾的平均聲強(qiáng)器算法集成到單片機(jī)中,對采集的目標(biāo)聲源信息進(jìn)行處理計(jì)算,并將計(jì)算結(jié)果通過串口發(fā)送到上位機(jī),系統(tǒng)的總體設(shè)計(jì)方案如圖1所示。
圖1 總體設(shè)計(jì)方案
STM32作為實(shí)時(shí)定向系統(tǒng)的主控單元,負(fù)責(zé)整個(gè)定向系統(tǒng)的控制、數(shù)據(jù)采集和處理等任務(wù),它主要控制MEMS矢量水聽器、A/D轉(zhuǎn)化電路模塊、串口通信模塊以及數(shù)據(jù)處理模塊進(jìn)行工作,分別獲得聲源目標(biāo)的標(biāo)量信息以及矢量信息,然后對這些信息進(jìn)行分析與處理,以實(shí)現(xiàn)對目標(biāo)方位的實(shí)時(shí)計(jì)算。同時(shí)STM32控制串口通信模塊將方位角的計(jì)算結(jié)果在計(jì)算機(jī)串口界面進(jìn)行輸出顯示。
研制的MEMS矢量水聽器采用了仿生原理、MEMS技術(shù)以及壓阻效應(yīng)實(shí)現(xiàn)了水下微弱聲信號的識別,四梁結(jié)構(gòu)和剛性柱體組成的敏感單元來檢測矢量聲信號,利用壓電陶瓷采集標(biāo)量聲信號,即聲壓信號[6],敏感單元如圖2所示。
圖2 敏感單元
聲信號在水中以波的形式進(jìn)行傳播[7],當(dāng)纖毛在水中檢測到波動(dòng)時(shí)發(fā)生偏轉(zhuǎn),十字懸臂梁上的壓敏電阻產(chǎn)生相應(yīng)變化,在x和y方向分別由4個(gè)壓敏電阻構(gòu)成的惠斯登電橋會將這種變化轉(zhuǎn)換為相應(yīng)電壓值的變化。基于MEMS矢量仿生水聽器,可以檢測到μV級別的聲信號[8-9],實(shí)現(xiàn)了矢量聲信號的采集,而壓電陶瓷在接收聲信號時(shí),在其內(nèi)外表面會產(chǎn)生極性相反的電荷,也實(shí)現(xiàn)了聲信號到電信號的轉(zhuǎn)變[10]。
在自然環(huán)境中,各向同性噪聲往往是噪聲的主要成分,為提高輸入信號的信噪比,減少各向同性噪聲在計(jì)算方位角時(shí)對計(jì)算結(jié)果造成的誤差,定向系統(tǒng)需選用具有較好抗各向同性噪聲能力的平均聲強(qiáng)法進(jìn)行方位角計(jì)算[11-12],平均聲強(qiáng)器原理圖如圖3所示。
圖3 平均聲強(qiáng)器原理
在圖3中np、nx、ny表示各向同性噪聲場中的噪聲,他們與目標(biāo)聲源x(t)是相互獨(dú)立的,依據(jù)圖3,可得計(jì)算式如下[13-14]:
(1)
式中:p(t)為聲壓;Vx(t)和Vy(t)分別為X和Y方向的振速;θ為水平方位角;α為垂直方位角。
如圖3所示,對采集的信號進(jìn)行平均算法并對其進(jìn)行化簡,化簡結(jié)果如下:
(2)
(3)
硬件電路設(shè)計(jì)主要包括主控單元模塊、A/D轉(zhuǎn)化模塊、微弱信號處理模塊以及串口通信模塊。
定向系統(tǒng)將具有豐富片上外設(shè)的單片機(jī)STM32F103作為核心處理芯片,通過單片機(jī)的FSMC并口驅(qū)動(dòng)AD7606進(jìn)行電信號的模數(shù)轉(zhuǎn)換,單片機(jī)通過串口通信模塊將目標(biāo)方位角的計(jì)算結(jié)果進(jìn)行輸出顯示,并通過串口通信模塊實(shí)現(xiàn)程序的下載。將單片機(jī)STM32、供電電路和A/D轉(zhuǎn)換模塊進(jìn)行集成,最終設(shè)計(jì)直徑為42 mm的圓形電路板,方便其放入管殼。單片機(jī)STM32F103與A/D轉(zhuǎn)換芯片AD7606分別放置在PCB板的兩側(cè),極大地減小了硬件電路的體積,實(shí)現(xiàn)了定向系統(tǒng)的小型化設(shè)計(jì)。主控芯片電路圖如圖4所示。
圖4 主控芯片電路
圖5 放大電路模塊
通過A/D轉(zhuǎn)換模塊將矢量水聽器輸出的模擬電信號轉(zhuǎn)化成數(shù)字信號來進(jìn)行后續(xù)的方位計(jì)算。本文使用AD7606作為轉(zhuǎn)化芯片,具有較高的采樣率,可進(jìn)行8路通道的數(shù)據(jù)采集以及最高可達(dá)200 KSPS的16 bit模數(shù)轉(zhuǎn)化。本文將OS0、OS1和OS2同時(shí)接地使得AD7606以最高的采樣速率運(yùn)行,采用5 V單電源供電,使用8080并口讀取A/D轉(zhuǎn)換的原始數(shù)據(jù),同時(shí)對矢量水聽器采集的3路信號進(jìn)行數(shù)據(jù)轉(zhuǎn)換,A/D轉(zhuǎn)化電路模塊如圖6所示。
圖6 A/D轉(zhuǎn)化電路模塊
軟件設(shè)計(jì)在STM32CubeMX和Keil uVision5軟件開發(fā)平臺中完成,核心部分為將平均聲強(qiáng)器算法集成到單片機(jī)中進(jìn)行方位角的實(shí)時(shí)計(jì)算。STM32CubeMX的使用在很大程度上減小了軟件設(shè)計(jì)的難度。
為了保證方位角計(jì)算的實(shí)時(shí)性,需要將采集的聲源信息經(jīng)AD7606轉(zhuǎn)換后通過SPI 發(fā)送到單片機(jī),直接在單片機(jī)進(jìn)行方位角的計(jì)算。軟件設(shè)計(jì)的整體流程如圖7所示,首先將單片機(jī)和AD7606進(jìn)行復(fù)位以及初始化,在STM32CubeMX中對FSMC的映射地址空間、數(shù)據(jù)存儲類型以及地址和數(shù)據(jù)建立時(shí)間等進(jìn)行配置,根據(jù)設(shè)置選擇不同的映射地址起始位。CVA和CVB是啟動(dòng)A/D轉(zhuǎn)換的控制信號輸入端,輸入上升沿,啟動(dòng)A/D轉(zhuǎn)換,當(dāng)引腳RD輸入下降沿時(shí)開始讀取數(shù)據(jù)。
圖7 軟件設(shè)計(jì)的整體流程
平均聲強(qiáng)器軟件處理流程為:將x和y方向的矢量信息與聲壓信息進(jìn)行叉乘,將計(jì)算結(jié)果寄存到定義的存儲單元中。將x和y方向的計(jì)算結(jié)果進(jìn)行多次疊加求取平均值,最后根據(jù)平均聲強(qiáng)器算法計(jì)算出方位角。
將計(jì)算得到的方位角通過串口發(fā)送到上位機(jī)中進(jìn)行數(shù)據(jù)顯示,調(diào)用串口中斷查詢的方式實(shí)現(xiàn)單片機(jī)與上位機(jī)之間的串口通信,達(dá)到了方位角的實(shí)時(shí)計(jì)算及顯示的目的。
為了驗(yàn)證定向系統(tǒng)的可行性和準(zhǔn)確性,將設(shè)計(jì)好的定向系統(tǒng)放入駐波桶中進(jìn)行室內(nèi)測試,定向系統(tǒng)的整體結(jié)構(gòu)如圖8所示。
圖8 定向系統(tǒng)的整體結(jié)構(gòu)
在駐波桶內(nèi)進(jìn)行角度實(shí)時(shí)計(jì)算實(shí)驗(yàn),測試環(huán)境如圖9所示。發(fā)聲頻率設(shè)置為315 Hz,控制自動(dòng)升降裝置進(jìn)行角度旋轉(zhuǎn),通過串口進(jìn)行角度的讀取,實(shí)驗(yàn)結(jié)果如表1所示,測量范圍在-180°~180°之間。將水聽器固定到測試裝置上,通過右側(cè)的回旋控制儀旋轉(zhuǎn)水聽器,從而改變水聽器與聲源的相對方位角。由表1可知,實(shí)際角度與計(jì)算角度誤差角度在3°以內(nèi)。
圖9 測試環(huán)境
表1 駐波桶測試結(jié)果 (°)
設(shè)計(jì)的實(shí)時(shí)定向系統(tǒng)可以實(shí)現(xiàn)方位角的實(shí)時(shí)輸出顯示,還可以通過串口將采集的3路信號傳輸?shù)接?jì)算機(jī)上以.TXT文件形式進(jìn)行存儲,數(shù)據(jù)傳輸界面如圖10所示。
圖10 數(shù)據(jù)傳輸界面
為了測試定向系統(tǒng)在計(jì)算機(jī)上進(jìn)行數(shù)據(jù)存儲的準(zhǔn)確性,在回旋控制儀顯示-20°時(shí),對應(yīng)水聽器的實(shí)際方位角為102°,將3路聲信號通過串口以.TXT格式的文件存儲在計(jì)算機(jī)上,然后通過MATLAB對數(shù)據(jù)進(jìn)行時(shí)域、頻域分析以及方位角計(jì)算,分析結(jié)果如圖11~圖13所示。圖11中的T表示采集到的聲壓信號,X和Y分別為X和Y方向的振速信號。
圖11 X和Y方向的振速信號和聲壓信號的時(shí)域圖
實(shí)驗(yàn)結(jié)束后,對通過串口回傳到計(jì)算機(jī)上的原始數(shù)據(jù)進(jìn)行分析處理,從圖11~圖12中可以看出采集的聲信號頻率為315 Hz的正弦波信號,與測試定向系統(tǒng)時(shí)駐波桶所發(fā)射的聲信號一致。使用平均聲強(qiáng)算法進(jìn)行方位角度的計(jì)算,計(jì)算結(jié)果如圖13所示,可以看出角度計(jì)算結(jié)果為102°,與回轉(zhuǎn)坐標(biāo)系統(tǒng)設(shè)定角度誤差為0°。
(a)X方向振速信號
圖13 方位角計(jì)算結(jié)果
從測試結(jié)果可以看出,設(shè)計(jì)的基于STM32的MEMS矢量水聽器定向系統(tǒng)可以精確地采集目標(biāo)聲源信息,同時(shí)實(shí)現(xiàn)對水下全方位目標(biāo)的實(shí)時(shí)方位估計(jì),定向誤差為3°,并且可以在串口端直觀地看到方位角的度數(shù)變化,對后期MEMS矢量水聽器在水下平臺上實(shí)現(xiàn)目標(biāo)的實(shí)時(shí)定向具有重要意義。