文獻標識碼: A
文章編號: 0258-7998(2010)12-0091-04
飛機座艙綜合顯示系統(tǒng)中,飛行員看到的是一種用數字和圖形形象地表示的綜合信息,是把諸多由傳感器送來的參數“融合”后的顯示。為此,新一代座艙綜合顯示系統(tǒng)正朝著大屏幕、玻璃化方向發(fā)展。
CRT顯得越來越不適應飛機座艙顯示系統(tǒng)現代化發(fā)展趨勢,其缺點主要是采用的高壓易引起問題,體積大、重量大。因此具有體積小、重量輕、可靠性好、在強烈陽光下仍清晰可辨的特點的有源矩陣彩色液晶顯示器 AMLCD(Active Matrix Liquid Crystal Display)成為飛機綜合顯示器未來的發(fā)展方向,是實現飛機“玻璃座艙”和“大圖像”的重要手段。該顯示器在國際上于上世紀90年代開始裝機,屬第六代飛機座艙顯示器。目前,新一代飛機,如美國的F-22和B-777、法國的“陣風”座艙顯示系統(tǒng)都采用了AMLCD多功能顯示器[1]。
我國的電子綜合圖形顯示系統(tǒng)起步較晚,也引進過平視顯示、綜合顯示器方面的技術和產品,隨著仿真技術和飛行模擬技術的不斷發(fā)展,電子綜合圖形顯示系統(tǒng)也得到了一定的發(fā)展。但是,目前我國的綜合圖形顯示技術仍落后于國外,大部分軍用機和民用機儀表顯示系統(tǒng)除直接裝載國外的電子綜合圖形顯示系統(tǒng)外,大都停留在機械儀表階段,這使得發(fā)展我國自己的機載圖形顯示系統(tǒng)成為當務之急。
1 反走樣技術與設計環(huán)境
“走樣”是指在用計算機實時繪制圖形時出現的計算機屏幕某些部分變形或出現鋸齒的現象。這是因為在計算機上顯示的圖形是由一系列離散的、等亮度的點(像素)組成。“走樣現象”的本質是用離散量表示連續(xù)量引起的失真。走樣嚴重時會使圖形走形。在飛機座艙儀表中,圖形化的儀表界面在人機交互中具有非常重要的作用。如果座艙儀表出現嚴重的走樣,會造成飛行員的誤判,從而產生不利后果。在飛行模擬機中,同樣也要避免計算機繪制儀表圖形出現嚴重的走樣,于是必須通過一些手段和方法來消除或者減輕走樣,這就是所謂的“反走樣”。
常見的反走樣方法有以下幾種:(1)提高顯示分辨率,即增加采樣點數,使其接近或達到采樣定理的要求;(2)對實際圖形采樣后,在顯示之前進行后處理;(3)對二維函數進行二維濾波,關鍵是濾波函數的選取;(4)軟件上采用雙緩存技術。
本文針對虛擬儀表顯示中存在的主要問題進行改進,即當儀表刻度線和指針發(fā)生偏轉時,線條扭曲、變形。運用VAPS軟件結合區(qū)域采樣技術和改進Bresenham反走樣算法,實現畫面顯示質量的提高。
VAPS環(huán)境下,虛擬航空儀表的設計與開發(fā)主要由兩部分組成:VAPS應用程序的開發(fā)與外部應用程序的開發(fā)。虛擬儀表VAPS應用程序的開發(fā)是一個循環(huán)往復的過程,若在設定執(zhí)行環(huán)境后運行結果不理想,需要返回到前面的過程中進行修改,然后再運行,再修改再運行。本文中要設計開發(fā)的大氣系統(tǒng)儀表(氣壓高度表、馬赫/空速指示器)都將按此流程進行設計開發(fā)。下面以氣壓高度表和馬赫表為例,介紹虛擬航空儀表的反走樣設計與仿真過程。
2 反走樣原理與算法改進
2.1硬件反走樣技術
直線段是機載顯示系統(tǒng)中最基本的圖形,直線段顯示的速度和質量直接影響著整個全羅盤系統(tǒng)儀表的效果。本文在Bresenham畫線算法的基礎上結合虛擬儀表的對稱性提出了一種采用改進的Bresenham畫線算法,借助FPGA的高集成度和高設計頻率,建立一個直線繪制模塊進行硬件反走樣的方案。
Bresenham 畫線算法是計算機圖形學領域中使用非常廣泛的一種直線掃描轉換算法。其算法原理如圖1所示。設直線的斜率k=dy/dx,直線起點坐標為坐標原點。當0<k<1時,橫軸(x軸)每向右移動一個像素單位,縱軸(y軸)便向上移動k個像素單位。此時把(1,1)和(1,0)兩個像素點中距離實際直線近的像素點點亮:即當L1<1/2時,點亮像素點(1,0)(直線1);當L2<1/2時,點亮像素點(1,1)(直線2)。以后每向x軸前進一個像素單位,通過對y軸增量的比較,依次點亮距離實際直線最近的像素,便可完成直線的繪制。
Bresenham 算法在計算直線斜率和誤差項時要用到浮點算術運算和除法。為了加快算法的速度,可以進行簡單變換,把k=dy/dx放大dx倍,從而得到整數運算。Bresenham 算法由于采用增量計算,使得對于每一列,只要檢查一個誤差項的符號便可確定該列的所求像素,因而計算量小。
結合Bresenham算法的原理與直線的對稱性, 便可得到改進的Bresenham 算法。其原理如下: 以直線中點為界,其兩邊是對稱的。因此每進行一次判斷便可生成對應于直線中點的2 個對稱點。由于直線的生成是從兩端向中間進行的,因此其運算量將減半,運算速度將加倍。在改進的Bresenham 算法中,直線段每向橫軸方向前進一個像素單位,便沿縱軸方向在該線段兩側各繪制一個像素點,每個像素點都以繪制顏色的亮度乘以某個權作為實際亮度,每個像素點的權等于1 減去該像素點在縱軸方向上與理想線段之間的距離。如圖2所示。與Bresenham 法用相同亮度的3個像素點繪制線段不同,改進算法中直線段是用亮度不同的3 對像素點來繪制。這樣可使直線的生成速度和質量得到提高。
依據此思路,采用改進的Bresenham 算法可以建立直線繪制模塊、曲線繪制模塊、多邊形繪制模塊等虛擬儀表部件??紤]到采用軟件方案會大大增加CPU的開銷,在顯示復雜的儀表圖像(如多功能顯示器)時達不到實時性的要求,文中提出了采用集成度和設計頻率更高的FPGA,這樣便可以建立一個基于FPGA的直線快速繪制模塊,進行反走樣。基于這種思想,把繪制其他反走樣圖形的算法也設計成一個個模塊(如圓弧繪制模塊、曲線繪制模塊、多邊形繪制模塊等),可以采用德州儀器或Altera公司的帶嵌入CPU核的FPGA芯片,CPU調用各個子模塊生成圖形,并控制圖像數據在FPGA中的幀存和對外輸出顯示,最終建立一個基于FPGA的圖形協(xié)助生成器,實現硬件反走樣。圖形協(xié)助生成器的硬件方案如圖3所示。
2.2 軟件系統(tǒng)結構
為了得到虛擬儀表系統(tǒng)平滑的動畫效果,本文采用了VAPS中使用的雙緩存技術。雙緩存技術就是把有效的幀分成相等的兩份。例如,一個24幀的平臺通常只有12個有效幀。當雙緩存技術用于圖像繪制模式時,可以先將圖像繪制到后臺緩沖區(qū)中,繪制結束后可以通過交換緩沖區(qū),將后臺緩沖區(qū)已經繪制好的圖像直接發(fā)送到前臺緩沖區(qū),由系統(tǒng)顯示功能完成屏幕的顯示,此時下一幀的圖像已經開始在后臺緩沖區(qū)中繪制了。如此循環(huán)反復,屏幕上總可以顯示已經繪制好的圖像,而看不到繪制的過程,同時還可以提高系統(tǒng)的效率,實現動畫的連續(xù)效果,有效避免或減輕儀表圖形繪制過程中的走樣變形。
3 基于VAPS下的虛擬儀表的設計與仿真
3.1 繪制儀表布局設計
虛擬航空儀表的尺寸、外形、動作行為應與真實航空儀表相同,才能夠如實反映設計要求和效果。在繪制儀表布局前,應對所要繪制的航空儀表的基本部件構成有所熟悉。圖4給出了B737-300座艙中高度表的基本部件結構圖。
高度表的設計工作區(qū)如圖5所示。儀表外觀設計好后,可保存為“*.FRM”文件。同時選中工程,單擊工作區(qū)上方工具欄中的“→”圖標或文件菜單下的運行項可運行測試設計好的虛擬儀表的外觀是否滿足要求,若效果不好需返回工程中修改。
3.2 連接儀表布局設計
數據通道是一些進行數據緩存的數據結構,是輸入輸出部件間進行數據交換的紐帶。在VAPS中,數據通道的類型可分為三種:Local common、Session common、Simulation。圖6為高度表數據通道。
3.3 數據采集器及連接布局實現
如果需要多個信號源集成后去驅動一個輸出對象,那么這時就要用到采集器。采集器本質上是一些數字型或布爾型的邏輯表達式。使用采集器,可以通過數據通道接收來自多個信號源的數據,并把集成后的數據提供給只有一個輸入的輸出對象。完成數據通道文件和采集器文件的創(chuàng)建之后,需要把數據通道跟插件、數據通道跟采集器連接。其連接過程與插件與數據通道的連接過程相同。一切準備就緒后,可通過點擊Window菜單下拉列表中的Docking Window,選擇Connections子菜單項打開所有連接數據通道的信息,便于檢查連接是否正確。若有錯,可在Connections界面按數據通道的連接步驟直接修改連接。
3.4 狀態(tài)轉換儀表布局設計
VAPS應用程序的行為模型有兩種:有限狀態(tài)機FSM(Finite State Machine)和擴展轉換網絡ATN(Augmented Transition Network)。有限狀態(tài)機模型是非線性模型,在構建交互式系統(tǒng)和界面時非常有用。擴展轉換網絡模型是建立在FSM基礎上的,像FSM一樣,ATN也是由一系列的狀態(tài)和事件及轉換弧組成的,但不同的是,在ATN中,增加了動作響應。這主要表現在三個方面:
(1)通過條件測試轉換到新的狀態(tài)。
(2)在轉移弧上,執(zhí)行響應可實現某些預期的功能。
(3)與FSM模型中的離散輸入(事件)相對應,ATN模型中增加了離散輸出(響應)。ATN模型如圖7所示。
對馬赫表進行ATN模型設計時,在初始化狀態(tài)中加載前面設計好的框架。由初始化狀態(tài)轉換到運行狀態(tài)即可,此過程中對應的事件為無事件(即No Event),之后應用程序在運行狀態(tài)循環(huán)。ATN模型的構建有兩種方法:采用外部C編程和在ATN狀態(tài)欄填寫數據表格,編譯成功后把儀表對象等文件生成ANSI C代碼。
完成 VAPS 界面設計、數據轉換、管理指令及運行流程設定之后,需要在VAPS 運行環(huán)境中測試顯示,產生虛擬儀表運行界面,如圖8。在運行測試模塊中,可進行動態(tài)、圖形化的HMI 實時交互。通常在該模塊中可不斷完善儀表面板的設計顯示測試工作。
在VAPS中,圖形重繪的時間即系統(tǒng)中兩個緩沖區(qū)交換時間是系統(tǒng)屏幕刷新周期的整數倍。在VAPS應用程序運行環(huán)境中必要時可選擇no extra draw項來減少圖形重繪次數。在Open GL環(huán)境下運行VAPS應用程序時反走樣效果比較明顯。其中要用到auxSwapBuffers()函數。圖9、圖10所示為反走樣處理前后馬赫/空速指示器表盤的效果圖。
4 虛擬儀表在大氣數據系統(tǒng)調試
在上述基礎上利用VC++6.0實現對虛擬儀表的調用和連接,使其構成一個完整的系統(tǒng),在飛行模擬機中大氣數據系統(tǒng)參數實現整個流程的模擬。并對整個系統(tǒng)進行功能和性能測試。圖11所示為聯(lián)調時儀表部分運行界面。
由調試與仿真設計可表明,應用區(qū)域采樣法和改進的Bresenham 算法,通過使用VAPS完成對虛擬儀表設計,能夠取得理想的反走樣效果,消除由字符和線段產生的扭曲和鋸齒變形,達到模擬機使用標準,能夠在實際聯(lián)機調試時取得理想效果。
參考文獻
[1] 王行仁.飛行實時仿真系統(tǒng)及技術[M].北京:北京航空航天大學出版社,2002.
[2] 李皖玲.VAPS技術在載人航天器中MFD軟件開發(fā)中的應用[J]. 航天器工程, 2008,17(5):70-76.
[3] 王大勇.基于VAPS的虛擬航空儀表的開發(fā)[D].哈爾濱: 哈爾濱工業(yè)大學,2005.
[4] GERI G A, WINTERBOTTOM M D. Effect of display resolution and antialiasing on the discrimination of simulated-aircraft orientation[J]. Display, 2005,26(4-5):159-169.
[5] 趙淑榮,羅云林.大氣數據系統(tǒng)[M].北京:兵器工業(yè)出版社,2004.
[6] FENNELL N, HEMMENS S, MOODY M. Engineering flight simulator designed for human in the loop interaction [C].Proceedings of the SETE2000 Conference,2000:8-10.
[7] 彭燕,許增增.基于VAPS的多功能儀表界面[J].兵工自動化, 2006,25(3):90-92.
[8] GIACOMINI D, BIANCOM E, MARTINO L, et al.A New fully integrated power module for three phase servo motor driver application[J].IEEE Industry:Appliacations Society, 2005(2):981-987.
[9] 賈榮珍,彭曉源,王行仁.飛行模擬器建模、驗模和性能測試與評估[J].航空學報,1998,19(1):41-44.