梁 禹,黃 偉
(中國電子科技集團公司第五十四研究所,河北 石家莊 050081)
?
一種基于HLA的仿真控制整體架構設計
梁 禹,黃 偉
(中國電子科技集團公司第五十四研究所,河北 石家莊 050081)
針對無法動態(tài)地與運行中的OPNET進行交互,實時控制其模型中的屬性參數(shù)這一問題,提出了一種基于HLA的仿真控制整體架構設計方法,描述了仿真控制準備、仿真控制主體和控制狀態(tài)呈現(xiàn)等組成部分的設計方法。可以與OPNET仿真工程進行實時互動,控制該仿真工程的運行狀態(tài),并且能夠自動地獲取任一OPENT仿真工程中的模型屬性參數(shù),在運行中動態(tài)地控制其內(nèi)部相關的屬性參數(shù),實現(xiàn)人在回路的功能。
OPNET;HLA;參數(shù)控制;狀態(tài)控制;人在回路
OPNET作為一款優(yōu)秀的網(wǎng)絡建模仿真工具,在網(wǎng)絡仿真領域取得了廣泛的應用并展現(xiàn)出強大的功能[1]。但是其在運行過程中,對模型參數(shù)的實時控制能力仍然比較薄弱。目前,大部分的OPNET網(wǎng)絡仿真工程里的模型屬性參數(shù)都是在其運行前,就已經(jīng)預先定義好了,研發(fā)人員很難在OPNET運行過程中去控制某些參數(shù)的內(nèi)容[2]。然而在OPNET運行過程中,去動態(tài)地改變其中參數(shù)的內(nèi)容往往能夠更好地分析網(wǎng)絡動態(tài)調(diào)整的性能,具有十分重要的意義。因此,如何在OPNET運行過程中對其進行狀態(tài)控制以及參數(shù)控制交互變得尤為重要。
為了解決如何實時地與OPNET進行交互這一問題,本文提出了一種基于HLA的仿真控制整體架構設計思想,描述了仿真控制前期準備、仿真控制主體以及仿真控制狀態(tài)呈現(xiàn)等模塊的設計方法。使得研發(fā)人員能夠針對任一給定的OPNET網(wǎng)絡仿真工程,在不必了解其內(nèi)部具體模型構成的前提下,控制該OPNET仿真工程的開始、暫停、恢復和停止等運行狀態(tài),并且能夠在OPNET運行過程中,自動地識別出該仿真工程中的所有模型屬性參數(shù),動態(tài)地更改其屬性參數(shù)的內(nèi)容來實現(xiàn)實時地與OPNET進行交互,達到人在回路的效果。
1.1 HLA
HLA系統(tǒng)包括運行支撐環(huán)境(Run-Time Infrastructure,RTI)和RTI之上的仿真應用。HLA標準中有2個重要的基本概念:聯(lián)邦(Federation)和聯(lián)邦成員(Federate)[3]。
聯(lián)邦成員:是指加入到分布式仿真中的仿真應用程序,它可以是計算機的仿真程序、人在回路的模擬器、觀察器和數(shù)據(jù)收集器等。
聯(lián)邦:是指包含相互交互的聯(lián)邦成員集合、RTI 以及聯(lián)邦成員和 RTI 的接口3個部分。聯(lián)邦可以當做是全部的仿真系統(tǒng)。
使用的HLA仿真聯(lián)邦的邏輯結構如圖1所示[4]。

圖1 HLA仿真聯(lián)邦的邏輯結構
1.2 OPNET中的HLA接口
為了支持分布式仿真,OPNET 也提供了符合 HLA 標準的接口模塊——HLA代理節(jié)點。OPNET 仿真系統(tǒng)通過該接口模塊,可以作為一個 HLA 聯(lián)邦成員參與聯(lián)邦執(zhí)行,與其他仿真聯(lián)邦成員進行數(shù)據(jù)通信和交互。HLA 代理節(jié)點可以通過 RTI 及時更新 OPNET 仿真系統(tǒng)以及進程模型的屬性,可以完成加入/退出、公布/訂購等一系列 HLA 特有的服務。此外,OPNET中HLA接口還具有時間管理控制、數(shù)據(jù)管理控制以及數(shù)據(jù)交互等功能[5]。
1.3 OPNET仿真成員設計
為了能夠與OPNET進行交互,實現(xiàn)實時控制屬性參數(shù)的功能,需要在所提供的OPNET仿真工程中額外加入HLA 代理節(jié)點模型、自定義OPNET控制節(jié)點、自定義數(shù)據(jù)包、成員對象模型(SOM 文件)、映射文件(MAP)、聯(lián)邦執(zhí)行數(shù)據(jù)文件(FED 文件)以及RTI.rid[6]等文件。其中的HLA代理節(jié)點模型由OPNET軟件提供,RTI.rid使用RTI提供的默認文件。自定義的OPNET控制節(jié)點、數(shù)據(jù)包、MAP以及FED文件是本設計根據(jù)具體需求所創(chuàng)建的。
1.4 交互控制框架
根據(jù)以上介紹的內(nèi)容,基于HLA的仿真交互控制框架如2所示。

圖2 交互控制框架
架構設計主要是針對仿真想定規(guī)劃的控制以及OPNET運行流程交互以及屬性參數(shù)的控制,不涉及OPNET模型的詳細構造內(nèi)容。因此不會對原仿真工程增加額外的工作量,無需更改原模型的設計和流程,即可自動地實現(xiàn)對OPNET仿真的運行控制。針對給定的OPNET仿真工程,通過采用該設計架構,增加相應的配置文件以及控制模塊實現(xiàn)控制軟件后,即可實現(xiàn)與OPNET仿真工程的實時交互[7]。仿真控制整體框架主要包括控制準備、仿真控制主體以及控制狀態(tài)呈現(xiàn)這3個模塊,其構成如圖3所示。

圖3 仿真控制整體架構
2.1 仿真控制準備模塊設計
為實現(xiàn)與OPNET實時進行交互,動態(tài)修改相關屬性參數(shù)內(nèi)容,需在其運行過程中調(diào)用OPNET自帶的op_ima_obj_attr_get()以及op_ima_obj_attr_set()函數(shù)[8]來獲得和設定相關的屬性參數(shù)值。使用這些函數(shù)需要提前明確屬性的名稱和類型,仿真控制準備模塊主要用來獲取需要控制的OPNET工程中的各數(shù)據(jù)元素屬性的名稱和類型。
對于任一給定的OPNET仿真工程來說,里面的模型屬性信息猶如黑盒一般是無法獲得的,目前還沒有有效的方法能夠在OPNET運行時,通過相關函數(shù)來獲得每個模型的所有屬性的信息。本模塊通過分析給定仿真工程導出的包含拓撲結構的XML文件來獲得所有的屬性信息。該XML文件包含了所有的網(wǎng)絡結構以及全部模型的名稱及其取值。通過分析XML文件,就可以獲得相應的模型屬性信息[9]。導入該XML文件,即可以樹形列表的形式展示出所有的屬性信息。可以對獲得的各屬性數(shù)據(jù)信息進行修改和刪除來獲得新的想定規(guī)劃,保存成為一個新的XML文件來與OPNET進行交互。
2.2 仿真控制模塊設計
2.2.1 OPNET時間控制
加入OPNET中自帶的HLA代理節(jié)點后,就可以控制聯(lián)邦執(zhí)行時控制時間的推進。采用聯(lián)邦時間管理策略為既時間控制又時間受限,消息傳遞方式為可靠方式,消息傳輸順序為時戳順序。控制聯(lián)邦的時間管理策略通過調(diào)用RTI所提供的相關服務函數(shù)來制定,時間推進步長預設置為2 s。
采用線程的方式來進行HLA時間控制時,為能夠控制OPNET的運行狀態(tài),設置了開始、暫停、恢復和結束這4個MFC CEvent事件對象,通過調(diào)用WaitForSingleObject函數(shù)來分別控制每種狀態(tài),以此來實現(xiàn)線程同步[10]。在成功加入RTI之后,將開始事件設置為有信號狀態(tài),仿真時間便會每次以2 s的速度進行推進;在仿真運行過程中,將暫停事件設置為有信號狀態(tài),同時將開始事件設置為無信號狀態(tài),等待RTI事件推進之后,再次將暫停事件恢復為無信號狀態(tài),這時仿真時間就會停留在當前的時間,實現(xiàn)時間暫停的功能;進行類似事件狀態(tài)控制的設置后,便可實現(xiàn)OPNET運行時的恢復和結束功能,完成對OPNET運行時間的控制。
結束控制為結束控制聯(lián)邦的時間管理策略,使OPNET運行完所有時間后自動結束。在任一時刻隨意終止OPNET的運行,需要與OPNET進行交互,發(fā)送給OPNET一個中斷交互包,OPNET在收到該交互后調(diào)用op_sim_end()函數(shù)來終止當前的運行。
2.2.2 參數(shù)控制
在HLA中可以通過更新對象屬性和接收交互實例這2種方式來接收數(shù)據(jù)消息。采用交互實例來交換信息,只涉及到交互類的聲明和映射,并且定義OPNET用來接收交互的包結構。為實現(xiàn)不對原仿真工程增加額外的設計修改,自動隨意地實現(xiàn)對任一模型的任一屬性參數(shù)進行控制這一功能,所定義的交互類需要包含該模型的名稱Hierarchical_Name,所要控制的屬性參數(shù)的名稱Param_Name以及屬性參數(shù)的取值Param_Value這3項內(nèi)容。相應的文件及參數(shù)格式如表1所示。

表1 交互數(shù)據(jù)定義
為了不修改RIT代理網(wǎng)管和HLA-PM中復雜的HLA接口規(guī)范,同時為了能夠自動地適應各個OPNET仿真工程,控制其中任意的屬性參數(shù),將交互類中的名稱以及取值類型都采用字符串類型[11]。HLA-PM對于字符串數(shù)據(jù)類型不做處理,將Map文件的數(shù)據(jù)包中對應的包域定義為Structure類型。HLA-PM只實現(xiàn)將該數(shù)據(jù)進行轉發(fā),相應的數(shù)據(jù)解析在目的進程模塊中進行處理,即在自定義的控制模塊中處理。
在實際運行中,自定義控制節(jié)點中的初始化進程首先進行初始化設置以及注冊交互包。在仿真運行中,每當更改了相應屬性參數(shù)的內(nèi)容后,控制模塊就會向OPNET發(fā)送一個交互包。交互包包含模型的名稱、屬性參數(shù)的名稱以及屬性參數(shù)新的內(nèi)容。自定義控制節(jié)點中的交互進程處理收到交互包。調(diào)用相關OPNET函數(shù),根據(jù)Hierarchical_Name定位到具體的模型,然后對該模型屬性參數(shù)賦予新的數(shù)值,最后在將所修改的結果返回給控制模塊。
通過以上步驟,可以在完全不更改原仿真模型的基礎上,實現(xiàn)在OPNET運行過程中與其進行交互,實時地更改OPNET運行中相關參數(shù)的內(nèi)容。
2.2.3 交互控制
在與運行中的OPNET進行交互過程中,OPNET收到一個交互控制包之后,自定義控制節(jié)點會按照包內(nèi)的信息進行參數(shù)的重新設定。控制參數(shù)修改完畢后,控制節(jié)點可以反饋一個交互包或者通過SOCKET來通知仿真控制模塊被控制參數(shù)的實時數(shù)據(jù)以及當前的控制狀態(tài)信息[12]。通過仿真控制模塊,可以很好地與OPNET進行交互,實現(xiàn)人在回路的功能。
2.3 控制狀態(tài)呈現(xiàn)模塊設計
仿真控制狀態(tài)呈現(xiàn)模塊主要負責整體控制流程中的界面信息顯示,包括拓撲顯示、信息顯示以及狀態(tài)顯示。其中拓撲顯示中,借助MAPX地圖插件,將仿真工程的網(wǎng)絡拓撲結構展示在地圖上,并且可以像OPNET Modeler一樣層次化展示每一層的拓撲信息[13];數(shù)據(jù)信息顯示包括整體拓撲的信息以及每個模型的詳細參數(shù)信息,以樹形列表的形式展示;狀態(tài)顯示包括當前的仿真進度、仿真交互過程等狀態(tài)信息。當控制命令發(fā)出后,拓撲、信息以及狀態(tài)這3個顯示部分會更新控制后的界面信息[14]。整個控制狀態(tài)呈現(xiàn)模塊由不同的區(qū)域顯示界面組成,可以自主選擇相應的界面進行查看。
通過上述內(nèi)容可知,對任一給定的OPNET仿真工程,導入相關仿真工程的想定規(guī)劃,轉換為XML文件格式形成節(jié)點樹。給該仿真工程加入2.2節(jié)介紹的自定義控制節(jié)點以及HLA節(jié)點之后,待OPNET仿真開始后,控制整體架構設計便可與OPNET進行實時交互,控制OPNET的運行狀態(tài)并動態(tài)更改其屬性參數(shù)的內(nèi)容。本文所設計的基于HLA的OPNET仿真控制架構的整體運行流程如圖4所示。

圖4 整體運行流程
通過控制軟件的實際運行,表明仿真控制整體架構設計有效可行。采用該設計可以在不增加原仿真工程工作量的情況下,靈活地與運行過程中的OPNET進行交互,為外部控制OPNET的定制應用提供了一定的技術支持。
針對無法與運行中的OPNET有效互動這一問題,提出了一種基于HLA的交互式仿真控制整體架構設計。通過加入自定義控制節(jié)點以及交互格式包,能夠不修改原仿真工程的模型設計、自動地識別出所給OPNET仿真工程中的模型屬性,并且能夠與其進行動態(tài)交互,控制OPNET的運行狀態(tài),在其運行中更新控制模型參數(shù)的內(nèi)容以及呈現(xiàn)相應的控制狀態(tài)數(shù)據(jù)。
本文提出的仿真控制架構設計能夠在外部實現(xiàn)對運行中的OPNET進行交互控制,各個設計模塊無需改動或者較少改動即可實現(xiàn)不同仿真應用控制的定制重用,其整體架構設計思想對進一步研究OPNET仿真運行控制提供了一定的思路。由于OPNET仿真所包含內(nèi)容豐富并且復雜,正在進一步細化完善所設計的模塊,并且嘗試研究除仿真控制之外其他模型的設計以及實現(xiàn)。
[1] 陳 敏.OPNET網(wǎng)絡仿真[M].北京:清華大學出版社,2004.
[2] 王玲芳,母景琴.計算機網(wǎng)絡仿真OPNET實用指南[M].北京:機械工業(yè)出版社,2014.
[3] 丁 丁,王 杉,魏急波,等.基于HLA的OPNET仿真聯(lián)邦成員設計與實現(xiàn)[J].系統(tǒng)仿真學報,2007,19(7):1 601-1 603.
[4] 胡 斌,陳星光.HLA系統(tǒng)實施技術的研究[J].艦船電子工程,2005,25(1):100-102.
[5] 徐庚保.對高層體系結構(HLA)的剖析[J].航天控制,2000,1(2):59-63.
[6] 楊淑峰.基于HLA的量子通信網(wǎng)絡分布式仿真研究與實現(xiàn)[D].西安:西安電子科技大學,2013.
[7] 陳 娜,張金娟,劉智瓊.一種分層的企業(yè)級云管理平臺設計[J].移動通信,2015,39(2):67-73.
[8] 韋良芬.基于OPNET的網(wǎng)絡建模與仿真設計[J].電腦知識與技術,2012,8(33):8 073-8 075.
[9] 高天宇,容曉峰.基于OPNET 的拓撲監(jiān)視技術研究[J].信息通信,2015,1(2):46-47.
[10] 李 崢.運用Event實現(xiàn)線程同步的若干問題[J].電子對抗技術,2002,17(6):51-54.
[11] 黃 偉.基于OPNET的動態(tài)TDMA接入網(wǎng)絡半實物仿真研究與實現(xiàn)[D].西安:西安電子科技大學,2011.
[12] 李寶蓮.基于OPNET的網(wǎng)絡仿真總體框架設計與實現(xiàn)[J].計算機與網(wǎng)絡,2010,3(4):86-88.
[13] 王 巍,馬海兵,周 沫.MAPX二次開發(fā)機制研究——以VC環(huán)境下實現(xiàn)鷹眼為例[J].軟件導刊,2010,9(3):7-9.
[14] 朱云峰,樂友平.通信工程項目實時信息管理系統(tǒng)設計[J].移動通信,2014,38(24):82-86.
梁 禹 男,(1987—),碩士,助理工程師。主要研究方向:通信系統(tǒng)仿真技術。
黃 偉 男,(1978—),碩士,高級工程師。主要研究方向:通信系統(tǒng)仿真技術。
Design of Simulation Regulation Framework Based on HLA
LIANG Yu,HUANG Wei
(The54thResearchInstituteofCETC,ShijiazhuangHebei050081,China)
To solve the problem that it is difficult to interact with OPNET and regulate its inner parameters when OPNET is running,this paper presents a design of simulation regulation framework based on HLA,and describes the design methods for its components such as control preparation,control regulation and control status demonstration.This design can interact with OPNET and control the project’s running status.Moreover,this design can obtain the parameters of model attribute in any given OPNET project automatically,and regulate its inner parameters dynamically when OPNET is running,which achieves the function of man-in-the-loop.
OPNET;HLA;parameter regulation;status regulation;man-in-the-loop
10.3969/j.issn.1003-3106.2016.12.02
梁 禹,黃 偉.一種基于HLA的仿真控制整體架構設計[J].無線電工程,2016,46(12):5-7,62.
2016-09-06
國家部委基金資助項目。
TP393
A
1003-3106(2016)12-0005-03