人在仿真软件金宝app

金宝app仿真软件和基于模型的设计

可视化定点代数循环

几天前我必须调试一个非常大的模型生成一个错误类似如下:

代数循环错误

在我的例子中,循环涉及超过一百块和信号传播模型并结合在公共汽车,到处都是使它复杂的分析。

演出(以及为什么你不需要它了!)

多年来,我一直在使用的演出函数来突出代数循环。这是一个为一个简单的模型的例子,它是如何工作的:

代数循环突出了演出

然而,除了一些可用性挑战,一个主要困难的演出是它只能突出代数环的一个子集,当然,不能突出了人我需要解决。

限制影响我的代数环是由定点信号。这导致了一种“鸡生蛋还是蛋生鸡”问题。为的演出工作,它需要编译模型。但由于循环是由定点信号,仿真软件引擎知道它不能解决循环,和错误在编译模型,从而无法使用金宝app的演出

我记得一个相对较新的函数,我往往忘记:金宝appSimulink.BlockDiagram.getAlgebraicLoops

金宝appSimulink.BlockDiagram.getAlgebraicLoops

如果你读了文档页代数循环用心,你现在可能已经注意到,仿真软件提供了功能金宝app金宝appSimulink.BlockDiagram.getAlgebraicLoops,更现代的和有效的方法,突出代数循环。

上面的例子一样,这是它是什么样子:

循环使用Simulink.BlockDiagr金宝appam.getAlgebraicLoops强调

R2015a这个函数被引入,在R2017b增强能够找到并突出更多类型的代数循环。在我的例子中,它让我强调一个循环的定点信号。看到循环允许我找出最好的地方引入延迟和打破循环。

几个注意事项:

  • 块用红色突出显示的是我们所说的代数变量。引入延迟在该块的输出可能是一个好首先试图消除代数环(除非循环是连续的,在这篇文章中解释道)。
  • 如果我们检测到循环人工,它将突出显示虚线,这意味着你应该修理它使用最小化代数循环的特征原子子系统模型参考
  • 金宝appSimulink.BlockDiagram.getAlgebraicLoops还与属性返回一个输出对象的循环模型,包括处理所涉及的模块,你可以用在你方便的时候。

这里是一个定点模型使用一个代数循环强调:

循环使用Simulink.BlockDiagr金宝appam.getAlgebraicLoops强调

现在轮到你了

你在代数循环吗?是否使用金宝appSimulink.BlockDiagram.getAlgebraicLoops帮助你更好地理解它们?在下面的评论中让我们知道。

|
  • 打印

评论

留下你的评论,请点击在这里MathWorks账户登录或创建一个新的。