郭翠珍 郭劍 譚方勇
(1.蘇州市職業大學,江蘇蘇州215104;2.國網電力科學研究院,江蘇南京210016)
分布式虛擬現實技術(Distributed Virtual Reality)是不斷發展的虛擬現實技術和計算機網絡技術相結合的產物,它融合虛擬現實技術和計算機網絡技術的各項特點。目前,它已經成功地應用于軍事、航天、醫療和娛樂等領域,并在教育、工程設計與制造、電子商務等方面顯示了良好的應用前景[1]。
分布式飛行仿真系統,就是一個分布式虛擬現實系統,它為新機型的預研、實驗、優化和評估等提供了一個可視化的驗證平臺。分布式飛行仿真系統由多個節點組成,在節點之間會有大量的數據傳輸。分布式飛行仿真屬于軍事仿真應用,對實時性要求較高。在分布式飛行仿真系統中,延遲主要由以下幾個因素造成的:1)計算延遲。由于模型中含有大量的迭代計算等,造成計算機計算延遲;2)網絡延遲。數據在仿真節點之間傳輸需要一定的時間,造成了數據傳輸的網絡延遲。針對上述延遲因素中的計算延遲需要優化模型、提高計算機性能等以減少延遲時間。針對這種情況,本文采用反射內存網技術,設計分布式飛行仿真系統的通信協議,以滿足分布式飛行仿真系統對實時性的要求。
系統仿真技術,是以控制理論、計算機技術和相似原理為基礎,以計算機和各種物理效應設備為工具,借助系統模型對真實的或設想的系統進行試驗研究的一門綜合性的技術[2]。飛行仿真是以飛行器的運動情況為研究對象,面向復雜系統的仿真。
飛行仿真根據仿真模型類型及其實現方式的不同可以分為以下三大類[3]:數字仿真、含實物仿真和人在回路仿真。本文涉及的仿真技術屬于人在回路仿真。人在回路中仿真是一種操作人員、飛行員、宇航員在系統回路中進行操縱的仿真實驗。這種仿真實驗要求有相應的形成人感覺環境的各種物理效應設備。而飛行器飛行動力學等被控對象的動態特性仍通過建立數學模型在計算機上進行。人在回路的仿真必須實時進行,對系統運行的可靠性、實時性提出了很高的要求[1][4]。
由于飛行仿真系統中往往含有大量的模型計算,對于單個計算機無法勝任高強度計算和顯示。以前多采用工作站的方式進行仿真計算。隨著個人計算機性能的不斷提高,使得在個人計算機上進行飛行仿真變成了現實。為了充分利用資源,一個飛行仿真系統往往采用多臺計算機進行并行計算,每個計算機完成一個相對獨立的任務,通過網絡實現各個計算機之間的數據傳輸,這樣就構成了分布式飛行仿真系統。
根據分布式飛行仿真系統的實際需求,將系統的各個任務分配到各臺仿真計算機,系統的結構如圖1所示。

圖1 分布式飛行仿真結構圖
系統主要由控制臺、模型計算、發動機故障診斷、可視化顯示和數據庫存儲五個主要部分組成。控制臺由一臺計算機負責,用于規劃控制整個系統的運行;模型計算分配給三臺計算機,分別負責計算飛機模型、推進系統模型和優化模型;發動機故障診斷由單獨的一臺計算機負責完成;可視化顯示部分則由三臺計算機負責完成,分別負責地形大氣飛機顯示、矢量噴管顯示和駕駛艙儀表顯示。數據庫存儲計算機用來存儲仿真過程中的數據,各臺計算機之間以光纖相連,實現網絡通信。

圖2 分布式飛行仿真連接示意圖
系統物理連接原理如圖2所示。系統的幾個節點用多模光纖通過光纖HUB相連接,構成星形網絡拓撲結構。需要顯示的內容則通過視頻切換器和兩個大屏幕顯示器相連接。在控制臺上給視頻切換器發送不同的命令,就會在大屏幕顯示器上顯示不同計算機屏幕的內容,達到動態切換,按需顯示的目的。
分布式飛行仿真系統是一個基于網絡平臺的虛擬環境系統,系統在運行階段會產生大量的數據傳輸。這些數據包括控制臺的控制指令發放、仿真節點模型計算數據、三維顯示坐標、姿態指令等。傳統的網絡技術,如基于TCP/IP協議的以太網、FDDI等在實時網應用中普遍存在以下幾個方面的缺點:數據傳輸率低;當網絡負載較大時,網絡傳輸延遲明顯加劇,且延遲具有不可預測性;網絡通信需要借助多種網絡協議完成,軟件開銷大,降低了通信的效率[5]。針對上述缺陷,本文提出了一種基于反射內存網的分布式飛行仿真網絡通信解決方案,可以較好地減輕網絡延遲的影響。
反射內存網(Reflective Memory Network)是一種基于高速網絡的共享存儲器技術的實時網絡,它與傳統的網絡技術相比,除了具有嚴格的傳輸確定性和可預測性外,還具有速度高、通信協議簡單、宿主機負載輕、軟硬件平臺適應性強、支持中斷信號的傳輸等特點[6]。目前市場上有多種反射內存網產品,如VM IC公司的反射內存,SBS公司的廣播內存,Systran公司的共享內存。它們主要歸為兩類,一類是星形拓撲的廣播內存網絡,另一類是環形拓撲的反射內存網絡。由于VM IC公司的反射內存支持星形和環形拓撲結構,支持PCI總線,應用也最為廣泛,本系統采用VM IC公司的VM IPCI-5565系列實時網卡組建實時網絡。
反射內存網是一種高速的實時網絡,可以用于連接各種計算機組成一個實時網絡。它主要由反射內存卡通過光纖等傳輸介質連接而成。每個反射內存卡都有一段內存地址,目前流行的是64M和128M兩種。網上的任何一臺計算機向本地反射內存寫數據時,該數據和相應的內存地址將在極短的時間內廣播到網上所有的反射內存卡并存儲在相同的偏移位置上,于是網絡上的所有計算機都可以訪問這個新數據。反射內存使用簡單的讀寫方式,對于CPU來說就相當于標準的RAM,而且反射內存的數據更新是通過硬件操作實現的,其網絡延遲僅僅是仿真節點數n和所用寬帶比例B%的函數,有:t=f(n,B%),網絡延遲大大減少,保證了實時性要求。
下面與傳統的網絡連接方式比較,以此說明反射內存網的優勢所在。反射內存網的顯著特點可以通過表1來體現。反射內存網是基于環形拓撲結構,高速復制的共享內存網絡,與一般的基于TCP/IP協議的局域網一樣,也是在每個節點計算機上附加一塊網卡。但是它并不附著冗長的協議信息,不使用國際標準化組織(ISO)的七層通信模型,不再需要建立在消息傳遞網絡上的笨重的、費時的和非確定性的協議。它還支持不同總線結構的計算機系統,通過光纖相連,通信速度高達2.1G波特率,具有很強的糾錯能力,很低的軟件開銷,且可以使用不用的操作系統來共享數據。在反射內存網中,一個數據被快速而直接地傳遞,傳遞的計算機相當于做了一個高級語言的賦值語句[1]:A=B,變量A位于本地內存地址上。在幾個微妙甚至納秒級別內,網絡上的其它節點計算機的反射內存卡內存地址上就有了變量A的相同值B。數據傳輸期間,完全不需要通過諸如三次握手協議等復雜的過程。

表1 反射內存網與傳統以太網比較
基于反射內存網的分布式飛行仿真系統的設計,解決了傳統的以太網通信的不足,能夠大大地提高網絡傳輸的實時性。但分布式飛行仿真系統的各個節點計算機之間含有大量的仿真數據傳輸,使用的反射內存卡具有128M內存,如何設計合理的通訊協議和有效地利用反射內存地址是系統設計成功與否的關鍵。
下一步的研究將詳細設計通信協議,并采用Visual C++編程環境來實現。
參考資料:
[1] 樓俊榮.分布式虛擬靶試系統的實時性數據通信與管理技術研究[D].西北大學碩士論文,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] 馬志強.虛擬實驗系統實時網絡環境構建技術研究與應用[D].西北工業大學碩士論文,2007.
[5] 顧穎彥.反射內存網實時通信技術的研究[J].計算機工程,2002,28(7):143-144.
[6] 劉志國,王仕成.基于實時網絡的激光制導武器半實物仿真系統設計[J].計算機仿真,2003,20(5):20-21.