技术新讯 > 计算推算,计数设备的制造及其应用技术 > 用于协同仿真的方法、计算机系统与流程  >  正文

用于协同仿真的方法、计算机系统与流程

  • 国知局
  • 2024-12-26 16:08:00

本发明涉及一种用于通过耦合多于一个仿真模型来通过协同仿真来仿真进程的计算机实现的方法,该仿真模型处理子系统为仿真的组件,该方法包括:-一些仿真模型使用其他仿真模型的输出作为输入,-通过协同仿真主机控制仿真模型的协同仿真步长,-增强型仿真模型,其是包括基于功能模型接口标准的用于模型交换的功能模型单元的仿真模型。此外,本发明涉及一种准备用于执行该方法的计算机系统。

背景技术:

1、随着工业产品的复杂性不断增加,它们的设计涉及分析越来越复杂的问题和大规模多域仿真。

2、在本发明的背景下,仿真工具是用于对系统或进程的行为进行建模和仿真的软件程序。仿真工具通常提供图形用户接口,其允许用户定义仿真的参数、创建系统的模型,以及指定仿真的输入和输出。

3、每个域的物理学通常需要不同的仿真参数、时间步长和求解器设置。虽然多域仿真工具可以带来解决方案,但是工业挑战经常通过使用协同仿真环境处理各种仿真工具中开发的异构模型和数据并以它们合适的求解器为目标来解决。联合仿真,也称为协同仿真,是计算机仿真中使用的一种技术,其中多个仿真模型同时运行并彼此交互。这允许对涉及多个交互组件的复杂系统进行更全面和准确的仿真。在联合仿真中,每个模型通常在单独的软件平台上执行,该软件平台可以是不同的编程语言或仿真工具。这些模型通过接口连接,接口使得能够在模型之间交换数据和控制信号。这样,每个模型可以使用其他模型的输出作为输入,并且仿真可以以协调的方式进行。在包括工程学、物理学和计算机科学的各种领域中使用联合仿真来仿真和分析复杂系统,诸如电网、汽车系统和化学进程。由于它考虑了不同组件之间的交互,允许在不同条件下对系统的行为进行更准确和逼真的仿真。通过耦合两个或多个仿真进程来创建协同仿真环境,每个仿真进程用其自己的求解器来仿真模型。

4、在协同仿真中使用的仿真模型可以源于同构仿真器或异构仿真器(多厂商环境或多仿真类型环境,例如3d/1d仿真)。虽然协同仿真已经被使用了数十年,但是耦合相同仿真环境的若干实例的专有实现方式有助于使方法正式化,但是耦合异构环境、特别是来自多个仿真工具供应商的异构环境一直是一个挑战。使用异构仿真工具的协同仿真可以暗示每个仿真环境的专用接口块的实现,或者在仿真环境中标准的或专有的专用工作模式和接口的可用性。

5、这种额外的工作是乏味的,消耗大量的工作时间,降低计算速度,可能降低准确性并且易于出错。此外,这些自定义的接口使协作复杂化,或者至少需要勤奋地编制文档。

6、在此背景下,所谓的fmi(functional mock-up interface,功能模型接口)标准是用于在模型交换和协同仿真的背景下定义和使用fmu(functional mock-up unit,功能模型单元)的一组规则和惯例。fmu是置于存档文件中的一种可执行模型,其接口符合fmi标准。fmi合作开发和推广了fmi标准,该标准是用于动态模型的模型交换和协同仿真的开放标准,允许模型在不同的仿真工具之间被共享。fmi标准使得能够在不同的仿真工具之间/在仿真工具中共享和执行模型。它定义了用于交换模型的标准文件格式(功能模型单元或fmu)、用于连接仿真工具的标准接口(fmi api)以及一组标准的仿真参数和数据交换格式。fmi标准在工业和学术界被广泛采用,并得到许多仿真工具和软件供应商的支持。fmi提供标准化接口,用于在不同的仿真工具之间交换模型,从而允许模型被重复使用并集成到更大的系统中。fmi定义了两种类型的fmu:用于模型交换的fmu(fmu-me)和用于协同仿真的fmu(fmu-cs)。

7、fmu-me被用于在支持模型交换接口标准的不同仿真环境之间交换模型,从而允许模型被重复使用并集成到更大的系统中。另一方面,fmu-cs被用于协同仿真,其中多个仿真工具可以一起用于仿真复杂系统。用于协同仿真的fmu(fmu-cs)是导出的仿真进程,包括其模型和求解器,或者是用于工具耦合的包装代码。在此背景下,用于工具耦合的包装代码是通过提供用于通信和数据交换的接口而使得不同的仿真工具(一个仿真工具可被用于模型流体动力学,而另一个可被用于模型热传递)能够在多物理场仿真中一起工作的一种软件。

8、仿真工具可以导入fmu(使用所提供的特征)或导出fmu(提供特征)。

9、基于包括在耦合仿真工具中的fmi标准的现有技术是基于协同仿真接口变体(fmu-cs),并且在工具耦合场景中或者在描述为分布式协同仿真基础设施的派生中进行描述。

10、通常,协同仿真技术涉及使用所谓的协同仿真主算法(ma)或控制在所连接的从模型中如何推进时间的主工具。这种时间处理在fmi标准的接口变体中不同。ma可以是专用的独立算法,或者是经由协同仿真接口导入仿真模型的主工具的“常规”仿真算法。

11、控制时间推进的ma或其远程应用服务导入fmu进行协同仿真。被耦合的第二工具在从模式下工作,这意味着它被请求通过接口使用其本地求解器,以在给定的时间间隔内将其模型的方程使用在步骤开始时间有效的给定输入数据进行积分,并反馈对步骤结束时间有效的输出数据(“dostep”语义)。第二工具提供将由主工具导入的fmu-cs。

12、在协同仿真团体中,cosimate是一种已知的工具。来自chiastek inc公司的cosimate是基于要添加到每个模型的自定义i/o端口块库的解决方案。这些端口处理与在单独协同仿真控制进程中运行的路由器算法的通信。

13、虽然cosimate声称有导入fmu-me模型的能力,但是它不提供将由要耦合的仿真工具导入的这种模型。它们的耦合技术需要为每个耦合的仿真环境困难地开发和昂贵地维护专用耦合组件。

14、从camusbenjamin等人:“co-simulation of fmus and distribu tedapplications with simgrid(fmu的协同仿真及具有simgrid的分布式应用)”,2018acmsigsim高级离散仿真原理会议纪要,2018年5月14日,第145-156页,xp093102210,纽约,ny,usa,001:10.1145/3200921.3200932,isbn:978-1-4503-5092-1,url:https://dl.acm.org/doi/pdf/10.1145/3200921.3200932中已知同步采样系统,通过组合事件发生检查的日期来控制步长,以找到达到最早日期的最大步长;即最早采样时间。在该出版物中,采样日期的间隔是由用户预先确定而不是自动的。步长最终是经由所谓的“内部事件”通知的采样日期的结果。

15、本发明的一个目的是提供一种标准的基本方法,用于比传统工具更省力地耦合普通的仿真工具以形成协同仿真环境。

技术实现思路

1、本发明的目的通过独立权利要求来实现。从属权利要求描述本发明的有利改进和修改。

2、更具体地,本发明提出一种开头提到的类型的方法,其包括以下附加步骤:

3、-经由增强型仿真模型的用于模型交换的功能模型单元,经由进程间通信接口,将增强型仿真模型的协同仿真步长从协同仿真主机传递到相应的增强型仿真模型,

4、-协同仿真主机经由进程间通信接口控制协同仿真步长,使用dostep语义指令寻址用于模型交换的功能模型单元,

5、-用于模型交换的功能模型单元通过由从进程间通信接口接收的dostep语义指令发起的向增强型仿真模型通知事件来触发增强型仿真模型的事件处理调用,使得协同仿真主机通过使用模型交换事件来控制或同步增强型仿真模型执行。

6、该方法的一些关键方面在于,主算法通过对用于模型交换的功能模型单元执行dostep语义请求来驱动协同仿真时间步长推进,从而控制协同仿真步长。此外,用于模型交换的功能模型单元通过同步由仿真环境调用的模型交换函数执行,使用模型交换事件以及set/get函数的实现来实现该语义。主算法因此间接地控制仿真环境,因为在模型交换接口上没有直接的dostep语义函数调用。

7、优选实施方案提供了协同仿真主机经由进程间通信接口控制协同仿真步长,使用dostep语义指令寻址用于模型交换的功能模型单元,使得用于模型交换的功能模型单元通过向增强型仿真模型通知事件来触发增强型仿真模型的事件处理调用是由从进程间通信接口接收的dostep语义指令发起的。

8、在本发明的背景下,dostep语义是用于将模型的仿真时间推进一个时间步长的方法,该时间步长是全局仿真时间范围的一部分。dostep语义是定义仿真模型应该如何基于其接收的输入和经过的时间更新其内部状态的标准化方式。在联合仿真中,dostep语义可以用于确保仿真中的所有模型以协调和同步的方式进行。每个模型都要实现基于其接收的输入和当前仿真时间更新其内部状态并产生可以由其他模型使用的输出的dostep方法。dostep语义是功能模型接口标准的一部分。

9、dostep方法通常采用单个自变量,其是时间步长持续时间,并返回一个状态代码,指示仿真是否已经完成或需要继续。该方法还可以用于处理在仿真期间可能发生的错误或异常。

10、在协同仿真中,每个fmu(功能模型单元)负责将其自己的仿真推进一定时间步长。主算法调用“dostep”函数,协调不同fmu之间的数据的交换。该“dostep”函数在此采用两个自变量:当前仿真时间和时间步长。然后,fmu将其仿真推进指定的时间步长,并保留新的仿真时间和输出变量。

11、这里是可以如何使用“dostep”函数在协同仿真中推进仿真的示例:

12、

13、在该示例中,仿真以0.1的时间步长推进,直到达到10.0的结束时间。以当前时间、时间步长和“fmi2true”标签在每个fmu上调用“dostep”函数,这表示不会重新进行先前步骤,并且fmu可以将先前步骤结果视为最终步骤。然后在主算法中在fmu之间交换输出变量。

14、接口是定义不同软件组件或系统可以如何彼此交互的一组规则、协议和方法。这是两个或多个系统在不必知道彼此内部工作的细节的情况下通信和交换信息的方式。

15、api(应用编程接口)是用于构建软件应用的一组协议、例程和工具。它为不同的软件应用提供了彼此通信和交互的方式。api定义了不同的软件组件应该如何交互的一组规则,使得开发者更容易通过提供可容易地集成到其代码中的预构建功能性来构建复杂的应用。api可以用于从不同的源访问数据、服务和功能,源包括web应用、数据库和其他软件系统。

16、在fmi(功能模型接口)的背景下,“事件”是指在仿真中发起改变的触发器或信号。事件的通知可以用于对影响被仿真系统的外部刺激进行建模,诸如边界条件或输入信号的改变。事件也可以用于对被仿真系统内发生的内部改变进行建模,诸如状态转换或参数值的改变。在fmi中,事件被定义为时间上的离散点,并且它们的发生导致仿真从一种状态转换到另一种状态。事件可以由仿真本身或由外部源触发。它们在实现动态系统的复杂仿真方面具有重要作用,动态系统响应于各种输入和条件随时间发生改变。

17、已知有两种类型的事件:内部事件和外部事件。

18、1.内部事件:内部事件是在fmu(功能模型单元)中在特定时间点发生的事件。内部事件用于对系统状态的改变进行建模,诸如变量值的改变或状态转换。在fmi(功能模型接口)中,存在由fmu以函数调用返回值的形式向输入式仿真环境通知的时间事件和步进事件。还存在使用事件指示器通知的状态事件。这些事件指示器可以在fmu(功能模型单元)的模型描述文件中定义,并且可以由仿真通过fmi接口访问。事件指示器与取决于输入值和随时间变化的状态的连续表达式的变化相关,并且以允许输入式仿真环境精确定位它们发生的时刻的方式来定义。

19、2.外部事件:外部事件是对影响被仿真系统的外部刺激进行建模的事件,诸如参数或输入信号的改变。这种类型的事件由使用专有信令机制的输入式仿真环境接收,并触发仿真环境中的事件处理程序,从而引起fmi上的专用函数调用。

20、两种类型的事件在实现动态系统的复杂仿真方面具有重要作用。通过使用事件,fmi允许对经受外部刺激和随时间的内部改变的系统进行建模,从而使得仿真更准确和逼真。它们都触发旨在同步fmu与输入式仿真环境之间的状态、输入、输出和参数值的事件处理程序。

21、根据本发明,时间步长的控制经由用于模型交换的功能模型单元(fmu-me)使用事件通知来完成,从而实现对增强型仿真模型的步长的间接控制。这种对增强型仿真模型的步长的控制是非常有效的。

22、本发明的优选实施方案提供了增强型仿真模型的事件处理调用包括以下各项中的至少一项:

23、-set函数调用(sfc),

24、-get函数调用(gfc)。

25、根据本发明的事件处理包括交换各种类型(实数、整数、字符串或布尔值等)的数据。通过向增强型仿真模型通知事件,调用增强型仿真模型的set和get函数,以在所通知的事件的仿真时间内交换增强型仿真模型的输入数据和输出数据。

26、此外,根据本发明,提供一种准备用于执行该方法的计算机系统。

27、更具体地,本发明涉及一种计算机系统,其包括:

28、-至少一个处理器,

29、-耦合到至少一个处理器的至少一个存储器,该存储器存储要由处理器执行的一组指令,其中该一组指令在由处理器执行时使系统执行根据本发明的步骤。该计算机系统可以是单个计算机或由诸如通过万维网或另一网络配置彼此连接的多个计算机组成的计算机系统。优选地,仿真可以分布在计算机系统中,使得在几个计算机、处理器之间分配计算工作。

本文地址:https://www.jishuxx.com/zhuanli/20241216/348294.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。