我的简单Stateflow模型显示错误

时间:2014-11-15 05:35:34

标签: matlab simulink stateflow

我几乎是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。

P.S。由于某些原因,simulink方案上的stateflow缩略图未显示更新的模型;没有conditionif_outfput变量了! enter image description here enter image description here

1 个答案:

答案 0 :(得分:0)

好吧,错误信息非常明显:您没有将Stateflow图表的输入Condition连接到任何内容,因此错误。将它连接到Simulink中的信号(无论代表您的状态信号)。同样,您还没有将图表的输出连接到任何东西。你说这些变量不再存在,但Stateflow似乎并不这么认为。您是否已从Model Explorer中删除它们?如果没有,Stateflow仍然会认为它们是图表的一部分。有关详细信息,请参阅文档中的Use the Model Explorer with Stateflow Objects

对于计时器,是的,这是可能的。目前,您S2时退出S3input ==1。您可以将转换更改为[input == 1] || after(2000,sec)(我认为)。您可能需要在模型配置参数中启用对绝对时间的支持。有关详细信息,请参阅文档中的Control Chart Execution Using Temporal Logic