CN103959251A - 模拟执行方法、程序和系统 - Google Patents
模拟执行方法、程序和系统 Download PDFInfo
- Publication number
- CN103959251A CN103959251A CN201280059898.9A CN201280059898A CN103959251A CN 103959251 A CN103959251 A CN 103959251A CN 201280059898 A CN201280059898 A CN 201280059898A CN 103959251 A CN103959251 A CN 103959251A
- Authority
- CN
- China
- Prior art keywords
- logical process
- time delay
- logical
- time
- simulation system
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 220
- 238000004088 simulation Methods 0.000 title claims abstract description 77
- 230000008569 process Effects 0.000 claims abstract description 196
- 238000006073 displacement reaction Methods 0.000 claims description 87
- 238000012545 processing Methods 0.000 claims description 24
- 238000004891 communication Methods 0.000 claims description 13
- 230000005540 biological transmission Effects 0.000 abstract description 7
- 238000004364 calculation method Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 11
- 238000012360 testing method Methods 0.000 description 9
- 230000008878 coupling Effects 0.000 description 7
- 238000010168 coupling process Methods 0.000 description 7
- 238000005859 coupling reaction Methods 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000013508 migration Methods 0.000 description 4
- 241000196324 Embryophyta Species 0.000 description 3
- 230000015654 memory Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000001364 causal effect Effects 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000977 initiatory effect Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 206010000117 Abnormal behaviour Diseases 0.000 description 1
- 240000004859 Gamochaeta purpurea Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 230000002040 relaxant effect Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/261—Functional testing by simulating additional hardware, e.g. fault simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2117/00—Details relating to the type or aim of the circuit design
- G06F2117/08—HW-SW co-design, e.g. HW-SW partitioning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种在并行分立事件模拟方法中改善逻辑过程的并行执行的速度而不牺牲数据的更新定时的精度的技术。本发明的特征在于在开始整个模拟之前,接收比发送出现更长的时间延长的逻辑过程仅执行预定时间段的初始位移。所述初始位移优选地设置在用于接收的时间延迟和用于发送的时间延迟之间的差值的一半。仅被位移了预定时间段的初始位移的逻辑过程通过向另一个发送空消息而被执行操作,从而每个空消息在预定时间延迟后到达对等的逻辑过程,由此,逻辑过程的每一个在已经接收到首次提到的空消息的时刻进一步向对等的逻辑过程发送空消息。以这种方式,通过经由空消息执行同步而进行模拟。
Description
技术领域
本发明涉及一种用于执行机动车控制系统等的模拟的技术。
背景技术
近来,具有多个处理器的所谓的多处理器系统已经在科学计算、模拟等领域中使用。同时,在其发展仅在近来已经被特别促进的模拟领域中,存在用于诸如机器人、机动车和飞机的机电一体化产品的工厂(plant)的模拟软件。利用电子组件和软件技术的发展的益处,通过使用像神经网络、无线LAN等那样铺设的线缆连接来电子地控制机器人、机动车和飞机等的大部分零件。
虽然这些在本质上是机电一体化装置,但是它们也包含大量的控制软件。因此,这样的产品的开发已经要求花费长的时间段、巨大的成本和大量的人力以开发控制程序并测试该程序。
作为用于这样的测试的传统技术,存在HILS(硬件在环模拟)。特别的,用于测试机动车中的所有电子控制单元(ECU)的环境被称为全机动车HILS。在全机动车HILS中,通过将真实的ECU连接到仿真发动机、变速机构等的专用硬件装置,根据预定情形在实验室中进行测试。来自ECU的输出被输入到监控计算机,并且在显示器上进一步显示以允许负责测试的人观看显示,以便查看是否存在任何异常行为。
然而,在HILS中使用专用硬件装置,并且必须物理地连线该装置和真实的ECU。因此,HILS涉及许多准备。而且,当通过将ECU替换为另一个来进行测试时,必须物理地重新连接该装置和ECU,需要更多的工作。而且,因为该测试使用真实ECU,所以花费实际时间来进行测试。因此,需要大量的时间来测试许多情形。另外,用于HILS的仿真的硬件装置通常很昂贵。
因此,近来已经提出了一种用于以软件来配置整个模拟而不使用这样昂贵的仿真硬件装置的技术。在该技术中,使用连续的模拟来用于工厂部件,诸如发动机或传送装置,并且使用状态图或实际软件代码来用于控制器部件件。根据用于控制器部件的模拟方法,前者被称为MIL(模型在环)模拟,并且后者被称为SIL(软件在环)模拟。根据MIL或SIL,可以在没有任何ECU的硬件的情况下进行测试。
作为用于支持这样的MIL/SIL的配置的系统,例如,存在模拟建模系统——可从Mathworks公司获得的MATLAB(R)/Simulink(R)。在使用MATLAB(R)/Simulink(R)的情况下,通过图形界面在屏幕上布置功能块,并且指定处理流程,由此使得能够建立模拟程序。在此,功能块包括用于调用基本运算的块的类型,所述基本运算诸如加法和乘法、积分、条件分支和另外的软件代码,并且每一个块分别具有输入和/或输出。包括作为控制器的表现的软件块的模拟是SIL。
在下面的说明中,当这样的模拟的单元耦合在一起时,每一个模拟器被称为逻辑过程(process)。作为操作由多个逻辑过程构成的耦合的模拟系统的方法,已知并行的分立事件模拟。例如,非专利文件1公开了使用多个逻辑过程的并行分立事件模拟方法。根据该文章,示出仅需在每一个逻辑过程本地保存因果关系,以避免系统中的定时不一致,并且保证跨逻辑过程的事件因果关系的保存。因为不需要系统范围的同步处理,所以不需要同步开销。
图1是示出由多个逻辑过程构成的机动车模拟系统的配置的一部分的框图。图1中的系统具有CAN仿真器102、ECU仿真器104、发动机模拟器106、ECU仿真器108和变速器模拟器110,其中每一个是以软件实现的逻辑过程。在图1中,逻辑过程在交换消息以给出事件的通知的同时彼此合作地工作。
向每一个事件加上时间信息,并且这意味着在接收侧上的逻辑过程执行处理的模拟时间。在事件时间信息中,不允许设置比发送侧上的逻辑过程的模拟时间更早的时间。这是因为,不能请求过去时间的处理。如果部件通过网络互连,因为其间的传送被延迟,所以接收时间在值上应大于发送时间。在通过使用定时器功能等来执行处理的情况下,可以在设置定时器的时间(发送)和产生警告的时间(接收)之间提供时间差,或者如果接收侧允许一定量的延迟,则可以将所允许的范围设置为时间差。
关于在两个逻辑过程A和B之间的事件通信,将发送时间和接收时间之间的时间差分类为时间延迟,并且在图2中示意地示出了该时间差。
图2(1)是没有时间延迟的情况,示出其中A和B不能被并行地执行的强耦合结构。该情况不能被划分为不同的逻辑过程,并且因此需要作为单个模拟器执行计算。如果该结构允许一些误差并且每一个短的时间段并行地执行A和B,则它将是弱耦合模拟。
图2(2)示出从A至B的时间延迟LAB和从B至A的时间延迟LBA两者都不是零的情况。在该情况下,以其最大公约数的时间步长来执行同步处理,以使能甚至在并行操作中没有时间误差的耦合模拟。
图2(3)示出从A至B的时间延迟LAB不是0但是从B至A的时间延迟LBA实质上是0的情况。在该情况下,预期在从B至A的方向上更新数据的每一个时刻,A不能向前移动甚至一个步长,直到从B通知了事件。因此,两者没有选择只能交替地实现顺序运行,降低了执行速度。
在图2(3)的情况下,例如,逻辑过程A是ECU仿真器,并且逻辑过程B是工厂仿真器。图2(3)的情况也可以在下述意义上出现:甚至在ECU仿真器之间和在工厂模拟器之间立即执行数据传送,但是数据接收包含通信延迟。如果时间延迟不是0而是很小则类似的问题也可以产生。
因为图2(3)的情况经常在使用逻辑过程的并行分立事件模拟系统中出现,所以期望使能在图2(3)的情况下的并行执行的方法。
为了防止逻辑过程等待来自彼此的事件、并且因此引起死锁,已知使用空消息的技术。然而,当时间延迟是0时,不向空消息给出未来的时间,不引起死锁,但是不能实现并行执行。
非专利文件2提供了对于这样的问题的一种被称为ε-前瞻执行的技术,给出了一种解决方案。换句话说,ε-前瞻执行是假设存在尽可能接近0的时间延迟ε在图2(2)的系统中并行运行处理的方法。在该情况下,因为不精确的转换定时导致累积错误。为了提高精度,需要减小ε的值,但是当它出现时,减小执行速度,导致在精度和执行速度之间的折衷。
[现有技术参考文献]
[非专利文件]
[非专利文件1]
Alois Ferscha,Satish K.Tripathi,“Parallel and Distributed Simulationof Discrete Event Systems,”the University of Maryland Computer ScienceDepartment;CS-TR-3336,1998年10月15日。
[非专利文件2]
Vikas Jha,Rajive Bagrodia,“Simultaneous events and lookahead insimulation protocols,”Journal ACM Transactions on Modeling and ComputerSimulation,Volume10Issue3,2000年7月。
发明内容
[本发明要解决的问题]
本发明的目的是提供一种用于在使用逻辑过程的并行分立事件模拟系统中增大逻辑过程的并行运行速度而不牺牲数据更新定时的精度的技术。
[解决问题的手段]
已经做出本发明来解决上面的问题,其特征在于,在开始整个模拟之前,输入侧具有比输出侧更长的时间延迟的逻辑过程执行预定时间段的初始位移量。优选的是,将初始位移设置为输入时间延迟和输出时间延迟之间的差值的一半。
首先开始的逻辑过程(称为逻辑过程B)在初始位移的时间段已经过去时向对应的逻辑过程(称为逻辑过程A)发送空消息。另一方面,逻辑过程A在执行开始时也向逻辑过程B发送空消息。每一个空消息实时地立即到达,并且每一个逻辑过程在接收到空消息时进一步向对应的逻辑过程发送空消息。因此,存在通过经由空消息同步它们的模拟的进行。
通常,模拟系统包括许多逻辑过程。因此,基于一对逻辑过程对初始位移的决定是不够的,必须确定在彼此进行通信而没有矛盾的所有对的逻辑过程之间的相对位移量。因此,根据本发明的系统求解基于逻辑过程对之间的二进制关系而做出的用于初始位移差的联立方程。然后,在每一个逻辑过程中设置作为该计算的结果获得的初始位移的值。
此时,可能因为诸如方程的数量超过联立方程中的变量的数量的某种原因而不能求解所述联立方程。在这样的情况下,基于诸如逻辑过程之间的预定偏好的预处理减少方程的数量等,以获得解。
[本发明的益处]
本发明有益地提供了一种用于在并行分立事件模拟系统中增大逻辑过程的并行运行的速度而不牺牲数据更新定时的精度的技术。
附图说明
图1是示出由多个逻辑过程构成的模拟系统的框图;
图2是示出在逻辑过程之间的通信时间延迟的模式的图;
图3是硬件配置的框图;
图4是功能配置的框图;
图5是示出在由多个逻辑过程构成的模拟系统中的逻辑过程之间的时间延迟的图;
图6是示出由位移量计算模块执行的处理的流程图;
图7是示出由默认本地调度器执行的处理的流程图;
图8是示出没有初始位移的逻辑过程的操作的图;
图9是示出具有初始位移的逻辑过程的操作的图;
图10是示出没有初始位移的逻辑过程的操作的图;
图11是示出具有初始位移的逻辑过程的操作的图;
图12示出事件消息和空消息之间的关系;
图13示出关于三个逻辑过程的操作的在没有初始位移和存在初始位移之间的比较;
图14示出关于三个逻辑过程的操作的在没有初始位移和存在初始位移之间的比较;
图15示出在初始位移的各种情况下的操作之间的比较;并且
图16示出在初始位移的各种情况下的操作之间的比较。
具体实施方式
现在参考附图描述本发明的一个优选实施例的配置和处理。在下面的说明中,贯穿附图,通过相同的附图标号来表示相同的组件,除非另外说明。虽然下面将作为一个实施例描述该配置和处理,但是应当明白,本发明的技术范围不规定为限于该实施例。
首先,将参考图3来描述用于执行本发明的计算机的硬件。在图3中,多个CPU,即CPU1304a、CPU2304b、CPU3304c、…、CPUn304n连接到主机总线302。主存储器306也连接到主机总线302,以用于由CPU1304a、CPU2304b、CPU3304c、…、CPUn304n执行的算术处理。
另一方面,键盘310、鼠标312、显示器314和硬盘驱动器316连接到I/O总线308。I/O总线308通过I/O桥318连接到主机总线302。键盘310和鼠标312被人类操作员用来执行操作,诸如输入命令和在菜单上点击。显示器314用于显示菜单,该菜单在需要时被用来在GUI上操作根据本发明的程序。
IBM(R)系统X可以被用作适合于该目的的计算机系统的硬件。在该情况下,例如,CPU1304a、CPU2304b、CPU3304c、…、CPUn304n是Intel(R)Xeon(R),并且操作系统是Windows(R)Server2003。操作系统被存储在硬盘驱动器316中,并且在计算机系统启动时被从硬盘驱动器316读入到主存储器306内。
多处理器系统的使用不是执行本发明所必不可少的,而是期望使用多处理器系统以便向不同的处理器分配多个逻辑过程,并且并行地运行该过程。在此,因为多处理器系统总体是指使用具有能够独立地实现算术处理的处理器功能的多个内核的处理器的系统,所以应当明白,多处理器系统可以是多核单处理器系统、单核多处理器系统或多核多处理器系统。
注意,可用于执行本发明的计算机系统的硬件不限于IBM(R)System X。可以使用任何其他计算机系统,只要本发明的模拟程序可以在其上运行。操作系统也可以是任何操作系统,诸如Windows(R)XP、Windows(R)7、Linux(R)、Mac OS(R)等。而且,诸如具有操作系统AIX(TM)的IBM(R)SystemP的基于POWER(TM)6的计算机系统也可以用于模拟程序的高速运行。
如下面将参考图4描述的,在硬盘驱动器316中存储了下述部分:主程序402;模拟建模工具404,诸如MATLAB(R)/Simulink(R);模拟器模块(库)406,用于逐步的执行;连接信息文件408,其以XML来描述并且包括关于在逻辑过程之间的时间延迟、偏好等的信息;位移量计算模块410,用于计算模拟器模块406的初始位移量;以及本地调度器模块412。可以以诸如Java(R)、C、C++或C#的任何现有的编程语言来建立位移量计算模块410。用于编译和链接库406、本地调度器412等以产生可执行文件418的编译器/链接器416也存储在硬盘驱动器316中。
图4是根据本发明的实施例的功能框图。在图4中,主例程402是用于调用各种模块以根据本发明进行处理的程序,该程序优选地在显示器314上提供诸如GUI的界面,以利用键盘310和鼠标312的操作来执行处理。
优选的是,模拟建模工具404是但是不限于MATLAB(R)/Simulink(R)。也可以使用诸如Scilab/Scicos的任何其他模拟建模工具。
逐步执行模块的库406是由模拟建模工具404建立的代码,该代码优选地通过诸如MATLAB(R)/Simulink(R)中的Real-Time Workshop(R)的转换工具转换为诸如C或C++的源代码,并且通过编译器/链接器416转换为可执行文件418,以在由图3中所示的硬件配置、操作系统等实现的执行环境中执行可执行文件418的代码。
图1中所示的诸如CAN仿真器、ECU仿真器、引擎仿真器和变速器模拟器的模拟操作单元被称为逻辑过程。通常,一个逻辑过程由通过模拟建模工具404建立的多个功能块构成。
在具有图3中所示的多处理器系统的执行环境中,优选的是,每当可能时将一个逻辑过程分配到一个处理器或内核并且并行被执行。
逻辑过程由具有接收或发送消息的功能的本地调度器和用户定义的用于控制时间步长的计算的功能构成。在本地调度器中,在启动逻辑过程时初始位移量414可以由主程序402设置。
在本发明中,在每一个单独的逻辑过程的本地调度器412中设置所计算的给定初始位移量,以改善模拟的执行速度。下面将描述由本地调度器执行的处理的细节。
位移量计算模块410具有计算要通过使用连接信息的数据408在每一个单独的逻辑过程中设置的初始位移量414的功能,该连接信息包括在彼此通信的逻辑过程之间的相应的通信方向上的时间延迟和与逻辑过程之间的通信条件相关的偏好情况。位移量计算模块410基本执行处理,用于对于彼此通信的每对逻辑过程的线性方程,并且求解联立方程以计算要在每个逻辑过程中设置的位移量。下面将参考图6的流程图来描述该处理的细节。
图5图示了关于时间延迟的数据。假定存在逻辑过程A、B、C、D和E。在该情况下,在彼此通信的逻辑过程A和B之间,从逻辑过程A向逻辑过程B发送消息的时间延迟LAB和从逻辑过程B向逻辑过程A发送消息的时间延迟LBA以XML记录到连接信息文件408中作为时间延迟数据。在逻辑过程A和D之间、在逻辑过程B和C之间、在逻辑过程C和E之间以及在逻辑过程D和E之间进行类似的记录。
当在CAN和ECU之间出现这样的时间延迟时,这意味着在CAN处的接收延迟(等待直到数据大小的传送完成)。由ECU上的操作程序引起从ECU向工厂发送消息的延迟。在ECU上的程序使用定时器向工厂发送指令,并且该定时器的长度变为时间延迟。另一方面,从工厂到ECU的时间延迟是零。而且,发送彼此的改变可接受的时间对应于在工厂之间的时间延迟。
偏好数据例如用于描述能够在工厂之间被释放的耦合限制。能够被释放的耦合限制包括最小同步循环的值。当释放耦合限制时,因为进行调整以不超过最小同步循环,所以这不造成增大在整个系统中的累积误差。
主程序402通过本地调度器模块412在每一个逻辑过程中设置位移量414,并且指令逻辑过程运行。
接下来,将参考图6的流程图来描述由位移量计算模块410执行的处理。首先,将描述由位移量计算模块410计算的方程。如果SA表示逻辑过程A的初始位移量,SB表示逻辑过程B的初始位移量,LBA表示从逻辑过程B向逻辑过程A发送消息的时间延迟,并且LAB表示从逻辑过程A向逻辑过程B发送消息的时间延迟,则方程建立为SA-SB=(LBA-LAB)/2。类似地,当在彼此交换消息的逻辑过程中用公式表示SA至SZ时,获得下面的联立方程:
[数学式1]
…
SA=C
注意,最下面的方程SA=C表示选择SA作为用于计算初始位移量的临时基础。该基础在随后的处理中被校正为正确的基础。
如果上面的说明被一般化以将SA至Sz表示为S1至Sn并且将联立方程的右侧表示为b1至bm,则联立方程以矩阵表示如下:
[数学式2]
As=b
其中
s=[S1,S2,...,Sn]T
b=[b1,b2,...,bm]T
A:m×n(m≥n)
参见图6的流程图,位移量计算模块410在步骤602中确定联立方程的左侧的矩阵A的秩小于n。如果是这样,则不成功地结束处理。当秩小于n时,因为这意味着在逻辑过程之间的连接不足以至于在图5中的连接上出现逻辑过程的隔离的岛,所以耦合模拟的设计者容易进行校正。
如果矩阵A的秩是n或更大,则位移量计算模块410在步骤604中去除与在偏好414中包括的逻辑过程对应的低优先级方程,直到矩阵A的秩变为n。结果,获得方程A’s=b’。
在步骤606中,位移量计算模块410从s=A’-1b’确定位移量s。在该情况下,不必计算A’的逆矩阵,并且可以使用任何现有的方法作为计算机上的数值计算的技术,诸如高斯消去或高斯-赛德尔方法。
在步骤608中,位移量计算模块410通过诸如下面的方程的处理将初始位移量的最小值设置为零。
[数学式3]
在步骤610中,位移量计算模块410根据下面的公式重新调整在计算初始位移时未使用的时间延迟:
如果Lij>Lji+2(Sj-Si),则Lij:=Lji+2(Sj-Si),或者
如果否,则Lji:=Lij+2(Si-Sj)。
作为该调整的结果,如果即使Lij值的一个变为负的,则作为步骤612中的确定的结果,计算处理作为错误而结束(在此,Lij被转换为Lk)。在该情况下,要求耦合模拟的设计者执行诸如重新分配优先级的操作。
接下来,将参考图7的流程图来描述由本地调度器在每一个逻辑过程中执行的处理。在描述图7的流程图之前,下面给出所使用的时间的定义:
TC:当前本地时间
TS:初始位移
TO:队列中最老的时间
TL:到目的地的时间延迟
TE:模拟的结束时间
在图7中,本地调度器在步骤702中运行,直到t=TS。结果,TC变为TS。
在步骤704中,本地调度器发出消息(msg),直到t=TC+TL。
在步骤706中,本地调度器确定是否TE≤TC,并且如果是这样,则处理结束。
如果不是TE≤TC,则本地调度器在步骤708中获取最老的消息时间。
在步骤710中,本地调度器基于在t=TO的消息来进行更新。
在步骤712中,本地调度器运行直到t=TO。结果,TC变为TO。
在步骤714中,本地调度器发送消息,直到t=TC+TL,并且返回到步骤706。
接下来,将描述根据本发明的用于执行模拟的操作。首先,为了简化的目的,将描述仅基于两个逻辑过程的处理。
在本发明中,采取使用空消息的保守的同步技术来防止逻辑过程等待彼此的事件,并且因此引起死锁。该空消息表示仅包括时间戳的消息,其将与下面的事件消息相区别。
在上面的结构中,对于模拟进行下面的准备:
(1)用户使用模拟建模工具404来构建预定模型和用于逐步执行模型的模拟器。
(2)用户写入在模拟器之间的连接信息。该连接信息由模拟器的输出端口编号、目的地模拟器的输入端口编号、最小时间延迟和优先级构成。
(3)主程序402读取该连接信息以确定每一个模拟器的初始位移量。
(4)主程序402设置每一个本地调度器中的初始位移值和模拟结束时间,并且与每一个模拟器的逐步执行模块链接以产生线程执行模块。
(5)主程序402运行该线程执行模块,并且等待其完成。
在此,将如图8中所示在从逻辑过程A向逻辑过程B发送消息时包含时间延迟LAB>0并且从逻辑过程B向逻辑过程A发送消息的时间延迟为零时用于运行逻辑过程的操作作为示例。在现有技术中,逻辑过程A和逻辑过程B在模拟时间的开始时同时向彼此发送空消息,并且结果,根据在执行时间期间保持在每一个逻辑过程中的本地因果关系的需要,逻辑过程A和逻辑过程B如所示的顺序运行为B1→A1→B2→,使得不可能加速执行时间。
因此,根据本发明,执行逻辑过程B以做出数量为LAB/2的初始延迟,如图9中所示,以并行地运行逻辑过程A和逻辑过程B,并且这可以加速执行时间。在图9中,初始位移表示为B0。
在图10的示例中,因为从逻辑过程A向逻辑过程B发出消息的时间延迟LAB和从逻辑过程B向逻辑过程A发出消息的时间延迟LBA两者都不是0,所以可以并行地执行逻辑过程A和逻辑过程B。然而,如果LBA>LAB>0,则可以执行逻辑过程A以进行数量为(LBA-LAB)/2的时间延迟,如图11中所示,以进一步改善并行执行的性能,由此增大执行时间。在图11中,初始位移表示为A0。
图12A示出其中逻辑过程A和B沿着模拟时间向彼此发送事件的情形。然而,因为两者都不能预测在什么时间传递每一个事件,所以它们不能开始运行,并且因此被死锁。响应于此,如果两者以加到当前的模拟时间的最小时间延迟而向彼此发送空消息1202、1204、1206和1208,则两者可以进行如图12B中所示的处理,并且因此在预期时间接收每一个事件消息。
用于发送空消息和事件消息的规则如下:
(1)在每一个通信信道上增大每一个消息的时间戳。
(2)仅位于发送消息的逻辑过程附近的逻辑过程响应于该消息。
(3)紧邻在发送下一个空消息之前发送事件消息。
(4)不响应于每一个事件消息而发送空消息。
事件消息的时间戳被设置为晚于在事件消息之后立即发送的空消息的时间戳。这是因为空消息的时间戳是基于指定的时间延迟到达对应的逻辑过程的最早时间。这在图12中被显示为具有比空消息的斜率缓和的斜率的事件消息。
可以在多个逻辑过程之间以及在一对逻辑过程之间应用设置了本发明的处理位移的执行技术。图13示出其中该技术被应用到三个逻辑过程A、B和C的示例。
在这个示例中,如果LAB=100(以下,单位是ms)、LBA=0、LBC=300、LCB=350、LAC=200并且LCA=50,则操作图将如图13A中所示。
根据本发明,基于上述时间延迟数据来计算每一个逻辑过程的初始位移量。结果,确定逻辑过程A的初始位移量是SA=0,逻辑过程B的初始位移量是SB=50,并且逻辑过程C的初始位移量是SC=75。
因此,逻辑过程B以由附图标号1302指示的初始位移来运行,并且逻辑过程C以由附图标号1304指示的初始位移来运行。结果,发现与图13A的操作图相比,在图13B的操作图中改善了执行速度。
图14示出其中将所述技术应用到具有不同的时间延迟的三个逻辑过程A、B和C的示例。
在这个示例中,如果LAB=100、LBA=0、LBC=100、LCB=0、LAC=200并且LCA=0,则操作将如图14A中所示。
接下来,基于上述的时间延迟数据来计算每一个逻辑过程的初始位移量。结果,确定逻辑过程A的初始位移量是SA=0,逻辑过程B的初始位移量是SB=50,并且逻辑过程C的初始位移量是SC=100。
因此,逻辑过程B以由附图标号1402指示的初始位移来运行,并且逻辑过程C以由附图标号1404指示的初始位移来运行。结果,发现与图14A的操作图相比,在图14B的操作图中改善了执行速度。
接下来参见图15和图16,将描述在执行速度不同的两个逻辑过程之间的操作。在此,还将示出初始位移不是一半的情况。
图15示出逻辑过程A的执行速度大于逻辑过程B的执行速度。
图15A示出在没有初始位移的传统情况下的操作,并且图15B示出当初始位移是时间延迟差的一半时的操作。在图15B中,通过附图标号1502指示初始位移。
而且,图15C示出当初始位移大于时间延迟差的一半时的操作,并且图15D示出当初始位移小于时间延迟差的一半时的操作。在图15C中,通过附图标号1504指示初始位移,并且在图15D中,通过附图标号1506指示初始位移。
图16示出逻辑过程A的执行速度小于逻辑过程B的执行速度。
图16A示出在没有初始位移的传统情况下的操作,并且图16B示出当初始位移是时间延迟差的一半时的操作。在图16B中,通过附图标号1602指示初始位移。
而且,图16C示出当时间延迟大于时间延迟差的一半时的操作,并且图16D示出当时间延迟小于时间延迟差的一半时的操作。在图16C中,通过附图标号1604指示初始位移,并且在图16D中,通过附图标号1606指示初始位移。
这些表明,虽然初始位移是时间延迟差的一半的情况看起来最佳,但是初始位移超过时间延迟差的一半的情况和初始位移小于时间延迟差的一半的情况也可以获得模拟速度的改善的结果。
因此,将对此给出如下一些更多的考虑:当采用除了一半之外的位移率x时,A:B=x:(1-x)以及A:B=(1-x):x交错地出现作为模拟时间长度的比率。在此,如果逻辑过程A的速度被表示为VA,逻辑过程B的速度被表示为VB,并且关系是VB>VA,则联立不等式成立:x/VA>(1-x)/VB并且(1-x)/VA>VB。在求解该联立不等式时,如果x0采用小于0.5的值,则解将是x0<x<1-x0。因此,x=1/2总是落在范围内,只要存在任何解。当已知逻辑过程的执行速度时,可以正确地采用除了x=1/2的值,而当速度不确定时,x=1/2是最安全的解。这是为什么期望时间延迟差的一半的初始位移的原因。
换句话说,根据本发明,所述适当的初始位移是时间延迟差的一半。然而,适当的初始位移不限于此,并且,取决于在彼此通信的逻辑过程的执行速度之间的比率,可以选择比时间延迟差小的适当初始位移。
虽然上面结合两个或更多机动车模拟系统描述了本发明的特定实施例,但是本领域技术人员将明白,本发明不限于该特定实施例,并且可应用于普通电子机械的控制系统的模拟系统。
用于执行本发明的配置也不限于特定处理器的架构、操作系统等。
此外,以MATLAB(R)/Simulink(R)作为示例描述了上述实施例,但是不限于此。本领域内的技术人员将明白,本发明可应用于任何建模工具。
[附图标号的描述]
304a,304b,...,304n CPU
306 主存储器
308 硬盘驱动器
408 连接信息文件
410 位移量计算模块
Claims (20)
1.一种计算机实现的操作模拟系统的方法,所述模拟系统具有多个彼此通信以进行处理的逻辑过程,所述方法包括下述步骤:
在该步骤中,如果从给定的第一逻辑过程向与所述第一逻辑过程通信的第二逻辑过程发送消息的时间延迟是第一时间延迟,从所述第二逻辑过程向所述第一逻辑过程发送消息的时间延迟是第二时间延迟,并且第一时间延迟大于第二时间延迟,则在整个模拟开始之前,将所述第二逻辑过程执行小于所述第一时间延迟和所述第二时间延迟之间的差的预定初始位移量,以在计算机上并行地运行所述第一逻辑过程和所述第二逻辑过程。
2.根据权利要求1所述的操作模拟系统的方法,其中,所述预定初始位移是所述第一时间延迟和所述第二时间延迟之间的差的一半。
3.根据权利要求1所述的操作模拟系统的方法,进一步包括步骤:在以被移位了所述逻辑过程之间的初始位移量的定时周期性地发送空消息的同时,并行地运行所述逻辑过程。
4.根据权利要求1所述的操作模拟系统的方法,其中,所述第二时间延迟是零,并且所述第一时间延迟大于零。
5.根据权利要求4所述的操作模拟系统的方法,其中,所述第一逻辑过程是ECU仿真器,并且所述第二逻辑过程是工厂模拟器。
6.一种计算机实现的操作模拟系统的方法,所述模拟系统具有多个彼此通信以进行处理的逻辑过程,所述方法包括步骤:
基于在彼此通信的两个逻辑过程之间从一个向另一个的通信的时间延迟的值和从所述另一个向所述一个的通信的时间延迟的值之间的差值,确定在所述两个逻辑过程之间的相对位移量;
基于所述逻辑过程之间的通信关系,形成用于确定位移量的联立线性方程;并且
根据所述联立线性方程的解,对于每一个单独的逻辑过程设置初始位移以运行所述逻辑过程。
7.根据权利要求6所述的操作模拟系统的方法,其中,将所述相对位移量计算为从所述一个向所述另一个的通信的时间延迟的值和从所述另一个向所述一个的通信的时间延迟的值之间的差的一半。
8.根据权利要求6所述的操作模拟系统的方法,进一步包括步骤:当所述联立线性方程的解不确定时,减少方程的数量。
9.根据权利要求6所述的操作模拟系统的方法,其中,所述多个逻辑过程包括ECU仿真器和工厂模拟器。
10.根据权利要求6所述的操作模拟系统的方法,进一步包括步骤:在以被移位了所述逻辑过程之间的初始位移量的定时周期性地发送空消息的同时,并行地运行所述逻辑过程。
11.一种用于操作模拟系统的程序,所述模拟系统具有多个通过计算机处理彼此通信以进行处理的逻辑过程,所述程序使得所述模拟系统执行下述步骤:
基于在彼此通信的两个逻辑过程之间从一个向另一个的通信的时间延迟的值和从所述另一个向所述一个的通信的时间延迟的值之间的差值,确定在所述两个逻辑过程之间的相对位移量;
基于所述逻辑过程之间的通信关系,形成用于确定位移量的联立线性方程;并且
根据所述联立线性方程的解,对于每一个单独的逻辑过程设置初始位移以运行所述逻辑过程。
12.根据权利要求11所述的操作模拟系统的程序,其中,将所述相对位移量计算为从所述一个向所述另一个的通信的时间延迟的值和从所述另一个向所述一个的通信的时间延迟的值之间的差的一半。
13.根据权利要求11所述的操作模拟系统的程序,使得所述模拟系统进一步执行下述步骤:当所述联立线性方程的解不确定时,减少方程的数量。
14.根据权利要求11所述的操作模拟系统的程序,其中,所述多个逻辑过程包括ECU仿真器和工厂模拟器。
15.根据权利要求11所述的操作模拟系统的程序,使得所述模拟系统进一步执行下述步骤:在以被移位了所述逻辑过程之间的初始位移量的定时周期性地发送空消息的同时,并行地运行所述逻辑过程。
16.一种具有多个通过计算机处理彼此通信以进行处理的逻辑过程的模拟系统,所述系统包括下述部件:
通过该部件,如果从给定的第一逻辑过程向与所述第一逻辑过程通信的第二逻辑过程发送消息的时间延迟是第一时间延迟,从所述第二逻辑过程向所述第一逻辑过程发送消息的时间延迟是第二时间延迟,并且第一时间延迟大于第二时间延迟,则在整个模拟开始之前,将所述第二逻辑过程执行小于所述第一时间延迟和所述第二时间延迟之间的差的预定初始位移量,以在计算机上并行地运行所述第一逻辑过程和所述第二逻辑过程。
17.根据权利要求16所述的模拟系统,其中,所述预定初始位移是所述第一时间延迟和所述第二时间延迟之间的差的一半。
18.根据权利要求16所述的模拟系统,进一步包括部件,用于在以被移位了所述逻辑过程之间的初始位移量的定时周期性地发送空消息的同时,并行地运行所述逻辑过程。
19.根据权利要求16所述的模拟系统,其中,所述第二时间延迟是零,并且所述第一时间延迟大于零。
20.根据权利要求19所述的模拟系统,其中,所述第一逻辑过程是ECU仿真器,并且所述第二逻辑过程是工厂模拟器。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011-265413 | 2011-12-05 | ||
JP2011265413 | 2011-12-05 | ||
PCT/JP2012/078940 WO2013084654A1 (ja) | 2011-12-05 | 2012-11-08 | シミュレーション実行方法、プログラム及びシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103959251A true CN103959251A (zh) | 2014-07-30 |
CN103959251B CN103959251B (zh) | 2016-08-31 |
Family
ID=48574033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280059898.9A Expired - Fee Related CN103959251B (zh) | 2011-12-05 | 2012-11-08 | 模拟执行方法、设备和系统 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9141732B2 (zh) |
JP (1) | JP5651251B2 (zh) |
CN (1) | CN103959251B (zh) |
DE (1) | DE112012004728T5 (zh) |
GB (1) | GB2508769B (zh) |
WO (1) | WO2013084654A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2851815A1 (de) * | 2013-09-18 | 2015-03-25 | dSPACE digital signal processing and control engineering GmbH | Testeinrichtung zum Echtzeittest eines virtuellen Steuergeräts |
JP5920842B2 (ja) | 2013-11-28 | 2016-05-18 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | シミュレーション装置、シミュレーション方法、およびプログラム |
JP2018022317A (ja) * | 2016-08-03 | 2018-02-08 | ルネサスエレクトロニクス株式会社 | Hilシミュレーションシステム及びその制御方法 |
WO2018083515A1 (en) * | 2016-11-02 | 2018-05-11 | Hitachi Automotive Systems, Ltd. | Computer system, test method, and recording medium |
AT519540B1 (de) * | 2016-12-29 | 2018-10-15 | Avl List Gmbh | Schaltvorrichtung für einen Radarzielemulator und Radarzielemulator mit einer solchen Schaltvorrichtung |
AT519538B1 (de) | 2016-12-29 | 2019-05-15 | Avl List Gmbh | Verfahren und System zur simulationsgestützten Bestimmung von Echopunkten sowie Verfahren zur Emulation und Emulationsvorrichtung |
AT519539B1 (de) | 2016-12-29 | 2018-10-15 | Avl List Gmbh | Radarzielemulator mit einer Überblendungsvorrichtung und Verfahren zum Überblenden von Signalen |
DE102017214125A1 (de) * | 2017-08-14 | 2019-02-14 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Synchronisieren einer Simulation mit einem Echtzeitsystem |
EP3454234A1 (de) * | 2017-09-06 | 2019-03-13 | dSPACE digital signal processing and control engineering GmbH | Verfahren zum bereitstellen einer echtzeitfähigen simulation für die steuergerätentwicklung und simulationsvorrichtung für die steuergerätentwicklung |
AT520578B1 (de) | 2017-10-06 | 2021-01-15 | Avl List Gmbh | Vorrichtung und Verfahren zur Konvertierung eines Radarsignals sowie Prüfstand |
JP7137994B2 (ja) * | 2018-08-23 | 2022-09-15 | 三菱重工業株式会社 | シミュレーション方法、シミュレーションシステム、およびプログラム |
US11537769B2 (en) * | 2020-05-12 | 2022-12-27 | Renesas Electronics Corporation | Simulator and simulation method |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1311611A (zh) * | 2000-03-01 | 2001-09-05 | 朗迅科技公司 | 基站收发信机到无线电网络控制器的同步过滤功能 |
US20070041327A1 (en) * | 2005-08-16 | 2007-02-22 | Cisco Technology, Inc. | Multicast heartbeat signaling |
CN101594169A (zh) * | 2008-05-30 | 2009-12-02 | 特拉博斯股份有限公司 | 用于测量的方法和装备 |
CN101938456A (zh) * | 2009-06-30 | 2011-01-05 | 华为技术有限公司 | 一种减小媒体延迟的方法、设备及系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3608917B2 (ja) * | 1996-11-13 | 2005-01-12 | 富士通株式会社 | 論理シミュレーション方法および装置並びに論理シミュレーションプログラムを格納した記憶媒体 |
US7774440B1 (en) * | 2001-07-25 | 2010-08-10 | Scalable Network Technologies, Inc. | Method and system for enhancing performance of a physical network under real-time control using simulation of a reference model |
US7246054B2 (en) * | 2002-05-13 | 2007-07-17 | Rensselaer Polytechnic Institute | Discrete event simulation system and method |
US7564809B1 (en) * | 2004-05-06 | 2009-07-21 | Cornell Research Foundation, Inc. | Event-synchronization protocol for parallel simulation of large-scale wireless networks |
US7822592B2 (en) * | 2004-10-18 | 2010-10-26 | Manthatron-Ip Limited | Acting on a subject system |
JP5153465B2 (ja) * | 2008-06-09 | 2013-02-27 | インターナショナル・ビジネス・マシーンズ・コーポレーション | シミュレーション方法、システム及びプログラム |
JP5186290B2 (ja) * | 2008-06-18 | 2013-04-17 | インターナショナル・ビジネス・マシーンズ・コーポレーション | シミュレーション方法、システム及びプログラム |
-
2012
- 2012-11-08 GB GB201405177A patent/GB2508769B/en active Active
- 2012-11-08 DE DE201211004728 patent/DE112012004728T5/de active Pending
- 2012-11-08 WO PCT/JP2012/078940 patent/WO2013084654A1/ja active Application Filing
- 2012-11-08 CN CN201280059898.9A patent/CN103959251B/zh not_active Expired - Fee Related
- 2012-11-08 JP JP2013548155A patent/JP5651251B2/ja active Active
- 2012-11-30 US US13/690,592 patent/US9141732B2/en not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1311611A (zh) * | 2000-03-01 | 2001-09-05 | 朗迅科技公司 | 基站收发信机到无线电网络控制器的同步过滤功能 |
US20070041327A1 (en) * | 2005-08-16 | 2007-02-22 | Cisco Technology, Inc. | Multicast heartbeat signaling |
CN101594169A (zh) * | 2008-05-30 | 2009-12-02 | 特拉博斯股份有限公司 | 用于测量的方法和装备 |
CN101938456A (zh) * | 2009-06-30 | 2011-01-05 | 华为技术有限公司 | 一种减小媒体延迟的方法、设备及系统 |
Also Published As
Publication number | Publication date |
---|---|
GB201405177D0 (en) | 2014-05-07 |
JPWO2013084654A1 (ja) | 2015-04-27 |
GB2508769B (en) | 2014-10-22 |
WO2013084654A1 (ja) | 2013-06-13 |
JP5651251B2 (ja) | 2015-01-07 |
GB2508769A (en) | 2014-06-11 |
US9141732B2 (en) | 2015-09-22 |
DE112012004728T5 (de) | 2014-07-24 |
US20130185034A1 (en) | 2013-07-18 |
CN103959251B (zh) | 2016-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103959251A (zh) | 模拟执行方法、程序和系统 | |
Sehr et al. | Programmable logic controllers in the context of industry 4.0 | |
EP2352087A1 (en) | Source code processing method, system, and program | |
Zhu et al. | Optimizing the software architecture for extensibility in hard real-time distributed systems | |
JP4988789B2 (ja) | シミュレーション・システム、方法及びプログラム | |
US8990767B2 (en) | Parallelization method, system and program | |
US20150248321A1 (en) | Cyclical method and a device for localizing uncontrollable multiple failures in engineering systems in operation | |
US20160188761A1 (en) | Asynchronous Parallel Simulation Protocol for Stream Processing Platforms | |
Li | Parallel nonconvex generalized Benders decomposition for natural gas production network planning under uncertainty | |
Youn et al. | Heuristic resource allocation and scheduling method for distributed automotive control systems | |
EP2278454B1 (en) | Method for correct-by-construction development of real-time-systems | |
Tokunaga et al. | IDF-Autoware: Integrated development framework for ROS-based self-driving systems using MATLAB/Simulink | |
Simon et al. | Design and analysis of synchronization for real-time closed-loop control in robotics | |
JP5692739B2 (ja) | 常微分方程式を解くための方法、プログラム及びシステム | |
Garcés et al. | A model-based approach for reconciliation of polychronous execution traces | |
Han et al. | Optimizing the implementation of real-time Simulink models onto distributed automotive architectures | |
Wang et al. | Component-based formal modeling of PLC systems | |
Derler et al. | Using Ptides and synchronized clocks to design distributed systems with deterministic system wide timing | |
George et al. | An Integrated Simulation Environment for Parallel and Distributed System Prototying | |
CN103677849B (zh) | 一种嵌入式软件可信性保障方法 | |
Merceron et al. | Verifying a time-triggered protocol in a multi-language environment | |
Hasanbegović et al. | Optimising vehicular system architectures with real-time requirements: An industrial case study | |
Sahraoui et al. | Methodology for fast prototyping of distributed real-time systems | |
Glonina | Tool system for testing real-time constraints for modular computational system configurations | |
Wróbel | Models for estimating the execution time of software loops in parallel and distributed systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160831 |