主要内容

执行和单元测试Stateflow图对象

一个独立的Stateflow®图是一个MATLAB®类定义了有限状态机的行为。独立的图表与MATLAB实现经典图表语义动作语言。可以程序图通过使用MATLAB的全部功能,包括那些功能限制模型的代码生成金宝app®。有关更多信息,请参见为执行为MATLAB对象创建Stateflow图表

一个独立的Stateflow图表的例子

该文件sf_chart.sfx包含独立Stateflow图表sf_chart。图表本地数据u,x,y

这个例子展示了如何执行这个图表从Stateflow编辑器和MATLAB命令窗口。

执行一个单独的图表的Stateflow编辑器

单元测试和调试一个独立的图表,你可以直接从Stateflow图表编辑器执行。在执行期间,您输入数据值和广播事件的用户界面。

  1. 在Stateflow编辑器中打开图表:

    编辑sf_chart.sfx

  2. 符号面板中,输入一个值u= 1并点击运行。图表执行它的缺省转换和:

    • 初始化x值0。

    • 使国家一个活动状态。

    • 分配y的价值1。

    • 增加的价值x为1。

    图表动画强调了活动状态一个。的符号窗格显示的值u= 1,x= 1,y= 1。图表维护其当前状态和本地数据,直到下一个执行命令。

    图表动画显示状态是积极的。

  3. 点击一步。因为的价值u不满足条件(u < 0)过渡的状态一个,这个状态仍然是积极的价值观xy增加到2。的符号面板现在显示的值u= 1,x= 2,y= 2

    图表动画显示状态是积极的。

  4. 符号面板中,输入一个值u=−1并点击一步。消极的数据值触发过渡到状态B。的符号窗格显示的值u=−1,x= 1,y= 3

    图表动画显示,B是活跃状态。

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

  6. 输入一个值的u= 2并点击一步。图表转换回状态一个。的符号窗格显示的值u= 2,x= 4,y= 5

    图表动画显示状态是积极的。

  7. 停止图表动画,点击停止

中断执行,通过图表中的每个操作步骤,添加断点之前执行的图表。有关更多信息,请参见调试一个独立Stateflow图表

执行一个单独的表中MATLAB

您可以执行一个单独的图表在MATLAB打开Stateflow编辑器。如果图是开放的,那么通过图表动画编辑强调积极的状态和转换。

  1. 打开Stateflow图表的编辑器。在MATLAB命令窗口中,输入:

    编辑sf_chart.sfx

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

    s = sf_chart (u = 1)
    Stateflow图表执行函数y = (s)本地数据u步:1 x: 1 y: 1积极状态:{A}
    这个命令创建图表对象年代执行缺省转换,并初始化的值xy。Stateflow编辑的图表和强调了活动状态一个

    图表动画显示状态是积极的。

  3. 执行表,调用一步函数。例如,假设你所说的一步函数的值u= 1:

    步骤(s, u = 1)
    disp (s)
    Stateflow图表执行函数y = (s)本地数据u步:1 x: 2 y: 2活跃状态:{A}
    因为的价值u不满足条件(u < 0)过渡的状态一个,这个状态仍然是积极的价值观xy增加到2。

    图表动画显示状态是积极的。

  4. 再次执行表,这次的价值u=−1:

    步骤(s, u = 1)
    disp (s)
    Stateflow图表执行函数y = (s)本地数据u步:1 x: 1 y: 3活跃状态:{B}
    消极的数据值触发过渡到状态B。的价值x减少1和的值y增加到3。

    图表动画显示,B是活跃状态。

  5. 访问任何图表数据的价值,使用点符号。例如,您可以指定一个值为3的本地数据x通过输入:

    年代。x= 3
    Stateflow图表执行函数y = (s)本地数据u步:1 x: 3 y: 3活跃状态:{B}
    独立的图表将使用这个数据值在下一次执行的步骤。

  6. 执行图的价值u= 2:

    步骤(s, u = 2)
    disp (s)
    Stateflow图表执行函数y = (s)本地数据u步:2 x: 4 y: 5活跃状态:{A}
    图表转换回状态一个和修改的值xy

    图表动画显示状态是积极的。

  7. 停止动画的图表,删除Stateflow图对象年代:

    删除(年代)

执行多个图表对象

可以执行多个图表对象定义的相同的独立的图表。独立并发图对象维护其内部状态,但仍关联到相同的图表编辑器中。图表动画反映最近执行的状态图对象。执行多个图表对象而Stateflow编辑器打开可以产生令人困惑的结果,不推荐。

另请参阅

||

相关的话题