在Matlab / Simulink Stateflow中设置事件

时间:2012-10-12 09:33:46

标签: matlab simulink stateflow

如何根据某个值在Simulink Stateflow(状态图)中设置事件。我的意思是这个。 我有一个名为“选择”的变量。这个“选择”来自simulink块的输入。选择的值在1到4之间。所以我想做的就是:

if choice == 1 then trigger/set eventBlue
if choice == 2 then trigger/set eventRed
if choice == 3 then trigger/set eventWhite
if choice == 4 then trigger/set eventGreen
else trigger/set eventYellow

那我该怎么做?命令是什么?

2 个答案:

答案 0 :(得分:1)

我建议你看一下州流媒体网络研讨会:http://www.mathworks.com/products/stateflow/。还有许多状态流示例可以帮助您了解如何使用库。查看此帮助网页: http://www.mathworks.com/help/stateflow/examples/index.html

很难确切地知道你想要做什么,但你可以画出指示状态变化的箭头,并添加一个检查变量选择值的函数。首先,您必须配置状态图以允许“选择”作为来自simulink的输入。定义状态并在箭头过渡中放置'[choice == 1]','[choice == 2]'等等(不带'')。

您应该获得这样的模型: enter image description here enter image description here

脉冲发生器配置为创建一系列0和1,以激活转换。

希望这有帮助,

答案 1 :(得分:1)

对于您所描述的问题,我建议您查看Stateflow中的inner transitions。使用内部转换,您可以避免使用[x==1]等等条件创建从每个状态到每个其他状态的转换。

链接到的doc页面上的示例应该可以让您了解如何实现它。