人在仿真软件金宝app

金宝appSimulink &基于模型的设计

加速加速器模式的初始化

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

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

当您的模型与Rapid Accelerator不兼容时,始终值得检查Accelerator模式是否可以加快模拟时间。但是,加速器模式没有与等效的选项RapidAcceleratorUpToDateCheck='off',因此,每次模拟开始时,Simulink都会验证模型是否已更改。金宝app

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

这个问题

为了正确地看到初始化时间的影响,我们需要一个大型模型。因此,我建立了一个由近40000个街区组成的模型:

使用sldiagnostics计算块数

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

但是,如果我们模拟0秒,我们会看到初始化和终止模型的时间大约需要17秒。换句话说,运行此模型所需的四分之一时间是在初始化期间花费的。

在加速模式下模拟模型

让我们看看如何改进。

解决方案:加速模型参考

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

使用sldiagnostics计数块

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

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

组。。。初始化时间增加到32秒。除了编译模型外,Simulink还需要做一些与模型引用相关的额外工作。但别担心,故事还没有结束!金宝app

默认情况下,新模型具有重建选项设置为如果检测到任何更改. 在此模式下,始终计算引用模型的结构校验和,以确保自生成加速器mex文件以来未修改模型。

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

重建选项

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

模型初始化时间

在这种情况下,Simulin金宝appk仅验证model.slx文件及其依赖项在生成MEX文件后没有更改。如果是这种情况,则完全跳过引用模型的初始化。

现在轮到你了

您是否利用加速模型参考来加速模型的初始化?请留下一封信让我们知道评论这里

|

评论

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