一个独立的状态流®图是一个MATLAB®类定义了有限状态机的行为。独立图表实现经典图表语义与MATLAB作为动作语言。可以通过使用MATLAB的全部功能,包括对在Simulink限制用于代码生成这些功能的图形程序万博1manbetx®。欲了解更多信息,请参阅对于执行创建Stateflow图的MATLAB对象。
文件sf_chart.sfx
包含独立的状态流图表sf_chart
。图表具有本地数据ü
,X
和ÿ
。
这个例子显示了如何执行从Stateflow的编辑器,并在MATLAB命令窗口此图表。
单元测试和调试一个独立的图表,就可以直接从状态流编辑器执行的流程图。在执行过程中,你从用户界面输入数据值和广播事件。
打开在状态流编辑器中的图表:
编辑sf_chart.sfx
在符号窗格中,输入的值ü
= 1并点击跑。图表执行其默认过渡和:
初始化X
为0的值。
使得状态一个
活动状态。
分配ÿ
到1的值。
增加的价值X
1。
图表动画突出了活性状态一个
。符号窗格显示的值ü
= 1,X
= 1和ÿ
= 1。图表保持其当前状态和本地数据,直到下一个执行命令。
请点击步。由于价值ü
不满足条件[C <0]
过渡状态的出一个
时,该状态保持激活和的值X
和ÿ
增加至2。符号窗格现在显示的值ü
= 1,X
= 2和ÿ
= 2。
在符号窗格中,输入的值ü
= -1并点击步。负数据值触发所述转变为状态乙
。符号窗格显示的值ü
= -1,X
= 1和ÿ
= 3。
您可以修改任何图表数据中的符号窗格中的价值。例如,输入的值X
= 3。图表将在下一时间执行步骤使用该数据值。
输入的值ü
= 2并点击步。图表转换回状态一个
。符号窗格显示的值ü
= 2,X
= 4和ÿ
= 5。
要停止图表的动画,单击停止。
要通过图表中的每个动作中断执行和步骤中,您执行图表前添加断点。欲了解更多信息,请参阅调试独立Stateflow框图。
您可以执行MATLAB独立的图表,而无需打开Stateflow的编辑器。如果图表是开放的,那么编辑通过图表动画凸显活跃状态和转换。
打开在状态流编辑该图表。在MATLAB命令窗口中输入:
编辑sf_chart.sfx
使用的名称创建Stateflow的图表对象SFX
文件为独立图表为函数。指定数据的初始值ü
作为一个名称 - 值对。
S = sf_chart('U',1)
Stateflow框图执行函数y =步骤(一个或多个)本地数据U:1×:1 Y:1个有效国家:{ 'A'}
小号
,执行默认的过渡,并初始化值X
和ÿ
。的状态流编辑动画图表并突出了活性状态一个
。
要执行图表,请致电步
功能。例如,假设您致电步
具有值函数ü
= 1:
脚步,'U',1)
DISP(S)
Stateflow框图执行函数y =步骤(一个或多个)本地数据U:1×:2 Y:2种活跃状态:{ 'A'}
ü
不满足条件[C <0]
过渡状态的出一个
时,该状态保持激活和的值X
和ÿ
增加为2。
与值再次执行图表,这个时候ü
= -1:
脚步,'U',-1)
DISP(S)
Stateflow框图执行函数y =步骤(一个或多个)本地数据U:-1 X:1 Y:3种活跃状态:{ 'B'}
乙
。的价值X
降低到1的值和ÿ
提高到3。
访问任何图表数据,使用点符号的值。例如,您可以值3分配给本地数据X
请输入:
s.x = 3
Stateflow框图执行函数y =步骤(一个或多个)本地数据U:-1 X:3 Y:3种活跃状态:{ 'B'}
执行该图与当前的值ü
= 2:
脚步,'U',2)
DISP(S)
Stateflow框图执行函数y =步骤(一个或多个)本地数据U:2×:4 Y:5种活跃状态:{ 'A'}
一个
和修改的值X
和ÿ
。
要停止图表动画,删除Stateflow的图表对象小号
:
删除(S)
您可以通过执行相同的独立的图表中定义多个图表对象。并发图表对象独立地维持其内部的状态,但保持关联到在编辑器相同的图表。图表动画反映最近执行的图表对象的状态。执行多个图表对象而状态流编辑器是开放可产生混乱的结果,因此不推荐。