?

基于XML語言的導彈防御系統HSTPN博弈模型存儲與加載

2018-12-13 09:05陳佳銘王風立鄧君湘曹瑞珉
計算機應用與軟件 2018年12期
關鍵詞:數據結構導彈節點

陳佳銘 王風立 鄧君湘 曹瑞珉

1(東北大學中荷生物醫學與信息工程學院 遼寧 沈陽 110819)2(海信網絡科技股份有限公司 山東 青島 266071)3(沈陽特種設備檢測研究院 遼寧 沈陽 110035)4(東北大學機械工程與自動化學院 遼寧 沈陽 110819)

0 引 言

導彈防御問題是軍事領域研究的一項重要內容,其系統性能測試耗資巨大,不易反復進行,因此,計算機仿真技術大量應用于導彈防御博弈系統性能測試領域[1]?,F有的導彈防御系統建模仿真軟件側重于系統物理層建模,缺乏對系統混雜特性的刻畫,開源性差,無法進行深入修改[2-5]。Petri網是一種簡潔的、圖形化的網絡模型,它既能表示靜態的系統拓撲結構,也能用于系統動態行為的仿真。然而,傳統Petri網并不能全面描述系統中連續、隨機、時延和沖突等混雜特性?;祀s隨機時延Petri網HSTPN[6]是基于條件事件網改進的高級Petri網模型,其含有離散、連續、隨機、時延和控制5種庫所,能有效描述系統中存在的多種混雜特性, 目前已成功應用于梯級水庫防洪控制系統[7]。HSTPN能夠有效描述導彈防御系統博弈過程中的離散、連續、隨機、時延和沖突特性。因此有必要基于HSTPN模型開發一套導彈防御系統博弈仿真軟件。本文針對其仿真系統的開發,討論模型的存儲與加載方法。

1 博弈仿真軟件功能設計

導彈防御系統博弈仿真軟件的功能可劃分為如圖1所示的4類功能,包括導彈防御系統博弈過程HSTPN模型搭建功能(以下簡稱建模功能)、導彈防御系統HSTPN博弈模型推演功能(以下簡稱推演功能)、仿真模型的存儲與加載功能和仿真數據輸出功能。

圖1 軟件功能劃分

2 軟件分層架構設計

導彈防御系統博弈仿真軟件的整體架構如圖2所示。仿真軟件的架構包括人機交互層、數據結構層、推演仿真層及文件存儲層。

圖2 導彈防御系統博弈仿真軟件整體架構

2.1 人機交互層

人機交互層用于實現軟件的人機交互界面,將用戶操作信息轉化為數據,存儲在數據結構層相應的數據結構中。通過不斷監測數據結構層中數據的變化,并轉化為人機交互層中各種圖形的改變,從而完成模型狀態、推演動畫及數據展示等功能。用戶通過創建HSTPN模型的節點,設置仿真參數,基于Lua語言進行連續方程編寫等操作完成網絡模型的創建,并通過點擊按鈕進行模型推演仿真、控制仿真進程、模型存儲、模型加載、數據存儲等操作[9]。

2.2 數據結構層

數據結構層包括導彈防御系統博弈仿真軟件建模、仿真、數據輸出等過程中用到的數據結構。在HSTPN博弈模型推演過程中不斷接收博弈模型的數據變化信息、仿真輸出數據。數據結構層接收人機交互層的操作信息,并將其轉換成數據存儲在對應的數據結構中。

2.3 推演仿真層

推演仿真層用于讀取數據結構層存儲的博弈模型的數據信息?;贖STPN博弈模型推演引擎完成模型推演仿真,并將推演過程中的數據實時傳遞回數據結構層。利用推演動畫展示程序實時地驅使相應的數據傳遞給人機交互層,引起人機交互層各圖形的變化,從而實現推演動畫展示的功能。利用仿真數據輸出程序驅動數據結構層中接收的仿真數據賦值給相應的數據輸出節點。

2.4 文件存儲層

文件存儲層用于實現模型文件的存儲與加載、仿真數據的存儲功能。通過讀取數據結構層存儲的模型數據或仿真數據,將其寫入文件并存儲在電腦磁盤中。當用戶通過點擊人機交互界面上的“打開”按鈕,文件存儲層讀取存儲電腦磁盤文件中的信息,并將其轉換成相應的數據,重新存儲于數據結構層。

3 模型存儲與加載功能設計

導彈防御系統博弈仿真軟件要求模型存儲與加載功能能夠完成以下兩個具體操作:1) 將用戶搭建好的HSTPN博弈模型以文件的形式存儲于電腦磁盤;2) 能夠讀取磁盤中存儲的模型文件,并將模型信息重新加載到內存中。為實現上述功能,本文基于XML設計了一種模型存儲文件,并實現該文件的讀寫操作,進而實現模型的存儲與加載功能。

3.1 XML與TinyXML

3.1.1 XML

用戶可以創建要保存的內容,然后使用特定標記來標記它,從而使每個單詞、短語或塊成為可識別、可分類的信息。XML文件由內容和標記組成。XML標記分開始標記和結束標記,一般成對使用。XML可簡便、有效地實現節點信息、數據的保存。

3.1.2 TinyXML解析器

TinyXML是一款基于文檔對象模型的XML解析器,簡單易用且小巧玲瓏,非常適合存儲簡單數據、配置文件等數據量不是很大的操作[11]。TinyXML是基于C++編寫的,它為用戶提供了大量的C++接口,支持對XML的讀、寫、插入和刪除等操作。本文軟件的模型文件存儲與加載的功能基于TinyXML解析器設計。

3.2 存儲文件結構

導彈防御系統HSTPN博弈模型包含3種基本元素:狀態節點、事件節點和有向弧?;赬ML設計的存儲文件應能夠詳細且簡便地保存HSTPN博弈模型的全部信息。本文設計的模型存儲文件以hst作為后綴名,因此,將軟件的模型存儲文件稱為hst文件。導彈防御系統HSTPN博弈模型存儲文件結構如圖3所示。

圖3 HSTPN博弈模型存儲文件結構

1) 根節點:用于存儲仿真文件本身的基本信息,如模型存儲位置等。

2) 一級子節點:共三個,分別表示要存儲的HSTPN博弈模型狀態節點集合、事件節點集合和有向弧集合。

3) 二級子節點:用于存儲具體的狀態節點、事件節點和有向弧的名稱。

4) 二級子節點的屬性值:用于存儲具體的數據信息,如概率閾值、時間閾值等。

3.3 模型存儲與加載

3.3.1 模型存儲流程

模型存儲過程本質是按照hst文件的結構依次將緩存于內存中的模型信息寫入至hst文件的過程。模型存儲的實現流程如圖4所示。

圖4 模型存儲實現流程

當用戶點擊人機交互界面的“保存”按鈕后,彈出一個保存對話框;用戶選擇存儲路徑、輸入文件名,并點擊對話框中“保存”按鈕,此時視圖類獲取到存儲路徑和文件名,并傳遞給文檔類;文檔類調用SaveModel方法將數據寫入hst文件。

3.3.2 模型加載流程

模型的加載過程本質是將存儲于hst文件中的模型信息重新讀取到文檔類相應數據結構中的過程。模型加載的實現流程如圖5所示。

當用戶點擊人機交互界面的“打開”按鈕后,彈出一個打開對話框;用戶選擇待打開的hst文件,點擊對話框中“打開”按鈕后,視圖類獲取文件路徑及文件名,并傳遞給文檔類;文檔類調用LoadModel方法讀取hst文件并將讀取到的數據賦值到相應的數據結構;文檔類通過視圖類指針調用Draw方法,在視圖中繪制出HSTPN博弈模型,進而呈現給用戶。

3.4 案例模型存儲與加載

當用戶完成模型搭建后,點擊界面工具欄中“保存 ”按鈕,彈出如圖6所示對話框。用戶選擇好保存路徑并輸入文件名后,點擊“保存”按鈕,即可完成模型的存儲。

圖6 模型文件保存對話框

當用戶需要重新加載一個已保存的模型時,用戶通過點擊界面工具欄上的“打開”按鈕,彈出如圖7所示的打開對話框。用戶選擇要加載的模型文件后,點擊“打開”按鈕,即可將模型重新加載到軟件中。

圖7 模型打開對話框

4 結 語

本文首先對導彈防御系統博弈仿真軟件的功能需求進行分析,并結合MFC“文檔-視圖類”結構設計了軟件的分層架構及程序實現框架。綜合上述分析可知,本軟件包含的功能主要分為4類:導彈防御系統博弈過程HSTPN模型搭建功能;導彈防御系統HSTPN博弈模型推演功能;仿真模型的存儲與加載功能;仿真數據輸出功能。在給出基于XML的模型存儲文件結構的基礎上,設計了模型存儲與加載的流程。最后,設計了仿真數據輸出功能的流程,并給出了軟件基于TinyXML解析器實現模型存儲與加載功能的實例。

猜你喜歡
數據結構導彈節點
數據結構線上線下混合教學模式探討
瞄準未來戰爭的小型導彈
導彈燃料知多少
重典型應用,明結構關系
概念格的一種并行構造算法
結合概率路由的機會網絡自私節點檢測算法
采用貪婪啟發式的異構WSNs 部分覆蓋算法*
為什么會有“數據結構”?
Crosstalk between gut microbiota and antidiabetic drug action
正在發射的岸艦導彈
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合