首页> 中国专利> 白盒与黑盒离散事件系统协同仿真的时序推进方法及装置

白盒与黑盒离散事件系统协同仿真的时序推进方法及装置

摘要

本公开提出一种白盒与黑盒离散事件系统协同仿真的时序推进方法及装置,属于协同仿真时序一致技术领域。其中,所述方法包括:根据离散事件系统中各白盒子系统的当前步长确定当前安全时间距离和所述各白盒子系统的当前仿真时间;根据所述当前安全时间距离和所述离散事件系统中各黑盒子系统的当前仿真时间,计算所述各黑盒子系统的当前安全仿真时间;根据所述各白盒子系统的当前仿真时间和所述各黑盒子系统的当前安全仿真时间,确定仿真中下一个推进的子系统;按照所述下一个推进的子系统的事件表推进仿真。本公开克服了对黑白盒模型协同仿真中乐观推进策略的不足,引入一种改进的时序推进方法,在尽量规避黑盒模型仿真回滚的情况下实现时序一致性。

著录项

  • 公开/公告号CN113806930A

    专利类型发明专利

  • 公开/公告日2021-12-17

    原文格式PDF

  • 申请/专利权人 清华大学;

    申请/专利号CN202111047135.X

  • 发明设计人 张和明;张文嘉;刘文正;

    申请日2021-09-08

  • 分类号G06F30/20(20200101);

  • 代理机构11201 北京清亦华知识产权代理事务所(普通合伙);

  • 代理人廖元秋

  • 地址 100084 北京市海淀区清华园1号

  • 入库时间 2023-06-19 13:45:04

说明书

技术领域

本公开属于协同仿真时序一致技术领域,特别提出一种白盒与黑盒离散事件系统协同仿真的时序推进方法及装置。

背景技术

随着工业4.0的到来,建模与仿真成为支撑复杂产品设计开发的重要手段。此外,信息物理系统(CPS)的概念进一步激发了研究人员将计算、网络和物理环境相结合,以实现大型工程系统的实时感知、动态控制和信息服务。事实上,一个大型工程系统通常由来自不同学科的异构模型组成。具有不同来源和复杂耦合关系的多学科模型导致集成建模和仿真的复杂性增加。而在互联集成过程中极为关键的一步,则是在仿真推进过程中不同系统之间的时序一致性维护。

从系统状态变化的方式来看,异构模型可分为连续系统与离散事件系统。对于仅包含连续系统的复杂产品模型,已经有许多较为成熟的时序推进算法,例如联合仿真步算法、收敛积分步算法等等;而对于仅包含离散事件系统的复杂产品模型,普遍应用的时序推进算法包含保守的全局时钟控制方法以及乐观的虚拟时钟管理方法,以上方法均可以在维持系统间时序一致性的前提下保证仿真精度。

但从另一个角度来看,由于认知水平的不同,异构模型可以分为白盒模型、灰盒模型和黑盒模型。白盒模型是基于先验知识的模型,通常涉及一组确定性函数;而黑盒模型是从数据中获得并建立在统计信息基础上的模型。由于内部特征不同,这些模型在进行模型集成时也需要区别对待,仅仅简单地将它们归类为连续或离散是不合理的。然而研究人员很少考虑这个问题,缺乏在这种模式下的统一集成框架。随着机器学习的普及,数据驱动的建模将变得越来越普遍,为白盒与黑盒模型的协同仿真提出一个可行的集成框架是非常有必要的。同时,如何设计一种包容白盒与黑盒模型特性的合理推进方式也是值得探究的问题。

发明内容

本公开针对白盒与黑盒离散事件系统的协同仿真问题,在充分考虑白盒与黑盒模型特性的情况下,提出一种白盒与黑盒离散事件系统协同仿真的时序推进方法及装置。本公开克服了对于黑白盒模型协同仿真中乐观推进策略的不足,引入一种改进的时序推进方法,以在尽量规避黑盒模型仿真回滚的情况下实现时序一致性。其具体步骤如下:

本公开第一方面实施例提出一种白盒与黑盒离散事件系统协同仿真的时序推进方法,包括:

根据离散事件系统中白盒子系统的当前步长确定当前安全时间距离和所述白盒子系统的当前仿真时间;

根据所述当前安全时间距离和所述离散事件系统中黑盒子系统的当前仿真时间,计算所述黑盒子系统的当前安全仿真时间;

根据所述白盒子系统的当前仿真时间和所述黑盒子系统的当前安全仿真时间,确定仿真中下一个推进的子系统;

按照所述下一个推进的子系统的事件表推进仿真。

在本公开的一个具体实施例中,所述白盒子系统的当前仿真时间的初始值等于所述白盒子系统按照对应事件表推进的第一步的步长;所述黑盒子系统的当前仿真时间的初始值为0。

在本公开的一个具体实施例中,所述当前安全时间距离为所述白盒子系统的当前步长的最大值。

在本公开的一个具体实施例中,所述黑盒子系统的当前安全仿真时间为所述黑盒子系统的当前仿真时间与所述当前安全仿真距离之和。

在本公开的一个具体实施例中,所述根据所述白盒子系统的当前仿真时间和所述黑盒子系统的当前安全仿真时间,确定仿真中下一个推进的子系统,具体方法为:

将所述白盒子系统的当前仿真时间和所述黑盒子系统的当前安全仿真时间构成时间序列,从所述时间序列中选取最小值对应的子系统即为所述仿真中下一个推进的子系统。

在本公开的一个具体实施例中,所述按照所述下一个推进的子系统的事件表推进仿真,包括:

按照所述下一个推进的子系统对应的事件表向前推进一步,更新所述下一个推进的子系统的当前步长;其中,若所述下一个推进的子系统为黑盒子系统,则根据所述当前步长更新所述黑盒子系统的当前仿真时间,根据所述当前仿真时间更新所述黑盒子系统的当前安全仿真时间;若所述下一个推进的子系统为白盒子系统,则根据所述当前步长更新所述白盒子系统的当前仿真时间和所述当前安全仿真距离,根据所述当前安全仿真距离更新每个黑盒子系统的当前安全仿真时间。

在本公开的一个具体实施例中,在所述按照所述下一个推进的子系统的事件表推进仿真之前,还包括:

对所述下一个推进的子系统的当前仿真时间进行判定:若所述当前仿真时间等于仿真停止时间,则仿真结束。

本公开第二方面实施例提出一种白盒与黑盒离散事件系统协同仿真的时序推进装置,包括:

白盒子系统时间确定模块,用于根据离散事件系统中各白盒子系统的当前步长确定当前安全时间距离和所述各白盒子系统的当前仿真时间;

黑盒子系统时间确定模块,用于根据所述当前安全时间距离和所述离散事件系统中各黑盒子系统的当前仿真时间,计算所述各黑盒子系统的当前安全仿真时间;

子系统推进确定模块,用于根据所述各白盒子系统的当前仿真时间和所述各黑盒子系统的当前安全仿真时间,确定仿真中下一个推进的子系统;

仿真推进模块,用于按照所述下一个推进的子系统的事件表推进仿真。

本公开第三方面实施例提出一种电子设备,包括:

至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;

其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行上述一种白盒与黑盒离散事件系统协同仿真的时序推进方法。

本公开第四方面实施例提出一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行上述一种白盒与黑盒离散事件系统协同仿真的时序推进方法。

本公开的特点及有益效果:

本公开是针对白盒模型与黑盒模型协同仿真的特定场景下对乐观时序推进策略的一种改进。相较原来的传统乐观时序推进策略,通过引入安全时间距离,使得所有黑盒子系统落后白盒子系统一步距离,为白盒模型进行仿真回滚提供了空间,极大减少了传统方法中“牵一发而动全身”的情况,从而也避免了许多黑盒模型进行仿真回滚。本公开主要针对非刚性系统的协同仿真,在兼顾仿真序列管理的同时还可以防止死锁的产生。

附图说明

图1为本公开实施例的一种白盒与黑盒离散事件系统协同仿真的时序推进方法的流程图。

图2为本公开一个具体示例中的车辆系统集成示意图。

具体实施方式

本公开提出一种白盒与黑盒离散事件系统协同仿真的时序推进方法及装置,下面结合附图和具体实施例对本公开进一步详细说明如下。

在本公开中,白盒模型是指基于基本原理的模型,是根据不同学科的专业知识构建的,通常包含一组确定性函数,如常微分方程(ODE)、微分代数方程(DAE)等。因此,白盒模型的构建参数或系统状态通常具有特定的物理意义。

与白盒模型不同,黑盒模型完全建立在数据之上,不需要任何严格的科学定理。黑盒模型倾向于使用数据科学技术来拟合或模仿输入和输出之间的关系。对于不完全了解内部机制的系统,这是一种有用的建模方法,但它需要大量数据支持。由于这些黑盒模型中的系统状态通常包含数据处理过程中的一些计算结果,因此黑盒模型中的状态一般不具有物理意义。

异构模型进行协同仿真的基础是代理模型的构建。每个模型都需要一个代理模型,通过代理模型在集成环境中与其他模型进行交互。由于这两者模型特性的不同,在构建代理模型时也有所不同。对于白盒模型,其所有参数与系统状态都是可读的;而对于黑盒模型,其参数与状态一般是不可读的。这种特性造成了两种模型在仿真回滚方面的差异。仿真回滚是在乐观的协同仿真时序推进方法中需要用到的使仿真进程退回过去状态的方法。由于回滚需要记录与访问过去状态,因此白盒模型的代理模型支持仿真回滚,而黑盒模型的代理模型不支持仿真回滚,进而应当对包含仿真回滚的乐观推进策略进行修正。

本公开第一方面实施例提出一种白盒与黑盒离散事件系统协同仿真的时序推进方法,整体流程如图1所示,包括以下步骤:

1)选取待仿真的复杂产品模型,该复杂产品模型由离散事件系统(S

其中,所述离散事件系统共包含n个子系统,每个子系统S

2)设置该复杂产品模型的仿真停止时间为t

3)对于每个当前仿真时间为t

4)对所有白盒子系统的当前仿真时间和所有黑盒子系统的当前安全仿真时间构成的序列(t

5)对于S

5-1)若S

5-2)若S

6)从更新后的时间序列(t

6-1)若t

6-2)若t

需要说明的是,每次选取出新的S

本公开通过定义一个安全时间距离的变量,使得所有黑盒子模型的步调慢于白盒子模型一个长度为安全时间距离的步长,使得白盒子模型可以在这段时间中自由进行回滚而不影响黑盒子系统。

本公开的一个示例为Simulink中搭建的自动驾驶场景下的车辆系统集成仿真。假设开发人员正在测试自动驾驶汽车在直线道路上平稳行驶时的性能。在这种情况下,对速度控制模型(白盒)、汽油消耗模型(白盒)和环境感知模型(黑盒)进行集成。其中环境感知模型将感知环境信息,例如道路和天气状况;速度控制模型会根据感知到的信息不断修改期望速度,并将实际行驶速度调整为预期值;汽油消耗模型将根据实时行驶速度计算汽油消耗,并推动燃烧动力发动机。本具体示例中模型封装与互连如图2所示。图中SpeedControl Model为速度控制模型,Gasoline Consuming Model为汽油消耗模型,PerceptualModel为环境感知模型,模型中的inBus,outBus,controlBus与stateBus对应其模型输入总线,模型输出总线,模型控制总线与模型状态总线。IndataBus与OutdataBus为集成系统输入输出数据总线,Integration Console为模型集成控制平台。

本公开一个具体实施例提出一种白盒与黑盒离散事件系统协同仿真的时序推进方法,包括以下步骤:

1)选取上述具体示例为待仿真的复杂产品模型,该复杂产品模型由离散事件系统(S

其中,所述离散事件系统共包含3个子系统,每个子系统S

2)设置该复杂产品模型的仿真停止时间为t

3)对于当前仿真时间为t

4)对时间序列(t

5)对于S

5-1)若S

5-2)若S

6)从更新后的时间序列(t

6-1)若t

6-2)若t

为达上述目的,本公开第二方面实施例提出一种白盒与黑盒离散事件系统协同仿真的时序推进装置,包括:

白盒子系统时间确定模块,用于根据离散事件系统中白盒子系统的当前步长确定当前安全时间距离和所述白盒子系统的当前仿真时间;

黑盒子系统时间确定模块,用于根据所述当前安全时间距离和所述离散事件系统中黑盒子系统的当前仿真时间,计算所述黑盒子系统的当前安全仿真时间;

子系统推进确定模块,用于根据所述白盒子系统的当前仿真时间和所述黑盒子系统的当前安全仿真时间,确定仿真中下一个推进的子系统;

仿真推进模块,用于按照所述下一个推进的子系统的事件表推进仿真。

为达上述目的,本公开第三方面实施例提出一种电子设备,包括:

至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;

其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被设置为用于执行上述一种白盒与黑盒离散事件系统协同仿真的时序推进方法。

为达上述目的,本公开第四方面实施例一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行一种白盒与黑盒离散事件系统协同仿真的时序推进方法。

需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。

上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备执行上述实施例的一种白盒与黑盒离散事件系统协同仿真的时序推进方法。

可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得程序,然后将其存储在计算机存储器中。

应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号