金宝appSimulink调试器:监控可变步长求解器性能
几个月前我介绍我最喜欢的命令,用来分析变步长求解器的性能.
本周,我将介绍如何金宝app仿真软件调试器可以用于更深入地分析变步长求解器的性能。为此,我们将使用调试器命令行界面.
启动调试器
对于这个示例,让我们使用演示模型vdp.mdl.我使用启动调试器sldebug并启用对求解器信息的跟踪strace 1.对于本例,我只想运行模拟的一小部分,所以我将在使用后5秒设置断点tbreak 5.
在使用了继续命令(或单字符快捷方式)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.
要确定哪个状态有最大的误差,使用州命令:
对于这一步,最接近最大容限的状态(第九= 1)来自Integrator块x2.
步长受最大步长限制
现在让我们看看另一种类型的输出。如果我们向前移动到4.651,我们会注意到步长受到求解器的限制最大的步长:
如果您在模型中看到许多这样的情况,这可能意味着您可以在求解器配置中增加最大步长。
失败的步骤
当然,并不是所有的步骤都进展顺利。有时求解器需要后退一步以尊重容忍。如果我们继续向前迈进,在t=13.21s时,我们注意到在尊重容忍之前需要进行两次尝试。如果这种情况经常发生在您的模型中,那么您可能需要尝试其他求解器,比如刚性求解器。如果这没有帮助,您可能需要查看您的方程和具有最大误差的块。
结论
我给出的示例显示了Simulink调试器如何有助于理解为什么可变步长求解器需要金宝app特定大小的步骤。这些示例主要关注状态,但您可以通过使用类似于zcbreak和zclist.
因为这篇文章已经足够长了,所以我需要在这里停下来,但我想说的是,这些例子只是冰山一角。使用Simulin金宝appk调试器,可以看到在小步骤中完成的集成的更详细的细节,并显示任何信号或块的数据。
现在轮到你了
花点时间浏览一下清单金宝app仿真软件调试器命令如果你发现了有用的东西,请留下这里的评论
评论
要留下评论,请点击在这里登录到您的MathWorks帐户或创建一个新帐户。