主要内容

使用状态表示操作模式

A.状态描述无功系统的操作模式。在状态流中®图表、状态用于顺序设计,以创建状态转换图。

状态可以是活跃的或不活跃的。状态的活动或不活动可以根据事件和条件而改变。事件的发生通过使状态变为活动状态或非活动状态来驱动状态转换图的执行。有关更多信息,请参见.

创建一个国家

您可以通过在编辑器中为特定图表(块)绘制状态来创建状态。遵循以下步骤:

  1. 选择状态工具:

  2. 将指针移动到绘图区域。

    在绘图区域中,指针变为状态形状(带椭圆形角的矩形)。

  3. 在特定位置单击以创建状态。

    创建的状态显示为一个问号(?)标签位于其左上角。

  4. 点击问号。

    文本光标将显示在问号的位置。

  5. 输入状态的名称,完成后单击状态外部。

状态的标签指定其所需的名称和可选操作。看见标签州更多细节。

移动和调整状态

要移动一个状态,请执行以下操作:

  1. 单击并拖动状态。

  2. 将其释放到新位置。

要调整状态大小,请执行以下操作:

  1. 把你的指针放在州的一个角落。

    当指针位于某个角上时,它将显示为双端箭头(仅限PC;指针外观因其他平台而异)。

  2. 单击并拖动状态的角以调整状态的大小,然后释放鼠标左键。

创建子州和超州

A.亚州是一种只有当称为其父状态的另一状态处于活动状态时才能处于活动状态的状态。有子州的州被称为超级大国. 要创建子状态,请单击“状态”工具并将新状态拖动到要成为超级状态的状态中。状态流程图以指定的父状态创建子状态。可以以这种方式将状态嵌套到任何深度。要更改子状态的父级,请将其从图表中的当前父级拖动到新父级。

笔记

父状态必须在图形上足够大,以容纳它的所有子状态。在将新的子状态拖入父状态之前,可能需要调整其父状态的大小。通过将超状态声明为子图表,可以绕过对大图形大小状态的需要。看到用子图封装模态逻辑获取详细信息。

集团国家

何时将一个国家分组

将状态分组以将状态内的所有图形对象一起移动。对状态进行分组时,图表将状态及其内容视为单个图形单元。此行为简化了图表的编辑。例如,移动分组状态会移动该状态内的所有子状态和函数。

如何将一个国家分组

您可以通过右键单击状态,然后选择组和子图表>在关联菜单中。该状态显示为灰色阴影,表示它现在已分组。

何时取消状态分组

在执行以下操作之前,必须取消对状态的分组:

  • 选择状态中的对象

  • 将其他图形对象移动到状态

    如果尝试将对象(如状态和图形函数)移动到分组状态,则会看到无效的交叉点错误消息。此外,具有无效交点的对象具有红色边框。

如何解组状态

您可以通过右键单击状态,然后清除该状态来取消分组组和子图表>在关联菜单中。状态的背景不再显示为灰色。

指定子状态分解

通过设置超级状态的分解,可以指定超级状态是包含并行(AND)状态还是独占(or)状态。一种状态,当它处于活动状态时,其子状态都处于活动状态,它具有并行(和)分解。当一个子状态处于活动状态时,只有一个子状态处于活动状态的状态具有排他(或)分解。空状态的分解是独占的。

要更改状态的分解,请选择状态,右键单击以显示状态分解上下文菜单,并选择或(独家)和(平行)从菜单上。

还可以指定图表的状态分解。在这种情况下,状态流程图将其顶级状态视为子状态。图表使用独占分解创建状态。要指定图表的分解,请取消选择任何选定对象,右键单击以显示图表的分解分解上下文菜单,并选择或(独家)和(平行)从菜单上。

亚态的出现表明其超态的分解。独占子状态有实边界,平行子状态,虚线边界。平行子态的右上角也包含一个数字。数字表示子状态相对于其同级子状态的激活顺序。

指定并行状态的激活顺序

您可以使用以下两种方法之一指定激活顺序:显式排序或隐式排序。

  • 默认情况下,创建新的状态流程图时,显式排序适用。在这种情况下,您可以逐个状态指定激活顺序。

  • 您还可以通过让图表根据位置对并行状态进行排序来重写显式排序。这种模式被称为隐式排序.

有关更多信息,请参见平行态的显式排序平行态的隐式排序.

笔记

一个并行状态的激活顺序出现在它的右上角。

更改状态属性

使用“状态”对话框可以查看和更改状态的属性。要访问“状态”对话框,请执行以下操作:

  1. 右键单击该状态并选择属性.

    此时会出现状态属性对话框。有关属性的说明,请参阅可在“常规”窗格中设置的属性可以在日志窗格中设置的属性.

  2. 修改特性设置,然后单击以下按钮之一:

    • 申请保存更改并保持“状态”对话框打开的步骤

    • 取消返回到以前的设置

    • 好啊保存更改并关闭对话框

    • 帮助以在HTML浏览器窗口中显示文档

可在“常规”窗格中设置的属性

这个一般此时将显示“状态属性”对话框的窗格,如图所示。

属性中可以设置这些属性一般窗玻璃

所有物

描述

名称

Stateflow图表名称;只读;单击此超文本链接将状态显示在前台。

执行令

设置并行(AND)状态的执行顺序。在exclusive (OR)状态下不显示此属性。看到平行国家执行令.

创建用于监视的数据

选择此选项可创建状态活动数据。看见通过活动状态数据监视状态活动.

函数内联选项

选择以下选项之一以控制生成代码中状态函数的内联:

  • 汽车

    基于内部启发式的内联状态函数。

  • 内联

    只要父函数不是递归的一部分,就始终内联父函数中的状态函数。看见生成代码中的内联状态函数(金宝appSimulink编码器)

  • 作用

    为每个状态创建单独的静态函数。

标签

状态的标签,其中包括状态及其关联操作的名称。看见标签州.

可以在日志窗格中设置的属性

这个日志记录此时将显示“状态属性”对话框的窗格,如图所示。

属性中可以设置这些属性日志记录窗玻璃

所有物

描述

记录自我活动

将自活动值保存到MATLAB中®模拟期间的工作空间。

测试点

将状态指定为可在模型模拟期间使用浮动范围监视的测试点。您还可以将测试点值记录到MATLAB工作空间对象中。看见监控状态流程图中的测试点.

日志名称

指定与记录的自我活动关联的名称。金宝app动态仿真模块®软件默认使用信号名称作为其日志记录名称。要指定自定义日志记录名称,请选择风俗从列表框中选择,然后在相邻的编辑字段中输入新名称。

限制数据点到最后

将记录的自我活动限制为最近的样本。

大量毁灭

通过跳过样本来限制记录的自我活动。例如,抽取因子为2将每隔一个样本保存一次。

可以在“文档”窗格中设置的属性

这个文档此时将显示“状态属性”对话框的窗格,如图所示。

属性中可以设置这些属性文档窗玻璃

所有物

描述

描述

文字的描述或注释。

文档链接

输入URL地址或通用MATLAB命令。例如www.tatmou.com,mailto: email_address编辑/规范/数据/ speed.txt.

标签州

状态的标签指定状态所需的名称,以及在状态处于活动状态时输入、退出或接收事件时执行的可选操作。

状态标签的通用格式如下。

的名字/条目:输入操作在:行动中退出:退出行动绑定:数据事件在…上事件或消息名称:关于事件或消息的名称操作

此格式的斜体条目具有以下含义:

关键词

进入

描述

不适用

的名字

使用可选斜杠对状态的唯一引用

进入

输入操作

作为向特定状态转换的结果而输入特定状态时执行的操作

行动中

当状态处于活动状态且没有有效的状态转换时接收到事件时执行的操作

退出前女友

退出行动

由于从状态转移而退出状态时执行的操作

绑定

数据事件

将指定的数据或事件绑定到此状态。绑定数据只能由该状态或其子状态更改,但可以由其他状态读取。绑定事件只能由该状态或其子级广播。

在…上

事件或消息名称

event_name行动

指定的事件或消息

当状态处于活动状态且指定事件发生或消息存在时执行的操作。

有关更多信息,请参见通过广播事件同步模型组件通过发送消息与状态流图通信.

输入名称

最初,状态的标签是空的。状态流程图通过显示?在州的标签位置(左上角)。按照以下步骤输入状态的名称,开始标记状态:

  1. 点击状态。

    该州将变为高亮显示颜色,并在该州的左上角显示一个问号字符。

  2. 点击?编辑标签。

    此时会出现一个编辑光标。您现在可以自由键入标签。

    在州标签的第一行输入州名称。名称区分大小写。为避免命名冲突,请不要将相同的名称分配给同级州。但是,可以将相同的名称分配给不共享同一父级的州。

    标记好状态后,点击它外面。否则,继续输入操作。若要重新编辑标签,请单击要编辑的字符位置附近的标签文本。

输入操作

在标签中输入状态名称后,可以输入以下任何操作类型的操作:

  • 进入行动—以关键字开始新行进入,后跟冒号,在一行或多行上后跟一个或多个操作语句。要在同一行上分隔多个操作,请使用逗号或分号。

    您可以在与州名称相同的行上开始进入操作。在这种情况下,以正斜杠开始进入操作(/)而不是entry关键字。

  • 退出操作—以关键字开始新行退出前女友,后跟冒号,在一行或多行上后跟一个或多个操作语句。要在同一行上分隔多个操作,请使用逗号或分号。

  • 在行动—以关键字开始新行,后跟冒号,在一行或多行上后跟一个或多个操作语句。要在同一行上分隔多个操作,请使用逗号或分号。

  • 约束动作—以关键字开始新行绑定在一行或多行上,后跟一个冒号,后跟一个或多个数据或事件。要在同一行中分隔多个动作,请使用逗号或分号。

  • 关于行动-从关键字开始在…上,后跟空格和事件或消息的名称,后跟冒号,在一行或多行上后跟一个或多个操作语句,例如

    ev1:退出();

    要在同一行上分隔多个操作,请使用逗号或分号。如果希望不同的事件触发不同的操作,请输入多个在…上状态标签中的块。每个块指定特定事件或消息的操作,例如:

    关于ev1:action1();关于ev2:action2();

为状态输入的操作的执行仅取决于其操作类型,而不取决于在标签中输入操作的顺序。如果你这样做为语句显式指定操作类型,图表将该语句视为条目操作。

提示

也可以在“属性”对话框中编辑状态的标签。看见更改状态属性.

另请参阅

相关话题