郭翠珍 郭劍 譚方勇
(1.蘇州市職業(yè)大學(xué),江蘇蘇州215104;2.國(guó)網(wǎng)電力科學(xué)研究院,江蘇南京210016)
分布式虛擬現(xiàn)實(shí)技術(shù)(Distributed Virtual Reality)是不斷發(fā)展的虛擬現(xiàn)實(shí)技術(shù)和計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)相結(jié)合的產(chǎn)物,它融合虛擬現(xiàn)實(shí)技術(shù)和計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的各項(xiàng)特點(diǎn)。目前,它已經(jīng)成功地應(yīng)用于軍事、航天、醫(yī)療和娛樂等領(lǐng)域,并在教育、工程設(shè)計(jì)與制造、電子商務(wù)等方面顯示了良好的應(yīng)用前景[1]。
分布式飛行仿真系統(tǒng),就是一個(gè)分布式虛擬現(xiàn)實(shí)系統(tǒng),它為新機(jī)型的預(yù)研、實(shí)驗(yàn)、優(yōu)化和評(píng)估等提供了一個(gè)可視化的驗(yàn)證平臺(tái)。分布式飛行仿真系統(tǒng)由多個(gè)節(jié)點(diǎn)組成,在節(jié)點(diǎn)之間會(huì)有大量的數(shù)據(jù)傳輸。分布式飛行仿真屬于軍事仿真應(yīng)用,對(duì)實(shí)時(shí)性要求較高。在分布式飛行仿真系統(tǒng)中,延遲主要由以下幾個(gè)因素造成的:1)計(jì)算延遲。由于模型中含有大量的迭代計(jì)算等,造成計(jì)算機(jī)計(jì)算延遲;2)網(wǎng)絡(luò)延遲。數(shù)據(jù)在仿真節(jié)點(diǎn)之間傳輸需要一定的時(shí)間,造成了數(shù)據(jù)傳輸?shù)木W(wǎng)絡(luò)延遲。針對(duì)上述延遲因素中的計(jì)算延遲需要優(yōu)化模型、提高計(jì)算機(jī)性能等以減少延遲時(shí)間。針對(duì)這種情況,本文采用反射內(nèi)存網(wǎng)技術(shù),設(shè)計(jì)分布式飛行仿真系統(tǒng)的通信協(xié)議,以滿足分布式飛行仿真系統(tǒng)對(duì)實(shí)時(shí)性的要求。
系統(tǒng)仿真技術(shù),是以控制理論、計(jì)算機(jī)技術(shù)和相似原理為基礎(chǔ),以計(jì)算機(jī)和各種物理效應(yīng)設(shè)備為工具,借助系統(tǒng)模型對(duì)真實(shí)的或設(shè)想的系統(tǒng)進(jìn)行試驗(yàn)研究的一門綜合性的技術(shù)[2]。飛行仿真是以飛行器的運(yùn)動(dòng)情況為研究對(duì)象,面向復(fù)雜系統(tǒng)的仿真。
飛行仿真根據(jù)仿真模型類型及其實(shí)現(xiàn)方式的不同可以分為以下三大類[3]:數(shù)字仿真、含實(shí)物仿真和人在回路仿真。本文涉及的仿真技術(shù)屬于人在回路仿真。人在回路中仿真是一種操作人員、飛行員、宇航員在系統(tǒng)回路中進(jìn)行操縱的仿真實(shí)驗(yàn)。這種仿真實(shí)驗(yàn)要求有相應(yīng)的形成人感覺環(huán)境的各種物理效應(yīng)設(shè)備。而飛行器飛行動(dòng)力學(xué)等被控對(duì)象的動(dòng)態(tài)特性仍通過建立數(shù)學(xué)模型在計(jì)算機(jī)上進(jìn)行。人在回路的仿真必須實(shí)時(shí)進(jìn)行,對(duì)系統(tǒng)運(yùn)行的可靠性、實(shí)時(shí)性提出了很高的要求[1][4]。
由于飛行仿真系統(tǒng)中往往含有大量的模型計(jì)算,對(duì)于單個(gè)計(jì)算機(jī)無(wú)法勝任高強(qiáng)度計(jì)算和顯示。以前多采用工作站的方式進(jìn)行仿真計(jì)算。隨著個(gè)人計(jì)算機(jī)性能的不斷提高,使得在個(gè)人計(jì)算機(jī)上進(jìn)行飛行仿真變成了現(xiàn)實(shí)。為了充分利用資源,一個(gè)飛行仿真系統(tǒng)往往采用多臺(tái)計(jì)算機(jī)進(jìn)行并行計(jì)算,每個(gè)計(jì)算機(jī)完成一個(gè)相對(duì)獨(dú)立的任務(wù),通過網(wǎng)絡(luò)實(shí)現(xiàn)各個(gè)計(jì)算機(jī)之間的數(shù)據(jù)傳輸,這樣就構(gòu)成了分布式飛行仿真系統(tǒng)。
根據(jù)分布式飛行仿真系統(tǒng)的實(shí)際需求,將系統(tǒng)的各個(gè)任務(wù)分配到各臺(tái)仿真計(jì)算機(jī),系統(tǒng)的結(jié)構(gòu)如圖1所示。
圖1 分布式飛行仿真結(jié)構(gòu)圖
系統(tǒng)主要由控制臺(tái)、模型計(jì)算、發(fā)動(dòng)機(jī)故障診斷、可視化顯示和數(shù)據(jù)庫(kù)存儲(chǔ)五個(gè)主要部分組成??刂婆_(tái)由一臺(tái)計(jì)算機(jī)負(fù)責(zé),用于規(guī)劃控制整個(gè)系統(tǒng)的運(yùn)行;模型計(jì)算分配給三臺(tái)計(jì)算機(jī),分別負(fù)責(zé)計(jì)算飛機(jī)模型、推進(jìn)系統(tǒng)模型和優(yōu)化模型;發(fā)動(dòng)機(jī)故障診斷由單獨(dú)的一臺(tái)計(jì)算機(jī)負(fù)責(zé)完成;可視化顯示部分則由三臺(tái)計(jì)算機(jī)負(fù)責(zé)完成,分別負(fù)責(zé)地形大氣飛機(jī)顯示、矢量噴管顯示和駕駛艙儀表顯示。數(shù)據(jù)庫(kù)存儲(chǔ)計(jì)算機(jī)用來(lái)存儲(chǔ)仿真過程中的數(shù)據(jù),各臺(tái)計(jì)算機(jī)之間以光纖相連,實(shí)現(xiàn)網(wǎng)絡(luò)通信。
圖2 分布式飛行仿真連接示意圖
系統(tǒng)物理連接原理如圖2所示。系統(tǒng)的幾個(gè)節(jié)點(diǎn)用多模光纖通過光纖HUB相連接,構(gòu)成星形網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)。需要顯示的內(nèi)容則通過視頻切換器和兩個(gè)大屏幕顯示器相連接。在控制臺(tái)上給視頻切換器發(fā)送不同的命令,就會(huì)在大屏幕顯示器上顯示不同計(jì)算機(jī)屏幕的內(nèi)容,達(dá)到動(dòng)態(tài)切換,按需顯示的目的。
分布式飛行仿真系統(tǒng)是一個(gè)基于網(wǎng)絡(luò)平臺(tái)的虛擬環(huán)境系統(tǒng),系統(tǒng)在運(yùn)行階段會(huì)產(chǎn)生大量的數(shù)據(jù)傳輸。這些數(shù)據(jù)包括控制臺(tái)的控制指令發(fā)放、仿真節(jié)點(diǎn)模型計(jì)算數(shù)據(jù)、三維顯示坐標(biāo)、姿態(tài)指令等。傳統(tǒng)的網(wǎng)絡(luò)技術(shù),如基于TCP/IP協(xié)議的以太網(wǎng)、FDDI等在實(shí)時(shí)網(wǎng)應(yīng)用中普遍存在以下幾個(gè)方面的缺點(diǎn):數(shù)據(jù)傳輸率低;當(dāng)網(wǎng)絡(luò)負(fù)載較大時(shí),網(wǎng)絡(luò)傳輸延遲明顯加劇,且延遲具有不可預(yù)測(cè)性;網(wǎng)絡(luò)通信需要借助多種網(wǎng)絡(luò)協(xié)議完成,軟件開銷大,降低了通信的效率[5]。針對(duì)上述缺陷,本文提出了一種基于反射內(nèi)存網(wǎng)的分布式飛行仿真網(wǎng)絡(luò)通信解決方案,可以較好地減輕網(wǎng)絡(luò)延遲的影響。
反射內(nèi)存網(wǎng)(Reflective Memory Network)是一種基于高速網(wǎng)絡(luò)的共享存儲(chǔ)器技術(shù)的實(shí)時(shí)網(wǎng)絡(luò),它與傳統(tǒng)的網(wǎng)絡(luò)技術(shù)相比,除了具有嚴(yán)格的傳輸確定性和可預(yù)測(cè)性外,還具有速度高、通信協(xié)議簡(jiǎn)單、宿主機(jī)負(fù)載輕、軟硬件平臺(tái)適應(yīng)性強(qiáng)、支持中斷信號(hào)的傳輸?shù)忍攸c(diǎn)[6]。目前市場(chǎng)上有多種反射內(nèi)存網(wǎng)產(chǎn)品,如VM IC公司的反射內(nèi)存,SBS公司的廣播內(nèi)存,Systran公司的共享內(nèi)存。它們主要?dú)w為兩類,一類是星形拓?fù)涞膹V播內(nèi)存網(wǎng)絡(luò),另一類是環(huán)形拓?fù)涞姆瓷鋬?nèi)存網(wǎng)絡(luò)。由于VM IC公司的反射內(nèi)存支持星形和環(huán)形拓?fù)浣Y(jié)構(gòu),支持PCI總線,應(yīng)用也最為廣泛,本系統(tǒng)采用VM IC公司的VM IPCI-5565系列實(shí)時(shí)網(wǎng)卡組建實(shí)時(shí)網(wǎng)絡(luò)。
反射內(nèi)存網(wǎng)是一種高速的實(shí)時(shí)網(wǎng)絡(luò),可以用于連接各種計(jì)算機(jī)組成一個(gè)實(shí)時(shí)網(wǎng)絡(luò)。它主要由反射內(nèi)存卡通過光纖等傳輸介質(zhì)連接而成。每個(gè)反射內(nèi)存卡都有一段內(nèi)存地址,目前流行的是64M和128M兩種。網(wǎng)上的任何一臺(tái)計(jì)算機(jī)向本地反射內(nèi)存寫數(shù)據(jù)時(shí),該數(shù)據(jù)和相應(yīng)的內(nèi)存地址將在極短的時(shí)間內(nèi)廣播到網(wǎng)上所有的反射內(nèi)存卡并存儲(chǔ)在相同的偏移位置上,于是網(wǎng)絡(luò)上的所有計(jì)算機(jī)都可以訪問這個(gè)新數(shù)據(jù)。反射內(nèi)存使用簡(jiǎn)單的讀寫方式,對(duì)于CPU來(lái)說(shuō)就相當(dāng)于標(biāo)準(zhǔn)的RAM,而且反射內(nèi)存的數(shù)據(jù)更新是通過硬件操作實(shí)現(xiàn)的,其網(wǎng)絡(luò)延遲僅僅是仿真節(jié)點(diǎn)數(shù)n和所用寬帶比例B%的函數(shù),有:t=f(n,B%),網(wǎng)絡(luò)延遲大大減少,保證了實(shí)時(shí)性要求。
下面與傳統(tǒng)的網(wǎng)絡(luò)連接方式比較,以此說(shuō)明反射內(nèi)存網(wǎng)的優(yōu)勢(shì)所在。反射內(nèi)存網(wǎng)的顯著特點(diǎn)可以通過表1來(lái)體現(xiàn)。反射內(nèi)存網(wǎng)是基于環(huán)形拓?fù)浣Y(jié)構(gòu),高速?gòu)?fù)制的共享內(nèi)存網(wǎng)絡(luò),與一般的基于TCP/IP協(xié)議的局域網(wǎng)一樣,也是在每個(gè)節(jié)點(diǎn)計(jì)算機(jī)上附加一塊網(wǎng)卡。但是它并不附著冗長(zhǎng)的協(xié)議信息,不使用國(guó)際標(biāo)準(zhǔn)化組織(ISO)的七層通信模型,不再需要建立在消息傳遞網(wǎng)絡(luò)上的笨重的、費(fèi)時(shí)的和非確定性的協(xié)議。它還支持不同總線結(jié)構(gòu)的計(jì)算機(jī)系統(tǒng),通過光纖相連,通信速度高達(dá)2.1G波特率,具有很強(qiáng)的糾錯(cuò)能力,很低的軟件開銷,且可以使用不用的操作系統(tǒng)來(lái)共享數(shù)據(jù)。在反射內(nèi)存網(wǎng)中,一個(gè)數(shù)據(jù)被快速而直接地傳遞,傳遞的計(jì)算機(jī)相當(dāng)于做了一個(gè)高級(jí)語(yǔ)言的賦值語(yǔ)句[1]:A=B,變量A位于本地內(nèi)存地址上。在幾個(gè)微妙甚至納秒級(jí)別內(nèi),網(wǎng)絡(luò)上的其它節(jié)點(diǎn)計(jì)算機(jī)的反射內(nèi)存卡內(nèi)存地址上就有了變量A的相同值B。數(shù)據(jù)傳輸期間,完全不需要通過諸如三次握手協(xié)議等復(fù)雜的過程。
表1 反射內(nèi)存網(wǎng)與傳統(tǒng)以太網(wǎng)比較
基于反射內(nèi)存網(wǎng)的分布式飛行仿真系統(tǒng)的設(shè)計(jì),解決了傳統(tǒng)的以太網(wǎng)通信的不足,能夠大大地提高網(wǎng)絡(luò)傳輸?shù)膶?shí)時(shí)性。但分布式飛行仿真系統(tǒng)的各個(gè)節(jié)點(diǎn)計(jì)算機(jī)之間含有大量的仿真數(shù)據(jù)傳輸,使用的反射內(nèi)存卡具有128M內(nèi)存,如何設(shè)計(jì)合理的通訊協(xié)議和有效地利用反射內(nèi)存地址是系統(tǒng)設(shè)計(jì)成功與否的關(guān)鍵。
下一步的研究將詳細(xì)設(shè)計(jì)通信協(xié)議,并采用Visual C++編程環(huán)境來(lái)實(shí)現(xiàn)。
參考資料:
[1] 樓俊榮.分布式虛擬靶試系統(tǒng)的實(shí)時(shí)性數(shù)據(jù)通信與管理技術(shù)研究[D].西北大學(xué)碩士論文,2006.
[2] WEN Chuan-yuan,Exploitation and Study on Similarity Theory,The Proceedings of the 1989 Beijing International Conference on system simulation and Scientific Computing,1989.
[3] Milan Jovanovic and Veljko Milutinovic.An Overview of Reflective Memory Systems Concurrency[J],IEEE,1999,7(2):56-64.
[4] 馬志強(qiáng).虛擬實(shí)驗(yàn)系統(tǒng)實(shí)時(shí)網(wǎng)絡(luò)環(huán)境構(gòu)建技術(shù)研究與應(yīng)用[D].西北工業(yè)大學(xué)碩士論文,2007.
[5] 顧穎彥.反射內(nèi)存網(wǎng)實(shí)時(shí)通信技術(shù)的研究[J].計(jì)算機(jī)工程,2002,28(7):143-144.
[6] 劉志國(guó),王仕成.基于實(shí)時(shí)網(wǎng)絡(luò)的激光制導(dǎo)武器半實(shí)物仿真系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)仿真,2003,20(5):20-21.