人在仿真软件金宝app

金宝appSimulink &基于模型的设计

金宝appSimulink调试器:监控可变步长求解器性能

几个月前我介绍我最喜欢的命令,用来分析变步长求解器的性能

本周,我将介绍如何金宝app仿真软件调试器可以用于更深入地分析变步长求解器的性能。为此,我们将使用调试器命令行界面

启动调试器

对于这个示例,让我们使用演示模型vdp.mdl.我使用启动调试器sldebug并启用对求解器信息的跟踪strace 1.对于本例,我只想运行模拟的一小部分,所以我将在使用后5秒设置断点tbreak 5

从命令行启动Simulink金宝app调试器

在使用了继续命令(或单字符快捷方式)c),就会显示很多信息。

解算器信息

让我们看看我们从0.284秒移动到0.54秒的成功步骤。

例子成功的一步(点击查看完整尺寸)

在上面的截图中,你可以识别:

  • TM:我们将在0.284点上迈出重要一步

  • Tm - Hm:我们在0.284点开始小幅上涨。基于前一步状态的演变,求解器认为这一次要步骤应该提前0.256秒。

  • Tm - H:没有什么可以阻止我们尝试这一步,我们从0.284开始集成,并提高0.256

  • Ts -海关:小步骤是成功的,我们向前移动了0.256秒,没有超过求解器的公差

  • 呃——第九:在模型的所有状态中,最接近最大公差的状态为状态1,其归一化误差为8.2045e-2。正火是相对于最大公差进行的。大于1的错误超过公差,小于1的错误通过。

有关如何解释求解器跟踪信息的详细信息,请参阅文档strace

要确定哪个状态有最大的误差,使用命令:

如Simulink调试器所示的连续状态金宝app

对于这一步,最接近最大容限的状态(第九= 1)来自Integrator块x2

步长受最大步长限制

现在让我们看看另一种类型的输出。如果我们向前移动到4.651,我们会注意到步长受到求解器的限制最大的步长

例子有限的步骤(点击查看完整尺寸)

如果您在模型中看到许多这样的情况,这可能意味着您可以在求解器配置中增加最大步长。

失败的步骤

当然,并不是所有的步骤都进展顺利。有时求解器需要后退一步以尊重容忍。如果我们继续向前迈进,在t=13.21s时,我们注意到在尊重容忍之前需要进行两次尝试。

例子失败的步骤(点击查看完整尺寸)

如果这种情况经常发生在您的模型中,那么您可能需要尝试其他求解器,比如刚性求解器。如果这没有帮助,您可能需要查看您的方程和具有最大误差的块。

结论

我给出的示例显示了Simulink调试器如何有助于理解为什么可变步长求解器需要金宝app特定大小的步骤。这些示例主要关注状态,但您可以通过使用类似于zcbreakzclist

因为这篇文章已经足够长了,所以我需要在这里停下来,但我想说的是,这些例子只是冰山一角。使用Simulin金宝appk调试器,可以看到在小步骤中完成的集成的更详细的细节,并显示任何信号或块的数据。

现在轮到你了

花点时间浏览一下清单金宝app仿真软件调试器命令如果你发现了有用的东西,请留下这里的评论

|

评论

要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。