盖伊Simul万博1manbetxink的

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

万博1manbetxSimulink的调试器:监测变步求解器性能

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

这个星期,我将介绍如何万博1manbetxSimulink的调试器可用于的可变步骤求解器性能更深入的分析。为此,我们将使用调试器命令行界面

启动调试器

在这个例子中,我们使用的演示模型vdp.mdl。我使用启动调试器sldebug和使用的求解器跟踪信息strace的1。对于这个例子,我想运行仿真的只是一小部分,所以我会在5秒后使用设置断点tbreak 5

从命令行启动Simulink万博1manbetx的调试器

使用后继续命令(或单字符快捷C),显示大量的信息。

求解信息

让我们看一下,我们从0.284s到0.54s感动了成功的一步。

实施例成功步骤(点击查看原图)

在上面的屏幕截图,您可以了解:

  • TM值:我们需要在0.284s的一大步

  • TM - 哼:我们开始在0.284s一小步。基于状态的过程中上一步进化,求解器认为这小步应当由0.256秒前进。

  • TM - H:没有什么是从尝试此步骤阻止我们,我们开始从0.284s由0.256s的整合与推进

  • TS - HS:次要一步就成功了,我们前进的0.256s不超过求解公差

  • ERR - 九:在模型中的所有状态,以最大限度容忍一个最接近是状态1和它的归一化误差为8.2045e-2。标准化是由相对最大公差。上述1的误差超过公差和下方的一个通行证。

有关如何解释解算器跟踪信息的详细信息,你可以看看的文档strace的

为了确定哪一个国家的最大错误,请使用状态命令:

如图中的Simulink调试器连续状态万博1manbetx

对于这一步,最接近最大耐受状态(IX = 1)是来自积分块X2

步骤由最大步长不限

现在,让我们来看看不同类型的输出。如果我们向前迈进4.651s,我们注意到一个步骤,其中步长求解器的限制最大步长

实施例的限制步骤(点击查看原图)

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

失败的步骤

当然,并非所有的步骤向前推进顺利。有时求解需要采取措施恢复尊重公差。如果我们继续向前一步,在t = 13.21s,我们发现它花了2次尝试尊重宽容了。

例如失败的步骤(点击查看原图)

如果发生这种情况经常在你的模型,你可能想尝试其他的解算器,像僵硬的求解。如果这没有帮助,你可能想看看你的方程,并与最大误差块。

结论

这些例子我已经给表演的Simulink调试器如何能够有助于理解为什么变步长求解万博1manbetx器需要一定大小的步骤。这些例子主要集中在美国,但你可以通过使用类似功能,遵循零交叉原理相同zcbreakzclist

我要在这里停下来,因为这个职位已经是足够长的时间,但我想提一提,这些例子仅仅是冰山的一角。与Simulink万博1manbetx的调试器,所以能够看到次要期间的步骤和显示数据的任何信号或块进行整合的更精细的细节。

现在轮到你了

花时间去通过列表万博1manbetxSimulink的调试命令并让我们知道,如果你找到的东西,你会留下一个使用在这里评论

|

评论

要发表评论,请点击这里在您的帐户MathWorks公司签署或创建一个新的。