溫 鵬,周詩超,孫建港,劉 威,李 凱
(中北大學 信息探測與處理山西省重點實驗室,太原 030051)
近年來,我國國防兵器事業的蓬勃發展為常規武器性能的進一步提升帶來了新的機遇和挑戰。火炮作為未來戰爭中必不可缺的常規武器之一,在新的時代背景下也有了更高的發展目標[1]。對彈丸內彈道運動參數的實時測量和利用成為提升火炮性能的一個重要目標[2]。
內彈道運動探測主要研究彈丸從點火到離開發射器身管的運動規律。彈丸在膛內運動短促而復雜[3],探測內彈道運動過程參數變化可預測火炮戰場實時使用性能,并且對常規彈丸制導控制具有重要作用[4]。目前有關內彈道運動參數探測的方法主要是對速率的測量。
膛壓測試法,其基本原理是測量膛內壓力變化后根據內彈道基本理論計算彈丸運動速度和位移變化。膛壓測試法可分為銅柱測壓法和電子測壓法,文獻[5]提出用銅柱測壓法對火炮的膛壓進行測試,同時測得彈丸加速度,并對實現的可能性進行了討論。文獻[6]應用放入式電子測壓法對火炮的膛壓進行了測試,提出基于彈底壓力變化的炮口速度解算方法,測速結果與雷達測速儀測得的炮口速度誤差在0.38%~1.38%之間。
區截靶測試法是目前主要的測試彈丸出膛速率的方法,它以彈丸出膛通過炮口間隔靶的平均速度作為彈丸出膛速率[7]。區截靶測試法種類繁多,文獻[8]設計了一種可用于輕氣炮彈速測量的新型激光測速系統,改進了激光光路和光電轉換電路,與傳統激光測速系統相比測速結果相對擴展不確定度為0.73%。文獻[9]提出了一種差分結構的新型測速線圈傳感器,測速信號相比常規線圈傳感器提高11.809 dB,相對測速精度達到0.15%,對彈丸測速具有更好的抗噪性。文獻[10]基于光幕靶測速方法提出小波分析法檢測與識別彈丸信息,尋找彈丸信號的奇異點,獲得同一組彈丸速度相對變化最大值與最小值差值小于1.66 m/s,提高了相對測速精度。
高速攝影成像法,這種方法通過外部架設高速攝像機來記錄彈丸的運動成幀時間和圖像特征,從而對彈丸速率和位置進行測量[11]。文獻[12]應用高速攝影技術記錄彈丸飛行過程,設計了某型彈丸飛行速度的攝影測量方案,與多普勒雷達測速結果對比相對測速差值小于7 m/s。文獻[13]利用高速攝像機、輔助光源等組成高速彈丸攝影系統,采用彈丸目標模板匹配方法測算彈丸速度,與激光測速結果對比相對誤差小于0.05 km/s。文獻[14]提出一種火炮發射視頻自動化測速方法,利用計算機視覺得到炮彈的速度,通過與傳統方法比較試驗,驗證了其真實火炮的測試結果。
多普勒雷達測試法根據電磁波波長與頻移之間的關系解算出彈丸速率[15]。文獻[16]設計了一種窄帶多普勒信號實時處理系統,使用信號頻譜搬移后再處理的方法求出彈丸初速,實測信號與給定信號頻率誤差小于160 Hz,計算時長小于3 s。文獻[17]提出基于FFT的快速小波變換和模的小波脊提取方法,對多普勒雷達彈丸測速信號處理計算得到速度,與激光測速系統相比誤差優于0.2%。文獻[18]設計了一種可應用于內、外彈道參數測試的毫米波測速雷達,采用譜分析和最小二乘法推算得到彈丸初速,測試精度達0.1%。
彈載存儲測量法使用彈載慣性傳感器測量彈丸加速度變化,文獻[19]利用單片機設計了一種彈載加速度信號采集存儲系統,文獻[20]設計的測試儀能夠記錄彈體侵徹過程中的三維加速度數據,得到的數據回收后,再進行分析計算得到彈丸出膛速度。文獻[21]進行了基于彈丸慣性力的加速度測量實驗,根據彈丸前沿加速度的變化計算得到彈丸速度。
現有測量彈丸速度的方法主要存在以下問題:膛壓測試法需要在身管上開孔破壞火炮身管結構,測速數據不能實時用于制導炮彈處理器[22];區截靶測試法需要在炮口布設區截裝置,不同類型的區截靶適用環境不同,不能獲得內彈道全過程速度[23];高速攝影成像法也需要在外部安裝設備,設備對環境要求比較高,也不能獲得內彈道全過程速度[24];多普勒雷達測試法容易受到復雜電磁干擾導致頻譜失準,現有測速算法耗時長,不能實時計算彈丸速度[25];彈載存儲測量法可以獲得內彈道全過程加速度變化,但目前只是將數據獲取回收后在電腦上分析計算,未進行片上實時處理計算和利用[26]。
針對上述方法存在的問題,本文基于MEMS加速度傳感器和姿態傳感器設計了膛內慣性測速系統,通過分析彈載內彈道運動測量原理,根據使用環境設計硬件系統,在FPGA上設計Kalman濾波算法和四元數姿態算法,對原始信號處理計算得到內彈道過程彈丸加速度、速度和位移變化。既可以將測量結果存儲到系統存儲器中又可以將實時數據上傳到制導炮彈處理器。
彈丸在內彈道運動階段主要經歷坡膛擠進過程、膛內運動過程和出膛過程。在彈丸運動過程中采集一系列的加速度值,根據式(1)和(2),采用數值積分的方法可以得到彈丸實時運動速度和位移:
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為加速度信號采樣間隔。
根據彈丸軸線運動速度由式可得彈丸轉速:
(3)
式中,N為彈丸轉速,單位為rad/s,α為膛線纏角,r為彈丸半徑。
根據式(4)、(5),可以得到不同時刻彈丸的整體受力。

(4)
(5)

彈丸在內彈道運動階段并不是理想的直線,彈丸運動姿態測量一方面能夠還原彈丸運動時振擺情況,另一方面可以確定彈丸擠進時刻和出膛時刻。


圖1 彈丸姿態變化示意圖

(6)

(7)
由四元數得到彈丸姿態變化角:
γ= -arcsin[2(q1q3-q0q2)]
(8)
式中,γ、θ、ψ分別為彈丸相對上一次姿態的俯仰角、偏航角和滾動角。
姿態加速度測量值在彈丸未受火藥燃燒氣壓作用時的合加速度滿足:
(9)

擠進時刻彈丸受力急劇增大,合加速度滿足:
(10)
(11)
忽略彈丸出膛后的空氣阻力,同理彈丸出膛后的受力滿足式。彈丸姿態判別如圖2所示。

圖2 彈丸姿態判別示意圖
為了進一步提高測量精度,應用Kalman濾波對傳感器采集到的原始信號濾波,式描述了狀態量和觀測量之間的關系。系統采集測量過程是一個動態系統,存在測量噪聲并且滿足高斯分布特性,
X(k)=ΦX(k-1)+ΓW(k-1)
Y(k)=HX(k)+V(k)
(12)
式中,k表示離散的時刻,X(k)為系統在k時刻的狀態估計值,可由前一時刻的狀態值X(k-1)和兩時刻間系統內的輸入噪聲W(k-1)表示,Φ為狀態轉移矩陣,Γ為噪聲的驅動矩陣,反映輸入噪聲的變化;Y(k)為系統測量值,H為觀測矩陣,反映系統中狀態量與觀測量之間的聯系,V(k)為觀測過程中引入的噪聲。
使用Kalman濾波算法處理單一加速度變量數據時,需要經過式(13)統計中間量對式(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)表示前后相對時刻最優估計值方差,R表示觀測噪聲的方差,In為單位矩陣表示測量過程中的信號是一維信號,ε(k+1)表示單位時刻的階躍變化,Q表示超參數矩陣,K(k+1)表示卡爾曼增益。
根據彈丸在內彈道階段的運動特點和應用背景,設計系統結構如圖3所示。為了不改變現有的火炮裝備結構,整個系統設計在一個直徑90 mm的PCB上,嵌入于122 mm口徑火炮彈丸的引信區,PCB平面與彈丸圓截面同心且平行。系統主要由4個傳感器組成,其中MEMS加速度傳感器a1、a2、a3相互正交安裝,a1測量彈丸在內彈道運動階段沿彈丸軸線的前進加速度,圖示為x軸;a2和a3測量彈丸與膛線部的碰撞加速度,圖示分別為y軸和z軸;傳感器a4為小量程MEMS六軸姿態傳感器,其三個測量方向與a1、a2、a3同向,用于彈丸運動的姿態測量判斷。

圖3 系統結構組成圖
本系統硬件系統方案如圖4所示,主要由傳感器、信號調理采集電路、FPGA控制器、NAND FLASH數據存儲器、數據通信模塊和電源管理系統組成。選擇用于炮彈慣性測量的大量程、高靈敏度、耐高溫、可抗10 000 g過載的專用MEMS傳感器。系統工作時,傳感器采集到信號后,通過信號調理電路實現濾波、基準搬移,經A/D轉換電路將模擬信號轉換為數字信號傳輸到FPGA控制器,FPGA對數據進行處理計算、存儲以及通過數據通信模塊上傳到具有制導功能炮彈的彈載處理器。

圖4 系統硬件組成圖
所用MEMS傳感器是模擬量輸出型的傳感器,在實際情況中得到的信號中包含有許多噪聲,信號調理采集電路針對信號中含有的隨機不平穩噪聲設計具有高阻抗和高信噪比特性的有源濾波電路,同時滿足傳感器輸出帶寬要求。

A/D轉換電路選擇位寬為16 bit,采樣率為2.5 Msps的LTC2389芯片設計,考慮到高速采樣環境下可能出現的共模噪聲對采集的影響,芯片設計為全差分模式將加速度信號輸入到FPGA控制器。
整個系統都以FPGA為核心的控制處理器進行,為了快速執行系統功能和處理數據,采用XILINX公司的XC6SLX9-2TQG144C芯片設計。系統在最高采樣率時獲取到大量數據,為了能夠及時處理這些數據,使用CMT時鐘管理單元的IP核實現系統處理時鐘倍頻,從而實現大數據量下的及時處理功能。FPGA控制處理器與系統其它各個部分連接,所以設計的通信功能有與A/D轉換芯片的16位并行數據線,與六軸姿態傳感器的IIC通信協議,與數據存儲器的ONFI通信協議,與數據通信模塊的SPI和UART雙協議。
為了將采集到的傳感器數據存儲起來,同時能夠做到掉電不丟失和數據回收,數據存儲器設計采用鎂光公司的大容量NAND FLASH芯片MT29F1G16AAD。傳感器數據獲取速率為2.5 Msps,一般的炮彈彈丸在膛內運動時長是幾毫秒到幾十毫秒,本系統試驗在實驗室環境中采用模擬擊發的方式進行,根據模擬彈丸在內彈道運動的時間長度計算單通道數據存儲深度為312 500 byte,即125 ms的測量時長,因此設計每5個存儲塊為一個單元,其余未用到的塊作為備用。
數據通信模塊用于實現系統和制導炮彈處理器的指令通信和數據上傳。由于通信指令與數據相比簡短且量少,因此將這兩個功能分別實現,以減少系統資源消耗。所設計的通信模塊包括網口通信和串口通信:
1)網口通信選用W5300芯片設計,實現100 M以太網控制功能、MAC和TCP/IP協議棧功能,80 Mb/s的最高通信速率,滿足數據存儲器中的數據和終端的實時大吞吐量快速上傳,節省數據讀取時間,為了增大計算機的訪問冗余開發支持8個端口的外部訪問功能。
2)串口通信應用CP2102芯片設計,實現與外部指令的交互功能,將簡短,小數據量指令以高速低比特流的形式在制導處理器和本系統中傳輸,可以不占用額外的通信帶寬。
本系統需要不同電壓并且需要嚴格控制上電時序,用EA3059芯片設計電源管理系統,EA3059是一款4通道電源管理芯片,具有多路電源輸功能,系統供電使用7.4 V鋰電池提供,使其分別轉化輸出1.2 V的FPGA內核電壓,3.3 V的FPGA引腳輸入輸出電壓,1.8 V的六軸傳感器供電電壓,5 V的加速度傳感器、信號調理模塊、數據存儲器和數據通信模塊供電電壓。在設計時考慮到電源可能引入噪聲,故在電源輸出端放置鉭電容和陶瓷電容分別濾除電源上的高頻干擾和低頻干擾,從而有效地降低電源噪聲,提升電源系統穩定性。
系統上電之后對各個部分初始化。彈丸擊發時制導炮彈處理器將外部指令通過串口發送給本系統,系統執行后續的不同功能程序。對于錯誤指令,系統通過串口向制導炮彈處理器發送指令錯誤反饋。
膛內運動狀態判斷功能的實現利用姿態傳感器原始數據經過四元數算法計算判斷,如果符合式和則表明著彈丸擠進坡膛,從而實現擠進開始計時,FPGA控制器根據ADC芯片設計的采樣間隔計時。姿態傳感器原始數據經過四元數算法再次滿足式的條件時,表明彈丸出膛,停止計時獲得彈丸運動的時長。
根據算法原理特點四元數姿態解算過程可設計為順序執行,用Kalman算法對加速度信號中的線性高斯分布特性噪聲濾波處理,設計片上Kalman算法實現這個功能。數據管理功能主要實現運動參數的存儲,因此需要對數據存儲器擦除,讀取和寫入。
數據操作按照芯片的命令碼完成,主要實現數據擦除、數據讀和數據寫的功能。數據在被寫入到存儲器之前,需要對存儲器里的內容擦除,擦除過程實現壞塊識別,數據寫入時避開壞塊,根據ECC校驗流程自行校驗。數據基本操作的流程如圖5所示。

圖5 數據存儲控制流程圖
Kalman濾波原理含有多個過程,為了使Kalman濾波算法在FPGA上實現,利用FPGA的并行計算能力壓縮運算流程,提高程序實現功能的速度,將式和(13)合為三個程序模塊實現加速度數據Kalman濾波,模塊一和二產生的當前輸出結果用于模塊三輸出結果的下一次更新輸入。Kalman算法程序結構如圖6所示。

圖6 Kalman濾波算程序結構圖

片上四元數算法實現過程如圖7所示,單次獲得姿態數據經過Kalman濾波后進行重力加速度歸一化計算,實現初始坐標參考系設定;提取重力在各個軸向的分量,求出姿態誤差后對誤差積分,從而實現對迭代產生誤差的互補濾波;求解四元數微分方程后對四元數歸一化計算,根據四元數計算歐拉角輸出彈丸姿態角數據。

圖7 片上四元數算法實現過程圖
試驗采用長度為3.451 m的身管局部,將質量塊從一定高度,以自由落體的方式產生勢能從而帶動測試系統裝置運動,模擬彈丸被擊發的過程。在本模擬實驗中為了更精確地獲得彈丸姿態和運動狀態判別,使質量塊從不同高度下落以滿足彈丸測試裝置獲得不同的能量進行多次試驗。在出膛口設置了兩對間隔為5 cm的激光對管以區截靶的方式測試出膛速率。測試完畢后,將系統中存儲的讀的數據上傳到本地計算機并繪制可視圖像,將每次出膛速率與激光式區間截靶得到的速率對比,將每次出膛位移與身管長度對比,對彈丸姿態變化、速度變化和位移變化進行結果說明和分析。試驗說明如圖8所示,試現場如圖9所示。

圖8 試驗說明示意圖

圖9 試驗過程現場圖
彈丸在膛內運動時的姿態角變化試驗結果如圖10所示,測量結果顯示彈丸的姿態角變化不大,是因為模擬彈丸的擊發過程試驗采用的身管為纏度較小的等齊膛線,所以測量結果符合實際。結果顯示彈丸在膛內的整個運動過程中,俯仰角在84°上下波動,偏航角基本在0°上下變化,翻滾角在112°上下變化,相比俯仰角和偏航角,翻滾角變化范圍較大。將彈丸的姿態變化導入三維姿態變化軟件按照等時間抽取展示如曲線下方,直觀顯示三維彈丸模型運動姿態程振擺式運動。

圖10 彈丸姿態變化圖
姿態傳感器測量到的加速度變化試驗結果如圖11所示,可以看出彈丸在開始運動之前保持穩定,整個彈體受地球重力加速度,大小約1 g,其y軸基本與重力方向同向,x軸、z軸由于與y軸正交,獲得的重力加速度基本為0。彈丸開始運動時判定為彈丸擠進,記彈丸開始運動的時刻為0時刻,判定依據為彈丸z軸加速度突變增大,x軸、y軸由于z軸受到大加速度,分量變小趨近于0;在0~103.74 ms內,彈丸在膛內運動,判定依據為彈丸基本保持z軸滿量程輸出狀態;在103.74 ms時,姿態加速度變化基本恢復到彈丸開始運動之前,合加速度約等于重力加速度,判定為彈丸出膛,整個過程得到彈丸在膛內運動時間103.74 ms。

圖11 姿態加速度變化圖
試驗過程中彈丸出膛時經過光電對管的信號試驗結果如圖12所示,結果顯示彈丸通過兩個光電對管的時間間隔為10.86 ms。根據兩對光電門間隔為5 cm計算出彈丸出膛速率約為4.604 m/s。

圖12 光電對管測時信號圖
彈丸在身管內運動時的加速度隨時間的變化試驗結果如圖13所示,可以看到原始帶有噪聲的采集信號經過Kalman濾波后變得平滑。其中彈丸x軸加速度在彈丸開始運動后急劇增大,y軸z軸數據有波動但不大。對各軸的加速度片上積分得到速度和位移隨時間變化曲線。由計算結果得到彈丸在x軸向運動了3.394 m,出膛速率為4.469 m/s。根據y軸z軸的結果顯示彈丸在徑向發生了相對振動運動,y軸累計位移在5 cm內,振動速度在0.75 m/s內,z軸累計位移在2.5 cm內,振動速度在0.75 m/s內。

圖13 彈丸加速度、速度、位移變化圖
表1為五次試驗結果對比,試驗結果表明本系統測量得到的出膛速率與光電門式測量速率最大相對誤差分別為2.93%,內彈道運動路程和身管長度對比最大相對誤差為1.85%。

表1 五次試驗結果對比
本文設計了一種基于MEMS加速度傳感器和六軸姿態傳感器的膛內慣性測速系統,實現了FPGA片上Kalman濾波算法和四元數姿態算法處理原始信號,得到內彈道過程的運動參數變化。模擬試驗表明,速率和位移相對誤差分別小于2.93%和1.85%。與現有的測量方法相比,本系統可實現彈丸內彈道全過程運動參數的獲取,可把運動數據實時提供給制導炮彈處理器,具有準備過程簡單,空間適應能力強的特點。