执行和单元测试Stateflow图对象
一个独立的Stateflow®图是一个MATLAB®类定义了有限状态机的行为。独立的图表与MATLAB实现经典图表语义动作语言。可以程序图通过使用MATLAB的全部功能,包括那些功能限制模型的代码生成金宝app®。有关更多信息,请参见为执行为MATLAB对象创建Stateflow图表。
一个独立的Stateflow图表的例子
该文件sf_chart.sfx
包含独立Stateflow图表sf_chart
。图表本地数据u
,x
,y
。
这个例子展示了如何执行这个图表从Stateflow编辑器和MATLAB命令窗口。
执行一个单独的图表的Stateflow编辑器
单元测试和调试一个独立的图表,你可以直接从Stateflow图表编辑器执行。在执行期间,您输入数据值和广播事件的用户界面。
在Stateflow编辑器中打开图表:
编辑sf_chart.sfx
在符号面板中,输入一个值
u
= 1并点击运行。图表执行它的缺省转换和:初始化
x
值0。使国家
一个
活动状态。分配
y
的价值1。增加的价值
x
为1。
图表动画强调了活动状态
一个
。的符号窗格显示的值u
= 1,x
= 1,y
= 1。图表维护其当前状态和本地数据,直到下一个执行命令。点击一步。因为的价值
u
不满足条件(u < 0)
过渡的状态一个
,这个状态仍然是积极的价值观x
和y
增加到2。的符号面板现在显示的值u
= 1,x
= 2,y
= 2。在符号面板中,输入一个值
u
=−1并点击一步。消极的数据值触发过渡到状态B
。的符号窗格显示的值u
=−1,x
= 1,y
= 3。您可以修改任何图表数据的价值符号窗格。例如,输入一个值
x
= 3。图表将使用这个数据值在下一次执行的步骤。输入一个值的
u
= 2并点击一步。图表转换回状态一个
。的符号窗格显示的值u
= 2,x
= 4,y
= 5。停止图表动画,点击停止。
中断执行,通过图表中的每个操作步骤,添加断点之前执行的图表。有关更多信息,请参见调试一个独立Stateflow图表。
执行一个单独的表中MATLAB
您可以执行一个单独的图表在MATLAB打开Stateflow编辑器。如果图是开放的,那么通过图表动画编辑强调积极的状态和转换。
打开Stateflow图表的编辑器。在MATLAB命令窗口中,输入:
编辑sf_chart.sfx
创建Stateflow图表对象使用的名称
自解压
文件独立的表函数。为数据指定初始值u
作为一个名称-值对。s = sf_chart (u = 1)
Stateflow图表执行函数y = (s)本地数据u步:1 x: 1 y: 1积极状态:{A}
年代
执行缺省转换,并初始化的值x
和y
。Stateflow编辑的图表和强调了活动状态一个
。执行表,调用
一步
函数。例如,假设你所说的一步
函数的值u
= 1:步骤(s, u = 1)
disp (s)
Stateflow图表执行函数y = (s)本地数据u步:1 x: 2 y: 2活跃状态:{A}
u
不满足条件(u < 0)
过渡的状态一个
,这个状态仍然是积极的价值观x
和y
增加到2。再次执行表,这次的价值
u
=−1:步骤(s, u = 1)
disp (s)
Stateflow图表执行函数y = (s)本地数据u步:1 x: 1 y: 3活跃状态:{B}
B
。的价值x
减少1和的值y
增加到3。访问任何图表数据的价值,使用点符号。例如,您可以指定一个值为3的本地数据
x
通过输入:年代。x= 3
Stateflow图表执行函数y = (s)本地数据u步:1 x: 3 y: 3活跃状态:{B}
执行图的价值
u
= 2:步骤(s, u = 2)
disp (s)
Stateflow图表执行函数y = (s)本地数据u步:2 x: 4 y: 5活跃状态:{A}
一个
和修改的值x
和y
。停止动画的图表,删除Stateflow图对象
年代
:删除(年代)
执行多个图表对象
可以执行多个图表对象定义的相同的独立的图表。独立并发图对象维护其内部状态,但仍关联到相同的图表编辑器中。图表动画反映最近执行的状态图对象。执行多个图表对象而Stateflow编辑器打开可以产生令人困惑的结果,不推荐。