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