主要内容

在你的模型中识别代数循环

如果仿金宝app真软件®在你的模型中报告一个代数循环,代数循环求解器可能能够解决这个循环。如果S金宝appimulink不能解决这个循环,有几种方法可以消除这个循环。

使用此工作流来决定如何消除代数循环。

突出模型中的代数循环

使用getAlgebraicLoops来识别模型中的代数循环,并在Simulink编辑器中突出显示它们。金宝app用这种方法:

  • 您可以遍历模型层次结构的多个层来定位代数循环。

  • 你可以识别实数和人工代数循环。

  • 您可以同时可视化模型中的所有循环。

  • 您不需要钻入和钻出模型,也不需要跨越边界。

  • 您不需要按顺序检测循环。此外,您不需要在每次检测和解决循环时编译模型。因此,您可以快速解决循环。

在整个模型上执行代数循环高亮显示,而不是在特定的子系统上。

  1. 打开模型。

  2. 诊断“模型配置参数”窗格,设置代数循环没有一个警告.将该参数设置为错误防止模型编译。

  3. 编译模型时不带任何错误。在突出显示任何代数循环之前,必须先编译模型。

  4. 在MATLAB®命令提示符中,输入:

    金宝appSimulink.BlockDiagram.getAlgebraicLoops (bdroot)

getAlgebraicLoops函数强调模型中的代数循环,包括子系统中的代数循环。它还创建了一个包含每个循环信息的报告:

  • 实线表示实代数循环。

  • 虚线表示人工代数循环。

  • 一个红色的高亮部分出现在分配了一个代数变量的块周围。

  • 循环ID帮助您识别包含特定循环的系统。

自定义报表通过选择或清除可见复选框用于循环。

一旦确定了模型中的代数循环,就可以通过编辑模型来删除它们。关闭突出显示报告并对模型进行更改。只有在关闭报表后,才能编辑模型。

金宝appSimulink不保存循环高亮显示。关闭模型或退出显示将删除循环突出显示。

使用代数循环诊断

金宝appSimulink在仿真初始化期间检测代数循环,例如,当您更新图表时。您可以设置代数循环诊断来报告错误或警告,如果软件检测到任何代数循环在您的模型。

诊断窗格中,设置模型配置参数代数循环参数:

  • 没有一个Sim金宝appulink试图解决代数循环;仅在代数循环无法解决时报告错误。

  • 警告——代数循环导致警告。金宝appSimulink试图解决代数循环;仅在代数循环无法解决时报告错误。

  • 错误——代数循环停止初始化。在Simulink尝试解决循环之前,手动检查循环。金宝app

这个示例演示如何使用代数循环诊断突出显示sldemo_hydcyl模型。

  1. 打开sldemo_hydcyl模型

  2. 诊断窗格中,设置模型配置参数代数循环参数错误

  3. 试着模拟这个模型

当Simu金宝applink在初始化过程中检测到代数循环时,模拟将停止。Diagnostic Viewer会显示一条错误消息,并列出模型中属于该代数循环的所有块。在模型中,红色高亮显示组成循环的块和信号。

要删除突出显示,请关闭诊断查看器。

相关的话题