面向服务的可扩展组合式仿真引擎的制作方法

文档序号:12364840阅读:514来源:国知局
面向服务的可扩展组合式仿真引擎的制作方法与工艺

本发明涉及计算机仿真领域,特别涉及面向服务的可扩展组合式仿真引擎框架技术。



背景技术:

随着科学技术的发展,建模与仿真技术被广泛应用于各领域问题的分析评估和辅助决策。例如:国防领域的作战行动分析与评估、社会领域的非常规突发事件应急管理辅助决策,以及交通建模与仿真评估等。仿真引擎作为仿真平台或仿真系统的核心技术,主要功能是实现仿真对象的创建与维护,仿真对象的互操作,仿真时间管理,以及仿真运行推进等。

通常同一个仿真系统应用中含有许多不同模型,以模拟不同对象、事件或者过程。而不同模型之间可能具有相同的计算功能,例如:作战仿真系统中陆军模型、空军模型、海军模型都需要计算环境信息或者坐标转换等。在不同模型中各自开发相同功能的计算模块,会导致相同功能的模块之间存在误差,以及模型的重复开发,多重标准等问题。因此,统一设计和开发不同模型之间相同功能的模块,并将其作为服务集成到仿真引擎,以供模型调用,实现功能服务的计算,可以减少仿真模型的重复开发,提高开发效率,增强模型的规范性。

虽然面向服务的仿真引擎框架可以解决同一个仿真系统中模型重复开发,模型误差等问题,但是由于各领域对仿真应用需求的差别,以及不同仿真系统对仿真服务的需求不同,使得仿真引擎框架难于在不同的仿真系统中广泛使用。针对不同仿真系统,需要不断地修改仿真服务,以适应不同的仿真应用需求,从而导致大量的维护工作,以及仿真引擎框架的不稳定性。

如何能够提高仿真服务的可重用性和仿真引擎框架的可扩展性,继而实现一种面向服务的可扩展组合式仿真引擎框架,即能实现仿真服务和仿真引擎功能的组合式设计,成为现有技术亟需解决的技术问题。



技术实现要素:

本发明的目的在于提出一种面向服务的可扩展组合式仿真引擎,能够设计组件式的仿真引擎功能和仿真服务,实现仿真引擎功能和仿真服务的灵活替换,可通过组合不同的仿真引擎功能组件和仿真服务组件来配置不同应用需求的仿真引擎,提高仿真引擎框架的可扩展性、可重用性、稳定性,以及针对不同仿真系统的适用性。

为达此目的,本发明采用以下技术方案:

一种面向服务的可扩展仿真引擎,所述仿真引擎包括仿真引擎框架,管理器接口、服务接口,及多个不同功能的管理器实现和服务实现,其中仿真引擎框架用于创建和维护所述管理器实现和所述服务实现,并将仿真模型与所述管理器实现和所述服务实现进行桥接,所述管理器实现和所述服务实现分别用于为仿真模型和数据提供管理功能和服务计算,所述仿真模型通过仿真引擎框架调用管理器接口和服务接口,实现对管理器实现和服务实现的访问。

进一步的,所述管理器实现和服务实现通过基于组件的方式来设计和开发。

进一步的,所述组件为动态链接库,所述管理器实现包括时间管理、事件管理和对象管理器,所述服务实现包括数据采集服务、环境服务和裁决服务。

进一步的,所述仿真引擎框架采用总线的方式集成所述管理器接口和所述服务接口,并通过接口桥接实现管理器和服务的功能接口与功能实现之间的映射。

进一步的,所述仿真引擎框架在仿真初始化时,创建管理器和服务,并根据配置数据初始化管理器和服务,加载想定、模型和数据,创建仿真模型对象和事件,并对其初始化。

进一步的,仿真引擎框架在运行中,通过时间管理器、事件管理器、对象管理器等管理器推进仿真运行和事件计算。

进一步的,当仿真运行结束时,仿真引擎框架注销仿真模型对象、事件,以及管理器和服务,释放管理器和服务组件资源。

进一步的,所述仿真引擎框架的初始化配置数据为仿真引擎框架配置文件,所述仿真引擎框架配置文件描述了各类管理器和服务的接口类,及其接口类对应的管理器和服务的相关信息,包括:名称、实现类、依赖接口和是否激活。

本发明还公开了一种利用上述的面向服务的可扩展仿真引擎进行仿真运行的方法,包括如下步骤:

步骤一:仿真初始化

步骤11:初始化系统环境,包括:读取环境变量和设置仿真系统当前工作目录;

步骤12:解析命令行参数,获取仿真引擎框架配置文件和想定文件;

步骤13:创建和初始化仿真引擎框架、管理器和服务;

步骤14:加载模型和基础数据;

步骤15:加载外部模块,即仿真引擎框架功能以外的模块,外部模块通过一定的接口连接仿真引擎框架,获取仿真运行状态和数据;

步骤16:加载想定,根据想定内容创建和初始化仿真对象实例,同时生成初始事件,并将初始事件插入事件管理器,设置仿真时间步长;

步骤二:仿真运行

步骤21:启动时间管理器,推进仿真时间直至所有事件执行完毕;

步骤22:运行事件管理器,对事件队列进行排序,执行时间最小和优先级最高的事件,触发仿真对象实例的响应函数;

步骤23:仿真对象实例执行模型计算;在模型计算过程中仿真对象实例调用仿真引擎框架的管理器和服务,向事件管理器提交新的事件,向其他对象实例发送消息;

步骤24:运行其他管理器、服务和外部模块,为仿真模型提供所需的业务模型计算,或者实现仿真系统指定任务;

步骤三:仿真结束;

步骤31:清理外部模块;

步骤32:清理仿真对象实例;

步骤33:清理模型和基础数据;

步骤34:清理管理器、服务和仿真引擎框架,即释放管理器、服务和仿真引擎框架的占用内存,删除数据,卸载管理器组件和服务组件,析构仿真引擎框架。

进一步的,在步骤14中,所述模型包括:随机分布模型、仿真实体模型和/或组件模型等,所述基础数据包括实体模型和组件模型的静态数据。

本发明减少通用功能模型的重复开发,提高仿真系统开发效率,模型的重用性和规范性,提高仿真引擎框架的可扩展性和可组合性。该仿真引擎框架可以根据不同的仿真系统需求,灵活地配置仿真引擎的功能模块,包括:管理器和服务,通过功能模块的动态组合形成满足需求的仿真引擎。此外,对于不能满足需求的功能模块,只需要开发或者改进特定的管理器和服务,并进行替换,从而在保证仿真引擎框架的适应性的同时,增强仿真引擎框架的稳定性。

附图说明

图1是根据本发明具体实施例的面向服务的可扩展仿真引擎的结构示意图;

图2是根据本发明具体实施例的示例性的仿真引擎框架的配置文件格式描述;

图3是根据本发明具体实施例的仿真引擎运行流程示意图。

图中的附图标记所分别指代的技术特征为:

1、仿真引擎框架;2、管理器接口;3、服务接口;4、管理器实现;5、服务实现。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

参见图1,示出了根据本发明具体实施例的面向服务的可扩展仿真引擎的示意图,所述仿真引擎包括仿真引擎框架1,管理器接口2、服务接口3,及多个不同功能的管理器实现4和服务实现5,其中仿真引擎框架1用于创建和维护所述管理器实现4和所述服务实现5,并将仿真模型与管理器实现4和所述服务实现5进行桥接,所述管理器实现4和所述服务实现5分别用于为仿真模型和数据提供管理功能和服务计算,所述仿真模型通过仿真引擎框架1调用管理器接口2和服务接口3,实现对管理器实现4和服务实现5的访问,即调用管理器实现4和服务实现5的管理功能和服务计算。

进一步的,为了实现仿真引擎功能模块的可替换性、可扩展性和可重用性。所述管理器实现和服务实现通过基于组件的方式来设计和开发,所述组件能够为动态链接库。

示例性的,包括时间管理、事件管理、对象管理器、数据采集服务、环境服务、裁决服务等。

进一步的,所述仿真引擎框架1采用总线的方式集成所述管理器接口2和所述服务接口3,并通过接口桥接实现管理器和服务的功能接口与功能实现之间的映射。

即采用桥接接口技术为管理器和服务设计统一的访问接口,将管理器和服务的功能接口与功能实现相互分离。管理器和服务的功能实现需要与功能接口封装的函数相对应。

所述仿真引擎框架1集成管理器和服务的功能接口,在仿真运行时根据需求动态加载管理器和服务的功能实现组件。

管理器和服务的功能实现采用动态链接库的组件设计方式,针对功能接口设计的函数,实现相应的功能模型。通过灵活配置或者替换管理器和服务的功能实现组件,可以实现仿真引擎框架的可扩展性,提高仿真引擎的适用性。仿真模型通过仿真引擎框架,可获取管理器和服务的接口,并调用管理器和服务的功能实现,从而实现功能和服务的计算。

所述仿真引擎框架在仿真初始化时,创建管理器和服务,并根据配置数据初始化管理器和服务。仿真引擎框架进一步的加载想定、模型和数据,创建仿真模型对象和事件,并对其初始化。

仿真引擎框架在运行中,通过时间管理器、事件管理器、对象管理器等管理器推进仿真运行和事件计算。

当仿真运行结束时,仿真引擎框架注销仿真模型对象、事件,以及管理器和服务,释放管理器和服务组件资源。

示例性的,参见图2,示出了仿真引擎框架的配置文件格式描述。

为实现仿真引擎框架的可组合性,针对不同仿真应用需求,仿真引擎框架可以动态加载和配置不同的管理器和服务组件,为仿真应用提供必要的运行环境。仿真引擎框架的管理器和服务的组合通过配置文件来实现。

仿真引擎框架配置文件描述了各类管理器和服务的接口类,及其接口类对应的管理器和服务的相关信息,包括:名称、实现类、依赖接口、是否激活等。

仿真引擎启动时,将读取和解析该配置文件,判断管理器或者服务的接口类是否激活。如果激活,那么将加载对应实现类的管理器或服务组件,并根据“自动初始化”属性值,对管理器和服务进行初始化操作。不同的服务组件在配置文件中描述了不同的参数项,例如:服务组件初始化所需的数据文件、文件目录等。

参见图3,示出了根据本发明的仿真引擎运行的流程示意图。仿真引擎框架的主要工作为:加载想定、模型和数据,创建并初始化各个管理器和服务,驱动仿真运行。

仿真引擎的运行,包括仿真初始化、仿真运行和仿真结束,具体包括如下步骤:

步骤一:仿真初始化。

步骤11:初始化系统环境,包括:读取环境变量、设置仿真系统当前工作目录等。

步骤12:解析命令行参数,获取仿真引擎框架配置文件、想定文件等。

步骤13:创建和初始化仿真引擎框架、管理器和服务。

步骤14:加载模型和基础数据,示例性的,模型包括:随机分布模型、仿真实体模型、组件模型等,基础数据包括实体模型和组件模型的静态数据,即装备型号数据、部队编制编成数据、资产数据等。

步骤15:加载外部模块,即仿真引擎框架功能以外的模块,外部模块通过一定的接口连接仿真引擎框架,获取仿真运行状态和数据。例如:仿真运行控制模块通过接口向仿真运行框架发送启动、暂停、继续、结束等控制命令。

步骤16:加载想定,根据想定内容创建和初始化仿真对象实例,同时生成初始事件,并将初始事件插入事件管理器,设置仿真时间步长。

步骤二:仿真运行。

步骤21:启动时间管理器,推进仿真时间直至所有事件执行完毕。

步骤22:运行事件管理器,对事件队列进行排序,执行时间最小和优先级最高的事件,触发仿真对象实例的响应函数。

步骤23:仿真对象实例执行模型计算。在模型计算过程中仿真对象实例可以调用仿真引擎框架的管理器和服务,向事件管理器提交新的事件,向其他对象实例发送消息。

步骤24:运行其他管理器、服务和外部模块,为仿真模型提供所需的业务模型计算,或者实现仿真系统指定任务,例如:数据采集服务采集仿真对象实例状态数据。

步骤三:仿真结束。

步骤31:清理外部模块,即删除外部模块,释放外部模块资源。

步骤32:清理仿真对象实例,即释放仿真对象实例占用的内存,删除指针变量,析构仿真对象实例。

步骤33:清理模型和基础数据,即卸载仿真实体模型和组件,释放模型资源,删除基础数据,释放内存。

步骤34:清理管理器、服务和仿真引擎框架,即释放管理器、服务和仿真引擎框架的占用内存,删除数据,卸载管理器组件和服务组件,析构仿真引擎框架。

实施例1:

下面以实体的运动模型来说明:作战仿真系统中大部分实体均需要在战场空间中运动,将实体的运动模型集成到仿真引擎中作为运动服务,可以减少实体运动模型的重复开发,提高模型开发效率,增强运动模型的规范性。但是,不同作战域的实体的运动模式不尽相同,例如:空中运动、路面运动、水上运动、水下运动等,因此需要开发不同的运动模型。仿真引擎框架中使用桥接技术实现了运动服务接口和功能模型的分离。在不同作战仿真系统中针对不同的运动模型需求,只需要对运动服务组件进行修改或者替换,从而提高了仿真引擎的可扩展性和可重用性。

本发明针对仿真模型通用功能重复开发,重复开发的模型存在误差,以及仿真引擎框架在不同仿真系统中适用性差等问题,提出了面向服务的可扩展组合式仿真引擎框架,减少通用功能模型的重复开发,提高仿真系统开发效率,模型的重用性和规范性,同时提高仿真引擎框架的可扩展性和可组合性。该仿真引擎框架可以根据不同的仿真系统需求,灵活地配置仿真引擎的功能模块(包括:管理器和服务),通过功能模块的动态组合形成满足需求的仿真引擎。此外,对于不能满足需求的功能模块,只需要开发或者改进特定的管理器和服务,并进行替换,从而在保证仿真引擎框架的适应性的同时,增强仿真引擎框架的稳定性。

测试结果表明,面向服务的可扩展组合式仿真引擎框架可以大幅度地增强仿真引擎在不同仿真应用中的适用性,提供仿真系统的开发效率,增强仿真模型的规范性。

本发明可以应用于多个作战仿真系统,以评估不同作战域、不同粒度的战役战术问题,解决仿真引擎在不同应用需求的作战仿真系统中难于适用的问题。本发明实现了仿真引擎框架的可扩展性和可重用性,增强仿真引擎的适用性和稳定性。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施方式仅限于此,对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单的推演或替换,都应当视为属于本发明由所提交的权利要求书确定保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1