• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      多實(shí)例并行機(jī)動(dòng)仿真模型開(kāi)發(fā)

      2017-04-28 02:21:16趙長(zhǎng)寬杭立杰
      關(guān)鍵詞:面向?qū)ο?/a>機(jī)動(dòng)實(shí)例

      何 麗,吳 艷,趙長(zhǎng)寬,杭立杰

      (1. 北京航天發(fā)射技術(shù)研究所,北京,100076;2. 東北大學(xué),沈陽(yáng),110819)

      多實(shí)例并行機(jī)動(dòng)仿真模型開(kāi)發(fā)

      何 麗1,吳 艷1,趙長(zhǎng)寬2,杭立杰1

      (1. 北京航天發(fā)射技術(shù)研究所,北京,100076;2. 東北大學(xué),沈陽(yáng),110819)

      針對(duì)仿真系統(tǒng)中對(duì)機(jī)動(dòng)模型的多實(shí)例并行需求,提出基于C++和Matlab混合編程的方式進(jìn)行模型開(kāi)發(fā)。就Matlab Function實(shí)現(xiàn)的功能函數(shù)在多實(shí)例運(yùn)行過(guò)程中將出現(xiàn)的數(shù)據(jù)混用問(wèn)題,在分析Matlab數(shù)據(jù)管理調(diào)用方式的基礎(chǔ)上,提出基于Map的數(shù)據(jù)管理方法實(shí)現(xiàn)不同對(duì)象實(shí)例數(shù)據(jù),并完成了模型開(kāi)發(fā)。

      Matlab;機(jī)動(dòng)模型;多實(shí)例;并行仿真

      0 引 言

      隨著武器系統(tǒng)實(shí)戰(zhàn)化要求的不斷提升,開(kāi)展武器系統(tǒng)作戰(zhàn)效能評(píng)估的需求日益迫切,需要針對(duì)武器系統(tǒng)借助虛擬仿真的手段來(lái)評(píng)價(jià)其作戰(zhàn)效能[1~4]。而車輛的機(jī)動(dòng)特性作為武器系統(tǒng)射前生存能力評(píng)估的重要內(nèi)容,需要依托車輛機(jī)動(dòng)仿真模型開(kāi)展多種戰(zhàn)場(chǎng)環(huán)境下的效能仿真,作為武器系統(tǒng)作戰(zhàn)效能評(píng)估的重要支撐[5]。

      裝備在實(shí)際作戰(zhàn)過(guò)程中并非單車作戰(zhàn),而是多車分散作戰(zhàn),為了迷惑敵人還需配備一定數(shù)量的佯動(dòng)、示假車輛,因此在武器作戰(zhàn)效能評(píng)估仿真系統(tǒng)的單次仿真中需要多車同時(shí)執(zhí)行多種作戰(zhàn)任務(wù),要求機(jī)動(dòng)模型具備單次仿真的多實(shí)例運(yùn)行功能。然而由于機(jī)動(dòng)模型運(yùn)行過(guò)程需要基于大量的數(shù)值計(jì)算,對(duì)外提供姿態(tài)、位置、狀態(tài)等信息數(shù)據(jù),對(duì)于機(jī)動(dòng)過(guò)程中的核心算法采用了專用數(shù)值語(yǔ)言的Matlab進(jìn)行開(kāi)發(fā)??紤]模型的面向?qū)ο筇匦耘c擴(kuò)展性,提出了基于C++和Matlab混合編程、采用Map數(shù)據(jù)管理方法的多實(shí)例并行仿真模型開(kāi)發(fā)技術(shù)。

      1 模型概述

      機(jī)動(dòng)模型作為武器運(yùn)輸?shù)闹纹脚_(tái),承擔(dān)著武器的運(yùn)輸、打擊前的準(zhǔn)備等重要任務(wù)。根據(jù)其在整個(gè)戰(zhàn)場(chǎng)環(huán)境中的使用模式,分析獲得與機(jī)動(dòng)模塊存在交互的外部系統(tǒng),如圖1所示。

      根據(jù)車輛作戰(zhàn)使用流程,搭建了機(jī)動(dòng)過(guò)程的概念模型,并明確了機(jī)動(dòng)過(guò)程仿真模型的功能,具體包括:

      a)根據(jù)想定信息和配置文件對(duì)模型的幾何屬性、質(zhì)量屬性、行駛策略、路徑信息和運(yùn)動(dòng)參數(shù)進(jìn)行初始化;

      b)根據(jù)裝備在彎道等的通行能力,以行駛時(shí)間最小為目標(biāo),以車輛能通行為約束條件,進(jìn)行路徑規(guī)劃;

      c)根據(jù)概念模型中的行動(dòng)模型,將裝備的行動(dòng)分解為若干基本行動(dòng)進(jìn)行編碼,利用基本行動(dòng)組合成各種指令,通過(guò)指令控制機(jī)動(dòng)過(guò)程中裝備的行為;

      d)輸出裝備的運(yùn)動(dòng)信息、姿態(tài)信息和狀態(tài)信息,便于其他模型的集成調(diào)用。

      2 多實(shí)例仿真解決方案

      武器作戰(zhàn)效能評(píng)估仿真系統(tǒng)采用面向?qū)ο蟮木幊趟枷?、基?C++語(yǔ)言環(huán)境進(jìn)行開(kāi)發(fā),由對(duì)象實(shí)例維護(hù)各自屬性與功能。因此機(jī)動(dòng)仿真模型勢(shì)必也要采用面向?qū)ο蟮姆绞絹?lái)滿足其與仿真系統(tǒng)的集成使用需求。

      2.1 模型開(kāi)發(fā)架構(gòu)

      由于機(jī)動(dòng)模型在實(shí)時(shí)仿真過(guò)程中,需要進(jìn)行大量的數(shù)值運(yùn)算。而目前常用面向?qū)ο蟮木幊陶Z(yǔ)言 C++、C#、Java等對(duì)數(shù)值運(yùn)算的支撐力度有限,較為高級(jí)的數(shù)值運(yùn)算功能需要耗費(fèi)大量的時(shí)間進(jìn)行算法開(kāi)發(fā)與功能驗(yàn)證,而Matlab作為采用C語(yǔ)言編寫(xiě)、重點(diǎn)關(guān)注數(shù)值計(jì)算的數(shù)學(xué)應(yīng)用軟件,在數(shù)值運(yùn)算算法上有明顯的優(yōu)勢(shì),且Matlab提供了與C++混合編程的豐富接口[6]。因此在模型開(kāi)發(fā)之初確定了采用 Matlab、C++聯(lián)合的開(kāi)發(fā)模式,其中Matlab負(fù)責(zé)實(shí)現(xiàn)模型的功能算法以及仿真模型的運(yùn)算,C++負(fù)責(zé)實(shí)現(xiàn)模型與外部模型、上層框架的交互以及模型功能接口調(diào)度。模型開(kāi)發(fā)架構(gòu)如圖2所示。

      圖2中,接口層與中間轉(zhuǎn)換層在C++中實(shí)現(xiàn),功能執(zhí)行層在Matlab中實(shí)現(xiàn)。接口層采用了面向?qū)ο蟮木幊谭绞剑瑢C(jī)動(dòng)模型作為一個(gè)對(duì)象類,包含屬性與功能函數(shù),可供外部仿真系統(tǒng)調(diào)用并實(shí)例化為多個(gè)對(duì)象執(zhí)行不同的仿真任務(wù);中間轉(zhuǎn)換層將外部仿真系統(tǒng)中接收的模型屬性參數(shù)、路徑、天氣等信息傳遞給Matlab功能執(zhí)行模塊,供仿真解算過(guò)程中調(diào)用;功能執(zhí)行層將根據(jù)從中間轉(zhuǎn)換層中接收到的信息類別,執(zhí)行相應(yīng)的機(jī)動(dòng)與狀態(tài)轉(zhuǎn)換功能;數(shù)據(jù)層為機(jī)動(dòng)模型的固有屬性配置文件,可按車輛的實(shí)際屬性信息修改配置文件。

      2.2 風(fēng)險(xiǎn)預(yù)估

      機(jī)動(dòng)模型由仿真運(yùn)行總線進(jìn)行調(diào)度使用,在仿真系統(tǒng)初始化過(guò)程中分配機(jī)動(dòng)模型數(shù)量與相關(guān)初始屬性設(shè)定,創(chuàng)建多個(gè)實(shí)例進(jìn)行多任務(wù)仿真。對(duì)于面向?qū)ο蟮?C++在多實(shí)例仿真方面不存在調(diào)用以及數(shù)據(jù)管理問(wèn)題,Matlab自身也有面向?qū)ο蟮木幊虣C(jī)制[7],但針對(duì)C++與Matlab混合編程模式無(wú)法應(yīng)用Matlab的面向?qū)ο筇匦?,因此?zhí)行層還應(yīng)依托功能函數(shù)(Function)的方式實(shí)現(xiàn)。

      在Matlab Function中,為方便數(shù)據(jù)傳遞、避免功能函數(shù)中形式參數(shù)過(guò)多而導(dǎo)致參數(shù)不易管理,使用了大量的全局變量進(jìn)行參數(shù)傳遞。Matlab運(yùn)行機(jī)制為每啟動(dòng)一次Matlab實(shí)例均會(huì)啟動(dòng)一個(gè)進(jìn)程,且各進(jìn)程中的數(shù)據(jù)相互隔離,即全局變量在多個(gè)進(jìn)程中是相互獨(dú)立的,不會(huì)存在數(shù)據(jù)混用的情況。但在單進(jìn)程、多線程的運(yùn)行模式下,各線程共用同一個(gè)全局變量,在多個(gè)實(shí)例運(yùn)行時(shí)由于共用全局變量,使得模型在執(zhí)行相應(yīng)的機(jī)動(dòng)任務(wù)時(shí)因無(wú)法隔離數(shù)據(jù)導(dǎo)致模型運(yùn)行功能不正確。因此基于Matlab采用功能函數(shù)的方式在進(jìn)行多實(shí)例并行仿真時(shí)的運(yùn)行效果為:

      a)多進(jìn)程并行仿真(一個(gè)進(jìn)程內(nèi)運(yùn)行一個(gè)模型實(shí)例)時(shí),各模型數(shù)據(jù)正常,仿真模型正常運(yùn)行;

      b)多線程并行仿真(一個(gè)進(jìn)程中運(yùn)行多個(gè)模型實(shí)例)時(shí),將出現(xiàn)模型數(shù)據(jù)混亂,所有模型數(shù)據(jù)一致,且運(yùn)行數(shù)據(jù)異常。

      實(shí)際作戰(zhàn)效能仿真系統(tǒng)包含了多進(jìn)程、多線程的運(yùn)行模式,因此在通過(guò)Matlab Function進(jìn)行機(jī)動(dòng)功能實(shí)現(xiàn)時(shí),應(yīng)重點(diǎn)解決多線程仿真運(yùn)行過(guò)程中的數(shù)據(jù)隔離存儲(chǔ)與調(diào)用問(wèn)題。

      2.3 解決方案

      利用非面向?qū)ο蟮腇unction方式實(shí)現(xiàn)多實(shí)例機(jī)動(dòng)解算功能實(shí)現(xiàn)時(shí),借鑒并行仿真時(shí)的獨(dú)有變量概念[8],尋求一種將各仿真實(shí)例中的參數(shù)進(jìn)行隔離的方式。Matlab中數(shù)據(jù)可通過(guò)數(shù)組、結(jié)構(gòu)體、containers.Map容器等多種方式進(jìn)行管理。其中containers.Map容器可以將一個(gè)復(fù)雜的數(shù)據(jù)結(jié)構(gòu)映射為一個(gè)簡(jiǎn)單的數(shù)值或字符串,常用在組織大型數(shù)據(jù)的場(chǎng)合。Map通過(guò)key快速方便地查詢相應(yīng)的值,其中key為唯一標(biāo)識(shí),當(dāng)Map中存放了2個(gè)key相同的量,則后者會(huì)覆蓋/替換前者。因此多實(shí)例仿真時(shí),可將不同對(duì)象使用過(guò)程中產(chǎn)生的參數(shù)變量存放在容器中,進(jìn)行隔離維護(hù),需要時(shí)取出,從而避免各對(duì)象參數(shù)混亂的情況。

      綜合考慮后選擇通過(guò) containers.Map管理參數(shù)的方式進(jìn)行多模型并行仿真方案實(shí)施。其具體步驟如下:

      a)在模型初始化階段(即對(duì)象創(chuàng)建時(shí)),建立Map容器,以模型唯一標(biāo)識(shí)ID作為key值,管理該模型對(duì)應(yīng)的全局變量集合;

      b)每一個(gè)模型對(duì)象對(duì)應(yīng)一個(gè)總的全局變量集合,通過(guò)結(jié)構(gòu)體的形式存儲(chǔ)模型運(yùn)行過(guò)程中的所有參數(shù);

      c)仿真解算過(guò)程中,通過(guò)模型ID獲取其對(duì)應(yīng)的全局變量結(jié)構(gòu)體,并從中取出需要的參數(shù),參與仿真;

      d)仿真解算完成后,更新結(jié)構(gòu)體中被改變參數(shù)的信息,并將更新后的全局變量結(jié)構(gòu)體存入Map容器中。

      通過(guò)ID將各模型對(duì)象的屬性參數(shù)進(jìn)行隔離,保證了仿真運(yùn)行過(guò)程中數(shù)據(jù)的獨(dú)立性,實(shí)現(xiàn)過(guò)程簡(jiǎn)單,并且有效解決了內(nèi)存數(shù)據(jù)混用問(wèn)題。Map容器中參數(shù)存放代碼示例如圖3所示。

      3 機(jī)動(dòng)模型開(kāi)發(fā)

      3.1 功能模塊開(kāi)發(fā)

      從機(jī)動(dòng)模型與外部系統(tǒng)的交互調(diào)用需求分析,將機(jī)動(dòng)模型分為初始化、輸入、解算以及輸出4大基本功能模塊,機(jī)動(dòng)模型主要功能模塊及相應(yīng)的子功能見(jiàn)表1,具體仿真運(yùn)行時(shí)的使用流程如圖4所示。

      表1 機(jī)動(dòng)模型功能模塊及實(shí)現(xiàn)方式

      續(xù)表1

      3.2 實(shí)施效果

      車輛機(jī)動(dòng)仿真模型能夠模擬多種車輛在不同機(jī)動(dòng)任務(wù)下的技術(shù)性能參數(shù),具備隨機(jī)路徑規(guī)劃功能,提供實(shí)時(shí)平臺(tái)姿態(tài)、速度和通行情況等模型輸出。將多實(shí)例并行機(jī)動(dòng)仿真模型加載至武器作戰(zhàn)效能仿真系統(tǒng)中進(jìn)行集成測(cè)試,測(cè)試結(jié)果表明機(jī)動(dòng)模型功能性能正常,并能有效地管理實(shí)例對(duì)象的獨(dú)有數(shù)據(jù),實(shí)現(xiàn)了不同對(duì)象執(zhí)行不同機(jī)動(dòng)任務(wù)的需求。機(jī)動(dòng)模型運(yùn)行可視化效果如圖5所示,單車機(jī)動(dòng)曲線如圖6所示。

      4 結(jié)束語(yǔ)

      本文針對(duì)武器系統(tǒng)作戰(zhàn)使用過(guò)程中的多實(shí)例并行仿真需求,利用C++與Matlab混合編程的方式,采用面向?qū)ο蟮木幊趟枷霕?gòu)建了多實(shí)例并行機(jī)動(dòng)仿真模型,提供不同任務(wù)剖面下車輛運(yùn)動(dòng)姿態(tài)、位置、狀態(tài)等信息,實(shí)現(xiàn)不同行駛策略、環(huán)境條件下車輛機(jī)動(dòng)過(guò)程戰(zhàn)術(shù)技術(shù)性能分析,為分析車輛的生存能力提供必要的基礎(chǔ)性數(shù)據(jù)。

      [1] 陳景亮, 朱一凡, 等. 導(dǎo)彈攻防對(duì)抗作戰(zhàn)效能仿真分析方法論[J]. 國(guó)防科技大學(xué)學(xué)報(bào), 1999(1): 20-24.

      [2] 邢清華, 劉付顯. 攻防對(duì)抗系統(tǒng)建模與仿真[J]. 計(jì)算機(jī)仿真, 2002, 19(5) : 12-14.

      [3] 羅鵬程, 傅攀峰, 周經(jīng)倫. 武器裝備體系作戰(zhàn)能力評(píng)估框架[J]. 系統(tǒng)工程與電子技術(shù), 2005, 27(1): 1072-1075.

      [4] 張亮, 趙振南, 王利, 等. 基于體系作戰(zhàn)效能的武器裝備體系評(píng)估[J].四川兵工學(xué)報(bào), 2015, 34(3): 50-58.

      [5] 斗計(jì)華. 艦空導(dǎo)彈武器系統(tǒng)攻防對(duì)抗作戰(zhàn)效能仿真研究[J]. 彈箭與制導(dǎo)學(xué)報(bào), 2007(1): 290-293.

      [6] 劉維. 精通Matlab與C/C++混合程序設(shè)計(jì)[M]. 北京: 北京航空航天大學(xué)出版社, 2008.

      [7] 苗志宏, 馬金強(qiáng). MATLAB面向?qū)ο蟪绦蛟O(shè)計(jì)[M]. 北京: 電子工業(yè)出版社, 2014.

      [8] 劉維. 實(shí)戰(zhàn)MATLAB之并行程序設(shè)計(jì)[M]. 北京: 北京航空航天大學(xué)出版社, 2011.

      Development of Parallel Multi-instance Mobile Model

      He Li1, Wu Yan1, Zhao Chang-kuan2, Hang Li-jie1
      (1. Beijing Institute of Space Launch Techology, Beijing, 100076; 2. Northeastern University, Shenyang, 110819)

      Tomeet the objectives of parallel multi-instance model in simulation system C++ and Matlab hybrid programming to bulid mobile model is proposed. The problem of data confusion that appears in the model runs multiple instances which mobile based on Matlab Function is analysised. This paper suggests a way of Map-based approach to data management in function run.

      Matlab; Mobile model; Multi-instance; Parallel simulation

      V553.1

      A

      1004-7182(2017)02-0076-04

      10.7654/j.issn.1004-7182.20170217

      2016-09-26;

      2016-11-30

      何 麗(1984-),女,工程師,主要從事復(fù)雜系統(tǒng)仿真分析與虛擬試驗(yàn)方向的研究

      猜你喜歡
      面向?qū)ο?/a>機(jī)動(dòng)實(shí)例
      裝載機(jī)動(dòng)臂的疲勞壽命計(jì)算
      12萬(wàn)畝機(jī)動(dòng)地不再“流浪”
      機(jī)動(dòng)三輪車的昨天、今天和明天
      面向?qū)ο蟮挠?jì)算機(jī)網(wǎng)絡(luò)設(shè)計(jì)軟件系統(tǒng)的開(kāi)發(fā)
      面向?qū)ο蟮臄?shù)據(jù)交換協(xié)議研究與應(yīng)用
      面向?qū)ο骔eb開(kāi)發(fā)編程語(yǔ)言的的評(píng)估方法
      海上機(jī)動(dòng)之師
      完形填空Ⅱ
      完形填空Ⅰ
      面向?qū)ο笮畔⑻崛≈杏跋穹指顓?shù)的選擇
      河南科技(2014年10期)2014-02-27 14:09:03
      偏关县| 阜宁县| 通海县| 灵川县| 绵阳市| 焦作市| 池州市| 佛学| 兴和县| 明星| 赤峰市| 武山县| 天峨县| 泗阳县| 娄底市| 潜山县| 德格县| 乐昌市| 容城县| 大悟县| 左权县| 诸城市| 阳城县| 新沂市| 千阳县| 宜昌市| 安陆市| 大关县| 洪湖市| 德钦县| 民和| 卫辉市| 大渡口区| 苗栗市| 奇台县| 岢岚县| 临洮县| 迁安市| 北海市| 偃师市| 砀山县|