Simulin万博1manbetxk上的Guy

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

获得最大的快速加速器模式

在使用Simulink时,重要的是配万博1manbetx置您的模型和工作流,以尽可能有效地处理您正在处理的任务。

今天,我将展示如何设置一个模型,以获得最大的性能,当你需要运行许多模拟和变化参数。如果你做蒙特卡罗模拟或系统优化,通常会遇到这种情况。

快速的加速器

作为解释在这里,快速加速模式可以通过为您的模型生成可执行文件来加速模拟。由于各种原因,不同型号的加速会有所不同。就我个人而言,我见过一些模型在快速加速器模式下运行速度快10倍以上。

快速的加速器

RapidAcceleratorUpToDateCheck掉

在模型中单击播放按钮或使用sim卡命令,Simuli万博1manbetxnk将验证您的模型是否已更改。如果模型在结构上没有更改,则不会重新生成快速加速器可执行文件。

快速加速器的一个好处是,一旦生成了可执行文件,就可以跳过Simulink验证模型是否更改的这部分。万博1manbetx对于大型模型,这可以节省大量时间,使初始化时间为零。

让我们看看如何使用一个简单的演示来完成这一点sldemo_bounce我想改变恢复系数,我指定为k在方块对话框中。

sldemo_bounce

如果我想调优的值k,我需要定义它为a万博1manbetx仿真软件。参数对象:

k = 万博1manbetxSimulink。参数k.CoderInfo.StorageClass =“万博1manbetxSimulinkGlobal”;k.Value = -0.9;

并且我在模型配置中启用内联参数选项。

内联参数

一旦完成,我显式地构建了快速加速器可执行文件:

mdl =“sldemo_bounce”;rtp = 万博1manbetxSimulink.BlockDiagram.buildRapidAcceleratorTarget(mdl);

如您所见,这将返回一个包含与模型中可调参数相关的所有信息的结构。使用这个结构,我们可以为我们想要运行的所有值创建一个运行时参数结构数组:

K_values = [-0.9:0.1:-0.1];for i = 1:length(k_values) paramSet(i) = 万博1manbetxSimulink.BlockDiagram。modifyTunableParameters(rtp, 'k', k_values(i));结束

我们准备好模拟了,通过传递到sim卡命令时,我们传递参数RapidAcceleratorUpToDateCheck而且RapidAcceleratorParameterSets

I = 1:length(k_values) simout(I) = sim(mdl,“SimulationMode”“快速”...“RapidAcceleratorUpToDateCheck”“关闭”...“RapidAcceleratorParameterSets”paramSet(我));结束

更新:在MATLAB R2017a中的函数PARSIM介绍了。为了更好地体验在循环中模拟模型(串联或并行),我们建议使用PARSIM而不是For /parfor内部的SIM。请参阅最近的博客文章使用parsim可以很容易地并行模拟模型欲知详情。

现在轮到你了

试一试,让我们知道你的想法,留下一个这里的评论

|

评论

要发表评论,请点击此处登录到您的MathWorks帐户或创建一个新帐户。