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