CN113032963B - 一种Simulink模型仿真加速方法及装置 - Google Patents
一种Simulink模型仿真加速方法及装置 Download PDFInfo
- Publication number
- CN113032963B CN113032963B CN202110216136.6A CN202110216136A CN113032963B CN 113032963 B CN113032963 B CN 113032963B CN 202110216136 A CN202110216136 A CN 202110216136A CN 113032963 B CN113032963 B CN 113032963B
- Authority
- CN
- China
- Prior art keywords
- file
- simulink model
- code
- simulink
- model
- 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.)
- Active
Links
- 238000004088 simulation Methods 0.000 title claims abstract description 85
- 238000000034 method Methods 0.000 title claims abstract description 40
- 230000001133 acceleration Effects 0.000 title claims abstract description 29
- 230000008569 process Effects 0.000 claims description 12
- 238000005516 engineering process Methods 0.000 claims description 6
- 238000000638 solvent extraction Methods 0.000 claims description 5
- 238000013507 mapping Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000013401 experimental design Methods 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- 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
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种Simulink模型仿真加速方法及装置,方法包括预先生成可在计算机操作系统中运行的可执行程序文件,该可执行程序文件包含参数赋值代码、数据记录代码、程序调度代码和Simulink模型的代码;根据预先设定的Simulink模型任务与计算机多核CPU核心的对应关系,使Simulink模型的各个任务运行在计算机多核CPU的对应核心中。通过将一个规模较大的Simulink模型拆分为多个任务,并生成可在计算机操作系统中运行的可执行程序文件,在多核CPU中进行并行运算,相比于采用并行工具箱在Simulink环境下进行Simulink模型仿真加速的方式,可显著加快Simulink模型多次仿真速度。
Description
技术领域
本发明涉及仿真技术领域,更具体地说,涉及一种Simulink模型仿真加速方法及装置。
背景技术
Simulink模型指的是利用Simulink建立的模型。Simulink是一种可视化仿真工具,用于多域仿真以及基于模型的设计。Simulink支持系统设计、仿真、自动代码生成以及嵌入式系统的连续测试和验证。Simulink提供图形编辑器、可自定义的模块库以及求解器,能够进行动态系统建模和仿真。
现有的Simulink模型仿真加速方法一般是采用并行计算工具箱,使用parsim函数将多个仿真分布到多核CPU以加快整体仿真速度。parsim可自动创建并行池、标识文件依赖性并管理构建工作,通过交互方式或批处理方式轻松地在多核CPU上同时运行多个Simulink仿真。
在蒙特卡罗分析、参数扫描、模型测试、实验设计和模型优化中,使用并行计算工具箱可以在同一时刻使用不同输入或参数设置同时运行同一Simulink模型加快仿真速度。但是,当Simulink模型本身规模极大时,模型本身的仿真机制会使得单个模型仿真就需要耗费大量的时间,这种情况下使用并行计算工具箱也难以获得满意的仿真速度。
发明内容
有鉴于此,本发明提出一种Simulink模型仿真加速方法及装置,欲通过将一个Simulink模型拆分为多个任务,进行并行运算来加快仿真速度。
为了实现上述目的,现提出的方案如下:
第一方面,提供一种Simulink模型仿真加速方法,包括:
获取预先生成的可在计算机操作系统中运行的可执行程序文件,所述可执行程序文件包含参数赋值代码、数据记录代码、程序调度代码和Simulink模型的代码;
根据预先设定的Simulink模型的任务与计算机的多核CPU的核心的对应关系,在运行所述可执行程序文件时,所述Simulink模型的各个任务运行在所述计算机的多核CPU的对应核心中;
当运行所述可执行程序文件时,对于每次仿真,程序调用所述参数赋值代码读取本次仿真所需的输入参数并传递给所述Simulink模型的代码,所述Simulink模型的代码运行完成得到运算结果,再调用所述数据记录代码将所述运算结果进行保存;
所述程序调度代码判断仿真次数达到预设的次数阈值后,控制所述可执行程序文件停止执行。
可选的,生成所述可执行程序文件的过程,包括:
将Simulink模型的求解器配置为定步长求解器,且配置所述求解器以支持所述Simulink模型在目标架构下进行任务的并发执行;
指定部署所述Simulink模型的多核CPU的核心数量;
将所述Simulink模型划分为N个任务,N为所述核心数量;
建立所述任务与所述多核CPU的核心的一一对应关系;
采用代码自动生成技术生成Simulink模型的代码文件;
将所述Simulink模型的代码文件、参数赋值代码文件、数据记录代码文件和程序调度代码文件集成编译,并生成可在计算机操作系统中运行的可执行程序文件。
可选的,所述采用代码自动生成技术生成Simulink模型的代码文件,包括:
将Simulink模型解析为一个后缀为.rtw的模型描述文件;
利用目标语言编译器将所述模型描述文件翻译为目标语言代码,所述目标语言代码为所述Simulink模型的代码文件。
可选的,所述求解器的配置过程,具体包括:
利用MATLAB脚本文件对所述求解器进行自动化配置。
可选的,将所述Simulink模型的代码文件、参数赋值代码文件、数据记录代码文件和程序调度代码文件集成编译的过程,具体包括:
利用MATLAB脚本文件对Simulink Coder或Embedded Coder进行自动配置,将所述Simulink模型的代码文件、参数赋值代码文件、数据记录代码文件和程序调度代码文件进行自动化集成编译。
第二方面,提供一种Simulink模型仿真加速装置,包括:
获取单元,用于获取预先生成的可在计算机操作系统中运行的可执行程序文件,所述可执行程序文件包含参数赋值代码、数据记录代码、程序调度代码和Simulink模型的代码;
任务分配单元,用于根据预先设定的Simulink模型的任务与计算机的多核CPU的核心的对应关系,在运行所述可执行程序文件时,所述Simulink模型的各个任务运行在所述计算机的多核CPU的对应核心中;
仿真调度单元,用于当运行所述可执行程序文件时,对于每次仿真,程序调用所述参数赋值代码读取本次仿真所需的输入参数并传递给所述Simulink模型的代码,所述Simulink模型的代码运行完成得到运算结果,再调用所述数据记录代码将所述运算结果进行保存;
仿真停止单元,用于所述程序调度代码判断仿真次数达到预设的次数阈值后,控制所述可执行程序文件停止执行。
可选的,所述Simulink模型仿真加速装置还包括文件生成单元,所述文件生成单元包括:
求解器配置子单元,用于将Simulink模型的求解器配置为定步长求解器,且配置所述求解器以支持所述Simulink模型在目标架构下进行任务的并发执行;
目标架构指定子单元,用于指定部署所述Simulink模型的多核CPU的核心数量;
模型分区子单元,用于将所述Simulink模型划分为N个任务,N为所述核心数量;
映射子单元,用于建立所述任务与所述多核CPU的核心的一一对应关系;
代码生成子单元,用于采用代码自动生成技术生成Simulink模型的代码文件;
集成编译子单元,用于将所述Simulink模型的代码文件、参数赋值代码文件、数据记录代码文件和程序调度代码文件集成编译,并生成可在计算机操作系统中运行的可执行程序文件。
可选的,所述代码生成子单元,具体用于:
将Simulink模型解析为一个后缀为.rtw的模型描述文件;
利用目标语言编译器将所述模型描述文件翻译为目标语言代码,所述目标语言代码为所述Simulink模型的代码文件。
可选的,所述求解器配置子单元,具体用于:
利用MATLAB脚本文件将Simulink模型的求解器自动配置为定步长求解器,且自动配置所述求解器以支持所述Simulink模型在目标架构下进行任务的并发执行。
可选的,所述集成编译子单元,具体用于:
利用MATLAB脚本文件对Simulink Coder或Embedded Coder进行自动配置,将所述Simulink模型的代码文件、参数赋值代码文件、数据记录代码文件和程序调度代码文件进行自动化集成编译,并生成可在计算机操作系统中运行的可执行程序文件
与现有技术相比,本发明的技术方案具有以下优点:
上述技术方案提供的一种Simulink模型仿真加速方法及装置,方法包括预先生成可在计算机操作系统中运行的可执行程序文件,该可执行程序文件包含参数赋值代码、数据记录代码、程序调度代码和Simulink模型的代码;根据预先设定的Simulink模型的任务与计算机的多核CPU的核心的对应关系,在运行可执行程序文件时,Simulink模型的各个任务运行在计算机的多核CPU的对应核心中。通过将一个规模较大的Simulink模型拆分为多个任务,并生成可在计算机操作系统中运行的可执行程序文件,在多核CPU中进行并行运算,相比于采用并行工具箱在Simulink环境下进行Simulink模型仿真加速的方式,可显著加快Simulink模型多次仿真速度。例如,在实际的项目中,对于进行蒙特卡罗分析的Simulink模型,在Simulink环境下单次仿真耗时大约需要130s,如果该模型需要输入1000组不同的参数进行仿真,采用4核处理器,通过并行计算工具箱计算的耗时为:1000/4*130=32500(s)≈9.03(h)。采用本发明的方法,在计算机操作系统下单次计算耗时不到2s,完成1000次运算需要的时间为1000*2=2000(s)≈0.56h,即显著加快Simulink模型多次仿真速度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种生成可执行程序文件的示意图;
图2为本发明实施例提供的一种Simulink模型仿真加速的流程图;
图3为本发明实施例提供的一种Simulink模型仿真加速装置的逻辑结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明介绍了将Simulink模型划分为多个任务后进行自动代码生成,同时通过MATLAB脚本文件自动化生成参数赋值代码文件、数据记录代码文件和程序调度代码文件,并自动集成编译生成可在计算机操作系统中运行的可执行程序文件,进而实现Simulink模型在计算机操作系统环境中的仿真,以加快模型多次仿真速度。
参见图1,为生成可执行程序文件的过程。即先在Simulink中对Simulink模型进行多核编程,且为Simulink模型进行并发执行配置,配置完成之后采用代码自动生成技术生成Simulink模型的代码文件,生成的代码文件在IDE(Integrated DevelopmentEnvironment,集成开发环境)软件中与其它代码进行集成编译生成可在计算机操作系统中运行的可执行程序文件。生成可执行程序文件的过程具体可包括以下内容:
(1)将Simulink模型的求解器配置为定步长求解器,且配置所述求解器以支持所述Simulink模型在目标架构下进行任务的并发执行。为了实现Simulink模型的代码文件的自动生成,需要将Simulink模型的求解器配置为定步长(Fixed-step)求解器,同时配置求解器的“Allow tasks to execute concurrently on target”选项以支持Simulink模型在目标架构下进行任务的并发执行。在一些具体实施例中,可以通过自定义的MATLAB脚本文件(即MATLAB程序)实现求解器的自动化配置;即在MATLAB脚本文件中写好对应的配置命令,在为Simulink模型进行并发执行配置时自动执行该MATLAB脚本文件实现自动化配置。
(2)指定部署Simulink模型的多核CPU的核心数量。现有采用并行计算工具箱加速Simulink模型仿真的技术方案是在Simulink环境下进行的,在本发明中,将Simulink模型生成代码文件,再将代码文件部署在计算机操作系统下运行。部署Simulink模型的多核CPU,即为部署代码文件的计算机的多核CPU。指定部署Simulink模型的多核CPU的核心数量,即定义包含可用于Simulink模型运行的核心数量的配置文件。
(3)将Simulink模型划分为N个任务,N为核心数量;并建立任务与多核CPU的核心的一一对应关系。对Simulink模型进行分区,分区是对Simulink模型的内容和层次结构按照需要进行排列,然后将排列好的各区域(即图1中的各函数)划分为各项任务,最后通过Simulink的并行执行面板将各个任务映射到多核CPU中的相应核心进行处理。例如,图1中,将任务1映射到核心1,将任务2映射到核心2,将任务3映射到核心3,将任务4映射到核心4。配置文件还包括分配到相应核心上的任务的代码生成属性;代码生成属性指的是指定任务调度规则,指定任务调度规则可以是基于设置的优先级也可以是轮询方式。在Simulink的并行面执行面板进行配置时,可以对代码生成属性进行选择或修改等设置,若不进行设置,则默认轮询方式。
(4)采用代码自动生成技术生成Simulink模型的代码文件。具体的,将Simulink模型解析为一个后缀为.rtw的模型描述文件;利用目标语言编译器将模型描述文件翻译为目标语言代码,目标语言代码为Simulink模型的代码文件。模型描述文件描述Simulink模型的全部配置和模块属性信息。目标语言为C语言时,目标语言代码为后缀为.c的源文件和.h的头文件。
(5)将Simulink模型的代码文件、参数赋值代码文件、数据记录代码文件和程序调度代码文件集成编译,并生成可在计算机操作系统中运行的可执行程序文件。计算机操作系统为Windows系统时,可执行程序文件为后缀为.exe的文件。
自动根据Simulink模型仿真的输入参数生成参数赋值代码文件,用于计算机操作系统下仿真的赋值;自动根据Simulink模型仿真记录的输出信号生成数据记录代码文件,用于计算机操作系统下仿真的数据记录;自动根据Simulink模型的仿真次数生成程序调度代码文件,用于计算机操作系统下仿真的程序调度。参数赋值代码文件、数据记录代码文件和程序调度代码文件的生成完全自动化完成,用于确保计算机操作系统下仿真结果与Simulink环境下仿真结果的一致性。仿真次数是指Simulink模型需要被运行的次数,程序调度文件控制生成的可执行程序文件运行完指定的次数后停止执行。
可通过调用编译器的make功能,把Simulink模型的代码文件、参数赋值代码文件、数据记录代码文件和程序调度代码文件等一起编译,然后链接,最终生成可执行文件。在一些具体实施例中,采用MATLAB脚本文件自动化配置Simulink Coder或EmbeddedCoder,采用ert.tlc模板联编文件方法,将Simulink模型的代码文件、参数赋值代码文件、数据记录代码文件和程序调度代码文件在Visual Studio中自动集成编译;最后,生成与Simulink模型一致的可用于计算机操作系统中运行的可执行程序文件。
针对在蒙特卡罗分析、参数扫描、模型测试、实验设计和模型优化中需要使用不同输入或参数设置来运行同一Simulink模型,包括上述参数赋值代码文件、数据记录代码文件和程序调度代码文件等三个外部代码文件即可实现本发明的内容。对于其它运用场景,外部代码文件还可以包括参数配置代码文件、函数接口配置代码文件和/或程序执行异常返回代码文件等,以实现相应的功能。
在计算机的多核CPU下将部署的可执行程序文件进行运行仿真,实现Simulink模型的仿真加速。本发明中拟在计算机操作系统下进行Simulink模型的仿真,只需在计算机操作系统下运行上述可执行程序文件即可。参见图2,为本实施例提供的一种Simulink模型仿真加速方法,即执行可执行程序文件时的执行具体过程,该方法包括以下步骤:
S21:获取预先生成的可在计算机操作系统中运行的可执行程序文件。
可执行程序文件由参数赋值代码文件、数据记录代码文件、程序调度代码文件和Simulink模型的代码文件集成编译而成。可执行程序文件包含参数赋值代码、数据记录代码、程序调度代码和Simulink模型的代码。
S22:根据预先设定的Simulink模型的任务与计算机的多核CPU的核心的对应关系,在运行可执行程序文件时,Simulink模型的各个任务运行在计算机的多核CPU的对应核心中。
S23:当运行可执行程序文件时,对于每次仿真,程序调用参数赋值代码读取本次仿真所需的输入参数并传递给运行的Simulink模型的代码,Simulink模型的代码运行完成得到运算结果,再调用数据记录代码将运算结果进行保存。
S24:程序调度代码判断仿真次数达到预设的次数阈值后,控制可执行程序文件停止执行。
本实施例提供的上述Simulink模型仿真加速方法,实现Simulink模型在计算机操作系统下的仿真加速,相比使用并行计算工具箱在Simulink环境下进行Simulink模型仿真加速,在对于规模较大Simulink模型使用不同输入或参数设置进行蒙特卡罗分析、参数扫描、模型测试、实验设计和模型优化时可显著加快仿真速度。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。
下述为本发明装置实施例,可以用于执行本发明方法实施例。对于本发明装置实施例中未披露的细节,请参照本发明方法实施例。
参见图3,为本实施例提供的一种Simulink模型仿真加速装置,该装置包括:获取单元31、任务分配单元32、仿真调度单元33和仿真停止单元34。
获取单元31,用于获取预先生成的可在计算机操作系统中运行的可执行程序文件;可执行程序文件包含参数赋值代码、数据记录代码、程序调度代码和Simulink模型的代码。
任务分配单元32,用于根据预先设定的Simulink模型的任务与计算机的多核CPU的核心的对应关系,在运行可执行程序文件时,Simulink模型的各个任务运行在计算机的多核CPU的对应核心中。
仿真调度单元33,用于当运行可执行程序文件时,对于每次仿真,程序调用参数赋值代码读取本次仿真所需的输入参数并传递给Simulink模型的代码,Simulink模型的代码运行完成得到运算结果,再调用数据记录代码将所述运算结果进行保存。
仿真停止单元34,用于程序调度代码判断仿真次数达到预设的次数阈值后,控制所述可执行程序文件停止执行。
在一些具体实施例中,Simulink模型仿真加速装置还包括文件生成单元。文件生成单元包括求解器配置子单元、目标架构指定子单元、模型分区子单元、映射子单元、代码生成子单元和集成编译子单元。
求解器配置子单元,用于将Simulink模型的求解器配置为定步长求解器,且配置求解器以支持Simulink模型在目标架构下进行任务的并发执行。
目标架构指定子单元,用于指定部署Simulink模型的多核CPU的核心数量。
模型分区子单元,用于将Simulink模型划分为N个任务,N为多核CPU的核心数量。
映射子单元,用于建立Simulink模型的任务与多核CPU的核心的一一对应关系。
代码生成子单元,用于采用代码自动生成技术生成Simulink模型的代码文件。
集成编译子单元,用于将Simulink模型的代码文件、参数赋值代码文件、数据记录代码文件和程序调度代码文件集成编译,并生成可在计算机操作系统中运行的可执行程序文件。
在一些具体实施例中,代码生成子单元,具体用于:将Simulink模型解析为一个后缀为.rtw的模型描述文件;利用目标语言编译器将该模型描述文件翻译为目标语言代码,目标语言代码为Simulink模型的代码文件。
在一些具体实施例中,求解器配置子单元,具体用于:利用MATLAB脚本文件将Simulink模型的求解器自动配置为定步长求解器,且自动配置求解器以支持Simulink模型在目标架构下进行任务的并发执行。
在一些具体实施例中,集成编译子单元,具体用于:利用MATLAB脚本文件对Simulink Coder或Embedded Coder进行自动配置,将Simulink模型的代码文件、参数赋值代码文件、数据记录代码文件和程序调度代码文件进行自动化集成编译,并生成可在计算机操作系统中运行的可执行程序文件。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中各个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可,且本说明书中各实施例中记载的特征可以相互替换或者组合。
对本发明所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种Simulink模型仿真加速方法,其特征在于,包括:
生成可在计算机操作系统中运行的可执行程序文件,包括:对Simulink模型进行多核编程,为Simulink模型进行并发执行配置;生成Simulink模型的代码文件,将所述Simulink模型的代码文件、参数赋值代码文件、数据记录代码文件和程序调度代码文件集成编译,并生成可在计算机操作系统中运行的可执行程序文件;
获取生成的可在计算机操作系统中运行的可执行程序文件,所述可执行程序文件包含参数赋值代码、数据记录代码、程序调度代码和Simulink模型的代码;
根据预先设定的Simulink模型的任务与计算机的多核CPU的核心的对应关系,在运行所述可执行程序文件时,所述Simulink模型的各个任务运行在所述计算机的多核CPU的对应核心中;
当运行所述可执行程序文件时,对于每次仿真,程序调用所述参数赋值代码读取本次仿真所需的输入参数并传递给所述Simulink模型的代码,所述Simulink模型的代码运行完成得到运算结果,再调用所述数据记录代码将所述运算结果进行保存;
所述程序调度代码判断仿真次数达到预设的次数阈值后,控制所述可执行程序文件停止执行。
2.根据权利要求1所述的Simulink模型仿真加速方法,其特征在于,生成所述可执行程序文件的过程,包括:
将Simulink模型的求解器配置为定步长求解器,且配置所述求解器以支持所述Simulink模型在目标架构下进行任务的并发执行;
指定部署所述Simulink模型的多核CPU的核心数量;
将所述Simulink模型划分为N个任务,N为所述核心数量;
建立所述任务与所述多核CPU的核心的一一对应关系;
采用代码自动生成技术生成Simulink模型的代码文件。
3.根据权利要求2所述的Simulink模型仿真加速方法,其特征在于,所述采用代码自动生成技术生成Simulink模型的代码文件,包括:
将Simulink模型解析为一个后缀为.rtw的模型描述文件;
利用目标语言编译器将所述模型描述文件翻译为目标语言代码,所述目标语言代码为所述Simulink模型的代码文件。
4.根据权利要求2所述的Simulink模型仿真加速方法,其特征在于,所述求解器的配置过程,具体包括:
利用MATLAB脚本文件对所述求解器进行自动化配置。
5.根据权利要求2所述的Simulink模型仿真加速方法,其特征在于,将所述Simulink模型的代码文件、参数赋值代码文件、数据记录代码文件和程序调度代码文件集成编译的过程,具体包括:
利用MATLAB脚本文件对Simulink Coder或Embedded Coder进行自动配置,将所述Simulink模型的代码文件、参数赋值代码文件、数据记录代码文件和程序调度代码文件进行自动化集成编译。
6.一种Simulink模型仿真加速装置,其特征在于,包括:
文件生成单元,用于对Simulink模型进行多核编程,为Simulink模型进行并发执行配置;生成Simulink模型的代码文件,将所述Simulink模型的代码文件、参数赋值代码文件、数据记录代码文件和程序调度代码文件集成编译,并生成可在计算机操作系统中运行的可执行程序文件;
获取单元,用于获取生成的可在计算机操作系统中运行的可执行程序文件,所述可执行程序文件包含参数赋值代码、数据记录代码、程序调度代码和Simulink模型的代码;
任务分配单元,用于根据预先设定的Simulink模型的任务与计算机的多核CPU的核心的对应关系,在运行所述可执行程序文件时,所述Simulink模型的各个任务运行在所述计算机的多核CPU的对应核心中;
仿真调度单元,用于当运行所述可执行程序文件时,对于每次仿真,程序调用所述参数赋值代码读取本次仿真所需的输入参数并传递给所述Simulink模型的代码,所述Simulink模型的代码运行完成得到运算结果,再调用所述数据记录代码将所述运算结果进行保存;
仿真停止单元,用于所述程序调度代码判断仿真次数达到预设的次数阈值后,控制所述可执行程序文件停止执行。
7.根据权利要求6所述的Simulink模型仿真加速装置,其特征在于,所述文件生成单元包括:
求解器配置子单元,用于将Simulink模型的求解器配置为定步长求解器,且配置所述求解器以支持所述Simulink模型在目标架构下进行任务的并发执行;
目标架构指定子单元,用于指定部署所述Simulink模型的多核CPU的核心数量;
模型分区子单元,用于将所述Simulink模型划分为N个任务,N为所述核心数量;
映射子单元,用于建立所述任务与所述多核CPU的核心的一一对应关系;
代码生成子单元,用于采用代码自动生成技术生成Simulink模型的代码文件;
集成编译子单元,用于将所述Simulink模型的代码文件、参数赋值代码文件、数据记录代码文件和程序调度代码文件集成编译,并生成可在计算机操作系统中运行的可执行程序文件。
8.根据权利要求7所述的Simulink模型仿真加速装置,其特征在于,所述代码生成子单元,具体用于:
将Simulink模型解析为一个后缀为.rtw的模型描述文件;
利用目标语言编译器将所述模型描述文件翻译为目标语言代码,所述目标语言代码为所述Simulink模型的代码文件。
9.根据权利要求7所述的Simulink模型仿真加速装置,其特征在于,所述求解器配置子单元,具体用于:
利用MATLAB脚本文件将Simulink模型的求解器自动配置为定步长求解器,且自动配置所述求解器以支持所述Simulink模型在目标架构下进行任务的并发执行。
10.根据权利要求7所述的Simulink模型仿真加速装置,其特征在于,所述集成编译子单元,具体用于:
利用MATLAB脚本文件对Simulink Coder或Embedded Coder进行自动配置,将所述Simulink模型的代码文件、参数赋值代码文件、数据记录代码文件和程序调度代码文件进行自动化集成编译,并生成可在计算机操作系统中运行的可执行程序文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110216136.6A CN113032963B (zh) | 2021-02-26 | 2021-02-26 | 一种Simulink模型仿真加速方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110216136.6A CN113032963B (zh) | 2021-02-26 | 2021-02-26 | 一种Simulink模型仿真加速方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113032963A CN113032963A (zh) | 2021-06-25 |
CN113032963B true CN113032963B (zh) | 2024-04-09 |
Family
ID=76462096
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110216136.6A Active CN113032963B (zh) | 2021-02-26 | 2021-02-26 | 一种Simulink模型仿真加速方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113032963B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113688026B (zh) * | 2021-09-30 | 2024-04-05 | 中汽创智科技有限公司 | 一种数据模拟仿真方法、装置、设备及存储介质 |
CN114237767B (zh) * | 2022-02-24 | 2022-06-14 | 西安羚控电子科技有限公司 | 一种实现多倍速仿真的系统及方法 |
CN114996077B (zh) * | 2022-08-08 | 2022-11-01 | 济南新语软件科技有限公司 | 一种多核并行仿真方法及实现多核并行仿真的平台架构 |
CN115185539B (zh) * | 2022-09-06 | 2022-12-09 | 西安羚控电子科技有限公司 | 一种生成可执行动态链接库文件方法、装置及存储介质 |
CN115392063B (zh) * | 2022-10-31 | 2023-01-31 | 西安羚控电子科技有限公司 | 一种多速率仿真方法及系统 |
CN116069504B (zh) * | 2023-01-28 | 2023-11-10 | 广汽埃安新能源汽车股份有限公司 | 自动驾驶仿真中多核处理器的调度方法及装置 |
CN116362060B (zh) * | 2023-05-31 | 2023-08-22 | 东方空间技术(山东)有限公司 | 一种系统仿真模型自动生成方法、装置及设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106372370A (zh) * | 2016-10-11 | 2017-02-01 | 中国人民解放军国防科学技术大学 | 一种飞行控制分布式实时仿真系统 |
CN110674590A (zh) * | 2019-10-07 | 2020-01-10 | 中国人民解放军陆军装甲兵学院 | 一种基于仿真软件Simulink实时扩展RTX的飞行器实时仿真程序的编程方法 |
-
2021
- 2021-02-26 CN CN202110216136.6A patent/CN113032963B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106372370A (zh) * | 2016-10-11 | 2017-02-01 | 中国人民解放军国防科学技术大学 | 一种飞行控制分布式实时仿真系统 |
CN110674590A (zh) * | 2019-10-07 | 2020-01-10 | 中国人民解放军陆军装甲兵学院 | 一种基于仿真软件Simulink实时扩展RTX的飞行器实时仿真程序的编程方法 |
Non-Patent Citations (2)
Title |
---|
基于Simulink/RTW的RTX系统仿真建模方法;沈楷;郭建国;卢晓东;赵斌;周军;;计算机测量与控制(02);全文 * |
基于System Generator的异构多核片上系统设计;杨宏来;黄旻忞;电子与封装(11);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113032963A (zh) | 2021-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113032963B (zh) | 一种Simulink模型仿真加速方法及装置 | |
US7865350B1 (en) | Partitioning a model in modeling environments | |
Arrieta et al. | Automatic generation of test system instances for configurable cyber-physical systems | |
US20060036799A1 (en) | Multi-platform development and execution of graphical programs | |
De Farias et al. | COMFIT: A development environment for the Internet of Things | |
US10657037B2 (en) | Method of configuring a test device designed to test an electronic control unit, and a configuration system | |
CN108345265B (zh) | 硬件设备的编程方法、可视化编程平台、存储器和处理器 | |
JP4886838B2 (ja) | 並列化方法、システム、及びプログラム | |
CN114461182A (zh) | 流水线构建的方法、装置、电子设备及计算机可读存储介质 | |
KR20110100070A (ko) | 재구성 가능한 프로세서 코어를 사용하는 멀티코어 시스템의 시뮬레이터 및 시뮬레이션 방법 | |
US9489181B2 (en) | Correlation analysis of program structures | |
CN113760462B (zh) | 一种调度自动化系统验证环境的构建方法及装置 | |
JP2011170732A (ja) | 並列化方法、システム、及びプログラム | |
CN113704095A (zh) | 一种接口自动测试用例自动生成方法及装置 | |
Jamro et al. | Agile and hierarchical round-trip engineering of IEC 61131-3 control software | |
Erkkinen et al. | Automatic code generation-technology adoption lessons learned from commercial vehicle case studies | |
KR890008714A (ko) | 시각언어를 사용하는 설계시스템 | |
Di Natale et al. | Matching execution architecture models with functional models to analyze the time performance of CPS systems | |
KR20180110401A (ko) | 다중 기능 단일화 저작 시스템 | |
Pereira et al. | Development of self-diagnosis tests system using a DSL for creating new test suites for integration in a cyber-physical system | |
Wehrmeister et al. | Framework to simulate the behavior of embedded real-time systems specified in UML models | |
Geng et al. | Embedded C code generation platform for electric vehicle controller | |
Gai et al. | Autosar university package classic platform | |
CN115794659B (zh) | 一种cfd软件的分布式并行测试方法、装置、设备及介质 | |
US20240176926A1 (en) | Method and system for simulating a control program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |