CN101504688A - 一种基于hla的仿真软件交互方法 - Google Patents

一种基于hla的仿真软件交互方法 Download PDF

Info

Publication number
CN101504688A
CN101504688A CNA2009100808582A CN200910080858A CN101504688A CN 101504688 A CN101504688 A CN 101504688A CN A2009100808582 A CNA2009100808582 A CN A2009100808582A CN 200910080858 A CN200910080858 A CN 200910080858A CN 101504688 A CN101504688 A CN 101504688A
Authority
CN
China
Prior art keywords
simulation
alliance
software
emulation
mutual
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CNA2009100808582A
Other languages
English (en)
Other versions
CN101504688B (zh
Inventor
陈宇峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Institute of Technology BIT
Original Assignee
Beijing Institute of Technology BIT
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Institute of Technology BIT filed Critical Beijing Institute of Technology BIT
Priority to CN2009100808582A priority Critical patent/CN101504688B/zh
Publication of CN101504688A publication Critical patent/CN101504688A/zh
Application granted granted Critical
Publication of CN101504688B publication Critical patent/CN101504688B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明提出一种基于HLA的仿真软件交互方法,为解决现有的仿真软件通用性差、不能灵活应用的问题。属于计算机仿真及软件工程技术领域。本方案建立了通用的一体化仿真模块,将具有不同仿真功能的专业仿真软件进行整合配置;通过对专业仿真软件输入输出接口的分析和调用,实现了各专业仿真软件擅长仿真功能,并根据仿真软件的交互要求,进行了仿真流程的设计与实现,最终建立一个具有一体化优势的可供二次开发的仿真平台。本方法能够满足仿真应用的专业化要求,最终实现通用化、模块化的总体目标,在计算机仿真及软件工程领域,该方法能发挥很大的作用,并能获得很好的经济效益。

Description

一种基于HLA的仿真软件交互方法
技术领域
本发明涉及一种仿真软件交互方法,属于计算机仿真及软件工程技术领域。
技术背景
建模与仿真作为一种新的试验手段,其本质上是在计算机环境下,利用数值模拟手段来完成以前只有通过真实试验才能完成的工作。计算机仿真技术作为缩短研发和训练周期、提高研发和训练质量、节省研发和训练经费的有效手段,在国民经济和国防建设等领域有着十分广泛的应用。
80年代初期,在军事应用与Intemet技术发展的推动下,出现了分布仿真系统,它受当时网络技术的限制,在可扩展性、性能及其应用方面存在着许多局限性。为了满足对逼真度更高的分布仿真的迫切需求,80年代中期,美国国防部提出了先进分布仿真(ADS)技术的概念,其国防高级研究计划局(DARPA)和陆军率先共同制定了SIMNET计划。自此,开辟了ADS技术发展的新纪元,并经历了DIS、ALSP和HLA等几个典型发展阶段。目前,高层体系结构(HLA)已经成为分布仿真的主要平台。
高层体系结构(HLA)是一个使得仿真再用和相互交互更为容易的通用目的结构体系。他使得不同开发者,也许是运行在不同操作系统下的仿真可以通过网络交互,其中个别仿真的能力和对象可以通过参与者创建的特殊HLA文件通知其他参与者,并向网络发布。通过HLA函数库,可以实现特殊仿真与其他仿真的运行时交互控制。
随着计算机软件技术日益成熟,商业仿真软件向着越来越专业的方向发展,提供的计算服务功能越来越丰富。然而,从应用的角度来看,随着应用需求的不断增加,目前很难找到合适的仿真软件能够满足应用的全部需求,绝大多数仿真软件都只是针对某一个专业领域设计开发。因此,如何将现有的仿真软件进行整合配置,使它们各自提供的仿真服务能够进行综合利用,并满足仿真应用的专业化要求,最终实现通用化、模块化的总体目标,是目前在仿真软件设计开发中亟需解决的问题。
发明内容
本发明的目的是为了解决现有的仿真软件通用性差、不能灵活应用的问题,为实现系统级的仿真,提出一种基于HLA的仿真软件交互方法。
本发明通过将具有不同仿真功能的专业仿真软件进行整合配置,对各个专业软件输入输出接口进行分析和调用,并对仿真流程进行设计与控制,最终实现一个具有一体化仿真功能的、可供二次开发的仿真系统。
本发明的目的是通过下述技术方案实现的。
本发明提出的一种基于HLA的仿真软件交互方法,具体内容包括:
(1)专业仿真通用模块的标准化设计:首先设计一个具有通用性的HLA仿真模块,提供具有可变参数的仿真程序和参数的设置,由此实现对不同类别仿真软件的调用。
(2)仿真交互设计:通过定义统一的交互数据结构,包括发送盟员、接收盟员、以及可变的参数数量等信息,实现不同数据信息间的交互。
(3)仿真流程的设计:通过在专业仿真通用模块中对仿真流程进行设计,实现如基本的循环、条件分支、同步等基本仿真控制,从而达到按照设计要求来实现交互仿真的目的。
本发明的核心在于专业仿真通用模块的标准化设计,以及解决仿真流程的控制问题上。由此能够实现基于通用模块的,实现多专业仿真软件交互仿真的二次开发,即,在不改变程序框架的条件下,实现对包括不同仿真模块,具有不同仿真流程的交互式仿真。具体实现方法如下:
步骤一、进行专业仿真通用模块的标准化设计
基于HLA分布式仿真,是通过多个盟员节点进行交互实现的。其中,每一个盟员节点作为仿真的一部分,执行特定的功能。提供专业仿真计算的各节点的基本功能是相同的,即,通过HLA接收仿真输入参数,待计算完成后,将输出的参数发送到HLA平台上。
各节点的区别之处在于:仿真软件的类型不同,其调用方法也不同。目前,大部分专业仿真软件均提供基于MATLAB或C语言的调用接口,因此采用提取其共性的调用方法:首先将专业软件按照接口形式分成不同的类型,如MATLAB接口或C语言接口,再根据这些类型要求,设计出统一的调用命令。从而实现标准模块的设计。
专业仿真通用模块及其组成的HLA平台结构如图1所示,专业仿真通用模块是这样的一种盟员框架,它将各种不同类型的仿真软件封装为联盟中的一个盟员,并为该仿真软件运行于RTI上提供支持。
步骤二、进行仿真交互设计
各种仿真软件作为盟员运行在RTI上,在交互仿真时的数据通信依靠联盟的交互功能实现。与专业仿真通用模块的设计相对应,交互的设计也要具有通用性,由此来适应不同仿真软件的要求。
以FED文件的形式,定义用于通用交互的参数数据结构。在这样一个通用交互的结构中,除了用于传递给其他盟员的有效参数以外,有一部分参数被赋予特殊定义,这部分参数用于记录该交互本身的属性信息。这些被特殊定义的参数,包括该交互所携带有效参数的个数、交互发送方的盟员编号、交互接收方的编号以及所传递参数的维度信息等。
步骤三、当步骤一和步骤二完成之后,进行仿真流程设计。
各盟员之间依靠上述通用交互,理论上可以实现联盟中任意两个仿真软件之间的通信。但在具体仿真过程中,并非所有的盟员在任何时刻都接收所有的交互信息,各盟员产生的交互发送目标会随着仿真所处阶段的不同而不同。这就导致仿真交互的流程非常复杂,需要对每一个盟员接收和应答进行设置。
为了控制仿真流程,使整个仿真过程按照用户事先设定的仿真要求顺利完成,首先,根据实际可能出现的信息流程进行分类,包括:顺序,循环,分支常用节点。然后,在仿真开始前,对仿真中各盟员进行合理配置。这些配置信息包括信息来源以及接收所有通用交互,根据交互中携带的数据来源盟员编号,选择相应的处理方式,或者直接放弃。各盟员配置完成后,每一个盟员按照设定参数封装一种仿真软件,在接到需要的交互后,实现本地的单步或规定时间的仿真,然后将仿真结果按照规定的格式,生成交互信息发送给HLA平台。
有益效果
本发明方法,通过将具有不同仿真功能的专业仿真软件结合在一起,对各个专业软件输入输出接口进行分析和调用,并对仿真流程进行设计与控制,最终实现一个具有一体化仿真功能的、可供二次开发的仿真系统。本方法能够满足仿真应用的专业化要求,最终实现通用化、模块化的总体目标,在计算机仿真及软件工程领域,该方法能发挥很大的作用,并获得很好的经济效益。
附图说明:
图1为平台结构图;
图2为仿真流程图;
图3为仿真模块和运行流程设定界面示意图;
图4为GT与Matlab交互仿真试验结果示意图;
图5为统一交互数据格式示意图;
图6为交互数据样例。
具体实施方式:
下面结合附图及实施例对本发明方法作进一步详细说明。
(1)专业仿真通用模块设计
基于HLA分布式仿真,是通过多个盟员节点进行交互现的,其中,每一个盟员节点作为仿真的一部分,执行特定的功能。提供专业仿真计算的各节点其基本功能是相同的,即,通过HLA接收仿真输入参数,待计算完成后,将输出的参数发送到HLA平台上。各节点的区别之处在于:仿真软件的类型不同,其调用方法也不同。目前,大部分专业仿真软件均提供基于MATLAB或C语言的调用接口,因此采用提取其共性的调用方法,首先将专业软件分成不同的类型,再根据这些类型要求,设计出统一的调用命令。
现以GT仿真软件包为例进行分析。实现仿真模块基于MATLAB接口的调用由两部分组成:
一部分是GT到MATLAB的接口。GT-SUITE是一个集成化的CAE软件包,提供一个在MATALB的simulink仿真环境下的模块。为了实现GT软件仿真的调用,首先建立Simulink模型,然后将GT仿真模块加入到仿真模型中,即可实现GT和Matlab的协同仿真。
另一部分是MATLAB与HLA的接口实现。MATLAB提供多种交互方式,与其它方式相比,MATLAB计算引擎所提供的MATLAB功能支持是最全面的,因此采用MATLAB计算引擎实现MATLAB与VC++的交互。MATLAB提供了一套API接口,用以控制MATLAB引擎的运行。
一次简单的对MATLAB引擎的调用过程如下伪代码所示:
IF engOpen启动引擎成功THEN
BEGIN
数据初始化;
engPutArray将HLA平台数据放入MATLAB工作空间(workspace);
engEvalString调用仿真模型(M函数);
engGetArray获取仿真结果,转换到HLA平台;
engClose关闭引擎;
END
(2)通用交互设计
与专业仿真通用模块的设计相对应,交互的设计也应当具有通用性,来适应不同仿真软件的要求。仿真回放系统利用HLA/RTI提供的交互机制来收集和发送各种与仿真有关的数据。为实现最大限度的通用性,针对在各个盟员之间传递的交互制定了统一的数据格式,如图5所示,其中P0至P9共十个参数作为交互内部保留参数,用于描述交互本身的属性。P-VAR为一组长度不固定的可变参数,其内容为交互实际携带的有效参数,具体定义如下:
P0表示可变参数P-VAR部分的长度;
P1表示发送此交互的盟员编号;
P2表示接受此交互的盟员编号;
P3-P7为描述P-VAR部分属性的参数;
P8-P9为描述P-VAR结构的参数。
例如,联盟中的1号盟员向2号盟员发送一个交互,向其更新自己两组三维坐标,则在仿真系统内传递的交互如图6所示。
如图3所示,仿真1和仿真2之间存在数据循环,相互之间经过若干次数据通信,共同完成一个仿真任务后,将结果数据发送到仿真3,再由仿真3和仿真4类似去完成下一个阶段的仿真任务,最后将结果数据发送到仿真5。
(3)仿真流程设计
在一次仿真开始前,各盟员都需要对本地盟员进行配置。这些配置信息包含声明本地仿真软件的仿真功能,以及对可能的交互做出应答的仿真流程控制。根据实际可能出现的信息流程进行分类,包括:顺序,循环,分支等常用节点。
其配置界面如图3所示,过程如下:
选择交互的来源:分别对顺序、循环、分支这三种交互信息进行处理,在每一个处理过程中,通过调用本盟员封装的仿真软件进行仿真。
设定仿真条件:该模块通过时间对仿真过程进行控制。在指定的仿真时间内,仿真结果将被以交互的形式发送给N值所代表的盟员;超过了指定的仿真时间,则认为仿真循环结束,仿真结果被送往编号为Y的盟员,从而实现仿真的分支及循环结构。如果时间值为零则表示仿真为顺序结构,直接执行。
设定交互目的:根据仿真条件判断仿真是否结束,仿真未结束N处应设置循环仿真相关的盟员编号,以实现内部循环;仿真循环结束Y处应设置循环仿真结果处理的盟员。
当各盟员完成了本地盟员的配置以为仿真软件的初始化之后,整个仿真系统就可以开始一次仿真。图4描述了一次仿真以及仿真数据在盟员1和盟员2之间完成一次循环的过程:
首先,由盟员1完成本地程序的初始化,并开始专业软件1的仿真过程。当仿真结束,盟员1的通用模块负责将结果数据收集起来,经过数据格式的转化以及对各参数位的赋值,将所有信息封装为一个交互,发送到RTI。当盟员2收到这个交互的时,它的通用模块负责对该交互进行处理,提取出内部的信息,将仿真数据还原,传递给仿真软件2,由此开始盟员2的本地仿真过程。盟员2的仿真过程结束之后,如果盟员2是一个循环分支节点,那么就需要做一个条件判断,然后依照判断结果将仿真结果封装为交互发出。本图中假定盟员2的仿真结果是发送回盟员1。
这样就完成了一次仿真交互的循环过程,由这样的过程经过组合形成如图2一般的指定仿真流程。

Claims (1)

1、一种基于HLA的仿真软件交互方法,其特征在于包括以下步骤:
步骤一、进行专业仿真通用模块的标准化设计
首先将专业软件按照接口形式分成不同的类型,再根据这些类型要求,设计出统一的调用命令,实现标准模块的设计;
步骤二、进行仿真交互设计
以FED文件的形式,定义用于通用交互的参数数据结构;在这样一个通用交互的结构中,除了用于传递给其他盟员的有效参数以外,有一部分参数被赋予特殊定义,这部分参数用于记录该交互本身的属性信息;这些被特殊定义的参数,包括该交互所携带有效参数的个数、交互发送方的盟员编号、交互接收方的编号以及所传递参数的维度信息;
步骤三、当步骤一和步骤二完成之后,进行仿真流程设计
首先,根据实际可能出现的信息流程进行分类,包括:顺序,循环,分支常用节点;然后,在仿真开始前,对仿真中各盟员进行合理配置,这些配置信息包括信息来源以及接收所有通用交互,根据交互中携带的数据来源盟员编号,选择相应的处理方式,或者直接放弃;各盟员配置完成后,每一个盟员按照设定参数封装一种仿真软件,在接到需要的交互后,实现本地的单步或规定时间的仿真,然后将仿真结果按照规定的格式,生成交互信息发送给HLA平台。
CN2009100808582A 2009-03-24 2009-03-24 一种基于hla的仿真软件交互方法 Expired - Fee Related CN101504688B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009100808582A CN101504688B (zh) 2009-03-24 2009-03-24 一种基于hla的仿真软件交互方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009100808582A CN101504688B (zh) 2009-03-24 2009-03-24 一种基于hla的仿真软件交互方法

Publications (2)

Publication Number Publication Date
CN101504688A true CN101504688A (zh) 2009-08-12
CN101504688B CN101504688B (zh) 2010-09-22

Family

ID=40976933

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100808582A Expired - Fee Related CN101504688B (zh) 2009-03-24 2009-03-24 一种基于hla的仿真软件交互方法

Country Status (1)

Country Link
CN (1) CN101504688B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102682214A (zh) * 2012-05-14 2012-09-19 于永利 基于保守机制的小步长时间推进算法
CN102750183A (zh) * 2012-07-03 2012-10-24 山东大学 电力系统数值仿真开放式应用程序接口
CN103399731A (zh) * 2013-05-07 2013-11-20 中国兵器科学研究院 基于hla分布式交互系统的fed文件的应用方法
CN103617310A (zh) * 2013-11-05 2014-03-05 南阳理工学院 一种并行交换系统仿真平台
CN103699737A (zh) * 2013-12-20 2014-04-02 北京瑞风协同科技股份有限公司 一种多专业仿真软件数据交换方法
CN104698861A (zh) * 2015-02-10 2015-06-10 上海创景计算机系统有限公司 仿真软件交互控制系统
CN104915242A (zh) * 2015-06-11 2015-09-16 北京航天发射技术研究所 多学科协同仿真架构方法
CN108549760A (zh) * 2018-03-30 2018-09-18 佛山市诺威科技有限公司 一种定制化多学科集成仿真系统及方法
CN109379233A (zh) * 2018-11-30 2019-02-22 北京仿真中心 一种云仿真平台模型安全保障系统、方法、服务器及终端
WO2022261927A1 (zh) * 2021-06-18 2022-12-22 华为技术有限公司 协同仿真的方法及装置

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102682214B (zh) * 2012-05-14 2015-01-21 于永利 基于保守机制的小步长时间推进方法
CN102682214A (zh) * 2012-05-14 2012-09-19 于永利 基于保守机制的小步长时间推进算法
CN102750183A (zh) * 2012-07-03 2012-10-24 山东大学 电力系统数值仿真开放式应用程序接口
CN102750183B (zh) * 2012-07-03 2015-02-25 山东大学 电力系统数值仿真开放式应用程序接口
CN103399731B (zh) * 2013-05-07 2016-08-31 中国兵器科学研究院 基于hla分布式交互系统的fed文件的应用方法
CN103399731A (zh) * 2013-05-07 2013-11-20 中国兵器科学研究院 基于hla分布式交互系统的fed文件的应用方法
CN103617310A (zh) * 2013-11-05 2014-03-05 南阳理工学院 一种并行交换系统仿真平台
CN103699737A (zh) * 2013-12-20 2014-04-02 北京瑞风协同科技股份有限公司 一种多专业仿真软件数据交换方法
CN104698861A (zh) * 2015-02-10 2015-06-10 上海创景计算机系统有限公司 仿真软件交互控制系统
CN104698861B (zh) * 2015-02-10 2017-10-24 上海创景计算机系统有限公司 仿真软件交互控制系统
CN104915242A (zh) * 2015-06-11 2015-09-16 北京航天发射技术研究所 多学科协同仿真架构方法
CN104915242B (zh) * 2015-06-11 2018-07-24 北京航天发射技术研究所 多学科协同仿真架构方法
CN108549760A (zh) * 2018-03-30 2018-09-18 佛山市诺威科技有限公司 一种定制化多学科集成仿真系统及方法
CN109379233A (zh) * 2018-11-30 2019-02-22 北京仿真中心 一种云仿真平台模型安全保障系统、方法、服务器及终端
WO2022261927A1 (zh) * 2021-06-18 2022-12-22 华为技术有限公司 协同仿真的方法及装置

Also Published As

Publication number Publication date
CN101504688B (zh) 2010-09-22

Similar Documents

Publication Publication Date Title
CN101504688B (zh) 一种基于hla的仿真软件交互方法
CN110278249B (zh) 一种分布式群体智能系统
CN110266771B (zh) 分布式智能节点及分布式群体智能统部署方法
CN103440376B (zh) 基于组件的分布集中一体化仿真系统运行支撑平台
CN102880517B (zh) 一种基于超级计算机的hla仿真程序的对象调度方法
CN102622262B (zh) 基于modelica建模语言的分布式实时交互仿真系统
CN111507020A (zh) 面向多电飞机机电系统分布式仿真结果的图形化显示方法
Neema et al. Simulation integration platforms for cyber-physical systems
CN108932588A (zh) 一种前后端分离的水电站群优化调度系统及方法
CN106648658A (zh) 面向实况/虚拟/构造混合系统的仿真方法
CN105608247A (zh) 面向ima资源安全性分析的aadl到ecpn模型转换方法
Fard et al. Coupling weap and leap models using interaction modeling
CN105843991A (zh) 模型级hla仿真成员组合系统及方法
CN113609633A (zh) 一种基于模型的复杂体系协同仿真与验证评估系统和方法
CN104615815B (zh) 一种并行模型的消息传输方法及系统
CN105093964B (zh) 工业电子嵌入式系统仿真用设备模型的构建方法
CN102110151A (zh) 出帐系统的Petri网模型的分析方法
Perry et al. An extensible code generation framework for heterogeneous architectures based on IP-XACT
CN102479268B (zh) Fortran的飞行器联邦成员异构协同互操作方法
Kostin et al. Winsim: a tool for performance evaluation of parallel and distributed systems
CN105893111A (zh) 一种多Agent作战仿真通用控制框架分析设计方法
KR101358075B1 (ko) 모바일 기기를 위한 분산 이산사건시스템 명세 시뮬레이션 아키텍처
Hao et al. Research on Simulation Model System Integration and Interconnection Methods
Sanders A Call for a New Army Modeling Framework
Kobayashi Computer, communications and man: the integration of computer and communications with man as an axis

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100922

Termination date: 20110324