一种仿真模型在线重载的模型集成方法及装置与流程

文档序号:21819057发布日期:2020-08-11 21:33阅读:157来源:国知局
一种仿真模型在线重载的模型集成方法及装置与流程

本发明涉及计算机仿真技术领域,尤其涉及一种仿真模型在线重载的模型集成方法及装置。



背景技术:

在目前的军用仿真推演系统中,作战实体的建模须符合仿真推演系统的模型集成框架要求。当前主流的军用仿真推演系统均推出了相应的模型集成框架,如北京华如科技股份有限公司产品xsim与北京神州普惠科技有限公司的产品dwk等。

但当前主流的模型集成框架主要完成仿真模型静态集成与加载执行的功能,缺乏在运行时根据仿真任务需求动态重加载仿真模型的能力,这导致了仿真任务与一套仿真模型集紧密耦合,难以在单次仿真任务过程中完成多套仿真模型集的计算。在面对用户进行多方案对比分析的应用场景时,只能通过多次仿真完成多套方案的分析,使得仿真研究的效率大打折扣。同时,主流的模型集成框架一般只考虑了后台计算模型的集成,缺乏对有前台显示的仿真模型进行集成的能力,难以满足人在回路对模型进行可视化在线调整的仿真任务需求。



技术实现要素:

本发明所要解决的技术问题是:针对现有模型集成框架的不足,提出了一种仿真模型在线重载的模型集成方法及装置,支持在一次仿真任务中根据任务需求实现仿真模型的在线重载,方便用户在一次仿真任务中开展多方案的分析研究。

本发明提供的一种仿真模型在线重载的模型集成方法,包括

a:启动程序使模型软件进入可运行状态;

b:根据需求实现仿真模型的在线加/卸载;

c:有序调度各仿真模型开展业务仿真计算;

所述c具体包括,

在各仿真模型被加载并初始化后,仿真模型向模型调度模块进行注册;

完成注册后,根据仿真想定文件对仿真模型进行实例化并确定调度顺序;

根据外部仿真引擎的驱动,按节拍调度仿真模型开展计算。

更进一步的,所述a具体包括,

模型容器在模型软件启动时创建程序的主进程/主线程;

加载模型管理模块、模型调度模块、模型界面管理模块和通信管理模块;

加载完所有模块后,调用模型管理模块加载各仿真模型;

调用模型调度模块实现对各仿真模型的有序调度;

调用模型界面管理模块为各仿真模型创建界面;

调用通信管理模块为组件间通信进行必要的初始化,模型容器完成以上工作后,模型软件进入可运行状态。

更进一步的,所述模型管理模块加载各仿真模型具体包括,

根据仿真想定文件从仿真模型库中加载相应的仿真模型,并对其进行初始化。

更进一步的,所述b具体包括,

展现当前运行的仿真模型以及仿真模型库中可用于重载的仿真模型;

根据仿真任务的需求,在仿真过程中动态选择仿真模型库中尚未被加载的仿真模型进行在线加载,同时选择正在运行的仿真模型进行在线卸载。

更进一步的,所述在线加载具体包括,

接收到加载指令后,从仿真模型库中选择相应的仿真模型进行加载并完成初始化。

更进一步的,所述在线卸载具体包括,

接收到卸载指令后,将被卸载模型的相关信息发送至模型调度模块,使其完成被卸载模型的注销与清理工作,在清理工作完成后,对所选仿真模型进行卸载,并完成相关的反初始化操作。

更进一步的,还包括在仿真驱动过程中,收集推演过程中仿真模型产生的推演信息,并保存在仿真记录文件或数据库中,所述推演信息包括状态参数、能力参数、重要事件和效能计算结果等信息。

更进一步的,还包括d:管理仿真模型的界面布局,具体包括,

d1:根据仿真模型的界面配置文件创建相应的仿真模型界面,所述仿真模型界面包括菜单栏、工具栏、状态栏、业务界面和业务窗口等;

d2:仿真模型在运行时动态加/卸载后,模型界面管理模块根据当前界面布局的变化进行自动调整;

d3:自由拖动仿真模型的主界面,并适时显示/隐藏主界面,增加了模型软件界面布局的灵活性;

d4:销毁仿真模型界面。

更进一步的,所述d1具体包括,

驱动仿真模型读取自身的界面配置文件,获取仿真模型的界面信息和数据发布/订阅信息,所述界面信息包括仿真模型的菜单项,工具栏项,状态栏项以及业务窗口和布局方式;

将界面信息和仿真模型id关联起来,驱动仿真模型创建各自的仿真模型界面,所述仿真模型界面包括菜单栏、工具栏、状态栏、业务界面和业务窗口等。

更进一步的,所述d4具体包括,

根据仿真模型id查询其界面信息,根据该界面信息销毁对应的仿真模型界面,所述仿真模型界面包括菜单栏、工具栏、状态栏、业务界面和业务窗口等。

更进一步的,所述d还包括,

模型界面管理模块保存当前的界面布局方案,具体包括,

获取当前仿真模型的仿真模型界面信息,将其写入仿真模型的界面配置文件中,使得模型软件重启后保持界面布局不变。

更进一步的,还包括,

e:管理所有仿真模型之间、以及仿真模型与模型调度模块之间的数据通信,具体包括,

模型调度模块与仿真模型在初始化通信接口时,向通信管理模块注册将要发布/订阅的数据主题;

通信管理模块在收集到发布/订阅的数据主题后,将发布数据主题与订阅数据主题进行匹配,匹配上了,则根据配对的数据主题为其建立数据通路,将数据传入。

本发明还提供了一种仿真模型在线重载的模型集成装置,包括模型容器、模型管理模块、模型调度模块、模型界面管理模块和通信管理模块;

所述模型容器与模型管理模块、模型调度模块、模型界面管理模块和通信管理模块通信连接,保证模型软件的正常运行;

所述模型管理模块负责根据需求实现仿真模型的在线加/卸载;

所述模型调度模块负责有序调度各仿真模型开展业务仿真计算;

所诉模型界面管理模块负责对仿真模型的界面布局进行调整和保存;

所述通信管理模块负责管理所有仿真模型之间、以及仿真模型与模型调度模块之间的数据通信。

更进一步的,所述模型管理模块包括供模型容器调用的加载仿真模型接口、卸载仿真模型接口和获取仿真模型状态接口;

所述加载仿真模型接口加载仿真模型的二进制文件;

所述卸载仿真模型接口将要卸载的仿真模型从内存中释放;

所述获取仿真模型状态接口查询组件的状态信息,所述状态信息包括加载状态,描述信息,运行时配置以及获取工厂类指针等操作。

更进一步的,所述模型调度模块包括供模型容器调用的仿真驱动接口、仿真模型注册接口和仿真模型注销接口;

所述仿真驱动接口接收模型容器传入的仿真节拍,有序调度各仿真模型开展业务仿真计算;

所述仿真模型注册接口接收仿真模型的注册信息,并将仿真模型信息加入模型调度列表中进行统一管理;

所述仿真模型注销接口将指定的仿真模型从模型调度列表中删除。

更进一步的,所述模型界面管理模块包括供模型容器和仿真模型调用的创建/销毁仿真模型界面接口、人工/自动调整当前仿真模型界面接口和仿真模型界面保存接口;

所述创建/销毁仿真模型界面接口驱动仿真模型模块创建/销毁各自的仿真模型界面,所述仿真模型界面包括菜单栏、工具栏、状态栏、业务窗口和业务界面等;

所述人工/自动调整当前仿真模型界面接口根据需求对仿真模型界面进行调整;

所述仿真模型界面保存接口保存仿真模型界面。

更进一步的,所述通信管理模块包括供仿真模型和模型调度模块订阅/发布数据的数据发布接口、数据订阅接口和数据发送接口;

所述数据发布接口用于仿真模型与模型调度模块发布自身输出的数据主题;

所述数据订阅接口用于仿真模型与模型调度模块订阅自身输入的数据主题以及用来接收数据的回调函数;

所述数据发送接口用于仿真模型与模型调度模块向指定的数据主题发送业务数据。

更进一步的,所述仿真模型包括供模型管理模块调用的初始化/反初始化接口、供模型界面管理模块调用的创建/销毁仿真界面接口和供模型调度模块调用的仿真步进计算接口;

所述初始化/反初始化接口用于仿真模型进行相应的仿真逻辑初始化操作/清理工作;

所述创建/销毁仿真界面接口用于仿真模型对自身仿真模型界面的创建/销毁;所述仿真模型界面包括菜单栏、工具栏、状态栏、业务窗口和业务界面等;

所述仿真步进计算接口用于仿真模型接收模型调度模块输入的仿真驱动节拍,并通过通信管理模块将计算结果在仿真模型间进行交互。

通过采用以上的技术方案,本发明的有益效果是:允许用户进行仿真模型的在线重载,从而支持在单次仿真任务过程中完成多套仿真模型集的计算,使得用户通过单次仿真就能完成多方案的对比分析,显著提高了仿真研究的效率;还允许用户对有前台显示的仿真模型进行集成,支持按需组装仿真模型界面,并可在运行时对模型界面进行动态调整与保存,满足用户以可视化的方式对模型进行在线调整的应用需求,极大提升了模型软件的易用性。

附图说明

本发明将通过例子并参照附图的方式说明,其中:

图1是本发明仿真模型在线重载的模型集成装置的组成关系示意图;

图2是本发明实施例的模型软件组成示意图;

图3是本发明实施例的模型在线重载效果示意图。

具体实施方式

本说明书中公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。

如图1所示,本发明主要包括:模型容器、模型管理模块、模型调度模块、模型界面管理模块、通信管理模块五大部分。业务算法被实现为多个仿真模型,由本发明加载执行,从而实现特定的业务仿真。在本发明执行的过程中,可接收仿真任务需求实现不同仿真模型的在线重载。

模型容器

模型容器以可执行程序的形式存在,它在模型软件启动时创建程序的主进程/主线程,初始化运行时环境,加载模型管理模块,模型调度模块、模型界面管理模块和通信管理模块。在加载完上述模块后,模型容器先调用模型管理模块加载各仿真模型,接着调用模型调度模块实现对各仿真模型的有序调度,随后调用模型界面管理模块为各仿真模型创建界面,最后调用通信管理模块为组件间通信进行必要的初始化。模型容器完成以上工作后,模型软件进入可运行状态。

模型管理模块

模型管理模块实现为动态链接库的形式,它主要负责根据用户的需求实现仿真模型的在线加卸载。模型管理模块被模型容器加载后,根据输入的仿真想定文件从仿真模型库中加载相应的仿真模型,并对其进行初始化。在模型软件运行过程中,模型管理模块可向用户展现当前运行的仿真模型以及仿真模型库中可用于重载的仿真模型。用户可根据仿真任务的需求,在仿真过程中动态选择仿真模型库中尚未被加载的仿真模型进行在线加载,同时选择正在运行的仿真模型进行在线卸载,从而在一次仿真任务中实现仿真模型的在线重载。模型管理模块在接收到用户的加载指令后,会从仿真模型库中选择相应的仿真模型进行加载并完成初始化;模型管理模块在接收到用户的卸载指令后,会将被卸载模型的相关信息发送至模型调度模块,使其完成被卸载模型的注销与清理工作,在清理工作完成后,模型管理模块将对所选仿真模型进行卸载,并完成相关的反初始化操作。

模型调度模块

模型调度模块实现为动态链接库的形式,它主要负责根据外部仿真引擎的驱动,有序调度各仿真模型开展业务仿真计算。在各仿真模型被模型管理模块加载并初始化后,仿真模型将向模型调度模块进行注册。在完成注册后,模型调度模块根据仿真想定文件对仿真模型进行实例化并确定调度顺序。随后,根据外部仿真引擎的驱动,按节拍调度仿真模型开展计算。在仿真驱动过程中,模型调度模块通过通信管理模型收集推演过程中仿真模型产生的状态参数、能力参数、重要事件和效能计算结果等信息,保存在仿真记录文件或数据库中;模型界面管理模块

模型界面管理模块采用动态链接库的形式实现,它主要负责仿真模型的界面创建、自由拖动、大小调整、显示/隐藏、仿真模型加卸载后整个模型软件界面的自动调整以及当前界面布局方案的保存等,除此之外还支持多屏显示。模型界面管理模块在加载后,会首先收集显示器信息,判断是否可以多屏显示,然后根据仿真模型的界面配置文件创建相应的菜单栏、工具栏、状态栏,并调用仿真模型的界面创建接口创建仿真模型的主界面。仿真模型在运行时动态加卸载后,模型界面管理模块可根据当前界面的变化进行自动调整。用户能自由拖动仿真模型的主界面,并能适时显示/隐藏主界面。模型界面管理模块可保存当前的界面布局方案,使得模型软件重启后保持界面布局不变。在模型软件启动前,仿真模型通过编辑其界面配置文件可快速实现界面布局的设计;在运行时,用户也能通过模型界面管理模块提供的拖动、显示/隐藏等功能动态改变界面布局,增加了模型软件界面布局的灵活性。

通信管理模块

通信管理模块实现为动态链接库的形式,它负责管理所有仿真模型之间、以及仿真模型与模型调度模块之间的数据通信。所有的仿真模型之间、仿真模型与模型调度模块之间不直接进行数据交互,都是通过将数据先发送给通信管理模块,然后由该模块统一负责数据的分发。通信管理模块采用发布/订阅机制。模型调度模块与每个仿真模型在初始化通信接口时,会向通信管理模块注册自己将要发布/订阅的数据主题。通信管理模块在收集到每个发布/订阅的数据主题后,会根据配对的数据主题为其建立数据通路。

发明的效果

下面结合附图和实施例对本发明的方案作详细说明:

本实施例运行在windowsxp操作系统上,采用visualstudio2008作为开发环境,选择visualc++作为开发语言。

模型容器作为模型集成框架的主程序模块,基本程序框架采用mfc实现,编译为exe格式的二进制可执行文件。

模型容器在程序启动时依次完成以下几个主要工作:

创建程序主进程。

完成mfc必要的初始化操作。

加载模型管理模块、模型调度模块、模型界面管理模块和通信管理模块,并调用它们的初始化接口进行初始化操作。

驱动模型管理模块加载并初始化仿真模型。

驱动模型界面管理模块创建仿真模型界面并进行布局。

模型容器在运行时,通过通信管理模块接收来自外部仿真引擎的驱动,将时间节拍传给模型调度模块,驱动模型调度模块调用仿真模型进行仿真计算。

模型容器在程序关闭时依次完成以下几个主要工作:

驱动模型界面管理模块销毁仿真模型界面。

反初始化模型调度模块,对其进行卸载。

驱动模型管理模块反初始化仿真模型模块并对其进行卸载。

反初始化模型界面管理模块,对其进行卸载。

反初始化通信管理模块,对其进行卸载。

反初始化模型管理模块,对其进行卸载。

完成mfc必要的清理操作。

退出程序。

模型管理模块实现为dll格式的二进制文件,它需要提供一系列接口供模型容器调用,最主要的接口有:

加载仿真模型接口

根据仿真想定文件读取要加载的仿真模型模块名称,调用windows系统接口loadlibraryex在指定的文件路径下加载仿真模型的二进制文件。加载完成后,模型管理模块调用加载仿真模型接口进行初始化操作。

卸载仿真模型接口

在组件管理列表中查找要卸载的仿真模型名称,调用其反初始化接口完成卸载前的清理操作,然后调用windows系统接口freelibrary将仿真模型从内存中释放。

获取仿真模型状态接口。

在组件管理列表中查询组件的加载状态,描述信息,运行时配置以及获取工厂类指针等操作。

模型调度模块实现为dll格式的二进制文件,它需要提供一系列接口供模型容器调用,最主要的接口有:

仿真驱动接口

接收模型容器传入的仿真节拍,有序调度各仿真模型开展业务仿真计算。

仿真模型注册接口

接收各仿真模型的注册信息,所述注册信息内包含仿真模型信息,将仿真模型信息加入模型调度列表中进行统一管理。

仿真模型注销接口

在模型调度列表中查找指定的仿真模型,将其从模型调度列表中删除,在后续调度过程中,将不再调度该模型。

模型界面管理模块实现为基于mfc的dll格式的二进制文件。它需要提供一系列接口供模型容器和仿真模型调用,最主要的接口有:

创建/销毁仿真模型界面接口

模型界面管理模块首先驱动仿真模型模块读取自身的界面配置文件,获取仿真模型的界面信息,这些信息包括仿真模型的菜单项,工具栏项,状态栏项以及业务窗口和布局方式。模型界面管理模块将上述读取的界面信息和仿真模型id关联起来,然后驱动仿真模型模块创建各自的菜单栏,工具栏,状态栏和业务界面。当需要销毁仿真模型界面时,模型界面管理模块根据仿真模型id查询到其界面信息,驱动仿真模型模块根据这些信息销毁该各自的菜单栏,工具栏项,状态栏项以及业务窗口。

人工/自动调整当前仿真模型界面接口

模型界面管理模块提供仿真模型界面可拖动,可停靠,可改变大小和可显示/隐藏等接口,用户根据需要手动调整界面布局。当仿真模型被加/卸载之后,模型界面管理模块根据当前应用界面的实际情况重新对应用的所有仿真模型界面进行调整,使其处于合适的位置。

仿真模型界面保存接口

模型界面管理模块获取当前所有仿真模型的界面信息,将其写入仿真模型的界面配置文件中。在下次启动时,通过读取更新后的界面配置文件达到保存仿真模型界面的目的。

通信管理模块实现为dll格式的二进制文件。它采用发布/订阅的方式来管理数据的分发。仿真模型与模型调度模块向通信管理模块订阅/发布需要的数据,由通信管理模块进行统一的数据收发管理。主要提供的接口如下:

数据发布接口

仿真模型与模型调度模块使用该接口来发布自身输出的数据主题,通信管理模块将这些数据主题与订阅的数据主题进行匹配,如果匹配上了,就在所对应的仿真模型之间建立逻辑连接。否则,不建立连接。

数据订阅接口

仿真模型与模型调度模块使用该接口来订阅自身输入的数据主题以及用来接收数据的回调函数,通信管理模块将这些数据主题与发布的数据主题进行匹配,如果匹配上了,就在所对应的仿真模型之间建立逻辑连接。否则,不建立连接。

数据发送接口

仿真模型与模型调度模块使用该接口向指定的数据主题发送业务数据。通信管理模块根据逻辑连接找到订阅了该数据主题的仿真模型,并调用仿真模型与模型调度模块注册的回调函数,将数据传入。

仿真模型实现为dll格式的二进制文件,它主要完成业务仿真相关的功能,如业务界面仿真和业务处理仿真。仿真模型需要提供必要的接口供模型管理模块、模型界面管理模块和模型调度模块调用,这些接口主要有:

初始化/反初始化接口

初始化/反初始化接口由模型管理模块调用。在初始化接口中,仿真模型从配置文件中读取界面信息、数据发布/订阅信息,然后根据这些信息进行相应的仿真逻辑初始化操作。在反初始化接口中,仿真模型保存与业务相关的数据信息,进行仿真逻辑清理工作。

创建/销毁仿真界面接口

业务界面创建/销毁接口由模型界面管理模块调用。在仿真界面创建接口中,仿真模型根据读取到的界面信息进行自身界面的创建,包括创建菜单栏、工具栏、状态栏和仿真业务主窗口等操作。在仿真界面销毁接口中,仿真模型销毁自身的菜单栏、工具栏、状态栏和仿真业务主窗口等界面元素。

仿真步进计算接口

该接口由模型调度模块调用。仿真模型通过该接口接收模型调度输入的仿真驱动节拍,进行一轮仿真计算,并通过通信管理模块将本轮计算结果在仿真模型间进行交互。

图2为某设备仿真模型软件的模块组成情况。该仿真模型软件主要功能是模拟某设备的完整工作过程,并且可以通过界面对其组成部件进行参数调整,从而产生不同的工作效果。为了对该设备的组成部件开展多方案比选,通过本发明,可在运行时动态地对各组成部件仿真模型进行在线重载,在一次仿真过程中就能完成三个方案的效果对比。图3为该设备仿真模型软件通过本发明开展多方案比选的效果图。

本发明的技术效果包括:允许用户进行仿真模型的在线重载,从而支持在单次仿真任务过程中完成多套仿真模型集的计算,使得用户通过单次仿真就能完成多方案的对比分析,显著提高了仿真研究的效率。

允许用户对有前台显示的仿真模型进行集成,支持按需组装仿真模型界面,并可在运行时对模型界面进行动态调整与保存,满足用户以可视化的方式对模型进行在线调整的应用需求,极大提升了模型软件的易用性。

上述说明示出并描述了本发明的一个优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

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