本发明涉及数字仿真技术领域。更具体地,涉及一种模型无关的通用记录/回放系统及方法。
背景技术:
数字仿真实验中存在多种交互标准规范和体系结构,例如HLA标准(IEEE Std 1516,IEEE Standard for Modeling)、TENA体系(Test and Training Enabling Architecture)。随着仿真需求在规模、范围以及形式上的扩大和升级,并且考虑资源重用、时间成本等因素影响,数字仿真中多以记录回放工具软件模拟资源,降低成本。
数字仿真实验中,模型协议具有复杂、多变、不统一等特点。目前,记录回放设计方法实现依赖模型协议,模型协议稍有调整即会对记录回放造成不良影响,导致记录错误数据、回放错误数据,最终严重影响数字仿真结果,因此,为了适应新的模型协议,需要人力手动修改、调整记录回放方法,工作耗时、复杂、易出错。
因此,需要提供一种模型无关的通用记录/回放系统及方法。
技术实现要素:
本发明的目的在于提供一种模型无关的通用记录/回放系统及方法,解决数字仿真中,由于记录回放软件与仿真模型紧耦合、不通用,仿真模型调整或修改,记录回放软件不能自动重新生成适应,造成仿真结果不正确甚至仿真节点宕机的问题。
为达到上述目的,本发明采用下述技术方案:
一种模型无关的通用记录/回放系统,包括:
通用主框架模块和至少一个与仿真模型相对应的记录回放通道模块,
通用主框架模块,创建和卸载记录回放通道模块,并管理记录回放通道模块对所述记录回放通道模块相对应的仿真模型的仿真数据的记录回放;
记录回放通道模块,执行相对应的仿真模型的仿真数据的记录回放。
优选地,所述通用主框架模块管理记录回放通道模块对记录回放通道模 块相对应的仿真模型的仿真数据的记录回放包括调度、加载、启动和停止记录回放通道模块对记录回放通道模块相对应的仿真模型的仿真数据的记录回放。
优选地,所述通用主框架模块创建记录回放通道模块的过程包括:
仿真模型解析部分,完成仿真模型的解析,读取相对应的仿真模型的名称和属性特征,并存储标记;
仿真模型数据序列化部分,将相对应的仿真模型的仿真数据按其字段、类型一次读取并保存于连续缓存中,转化仿真数据为缓存;
仿真模型数据反序列化部分,将连续缓存中的相对应的仿真模型的仿真数据一次读取,构造仿真模型数据,转化缓存为仿真数据;
仿真应用运行支撑部分,将所属记录回放通道模块作为应用角色加入仿真过程,并实现对磁盘数据经过仿真数据反序列化部分处理后的发送的支撑,实现对所属记录回放通道模块接收所述仿真数据并经过所述仿真模型数据序列化部分处理后存储在磁盘上的支撑。
一种模型无关的通用记录/回放方法,该方法包括如下步骤:
在数字仿真开始时,创建仿真模型的记录回放通道过程;
启动所述记录回放通道过程,进行仿真模型的仿真数据的记录回放;
在数字仿真结束时,关闭所述记录回放通道过程,结束仿真数据的记录回放。
优选地,所述创建仿真模型的记录回放通道过程进一步包括如下子步骤:
完成仿真模型的解析,读取相对应的仿真模型的名称和属性特征,并存储标记;
将相对应的仿真模型的仿真数据按其字段、类型一次读取并保存于连续缓存中,转化仿真数据为缓存;
将连续缓存中的相对应的仿真模型的仿真数据一次读取,构造仿真模型数据,转化缓存为仿真数据;
将所属记录回放通道模块作为应用角色加入仿真过程,并实现对磁盘数据经过仿真数据反序列化部分处理后的发送的支撑,实现对所属记录回放通道模块接收所述仿真数据并经过所述仿真模型数据序列化部分处理后存储在磁盘上的支撑。
优选地,所述进行仿真模型的仿真数据的记录回放进一步包括如下子步骤:
开启发布操作,选择已记录的数据和发送帧频,回放仿真数据;
开启订阅操作,选择记录数据的形式和位置,记录仿真数据。
优选地,该方法还包括步骤:
若数字仿真不再需要记录回放仿真模型的仿真数据,则卸载该仿真模型的记录回放通道过程。
本发明的有益效果如下:
本发明所述技术方案中仿真模型的记录回放由多个记录回放通道过程完成,记录回放通道过程之间松耦合,某类仿真模型的特殊记录回放不会影响其他仿真模型;记录回放通道过程的建立,自动、准确,不需要人力调整代码,在可靠性和稳定性方面提升显著。
目前,数字仿真的规模和范围日益扩大,对于稀缺的、高成本的仿真资源,需要一种方法能够准确、稳定的模拟资源,降低成本,本发明所述技术方案正是面向此需求的解决方案,具有广阔的应用前景。
附图说明
下面结合附图对本发明的具体实施方式作进一步详细的说明。
图1示出模型无关的通用记录/回放系统的示意图。
图2示出模型无关的通用记录/回放方法中创建记录回放通道过程的示意图。
具体实施方式
为了更清楚地说明本发明,下面结合优选实施例和附图对本发明做进一步的说明。附图中相似的部件以相同的附图标记进行表示。本领域技术人员应当理解,下面所具体描述的内容是说明性的而非限制性的,不应以此限制本发明的保护范围。
实施例1
如图1所示,本实施例提供的模型无关的通用记录/回放系统,包括:
通用主框架模块和至少一个与仿真模型相对应的记录回放通道模块,
通用主框架模块,创建和卸载记录回放通道模块,并管理记录回放通道模块对该记录回放通道模块相对应的仿真模型的仿真数据的记录回放;
记录回放通道模块,执行相对应的仿真模型的仿真数据的记录回放。
模型无关的通用记录/回放系统中一个通用主框架模块可以控制管理多个 记录回放通道模块。
通用主框架模块和记录回放通道模块的大致功能描述如下:
通用主框架模块,作为通用记录回放的主线,负责创建、调度、加载、启动、停止、卸载记录回放通道模块。通用主框架模块是用户控制记录回放的接口,用户可通过通用主框架模块启动/停止控制记录回放通道模块的运行。
记录回放通道模块,逻辑上是一个独立的基于数据包的存储读取转换模块,物理上是一个独立的动态链接库,由通用主框架模块创建、调度、加载和卸载。记录回放通道模块,支持启动、停止等功能。一个记录回放通道模块完成一类仿真模型的仿真数据的存储读取,数字仿真网络的多模型数据的记录回放是由相应的多个记录回放通道模块联合实现的。
通用主框架模块和记录回放通道模块的详细功能描述如下,
通用主框架模块:
若仿真数据需要记录回放的仿真模型已存在对应的记录回放通道模块,则通用主框架模块选择启动记录回放通道模块;若仿真数据需要记录回放的仿真模型不存在对应的记录回放通道模块,则通用主框架模块需要选择该仿真模型,创建与之相关的记录回放通道模块,而后再启动该记录回放通道模块;
其中
通用主框架模块创建记录回放通道模块的过程由四个部分组成,即仿真模型解析部分、仿真模型数据序列化部分、仿真模型数据反序列化部分和仿真应用运行支撑部分:
仿真模型解析部分,此部分是创建记录回放通道模块的入口模块,由该模块完成仿真模型的解析,读取对象模型的名称、仿真属性特征,包括类型、名字等,并存储标记。仿真模型解析部分,用于支持其他三个部分,即仿真模型数据序列化部分、仿真模型数据反序列化部分和仿真应用运行支撑部分。
仿真模型数据序列化部分,此部分是基于仿真模型解析部分,根据仿真模型将仿真模型数据按其字段、类型一次读取并保存于连续缓存中,转化仿真模型数据于缓存,并将该缓存指针和大小传于仿真应用运行支撑部分。
仿真模型数据反序列化部分,此部分是基于仿真模型解析部分,根据仿真模型将连续缓存中的数据一次读取,构造仿真模型数据,转化缓存为仿真数据,并将该仿真数据传于仿真应用运行支撑部分。
仿真应用运行支撑部分,此部分是记录回放通道过程的贯穿部分,包括 仿真运行环境、仿真模型发布/订阅等操作。仿真运行环境使得记录回放通道模块作为应用角色加入仿真过程;仿真模型发布操作使得磁盘数据经过仿真模型数据反序列化部分处理后得以发送;仿真模型订阅操作使得记录回放通道过程得以接收仿真模型数据并经过仿真模型数据序列化部分处理后存储在磁盘上。
根据用户仿真模型选择,通用主框架模块自动生成上述四个部分并生成工程文件,编译链接生成动态链接库。
启动所打开的记录回放通道过程,即可以进行相应的仿真模型的记录回放。
当数字网络仿真结束,通用主框架模块关闭相关的记录回放通道模块,结束相应的仿真数据记录回放。
若网络仿真不再需要记录回放某类仿真模型,则卸载相关记录回放通道模块。
记录回放通道模块由通用主框架模块创建、调度、加载、显示、启动、停止和卸载。
记录回放通道模块执行相对应的仿真模型的仿真数据的记录回放的过程为:
开启发布操作,用户选择已记录的数据和发送帧频,即可回放仿真应用数据;
开启订阅操作,用户选择记录数据的形式和位置,即可开始记录仿真应用数据。
记录回放通道模块收到通用主框架模块的停止命令后,则不再接收由仿真模型数据反序列化部分传入的仿真模型数据并停止发送,同时,停止订阅并不再传入仿真模型数据序列化部分。
记录回放通道过程最后由通用框架总控过程卸载结束。
实施例2
本实施例提供的模型无关的通用记录/回放方法,包括如下步骤:
在数字仿真开始时,创建仿真模型的记录回放通道过程;
启动记录回放通道过程,进行仿真模型的仿真数据的记录回放;
在数字仿真结束时,关闭记录回放通道过程,结束仿真数据的记录回放。
其中
本方法提供一个主界面,用于创建、调度、加载、启动、停止、卸载记录回放通道过程。用户通过主界面启动/停止控制记录回放通道过程。
记录回放通道过程,逻辑上是一个独立的基于数据包的存储读取转换过程,物理上是一个独立的动态链接库,由主界面创建、调度、加载、卸载。记录回放通道过程,支持启动、停止等功能。一条记录回放通道过程完成一类仿真模型的仿真数据的存储读取,数字仿真网络的多模型数据的记录回放是由相应的多条记录回放通道过程联合实现的。
如图2所示,步骤“在数字仿真开始时,创建仿真模型的记录回放通道过程”的具体过程为:
若仿真数据需要记录回放的仿真模型已存在对应的记录回放通道过程,则选择启动记录回放通道模块;若仿真数据需要记录回放的仿真模型不存在对应的记录回放通道过程,则需要选择该仿真模型,创建与之相关的记录回放通道过程,而后再启动该记录回放通道过程;
创建记录回放通道过程由四个部分组成,分别为创建:仿真模型解析部分、仿真模型数据序列化部分、仿真模型数据反序列化部分和仿真应用运行支撑部分。
仿真模型解析部分,此部分是创建记录回放通道过程的入口模块,由该模块完成仿真模型的解析,读取对象模型的名称、仿真属性特征,包括类型、名字等,并存储标记。仿真模型解析部分,用于支持其他三个部分,即仿真模型数据序列化部分、仿真模型数据反序列化部分和仿真应用运行支撑部分。
仿真模型数据序列化部分,此部分是基于仿真模型解析部分,根据仿真模型将仿真模型数据按其字段、类型一次读取并保存于连续缓存中,转化模型数据于缓存,并将该缓存指针和大小传于仿真应用运行支撑部分。
仿真模型数据反序列化部分,此部分是基于仿真模型解析部分,根据仿真模型将连续缓存中的数据一次读取,构造仿真模型数据,转化缓存为仿真模型,并将该仿真模型数据传于仿真应用运行支撑部分。
仿真应用运行支撑部分,此部分是记录回放通道过程的贯穿部分,包括仿真运行环境、仿真模型发布/订阅等操作。仿真运行环境使得记录回放通道过程作为应用角色加入仿真过程;仿真模型发布操作使得磁盘数据经过仿真模型数据反序列化部分处理后得以发送;仿真模型订阅操作使得记录回放通道过程得以接收仿真模型数据并经过仿真模型数据序列化部分处理后存储在磁盘上。
根据用户仿真模型选择,通用主界面自动生成上述四个部分并生成工程文件,编译链接生成动态链接库。
在“在数字仿真开始时,创建仿真模型的记录回放通道过程”之后,
启动记录回放通道过程,即可以进行相应的仿真模型的记录回放。
当数字网络仿真结束,关闭相关的记录回放通道过程,结束相应的仿真数据记录回放。
若网络仿真不再需要记录回放某类仿真模型,则卸载相关记录回放通道过程。
步骤“启动记录回放通道过程,进行仿真模型的仿真数据的记录回放”的具体过程为:
开启发布操作后,用户选择已记录的数据和发送帧频,即可回放仿真应用数据。
开启订阅操作后,用户选择记录数据的形式和位置,即可开始记录仿真应用数据。
记录回放通道过程收到通用框架总控过程的停止命令后,则不再接收由仿真模型数据反序列化部分传入的仿真模型数据并停止发送,同时,停止订阅并不再传入仿真模型数据序列化部分。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定,对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,这里无法对所有的实施方式予以穷举,凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。