孫文柱 曹建平 孫忠云 曲建嶺 于世勝
1(海軍航空大學(xué)青島校區(qū) 山東 青島 266041) 2(中國人民解放軍92212部隊 山東 青島 266109)
飛行模擬訓(xùn)練作為一種高效、安全和低成本的輔助訓(xùn)練方式,為操作人員提供了接近真實的訓(xùn)練環(huán)境,大幅提升了訓(xùn)練質(zhì)量效益[1-3]。隨著科學(xué)技術(shù)的發(fā)展,飛行器復(fù)雜度不斷提高,飛行模擬訓(xùn)練器材經(jīng)過了簡單機械式模擬、機電式模擬和計算機模擬等階段,現(xiàn)已發(fā)展為大規(guī)模聯(lián)網(wǎng)式模擬訓(xùn)練樣式[4-6]。然而模擬器組網(wǎng)訓(xùn)練過程中普遍存在網(wǎng)絡(luò)傳輸坐標(biāo)值失真問題,表現(xiàn)為模擬器中速度較快的實體(比如飛機、衛(wèi)星等)坐標(biāo)數(shù)值經(jīng)網(wǎng)絡(luò)傳輸后會發(fā)生失真現(xiàn)象,導(dǎo)致模擬器視景圖像的劇烈抖動。當(dāng)視點與實體距離較近時這種抖動更加明顯,嚴(yán)重影響訓(xùn)練人員使用體驗,降低模擬器訓(xùn)練效益。
針對模擬器網(wǎng)絡(luò)傳輸坐標(biāo)值失真問題,很多文獻進行了針對性研究并給出了解決方法。陳學(xué)文等[7]為消除載人飛行器視景仿真抖動現(xiàn)象,將視景仿真坐標(biāo)設(shè)置與飛行器動力學(xué)坐標(biāo)系一致;王煒等[8]對飛參數(shù)據(jù)進行插值平滑,消除飛行回放過程中的抖動;徐勇波等[9]基于幀同步和平滑算法提出7點滑動平均方法,有效減輕了聯(lián)網(wǎng)飛行模擬訓(xùn)練中觀察鄰近飛機時的抖動現(xiàn)象,曹建平等[10]在此基礎(chǔ)上進行了改進并提出了基于加權(quán)滑動平均濾波算法的視景抖動消除方法。以上方法一定程度上減輕了數(shù)值失真的程度,但在嚴(yán)峻情況下仍然會出現(xiàn)抖動現(xiàn)象,且會帶來數(shù)據(jù)延遲的負(fù)面影響。
卡爾曼濾波是一種基于線性系統(tǒng)狀態(tài)方程,通過系統(tǒng)輸入輸出觀測數(shù)據(jù)對系統(tǒng)狀態(tài)參數(shù)進行最優(yōu)估計的算法,可有效濾除系統(tǒng)中干擾和噪聲的影響,在傳感信號融合和飛行導(dǎo)航領(lǐng)域應(yīng)用廣泛[11-12]。網(wǎng)絡(luò)傳輸坐標(biāo)值失真問題可歸結(jié)為實時仿真中延時隨機性所帶來的干擾,在較小的時間尺度下飛機運動方程可視為線性的,因此適用于卡爾曼濾波進行估計飛機運動狀態(tài)。
組網(wǎng)訓(xùn)練的飛行模擬器之間一般通過“集中-分發(fā)”模式進行數(shù)據(jù)交互。如圖1所示,每個飛行模擬器將飛行動力學(xué)模型輸出的飛行實體位置坐標(biāo)通過采樣、網(wǎng)絡(luò)傳輸?shù)炔僮鲄R總到一個數(shù)據(jù)池中,匯總完成后再將所有的飛行實體位置坐標(biāo)分發(fā)給各視景。
圖1 組網(wǎng)飛行模擬器位置坐標(biāo)數(shù)據(jù)傳輸過程
在不同的組網(wǎng)飛行模擬器中,位置坐標(biāo)數(shù)值采用的網(wǎng)絡(luò)技術(shù)、采樣方式和網(wǎng)絡(luò)傳輸?shù)念l率和步長不盡相同。因此,在整個傳輸過程中造成位置坐標(biāo)數(shù)值失真一般由三種因素耦合產(chǎn)生,這三種因素包括:截斷誤差、存取周期不一致和網(wǎng)絡(luò)傳輸丟包和亂序。
位置數(shù)據(jù)在系統(tǒng)中發(fā)送和存儲的類型主要有兩種:單精度浮點數(shù)和雙精度浮點數(shù),根據(jù)IEEE 754二進制浮點數(shù)算術(shù)標(biāo)準(zhǔn)。單精度浮點數(shù)使用32個二進制位表示一個浮點數(shù),包括1位符號位、8位階碼和23位尾數(shù)位,其中23位二進制尾數(shù)約相當(dāng)于7位十進制有效數(shù)字,超出7位的部分為無意義數(shù)值。用單精度浮點數(shù)表示經(jīng)緯度時,誤差最大可達10 m以上。雙精度浮點數(shù)使用64個二進制位表示一個浮點數(shù),包括1位符號位、11位階碼和52位尾數(shù)位,使用雙精度浮點數(shù)表示經(jīng)緯度時精度較高,誤差為10-9m量級。在飛行模擬器坐標(biāo)數(shù)據(jù)網(wǎng)絡(luò)傳輸和重采樣過程中,為避免產(chǎn)生截斷誤差,應(yīng)遵守以下原則:
(1) 避免在網(wǎng)絡(luò)傳輸和重采樣過程中將經(jīng)緯度坐標(biāo)值轉(zhuǎn)為單精度浮點數(shù)。
(2) 如果網(wǎng)絡(luò)傳輸工具中只提供單精度類型,可以擴展網(wǎng)絡(luò)協(xié)議,將坐標(biāo)數(shù)據(jù)分解為兩個單精度值,按高低位分別發(fā)送。
網(wǎng)絡(luò)總線是聯(lián)網(wǎng)模擬器常用的一種數(shù)據(jù)傳輸方式。在網(wǎng)絡(luò)總線數(shù)據(jù)存取時,發(fā)送方以固定周期向總線發(fā)送數(shù)據(jù),接收方以固定周期向總線讀取數(shù)據(jù),一般來說發(fā)送數(shù)據(jù)周期和接收周期是一致的,但在程序執(zhí)行過程中,發(fā)送周期和接收周期不能保證完全同步,有時會發(fā)生一個發(fā)送周期內(nèi)執(zhí)行兩個讀取操作或一個發(fā)送周期內(nèi)沒有執(zhí)行讀取操作的情況。這時,接收方的數(shù)據(jù)就會出現(xiàn)與上一幀同值或數(shù)值階躍的問題,如果發(fā)送數(shù)據(jù)周期和接收周期不一致,這種問題會更加嚴(yán)重。為避免發(fā)生數(shù)據(jù)存取周期不同步和步長不一致產(chǎn)生誤差,數(shù)據(jù)發(fā)送與接收應(yīng)遵守以下原則:
(1) 存取周期設(shè)置為相同或成倍數(shù)關(guān)系。
(2) 使用實時操作系統(tǒng)。
(3) 嚴(yán)格的時間同步。
(4) 數(shù)據(jù)收發(fā)采用事件觸發(fā)機制。
UDP網(wǎng)絡(luò)傳輸協(xié)議具有不需要建立連接、傳輸速度快的特點,常用于模擬器網(wǎng)絡(luò)數(shù)據(jù)發(fā)送。但由于UDP是不可靠傳輸協(xié)議,丟包和亂序問題不可避免。當(dāng)發(fā)生丟包情況時,會導(dǎo)致接收端不更新數(shù)值。當(dāng)發(fā)生亂序情況時,后發(fā)送的數(shù)據(jù)先到達,先發(fā)送的數(shù)據(jù)后到達,這會導(dǎo)致接收端數(shù)值發(fā)生脈沖抖動。為避免發(fā)生網(wǎng)絡(luò)傳輸丟包和亂序問題,UDP網(wǎng)絡(luò)傳輸應(yīng)遵守以下原則:
(1) 數(shù)據(jù)發(fā)送頻率不宜過高。
(2) 數(shù)據(jù)包長度避免過大。
(3) 優(yōu)化發(fā)送與接收算法。
目前模擬器視景抖動強弱只能用人眼定性描述,抖動程度缺乏客觀定量的標(biāo)準(zhǔn)。實質(zhì)上坐標(biāo)數(shù)值的失真可理解為速度的突變,每次抖動都有一個速度向正反兩個方向驟然增加而又回歸正常的過程,此時必然伴隨著加速度的瞬間大幅增加。飛機在正常飛行過程中,由于飛機設(shè)計和人體承受極限因素的限制,一般最高過載不超過9個G。檢測坐標(biāo)數(shù)值失真程度時,可將坐標(biāo)數(shù)值取二階導(dǎo)數(shù)得到加速度值,當(dāng)加速度值超出正常范圍,可認(rèn)為數(shù)據(jù)發(fā)生了失真,且加速度峰值越大失真程度越大。因此坐標(biāo)數(shù)值取二階導(dǎo)數(shù)得到的加速度值可作為衡量視景抖動程度的指標(biāo),加速度峰值表示數(shù)據(jù)失真的程度,同時也表征視景抖動的劇烈程度。在實際測試過程中發(fā)現(xiàn),當(dāng)加速度峰值低于200 m/s2時,視景抖動不明顯,當(dāng)加速度峰值高于200 m/s2并低于1 000 m/s2時,視景有輕微抖動,當(dāng)加速度峰值高于1 000 m/s2時,視景抖動劇烈。
卡爾曼濾波通過輸入輸出觀測數(shù)據(jù)建立線性系統(tǒng)狀態(tài)方程,并能夠給出下一時刻系統(tǒng)狀態(tài)的最優(yōu)估計[13]。本節(jié)使用卡爾曼濾波建立飛行動力學(xué)模型的系統(tǒng)狀態(tài)方程,并通過濾波估計得出下一時刻飛行動力學(xué)數(shù)據(jù)估計值,當(dāng)網(wǎng)絡(luò)傳輸?shù)娘w行動力學(xué)數(shù)據(jù)發(fā)生異常時,卡爾曼濾波方法可以給出最優(yōu)估計,方法如下:
包含擾動的飛機飛行動力學(xué)模型可以通過如下公式表示:
式中:xk和xk+1分別為k時刻和k+1時刻飛機狀態(tài);uk為k時刻飛機運動參數(shù);G為單位矩陣。
xk=[Px(k)Vx(k)Py(k)Vy(k)Pz(k)Vz(k)]T
(2)
uk=[ax(k)ax(k)ay(k)ay(k)az(k)az(k)]T=
(3)
A為狀態(tài)轉(zhuǎn)移矩陣:
式中:Δt為仿真步長。
B為控制矩陣:
H為觀測矩陣:
wk和vk為系統(tǒng)擾動噪聲,服從正態(tài)分布:
wk~N(0,Q)
(7)
vk~N(0,R)
(8)
系統(tǒng)當(dāng)前狀態(tài)的預(yù)測估計方程為:
預(yù)測協(xié)方差為:
卡爾曼增益為:
濾波估計為:
協(xié)方差更新公式表示為:
圖2 飛機坐標(biāo)數(shù)據(jù)卡爾曼濾波方法流程
選取某型戰(zhàn)斗機模擬器動力學(xué)模型記錄的一段直線飛行坐標(biāo)數(shù)據(jù)作為真實值,人工加入總采樣點數(shù)5%的奇異值仿真觀測值。分別使用7點滑動平均法[9]和卡爾曼濾波法對帶有奇異值的飛行數(shù)據(jù)進行處理。圖3給出了飛機經(jīng)度真實值、觀測值隨時間變化的曲線和兩種處理方法的處理結(jié)果。觀測值中,6.17 s處是一個奇異值,此處觀測值與真實值產(chǎn)生了較大偏差,其他位置上觀測值與真實值相同。兩種數(shù)據(jù)處理方法的結(jié)果與真實值都有整體上的偏移,這是由于數(shù)據(jù)經(jīng)算法處理后,飛行數(shù)據(jù)產(chǎn)生了延遲??梢钥闯?7點滑動平均法處理后的數(shù)據(jù)與真實值相比偏差較大而卡爾曼濾波法的結(jié)果延遲較小。觀測值中奇異值出現(xiàn)以后,對數(shù)據(jù)處理結(jié)果產(chǎn)生了影響,卡爾曼濾波法處理后的數(shù)據(jù)產(chǎn)生了較小的波動,7點滑動平均法處理后的數(shù)據(jù)波動較大,7個采樣點后數(shù)據(jù)恢復(fù)正常。
圖3 飛機經(jīng)度隨時間變化曲線
圖4顯示了觀測值和兩種數(shù)據(jù)處理方法結(jié)果的距離誤差??梢钥闯?奇異值出現(xiàn)以前,兩種方法處理后的數(shù)據(jù)都有不同程度的距離誤差,卡爾曼濾波法處理后的數(shù)據(jù)距離誤差較小,為0.56 m,而7點滑動平均法處理后的數(shù)據(jù)距離誤差較大,為10.58 m。幅度為20 m的奇異值出現(xiàn)后,對兩種數(shù)據(jù)處理方法的結(jié)果都產(chǎn)生了影響,卡爾曼濾波法處理后的數(shù)據(jù)增大了0.42 m的偏差,而7點滑動平均法處理后的數(shù)據(jù)產(chǎn)生了2.86 m的偏差。
圖4 數(shù)據(jù)處理結(jié)果的距離誤差
圖5顯示了觀測值和兩種數(shù)據(jù)處理方法結(jié)果的加速度值,奇異值出現(xiàn)以后,觀測值加速度波動很大,為104數(shù)量級,此時模擬器畫面會出現(xiàn)劇烈的抖動。經(jīng)7點滑動平均法處理后加速度波動降低到103數(shù)量級,此時模擬器畫面仍會出現(xiàn)明顯的抖動,而且7個采樣點后又出現(xiàn)了一次103數(shù)量級的波動。經(jīng)卡爾曼濾波法處理后加速度波動降為102數(shù)量級且波動只出現(xiàn)一次,隨后迅速收斂,此時模擬器畫面抖動不明顯。
圖5 數(shù)據(jù)處理結(jié)果的加速度值
選取某型戰(zhàn)斗機模擬器動力學(xué)模型記錄的直線飛行、垂直筋斗、水平盤旋3種狀態(tài)的3段坐標(biāo)數(shù)據(jù),每段數(shù)據(jù)1 000個采樣點,第一次在坐標(biāo)采樣數(shù)據(jù)中人工加入50個奇異值作為仿真觀測值,第二次加入功率為20 dBw的白噪聲作為仿真觀測值。分別使用7點滑動平均法和卡爾曼濾波法對帶有奇異值的飛行數(shù)據(jù)進行處理。并對處理結(jié)果的均方根誤差進行比較。均方根誤差E的計算公式為:
表1給出了加入奇異值的觀測值和兩種數(shù)據(jù)處理方法結(jié)果的均方根誤差??梢钥闯?加入奇異值時,3種動作觀測值的均方根誤差介于2.5到2.8之間。經(jīng)7點滑動平均法處理后均方根誤差不僅沒有減少,反而增大明顯,尤其是直線飛行時,這種增大更為明顯。這是因為該方法產(chǎn)生了較大的延遲,而延遲會產(chǎn)生均方根誤差。水平盤旋時飛機做圓周運動,圓周運動在一個方向上的投影是往復(fù)運動,往復(fù)過程中會補償一部分均方根誤差,因此水平盤旋時7點滑動平均法的均方根誤差略小;垂直筋斗的情況則介于直線飛行和水平盤旋之間。數(shù)據(jù)經(jīng)過卡爾曼濾波法處理后均方根誤差能明顯減少,數(shù)據(jù)均方根誤差由2.5到2.8之間降到0.5以下。
表1 加入奇異值時均方根誤差
表2給出了加入白噪聲的觀測值和兩種數(shù)據(jù)處理方法結(jié)果的均方根誤差。可以看出,加入白噪聲時,3種動作觀測值的均方根誤差較大,誤差值處于10±0.15區(qū)間。經(jīng)7點滑動平均法處理后直線飛行和垂直筋斗的均方根誤差值略有增大,水平盤旋的均方根誤差值略有減少。數(shù)據(jù)經(jīng)過卡爾曼濾波法處理后均方根誤差能明顯減少,數(shù)據(jù)均方根誤差由10±0.15降至2.5以下。
表2 加入白噪聲時均方根誤差
本文在深入分析飛行模擬器網(wǎng)絡(luò)傳輸數(shù)值失真原因基礎(chǔ)上給出了避免模擬器傳輸數(shù)據(jù)失真的措施,并給出衡量數(shù)據(jù)失真程度的有效度量——由坐標(biāo)數(shù)值經(jīng)二階求導(dǎo)得出的加速度值。此外,在飛行動力學(xué)建?;A(chǔ)上,本文提出一種基于卡爾曼濾波的飛行模擬器坐標(biāo)數(shù)據(jù)聯(lián)網(wǎng)傳輸失真抑制方法,隨后的比較實驗證明,該方法延遲較小,能大幅減小失真數(shù)據(jù)的均方根誤差,最大程度上還原飛行模擬器坐標(biāo)數(shù)據(jù)真實值,是解決飛行模擬器中視景系統(tǒng)中實體抖動問題的有效方法。