魯?shù)さぃ杂来洌苡穹?
(江蘇自動化研究所,江蘇連云港 222061)
隨著計算機仿真技術的飛速發(fā)展和硬件性能的不斷提高,各國不斷增加對模擬訓練的重視程度。美軍從20世紀80年代開始,就致力于異地分布式模擬訓練的研究,取得了許多成果,提高了訓練效益[1-2]。異地分布式模擬訓練是一種能實現(xiàn)戰(zhàn)役、戰(zhàn)術、平臺、武器多級聯(lián)動的訓練。在帶動武器的異地分布式訓練系統(tǒng)中包含船艦、飛機、導彈等運動實體。訓練中這些運動實體的狀態(tài)(如位置、姿態(tài)等)是不斷變化的,仿真節(jié)點需將這些變化告知系統(tǒng)中其他相關仿真節(jié)點,以便了解這些實體目前的狀態(tài)。當系統(tǒng)中仿真的運動實體數(shù)量龐大時,節(jié)點之間大量的狀態(tài)信息發(fā)送將給整個系統(tǒng)造成通信負荷,很難保證訓練的實時性。
針對該問題有兩種解決辦法:一種辦法是提高硬件條件、構建高速大容量的通信網絡;另一種辦法是設法降低訓練系統(tǒng)的通信負荷,即減少節(jié)點之間交互的信息量,推算定位(Dead Reckoning,簡稱DR)技術就是降低節(jié)點之間信息交互量的一種手段。
DR(Dead Reckoning)一詞來源于航海。在航海中,為了使船只到達某一地點,需要使船頭保持某一方向航行一段時間,當實際航線與期望的方向出現(xiàn)較大的差異時,修正航向,再沿新的航行方向進行[3]。在分布交互仿真中采用DR技術估計仿真實體的位置和姿態(tài),限制仿真節(jié)點間實體狀態(tài)發(fā)送頻率、減少網絡傳輸數(shù)據(jù)量。使用DR技術時,對于發(fā)送實體,仿真節(jié)點維持該實體的一個高精度模型和一個DR模型,當高精度模型計算出的位置、姿態(tài)與DR模型計算出的位置、姿態(tài)的差值超過設定的值(閾值)時,仿真節(jié)點向其相關仿真節(jié)點發(fā)送該實體的由高精度模型計算出的實際位置和姿態(tài),并用此信息更新該實體的DR模型參數(shù)。對于接收實體,仿真節(jié)點內部維持其感興趣的其他實體的DR模型,并使用該模型外推其他實體的位置和姿態(tài),直到接收到狀態(tài)更新信息,使用接收到的信息更新相關實體的DR模型參數(shù),并繼續(xù)外推。
表1給出了DIS標準中的9種DR模型(Dead Reckoning Model,簡稱DRM)。DR模型可表示為DRM(F or R,P or V, W or B)。其中第一個參數(shù)表示實體是否有轉動運動,F(xiàn)表示無轉動運動,R表示有轉動運動;第二個參數(shù)表示實體是做勻速運動還是變速運動,P表示做勻速運動,V表示做變速運動;第三個參數(shù)表示實體運動所選擇的坐標系,W表示地心坐標系,B表示實體坐標系。同時第二個參數(shù)表明算法是關于位置的一階算法還是二階算法。

表1 DR模型
9種DRM中第2、3、4、5模型使用地心坐標系計算,第6、7、8、9模型使用實體坐標系計算。
地心坐標系下的位置外推公式為:
P=P0+V0×Δt
(1)
(2)
式中,P0,V0,A0分別表示地心坐標系下初始仿真時刻t0的位置向量、速度向量以及加速度向量,Δt表示算法外推的時間增量。
實體坐標系下的位置外推公式為:

(3)

(4)

(5)
仿真實體姿態(tài)由實體坐標系相對于地心坐標系的歐拉角表示,分別為ψ,θ,φ。9種模型中實體姿態(tài)外推公式為
[R]w→b=[DR][R0]w→b
(6)
式中,[DR]表示t0時刻的實體坐標旋轉到t0+Δt時刻的實體坐標的旋轉矩陣:
(7)
式中,ω=(ωx,ωy,ωz)是實體坐標系下的角速度向量。[R0]w→b表示t0時刻從地心坐標系到實體坐標系的旋轉矩陣,可由t0時刻的歐拉角計算得到。[R]w→b表示t0+Δt時刻地心坐標系到實體坐標系的旋轉矩陣,若:
則t0+Δt時刻的姿態(tài)角為:
θ=arcsin(-A11)
ψ=arccos(A11/cosθ)×sgn(A12)
φ=arccos(A33/cosθ)×sgn(A23)
(8)
仿真訓練系統(tǒng)中使用地心坐標系下的DR模型來預測實體的運動狀態(tài)。當系統(tǒng)中仿真實體做無轉動勻速運動時,使用DR(FPW)模型僅對實體位置進行外推;當系統(tǒng)中仿真實體做無轉動加速運動時,使用DR(FVW)模型僅對實體位置進行外推。當系統(tǒng)中仿真實體做轉動勻速運動時,使用DR(RPW)對實體的位置和姿態(tài)進行外推;當系統(tǒng)中仿真實體做轉動加速運動時,使用DR(RVW)模型對實體位置和姿態(tài)進行外推。在仿真實體的生命周期內,可根據(jù)實體的運動狀態(tài)選取不同的DR模型。同時在仿真系統(tǒng)中使用DR模型對實體狀態(tài)外推時,需根據(jù)仿真系統(tǒng)的精度需求設定仿真實體位置更新閾值和姿態(tài)更新閾值。
在給定的標準中[4],DR技術應用于仿真系統(tǒng)中的基本實體(Base Entity)類,包括飛行器(Aircraft)、水面艦艇(Surface Vessel)、潛航器(Surface Vessel)、車輛(Ground Vehicle)、兩棲車輛(Amphibious Vehicle)、航天器(Spacecraft)等平臺以及傳感器(Sensor)、無線電(Radio)等實體。這些實體的主要屬性有姿態(tài)、速度、加速度、空間位置、角速度。大多數(shù)仿真系統(tǒng)中,仿真實體的姿態(tài)角由實體坐標系相對于地理坐標系(北東天坐標系)的歐拉角定義,分別為航向角C,縱搖角φ以及橫搖角β。仿真實體位置信息為地理(北東天)坐標系下的速度向量V=(Vx,VyVz),加速度向量a=(ax,ay,az),以及空間位置向量p′=(X,Y,Z)。
由于系統(tǒng)中仿真實體的位置是在地理坐標系下表示的,因此需將地理坐標系下的量轉換為地心坐標系下的量進行計算。


(9)

標準DR模型中,仿真實體的姿態(tài)角通過歐拉角法計算得到。由于歐拉角法運算量大,且存在奇異點,可用四元數(shù)法求解歐拉角[5]。本文首先對四元數(shù)的基本概念進行介紹,再利用四元數(shù)方法進行實體姿態(tài)外推。
1) 四元數(shù)介紹
四元數(shù)(Quaternions)是哈密爾頓(愛爾蘭物理學家1805-1865)于1843年提出的數(shù)學概念,其指一個實數(shù)單位和三個虛數(shù)單位組成的實元的數(shù),即
Q(q0,q1,q2,q3)=q0+q1i+q2j+q3k
q0是四元數(shù)的標量部分,q=q1i+q2j+q3k是四元數(shù)的矢量部分。其還具有矢量形式以及矩陣形式:
Q=(q0,q1,q2,q3)τ

(10)
四元數(shù)點乘:
qAqB=qA0qB0+qAxqBx+qAyqBy+qAzqBz
(11)
四元數(shù)的點乘可用于計算兩個四元數(shù)之間的轉動角。設ρ是四元數(shù)qA和qB之間的轉動角。
(12)
2) 基于四元數(shù)的DR姿態(tài)外推
由于連續(xù)的旋轉可以通過四元數(shù)的乘法來表示[7]。因此仿真實體的姿態(tài)可通過四元數(shù)進行解算。已知仿真實體t0時刻的姿態(tài)角以及實體繞軸轉動的角度,可得到經Δt時間后實體的姿態(tài)角。使用四元數(shù)乘法進行姿態(tài)外推的公式如下:
qD(t0+t)=qD(t0)qDR
(13)
其中qD(t0)表示地理坐標系到實體坐標系的轉動四元數(shù),由t0時刻的姿態(tài)角C0,φ0,β0計算得到:
(14)

qDR0=cos(τ)
qDRx=uxsin(τ)
qDRy=uysin(τ)
qDRz=uzsin(τ)
(15)
qD(t0+Δt)表示t0+Δt時刻仿真實體從地理坐標系到實體坐標系的轉動四元數(shù)。
qD(t0+Δt)=(q0,qx,qy,qz)
根據(jù)轉動四元數(shù)和轉動矩陣的關系,可求得t0+Δt時刻實體的三個姿態(tài)角為:
φ=arcsin(2(qyqz+q0qx))
(16)
同樣進行姿態(tài)外推時,外推出的姿態(tài)與實際姿態(tài)存在一定的誤差,隨著仿真時間的推進,或者仿真實體的隨機機動,這個誤差可能會很大。較大的姿態(tài)誤差會影響仿真效果,因此需預先設定姿態(tài)更新閾值。假設K為設定的姿態(tài)更新閾值。
對于具有轉動運動的仿真實體,節(jié)點內部維持兩個四元數(shù),一個是使用仿真實體實際姿態(tài)角計算得到的四元數(shù)qM,另一個是使用公式(13)計算得到的四元數(shù)qD。定義α為qM與qD之間的旋轉角。
(17)
當外推出的姿態(tài)角與實際姿態(tài)角的差值超過姿態(tài)更新閾值,即α>K時
仿真節(jié)點將向外發(fā)送該實體的實際狀態(tài)信息,并更新該實體的DR模型參數(shù),包括位置信息以及姿態(tài)信息等。并用當前時刻的四元數(shù)qM(t)代替公式(13)中的四元數(shù)qD(t)(qA(t)→qD(t)),繼續(xù)進行外推,直到下次更新。
“××體系建模與仿真平臺”能支持海上方向戰(zhàn)役、戰(zhàn)術多級對抗仿真,具有模型開發(fā)、想定編輯、分析評估等功能。本文采用該仿真平臺進行仿真實驗,分別使用標準DR姿態(tài)外推模型與基于四元數(shù)的DR姿態(tài)外推模型對仿真實體的姿態(tài)進行外推,同時對仿真實體的位置進行了外推。節(jié)點內部的DR運行過程如圖1所示。
使用該仿真平臺編輯飛機飛行任務想定,飛行軌跡為曲線如圖2所示。設定飛機的位置更新閾值為100 m,姿態(tài)更新閾值為3°,仿真步長為1 s,仿真運行時間為20 min。飛機做轉動、變速運動,飛行平均速度為260.12 m/s。

圖1 DR技術運行過程圖

圖2 飛機飛行航跡
下面分別從算法運行時間、飛機姿態(tài)角、飛機運行軌跡誤差、飛機狀態(tài)更新時間間隔,來比較兩種算法。
兩種算法運行時間對比圖如圖3所示。標準DR姿態(tài)外推算法平均運行時間為0.008 466 ms,基于四元數(shù)的DR姿態(tài)外推算法平均運行時間為0.007 592 ms,較標準姿態(tài)外推算法在運行時間上降低了10.32%左右。

圖3 姿態(tài)外推算法運行時間對比圖
兩種算法外推出的飛機飛行航向角如圖4所示,飛行橫搖角如圖5所示,飛行縱搖角如圖6所示。

圖4 航向角對比圖
從圖4可以看出使用基于四元數(shù)的DR外推得到的航向角更接近于實際的航向角。

圖5 橫搖角對比圖
從圖5可以看出,仿真過程中飛機的實際橫搖角大小變化不明顯。標準DR姿態(tài)外推方法得到的橫滾角大小變化相對明顯。基于四元數(shù)的DR姿態(tài)外推方法得到的橫滾角與實際橫滾角的大小更加接近。
從圖6可以看出,運行的初始階段飛機飛行的縱搖角出現(xiàn)明顯變動,這是由于仿真初始階段飛機的上升運動而造成的。通過對比可以看出,基于四元數(shù)的DR姿態(tài)外推方法推算出的縱搖角更符合飛機實際的縱搖角。
通過以上分析可以得到基于四元數(shù)的姿態(tài)外推算法運行效率更高,且外推出的姿態(tài)角的精度更高。下面分析兩種方法外推出的軌跡與算法更新頻率。

圖6 縱搖角對比圖
使用基于四元數(shù)的DR模型外推得到的飛行軌跡如圖7所示,對比圖7和圖2可以看出,使用該模型能得到較精確的飛行軌跡。

圖7 基于四元數(shù)的DR外推飛行軌跡
使用標準DR模型外推,得到的飛機飛行軌跡如圖8所示。使用該方法也能得到較為準確的飛機飛行軌跡。

圖8 標準DR外推飛機軌跡
飛機飛行的位置誤差由每一時刻的實際位置與DR模型外推出的位置的差值得到。兩種方法位置誤差如圖9所示。基于四元數(shù)的DR外推平均位置誤差為32.2 m,標準DR外推平均位置誤差為40.1 m。造成這一現(xiàn)象的原因是,基于四元數(shù)的外推方法推算出的姿態(tài)角更加精確,使得外推出的仿真實體的位置也更加精確。

圖9 位置誤差對比圖
更新時間間隔由當前的更新時刻減去上次更新時刻得到。更新時間間隔越大,說明模型外推效果越好。兩種方法的更新時間間隔如圖10所示。基于四元數(shù)的DR外推方法實現(xiàn)飛機軌跡外推的平均更新時間間隔為18.9 s,標準DR外推方法實現(xiàn)飛機軌跡外推的平均更新時間間隔為12.5 s。基于四元數(shù)的DR外推方法在減少仿真實體的狀態(tài)更新頻率上更加有效。

圖10 更新時間間隔對比圖
以上實驗結果表明本文提出的基于四元數(shù)的DR外推算法運行時間更少、運行效率更高,姿態(tài)和位置外推精度更高。仿真實體更加精確的位置和姿態(tài)推算,一方面能有效減少實體狀態(tài)發(fā)送頻率,緩解網絡通信負荷,另一方面系統(tǒng)的仿真精度更高,更加符合實際情況。這對于構建大規(guī)模的分布式模擬訓練是具有重要意義的。
DR技術是緩解分布式仿真系統(tǒng)中網絡通信量的重要手段,本文為減少標準DR模型姿態(tài)外推的計算量,提出了基于四元數(shù)的姿態(tài)外推方法。該方法在運行時間、外推精度等方面較標準方法有了一定的提升。而DR技術還可以從更新閾值、網絡傳輸延遲方面進行研究。