主要内容

比较性能

仿真模式的性能

当仿真执行时间超过代码生成所需的时间时,加速器和快速加速器模式与正常模式相比提供了最佳速度改进。因此,当仿真执行时间几分钟或更大时,加速器和快速加速器模式通常比正常模式更好。但是,具有大量状态流量的模型®或MATLAB功能块可能仅显示正常模式的小速度改进,因为在正常模式下,这些块也通过代码生成模拟。

包括模型中的可调参数也可以增加模拟时间。

该图大致显示了在正常、加速和快速加速模式下模拟的假设模型的性能。

必须重新构建目标时的性能

图中的实线显示了必须重新构建目标代码时的性能(“所有目标都过时了”)。对于这个假设的模型,时间尺度是分钟的量级,但对于更复杂的模型,时间可能更长。

如图中的广义所示,在正常模式下编译模型所需的时间小于构建加速器目标或快速加速器可执行的时间所需的时间。从图中可以看出,对于小型仿真停止时间正常模式导致比加速器模式或快速加速器模式更快的整体模拟时间。

加速器模式或快速加速器模式导致更快的执行时间的交叉点取决于模型的复杂性和内容。例如,在加速器模式下运行的那些模型,包含使用解释代码的大量块(请参阅选择加速器模式的块除非模拟停止时间非常大,否则可能不会比正常模式更快地运行得多。类似地,除非仿真停止时间很长,否则具有大量状态溢图块或MATLAB功能块的模型可能不会显示出正常模式的超大速度。您可以通过代码生成加速带状态溢图块或MATLAB功能块的模型。

出于说明目的,图形表示具有大量状态溢图块或MATLAB功能块的模型。标记为“普通”的曲线将具有比模型不包含这些块的初始初始经过的时间更小。

当目标是最新的时性能

如图中的虚线所示(“all targets up to date”)是Simulink的时间万博1manbetx®用于确定Accelerator目标或Rapid Accelerator可执行文件是否最新的软件要比生成代码所需的时间少得多(“所有目标都过期了”)。当您希望测试各种设计折衷时,您可以利用这个特性。

例如,您可以生成一次Accelerator模式目标代码,并使用它来使用一系列增益设置来模拟您的模型。这是一种使用加速器或快速加速器模式的特别有效的方法,因为这种类型的变化不会导致重新生成目标代码。这意味着在第一次运行模型运行时生成目标代码,但随后运行Simulink代码仅花费必要的时间来验证目标是否最新。万博1manbetx此过程比生成代码快得多,因此后续运行可以比初始运行更快。

因为检查目标比代码生成更快,所以当目标最新时的交叉点比必须生成代码时的速度更大。这意味着与正常模式相比,随后的模型运行可能在加速器或快速加速器模式下模拟更快,即使是短的停止时间。

测量性能

你可以使用Tic.toc,SIM命令将加速器模式或快速加速器模式执行时间进行比较到正常模式。

  1. 打开您的模型。

  2. 在这一点模拟选项卡,模拟部分,选择普通的从下拉菜单。

  3. 使用Tic.toc,SIM命令行提示符处的命令,以测量模型在正常模式下模拟所需的时间:

    tic,[t,x,y] = sim('mymodel',10000); toc

    Tic.toc共同努力录制并返回经过的时间并显示一条消息,如下:

    运行时间为17.789364秒。

  4. 在这一点模拟选项卡,模拟部分,选择加速器快速的加速器从下拉菜单。通过单击构建模型的可执行文件跑步.只要模型在结构上保持不变,加速模式就会在随后的模拟中使用此可执行文件。加速模型中的代码再生讨论导致模型重新构建的因素。

  5. 在命令提示符下重新运行编译后的模型:

    tic,[t,x,y] = sim('mymodel',10000); toc

  6. 显示的经过时间显示加速模型的运行时。例如:

    运行时间为12.419914秒。

运行时间的差异(本例中为5.369450秒)显示了通过加速模型所获得的改进。

相关例子

更多关于