張 劍,周 攀,饒玉婷
(中國直升機設計研究所,江西 景德鎮(zhèn) 333001)
現代高新技術的發(fā)展促進了飛行訓練手段的不斷進步和更新。飛行訓練模擬器因其成本低、安全性好等優(yōu)越性而受到世界各國家的高度重視,在民用及軍事領域均得到廣泛使用。飛行訓練模擬器不僅是培訓飛行員的重要裝備,而且是新機種研制及原理驗證、飛行故障診斷的重要工具。直升機模擬器包括模擬座艙、視景系統(tǒng)、運動系統(tǒng)、操縱負荷系統(tǒng)、音響系統(tǒng)、管理系統(tǒng)等多分系統(tǒng),這些分系統(tǒng)分別實現模擬器的不同功能,相互之間交聯(lián)耦合,共同完成模擬器的仿真訓練任務[1]。其中,視景系統(tǒng)對直升機模擬器飛行員駕駛感覺的影響超過其他系統(tǒng)的總和,因此,視景系統(tǒng)功能的好壞直接影響到飛行員對模擬器使用情況的評價。在直升機模擬器研制過程中發(fā)現,部分商用視景IG在模擬器聯(lián)試階段有畫面卡頓現象,在直升機高速飛行或編隊高速飛行時尤為明顯。因此,為了提高視景系統(tǒng)的仿真效果,如何有效避免畫面卡頓是首先要解決的問題。
本文首先簡要介紹直升機模擬器視景系統(tǒng)的基本工作原理;然后從數據和原理角度對視景卡頓現象進行分析;在此基礎上設計了可用于直升機模擬器的平滑處理系統(tǒng),并對該平滑處理系統(tǒng)進行了試驗驗證;最后提出了后續(xù)優(yōu)化的方向[2]。
視景系統(tǒng)是直升機模擬器的重要組成部分,主要是通過一組或數組視景通道輸出從飛行員視點觀看的實時圖像。在初始化階段,視景系統(tǒng)首先將對象數據庫加載到視景系統(tǒng)內存中,這些數據可能包括原野、機場、公路、湖泊、海岸線、機動車輛、建筑物、樹木、森林、植被和飛機等要素。目前有多個標準格式可以用于生成這些實體,包括OpenFlight等,這種格式將每個對象都縮減成具有顏色和紋理的多邊形(通常是三角形),定義在數據庫的坐標系中。通常,這些對象按照幾何順序進行排列,因此可以根據對象距離來選擇不同粒度的對象輸出到顯示畫面中[3]。
隨著直升機的機動,飛行員視點位置和方向可以由運動方程計算得出,每幀(通常為60 Hz)內都要對視景進行渲染。緣于不同圖像系統(tǒng)的性能差異,在獲取新的視點位置和飛行員看到的投影圖像之間存在一個延遲,這種延遲通常稱為視覺延遲,必須保持在最小范圍。當前高等級直升機模擬器選取的延遲一般不超過30 ms。
用于做視景圖像顯示系統(tǒng)的媒介較多,從成像原理來看,主要有實像直投和虛景成像兩大類。較為常見的是實像方式,如投影儀球幕直投成像、LED球帶幕成像、液晶顯示器成像等,都屬于實像成像的一種。部分成像展示如圖1所示。

圖1 采用顯示器成像的程序模擬器效果圖
平滑處理系統(tǒng)主要用于優(yōu)化視景系統(tǒng)畫面卡頓現象,提高直升機模擬器視景系統(tǒng)的仿真效果。本章首先從原理和數據角度出發(fā),分析視景畫面卡頓現象可能產生的原因;然后對平滑處理系統(tǒng)的設計思路進行簡要介紹,并開展平滑處理效果分析。
為了適應投影儀/顯示器/顯卡的刷新頻率,當前主流視景IG(視景分系統(tǒng)中圖像生成部分)刷新頻率一般都為60 Hz,如VP等,且作為客戶端主動發(fā)送數據更新需求;直升機模擬器一般數據交互周期為10 ms(100 Hz),且由主控系統(tǒng)作為客戶端主動發(fā)送數據更新需求,所有分系統(tǒng)(含視景分系統(tǒng))作為服務器端被動接收數據更新需求并響應。
問題隨之產生:視景IG要作為客戶端主動發(fā)送數據更新需求,視景分系統(tǒng)又要作為服務器端被動響應數據更新需求。為了完成任務,視景分系統(tǒng)中一般需要再增加一個host服務器端,專門用來處理數據的交互,既響應視景IG的數據更新需求,又響應主控系統(tǒng)的數據更新需求。為了便于從源頭分析,假設host服務器采用實時操作系統(tǒng),對數據轉發(fā)和處理的延遲都為理想狀態(tài)。由于視景IG和主控系統(tǒng)兩者的數據更新需求頻率不一致,因而無法保證視景IG和主控系統(tǒng)收到的數據都是最新的,時間差在兩幀之內且不固定,具體分析見圖2。

圖2 服務器端數據處理原理示意圖
圖2中,橫坐標為時間軸,假設0,10,20,30為host服務器端(以下簡稱服務器端)接收到的主控系統(tǒng)最新數據時間(也就是數據需求,同步發(fā)過來的),數據周期為100 Hz;A、B、C代表接收到的視景IG數據更新需求可能發(fā)生的時段,數據周期為60 Hz。由于主控系統(tǒng)和視景IG兩個客戶端具有相對獨立性,所有前30 ms的視景IG數據更新需求可以是A、B、C,也可以是中間的任何一種,也就是具有完全隨機性。
以A為例,a1代表在接受到視景IG數據更新需求時,剛接受到主控發(fā)過來的最新直升機數據,因此可以將最新數據直接反饋給視景IG。這時候視景IG接收到的就是當前時刻最真實的數據。類似分析,a2代表反饋給視景IG的數據是6.66 ms之前的數據。當時對于視景IG來說,是按照最新數據來處理的,這時候在模擬器中看到的直升機位置,就比真實位置落后了6.7 ms。雖然位置不能用時間來表示,但是從側面反映如果要找回6.7 ms內的位置偏差,就可以考慮用速度積分的方式來實現。a3代表有3.3 ms的位置偏差。B和C分別代表其它典型數據處理時間,其中C和A比較接近,正好慢了1幀時間;B屬于特例,從b2時刻看出,數據更新可能比真實位置落后了9.9 ms。由于100 Hz和60 Hz之間的最小公倍數是600,轉換到時間軸為6 s,因此6 s就具有特殊意義,意味著如果起點視景IG更新需求是A的方式,那么6 s后還是以A的方式進行數據更新,同樣適用于B和C等其他方式。
對于主控系統(tǒng)來說,數據需求一般為地形高度、地面材質等信息,最新數據和真實數據相差幾毫秒,對模擬器來說沒有太大影響,可以不考慮。對于視景IG來說,數據需求一般為直升機姿態(tài)、直升機位置等信息,尤其是直升機位置信息,幾毫秒的差異反映到畫面上,在直升機高速飛行或編隊飛行時產生的位置偏差可以超過1 m,反映到畫面上就是可視化的抖動,肉眼能看到直升機位置的突變。這個后果對直升機模擬器飛行員訓練來說是致命的。
接上圖,由于A、B、C具有隨機性,因此探究的解決方法以A為例進行分析,最終的解決方法需要涵蓋A、B、C在內的所有可能性。
解決實際問題,只需要對位置信息做平滑處理。位置信息可能是經緯度或者大地坐標等,不考慮坐標轉換,以大地坐標為例來做平滑處理;視景IG接收數據有很多,對于平滑處理有用的數據除了坐標位置,還有該坐標對應的速度、加速度等信息,這是前提條件。結合文章前節(jié)的分析,本文提出以下平滑處理解決方案:
在接收到主控系統(tǒng)數據時,即記錄下當前的時間戳,如圖2中,0 ms、10 ms、20 ms、30 ms收到數據時分別記錄當前時間為t0、t10、t20、t30;在接收到視景IG數據更新需求時,即記錄下當前的時間戳,如圖2中,a1、a2、a3收到數據更新需求時分別記錄當前時間為ta1、ta2、ta3;時間戳參數應該是實時更新的,如t0會被t10替代,然后依次被t20、t30替代,ta和tb同理。
位置解算基本公式如下:
X=x+Δx=x+v×Δt
(1)
由于不考慮坐標轉換,采取大地坐標系下的直接坐標,因此該坐標系下三軸(x軸、y軸、z軸)的位置解算方法同樣適用,如下:
Xx=xx+Δxx=xx+vx×Δt
Xy=xy+Δxy=xy+vy×Δt
Xz=xz+Δxz=xz+vz×Δt
(2)
式中,X為反饋給視景IG的位置信息;x為接收到的主控系統(tǒng)轉發(fā)位置信息,Δx為平滑增量,可以用速度積分的方式求出。
按圖2,套用上公式,針對a1、a2、a3三個點來說,有以下分析:
Xa1=x0+v0×(ta1-t0)
Xa2=x10+v10×(ta2-t10)
Xa3=x30+v30×(ta3-t30)
(3)
因此,對于無論A、B、C哪種形式,哪個點,都可以套用上公式。
選取大地坐標系中x方向位置信息作為參考,進行平滑處理效果分析。
圖3是未進行平滑處理的原始數據。

圖3 未進行處理的原始數據
從數據可以看到,服務器端發(fā)送給視景IG的位置信息不穩(wěn)定,會頻繁出現規(guī)律的延遲。圖4是按照上述平滑處理系統(tǒng)的思路進行平滑處理后的數據。從數據可以看到,平滑處理后的數據質量有大幅度的提升,其中部分毛刺可能是由于服務器端、視景IG或主控系統(tǒng)未處理理想狀態(tài)所致。

圖4 進行平滑處理后的數據
本文為解決直升機模擬器畫面卡頓問題,提出了一種平滑處理的方法,并開展了設計和實現。目前該技術已經應用在直升機模擬器中,提升了視景系統(tǒng)的顯示效果。