2

如何根据某个值在 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

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

4

2 回答 2

1

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

很难确切地知道您想要做什么,但是您可以绘制指示状态更改的箭头并添加一个检查变量选择值的函数。首先,您必须配置您的状态图以承认“选择”作为来自 simulink 的输入。定义状态并在箭头转换中放置“[choice == 1]”、“[choice == 2]”等(没有“”)。

您应该获得这样的模型: 在此处输入图像描述 在此处输入图像描述

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

希望这可以帮助,

于 2012-10-13T22:07:46.123 回答
1

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

链接的文档页面上的示例应该让您了解如何实现这一点。

于 2012-10-19T21:09:01.867 回答