摘 要:針對空地對抗作戰(zhàn)仿真問題,采用高級體系結(jié)構(gòu)和運行支撐框架技術(shù)設(shè)計和實現(xiàn)了模擬空地對抗作戰(zhàn)仿真的聯(lián)邦成員。構(gòu)建了FOM/SOM并生成了FED文件,為以后空地對抗仿真平臺研究提供基礎(chǔ)。
關(guān)鍵詞:高級體系結(jié)構(gòu);運行支持系統(tǒng);對象模型
引言
仿真技術(shù)的發(fā)展經(jīng)過了三個階段:仿真網(wǎng)絡(luò)(SIMNET),分布交互仿真(DIS)和聚合級仿真協(xié)議(ALSP)高級體系結(jié)構(gòu)(HLA)。[1]基于HLA的分布仿真是今后仿真發(fā)展的主要方向,故文章選用高級體系結(jié)構(gòu)對空地對抗仿真的聯(lián)邦成員進行了研究。
1 高級體系結(jié)構(gòu)
HLA中將實現(xiàn)某種特定仿真目的的仿真系統(tǒng)稱為聯(lián)邦。聯(lián)邦由若干交互的仿真應(yīng)用和其它一些相關(guān)的應(yīng)用(統(tǒng)稱聯(lián)邦成員Federate)、運行支持系統(tǒng)(RTI)和聯(lián)邦對象模型(OM)構(gòu)成。[2]聯(lián)邦成員由若干對象構(gòu)成, 成員間通過RTI提供的服務(wù)來實現(xiàn)交互。
1.1 RTI簡介
RTI是一個按照HLA接口規(guī)范開發(fā)的軟件系統(tǒng),能為仿真應(yīng)用提供通用的、相對獨立的支撐服務(wù),其功能類似于分布式操作系統(tǒng)。[3]
1.2 對象模型模版
對象模型模板(OMT)是HLA應(yīng)用系統(tǒng)中聯(lián)邦執(zhí)行數(shù)據(jù)交互的基礎(chǔ)。OMT 主要由對象模型鑒別表、對象類結(jié)構(gòu)表、交互類結(jié)構(gòu)表、屬性表、參數(shù)表、枚舉數(shù)據(jù)類型表、復(fù)合數(shù)據(jù)類型表、路徑空間表、FOM/SOM 詞典九種表格組成。[4]
2 模擬仿真
實例:A方出動一架戰(zhàn)斗機空襲B方陣地,攻擊目標(biāo)為陣地司令部,B方探查到空情指示,奉命攔截該架戰(zhàn)斗機。
2.1 聯(lián)邦成員設(shè)計
在作戰(zhàn)中,設(shè)計了兩個成員來仿真該空襲過程。一個為A方空襲飛機成員,一個B方陣地。雙方公布/定購關(guān)系如下:A方飛機成員(B方陣地訂購): 對象類-飛機,交互類-飛機投擲炸彈、飛機被擊毀;B方陣地成員公布(A方飛機成員訂購):對象類-B方陣地營司令部,交互類-高炮對飛機開火。
其FOM/SOM定義的對象類(表1)和交互類(表2)如下:
表1 對象類表
表2 交互類表
2.2 RTI實現(xiàn)
將表1和表2輸入OMDT生成Fed文件,當(dāng)RTI創(chuàng)建聯(lián)邦時予以加載。
下面以A方飛機為例,詳細介紹仿真如何實現(xiàn):
(1)創(chuàng)建聯(lián)邦
調(diào)用rtiAmb.createFederationExecution(“空地對抗仿真”,“airraid.fed”);其中“空地對抗仿真”是將要創(chuàng)建的聯(lián)邦的名字,“airraid.fed”是由FOM/SOM生成的Fed文件名。
(2)加入聯(lián)邦
調(diào)用FedHandle=rtiAmb.joinFederationExecution(“A方空襲飛機”,“空地對抗仿真”,&fedAmb);其中“A方空襲飛機”為聯(lián)邦成員名,F(xiàn)edHandle為函數(shù)返回的成員句柄值。
(3)獲取Fed文件定義的對象類及其屬性、交互類及其參數(shù)的句柄值
獲取B方司令部對象類及其屬性的句柄值:
HeadquartersId=rtiAmb.getObjectClassHandle( “Headquarters”);
positionId= rtiAmb.getAttributeHandle(“position”, HeadquartersId);
獲取飛機交互類及其屬性的句柄值:
PlaneDamageId=rtiAmb.getInteractionClassHandle(“PlaneDama ge”);
PCrashId=Id=rtiAmb.getParameterHandle(“num”,PlaneDamageId);
(4)聲明公布/定購關(guān)系
公布A方飛機對象類:
AttributeHandleSet *Attributes= RTI::AttributeHandleSetFactory::create(3);
Attributes->add( PnumId ); //加入飛機編號屬性
Attributes->add( PpositionId ); //加入飛機位置屬性
Attributes->add( PvelocityId ); //加入飛機速度屬性
rtiAmb.publishObjectClass( PlaneId, *Attributes);//公布飛機對象類
Attributes->empty();
定購B方司令部對象類:
Attributes->add(HpositionId ); //加入司令部位置屬性
Attributes->add(HstateId ); //加入司令部狀態(tài)屬性
rtiAmb.subscribeObjectClass(HId, *Attributes);//訂購司令部對象類
delete Attributes;
公布飛機投彈和飛機墜毀交互類:
rtiAmb.publishInteractionClass(DropBombId );//公布飛機投彈類
rtiAmb.publishInteractionClass(PlaneDamageId );//公布飛機墜毀類
定購高炮開火交互類:
rtiAmb.subscribeInteractionClass(FireId);
(5)聲明時間推進策略endprint
飛機成員的時間推進既Regulating又為Constrained。
rtiAmb.enableTimeConstrained(); //聲明時間推進為Constrained
rtiAmb.enableTimeRegulation(Federate_time,Lookahead_time);//聲明時間推進為Regulating.其中Federate_time為當(dāng)前的聯(lián)邦仿真時間,Lookahead_time為成員的前瞻時間。
(6)注冊飛機對象類
PlaneInstanceId = rtiAmb.registerObjectInstance (PlaneId);
(7)發(fā)送飛機投擲炸彈交互
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)請求時間推進
rtiAmb.timeAdvanceRequest(requestTime);//請求時間推進
FederateAmbassador::timeAdvanceGrant;//通知成員當(dāng)前的聯(lián)邦仿真時間grantTime
然后跳轉(zhuǎn)第7步,直至仿真結(jié)束。
3 結(jié)束語
文章以模擬的空地對抗仿真為研究內(nèi)容,基于HLA/RTI設(shè)計和實現(xiàn)了仿真聯(lián)邦成員。在設(shè)計和實現(xiàn)過程中采用通用的技術(shù)框架、模型和數(shù)據(jù)標(biāo)準(zhǔn),具有較好的通用性。
參考文獻
[1]周彥,戴劍偉.HLA仿真程序設(shè)計[M].北京:電子工業(yè)出版社,2002:3-20.
[2]齊歡,代建民,吳義明. HLA仿真與UML建模[M]. 北京:科學(xué)出版社, 2004:6-40.
[3]郝江波.基于HLA的分布交互仿真應(yīng)用系統(tǒng)開發(fā)研究[J].系統(tǒng)仿真學(xué)報,2000, 12(05): 253-255.
[4]王元慧.基于HLA的艦船操縱綜合仿真平臺的設(shè)計[J].系統(tǒng)仿真學(xué)報, 2009, 21(2): 386-387.
作者簡介:劉婭,(1981.12-)女,江蘇省連云港,本科學(xué)歷,講師,研究方向:程序設(shè)計和數(shù)據(jù)庫。endprint
飛機成員的時間推進既Regulating又為Constrained。
rtiAmb.enableTimeConstrained(); //聲明時間推進為Constrained
rtiAmb.enableTimeRegulation(Federate_time,Lookahead_time);//聲明時間推進為Regulating.其中Federate_time為當(dāng)前的聯(lián)邦仿真時間,Lookahead_time為成員的前瞻時間。
(6)注冊飛機對象類
PlaneInstanceId = rtiAmb.registerObjectInstance (PlaneId);
(7)發(fā)送飛機投擲炸彈交互
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)請求時間推進
rtiAmb.timeAdvanceRequest(requestTime);//請求時間推進
FederateAmbassador::timeAdvanceGrant;//通知成員當(dāng)前的聯(lián)邦仿真時間grantTime
然后跳轉(zhuǎn)第7步,直至仿真結(jié)束。
3 結(jié)束語
文章以模擬的空地對抗仿真為研究內(nèi)容,基于HLA/RTI設(shè)計和實現(xiàn)了仿真聯(lián)邦成員。在設(shè)計和實現(xiàn)過程中采用通用的技術(shù)框架、模型和數(shù)據(jù)標(biāo)準(zhǔn),具有較好的通用性。
參考文獻
[1]周彥,戴劍偉.HLA仿真程序設(shè)計[M].北京:電子工業(yè)出版社,2002:3-20.
[2]齊歡,代建民,吳義明. HLA仿真與UML建模[M]. 北京:科學(xué)出版社, 2004:6-40.
[3]郝江波.基于HLA的分布交互仿真應(yīng)用系統(tǒng)開發(fā)研究[J].系統(tǒng)仿真學(xué)報,2000, 12(05): 253-255.
[4]王元慧.基于HLA的艦船操縱綜合仿真平臺的設(shè)計[J].系統(tǒng)仿真學(xué)報, 2009, 21(2): 386-387.
作者簡介:劉婭,(1981.12-)女,江蘇省連云港,本科學(xué)歷,講師,研究方向:程序設(shè)計和數(shù)據(jù)庫。endprint
飛機成員的時間推進既Regulating又為Constrained。
rtiAmb.enableTimeConstrained(); //聲明時間推進為Constrained
rtiAmb.enableTimeRegulation(Federate_time,Lookahead_time);//聲明時間推進為Regulating.其中Federate_time為當(dāng)前的聯(lián)邦仿真時間,Lookahead_time為成員的前瞻時間。
(6)注冊飛機對象類
PlaneInstanceId = rtiAmb.registerObjectInstance (PlaneId);
(7)發(fā)送飛機投擲炸彈交互
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)請求時間推進
rtiAmb.timeAdvanceRequest(requestTime);//請求時間推進
FederateAmbassador::timeAdvanceGrant;//通知成員當(dāng)前的聯(lián)邦仿真時間grantTime
然后跳轉(zhuǎn)第7步,直至仿真結(jié)束。
3 結(jié)束語
文章以模擬的空地對抗仿真為研究內(nèi)容,基于HLA/RTI設(shè)計和實現(xiàn)了仿真聯(lián)邦成員。在設(shè)計和實現(xiàn)過程中采用通用的技術(shù)框架、模型和數(shù)據(jù)標(biāo)準(zhǔn),具有較好的通用性。
參考文獻
[1]周彥,戴劍偉.HLA仿真程序設(shè)計[M].北京:電子工業(yè)出版社,2002:3-20.
[2]齊歡,代建民,吳義明. HLA仿真與UML建模[M]. 北京:科學(xué)出版社, 2004:6-40.
[3]郝江波.基于HLA的分布交互仿真應(yīng)用系統(tǒng)開發(fā)研究[J].系統(tǒng)仿真學(xué)報,2000, 12(05): 253-255.
[4]王元慧.基于HLA的艦船操縱綜合仿真平臺的設(shè)計[J].系統(tǒng)仿真學(xué)報, 2009, 21(2): 386-387.
作者簡介:劉婭,(1981.12-)女,江蘇省連云港,本科學(xué)歷,講師,研究方向:程序設(shè)計和數(shù)據(jù)庫。endprint