溫 鵬,周詩超,孫建港,劉 威,李 凱
(中北大學 信息探測與處理山西省重點實驗室,太原 030051)
近年來,我國國防兵器事業(yè)的蓬勃發(fā)展為常規(guī)武器性能的進一步提升帶來了新的機遇和挑戰(zhàn)。火炮作為未來戰(zhàn)爭中必不可缺的常規(guī)武器之一,在新的時代背景下也有了更高的發(fā)展目標[1]。對彈丸內(nèi)彈道運動參數(shù)的實時測量和利用成為提升火炮性能的一個重要目標[2]。
內(nèi)彈道運動探測主要研究彈丸從點火到離開發(fā)射器身管的運動規(guī)律。彈丸在膛內(nèi)運動短促而復雜[3],探測內(nèi)彈道運動過程參數(shù)變化可預測火炮戰(zhàn)場實時使用性能,并且對常規(guī)彈丸制導控制具有重要作用[4]。目前有關(guān)內(nèi)彈道運動參數(shù)探測的方法主要是對速率的測量。
膛壓測試法,其基本原理是測量膛內(nèi)壓力變化后根據(jù)內(nèi)彈道基本理論計算彈丸運動速度和位移變化。膛壓測試法可分為銅柱測壓法和電子測壓法,文獻[5]提出用銅柱測壓法對火炮的膛壓進行測試,同時測得彈丸加速度,并對實現(xiàn)的可能性進行了討論。文獻[6]應用放入式電子測壓法對火炮的膛壓進行了測試,提出基于彈底壓力變化的炮口速度解算方法,測速結(jié)果與雷達測速儀測得的炮口速度誤差在0.38%~1.38%之間。
區(qū)截靶測試法是目前主要的測試彈丸出膛速率的方法,它以彈丸出膛通過炮口間隔靶的平均速度作為彈丸出膛速率[7]。區(qū)截靶測試法種類繁多,文獻[8]設計了一種可用于輕氣炮彈速測量的新型激光測速系統(tǒng),改進了激光光路和光電轉(zhuǎn)換電路,與傳統(tǒng)激光測速系統(tǒng)相比測速結(jié)果相對擴展不確定度為0.73%。文獻[9]提出了一種差分結(jié)構(gòu)的新型測速線圈傳感器,測速信號相比常規(guī)線圈傳感器提高11.809 dB,相對測速精度達到0.15%,對彈丸測速具有更好的抗噪性。文獻[10]基于光幕靶測速方法提出小波分析法檢測與識別彈丸信息,尋找彈丸信號的奇異點,獲得同一組彈丸速度相對變化最大值與最小值差值小于1.66 m/s,提高了相對測速精度。
高速攝影成像法,這種方法通過外部架設高速攝像機來記錄彈丸的運動成幀時間和圖像特征,從而對彈丸速率和位置進行測量[11]。文獻[12]應用高速攝影技術(shù)記錄彈丸飛行過程,設計了某型彈丸飛行速度的攝影測量方案,與多普勒雷達測速結(jié)果對比相對測速差值小于7 m/s。文獻[13]利用高速攝像機、輔助光源等組成高速彈丸攝影系統(tǒng),采用彈丸目標模板匹配方法測算彈丸速度,與激光測速結(jié)果對比相對誤差小于0.05 km/s。文獻[14]提出一種火炮發(fā)射視頻自動化測速方法,利用計算機視覺得到炮彈的速度,通過與傳統(tǒng)方法比較試驗,驗證了其真實火炮的測試結(jié)果。
多普勒雷達測試法根據(jù)電磁波波長與頻移之間的關(guān)系解算出彈丸速率[15]。文獻[16]設計了一種窄帶多普勒信號實時處理系統(tǒng),使用信號頻譜搬移后再處理的方法求出彈丸初速,實測信號與給定信號頻率誤差小于160 Hz,計算時長小于3 s。文獻[17]提出基于FFT的快速小波變換和模的小波脊提取方法,對多普勒雷達彈丸測速信號處理計算得到速度,與激光測速系統(tǒng)相比誤差優(yōu)于0.2%。文獻[18]設計了一種可應用于內(nèi)、外彈道參數(shù)測試的毫米波測速雷達,采用譜分析和最小二乘法推算得到彈丸初速,測試精度達0.1%。
彈載存儲測量法使用彈載慣性傳感器測量彈丸加速度變化,文獻[19]利用單片機設計了一種彈載加速度信號采集存儲系統(tǒng),文獻[20]設計的測試儀能夠記錄彈體侵徹過程中的三維加速度數(shù)據(jù),得到的數(shù)據(jù)回收后,再進行分析計算得到彈丸出膛速度。文獻[21]進行了基于彈丸慣性力的加速度測量實驗,根據(jù)彈丸前沿加速度的變化計算得到彈丸速度。
現(xiàn)有測量彈丸速度的方法主要存在以下問題:膛壓測試法需要在身管上開孔破壞火炮身管結(jié)構(gòu),測速數(shù)據(jù)不能實時用于制導炮彈處理器[22];區(qū)截靶測試法需要在炮口布設區(qū)截裝置,不同類型的區(qū)截靶適用環(huán)境不同,不能獲得內(nèi)彈道全過程速度[23];高速攝影成像法也需要在外部安裝設備,設備對環(huán)境要求比較高,也不能獲得內(nèi)彈道全過程速度[24];多普勒雷達測試法容易受到復雜電磁干擾導致頻譜失準,現(xiàn)有測速算法耗時長,不能實時計算彈丸速度[25];彈載存儲測量法可以獲得內(nèi)彈道全過程加速度變化,但目前只是將數(shù)據(jù)獲取回收后在電腦上分析計算,未進行片上實時處理計算和利用[26]。
針對上述方法存在的問題,本文基于MEMS加速度傳感器和姿態(tài)傳感器設計了膛內(nèi)慣性測速系統(tǒng),通過分析彈載內(nèi)彈道運動測量原理,根據(jù)使用環(huán)境設計硬件系統(tǒng),在FPGA上設計Kalman濾波算法和四元數(shù)姿態(tài)算法,對原始信號處理計算得到內(nèi)彈道過程彈丸加速度、速度和位移變化。既可以將測量結(jié)果存儲到系統(tǒng)存儲器中又可以將實時數(shù)據(jù)上傳到制導炮彈處理器。
彈丸在內(nèi)彈道運動階段主要經(jīng)歷坡膛擠進過程、膛內(nèi)運動過程和出膛過程。在彈丸運動過程中采集一系列的加速度值,根據(jù)式(1)和(2),采用數(shù)值積分的方法可以得到彈丸實時運動速度和位移:
v(n)=v(0)+
(1)
s(n)=s(0)+nv(0)Δt+
(2)
式中,v(0)為初始速度;a(0)為初始加速度;a(1)~a(n)為被采樣的n個加速度點;s(0)為初始位移;s(n)為積分得到的位移信號;Δt為加速度信號采樣間隔。
根據(jù)彈丸軸線運動速度由式可得彈丸轉(zhuǎn)速:
(3)
式中,N為彈丸轉(zhuǎn)速,單位為rad/s,α為膛線纏角,r為彈丸半徑。
根據(jù)式(4)、(5),可以得到不同時刻彈丸的整體受力。
(4)
(5)
彈丸在內(nèi)彈道運動階段并不是理想的直線,彈丸運動姿態(tài)測量一方面能夠還原彈丸運動時振擺情況,另一方面可以確定彈丸擠進時刻和出膛時刻。
圖1 彈丸姿態(tài)變化示意圖
(6)
(7)
由四元數(shù)得到彈丸姿態(tài)變化角:
γ= -arcsin[2(q1q3-q0q2)]
(8)
式中,γ、θ、ψ分別為彈丸相對上一次姿態(tài)的俯仰角、偏航角和滾動角。
姿態(tài)加速度測量值在彈丸未受火藥燃燒氣壓作用時的合加速度滿足:
(9)
擠進時刻彈丸受力急劇增大,合加速度滿足:
(10)
(11)
忽略彈丸出膛后的空氣阻力,同理彈丸出膛后的受力滿足式。彈丸姿態(tài)判別如圖2所示。
圖2 彈丸姿態(tài)判別示意圖
為了進一步提高測量精度,應用Kalman濾波對傳感器采集到的原始信號濾波,式描述了狀態(tài)量和觀測量之間的關(guān)系。系統(tǒng)采集測量過程是一個動態(tài)系統(tǒng),存在測量噪聲并且滿足高斯分布特性,
X(k)=ΦX(k-1)+ΓW(k-1)
Y(k)=HX(k)+V(k)
(12)
式中,k表示離散的時刻,X(k)為系統(tǒng)在k時刻的狀態(tài)估計值,可由前一時刻的狀態(tài)值X(k-1)和兩時刻間系統(tǒng)內(nèi)的輸入噪聲W(k-1)表示,Φ為狀態(tài)轉(zhuǎn)移矩陣,Γ為噪聲的驅(qū)動矩陣,反映輸入噪聲的變化;Y(k)為系統(tǒng)測量值,H為觀測矩陣,反映系統(tǒng)中狀態(tài)量與觀測量之間的聯(lián)系,V(k)為觀測過程中引入的噪聲。
使用Kalman濾波算法處理單一加速度變量數(shù)據(jù)時,需要經(jīng)過式(13)統(tǒng)計中間量對式(12)迭代更新。
P(k+1|k)=ΦP(k|k)ΦT+ΓQΓT
K(k+1)=P(k+1|k)HT[HP(k+1|k)HT+R]-1
P(k+1|k+1)=[In-K(k+1)H]P(k+1|k)
(13)
式(13)中,P(k+1|k)表示前后相對時刻最優(yōu)估計值方差,R表示觀測噪聲的方差,In為單位矩陣表示測量過程中的信號是一維信號,ε(k+1)表示單位時刻的階躍變化,Q表示超參數(shù)矩陣,K(k+1)表示卡爾曼增益。
根據(jù)彈丸在內(nèi)彈道階段的運動特點和應用背景,設計系統(tǒng)結(jié)構(gòu)如圖3所示。為了不改變現(xiàn)有的火炮裝備結(jié)構(gòu),整個系統(tǒng)設計在一個直徑90 mm的PCB上,嵌入于122 mm口徑火炮彈丸的引信區(qū),PCB平面與彈丸圓截面同心且平行。系統(tǒng)主要由4個傳感器組成,其中MEMS加速度傳感器a1、a2、a3相互正交安裝,a1測量彈丸在內(nèi)彈道運動階段沿彈丸軸線的前進加速度,圖示為x軸;a2和a3測量彈丸與膛線部的碰撞加速度,圖示分別為y軸和z軸;傳感器a4為小量程MEMS六軸姿態(tài)傳感器,其三個測量方向與a1、a2、a3同向,用于彈丸運動的姿態(tài)測量判斷。
圖3 系統(tǒng)結(jié)構(gòu)組成圖
本系統(tǒng)硬件系統(tǒng)方案如圖4所示,主要由傳感器、信號調(diào)理采集電路、FPGA控制器、NAND FLASH數(shù)據(jù)存儲器、數(shù)據(jù)通信模塊和電源管理系統(tǒng)組成。選擇用于炮彈慣性測量的大量程、高靈敏度、耐高溫、可抗10 000 g過載的專用MEMS傳感器。系統(tǒng)工作時,傳感器采集到信號后,通過信號調(diào)理電路實現(xiàn)濾波、基準搬移,經(jīng)A/D轉(zhuǎn)換電路將模擬信號轉(zhuǎn)換為數(shù)字信號傳輸?shù)紽PGA控制器,F(xiàn)PGA對數(shù)據(jù)進行處理計算、存儲以及通過數(shù)據(jù)通信模塊上傳到具有制導功能炮彈的彈載處理器。
圖4 系統(tǒng)硬件組成圖
所用MEMS傳感器是模擬量輸出型的傳感器,在實際情況中得到的信號中包含有許多噪聲,信號調(diào)理采集電路針對信號中含有的隨機不平穩(wěn)噪聲設計具有高阻抗和高信噪比特性的有源濾波電路,同時滿足傳感器輸出帶寬要求。
A/D轉(zhuǎn)換電路選擇位寬為16 bit,采樣率為2.5 Msps的LTC2389芯片設計,考慮到高速采樣環(huán)境下可能出現(xiàn)的共模噪聲對采集的影響,芯片設計為全差分模式將加速度信號輸入到FPGA控制器。
整個系統(tǒng)都以FPGA為核心的控制處理器進行,為了快速執(zhí)行系統(tǒng)功能和處理數(shù)據(jù),采用XILINX公司的XC6SLX9-2TQG144C芯片設計。系統(tǒng)在最高采樣率時獲取到大量數(shù)據(jù),為了能夠及時處理這些數(shù)據(jù),使用CMT時鐘管理單元的IP核實現(xiàn)系統(tǒng)處理時鐘倍頻,從而實現(xiàn)大數(shù)據(jù)量下的及時處理功能。FPGA控制處理器與系統(tǒng)其它各個部分連接,所以設計的通信功能有與A/D轉(zhuǎn)換芯片的16位并行數(shù)據(jù)線,與六軸姿態(tài)傳感器的IIC通信協(xié)議,與數(shù)據(jù)存儲器的ONFI通信協(xié)議,與數(shù)據(jù)通信模塊的SPI和UART雙協(xié)議。
為了將采集到的傳感器數(shù)據(jù)存儲起來,同時能夠做到掉電不丟失和數(shù)據(jù)回收,數(shù)據(jù)存儲器設計采用鎂光公司的大容量NAND FLASH芯片MT29F1G16AAD。傳感器數(shù)據(jù)獲取速率為2.5 Msps,一般的炮彈彈丸在膛內(nèi)運動時長是幾毫秒到幾十毫秒,本系統(tǒng)試驗在實驗室環(huán)境中采用模擬擊發(fā)的方式進行,根據(jù)模擬彈丸在內(nèi)彈道運動的時間長度計算單通道數(shù)據(jù)存儲深度為312 500 byte,即125 ms的測量時長,因此設計每5個存儲塊為一個單元,其余未用到的塊作為備用。
數(shù)據(jù)通信模塊用于實現(xiàn)系統(tǒng)和制導炮彈處理器的指令通信和數(shù)據(jù)上傳。由于通信指令與數(shù)據(jù)相比簡短且量少,因此將這兩個功能分別實現(xiàn),以減少系統(tǒng)資源消耗。所設計的通信模塊包括網(wǎng)口通信和串口通信:
1)網(wǎng)口通信選用W5300芯片設計,實現(xiàn)100 M以太網(wǎng)控制功能、MAC和TCP/IP協(xié)議棧功能,80 Mb/s的最高通信速率,滿足數(shù)據(jù)存儲器中的數(shù)據(jù)和終端的實時大吞吐量快速上傳,節(jié)省數(shù)據(jù)讀取時間,為了增大計算機的訪問冗余開發(fā)支持8個端口的外部訪問功能。
2)串口通信應用CP2102芯片設計,實現(xiàn)與外部指令的交互功能,將簡短,小數(shù)據(jù)量指令以高速低比特流的形式在制導處理器和本系統(tǒng)中傳輸,可以不占用額外的通信帶寬。
本系統(tǒng)需要不同電壓并且需要嚴格控制上電時序,用EA3059芯片設計電源管理系統(tǒng),EA3059是一款4通道電源管理芯片,具有多路電源輸功能,系統(tǒng)供電使用7.4 V鋰電池提供,使其分別轉(zhuǎn)化輸出1.2 V的FPGA內(nèi)核電壓,3.3 V的FPGA引腳輸入輸出電壓,1.8 V的六軸傳感器供電電壓,5 V的加速度傳感器、信號調(diào)理模塊、數(shù)據(jù)存儲器和數(shù)據(jù)通信模塊供電電壓。在設計時考慮到電源可能引入噪聲,故在電源輸出端放置鉭電容和陶瓷電容分別濾除電源上的高頻干擾和低頻干擾,從而有效地降低電源噪聲,提升電源系統(tǒng)穩(wěn)定性。
系統(tǒng)上電之后對各個部分初始化。彈丸擊發(fā)時制導炮彈處理器將外部指令通過串口發(fā)送給本系統(tǒng),系統(tǒng)執(zhí)行后續(xù)的不同功能程序。對于錯誤指令,系統(tǒng)通過串口向制導炮彈處理器發(fā)送指令錯誤反饋。
膛內(nèi)運動狀態(tài)判斷功能的實現(xiàn)利用姿態(tài)傳感器原始數(shù)據(jù)經(jīng)過四元數(shù)算法計算判斷,如果符合式和則表明著彈丸擠進坡膛,從而實現(xiàn)擠進開始計時,F(xiàn)PGA控制器根據(jù)ADC芯片設計的采樣間隔計時。姿態(tài)傳感器原始數(shù)據(jù)經(jīng)過四元數(shù)算法再次滿足式的條件時,表明彈丸出膛,停止計時獲得彈丸運動的時長。
根據(jù)算法原理特點四元數(shù)姿態(tài)解算過程可設計為順序執(zhí)行,用Kalman算法對加速度信號中的線性高斯分布特性噪聲濾波處理,設計片上Kalman算法實現(xiàn)這個功能。數(shù)據(jù)管理功能主要實現(xiàn)運動參數(shù)的存儲,因此需要對數(shù)據(jù)存儲器擦除,讀取和寫入。
數(shù)據(jù)操作按照芯片的命令碼完成,主要實現(xiàn)數(shù)據(jù)擦除、數(shù)據(jù)讀和數(shù)據(jù)寫的功能。數(shù)據(jù)在被寫入到存儲器之前,需要對存儲器里的內(nèi)容擦除,擦除過程實現(xiàn)壞塊識別,數(shù)據(jù)寫入時避開壞塊,根據(jù)ECC校驗流程自行校驗。數(shù)據(jù)基本操作的流程如圖5所示。
圖5 數(shù)據(jù)存儲控制流程圖
Kalman濾波原理含有多個過程,為了使Kalman濾波算法在FPGA上實現(xiàn),利用FPGA的并行計算能力壓縮運算流程,提高程序?qū)崿F(xiàn)功能的速度,將式和(13)合為三個程序模塊實現(xiàn)加速度數(shù)據(jù)Kalman濾波,模塊一和二產(chǎn)生的當前輸出結(jié)果用于模塊三輸出結(jié)果的下一次更新輸入。Kalman算法程序結(jié)構(gòu)如圖6所示。
圖6 Kalman濾波算程序結(jié)構(gòu)圖
片上四元數(shù)算法實現(xiàn)過程如圖7所示,單次獲得姿態(tài)數(shù)據(jù)經(jīng)過Kalman濾波后進行重力加速度歸一化計算,實現(xiàn)初始坐標參考系設定;提取重力在各個軸向的分量,求出姿態(tài)誤差后對誤差積分,從而實現(xiàn)對迭代產(chǎn)生誤差的互補濾波;求解四元數(shù)微分方程后對四元數(shù)歸一化計算,根據(jù)四元數(shù)計算歐拉角輸出彈丸姿態(tài)角數(shù)據(jù)。
圖7 片上四元數(shù)算法實現(xiàn)過程圖
試驗采用長度為3.451 m的身管局部,將質(zhì)量塊從一定高度,以自由落體的方式產(chǎn)生勢能從而帶動測試系統(tǒng)裝置運動,模擬彈丸被擊發(fā)的過程。在本模擬實驗中為了更精確地獲得彈丸姿態(tài)和運動狀態(tài)判別,使質(zhì)量塊從不同高度下落以滿足彈丸測試裝置獲得不同的能量進行多次試驗。在出膛口設置了兩對間隔為5 cm的激光對管以區(qū)截靶的方式測試出膛速率。測試完畢后,將系統(tǒng)中存儲的讀的數(shù)據(jù)上傳到本地計算機并繪制可視圖像,將每次出膛速率與激光式區(qū)間截靶得到的速率對比,將每次出膛位移與身管長度對比,對彈丸姿態(tài)變化、速度變化和位移變化進行結(jié)果說明和分析。試驗說明如圖8所示,試現(xiàn)場如圖9所示。
圖8 試驗說明示意圖
圖9 試驗過程現(xiàn)場圖
彈丸在膛內(nèi)運動時的姿態(tài)角變化試驗結(jié)果如圖10所示,測量結(jié)果顯示彈丸的姿態(tài)角變化不大,是因為模擬彈丸的擊發(fā)過程試驗采用的身管為纏度較小的等齊膛線,所以測量結(jié)果符合實際。結(jié)果顯示彈丸在膛內(nèi)的整個運動過程中,俯仰角在84°上下波動,偏航角基本在0°上下變化,翻滾角在112°上下變化,相比俯仰角和偏航角,翻滾角變化范圍較大。將彈丸的姿態(tài)變化導入三維姿態(tài)變化軟件按照等時間抽取展示如曲線下方,直觀顯示三維彈丸模型運動姿態(tài)程振擺式運動。
圖10 彈丸姿態(tài)變化圖
姿態(tài)傳感器測量到的加速度變化試驗結(jié)果如圖11所示,可以看出彈丸在開始運動之前保持穩(wěn)定,整個彈體受地球重力加速度,大小約1 g,其y軸基本與重力方向同向,x軸、z軸由于與y軸正交,獲得的重力加速度基本為0。彈丸開始運動時判定為彈丸擠進,記彈丸開始運動的時刻為0時刻,判定依據(jù)為彈丸z軸加速度突變增大,x軸、y軸由于z軸受到大加速度,分量變小趨近于0;在0~103.74 ms內(nèi),彈丸在膛內(nèi)運動,判定依據(jù)為彈丸基本保持z軸滿量程輸出狀態(tài);在103.74 ms時,姿態(tài)加速度變化基本恢復到彈丸開始運動之前,合加速度約等于重力加速度,判定為彈丸出膛,整個過程得到彈丸在膛內(nèi)運動時間103.74 ms。
圖11 姿態(tài)加速度變化圖
試驗過程中彈丸出膛時經(jīng)過光電對管的信號試驗結(jié)果如圖12所示,結(jié)果顯示彈丸通過兩個光電對管的時間間隔為10.86 ms。根據(jù)兩對光電門間隔為5 cm計算出彈丸出膛速率約為4.604 m/s。
圖12 光電對管測時信號圖
彈丸在身管內(nèi)運動時的加速度隨時間的變化試驗結(jié)果如圖13所示,可以看到原始帶有噪聲的采集信號經(jīng)過Kalman濾波后變得平滑。其中彈丸x軸加速度在彈丸開始運動后急劇增大,y軸z軸數(shù)據(jù)有波動但不大。對各軸的加速度片上積分得到速度和位移隨時間變化曲線。由計算結(jié)果得到彈丸在x軸向運動了3.394 m,出膛速率為4.469 m/s。根據(jù)y軸z軸的結(jié)果顯示彈丸在徑向發(fā)生了相對振動運動,y軸累計位移在5 cm內(nèi),振動速度在0.75 m/s內(nèi),z軸累計位移在2.5 cm內(nèi),振動速度在0.75 m/s內(nèi)。
圖13 彈丸加速度、速度、位移變化圖
表1為五次試驗結(jié)果對比,試驗結(jié)果表明本系統(tǒng)測量得到的出膛速率與光電門式測量速率最大相對誤差分別為2.93%,內(nèi)彈道運動路程和身管長度對比最大相對誤差為1.85%。
表1 五次試驗結(jié)果對比
本文設計了一種基于MEMS加速度傳感器和六軸姿態(tài)傳感器的膛內(nèi)慣性測速系統(tǒng),實現(xiàn)了FPGA片上Kalman濾波算法和四元數(shù)姿態(tài)算法處理原始信號,得到內(nèi)彈道過程的運動參數(shù)變化。模擬試驗表明,速率和位移相對誤差分別小于2.93%和1.85%。與現(xiàn)有的測量方法相比,本系統(tǒng)可實現(xiàn)彈丸內(nèi)彈道全過程運動參數(shù)的獲取,可把運動數(shù)據(jù)實時提供給制導炮彈處理器,具有準備過程簡單,空間適應能力強的特點。