孫文柱 曹建平 孫忠云 曲建嶺 于世勝
1(海軍航空大學青島校區 山東 青島 266041) 2(中國人民解放軍92212部隊 山東 青島 266109)
飛行模擬訓練作為一種高效、安全和低成本的輔助訓練方式,為操作人員提供了接近真實的訓練環境,大幅提升了訓練質量效益[1-3]。隨著科學技術的發展,飛行器復雜度不斷提高,飛行模擬訓練器材經過了簡單機械式模擬、機電式模擬和計算機模擬等階段,現已發展為大規模聯網式模擬訓練樣式[4-6]。然而模擬器組網訓練過程中普遍存在網絡傳輸坐標值失真問題,表現為模擬器中速度較快的實體(比如飛機、衛星等)坐標數值經網絡傳輸后會發生失真現象,導致模擬器視景圖像的劇烈抖動。當視點與實體距離較近時這種抖動更加明顯,嚴重影響訓練人員使用體驗,降低模擬器訓練效益。
針對模擬器網絡傳輸坐標值失真問題,很多文獻進行了針對性研究并給出了解決方法。陳學文等[7]為消除載人飛行器視景仿真抖動現象,將視景仿真坐標設置與飛行器動力學坐標系一致;王煒等[8]對飛參數據進行插值平滑,消除飛行回放過程中的抖動;徐勇波等[9]基于幀同步和平滑算法提出7點滑動平均方法,有效減輕了聯網飛行模擬訓練中觀察鄰近飛機時的抖動現象,曹建平等[10]在此基礎上進行了改進并提出了基于加權滑動平均濾波算法的視景抖動消除方法。以上方法一定程度上減輕了數值失真的程度,但在嚴峻情況下仍然會出現抖動現象,且會帶來數據延遲的負面影響。
卡爾曼濾波是一種基于線性系統狀態方程,通過系統輸入輸出觀測數據對系統狀態參數進行最優估計的算法,可有效濾除系統中干擾和噪聲的影響,在傳感信號融合和飛行導航領域應用廣泛[11-12]。網絡傳輸坐標值失真問題可歸結為實時仿真中延時隨機性所帶來的干擾,在較小的時間尺度下飛機運動方程可視為線性的,因此適用于卡爾曼濾波進行估計飛機運動狀態。
組網訓練的飛行模擬器之間一般通過“集中-分發”模式進行數據交互。如圖1所示,每個飛行模擬器將飛行動力學模型輸出的飛行實體位置坐標通過采樣、網絡傳輸等操作匯總到一個數據池中,匯總完成后再將所有的飛行實體位置坐標分發給各視景。

圖1 組網飛行模擬器位置坐標數據傳輸過程
在不同的組網飛行模擬器中,位置坐標數值采用的網絡技術、采樣方式和網絡傳輸的頻率和步長不盡相同。因此,在整個傳輸過程中造成位置坐標數值失真一般由三種因素耦合產生,這三種因素包括:截斷誤差、存取周期不一致和網絡傳輸丟包和亂序。
位置數據在系統中發送和存儲的類型主要有兩種:單精度浮點數和雙精度浮點數,根據IEEE 754二進制浮點數算術標準。單精度浮點數使用32個二進制位表示一個浮點數,包括1位符號位、8位階碼和23位尾數位,其中23位二進制尾數約相當于7位十進制有效數字,超出7位的部分為無意義數值。用單精度浮點數表示經緯度時,誤差最大可達10 m以上。雙精度浮點數使用64個二進制位表示一個浮點數,包括1位符號位、11位階碼和52位尾數位,使用雙精度浮點數表示經緯度時精度較高,誤差為10-9m量級。在飛行模擬器坐標數據網絡傳輸和重采樣過程中,為避免產生截斷誤差,應遵守以下原則:
(1) 避免在網絡傳輸和重采樣過程中將經緯度坐標值轉為單精度浮點數。
(2) 如果網絡傳輸工具中只提供單精度類型,可以擴展網絡協議,將坐標數據分解為兩個單精度值,按高低位分別發送。
網絡總線是聯網模擬器常用的一種數據傳輸方式。在網絡總線數據存取時,發送方以固定周期向總線發送數據,接收方以固定周期向總線讀取數據,一般來說發送數據周期和接收周期是一致的,但在程序執行過程中,發送周期和接收周期不能保證完全同步,有時會發生一個發送周期內執行兩個讀取操作或一個發送周期內沒有執行讀取操作的情況。這時,接收方的數據就會出現與上一幀同值或數值階躍的問題,如果發送數據周期和接收周期不一致,這種問題會更加嚴重。為避免發生數據存取周期不同步和步長不一致產生誤差,數據發送與接收應遵守以下原則:
(1) 存取周期設置為相同或成倍數關系。
(2) 使用實時操作系統。
(3) 嚴格的時間同步。
(4) 數據收發采用事件觸發機制。
UDP網絡傳輸協議具有不需要建立連接、傳輸速度快的特點,常用于模擬器網絡數據發送。但由于UDP是不可靠傳輸協議,丟包和亂序問題不可避免。當發生丟包情況時,會導致接收端不更新數值。當發生亂序情況時,后發送的數據先到達,先發送的數據后到達,這會導致接收端數值發生脈沖抖動。為避免發生網絡傳輸丟包和亂序問題,UDP網絡傳輸應遵守以下原則:
(1) 數據發送頻率不宜過高。
(2) 數據包長度避免過大。
(3) 優化發送與接收算法。
目前模擬器視景抖動強弱只能用人眼定性描述,抖動程度缺乏客觀定量的標準。實質上坐標數值的失真可理解為速度的突變,每次抖動都有一個速度向正反兩個方向驟然增加而又回歸正常的過程,此時必然伴隨著加速度的瞬間大幅增加。飛機在正常飛行過程中,由于飛機設計和人體承受極限因素的限制,一般最高過載不超過9個G。檢測坐標數值失真程度時,可將坐標數值取二階導數得到加速度值,當加速度值超出正常范圍,可認為數據發生了失真,且加速度峰值越大失真程度越大。因此坐標數值取二階導數得到的加速度值可作為衡量視景抖動程度的指標,加速度峰值表示數據失真的程度,同時也表征視景抖動的劇烈程度。在實際測試過程中發現,當加速度峰值低于200 m/s2時,視景抖動不明顯,當加速度峰值高于200 m/s2并低于1 000 m/s2時,視景有輕微抖動,當加速度峰值高于1 000 m/s2時,視景抖動劇烈。
卡爾曼濾波通過輸入輸出觀測數據建立線性系統狀態方程,并能夠給出下一時刻系統狀態的最優估計[13]。本節使用卡爾曼濾波建立飛行動力學模型的系統狀態方程,并通過濾波估計得出下一時刻飛行動力學數據估計值,當網絡傳輸的飛行動力學數據發生異常時,卡爾曼濾波方法可以給出最優估計,方法如下:
包含擾動的飛機飛行動力學模型可以通過如下公式表示:
式中:xk和xk+1分別為k時刻和k+1時刻飛機狀態;uk為k時刻飛機運動參數;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為仿真步長。
B為控制矩陣:
H為觀測矩陣:

wk和vk為系統擾動噪聲,服從正態分布:
wk~N(0,Q)
(7)
vk~N(0,R)
(8)
系統當前狀態的預測估計方程為:
預測協方差為:
卡爾曼增益為:
濾波估計為:
協方差更新公式表示為:


圖2 飛機坐標數據卡爾曼濾波方法流程
選取某型戰斗機模擬器動力學模型記錄的一段直線飛行坐標數據作為真實值,人工加入總采樣點數5%的奇異值仿真觀測值。分別使用7點滑動平均法[9]和卡爾曼濾波法對帶有奇異值的飛行數據進行處理。圖3給出了飛機經度真實值、觀測值隨時間變化的曲線和兩種處理方法的處理結果。觀測值中,6.17 s處是一個奇異值,此處觀測值與真實值產生了較大偏差,其他位置上觀測值與真實值相同。兩種數據處理方法的結果與真實值都有整體上的偏移,這是由于數據經算法處理后,飛行數據產生了延遲。可以看出,7點滑動平均法處理后的數據與真實值相比偏差較大而卡爾曼濾波法的結果延遲較小。觀測值中奇異值出現以后,對數據處理結果產生了影響,卡爾曼濾波法處理后的數據產生了較小的波動,7點滑動平均法處理后的數據波動較大,7個采樣點后數據恢復正常。

圖3 飛機經度隨時間變化曲線
圖4顯示了觀測值和兩種數據處理方法結果的距離誤差。可以看出,奇異值出現以前,兩種方法處理后的數據都有不同程度的距離誤差,卡爾曼濾波法處理后的數據距離誤差較小,為0.56 m,而7點滑動平均法處理后的數據距離誤差較大,為10.58 m。幅度為20 m的奇異值出現后,對兩種數據處理方法的結果都產生了影響,卡爾曼濾波法處理后的數據增大了0.42 m的偏差,而7點滑動平均法處理后的數據產生了2.86 m的偏差。

圖4 數據處理結果的距離誤差
圖5顯示了觀測值和兩種數據處理方法結果的加速度值,奇異值出現以后,觀測值加速度波動很大,為104數量級,此時模擬器畫面會出現劇烈的抖動。經7點滑動平均法處理后加速度波動降低到103數量級,此時模擬器畫面仍會出現明顯的抖動,而且7個采樣點后又出現了一次103數量級的波動。經卡爾曼濾波法處理后加速度波動降為102數量級且波動只出現一次,隨后迅速收斂,此時模擬器畫面抖動不明顯。

圖5 數據處理結果的加速度值
選取某型戰斗機模擬器動力學模型記錄的直線飛行、垂直筋斗、水平盤旋3種狀態的3段坐標數據,每段數據1 000個采樣點,第一次在坐標采樣數據中人工加入50個奇異值作為仿真觀測值,第二次加入功率為20 dBw的白噪聲作為仿真觀測值。分別使用7點滑動平均法和卡爾曼濾波法對帶有奇異值的飛行數據進行處理。并對處理結果的均方根誤差進行比較。均方根誤差E的計算公式為:

表1給出了加入奇異值的觀測值和兩種數據處理方法結果的均方根誤差。可以看出,加入奇異值時,3種動作觀測值的均方根誤差介于2.5到2.8之間。經7點滑動平均法處理后均方根誤差不僅沒有減少,反而增大明顯,尤其是直線飛行時,這種增大更為明顯。這是因為該方法產生了較大的延遲,而延遲會產生均方根誤差。水平盤旋時飛機做圓周運動,圓周運動在一個方向上的投影是往復運動,往復過程中會補償一部分均方根誤差,因此水平盤旋時7點滑動平均法的均方根誤差略小;垂直筋斗的情況則介于直線飛行和水平盤旋之間。數據經過卡爾曼濾波法處理后均方根誤差能明顯減少,數據均方根誤差由2.5到2.8之間降到0.5以下。

表1 加入奇異值時均方根誤差
表2給出了加入白噪聲的觀測值和兩種數據處理方法結果的均方根誤差。可以看出,加入白噪聲時,3種動作觀測值的均方根誤差較大,誤差值處于10±0.15區間。經7點滑動平均法處理后直線飛行和垂直筋斗的均方根誤差值略有增大,水平盤旋的均方根誤差值略有減少。數據經過卡爾曼濾波法處理后均方根誤差能明顯減少,數據均方根誤差由10±0.15降至2.5以下。

表2 加入白噪聲時均方根誤差
本文在深入分析飛行模擬器網絡傳輸數值失真原因基礎上給出了避免模擬器傳輸數據失真的措施,并給出衡量數據失真程度的有效度量——由坐標數值經二階求導得出的加速度值。此外,在飛行動力學建模基礎上,本文提出一種基于卡爾曼濾波的飛行模擬器坐標數據聯網傳輸失真抑制方法,隨后的比較實驗證明,該方法延遲較小,能大幅減小失真數據的均方根誤差,最大程度上還原飛行模擬器坐標數據真實值,是解決飛行模擬器中視景系統中實體抖動問題的有效方法。