亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Matlab模型的HLA仿真系統(tǒng)設計

        2020-02-14 06:03:57李占麗史曉萌高琳
        科技創(chuàng)新與應用 2020年2期

        李占麗 史曉萌 高琳

        摘 ?要:文章介紹了基于HLA的仿真系統(tǒng)的開發(fā)過程,重點說明了基于VR-Link的聯(lián)邦成員的開發(fā)過程和開發(fā)過程中需要注意的問題。針對Matlab仿真模型,設計了適配器,實現(xiàn)了Matlab仿真模型與HLA/RTI的數(shù)據(jù)交互,可以對類似的HLA應用開發(fā)起到借鑒作用。

        關鍵詞:HLA;VR-Link;Matlab適配器

        中圖分類號:TP391.9 ? ? ?文獻標志碼:A ? ? ? ? 文章編號:2095-2945(2020)02-0085-03

        Abstract: This paper introduces the development process of HLA-based simulation system, the development process of federate base on VR-Link and the problems are emphasized. For Matlab simulation model, the adapter is designed, to realized the data interaction between Matlab simulation model and HLA/RTI, It can be used for reference in similar HLA applications.

        Keywords: HLA; VR-Link; Matlab adapter

        1 概述

        高層體系結構HLA(High Level Architecture)是美國國防部提出的一個分布式仿真技術框架,它的主要目的是解決仿真應用的互操作性和仿真資源的可重用性問題。它通過運行支撐環(huán)境RTI將具體的仿真功能實現(xiàn)、仿真運行管理和底層傳輸三者分離,隱蔽它們各自的實現(xiàn)細節(jié),使各個部分可以相對獨立地開發(fā),實現(xiàn)應用系統(tǒng)的即插即用。

        VR-Link對RTI函數(shù)進行了封裝,提供了可以使聯(lián)邦成員創(chuàng)建工作更容易的高層功能,使開發(fā)人員重點專注于仿真模型的設計,大大減少他們的工作量。

        Matlab是用以開發(fā)數(shù)值模型的強大建模和分析工具,但是Matlab本身并不支持HLA/RTI,設計Matlab適配器,使Matlab仿真模型能夠參與到基于HLA的協(xié)同仿真中來,可以提高系統(tǒng)開發(fā)的效率。

        2 開發(fā)過程

        2.1 聯(lián)邦概念模型(FCM)開發(fā)

        聯(lián)邦的概念模型是對問題域的抽象,是在需求和實現(xiàn)之間架起的一座橋梁。主要任務是對系統(tǒng)的組成和行為進行宏觀的描述,包括仿真系統(tǒng)的構成和工作過程。

        2.2 聯(lián)邦對象模型(FOM)設計

        FOM的設計是整個仿真系統(tǒng)的開發(fā)過程中一個重要的部分,開發(fā)FOM的過程,是對仿真系統(tǒng)中的交互數(shù)據(jù)進行抽象和建模的過程,其一般步驟為:

        (1)分解仿真任務,確定聯(lián)邦成員及其實體類型和事件;

        (2)確定FOM中的對象類和交互類;

        (3)確定對象類屬性和交互類參數(shù)的特性;

        (4)生成仿真對象模型(SOM)表;

        (5)綜合SOM表,生成FOM表。

        2.3 生成FED(Federation Execution Data)文件

        FED文件是FOM開發(fā)的結果,用于向RTI和VR-Link提供FOM表的信息。在開發(fā)時,可以根據(jù)FOM表對FED文件進行修改,以滿足系統(tǒng)的需求。

        2.4 聯(lián)邦成員開發(fā)

        聯(lián)邦成員需要與聯(lián)邦中的其他成員共同實現(xiàn)FCM中定義的聯(lián)邦需求。根據(jù)FCM映射到本聯(lián)邦成員需要實現(xiàn)的功能,開發(fā)聯(lián)邦成員。VR-Link的開發(fā)聯(lián)邦成員的過程為:

        (1)創(chuàng)建并加入聯(lián)邦

        仿真開始時,需要通過DtExerciseConn產(chǎn)生聯(lián)邦,如果聯(lián)邦已經(jīng)產(chǎn)生,則加入聯(lián)邦。需要注意的是,構造DtExerciseConn時,必須提供聯(lián)邦執(zhí)行名和聯(lián)邦成員名,并且同一聯(lián)邦的聯(lián)邦執(zhí)行名和FED文件名必須相同。

        DtExerciseConn exConn;

        exConn = new DtExerciseConn(execName, fedName, DtRprFomMapper::create(0),"VR-Link.FED", 0 );

        如果用戶不向DtExerciseConn構造函數(shù)提供FED文件的名稱,則假設FED文件名與聯(lián)邦執(zhí)行的名稱相同,VR-Link會在運行的程序所在的目錄中尋找FED文件,要確保用戶正在DtExerciseConn中使用的FED文件在運行程序所在的目錄中。

        (2)對象類的發(fā)布與訂閱

        聯(lián)邦產(chǎn)生以后,需要發(fā)布和訂閱FOM中的對象類屬性。如果發(fā)布、訂閱的是對象類的全部屬性,需要構造對象發(fā)布器(DtEntityPublisher)和映射實體列表(DtReflected-EntityList);如果發(fā)布、訂閱的是對象類的部分屬性,可以使用DtObjClassDesc的成員函數(shù)publish( )/subscribe( )。

        (3)屬性更新

        在每一個仿真步長中,DtEntityPublisher通過調(diào)用tick()函數(shù)把更新的實體狀態(tài)發(fā)送出去。對DtExerciseConn::drainlnPut()接收到的遠程實體, DtReflectedEntityList會將其更新信息存放到與該映射實體對應的實體狀態(tài)庫中。

        (4)交互類的發(fā)布和訂閱

        HLA中使用交互來表示所發(fā)生的事件,VR-Link通過派生DtInteraction類來管理這些交互。交互類的發(fā)送是交互類實例在交互事件發(fā)生時進行發(fā)送的,發(fā)送交互的示例:

        DtExamInteraction inter; ? //創(chuàng)建交互實例

        inter. setPar1(par1); ? ? ? //設置參數(shù)1

        inter. setPar2(par2); ? ? ? //設置參數(shù)2

        inter. setPar3(par3); ? ? ? //設置參數(shù)3

        exConn. sendStamped(inter); //發(fā)送交互

        交互類的訂購需要交互接受方在仿真開始之前為交互類注冊一個回調(diào)函數(shù),對接收到的交互進行響應。

        DtExamInteraction:: addCallback(&exConn,theInteractionCb, this);

        參數(shù)中,theInteractionCb為回調(diào)函數(shù),當接受到交互后,調(diào)用此函數(shù)。因為回調(diào)函數(shù)是作為普通的VR-Link回調(diào)注冊函數(shù)指針傳入的,所以回調(diào)函數(shù)本身不能是非靜態(tài)成員函數(shù),它可以是全局函數(shù)或靜態(tài)類成員。該函數(shù)原型為:

        void

        theInteractionCb(DtExamInteraction* inter, void*usr)

        { … …}

        (5)交互處理

        在回調(diào)函數(shù)中獲取交互數(shù)據(jù)后,要對數(shù)據(jù)進行處理,可在回調(diào)函數(shù)中設置事件,利用事件機制觸發(fā)處理過程。對于復雜的處理,事件發(fā)生后可利用消息機制發(fā)送消息,通知消息處理函數(shù)進行處理。

        Handle hEvent;

        SetEvent(hEvent);

        if(WaitForSingleObject(hEvent) == WAIT_OBJECT_0)

        {

        ::PostMessage(stsComponent->m_hWnd, MessageName, 0, 0);

        }

        需要注意的是,這里要利用PostMessage函數(shù),而不能利用SendMessage函數(shù)。

        3 Matlab適配器

        由于仿真模型采用Matlab建立,而Matlab沒有提供HLA/RTI的接口,為了把這些模型集成到仿真系統(tǒng),實現(xiàn)基于HLA的協(xié)同仿真,就需要采用一定的機制將RTI與這些模型連接起來,使這些模型能夠和RTI進行數(shù)據(jù)交換和時間同步。

        3.1 設計思路

        本文采用Matlab引擎的方式開發(fā)適配器,使Matlab作為一個聯(lián)邦成員加入聯(lián)邦,通過適配器發(fā)布和訂購所需要的對象類與交互類。

        為實現(xiàn)Matlab仿真模型與RTI的數(shù)據(jù)交互,適配器將Matlab所需要的對象類和交互類映射為Matlab仿真模型中的輸入輸出變量,并根據(jù)仿真控制子系統(tǒng)的控制指令(如啟動、暫停、繼續(xù)和終止等),通過Matlab的API接口對Matlab引擎進行相應的控制,其實現(xiàn)機制如圖1所示。

        3.2 適配器的實現(xiàn)

        Matlab引擎采用客戶/服務器模式,利用ActiveX自動化和DDE技術,實現(xiàn)VC++與Matlab之間的動態(tài)數(shù)據(jù)交換。在VC++中使用Matlab引擎來編寫程序時,VC++作為客戶端,負責用戶接口并提出數(shù)據(jù)請求;Matlab作為服務器端,向客戶端提供數(shù)據(jù)服務。VC++通過調(diào)用Matlab引擎與Matlab服務器建立連接,實現(xiàn)動態(tài)通信。具體過程如圖 2所示。

        上面的過程中包含了兩個重要問題,一個是引擎接口的設計與使用,VC++為Matlab引擎調(diào)用Matlab服務提供了應用程序接口,用于完成連接的建立與撤銷、數(shù)據(jù)的傳遞與接收,主要的引擎庫函數(shù)如表1所示。

        另一個問題是數(shù)據(jù)組織,即VC++數(shù)據(jù)類型與mxArray矩陣的轉換問題,數(shù)據(jù)組織方式正確與否直接決定著VC++與Matlab服務器之間動態(tài)數(shù)據(jù)交換的有效性。

        Matlab對VC++數(shù)據(jù)的組織利用mxArray矩陣結構和它的相關函數(shù)來實現(xiàn)。對于每種VC++數(shù)據(jù)類型,都有一個函數(shù)用于創(chuàng)建mxArray矩陣結構,如表2所示。

        在VC++中對Matlab引擎的調(diào)用過程可用如下偽代碼實現(xiàn):

        IF engOpen ?//啟動引擎成功

        BEGIN

        //進行數(shù)據(jù)初始化;

        mxCreatexxx(); //進行數(shù)據(jù)類型轉換;

        engPutArray(); //向Matlab引擎發(fā)送數(shù)據(jù);

        engEvalString();//調(diào)用仿真模型,可以是M 函數(shù);

        engGetArray();//獲取仿真結果;

        mxDestoryArray();//刪除矩陣;

        engClose();// 關閉引擎;

        END

        利用Matlab適配器可以方便地將Matlab仿真模型轉化為一個HLA/RTI邦元,如圖3所示。

        4 結束語

        本文論述了利用VR-Link開發(fā)HLA應用的過程,設計了Matlab適配器,詳細說明了適配器的實現(xiàn)方法,利用適配器使Matlab仿真模型可以參與到HLA/RTI協(xié)同仿真中來,可以對類似的HLA應用起到借鑒作用。

        參考文獻:

        [1]王勃,艾祖亮.VR-Link開發(fā)[M].北京:國防工業(yè)出版社,2009.

        [2]王凈,戰(zhàn)凱,吳朝暉.基于HLA的潛艦對抗模擬訓練系統(tǒng)的設計與實現(xiàn)[J].火力與指揮控制,2012,37(8):127-132.

        [3]郝雁中,楊承志.基于HLA的電子戰(zhàn)飛機作戰(zhàn)仿真系統(tǒng)研究[J].指揮控制與仿真,2008,30(3):102-105.

        [4]曾艷麗,李華.基于HLA的仿真應用成員的設計與實現(xiàn)[J].電子對抗技術,2004,19(4):16-18,23.

        久久久久国产一级毛片高清版A| 日韩精品区一区二区三vr| 精品日本一区二区三区| 偷拍夫妻视频一区二区| 亚洲αv在线精品糸列| 免费观看交性大片| 欧美一区二区三区久久综| 国产女主播喷水视频在线观看| 少妇高潮惨叫喷水在线观看| 97视频在线播放| 国产亚洲欧美另类久久久| 99热久久只有这里是精品| 国产精品一品二区三区| 91精品啪在线观九色 | 97久久婷婷五月综合色d啪蜜芽| 欧美不卡一区二区三区| 理论片87福利理论电影| 国产suv精品一区二区69| 亚洲AV无码久久久一区二不卡| 国产一区亚洲一区二区| 亚洲天堂av黄色在线观看| 日本道免费一区二区三区日韩精品 | 国产午夜成人av在线播放| 免费观看性欧美大片无片| 美女胸又www又黄的网站| 偷亚洲偷国产欧美高清| 天堂女人av一区二区| 亚洲中文字幕在线第六区| 最好看的亚洲中文字幕| 国产精品av在线| 成人免费看吃奶视频网站| 午夜影视啪啪免费体验区入口| 亚洲av套图一区二区| 亚洲黄片av在线播放| 中文字幕在线亚洲日韩6页| a毛片全部免费播放| 天天射色综合| 在线观看视频免费播放| 四虎国产精品永久在线国在线| 亚洲免费天堂| 加勒比亚洲视频在线播放|