- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
通用成员-定稿V12.
基于JAVA的HLA通用仿真成员的研究与应用
朱国华,吴凯
(江汉大学,数学与计算机学院,湖北省武汉市 430056)
摘要:基于HLA并行仿真方案中,针对每一个联邦成员必须整体编写相应成员的专用代码,开发工作量很大。本文基于JAVA提出了HLA通用联邦成员的解决方案,在不违背联邦成员标准的程序框架的前提下,依据联邦执行生命周期的特点,将联邦成员的内部结构去专有化,加强了对模型代码的重用性,从而减少仿真成员开发的成本。
关键词:HLA; 通用成员;JAVA
ABSTRACT:
KEYWORD:
1 引言
HLA(High Level of Architecture )是一套完整的分布式仿真技术规范[1],其核心目标在于解决传统分布式仿真技术中的仿真支撑环境RTI提供了通用、独立的仿真支撑服务。在资源重用性问题上,这套体系仍不能满足实际需求,于是研究与应用基于HLA的通用成员模型框架[2]是非常有必要的,它可以将大量联邦仿真成员进行集成化[3],设计一种所有仿真成员共用的通用成员模型,降低资源冗余性浪费的程度,并提高仿真系统的模型兼容属性,以及仿真的拓展性[4]。而目前已有实现C++接口的通用联邦成员[5],本文研究的是实现JAVA接口的通用联邦成员。
2 HLA仿真联邦成员的总体结构
成员的原子模块排列组合的方法,
图 1 HLA仿真系统模块结构
根据实际仿真需求,模型设计器(Model Designer)设计并构建仿真交互模型,自动生成模型描叙文件,即FED文件,同时将FED文件和模型基本信息分别上传数据库和FTP(File Transfer Protocol)服务器。 HLA仿真模块(Simulation Module)由管控端(Control Mode)、联邦成员(Federate Member)、运行端(Run Model)和RTI服务器组成。管控端依据数据库DB(Data Base)自动分配联邦成员模型;联邦成员的运行端基于DB数据从FTP服务器下载相关组件,并引导联邦成员程序运行,从而实现HLA仿真系统的整体运作。
HLA仿真模块需要依据HLA仿真体系结构重新优化并构建通用模块。将联邦成员的数据通信模块与属性模块分离,构建抽象意义上的通用性联邦成员类,其结构如图2所示.
图 2 通用联邦成员模块层次
管控端其实质上是一个特殊的联邦成员,权限较高,通过多播通信方式控制运行端,通过RTI服务器使用交互类通信监测并控制其它的联邦成员。主要功能是实现了可视化界面操作,自动分配联邦成员模型,仿真数据图形化的动态展示。
运行端基于组播通信(Multicast),运行端与管控端建立链接;通过FTP传输协议,运行端与FTP服务器建立链接。其具体功能是接受管控端的下载指令,依据数据库信息下载对应的联邦成员组件,生成相应的BAT引导文件,启动联邦成员执行文件。
联邦成员的组成是基于HLA的并行离散仿真平台,每一个仿真联邦成员的具体实现依据三个组件。三个组件分别是:?程序执行组件,即CommF.jar执行文件,此组件承担通用调度仿真的责任。通过加载相关的算法组件和读取成员模型数据,从而生成仿真联邦成员并加入到联邦中去。在仿真过程中,实现了属性值的更新,反射属性值的接收,管控端的控制命令的接收和执行,以达到通过管控端来准确地控制仿真成员状态(开始、暂停、停止等)的目的;?联邦成员模型描述组件,即FED文件,此组件描述了该成员公布和订购的对象类属性以及交互类,以及其他的一些成员的初始化参数信息。该文件由仿真想定系统根据仿真方案设计生成的;?算法组件,即DLL(Dynamic Link Library)文件,此组件是仿真成员模型,承担了描述联邦成员实体的具体仿真算法的责任,实现了联邦成员在仿真执行中的动态行为,例如PID控制器的控制算法等等。模型库是系统所有存的模型集合,而仿真模型是仿真成员的核心。
3 基于JAVA的通用联邦成员分层设计
根据联邦成员交互数据的处理流程[6],将其组成主要划分为:成员初始化,数据接收层,数据处理层,数据分发层,退出联邦执行,如图3所示。
图 3 通用联邦成员仿真数据处理的流向结构
初始化模块(Initialize the Layer),其功能需求:为联邦成员参与仿真推进做好准备,即通用联邦成员初始化。其初始化内容:确定联邦成员ID(Member IDentity, 身份ID)、联邦成员名称(MemberName)等基本信息;确定并加载相应的算法组件,如DLL (Dynamic Link Library 动态链接库);管控端已完成联邦执行的创建(createFederationExecution),等待管控端的控制命令,联邦成员加入相应的联邦执行(joinFederati
文档评论(0)