加速加速器模式的初始化
前段时间,我写了一篇关于充分利用快速加速器模式. 那篇文章描述了如何使用RapidAcceleratorUpToDateCheck='off'选项跳过初始化时间。
不幸的是,并不是所有的型号都能在快速加速器模式下运行。为了生成Rapid Accelerator模式所需的独立可执行文件,模型必须遵守某些标准。
当您的模型与Rapid Accelerator不兼容时,始终值得检查Accelerator模式是否可以加快模拟时间。但是,加速器模式没有与等效的选项RapidAcceleratorUpToDateCheck='off',因此,每次模拟开始时,Simulink都会验证模型是否已更改。金宝app
今天我想分享一个技巧来跳过加速器模式下的初始化。
这个问题
为了正确地看到初始化时间的影响,我们需要一个大型模型。因此,我建立了一个由近40000个街区组成的模型:
该模型在加速器模式下的模拟速度几乎是正常模式的十倍。加速器目标几乎需要30分钟来生成代码,但一旦生成代码,完成一次模拟大约需要1分钟。
但是,如果我们模拟0秒,我们会看到初始化和终止模型的时间大约需要17秒。换句话说,运行此模型所需的四分之一时间是在初始化期间花费的。
让我们看看如何改进。
解决方案:加速模型参考
您可能已经意识到,模型引用允许您以加速模式在另一个模型中运行模型。我创建了一个只有一个模型块的模型,并引用了我的大型模型。
当进行与之前相同的测试时,我们得到:
组。。。初始化时间增加到32秒。除了编译模型外,Simulink还需要做一些与模型引用相关的额外工作。但别担心,故事还没有结束!金宝app
默认情况下,新模型具有重建选项设置为如果检测到任何更改. 在此模式下,始终计算引用模型的结构校验和,以确保自生成加速器mex文件以来未修改模型。
让我们打开模型配置的模型引用部分,并将重建选项设置为如果在已知依赖项中检测到任何更改.
然后运行我们的测试来测量初始化时间:
在这种情况下,Simulin金宝appk仅验证model.slx文件及其依赖项在生成MEX文件后没有更改。如果是这种情况,则完全跳过引用模型的初始化。
现在轮到你了
您是否利用加速模型参考来加速模型的初始化?请留下一封信让我们知道评论这里.
评论
如需留言,请点击在这里登录到您的MathWorks帐户或创建新帐户。