国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于HLA/RTI仿真的聯(lián)邦成員的設(shè)計(jì)與實(shí)現(xiàn)

2014-11-03 02:58:24劉婭
科技創(chuàng)新與應(yīng)用 2014年32期

摘 要:針對(duì)空地對(duì)抗作戰(zhàn)仿真問題,采用高級(jí)體系結(jié)構(gòu)和運(yùn)行支撐框架技術(shù)設(shè)計(jì)和實(shí)現(xiàn)了模擬空地對(duì)抗作戰(zhàn)仿真的聯(lián)邦成員。構(gòu)建了FOM/SOM并生成了FED文件,為以后空地對(duì)抗仿真平臺(tái)研究提供基礎(chǔ)。

關(guān)鍵詞:高級(jí)體系結(jié)構(gòu);運(yùn)行支持系統(tǒng);對(duì)象模型

引言

仿真技術(shù)的發(fā)展經(jīng)過了三個(gè)階段:仿真網(wǎng)絡(luò)(SIMNET),分布交互仿真(DIS)和聚合級(jí)仿真協(xié)議(ALSP)高級(jí)體系結(jié)構(gòu)(HLA)。[1]基于HLA的分布仿真是今后仿真發(fā)展的主要方向,故文章選用高級(jí)體系結(jié)構(gòu)對(duì)空地對(duì)抗仿真的聯(lián)邦成員進(jìn)行了研究。

1 高級(jí)體系結(jié)構(gòu)

HLA中將實(shí)現(xiàn)某種特定仿真目的的仿真系統(tǒng)稱為聯(lián)邦。聯(lián)邦由若干交互的仿真應(yīng)用和其它一些相關(guān)的應(yīng)用(統(tǒng)稱聯(lián)邦成員Federate)、運(yùn)行支持系統(tǒng)(RTI)和聯(lián)邦對(duì)象模型(OM)構(gòu)成。[2]聯(lián)邦成員由若干對(duì)象構(gòu)成, 成員間通過RTI提供的服務(wù)來實(shí)現(xiàn)交互。

1.1 RTI簡(jiǎn)介

RTI是一個(gè)按照HLA接口規(guī)范開發(fā)的軟件系統(tǒng),能為仿真應(yīng)用提供通用的、相對(duì)獨(dú)立的支撐服務(wù),其功能類似于分布式操作系統(tǒng)。[3]

1.2 對(duì)象模型模版

對(duì)象模型模板(OMT)是HLA應(yīng)用系統(tǒng)中聯(lián)邦執(zhí)行數(shù)據(jù)交互的基礎(chǔ)。OMT 主要由對(duì)象模型鑒別表、對(duì)象類結(jié)構(gòu)表、交互類結(jié)構(gòu)表、屬性表、參數(shù)表、枚舉數(shù)據(jù)類型表、復(fù)合數(shù)據(jù)類型表、路徑空間表、FOM/SOM 詞典九種表格組成。[4]

2 模擬仿真

實(shí)例:A方出動(dòng)一架戰(zhàn)斗機(jī)空襲B方陣地,攻擊目標(biāo)為陣地司令部,B方探查到空情指示,奉命攔截該架戰(zhàn)斗機(jī)。

2.1 聯(lián)邦成員設(shè)計(jì)

在作戰(zhàn)中,設(shè)計(jì)了兩個(gè)成員來仿真該空襲過程。一個(gè)為A方空襲飛機(jī)成員,一個(gè)B方陣地。雙方公布/定購(gòu)關(guān)系如下:A方飛機(jī)成員(B方陣地訂購(gòu)): 對(duì)象類-飛機(jī),交互類-飛機(jī)投擲炸彈、飛機(jī)被擊毀;B方陣地成員公布(A方飛機(jī)成員訂購(gòu)):對(duì)象類-B方陣地營(yíng)司令部,交互類-高炮對(duì)飛機(jī)開火。

其FOM/SOM定義的對(duì)象類(表1)和交互類(表2)如下:

表1 對(duì)象類表

表2 交互類表

2.2 RTI實(shí)現(xiàn)

將表1和表2輸入OMDT生成Fed文件,當(dāng)RTI創(chuàng)建聯(lián)邦時(shí)予以加載。

下面以A方飛機(jī)為例,詳細(xì)介紹仿真如何實(shí)現(xiàn):

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

調(diào)用rtiAmb.createFederationExecution(“空地對(duì)抗仿真”,“airraid.fed”);其中“空地對(duì)抗仿真”是將要?jiǎng)?chuàng)建的聯(lián)邦的名字,“airraid.fed”是由FOM/SOM生成的Fed文件名。

(2)加入聯(lián)邦

調(diào)用FedHandle=rtiAmb.joinFederationExecution(“A方空襲飛機(jī)”,“空地對(duì)抗仿真”,&fedAmb);其中“A方空襲飛機(jī)”為聯(lián)邦成員名,F(xiàn)edHandle為函數(shù)返回的成員句柄值。

(3)獲取Fed文件定義的對(duì)象類及其屬性、交互類及其參數(shù)的句柄值

獲取B方司令部對(duì)象類及其屬性的句柄值:

HeadquartersId=rtiAmb.getObjectClassHandle( “Headquarters”);

positionId= rtiAmb.getAttributeHandle(“position”, HeadquartersId);

獲取飛機(jī)交互類及其屬性的句柄值:

PlaneDamageId=rtiAmb.getInteractionClassHandle(“PlaneDama ge”);

PCrashId=Id=rtiAmb.getParameterHandle(“num”,PlaneDamageId);

(4)聲明公布/定購(gòu)關(guān)系

公布A方飛機(jī)對(duì)象類:

AttributeHandleSet *Attributes= RTI::AttributeHandleSetFactory::create(3);

Attributes->add( PnumId ); //加入飛機(jī)編號(hào)屬性

Attributes->add( PpositionId ); //加入飛機(jī)位置屬性

Attributes->add( PvelocityId ); //加入飛機(jī)速度屬性

rtiAmb.publishObjectClass( PlaneId, *Attributes);//公布飛機(jī)對(duì)象類

Attributes->empty();

定購(gòu)B方司令部對(duì)象類:

Attributes->add(HpositionId ); //加入司令部位置屬性

Attributes->add(HstateId ); //加入司令部狀態(tài)屬性

rtiAmb.subscribeObjectClass(HId, *Attributes);//訂購(gòu)司令部對(duì)象類

delete Attributes;

公布飛機(jī)投彈和飛機(jī)墜毀交互類:

rtiAmb.publishInteractionClass(DropBombId );//公布飛機(jī)投彈類

rtiAmb.publishInteractionClass(PlaneDamageId );//公布飛機(jī)墜毀類

定購(gòu)高炮開火交互類:

rtiAmb.subscribeInteractionClass(FireId);

(5)聲明時(shí)間推進(jìn)策略endprint

飛機(jī)成員的時(shí)間推進(jìn)既Regulating又為Constrained。

rtiAmb.enableTimeConstrained(); //聲明時(shí)間推進(jìn)為Constrained

rtiAmb.enableTimeRegulation(Federate_time,Lookahead_time);//聲明時(shí)間推進(jìn)為Regulating.其中Federate_time為當(dāng)前的聯(lián)邦仿真時(shí)間,Lookahead_time為成員的前瞻時(shí)間。

(6)注冊(cè)飛機(jī)對(duì)象類

PlaneInstanceId = rtiAmb.registerObjectInstance (PlaneId);

(7)發(fā)送飛機(jī)投擲炸彈交互

ParameterHandleValuePairSet*pParams=RTI::ParameterSetFactory::create(3);

pParams->add(Dbomb_typeId,(char*)&bombType,sizeof(bombType));

pParams->add(Dbomb _noId,(char*)&bombNum , sizeof(bombNo));

pParams->add(Bpoint_fallId,(char*)&point_fall , sizeof(Vector));

rtiAmb.sendInteraction(DBombId, *pParams, time_stamp,NULL);

(8)請(qǐng)求時(shí)間推進(jìn)

rtiAmb.timeAdvanceRequest(requestTime);//請(qǐng)求時(shí)間推進(jìn)

FederateAmbassador::timeAdvanceGrant;//通知成員當(dāng)前的聯(lián)邦仿真時(shí)間grantTime

然后跳轉(zhuǎn)第7步,直至仿真結(jié)束。

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

文章以模擬的空地對(duì)抗仿真為研究?jī)?nèi)容,基于HLA/RTI設(shè)計(jì)和實(shí)現(xiàn)了仿真聯(lián)邦成員。在設(shè)計(jì)和實(shí)現(xiàn)過程中采用通用的技術(shù)框架、模型和數(shù)據(jù)標(biāo)準(zhǔn),具有較好的通用性。

參考文獻(xiàn)

[1]周彥,戴劍偉.HLA仿真程序設(shè)計(jì)[M].北京:電子工業(yè)出版社,2002:3-20.

[2]齊歡,代建民,吳義明. HLA仿真與UML建模[M]. 北京:科學(xué)出版社, 2004:6-40.

[3]郝江波.基于HLA的分布交互仿真應(yīng)用系統(tǒng)開發(fā)研究[J].系統(tǒng)仿真學(xué)報(bào),2000, 12(05): 253-255.

[4]王元慧.基于HLA的艦船操縱綜合仿真平臺(tái)的設(shè)計(jì)[J].系統(tǒng)仿真學(xué)報(bào), 2009, 21(2): 386-387.

作者簡(jiǎn)介:劉婭,(1981.12-)女,江蘇省連云港,本科學(xué)歷,講師,研究方向:程序設(shè)計(jì)和數(shù)據(jù)庫(kù)。endprint

飛機(jī)成員的時(shí)間推進(jìn)既Regulating又為Constrained。

rtiAmb.enableTimeConstrained(); //聲明時(shí)間推進(jìn)為Constrained

rtiAmb.enableTimeRegulation(Federate_time,Lookahead_time);//聲明時(shí)間推進(jìn)為Regulating.其中Federate_time為當(dāng)前的聯(lián)邦仿真時(shí)間,Lookahead_time為成員的前瞻時(shí)間。

(6)注冊(cè)飛機(jī)對(duì)象類

PlaneInstanceId = rtiAmb.registerObjectInstance (PlaneId);

(7)發(fā)送飛機(jī)投擲炸彈交互

ParameterHandleValuePairSet*pParams=RTI::ParameterSetFactory::create(3);

pParams->add(Dbomb_typeId,(char*)&bombType,sizeof(bombType));

pParams->add(Dbomb _noId,(char*)&bombNum , sizeof(bombNo));

pParams->add(Bpoint_fallId,(char*)&point_fall , sizeof(Vector));

rtiAmb.sendInteraction(DBombId, *pParams, time_stamp,NULL);

(8)請(qǐng)求時(shí)間推進(jìn)

rtiAmb.timeAdvanceRequest(requestTime);//請(qǐng)求時(shí)間推進(jìn)

FederateAmbassador::timeAdvanceGrant;//通知成員當(dāng)前的聯(lián)邦仿真時(shí)間grantTime

然后跳轉(zhuǎn)第7步,直至仿真結(jié)束。

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

文章以模擬的空地對(duì)抗仿真為研究?jī)?nèi)容,基于HLA/RTI設(shè)計(jì)和實(shí)現(xiàn)了仿真聯(lián)邦成員。在設(shè)計(jì)和實(shí)現(xiàn)過程中采用通用的技術(shù)框架、模型和數(shù)據(jù)標(biāo)準(zhǔn),具有較好的通用性。

參考文獻(xiàn)

[1]周彥,戴劍偉.HLA仿真程序設(shè)計(jì)[M].北京:電子工業(yè)出版社,2002:3-20.

[2]齊歡,代建民,吳義明. HLA仿真與UML建模[M]. 北京:科學(xué)出版社, 2004:6-40.

[3]郝江波.基于HLA的分布交互仿真應(yīng)用系統(tǒng)開發(fā)研究[J].系統(tǒng)仿真學(xué)報(bào),2000, 12(05): 253-255.

[4]王元慧.基于HLA的艦船操縱綜合仿真平臺(tái)的設(shè)計(jì)[J].系統(tǒng)仿真學(xué)報(bào), 2009, 21(2): 386-387.

作者簡(jiǎn)介:劉婭,(1981.12-)女,江蘇省連云港,本科學(xué)歷,講師,研究方向:程序設(shè)計(jì)和數(shù)據(jù)庫(kù)。endprint

飛機(jī)成員的時(shí)間推進(jìn)既Regulating又為Constrained。

rtiAmb.enableTimeConstrained(); //聲明時(shí)間推進(jìn)為Constrained

rtiAmb.enableTimeRegulation(Federate_time,Lookahead_time);//聲明時(shí)間推進(jìn)為Regulating.其中Federate_time為當(dāng)前的聯(lián)邦仿真時(shí)間,Lookahead_time為成員的前瞻時(shí)間。

(6)注冊(cè)飛機(jī)對(duì)象類

PlaneInstanceId = rtiAmb.registerObjectInstance (PlaneId);

(7)發(fā)送飛機(jī)投擲炸彈交互

ParameterHandleValuePairSet*pParams=RTI::ParameterSetFactory::create(3);

pParams->add(Dbomb_typeId,(char*)&bombType,sizeof(bombType));

pParams->add(Dbomb _noId,(char*)&bombNum , sizeof(bombNo));

pParams->add(Bpoint_fallId,(char*)&point_fall , sizeof(Vector));

rtiAmb.sendInteraction(DBombId, *pParams, time_stamp,NULL);

(8)請(qǐng)求時(shí)間推進(jìn)

rtiAmb.timeAdvanceRequest(requestTime);//請(qǐng)求時(shí)間推進(jìn)

FederateAmbassador::timeAdvanceGrant;//通知成員當(dāng)前的聯(lián)邦仿真時(shí)間grantTime

然后跳轉(zhuǎn)第7步,直至仿真結(jié)束。

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

文章以模擬的空地對(duì)抗仿真為研究?jī)?nèi)容,基于HLA/RTI設(shè)計(jì)和實(shí)現(xiàn)了仿真聯(lián)邦成員。在設(shè)計(jì)和實(shí)現(xiàn)過程中采用通用的技術(shù)框架、模型和數(shù)據(jù)標(biāo)準(zhǔn),具有較好的通用性。

參考文獻(xiàn)

[1]周彥,戴劍偉.HLA仿真程序設(shè)計(jì)[M].北京:電子工業(yè)出版社,2002:3-20.

[2]齊歡,代建民,吳義明. HLA仿真與UML建模[M]. 北京:科學(xué)出版社, 2004:6-40.

[3]郝江波.基于HLA的分布交互仿真應(yīng)用系統(tǒng)開發(fā)研究[J].系統(tǒng)仿真學(xué)報(bào),2000, 12(05): 253-255.

[4]王元慧.基于HLA的艦船操縱綜合仿真平臺(tái)的設(shè)計(jì)[J].系統(tǒng)仿真學(xué)報(bào), 2009, 21(2): 386-387.

作者簡(jiǎn)介:劉婭,(1981.12-)女,江蘇省連云港,本科學(xué)歷,講師,研究方向:程序設(shè)計(jì)和數(shù)據(jù)庫(kù)。endprint

四川省| 祥云县| 鄂尔多斯市| 仁怀市| 大荔县| 荆门市| 武川县| 延川县| 奉化市| 楚雄市| 荆州市| 华池县| 登封市| 南江县| 和静县| 西乌| 崇义县| 长沙市| 贵港市| 白玉县| 陆河县| 湖北省| 黎川县| 丰台区| 贵南县| 江西省| 怀柔区| 淅川县| 津南区| 泰和县| 元江| 高要市| 黄陵县| 赤城县| 攀枝花市| 赣州市| 巫山县| 谢通门县| 申扎县| 台江县| 丹凤县|