楊志菊,李 洋
(1 92941部隊(duì) 楊志菊,遼寧 葫蘆島 1250001;2 92941部隊(duì) 李洋,遼寧 葫蘆島 125000)
視景仿真技術(shù)是計(jì)算機(jī)技術(shù)圖形處理與圖像生成技術(shù)、立體影像和音響技術(shù)、信息合成技術(shù)、顯示技術(shù)等高新技術(shù)的綜合運(yùn)用,它是虛擬現(xiàn)實(shí)技術(shù)的重要表現(xiàn)形式,視景系統(tǒng)為整個(gè)仿真系統(tǒng)提供一個(gè)較為真實(shí)的三維環(huán)境。隨著軍事仿真的需求,武器系統(tǒng)視景仿真目前已被廣泛運(yùn)用于海、陸、空、天等領(lǐng)域。
對(duì)于飛機(jī)飛行的視景仿真,主要包括飛行方程解算和視景仿真兩部分,其中視景仿真包括艙內(nèi)視景和艙外視景仿真,通過構(gòu)造視野內(nèi)景物的三維模型或再現(xiàn)真實(shí)的環(huán)境,并實(shí)時(shí)進(jìn)行仿真驅(qū)動(dòng)。飛機(jī)座艙提供了一個(gè)非常重要的人機(jī)交互環(huán)境,操控員通過艙內(nèi)顯示系統(tǒng)的顯示信息,操縱飛機(jī)在空戰(zhàn)中獲得主動(dòng)權(quán),通過艙內(nèi)、外視景的疊加,給操控員提供一個(gè)具有真實(shí)感的虛擬飛行環(huán)境。
轟六G型飛機(jī)作為某型導(dǎo)彈承載與發(fā)射平臺(tái),對(duì)該型導(dǎo)彈操控仿真有著重要的意義,主要表現(xiàn)在:
1)便于進(jìn)行仿真性能仿真與評(píng)估。充分利用視景仿真技術(shù)的有效性、經(jīng)濟(jì)性、安全性和直觀性等特點(diǎn),結(jié)合該型導(dǎo)彈武器系統(tǒng)全數(shù)字仿真模型進(jìn)行聯(lián)合運(yùn)算,能夠直觀對(duì)該型導(dǎo)彈武器系統(tǒng)性能做出評(píng)價(jià),便于模型、參數(shù)修正及系統(tǒng)方案改進(jìn)。
2)給操控員提供虛擬座艙訓(xùn)練。借助于先進(jìn)的視景仿真技術(shù),可以提供交互式的訓(xùn)練環(huán)境,既可以訓(xùn)練操作人員的基本技戰(zhàn)術(shù)動(dòng)作,也可以模擬復(fù)雜的戰(zhàn)場(chǎng)環(huán)境。
3)節(jié)約訓(xùn)練成本,保證飛行安全。在以計(jì)算機(jī)為主組成的飛行視景仿真系統(tǒng)中,飛行訓(xùn)練、戰(zhàn)術(shù)演練等都可以多次重復(fù)地進(jìn)行,操控員甚至可以做出一些實(shí)際飛行中不能輕易完成的高難度動(dòng)作,而沒有任何生命危險(xiǎn)。
本文擬開發(fā)的仿真系統(tǒng)是模擬轟六G飛機(jī)平臺(tái),如圖1所示。其核心是通過飛機(jī)六自由度運(yùn)動(dòng)方程的實(shí)時(shí)解算,獲得飛機(jī)的位置、姿態(tài)等飛行參數(shù),驅(qū)動(dòng)載機(jī)模型在場(chǎng)景內(nèi)運(yùn)動(dòng),通過對(duì)視點(diǎn)屬性的設(shè)置,得到不同的視野。在飛行的同時(shí),機(jī)載火控系統(tǒng)將其導(dǎo)航信息、天線信息、雷達(dá)信息、外掛信息、告警信息、態(tài)勢(shì)信息、目標(biāo)信息等實(shí)時(shí)傳遞到座艙顯示系統(tǒng),以相應(yīng)的圖形或符號(hào)顯示出來。
圖1 飛機(jī)數(shù)傳與火控系統(tǒng)仿真框架
系統(tǒng)模擬參與作戰(zhàn)試驗(yàn)任務(wù)的飛機(jī)平臺(tái)進(jìn)行仿真,主要完成的任務(wù)有:
1)飛行仿真。根據(jù)空氣動(dòng)力學(xué)理論模擬一個(gè)真實(shí)的飛行過程。
2)座艙顯示操控仿真。提供一個(gè)良好的人機(jī)交互界面,顯示其它機(jī)載火控系統(tǒng)輸出的一些信息。
3)視景仿真。給操控員提供盡量真實(shí)的視覺感受。
為了建立一個(gè)應(yīng)用范圍廣、可擴(kuò)展性強(qiáng)的飛行視景仿真系統(tǒng),主要采用了以下設(shè)計(jì)思想:
1)結(jié)合模塊化的設(shè)計(jì)思想和面向?qū)ο蟮姆治龇椒ǎ鶕?jù)仿真系統(tǒng)設(shè)計(jì)要求,分析系統(tǒng)的組成和結(jié)構(gòu),按照各部分功能進(jìn)行模塊劃分,設(shè)計(jì)出一個(gè)結(jié)構(gòu)合理的仿真系統(tǒng)平臺(tái),使系統(tǒng)具有良好的可維護(hù)性、可擴(kuò)展性和可重用性。
2)根據(jù)空氣動(dòng)力學(xué),建立合適準(zhǔn)確的恒質(zhì)量飛機(jī)的飛行動(dòng)力學(xué)、運(yùn)動(dòng)學(xué)方程,采用合理的氣動(dòng)參數(shù)估計(jì)方法,解算出載機(jī)飛行中的位置和姿態(tài)。
3)在保證仿真精度和正確時(shí)序的前提下,采用合理的模擬方法,優(yōu)化算法流程,滿足仿真系統(tǒng)在運(yùn)算速度上的要求,保證系統(tǒng)的實(shí)時(shí)性。
4)采用合適的建模工具,對(duì)模型、地形等進(jìn)行建模,在滿足逼真度要求的條件下,保證仿真實(shí)時(shí)性。
設(shè)計(jì)一個(gè)包括飛行仿真模塊和座艙仿真模塊的人在回路的仿真系統(tǒng),其中飛行仿真模塊包括操控系統(tǒng)和飛行動(dòng)力學(xué)模塊,座艙仿真模塊包括視景系統(tǒng)和儀表顯示系統(tǒng)。系統(tǒng)組成框圖如圖2。
圖2 飛行視景仿真系統(tǒng)組成框圖
飛行視景仿真系統(tǒng)開始運(yùn)行后,首先進(jìn)行系統(tǒng)初始化,選擇機(jī)型,設(shè)定飛機(jī)、跑道初始位置,然后操縱飛機(jī)起飛進(jìn)入巡航狀態(tài)。在高空飛行過程中,可以根據(jù)空情設(shè)置雷達(dá)的不同工作模式,進(jìn)行飛行控制、告警操作、外掛操作,同時(shí)根據(jù)需要選擇視點(diǎn)。還可以選擇退出整個(gè)系統(tǒng)。系統(tǒng)的運(yùn)行結(jié)構(gòu)如圖3。
圖3 飛行視景仿真運(yùn)行結(jié)構(gòu)圖
建立飛機(jī)在地面或空中運(yùn)動(dòng)的動(dòng)力學(xué)模型;根據(jù)所建立的模型,對(duì)所涉及飛機(jī)的性能和飛行品質(zhì)進(jìn)行分析評(píng)估。飛行動(dòng)力學(xué)模型是飛行仿真的基礎(chǔ)。它的解算結(jié)果驅(qū)動(dòng)視景仿真、儀表顯示仿真等分系統(tǒng)的運(yùn)行。它的建模、編程將直接影響到整個(gè)仿真系統(tǒng)的實(shí)時(shí)性和逼真度。飛機(jī)仿真模型建立著重在以下假設(shè)條件下,對(duì)飛機(jī)的動(dòng)力學(xué)模型、運(yùn)動(dòng)學(xué)模型以及氣動(dòng)力等進(jìn)行了分析:
1)假定飛機(jī)為一個(gè)恒質(zhì)量的剛體;機(jī)體坐標(biāo)軸系Oxz平面為機(jī)體對(duì)稱平面;發(fā)動(dòng)機(jī)推力和機(jī)身軸線一致。
2)假定大氣為靜止的標(biāo)準(zhǔn)大氣,即不考慮風(fēng)的影響;
3)假定地面為平面,不考慮地球的曲率和自轉(zhuǎn),重力加速度不隨飛行高度的變化而變化。
為了使視景仿真具有較好的真實(shí)感,需要對(duì)飛機(jī)座艙及內(nèi)部顯示系統(tǒng)、飛機(jī)、機(jī)場(chǎng)模型等場(chǎng)景進(jìn)行建模。
3.1.1 座艙顯示系統(tǒng)建模
座艙顯示系統(tǒng)包括一個(gè)平視顯示器、兩個(gè)多功能顯示器和一個(gè)中央控制面板。座艙顯示系統(tǒng)是飛行仿真系統(tǒng)中重要的人機(jī)界面,顯示導(dǎo)航、空戰(zhàn)各種模式下的多種可視化信息。
在座艙顯示系統(tǒng)的開發(fā)中,用到的軟件工具有GL Studio和Open GL,它們分別用來實(shí)現(xiàn)多功能顯示器和平視顯示器。飛機(jī)座艙是操控員執(zhí)行飛行任務(wù)時(shí)的主要活動(dòng)場(chǎng)所。操控員必須依靠艙外目視搜索、艙內(nèi)信息顯示和自身本體感覺等獲取各類飛行信息,通過座艙內(nèi)的各類控制器操縱和控制飛機(jī)。
在座艙設(shè)計(jì)中,對(duì)人機(jī)工效的考慮主要包括以下幾個(gè)方面:
1)顯示操控員最關(guān)心的信息。
2)提供友好的顯示界面。
3)顯示格式與認(rèn)知特點(diǎn)相匹配。
4)綜合信息盡可能地綜合顯示。
綜上所述,座艙顯示系統(tǒng)的整體布局,控制器向前、向上或向順時(shí)針方向的操作應(yīng)使效果增大。相反,向后、向下、或向逆時(shí)針方向的操作應(yīng)使其效果減小。對(duì)于那些裝在面板上的開關(guān),當(dāng)面板相對(duì)于垂直線之間的角度小于30°時(shí),這些開關(guān)必須是以向上扳動(dòng)的位置為其功能起作用的位置。當(dāng)安裝開關(guān)的面板與垂直線之間的角度大于30°時(shí),那么這些開關(guān)必須是以向前扳動(dòng)的位置為其功能起作用的位置。顯示器應(yīng)盡可能與操作人員的視線相垂直,當(dāng)向正前方看時(shí),顯示器與視線之間角度絕不允許大于45°。對(duì)于同類功能的顯示和控制器應(yīng)該安排在一起,并且希望其觀察和操作的顧序應(yīng)是從左向右、從上到下或從后向前(最靠近操作人員)。本系統(tǒng)實(shí)現(xiàn)的座艙布局如圖4。
圖4 座艙顯示系統(tǒng)布局
3.1.2 座艙平視顯示器建模
平視顯示器(簡(jiǎn)稱平顯)是飛行仿真中非常重要的一部分。在許多三維飛行游戲中,往往一塊平顯就代替了飛機(jī)本身。由于仿真平視顯示器是在一個(gè)平面內(nèi)顯示的,所涉及的只有數(shù)據(jù)的改變、刻度的上下、左右平移旋轉(zhuǎn),這些功能由OpenGL實(shí)現(xiàn)非常方便快捷。因此平視顯示器采用OpenGL開發(fā),如圖5所示。
圖5 OpenGL流水線架構(gòu)
OpenGL能夠?qū)φ麄€(gè)三維模型進(jìn)行渲染著色,從而可以仿真現(xiàn)實(shí)世界中的景物。平視顯示器開發(fā)中主要包括一下一些方面的內(nèi)容:
1)平視顯示器顯示的圖形符號(hào)建模。
2)平視顯示器視點(diǎn)變換。
3)圖符顏色模式設(shè)置。
4)位圖顯示和圖形增強(qiáng)。
3.1.3 座艙多功能顯示器建模
3.1.3.1 開發(fā)流程
在視景仿真系統(tǒng)中,嵌入式儀表仿真一直是開發(fā)中的一個(gè)難點(diǎn)。采用GL Studio開發(fā)實(shí)現(xiàn)多功能顯示器。多功能顯示器主要實(shí)現(xiàn)了雷達(dá)顯示界面、姿態(tài)界面、告警界面、菜單界面和態(tài)勢(shì)界面。界面中飛行參數(shù)如空速、航向、高度等數(shù)據(jù)需要根據(jù)傳進(jìn)來的參數(shù)實(shí)時(shí)更新。
多功能顯示器的建??梢栽趫D形設(shè)計(jì)窗口以所見即所得的效果完成,通過其代碼編輯器完成文所需的邏輯仿真。其代碼生成器能將用戶完成的設(shè)計(jì)自動(dòng)轉(zhuǎn)換為C++和OpenGL代碼,這些代碼及可以單獨(dú)編譯,也可以嵌入到其它程序中編譯,避免了大量的底層程序開發(fā)。其邏輯結(jié)構(gòu)如圖6。
圖6 多功能顯示器開發(fā)流程
使用GL Studio仿真開發(fā)多功能顯示器、中央控制面板等物體一般需要以下幾個(gè)步驟:1)紋理制作;2)模型創(chuàng)建;3)行為驅(qū)動(dòng);4)代碼生成;5)單獨(dú)編譯、鏈接、運(yùn)行,成功后加入到自己的應(yīng)用中。
1)紋理的使用
GL Studio提供了兩種儀表開發(fā)途徑,一是使用所有必要的紋理利用表示要仿真的儀表;二是利用GL Studio的Create工具構(gòu)造單個(gè)的部件。這兩種方法在GL Studio中都是非常有效的,結(jié)合使用這兩種方法通常會(huì)縮短開發(fā)時(shí)間。使用紋理可以使建立模型所需的多邊形數(shù)量將為最低,同時(shí)又有極高的逼真度。在座艙的仿真實(shí)現(xiàn)中,飛機(jī)座艙、多功能顯示器面板、按鍵、開關(guān)以及中文字符等多種顯示內(nèi)容都采用了紋理,美化了顯示界面而且降低了建模的工作量。
2)建立模型
GL Studio提供了一種三維的、“所見即所得”設(shè)計(jì)環(huán)境。通過鼠標(biāo)點(diǎn)擊選擇,可以在設(shè)計(jì)區(qū)創(chuàng)建包括線條、多邊形、圓弧、圓、球狀體、柱狀體,甚至包括光源、字體對(duì)象等部件。既可以由單個(gè)圖元組成復(fù)雜的物體,也可以由多邊形的進(jìn)行交、并、差運(yùn)算得到需要的圖形組建復(fù)雜物體。如圖7所示。
圖7 多功能顯示器搜索模式畫面建模
3)模型行為驅(qū)動(dòng)
對(duì)每一個(gè)*.gls文件,均可生成一個(gè)包含頭文件和源文件的類。而這個(gè)模型的行為完全在這個(gè)類中定義。如圖8所示,在GL Studio的Code界面,包含有生成的頭文件名、源文件名、類所擁有的特性、方法、變量等成員的定義。通過添加這些類成員,并在代碼區(qū)添加控制代碼實(shí)現(xiàn)模型的驅(qū)動(dòng)。多功能顯示器和中央控制面板需要和主程序之間進(jìn)行信息交互,因此需要編寫相應(yīng)的軟件接口。這些接口的實(shí)現(xiàn)就是通過在這個(gè)界面添加相應(yīng)的變量、函數(shù)實(shí)現(xiàn)的。
圖8 模型行為驅(qū)動(dòng)開發(fā)界面
GL Stduio代碼生成器嵌入在GL Studio設(shè)計(jì)器中,它可以將*.gls文件轉(zhuǎn)換成C++和OpenGL代 碼。 在 GL Studio中 有 Standalone、Component、X-Windows Frame三種生成模式。
3.1.3.2 建模實(shí)現(xiàn)
1)雷達(dá)顯示界面。此界面顯示的內(nèi)容根據(jù)雷達(dá)工作模式的不同,又分為待機(jī)、RWS、SS、BS、VS、SL、STT等頁(yè)面。RWS模式顯示界面如圖9。
圖9 RWS模式多功能顯示器界面
2)姿態(tài)顯示界面
姿態(tài)顯示界面(Altitude Direction Indicator,ADI)主要用來給操控員提供當(dāng)前載機(jī)的俯仰角和滾轉(zhuǎn)角。圖10為多功能顯示器姿態(tài)畫面。正中間為俯仰、滾轉(zhuǎn)指示梯,畫面顯示字符為本機(jī)的真空速、迎角及馬赫數(shù)。
圖10 多功能顯示器姿態(tài)顯示界面
3.1.3.3 雷達(dá)告警畫面
雷達(dá)告警接收機(jī)(RWR)通過接收外部雷達(dá)發(fā)射的電磁波能量,來識(shí)別目標(biāo)及威脅的存在。
圖11 多功能顯示器告警顯示畫面
圖11為雷達(dá)告警基本顯示畫面。
其中的距離虛圓、等分直線確定威脅的距離和方位;中心黃色圓點(diǎn)表示本機(jī):數(shù)字“2”、“3”、“7”等表示可以識(shí)別的某個(gè)雷達(dá)信號(hào),稱作雷達(dá)特征通用字符;菱形框、圓形為威脅等級(jí)選用字符。
3.1.3.4 航向畫面
航向畫面顯示當(dāng)前航向、塔康方位、距離以及當(dāng)前位置(經(jīng)緯度)等信息圖12中,圓刻度盤為磁航向羅盤,綠色指針指示塔康方位。
圖12 航向畫面
3.1.3.5 目標(biāo)分配畫面
在態(tài)勢(shì)畫面,顯示當(dāng)前空域內(nèi)搜索到的敵我雙方成員位置、方位信息。按“分配”鍵進(jìn)入在空戰(zhàn)過程中,長(zhǎng)機(jī)或地面指揮所對(duì)空域中的成員和目標(biāo)進(jìn)行配批,輸入一位成員編號(hào)和兩位的目標(biāo)編號(hào),將目標(biāo)分配給最利于攻擊的編隊(duì)成員,如圖13所示。隨后通過數(shù)傳系統(tǒng)將信息傳給僚機(jī)。所有配批過的飛機(jī)之間顯示一條紅色虛線,當(dāng)僚機(jī)接收到這個(gè)配批信息后,虛線變成實(shí)線,如圖14所示,其中,與本機(jī)配批的敵機(jī)用藍(lán)色圓圈包圍。同時(shí)配批敵機(jī)的飛行參數(shù)、相對(duì)于本機(jī)的距離、方位、高度等數(shù)據(jù)同時(shí)顯示在畫面上。
3.1.4 中央控制面扳建模
圖13 目標(biāo)分配面面
圖14 多功能顯示器目標(biāo)配批畫面
在中央控制面板和多動(dòng)能顯示囂周邊鍵等人機(jī)交互界面仿真中,按鍵、開關(guān)、旋鈕都是必不可少的部件。為了提供更友好的人機(jī)交互界面。GL Studio提供了一套組件用來實(shí)現(xiàn)開關(guān)、旋鈕、按鍵、滑動(dòng)尺、指輪等。以開關(guān)和按鍵為例加以說明:
圖15為控制面板仿真圖。包括雷達(dá)、多功能顯示器電源控制、全向告警控制、干擾釋放控制以及武器外掛控制等。在武器外掛控制部分有一個(gè)旋鈕,用來實(shí)現(xiàn)機(jī)載外掛點(diǎn)的選擇。
圖15 中央控制面板
1)開關(guān)的實(shí)現(xiàn)。通過設(shè)置開關(guān)實(shí)例的實(shí)現(xiàn)開關(guān)的通斷選擇或檔位選擇,按需要可實(shí)現(xiàn)兩檔或三檔開關(guān)。圖16為開關(guān)實(shí)例開發(fā)圖。根據(jù)開關(guān)的不同位置,編寫相應(yīng)的回調(diào)函數(shù)。實(shí)現(xiàn)不同事件的觸發(fā)。
圖16 開關(guān)和按鍵實(shí)例開發(fā)
2)按鏈的實(shí)現(xiàn)。根據(jù)需要可以實(shí)現(xiàn)即時(shí)型開關(guān)和鎖定型開關(guān)。即時(shí)型開關(guān)在鼠標(biāo)左鍵由按下彈起時(shí)狀態(tài)恢復(fù),而鎖定型開關(guān)則保持按下時(shí)的狀態(tài)直到鼠標(biāo)再次點(diǎn)擊。按鍵事件的觸發(fā)同樣需要編寫相應(yīng)的回調(diào)函數(shù)。
3)外掛的控制。外掛物狀態(tài)顯示控制盒面板上的“投放位置選擇”開關(guān)按需要選擇?!白詣?dòng)”或“3”、“l(fā)”、“2”,“4”位置;“投放選擇”開關(guān)置于“自動(dòng)”位置將依次發(fā)射導(dǎo)彈,放置在具體某一編號(hào)位置時(shí)發(fā)射此掛點(diǎn)的導(dǎo)彈。懸掛在飛機(jī)內(nèi)外側(cè)掛架上的導(dǎo)彈被選擇后,懸掛物狀態(tài)顯示控制部件顯示屏上顯示不同的的圖形符號(hào),以表示不同的狀態(tài)。導(dǎo)彈發(fā)射失敗后,在顯示屏上相應(yīng)位置將顯示字符“F”。
本文對(duì)基于飛行方程的飛行視景仿真進(jìn)行了較為深入的分析和研究,并對(duì)其中的關(guān)鍵技術(shù)進(jìn)行了研究,最終完成了座艙顯示與控制軟件實(shí)現(xiàn)。具有一定的理論意義和使用價(jià)值。
[1]吳家鑄.視景仿真技術(shù)及應(yīng)用[M].西安:電子科技大學(xué)出版社, 2002.
[2]喬林,費(fèi)廣正等. OpenGL程序設(shè)計(jì)[M].北京:清華大學(xué)出版社, 2000.
[3]MultiGen-Paradigm.Inc,Vega Programmers’Guide[z].USA: MultiGen-Paradigm Inc, 2001.
[4]GL StudioVersion 2. 1 APIDocumentation[z].USA:Distributed Simulation Technology Inc, 2003. 2.
[5]SGI OpenGL Performer(tm) Programmers’Guide[z].USA: Silicon Graphics. Inc, 2004.