基于fmi的多源异构模型联合仿真方法、装置、设备及介质

文档序号:1963484 发布日期:2021-12-14 浏览:12次 >En<

阅读说明:本技术 基于fmi的多源异构模型联合仿真方法、装置、设备及介质 (Multi-source heterogeneous model joint simulation method, device, equipment and medium based on FMI ) 是由 程旭 蒋荣 程明 何绍清 任女尔 李旭 于 2021-09-09 设计创作,主要内容包括:本发明实施例提出一种基于FMI的多源异构模型联合仿真方法、装置、设备及介质,本地计算机通过代理服务器从远程服务器上获取远程FMU,将所述获取的远程FMU与本地FMU模型库一起构成可用FMU模型库;解析可用FMU模型库中的FMU得到解析信息,仿真软件根据所述解析信息生成FMU的图形化描述,在画布上生成FMU模型,获取多个FMU接口间的关联关系;调用FMI的实例化函数,对FMU进行实例化,得到FMU实例;初始化FMU实例;获取最小仿真步长,以所述最小仿真步长对每个FMU进行单步解算;如果变量T大于等于某FMU模型的仿真结束时间,调用该FMU的释放实例函数释放该FMU实例,直到所有FMU实例均被释放,仿真结束。本发明实施例实现不同步长及仿真时间的多个FMU远程协同仿真。(The embodiment of the invention provides a multisource heterogeneous model combined simulation method, a multisource heterogeneous model combined simulation device, multisource heterogeneous model combined simulation equipment and a multisource heterogeneous model combined simulation medium based on FMI.A local computer acquires a remote FMU from a remote server through a proxy server, and forms an available FMU model library together with an acquired remote FMU and a local FMU model library; analyzing an FMU in an available FMU model library to obtain analysis information, generating graphical description of the FMU by simulation software according to the analysis information, generating an FMU model on canvas, and acquiring an incidence relation among a plurality of FMU interfaces; calling an instantiation function of the FMI, and instantiating the FMU to obtain an FMU instance; initializing an FMU instance; obtaining a minimum simulation step size, and performing single-step calculation on each FMU according to the minimum simulation step size; if the variable T is larger than or equal to the simulation end time of a certain FMU model, calling a release instance function of the FMU to release the FMU instance until all FMU instances are released, and finishing the simulation. The embodiment of the invention realizes the remote collaborative simulation of a plurality of FMUs with different step lengths and simulation time.)

基于FMI的多源异构模型联合仿真方法、装置、设备及介质

技术领域

本发明涉及仿真领域,尤其涉及一种基于FMI的多源异构模型联合仿真方法、装置、设备及介质。

背景技术

目前,国内外的的多模块系统仿真软件主要是采用定制代码、集成耦合以及联合仿真(Co-Simulation)等技术。集成软件开发工作通常使用应用编程接口(API:Application Programming Interface,应用程序接口)来实现,要求开发者全面掌握各模块模型及独立接口,组成一个联合体,采用知识产权合作或者共享模式共同开发。而随着模拟技术的快速发展和广泛应用,越来越需要多个具有不同功能和独立知识产权的软件工具来实现联合仿真实验。因此,FMI(The Functional Mock-up Interface,功能模型接口)允许仿真模型在不同工具之间共享,使得联合仿真能够做到整合多个独立仿真工具为一体,无需各方采用合作或共享模式建立协同仿真。

当前,如ADAMS与MATLAB、AMESim、ANSYS等仿真软件之间都可以实现不同程度的联合仿真。而国内外的很多学者根据其仿真需求开展大量的研究工作。论文《基于AMESim与ADAMS的超静定液压支架液压系统联合仿真》中运用ADAMS和AMESim机液联合仿真的方法对超静定液压支架的承载能力进行了不同工况下的仿真分析;论文《基于ADAMS和MATLAB联合仿真的ABS试验分析》中提出在ADAMS中建立带有ABS(Antilock brake system,制动防抱死系统)系统的整车模型,在Simulink中搭建基于车身减速的路面识别系统的模糊PID控制系统,实现基于ADAMS和SImulink在不同路况下的联合制动仿真;论文《The CombinedSimulation of High-Speed Parallel Manipulator Based on MATLAB,SolidWorks andADAMS》则是将SOLIDWORKS模型分别转换为MATLAB/Simulink模型和ADAMS模型,实现ADAMS机械平台和Simulink控制平台的联合仿真工作;论文《基于FMI的飞行器分系统多源异构模型一体化仿真》选择采用多个FMU模型完成对飞行器的仿真实验。

上述联合仿真实验大体可以分为两类,第一类主要是采用定制代码、集成耦合以及联合仿真的技术,而第二类是运用国际通用模型接口标准(Functional Mock-upInterface,FMI)进行的。第一类仿真实验的局限性上文中已经提到,不在赘述。第二类中,《基于FMI的飞行器分系统多源异构模型一体化仿真》主要是针对某一特定领域,对所求解的模型仅限定在飞行器,而且不支持异地协同开发与仿真实验。

以上研究内容大多关注的是多FMU(Functional Mock-up Unit,功能模型单元)如何进行关联以及如何调用FMI中的仿真函数,却较少提及多FMU联合仿真时的初始化顺序,多FMU的级联初始化的解决方案,多FMU联合仿真的实验精度、多FMU远程协同仿真等问题。而在实际的多FMU联合仿真实验时,由于FMU来源于众多软件,对于用户来讲几近黑箱,所以FMU的初始化配置与多FMU间的数据传输将直接影响联合仿真的质量和结果的准确性。本专利主要针对以上问题进行了相应的研究,并给出了对应的实现方法。

发明内容

随着模拟技术的快速发展和广泛应用,越来越需要多个具有不同功能和独立知识产权的软件工具来实现联合仿真实验,而仿真实验中多学科融合的特点日益凸显。为了提高多学科、多领域异构模型联合仿真的有效性、精确度和仿真效率,基于FMI实现仿真模型在不同工具之间共享,并运用FMU-proxy框架实现FMU模型的远程调用与模型解析,并提出FMU数据传输算法提高多FMU联合仿真的实验精度。

第一方面,本发明实施例提出一种基于FMI的多源异构模型联合仿真方法,包括以下步骤:

步骤S100,本地计算机部署本地FMU模型库,远程服务器部署远程FMU模型库;

步骤S200,本地计算机通过代理服务器从远程服务器上获取远程FMU,将所述获取的远程FMU与本地FMU模型库一起构成可用FMU模型库;

步骤S300,解析可用FMU模型库中的FMU得到解析信息,仿真软件根据所述解析信息生成FMU的图形化描述,在画布上生成FMU模型,获取多个FMU接口间的关联关系;

步骤S400,调用FMI的实例化函数,对FMU进行实例化,得到FMU实例;

步骤S500,初始化FMU实例;

步骤S600,获取最小仿真步长,以所述最小仿真步长对每个FMU进行单步解算;

步骤S700,如果变量T大于等于某FMU模型的仿真结束时间,调用该FMU的释放实例函数释放该FMU实例,直到所有FMU实例均被释放,仿真结束;

其中,变量T的初值为0,每执行一个最小仿真步长Δtmin,均将其累加到T变量中。

优选的,本地计算机通过代理服务器从远程服务器上获取远程FMU的步骤包括:启动本地计算机的代理服务器,所述代理服务器根据远程服务器的IP地址和RPC端口获取可用FMU的信息和位置,代理服务器根据所述可用FMU的信息和位置获取远程FMU。

优选的,代理服务器通过一组RPC可以获得一个或多个FMU。

优选的,代理服务器通过HTTP周期性发送心跳信号,定期更新可用FMU列表,并确定远程服务器处于联机状态。

优选的,通过解析FMU中的.xml描述文件获得FMU解析信息;所述解析信息包括FMU的唯一标识码、模型变量、变量类型、仿真步长、仿真起始时间、仿真结束时间、容差、仿真状态和仿真状态量。

优选的,初始化FMU实例的步骤包括:遍历所有的FMU实例,判断FMU实例是否存在需要初始化条件的接口,若不存在,则直接进入步骤S600;若存在需要初始化条件的接口,判断该接口是否与其他FMU关联,若接口与其他FMU不关联,则进入步骤S600,若接口与其他FMU关联,则用递归方法获得其初始条件并进行赋值。

优选的,用递归方法获得其初始条件并进行赋值方法包括:初始化关联FMU,判断初始化关联FMU与初始条件关联的参数是否为0或null;若否,则获取初始值初始化该FMU;若是,则向前查找与此关联FMU的下一个FMU,重复执行初始化关联FMU操作,直至初始化关联FMU与初始条件关联的参数不为0或null。

第二方面,本发明实施例提出一种基于FMI的多源异构模型联合仿真装置,包括:

部署模块,本地计算机部署本地FMU模型库,远程服务器部署远程FMU模型库;

FMU模型库生成模块,本地计算机通过代理服务器从远程服务器上获取远程FMU,将所述获取的远程FMU与本地FMU模型库一起构成可用FMU模型库;

解析模块,解析可用FMU模型库中的FMU得到解析信息,仿真软件根据所述解析信息生成FMU的图形化描述,在画布上生成FMU模型,获取多个FMU接口间的关联关系;

实例化模块,调用FMI的实例化函数,对FMU进行实例化,得到FMU实例;

实例模块,初始化FMU实例;

解算模块,获取最小仿真步长,以所述最小仿真步长对每个FMU进行单步解算;

仿真模块,如果变量T大于等于某FMU模型的仿真结束时间,调用该FMU的释放实例函数释放该FMU实例,直到所有FMU实例均被释放,仿真结束;

其中,变量T的初值为0,每执行一个最小仿真步长Δtmin,均将其累加到T变量中。

第三方面,本发明实施例提出一种电子设备,包括存储器、处理器及存储在所述存储器上并可由所述处理器执行的计算机程序,所述处理器在执行所述计算机程序时实现上述任意一项所述的方法。

第四方面,本发明实施例提出一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行上述任一项所述的方法。

本发明实施例提出了一种基于FMI的多源异构模型联合仿真方法、装置、设备及介质,已解决现有技术中存在的不能远程协同仿真、仿真结果还原度不高的问题。与现有技术相比,本发明实施例的有益结果为:

在多FMU系统仿真时,能够对各种来源的FMU进行解析,借助本发明的多源异构模型协同仿真数据传输算法,完成初始条件设置与FMU间的数据传输,且当多个FMU具有大小不等仿真步长以及不同的仿真开始和结束时间时,系统均能正常、正确的完成仿真实验。对比FMU联合仿真结果与模型原开发软件的仿真结果发现,仿真的平均误差在0.1%以内,充分体现了该发明方法的有效性。

附图说明

为了更清楚地说明本发明

具体实施方式

或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例的流程图;

图2为本发明实施例的FMU单步解算示意图;

图3为本发明实施例的电子设备的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行清楚、完整的描述。显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施例,都属于本发明所保护的范围。

参照图1,本发明实施例的基于FMI的多源异构模型联合仿真方法的具体实现步骤如下:

步骤S100,本地计算机部署本地FMU模型库,远程服务器部署远程FMU模型库。

具体的,FMU(Functional Mock-up Unit,功能模型单元)模型库是指在不同专业软件中搭建的数学模型或工业模型,基于FMI2.0标准形成多个.fmu文件的集合。由于FMU模型库中的模型均遵循一个接口标准,因此能够实现不同专业软件中形成的FMU模型直接复用,快速完成系统集成仿真。本地FMU模型库和远程FMU模型库可以根据用户需求在本地计算机和远程服务器上灵活部署。

步骤S200,本地计算机通过代理服务器从远程服务器上获取远程FMU,将所述获取的远程FMU与本地FMU模型库一起构成可用FMU模型库。

具体的,启动本地计算机的代理服务器,所述代理服务器根据远程服务器的IP地址和RPC(Remote Procedure Call,远程过程调用)端口获取可用FMU的信息和位置,代理服务器根据所述可用FMU的信息和位置获取远程FMU,将所述获取的远程FMU与本地FMU模型库一起构成可用FMU模型库。

优选的,代理服务器通过一组RPC可以获得一个或多个FMU。

优选的,代理服务器通过HTTP(Hyper Text Transfer Protocol,超文本传输协议)周期性发送心跳信号,定期更新可用FMU列表,并确定远程服务器处于联机状态。

步骤S300,解析可用FMU模型库中的FMU得到解析信息,仿真软件根据所述解析信息生成FMU的图形化描述,在画布上生成FMU模型,获取多个FMU接口间的关联关系。由于fmu模型均是以.fmu文件的方式进行存储,直接通过软件程序调用的方式去访问的话既不直观,效率又低,因此本发明实施例通过读取并解析.fmu文件中的xml文件获得每个模型的连接接口、参数、图标信息,以可视图形的方式对fmu模型进行呈现,并通过在图形画布上拖拽连线的方式展现不同fmu模型之间的连接与数据流转关系,使得联合仿真实验既直观又简单。

具体的,通过解析FMU中的.xml描述文件,可以获得FMU解析信息,所述解析信息包括FMU的唯一标识码、模型变量、变量类型、仿真步长、仿真起始时间、仿真结束时间、容差、仿真状态、仿真状态量等信息。

优选的,仿真软件根据解析信息生成FMU的图形化描述后,通过拖拽在画布上生成FMU模型,并以连线的的方式表明多个FMU接口间的关联关系。

步骤S400,调用FMI的实例化函数,对FMU进行实例化,得到FMU实例。

其中,获取用户在仿真软件界面设置的模型参数信息,将所述模型参数信息赋值给对应的FMU实例。

步骤S500,初始化FMU实例。

具体的,初始化FMU实例的步骤包括:遍历所有的FMU实例,判断FMU实例是否存在需要初始化条件的接口,若不存在,则直接进入步骤S600;若存在需要初始化条件的接口,判断该接口是否与其他FMU关联,若接口与其他FMU不关联,则进入步骤S600,若接口与其他FMU关联,则用递归方法获得其初始条件并进行赋值。

其中,用递归方法获得其初始条件并进行赋值方法包括:初始化关联FMU,判断初始化关联FMU与初始条件关联的参数是否为0或null;若否,则获取初始值初始化该FMU;若是,则向前查找与此关联FMU的下一个FMU,重复执行初始化关联FMU操作,直至初始化关联FMU与初始条件关联的参数不为0或null。

步骤S600,获取最小仿真步长,以所述最小仿真步长对每个FMU进行单步解算。

具体的,获取构成系统的所有FMU的仿真步长,找到的最小步长Δtmin即为所述最小仿真步长。

具体的,以所述最小仿真步长对每个FMU进行单步解算时,先定义初值为0的变量T,每执行一个最小仿真步长Δtmin,均将其累加到T变量中;如果T大于等于某个FMU的仿真开始时间,则执行该FMU的单步解算函数;如果T大于等于某一FMU第N步的仿真时长,即N*Δt,则执行该FMU的单步解算函数。

具体的,在每个FMU执行单步解算的同时,通过获取其与其他FMU的关联关系对相关进行输入、输出接口的赋值与取值。参照图2,根据多fmu模型之间的连线关系,在每一个仿真步长Δtmin对每一个fmu进行赋值与取值,取到fmu1模型在T时刻的输出y1,并将其赋值给FMU2在T时刻的u1,获取到FMU2在T时刻的y1,然后将FMU1在T时刻的y1赋值给FMU3的u1,同时将FMU2在T时刻的y1赋值给FMU3的u2,从而得到FMU3在T时刻的y1

步骤S700,如果变量T大于等于某FMU模型的仿真结束时间,调用该FMU的释放实例函数释放该FMU实例,直到所有FMU实例均被释放,仿真结束;其中,变量T的初值为0,每执行一个最小仿真步长Δtmin,均将其累加到T变量中。

本发明实施例基于FMI标准,采用FMU-proxy框架完成对多源异构FMU文件的解析,并允许用户从任何平台以几乎任何语言完成远程或者本地的访问和调用,进而将FMU模型以图形化的方式展示出来,用户以拖拽和创建链接线的方式搭建多FMU联合仿真系统,之后利用FMU间数据传输算法完成FMU的实例化、初始化配置和单步仿真的数据流转,从而完成对多FMU联合构成的系统仿真。

与上述任意实施例方法相对应的,本发明实施例另一方面提出一种基于FMI的多源异构模型联合仿真装置,包括:

部署模块,本地计算机部署本地FMU模型库,远程服务器部署远程FMU模型库;

FMU模型库生成模块,本地计算机通过代理服务器从远程服务器上获取远程FMU,将所述获取的远程FMU与本地FMU模型库一起构成可用FMU模型库;

解析模块,解析可用FMU模型库中的FMU得到解析信息,仿真软件根据所述解析信息生成FMU的图形化描述,在画布上生成FMU模型,获取多个FMU接口间的关联关系;

实例化模块,调用FMI的实例化函数,对FMU进行实例化,得到FMU实例;

实例模块,初始化FMU实例;

解算模块,获取最小仿真步长,以所述最小仿真步长对每个FMU进行单步解算;

仿真模块,如果变量T大于等于某FMU模型的仿真结束时间,调用该FMU的释放实例函数释放该FMU实例,直到所有FMU实例均被释放,仿真结束;

其中,变量T的初值为0,每执行一个最小仿真步长Δtmin,均将其累加到T变量中。

与上述任意实施例方法相对应的,本公开还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的方法。

图3示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。

处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。

存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。

输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入/输出模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。

通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。

总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。

需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。

上述实施例的电子设备用于实现前述任一实施例中相应的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。

基于同一发明构思,与上述任意实施例方法相对应的,本公开还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的方法。

本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。

上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的方法,并且具有相应的方法实施例的有益效果,在此不再赘述。

应该理解的是,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:面向超算应用的算例自动部署方法及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!