Simulin万博1manbetxk上的Guy

万博1manbetxSimulink &基于模型的设计

加速加速器模式的初始化

前段时间,我写了一篇关于获得最大的快速加速器模式.那篇文章描述了如何使用RapidAcceleratorUpToDateCheck = 'off'选项,跳过初始化时间。

不幸的是,并不是所有的模型都能在快速加速器模式下运行。为了生成Rapid Accelerator模式所需的独立可执行文件,模型必须符合某些标准。

当您的模型与快速加速器不兼容时,总是值得检查加速器模式是否可以加速您的模拟时间。然而,加速器模式没有一个等效的选项RapidAcceleratorUpToDateCheck = 'off',因此每次仿真开始时,Simulink都会验证模型是否发生了变化。万博1manbetx

今天我想分享一个在加速模式下跳过初始化的技巧。

这个问题

为了正确地观察初始化时间的影响,我们需要一个大模型。所以我做了一个由四万个积木组成的模型:

使用sldiagnostics计算块的数量

该模型在加速模式下的模拟速度几乎是正常模式的十倍。加速器目标几乎需要30分钟来生成代码,但是一旦生成了代码,大约需要1分钟来完成一个模拟。

但是,如果我们模拟0秒,我们会看到仅仅初始化和终止模型的时间就需要大约17秒。换句话说,运行这个模型所需时间的四分之一都花在初始化过程中。

在加速器模式下模拟模型

让我们看看如何改进它。

解决方案:加速模型参考

您可能已经意识到,模型引用允许您在另一个模型中以加速模式运行模型。我创建了一个只有一个模型块的模型,并引用了我的大模型。

使用sldiagnostics计数块

当进行与之前相同的测试时,我们得到:

将该模型模拟为加速参考模型

牛津大学出版社……初始化时间增加到32秒。除了编译模型,Simulink还需要做一些与模型引用相关的额外工作。万博1manbetx但是别担心,故事还没有结束!

默认情况下,新模型具有重建选项设置为如果检测到任何变化.在这种模式下,总是计算引用模型的结构校验和,以确保在生成加速器墨西哥文件后模型没有被修改。

让我们打开模型配置的模型引用部分,并将重建选项设置为如果检测到任何已知依赖项的变化

重建选项

并运行我们的测试来测量初始化时间:

初始化时间

在这种情况下,Simulin万博1manbetxk只验证模型。自MEX文件生成以来,slx文件及其依赖项没有更改。如果是这种情况,引用模型的初始化将被完全跳过。

现在轮到你了

您是否利用了加速模型引用来加速模型的初始化?请留下一个这里的评论

|

评论

如欲留言,请点击在这里登录您的MathWorks帐户或创建一个新帐户。