蔣 濤 芮 力
(1.海軍工程大學兵器工程系 武漢 430033)(2.92664部隊 青島 260023)
仿真技術(shù)的進步對國防工業(yè)的發(fā)展產(chǎn)生了深遠的影響,2007年7月美國國會通過法案承認建模&仿真技術(shù)對美國國家安全和繁榮作出的貢獻[1]?;隗w系結(jié)構(gòu)的仿真是當前仿真發(fā)展的主流,美軍普遍使用公共體系結(jié)構(gòu)將各種虛擬的、真實的、構(gòu)造的資源組成邏輯試驗場來進行試驗和訓練,提升國防實力。當前國內(nèi)外試驗場普遍使用三種公共體系結(jié)構(gòu):分布式交互仿真DIS、高層體系結(jié)構(gòu)HLA和試驗與訓練使能體系結(jié)構(gòu)TENA[2~4]。在實現(xiàn)基于體系結(jié)構(gòu)的仿真時,需要有相應的試驗進程控制工具,因此本文基于某種仿真試驗體系結(jié)構(gòu)開發(fā)了一種進程控制組件,用于實現(xiàn)對試驗進程的設計、執(zhí)行和控制。
進程控制組件主要用于在用戶根據(jù)具體任務選擇參試資源后開發(fā)試驗流程,從而控制各個參試資源的運行時序,因此,進程控制組件應該具有在試驗流程中控制參試設備的功能,其需求分析如下:
1)不同的試驗資源所需的試驗控制指令不同,因此進程控制組件應該具有針對不同試驗資源的控制指令設計功能。設計完成的控制指令應該能夠以表格形式存儲于指令數(shù)據(jù)庫中,以供用戶后續(xù)開發(fā)試驗流程使用,進程控制組件應提供對指令數(shù)據(jù)庫中指令的添加、編輯和刪除等操作功能。
2)不同的試驗任務所需的試驗資源和試驗控制流程不同,因此進程控制組件應該具有根據(jù)不同試驗任務需求設計試驗流程的功能。設計完成的試驗流程應該能夠以表格形式存儲于流程數(shù)據(jù)庫中,進程控制組件應提供對流程數(shù)據(jù)庫中試驗流程指令集的添加、編輯和刪除等操作功能。
3)進程控制組件應該提供給用戶根據(jù)不同試驗任務選擇流程數(shù)據(jù)庫中已開發(fā)的試驗流程并執(zhí)行的功能,且應該具有單步執(zhí)行或順序執(zhí)行的功能。在試驗流程執(zhí)行過程中應該提供給用戶動態(tài)控制功能,包括試驗流程暫停、恢復和停止等,具有向用戶實時顯示流程執(zhí)行信息的功能,以使用戶可以在試驗中參與交互。
此外,進程控制組件也應該具有流程執(zhí)行日志保存/顯示功能,以方便用戶日后查詢。
經(jīng)過對大量試驗資源控制指令進行分析,可將試驗資源控制指令按功能抽象為不同的類型,對每一類型的控制指令設計相應的操作實現(xiàn)函數(shù)。在試驗流程執(zhí)行時,進程控制組件根據(jù)用戶選擇的操作函數(shù)和函數(shù)的參數(shù),調(diào)用對應的內(nèi)置函數(shù),即可完成進程的控制。表1列舉了抽象出來的13種控制指令類型及其對應的操作實現(xiàn)函數(shù)。
表1 13種控制指令類型及對應函數(shù)
圖1 組件設計框架
根據(jù)前面的需求分析,設計組件框架如圖1所示。定義控制指令是利用前面設計的控制指令開發(fā)控制指令表并存入指令數(shù)據(jù)庫中,同時針對每一類型的控制指令按照設計開發(fā)相應實現(xiàn)函數(shù)實現(xiàn)指令解析單元。設計試驗指令是指根據(jù)本次要執(zhí)行的試驗任務,從已開發(fā)的控制指令表中選出要使用的控制指令,然后開發(fā)針對本次試驗要使用的試驗指令并存入數(shù)據(jù)庫中的試驗指令表,同時在實現(xiàn)函數(shù)中填寫相應的參數(shù)。開發(fā)試驗流程由用戶根據(jù)具體試驗任務運行流程,從試驗指令表中選擇合適的試驗指令開發(fā)試驗流程表并存入數(shù)據(jù)庫中。用戶執(zhí)行試驗任務時,從數(shù)據(jù)庫中選擇已經(jīng)開發(fā)的試驗流程表就可以運行相應的試驗流程,試驗流程在運行時調(diào)用指令解析單元,通過指令和操作函數(shù)的映射,由操作函數(shù)將相應的控制命令通過通信代理發(fā)送給具體的參試資源,同時從參試資源獲取返回狀態(tài),通過反映射反饋給用戶具體運行的試驗流程。在試驗流程運行過程中,由日志記錄模塊實現(xiàn)試驗過程日志記錄功能并存入數(shù)據(jù)庫,以備日后查看。
進程控制組件的具體實現(xiàn)類圖如圖2所示。組件基類主要實現(xiàn)一些與體系結(jié)構(gòu)交互的接口。進程控制主窗口類繼承組件基類的接口并實現(xiàn)組件的基本功能,同時分別通過響應鼠標右鍵雙擊和左鍵單擊提供導向流程執(zhí)行控制面板和流程編輯對話框類的功能。組件菜單對話框類主要響應鼠標左鍵點擊導向功能。流程編輯對話框類主要實現(xiàn)試驗流程開發(fā)功能,它復合了試驗流程指令編輯類和試驗指令設計類,試驗流程指令編輯類實現(xiàn)了開發(fā)試驗流程時編輯試驗流程指令功能,試驗指令設計類實現(xiàn)了設計試驗指令功能,這三個類分別以對話框形式和用戶進行開發(fā)交互。流程執(zhí)行控制面板類主要實現(xiàn)與運行試驗流程相關(guān)的功能。指令解析類實現(xiàn)整個試驗流程運行過程中的指令解析功能。日志記錄/顯示類實現(xiàn)與日志相關(guān)的功能。
圖2 組件類圖
圖3 試驗指令設計及流程開發(fā)圖
組件測試是在某仿真試驗體系結(jié)構(gòu)下進行的,該體系結(jié)構(gòu)可以支持由實物、半實物和虛擬試驗資源構(gòu)成的試驗任務。首先用戶根據(jù)具體試驗任務選擇試驗資源組建基于體系結(jié)構(gòu)的試驗工程,然后利用進程控制組件開發(fā)面向本次試驗任務的試驗指令,并根據(jù)所開發(fā)的試驗指令和具體試驗運行流程設計試驗流程。
組件測試主要測試設計試驗指令、開發(fā)和執(zhí)行試驗流程等組件功能。部分測試結(jié)果如圖3和圖4所示。圖3顯示了開發(fā)試驗指令和開發(fā)試驗流程的部分功能圖,其中前面的對話框為試驗指令開發(fā)對話框,后面對話框為試驗流程開發(fā)對話框。圖4為顯示執(zhí)行所開發(fā)試驗流程情況的控制面板,其中在該面板上提供給用戶各種與試驗流程執(zhí)行相關(guān)的命令,日志記錄功能在后臺自動完成,通過保存日志按鈕實現(xiàn)日志保存,通過點擊日志管理區(qū)中的記錄日志在下面進程控制過程顯示區(qū)顯示運行日志。經(jīng)過測試,從圖3、圖4所展現(xiàn)的部分測試圖片可知組件滿足試驗需求。
圖4 試驗流程運行情況圖
本文所述進程控制組件提供給用戶靈活、友好的方式開發(fā)試驗流程、執(zhí)行試驗流程功能,用戶無需編程即可完成對整個試驗任務執(zhí)行控制,節(jié)省了試驗任務開發(fā)時間和成本。
[1]Live Virtual Constructive Architecture Roadmap(LVCAR)Final Report[EB/OL].http://www.msco.mil/files/MSCO Library/LVCAR Final Report 20090814.pdf.
[2]The Test and Training Enabling Architecture Reference Docu-ment,http://www.tena-sda.org/TENA Architecture Document(2002).pdf.
[3]王瓊,蔡小斌,杜承烈,等.分布虛擬試驗支撐環(huán)境研究[J].計算機仿真,2005,25(5):15-19.
[4]杜承烈,陳進朝,尤濤.虛擬試驗軟件平臺技術(shù)的研究與展望[J].計算機測量與控制,2011,19(3):490-492.