2

我几乎是 Simulink 和 Stateflow 的新手。我正在尝试对一些简单的状态机进行建模。但是在尝试运行模型时,它会显示错误(在 Matlab 主屏幕上)。

Warning: Input port 1 of 'sample/If' is not connected. 
Warning: Output port 1 of 'sample/If' is not connected. 
Parsing failed for machine: "sample"(#90)

1)这有什么问题吗?

2) 还有一个问题:如何在 S2 上添加计时器?例如,我们不能在 S2 上停留超过 2 分钟。因此,一旦我们进入 S2,就会启动一个计时器,当它达到 2 分钟时,应该转换到 S3。

PS由于某些原因,simulink方案上的状态流缩略图没有显示更新的模型;没有conditionif_outfput变量了! 在此处输入图像描述 在此处输入图像描述

4

1 回答 1

0

好吧,错误消息是不言自明的:您没有Condition将 Stateflow 图的输入连接到任何东西,因此出现了错误。将其连接到 Simulink 中的信号(无论代表您的条件信号)。同样,您也没有将图表的输出连接到任何东西。您说这些变量不再存在,但 Stateflow 似乎不这么认为。您是否从模型资源管理器中删除了它们?如果不是,Stateflow 仍会认为它们是图表的一部分。有关更多详细信息,请参阅文档中的将 Model Explorer 与 Stateflow 对象一起使用。

对于计时器,是的,这是可能的。此刻,您退出S2S3when input ==1。您可以将过渡更改为[input == 1] || after(2000,sec)(我认为)。您可能需要在模型配置参数中启用对绝对时间的支持。有关更多详细信息,请参阅文档中的使用时序逻辑执行控制图。

于 2014-11-15T15:15:13.713 回答