劉元斌 占日新
(中國直升機設計研究所,江西 景德鎮 333000)
航空電子系統是現代飛機的“中樞神經”,航空電子系統的先進程度是衡量現代飛機先進性的重要指標。為了測試和驗證航電系統的功能,需要搭建航電系統仿真測試平臺對系統進行測試與優化。隨著航電設備的發展,航電系統的復雜性、交互性也逐漸增加,因此需要更為先進、高效的仿真測試平臺。
HLA(High Level Architecture)是分布式交互仿真的高層體系結構,HLA定義了聯邦,并提出了聯邦成員構建、描述和交互的基本準則和方法,提供了1種通用的仿真技術框架[1]。HLA主要由描述運行支撐框架的API、對象模型模板和HLA規則構成。
HLA作為1個標準、通用的高層仿真體系結構,其廣泛應用于分布式交互仿真、人在回路仿真、虛擬仿真以及實況仿真等環境。
HLA的工作原理如圖1所示。
分布式交互仿真(Distributed Interactive Simulation,DIS)通過局域網或廣域網實現了各分散仿真設備的互聯,形成了可參與的綜合性仿真環境,具有協調一致的結構、標準、協議和數據庫[2]。從系統的物理結構來看,DIS由仿真節點和計算機網絡組成。

圖1 HLA工作原理圖
DIS通過網絡將分散在不同地理位置的不同類型的仿真與真實世界互連、互操作,建立了1種人可以參與交互操作的時空一致的綜合環境,通過使用協議數據單元(PDU),可以支持對異地分布的真實、虛擬和構造的平臺級仿真之間的互操作。DIS系統將建立大規模虛擬環境所需要的計算工作分配到各個節點;仿真節點為對等關系,不區分服務器和客戶機。
雖然DIS系統具有結構簡單、容錯性好等優點,但是其通信量較大、占據網絡帶寬,不能適應國防領域中存在多種時間機制的仿真應用,不能滿足大規模分布仿真的需要。
數據分發服務(Data Distribution Service,DDS)規范主要由以數據為中心的發布 / 訂閱(Data Centered Publish Subscribe,DCPS)和數據本地重構層(Data Local Reconstruction Layer,DLRL)組成。DDS規范了分布式實時系統中數據發布、傳遞以及接收的接口和行為,定義了DCPS機制,提供了1個與平臺無關的數據模型,該模型能夠映射到各種具體的平臺和編程語言,在為實時系統應用開發者提供高級抽象的同時,還能控制部署實時系統需要的服務質量(Quality of Service,QoS)策略[3]。DDS通信模型的實體組成及結構示意如圖2所示。
DDS支持對松散耦合、模塊化和開放式的架構系統進行開發。通過支持組件和子系統定義良好的界面,DDS徹底改變了煙囪式、封閉和專有的架構,大大降低了系統的復雜程度,并減少了集成、維護和升級的成本;提高了子系統和中間件的競爭力,使重用變得簡單。
公共對象請求代理體系結構(Common Object Request Broker Architecture,CORBA)擁有跨平臺、跨語言、跨協議、跨版本以及跨操作系統等特性,主要由CORBA核心、客戶端存根、服務器端框架、對象適配器、動態調用接口、客戶端應用程序、對象實現、接口倉庫以及實現倉庫等組成[4],其體系結構如圖3所示。
對象請求代理(Object Request Broker,ORB)接口規范應用于客戶端和服務器端之間,使用ORB交互來完成相互的功能,實現了把接口與對象分離的目的,避免了雙方的直接交互,在不同的硬件和軟件平臺上實現了不同功能組件的操作和內外部接口的統一,真正做到了接口與系統無關。

圖2 DDS通信模型的實體組成及結構示意

圖3 CORBA體系結構示意圖
通過分析二者的規范可知,HLA和DDS都有分配虛擬狀態和事件的API、應用通知中的API以及定義虛擬數據/對象模型的語言,其對應關系如下。
2.1.1 分配虛擬狀態和事件的API
HLA:運行支撐框架API。
DDS:標準DDS-DCPS API。
2.1.2 應用通知中的API
HLA:聯邦代理(Federate Ambassador)。
DDS:標準DDS-DCPS API(實體監聽)。
2.1.3 定義虛擬數據/對象模型的語言
HLA:對象模型模板、類結構表以及屬性表。
DDS:X-類型說明、IDL、XML以及XSD語言。
HLA與DDS的優勢對比見表1。

表1 HLA與DDS優勢對比
DDS和CORBA的相似之處有以下3點:1) CORBA是用于構建分布式對象的中間件,CORBA運用客戶端/服務器(C/S)的方式對本地和系統中其他過程之間的對象進行調用,采用外部的broker方式在各個對象之間進行通信。DDS是用于構建實時系統中分布式數據的中間件,采用發布/訂閱(publish/subscribe)的方式;DDS構建的系統效率高、容錯能力強且具有較高的性能。2) DDS 和 CORBA都是分布式處理環境(DCE)中,針對硬件和軟件系統互連問題的解決方案。3) 基于接口定義語言IDL對通信接口進行描述,并通過自動化代碼生成工具創建框架代碼,不同的是CORBA通過IDL定義接口,而DDS通過IDL定義傳輸的數據結構。DDS與CORBA的優勢對比見表2。

表2 DDS與CORBA優勢對比
由前文可知,雖然HLA為規范分布式仿真系統的數據定義、數據管理以及時間管理等提供了一套完整的規范和體系,但是HLA-RTI影響和限制了系統的性能和可擴展性。由于DDS是針對分布式系統的數據傳輸規范,特別適合分布式系統的數據傳輸和系統集成,因此引入DDS作為底層實時運行的支撐平臺,并成為提升分布式仿真系統能力的有效技術(解決方案)[5]。
CORBA技術以對象和服務為中心,采用了C/S通信模式,通信機制較為復雜,數據收發需要建立連接的過程,且不支持QoS策略,不能滿足實時性和通信靈活性的需求。
在以數據為中心的發布/訂閱(DCPS)模型的基礎上制定DDS數據分發服務規范。開發人員可以基于DDS標準設定多種QoS策略,例如發布/訂閱速率以及通過網絡的數據長度等。利用DCPS模型的功能為實時與嵌入式系統提供高質量的運行保證,從而提高了系統的性能。
雖然HLA具有模型優勢和優秀的時間管理機制,但是其不適用于高效率、高吞吐量的大規模分布式仿真系統;而DDS具有對大規模網絡的分布式系統數據進行分發的優勢。因此采用DDS分發仿真過程中的網絡交互,同時借鑒HLA的時間管理機制,在DDS上構建的仿真系統不僅具有優秀的時間管理和仿真推進機制,還具有超大的仿真規模以及高效的仿真速率。
仿真系統由時間管理模塊、仿真模塊以及DDS通信模塊組成。其中,DDS通信模塊在仿真系統中通過構建3條數據總線分別傳輸時間管理類的控制數據以及與時間相關的TSO消息數據和與時間無關的RO消息數據。時間管理模塊依靠接收和發送DDS數據總線上的數據來控制各個仿真節點的推進。仿真節點通過DDS時間管理總線接收時間管理模塊發來的時統信號來控制該模塊的仿真進度,同時通過TSO數據總線及RO數據總線與仿真系統中的其他模塊交互仿真數據。仿真系統設計架構如圖4所示。
在基于DDS的分布式應用系統中,發布者和訂閱者采用不同主題的消息。發布者向DDS發布其他應用系統感興趣的消息,而訂閱者從消息代理處接收自己感興趣的消息,發布者和訂閱者之間通過消息代理進行關聯。
時間管理類的控制數據以及與時間相關的TSO消息數據和與時間無關的RO消息數據采用3個不同域的DDS總線,從而減輕時間管理的負載。HLA中要求時間管理服務不僅控制協調各個節點的時間推進,而且要求將與時間相關的TSO消息數據和與時間無關的RO消息數據分發給各個仿真實體,因此就會出現流量壓力過大的情況,從而導致仿真效率變低。基于DDS的時間管理服務采用分布式的設計以及發布訂閱的思想,將仿真節點間交互的TSO消息和RO消息命名為不同的主題,各個節點根據其邏輯關系通過主題對數據進行區分,仿真節點能夠根據需要接收各自的TSO和RO消息,大大減少了時間服務的負載壓力。
基于DDS的時間管理服務示意圖如圖5所示。

圖5 基于DDS的時間管理服務
時間管理服務端的主要功能包括以下4 點:1) 在初始化階段,時間管理服務通過RTI DDS(Request-Reply,請求回應模型)接收聯邦成員發來的注冊信息并回復確認消息。2) 注冊信息包括聯邦成員ID、步長以及初始前瞻量等,在第一拍執行時才有可用數據源。3) 在聯邦開始運行后,時間管理服務接收聯邦成員發來的前瞻量,并根據配置文件讀取該運行過程中參與的聯邦的總個數,收齊所有聯邦成員的前瞻量后,計算出最小的前瞻量即LBTS。4) 當聯邦成員向服務發送“請求推進”消息后,服務會將LBTS一對一地發送給聯邦成員。

圖4 仿真系統設計架構圖
DDS除了具有高效的數據分發能力外,其內部還具有高效的發現機制,通過自帶的發現協議,DDS能夠獲取仿真網絡中各個實體的狀態信息。DDS通過底層的組播協議,實時動態地向網絡中各個實體獲取實體信息,并通過DDS傳回的發現消息獲取仿真節點的信息。
該文通過研究對比不同的仿真架構,針對不同架構的優缺點和適用方向,分析了基于數據分發服務(DDS)實現仿真過程中的網絡數據交互以及借鑒高層體系結構(HLA)時間管理機制的航電系統仿真架構,構建既有優秀的時間管理、仿真推進機制,又有超大的仿真規模、高效的仿真速率的航電仿真系統。