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