执行和单元测试Stateflow的图表对象

一个独立的状态流®图是一个MATLAB®类定义了有限状态机的行为。独立图表实现经典图表语义与MATLAB作为动作语言。可以通过使用MATLAB的全部功能,包括对在Simulink限制用于代码生成这些功能的图形程序万博1manbetx®。欲了解更多信息,请参阅对于执行创建Stateflow图的MATLAB对象

一个独立状态流图表的例子

文件sf_chart.sfx包含独立的状态流图表sf_chart。图表具有本地数据üXÿ

这个例子显示了如何执行从Stateflow的编辑器,并在MATLAB命令窗口此图表。

执行从一个独立的图表Stateflow的编辑

单元测试和调试一个独立的图表,就可以直接从状态流编辑器执行的流程图。在执行过程中,你从用户界面输入数据值和广播事件。

  1. 打开在状态流编辑器中的图表:

    编辑sf_chart.sfx

  2. 在符号窗格中,输入的值ü= 1并点击。图表执行其默认过渡和:

    • 初始化X为0的值。

    • 使得状态一个活动状态。

    • 分配ÿ到1的值。

    • 增加的价值X1。

    图表动画突出了活性状态一个。符号窗格显示的值ü= 1X= 1ÿ= 1。图表保持其当前状态和本地数据,直到下一个执行命令。

  3. 请点击。由于价值ü不满足条件[C <0]过渡状态的出一个时,该状态保持激活和的值Xÿ增加至2。符号窗格现在显示的值ü= 1X= 2ÿ= 2

  4. 在符号窗格中,输入的值ü= -1并点击。负数据值触发所述转变为状态。符号窗格显示的值ü= -1X= 1ÿ= 3

  5. 您可以修改任何图表数据中的符号窗格中的价值。例如,输入的值X= 3。图表将在下一时间执行步骤使用该数据值。

  6. 输入的值ü= 2并点击。图表转换回状态一个。符号窗格显示的值ü= 2X= 4ÿ= 5

  7. 要停止图表的动画,单击停止

要通过图表中的每个动作中断执行和步骤中,您执行图表前添加断点。欲了解更多信息,请参阅调试独立Stateflow框图

执行一个独立的图表中MATLAB

您可以执行MATLAB独立的图表,而无需打开Stateflow的编辑器。如果图表是开放的,那么编辑通过图表动画凸显活跃状态和转换。

  1. 打开在状态流编辑该图表。在MATLAB命令窗口中输入:

    编辑sf_chart.sfx

  2. 使用的名称创建Stateflow的图表对象SFX文件为独立图表为函数。指定数据的初始值ü作为一个名称 - 值对。

    S = sf_chart('U',1)
    Stateflow框图执行函数y =步骤(一个或多个)本地数据U:1×:1 Y:1个有效国家:{ 'A'}
    该命令创建图表对象小号,执行默认的过渡,并初始化值Xÿ。的状态流编辑动画图表并突出了活性状态一个

  3. 要执行图表,请致电功能。例如,假设您致电具有值函数ü= 1

    脚步,'U',1)
    DISP(S)
    Stateflow框图执行函数y =步骤(一个或多个)本地数据U:1×:2 Y:2种活跃状态:{ 'A'}
    由于价值ü不满足条件[C <0]过渡状态的出一个时,该状态保持激活和的值Xÿ增加为2。

  4. 与值再次执行图表,这个时候ü= -1

    脚步,'U',-1)
    DISP(S)
    Stateflow框图执行函数y =步骤(一个或多个)本地数据U:-1 X:1 Y:3种活跃状态:{ 'B'}
    负数据值触发所述转变为状态。的价值X降低到1的值和ÿ提高到3。

  5. 访问任何图表数据,使用点符号的值。例如,您可以值3分配给本地数据X请输入:

    s.x = 3
    Stateflow框图执行函数y =步骤(一个或多个)本地数据U:-1 X:3 Y:3种活跃状态:{ 'B'}
    独立图表将在下一时间执行步骤使用该数据值。

  6. 执行该图与当前的值ü= 2

    脚步,'U',2)
    DISP(S)
    Stateflow框图执行函数y =步骤(一个或多个)本地数据U:2×:4 Y:5种活跃状态:{ 'A'}
    图表转换回状态一个和修改的值Xÿ

  7. 要停止图表动画,删除Stateflow的图表对象小号

    删除(S)

执行多个图表对象

您可以通过执行相同的独立的图表中定义多个图表对象。并发图表对象独立地维持其内部的状态,但保持关联到在编辑器相同的图表。图表动画反映最近执行的图表对象的状态。执行多个图表对象而状态流编辑器是开放可产生混乱的结果,因此不推荐。

也可以看看

||

相关话题