資源描述:
《基于hla-rti仿真的聯(lián)邦成員的設(shè)計(jì)與實(shí)現(xiàn)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫(kù)。
1、基于HLA/RTI仿真的聯(lián)邦成員的設(shè)計(jì)與實(shí)現(xiàn)摘要:針對(duì)空地對(duì)抗作戰(zhàn)仿真問(wè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)過(guò)了三個(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)
2、邦。聯(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)成,成員間通過(guò)RTI提供的服務(wù)來(lái)實(shí)現(xiàn)交互。1.1RTI簡(jiǎn)介7RTI是一個(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]
3、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è)成員來(lái)仿真該空襲過(guò)程。一個(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.2RTI實(shí)現(xiàn)7將表1和表2輸入OMDT生成Fed文件,當(dāng)RTI創(chuàng)建聯(lián)邦時(shí)予以加載。下面以A方飛
4、機(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方司令部
5、對(duì)象類及其屬性的句柄值:HeadquartersId=rtiAmb.getObjectClassHandle(“Headquarters”);positionId=rtiAmb.getAttributeHandle(“position”,HeadquartersId);獲取飛機(jī)交互類及其屬性的句柄值:7PlaneDamageId=rtiAmb.getInteractionClassHandle(“PlaneDamage”);PCrashId=Id=rtiAmb.getParameterHandle(“num”,PlaneDamageId);(4)聲明公布/定購(gòu)關(guān)系公布A方
6、飛機(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->
7、add(HpositionId);//加入司令部位置屬性Attributes->add(HstateId);//加入司令部狀態(tài)屬性rtiAmb.subscribeObjectClass(HId,*Attributes);//訂購(gòu)司令部對(duì)象類7deleteAttributes;公布飛機(jī)投彈和飛機(jī)墜毀交互類:rtiAmb.publishInteractionClass(DropBombId);//公布飛機(jī)投彈類rtiAmb.publishInteractionClass(PlaneDamageId);//公布飛機(jī)墜毀類定購(gòu)高炮開火