1

我有一个带有 2 个用代码创建的图表的模型。我的第一个图表是一个测试模拟,TIMER EXPIREDTimerStatus = 1;. 我的计时器图表发生错误:

当我尝试模拟时,我得到了错误:

'ES_TestDS/Timer_principal' updates persistent or state variables while computing outputs, therefore it cannot be used in an algebraic loop. However, it is in a loop with the following blocks. For more information, see Algebraic Loops with MATLAB Function and Stateflow Blocks.

我怎样才能解决这个问题 ?我读过摩尔图,但我不知道如何将我的转换为摩尔图。

编辑1:除了错误之外,我还有这个警告:

If the inport 'ES_TestDS/Timer_principal/Start_Timer' of subsystem 'ES_TestDS/Timer_principal' involves direct feedback, then an algebraic loop exists, which Simulink cannot remove. Consider clearing the 'Minimize algebraic loop occurrences' parameter to avoid this warning.

相同的Stop_Timer

编辑:如果我显示我的计时器和图表之间的联系,也许它会有所帮助

4

1 回答 1

0

我找到了一个手动解决方案:

  • 转到模型资源管理器并将状态机类型设置Moore为导致错误的图表

在此处输入图像描述

  • 删除entry, during, exit ...图表中的所有语句

问题是如果有人知道,我仍然不知道如何使用 Matlab 代码设置状态机类型

编辑 :cht.StateMachineType = 'Moore';

于 2019-08-01T08:41:15.880 回答