HLA的开发与应用.docx
- 文档编号:9516019
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:25
- 大小:437.52KB
HLA的开发与应用.docx
《HLA的开发与应用.docx》由会员分享,可在线阅读,更多相关《HLA的开发与应用.docx(25页珍藏版)》请在冰豆网上搜索。
HLA的开发与应用
HLA的开发与应用
黄健郝建国黄柯棣
在美国国防建模与仿真办公室DMSO(DefenseModeling&SimulationOffice)1995年10月制定的建模与仿真主计划MSMP(ModelingandSimulationMasterPlan)中,提出了未来建模/仿真的共同技术框架。
它包括三个方面:
高层体系结构HLA(HighLevelofArchitecture)、任务空间概念模型CMMS(ConceptualModeloftheMissionSpace)和数据标准DS(DataStandard)。
它们的共同目标是实现仿真间的互操作,并促进仿真资源的重用。
其中,HLA用于解决仿真系统的集成问题,为构造大规模仿真应用提供了一种应用集成方法,是实现DMSO建模/仿真的关键。
美国国防部DoD(DepartmentofDefense)已规定HLA为美国国防部所有仿真的标准技术结构,指出DoD将取消在1999财政年度前没有达到与HLA相容的仿真的进一步支持,并在2001财政年度前清除所有非HLA相容的仿真。
目前,HLA已被正式接受为IEEE标准,成为新一代分布交互式仿真体系结构的标准。
在我国,从1996年起就有不少专家学者积极追踪这方面的研究情况,开展对它的概念研究,对分布交互仿真技术从DIS(DistributedInteractiveSimulation)发展到HLA提出了自己的见解。
许多院校和科研机构也开展了相关技术的研究,而且有的还开发出了相应的软件系统,并在实际的作战仿真中取得了很好的效果(如国防科技大学开发的KD-RTI)。
一、高层体系结构HLA
HLA将实现某种特定仿真目的的仿真系统称为联邦(Federation)。
联邦由联邦对象模型、若干联邦成员(它可以是真实实体仿真系统、构造或虚拟仿真系统以及一些辅助性的仿真应用,如联邦运行管理控制器、数据收集器等)和运行时间支撑系统RTI(Run-TimeInfrastructure)构成(如图1所示)。
其中,联邦是个层次概念,它可以是更复杂系统的一个联邦成员,由此,HLA定义的联邦系统是一个开放性的分布式仿真系统,具有系统可扩展性。
成员之间的交互通过RTI提供的服务来实现。
在这种结构中,RTI从某种程度上来说是一种“软总线”,联邦成员可以在联邦运行过程中随时“插入”。
图1HLA联邦系统结构
HLA是一个通用的仿真技术框架,它定义了构成分布交互仿真各部分的功能和相互关系,主要包括三部分内容:
1.规则
HLA共定义了10条规则,描述仿真和联邦成员的职责,以确保一个联邦内仿真的正确交互。
其中前5条规则规定一个联邦必须满足的要求,而后5条规则则是一个联邦成员必须满足的条件。
2.对象模型模板OMT(ObjectModelTemplate)
OMT用来描述对象模型。
HLA的对象模型由一组描述对象的类、属性和它们之间交互关系的信息组成。
它对应两个部分:
FOM和SOM,分别描述在联邦执行过程中成员可以共享的信息和仿真成员在参与联邦运行时所能提供的能力。
3.接口规范说明IFSpec(InterfaceSpecification)
IFSpec是对HLA的运行时间支撑系统RTI的接口规范的描述。
它定义RTI的各项服务,并确立在仿真中每个联邦成员必须提供的回调功能。
HLA是一个复杂的分布式仿真系统集成标准。
在HLA设计中,没有定义类似于DIS中PDU(ProtocolDataUnit)那样特定的数据结构来专门进行数据交换,而是根据在FOM中定义的公布/订购关系进行交互,因此进一步提高了灵活性。
根据HLA的规则,联邦成员之间的数据通信必须通过RTI,RTI提供了一系列服务来处理联邦运行时成员间的互操作和管理联邦的运行。
根据IEEEP1516.1规定,RTI提供了包括六大管理服务(联邦管理、声明管理、对象管理、所有权管理、时间管理、数据分发管理)及其支持服务在内的共计130个接口服务,以API接口函数形式提供给联邦成员开发。
二、基于HLA的建模/仿真一体化环境
基于HLA的建模/仿真一体化环境分为建模、运行、事后处理与显示三个子环境:
:
1.建模子环境
建立被仿真对象的模型是进行仿真的首要条件。
基于HLA的对象模型分为三个层次:
底层是对象模型,中间层是联邦成员,上层是联邦。
在一个联邦内,对象实体之间的信息是通过联邦成员进行交互的。
HLA的对象模型包括对象的实体模型和HLA交互模型两部分。
用户可以通过一般的实体建模工具(如Matlab、Adsim等)建立实体模型,同时抽取需要同别的成员交互的对象特性。
按照OMT的规定,通过对象模型开发工具OMDT(ObjectModelDevelopmentTool)建立相应的交互模型,并形成联邦执行数据FED(FederationExecutionData)文件。
考虑到模型的可重用性,建模的过程还应包括对象模型数据库的存取工作。
建立的对象模型可通过自动生成工具ABT(AutoBuildTool)包装成符合HLA运行模式的联邦成员C++原码,供用户进一步开发,并可通过联邦成员测试工具FTT(FederateTestTool)进行数据交互关系的测试。
在这个子环境中,我们已实现了KD-OMDT、KD-ABT、KD-FTT、想定编辑器等工具,其他相关的工具软件也正在开发中(基于HLA的模型开发子环境见图2)。
2.运行子环境
基于HLA的运行子环境主要包括运行时间支撑系统RTI和联邦运行管理控制器FRMC(FederationRuntimeManagementController)。
其中,RTI是实现HLA的核心,它提供一系列用于仿真互连的服务,是HLA仿真系统进行分层管理控制、实现分布仿真可扩充性的基础,也是进行HLA其他关键技术研究的立足点;而FRMC实现联邦仿真应用的管理和实时监控功能。
相应地,我们自主开发了KD-RTI和KD-FRMC软件。
图2基于HLA的模型开发子环境
3.RTI软件结构及其设计
1)RTI软件结构模型
HLA在体系结构上采用客户/服务器(C/S)模式,联邦成员通过调用RTI服务实现成员间的交互操作,RTI与联邦成员在逻辑上构成C/S结构。
HLA可将多种仿真成员集成到一个系统上,并且支持多协议数据传输:
不同成员之间的服务信息及在FED文件中要求可靠传输的数据,采用TCP方式进行传送,以保证传输的可靠性;大量仿真数据(包括对象属性更新或交互信息),通过UDP组播通信方式交互,提高传输速率。
为了实现HLA系统的扩充性和实时性要求,我们提出了一种分层的分布集中式KD-RTI结构模型,如图3所示。
2)RTI软件逻辑结构
根据RTI的上述结构模型和HLA接口规范中确定的功能关系,我们将RTI软件设计成两部分:
RTI服务器和接口函数库,其逻辑结构如图4所示。
RTI服务器执行两个全局进程:
RTI执行进程RTIexec和联邦执行进程Fedexec,它们分别对联邦级和联邦内的事务进行管理。
RTIexec先于Fedexec运行,它负责创建和取消联邦执行,可同时对多个不同名的联邦进行管理。
Fedexec由第一个加入联邦的成员通知RTIexec启动它,负责管理联邦成员之间的交互操作。
根据我们提出的分层的分布集中式RTI结构模型,实现Fedexec逻辑功能的模块,包括在RTI服务器主机上运行的Fedexec进程和驻留在联邦成员上的LRTI。
根据调用关系,RTI的接口函数库被分为两部分:
一部分被包装成RTIamb类,定义和实现联邦成员所需的与RTI通讯接口,由联邦成员主动调用;另一部分被包装成Fedamb类,定义和实现RTI所需的与联邦成员通信的接口,由RTI回调使用。
RTI提供的这部分函数通常是抽象的,联邦成员须产生该类的一个实例,根据具体的联邦仿真应用开发,重载这些函数,完成相应功能。
4.HLA联邦运行管理控制器
FRMC以联邦成员的形式加入联邦执行,它是一种辅助联邦成员。
FRMC虽然没有在联邦执行中增加仿真模型,但可以根据管理对象模型MOM(ManagementObjectModel)通过RTI与其他成员进行通讯。
我们设计的KD-FRMC按功能分为三个部分:
联邦运行时间的监视、管理和数据收集。
联邦运行时间监视部件对联邦执行的整体情况和选定对象进行实时监视;管理部件对联邦执行进行动态的管理、控制;数据收集部件实现对联邦仿真中选定的对象进行数据记载,另外还可以选择对仿真操作过程进行日志记录,主要为仿真的事后分析服务。
为实现上述功能,我们设计了4个窗口:
启动窗口SW(StartupWindow)、联邦运行状态显示窗口FOW(FederationOverviewWindow)、联邦运行监视窗口FednMW(FederationMonitorWindow)和联邦成员运行监视窗口FedMW(FederateMonitorWindow)。
每个联邦成员拥有一个SW,在联邦成员运行的主机上执行,是成员加入联邦执行的入口。
FOW显示联邦运行的一般状态信息,包括联邦名称、仿真时间、运行时间、仿真时间比例尺、联邦运行的当前状态和状态存储记录。
FedMW可显示联邦成员列表,根据MOM定义的交互控制提供运行信息。
通过FedMW,用户可对仿真实现交互操作,如断点设置、暂停、状态保存、恢复运行等;可以对对象进行实时观测和交互修改,还可以对交互信息进行登录。
FedMW对选定联邦成员的仿真进行管理,对应着MOM中与该联邦成员有关的管理信息。
用户可以对联邦成员的仿真时间、对象信息进行观测和交互修改。
5.事后处理与显示子环境
事后处理与显示子环境包括仿真的事后处理、二维态势和三维场景的显示。
三、HLA应用系统实例
根据DMSO公布的HLA联邦开发和运行过程FEDEP(FederationDevelopmentandExecutionProcess)1.4版中确定的模型,HLA仿真系统的开发和运行过程包括6个步骤,如附表所示。
FEDEP虽然不是HLA标准的组成部分,但它对于确定在联邦开发过程中的关键任务具有重要的指导意义。
以此为指导,我们在自行开发的系列软件基础上成功地实现了一个基于HLA的仿真应用系统──野战防空群保卫野战机场武器装备对抗仿真系统,并于2000年6月在北京成功演示,是我国第一个将具有自主版权设计的RTI支撑软件应用于作战仿真的HLA仿真系统。
该系统按功能共设计了11个成员,分属红、蓝、白三方,如图5所示。
红方包括7个成员;蓝方只有一个空袭飞机成员;白方成员主要是仿真联邦管理成员,包括:
联邦运行控制服务器、态势显示成员、战场环境成员等。
其中,地理信息系统GIS作为战场环境成员,可同时为红蓝双方进行通视性检查,将它归入白方。
四、小结
HLA是新一代分布式交互仿真体系结构,它代表着当今分布式交互仿真技术领域的发展方向。
我们在这方面开展了大量的工作,对于后续开发研究工作有一定的借鉴作用,但仍需要进一步研究相关理论并开发完善相应的工具软件,以推动我国仿真技术的发展。
VR-Link的API长什么样?
回答这个问题最好的方法就是给你展示一个简单的VR-Link例子。
这个例子的主要功能是从网络中读取数据:
Listen-OnlyExample:
1//Defineacallbacktoprocessfireinteractions
2voidfireCb(DtFireInteraction*fire,void*usr)
3{
4printf("FireInteractionfrom%s\n",fire->attackerId().string());
5}
6
7intmain()
8{
9//Createaconnectiontotheexerciseorfederationexecution
10#ifDtHLA
11//PassexecutionNameandfederateName
12DtExerciseConnexConn("VR-Link","VR-Linklisten");
13#else
14//Passportnumber,exerciseId,siteIdandapplicationnumber
15DtExerciseConnexConn(3000,1,1,15);
16#endif
17
18//Registeracallbacktohandlefireinteractions
19DtFireInteraction:
:
addCallback(&exConn,fireCb,NULL);
20
21//Createanobjecttomanageremoteentities.
22DtReflectedEntityListrel(&exConn);
23
24while
(1)
25{
26//TellVR-Linkthecurrentvalueofsimulationtime
27exConn.clock()->setSimTime(exConn.clock()->elapsedRealTime());
28//Processanyincomingmessages
29exConn.drainInput();
30
31//Findthefirstentityinthereflectedentitylist
32DtReflectedEntity*first=rel.first();
33
34if(first)
35{
36//Grabitsstaterepository,wherewecaninspectitsdata
37DtEntityStateRepository*esr=first->entityStateRep();
38
39//Printtheposition
40printf("Positionoffirstentity:
%s\n",esr->location().string());
41}
42
43//Sleeptillnextiteration
44DtSleep(0.1);
45}
46}
代码一共46行,这46行中还包括了详细的注释,以及对DIS的兼容和打印程序的运行结果。
而核心代码也就10行左右。
与直接使用RTI相比,VR-Link大大减少了编码工作量,所编写的代码可读性更强,更利于日后的扩展和维护。
下面我们对这些代码作一个简单的说明:
1.加入联邦
代码的10-16行创建了一个DtExerciseConnection,它是本联邦成员与联邦的接口。
对于基于HLA的应用程序,只需要将联邦和本联邦成员的名字作为参数加入即可。
2.管理状态和交互信息
第2行定义了一个用户处理开火交互的回调函数fireCb,在第19行将这个回调函数注册到本联邦成员。
这样我们就实现了对开火交互的订购并响应。
3.跟踪实体
在22行我们创建了一个影射实体列表rel,用于跟踪记录在网络中找到的实体。
除完成订购工作外,Rel还负责跟踪实体的到达和离开,并进行航路推算,管理超时等工作。
4.从网络中读取数据
在每一个循环的开始,为VR-Link设置当前的仿真时间(第27行)。
drainInput()函数的调用(第29行)读取并处理从联邦中收到的任何的消息,它将会触发所有你事先注册好并需要运行的回调函数。
在HLA中,这也是RTI的到tick的地方。
在程序第32行,程序获得实体列表中的第一个实体,然后在程序的第37行得到指向实体状态库的指针。
在程序的第40行,进行航路推算并打印出实体的位置。
高层体系结构HLA/RTI及其实现综述
柴旭东 李伯虎
摘 要:
介绍了HLA/RTI的基本功能和它的内部结构,对RTI的实现方法和关键技术进行了全面的综述。
对当前时间管理、数据分布管理的实现方法进行了深入的研究,并进一步阐述了RTI的发展趋势及其在设计实现上还需解决的几个问题。
关键词:
高层体系结构;运行环境支撑系统;仿真
中图分类号:
TP391.9 文献标识码:
B
AnOverviewofHLA/RTIandItsImplementation
CHAIXu-dong1 LIBo-hu2
(1.BeijingUniversityofAeronauticsand
Astronautics,Beijing100083,China;
2.SecondDesignAcademyofAstronauticalIndustry
CompanyofChina,Beijing100854,China)
Abstract:
Inthispaper,thebasicfunctionsofHLA/RTIanditsinternalstructureareintroduced.TheimplementationsolutionsofRTIanditskeytechnologyareoveralldescribed.Thecurrentimplementationapproachesoftimemanagementanddatadistributionmanagementarestudied,andsomeproblemsneededtobesolvedinRTIdesignanditsdevelopmenttrendareprovided.
Keywords:
highlevelarchitecture;runtimeinfrastructure;prototype
引 言
分布交互仿真技术从产生(SIMNET计划),到DIS2.xIEEE1278协议和ALSP协议的制定,进而发展到今天的DIS++/HLA体系结构,都是企图解决M&S领域存在的问题:
绝大多数仿真器应用实现较为独立,仿真器之间的交互性和重用性差;开发、维护和使用费时及成本高;验证性、有效性和置信度较差。
HLA就是从体系结构上建立这样一个框架,它能尽量涵盖M&S领域中所涉及的各种不同类型的仿真系统,并利于它们之间的互操作和重用。
同时能适应不断发展中的新技术,来满足复杂大系统的仿真需要。
对采用HLA体系结构的仿真系统,仿真系统的运行和仿真成员之间的交互和协调都是通过运行支撑系统RTI(RunTimeInfrastructure)来实现的。
RTI的实现及其运行的性能好坏,是分布交互仿真系统实现的关键。
1 HLA/RTI的特点与功能
HLA体系结构是一个开放的、支持面向对象的体系结构。
它采用面向对象的方法学来分析系统,建立不同层次和粒度的对象模型,从而促进了仿真系统和仿真部件的重用。
HLA的关键组成部分是接口规范,它定义了在一个联邦演练中,支持联邦成员通过RTI实现成员之间相互交互、协调和协同作业的标准服务。
它的最显著的特点就是通过提供通用的、相对独立支撑服务程序,将应用层同其底层支撑环境功能分离开,即将具体的仿真功能实现、仿真运行管理和底层传输三者分离开来,隐蔽了各自的实现细节,可以使各部分相对独立的开发,最大程度地利用各自领域的最新技术来实现标准的功能和服务,适应新技术的发展。
同时,可实现应用系统的即插即用,易于新的仿真系统的集成和管理,并针对不同的用户需求和不同的应用目的,实现联邦快速、灵活的组合和重配置,保证了联邦范围内的互操作和重用。
RTI作为联邦执行的核心,其功能类似于某种特殊目的的分布式操作系统,跨计算机平台、操作系统和网络系统,为联邦成员提供运行所需的服务。
RTI提供六种服务,即联邦管理、声明管理、对象管理、所有权管理、时间管理和数据分布管理等服务。
2 RTI的体系结构
RTI原型系统的开发实现起始于1995年年底,最初的RTI实现主要用来对采用HLA体系结构在不同领域上的应用进行验证,并对早期的接口规范进行评价。
1996年8月,基本接口规范1.0被AMG接受,并被USD(A&T)(UnderSecretaryofDefenseforAcquisitionandTechnology)准许作为标准技术体系结构用于所有的DoD仿真系统中。
从基本接口规范1.0的制定和不断发展更新,相应地产生了由不同组织开发的RTI实现系列。
RTI作为采用HLA体系结构的运行支撑系统,在初期,为了验证HLA的功能,更深刻地理解和获得采用HLA体系结构的经验,发现HLA存在和需要改进的问题,RTI的原型通常基于CORBA来快速实现,因为CORBA是一个基于分布式面向对象计算模式集成应用系统的体系结构规范。
它采用客户/服务器模式,而HLA体系结构也体现了这些特点。
另外,使用CORBA作为中间件,可隐藏实际应用对象的异构性,底层系统软件的细节,及通讯协议和硬件等。
RTI在体系结构上,分集中式RTI(RTI的服务功能集中在一台机器上)和分布式RTI(RTI的服务功能分布在多台机器上)。
对集中式RTI,时间主要花费在对信息的处理上(overhead),而分布式RTI时间不但花费在对信息的处理上,还包括信息在网络上传输的时间消耗(latency)[1]。
故基于CORBA的RTI采用集中式的体系结构,更有利于减少网络带宽,降低通讯和处理的延时。
对于RTI,其信息吞吐量(throughput)和延迟(latency)是两个重要的性能指标。
在RTI的最初原型实现后,由于一般的CORBA产品的实时性不强,在信息输入输出流通量和时间延迟上有一定的限制,同时,网络协议采用TCP/IP提供可靠的传输服务,不能满足多种传输方式的需求,以提高信息输入输出流通量和减少延迟。
目前,RTI一般直接采用UDP与TCP/IP协议来实现。
HLA体系结构最显著的特点就是实现了仿真功能与运行支撑系统的分离。
在RTI体系结构的设计上也采用这一特点。
目前主要采用分布、层次化和模块化的体系结构[2],各功能模块之间尽量减少耦合关系,并采用层次调用的关系,增强各功能模块的独立发展性,减少相互之间的影响。
如在RTI的通讯层上,引入抽象底层通讯层的虚拟网络层。
从而将RTI的具体服务功能与底层的实际通讯机制(如ATM等)分离开来,避免底层通讯服务的变化对客户方的影响,以适应网络技术的不断发展。
在设计实现上,采用面向对象的设计方法进行接口定义和功能实现,以利于新功能与新算法的加入和重载,减少对其它功能组件的影响,适应新的需求和技术发展,增强系统的可扩充性(extensibility)。
同时,当前体系结构在设计实现上,更从整体性能,包括可扩展性、可量测性和灵活性等方面考虑[2]。
3 RTI实现中的关键技术
要满足当前复杂大系统的仿真,必须有一个高性能的、有效的运行支撑系统——RTI的支持,而要设计实现一个具有较高质量和灵活性,能满足不同仿真需要的RTI,其中的关键技术涉及时间管理、数据分布管理、网络通讯传输和内部运算与管理优化等方面的技术。
下面就时间管理、数据分布管理、网络通讯传输技术进行较为详细论述。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- HLA 开发 应用