主要内容

运行模式转换

一个过渡表示反应式系统从一种工作模式转换到另一种工作模式的过程。在状态流中®在图表中,过渡是一条带有箭头的线,通常连接两个状态。的转换开始的状态和目的地转换的状态是转换结束的状态。

您还可以使用连接连接创建具有多个转换段的转换路径。例如,您可以创建从单个源到多个目的地或从多个源到单个目的地的转换路径。在这种情况下,任何中间转换都有一个连接结作为源或目标。有关更多信息,请参见结合过渡和连接创建分支路径

一个缺省转换是一种没有源的特殊类型的转换。在具有排他(or)分解和至少两个子状态的图表或状态中,必须有一个不受条件保护或由事件触发的默认转换路径。在没有历史连接的情况下,默认转换表示当图表或超状态变为活动状态时,第一个子状态变为活动状态。有关更多信息,请参见使用默认转换指定初始子状态活动获取详细信息。

例如,此图表中的状态表示带有两个风扇的空气控制器系统的工作模式。状态之间的转换集成软件包而且定时关机表示空气控制系统打开和关闭时模式的变化。默认转换到状态定时关机指示在模拟开始时图表唤醒时系统处于关闭状态。在美国也是如此FAN1而且FAN2,子状态之间的转换表示每个风扇打开和关闭时模式的变化,默认转换表示风扇在超状态时关闭集成软件包变得活跃。有关此示例的详细信息,请参见利用并行性对同步子系统建模

图表,其中包含表示空气控制器系统的工作模式的排他和并行状态的层次结构。

转换的父级是包含转换源和目标的最低级别状态或图表。例如,在前面的例子中,FAN1父状态是否在子状态之间转换FAN1。在而且FAN1。从.同样的,FAN2父状态是否在子状态之间转换FAN2。在而且FAN2。从.相反,状态之间转换的父元素集成软件包而且定时关机就是图表本身。

创建过渡

您可以添加到新的或现有目标的转换。

  1. 指向源状态或结点的边界。指针变为十字准星。

  2. 单击并拖动离开源状态或结。状态流编辑器提供图形提示,允许您添加连接或状态。

    带有图形提示的新转换,用于添加连接或状态。

  3. 为新的转换选择一个目的地:

    • 要在转换结束时添加一个新状态,请单击矩形提示。

    • 若要在过渡的末尾添加新的连接,请单击圆形提示。

    • 若要将转换连接到现有状态或连接,请将指针拖动到所需目标。

  4. 为转换输入一个标签,然后单击离开转换。标签指定使转换有效的条件和触发器,以及在模拟期间转换执行的任何操作。有关更多信息,请参见定义转换中的动作

创建转换后,可以使用状态流编辑器更改转换的形状、源、目标或标签:

  • 若要重塑过渡,请单击并拖动过渡的中点。

  • 若要更改源或目标,请单击并拖动转换的端点。

  • 若要编辑转换标签,请单击要编辑的字符位置附近的标签文本。如果转场有一个空标签,首先选择转场。

  • 若要移动转换标签,请单击并拖动该标签。

创建默认转换

  1. 在对象面板中,单击Default转换图标

  2. 在图表画布上,单击目标状态或连接的一侧。

  3. 可选地,为默认转换添加一个标签。

提示

默认转换端点的大小与箭头大小成比例。看到改变过渡箭头的大小

定义转换中的动作

转换的标签指定事件或消息触发器和使转换有效的条件,以及在模拟期间转换执行的条件操作和转换操作。转换标签的一般格式如下:

触发[状态]{condition_action} / {transition_action}

标签的每个部分都是可选的,可以显示在单独的行上。有关图表如何使用标签确定转换的有效性的详细信息,请参见评估转换

事件和消息触发器

转换标签以触发转换的事件或消息的名称开始。若要指定多个事件或消息触发器,请使用逻辑or (|)算子。

只有当图表接收到指定事件的广播时,带有事件触发器的转换才有效。只有当指定的消息出现在消息队列中时,带有消息触发器的转换才有效。有关更多信息,请参见通过广播事件同步模型组件而且通过发送消息与状态流程图通信

例如,在这个图表中,状态之间的转换定时关机而且集成软件包有事件触发器。当源状态为活动状态且图表接收到输入事件的广播时,这些转换是有效的开关

由事件触发的转换。

提示

您可以使用隐式事件(例如改变输入,或退出)和时间逻辑运算符(例如之前,或每一个)来触发转换。有关更多信息,请参见使用隐式事件控制图表行为而且使用时序逻辑控制图表执行

条件

若要向转换标签添加条件,请输入方括号括起来的布尔表达式([]).请遵循以下定义条件的指导方针:

  • 条件表达式必须是求值为的布尔表达式真正的(1)或(0)。

  • 若要组合多个布尔表达式,请使用逻辑与(& &)及或(||)操作符。

  • 若要在多行上输入条件表达式,请使用省略号(...).

  • 条件表达式可以调用图形函数,真值表函数,MATLAB®函数或Simulink金宝app®返回数值的函数。但是,该函数不能修改任何数据值或导致图表改变状态。

  • 不要在条件表达式中使用赋值语句。

只有当指定的表达式为true时,带有条件的转换才有效。例如,在这个图表中,基态之间的转换而且有比较图表输入值的条件吗临时到一个阈值。当源状态为活动且条件为真时,这些转换是有效的。

由条件保护的转换。

条件的行为

图表一旦确定转换有效,就会立即执行条件操作。若要添加条件操作,请在条件之后输入一个或多个括号括起来的语句({}).要分隔多条语句,可以使用逗号或分号。或者,您也可以在单独的一行中输入每个语句。若要在多行上输入单个语句,请使用省略号(...).

如果转换是由多个段组成的转换路径的一部分,则图表在计算转换路径的任何后续段之前执行条件操作。例如,此图表包含带有两个过渡段的过渡路径。当图表接收到输入事件的广播时开关时,无论第二个过渡段是否有效,图表都会在第一个过渡段上执行条件操作。有关更多信息,请参见通过使用条件动作控制图表执行

包含条件操作的转换。

转换操作

图表在确定整个转换路径有效时执行转换操作。若要添加转换操作,请在条件操作之后输入正斜杠(/)后面跟着一个或多个用大括号括起来的语句({}).要分隔多条语句,可以使用逗号或分号。或者,您也可以在单独的一行中输入每个语句。若要在多行上输入单个语句,请使用省略号(...).

如果转换是由多个段组成的转换路径的一部分,则该图表在确定存在到目标状态或终端结的有效段序列后执行转换操作。例如,此图表包含带有两个过渡段的过渡路径。当图表接收到输入事件的广播时开关,只有当第二个过渡段有效时,图表才会在第一个过渡段上执行过渡操作。有关更多信息,请参见使用条件和转换操作评估外部转换

包含转换操作的转换。

在MATLAB中的独立状态流程图中不支持转换操作。金宝app

提示

在使用C作为操作语言的图表中,不必将转换操作括在大括号中。在使用MATLAB作为动作语言的图表中,如果转换动作中缺少大括号,语法将自动更正。看到使用MATLAB作为动作语言时的自动纠错

改变过渡箭头的大小

调整转场上箭头的大小:

  1. 右键单击转换。

  2. 选择箭头的大小

  3. 从下拉列表中选择箭头大小。

或者,您可以同时调整多个过渡的箭头大小。

  1. 选择多个转换。

  2. 右键单击所选转换之一。

  3. 选择格式>箭头的大小

  4. 从下拉列表中选择箭头大小。

更改转场上的箭头大小也会更改具有相同目标的其他转场的箭头大小。

为转换指定属性

下面列出的属性使您能够指定转换如何与Stateflow图中的其他组件交互。属性中修改这些属性属性检查器、模型资源管理器或转换属性对话框。

使用属性检查器

  1. 建模选项卡,在设计数据中,选择属性检查器

  2. 在Stateflow Editor中,选择转换。

  3. 属性检查器,编辑转换属性。

使用模型资源管理器:

  1. 建模选项卡,在设计数据中,选择模型浏览器

  2. 模型层次结构窗格中,选择转换的父状态或图表。

  3. 内容窗格中,选择转换。

  4. 对话框窗格中,编辑转换属性。

使用转换属性对话框:

  1. 在Stateflow Editor中,右键单击转换。

  2. 选择属性

  3. 在属性对话框中,编辑转换属性。

还可以通过使用编程方式修改转换属性Stateflow。过渡对象。有关statflow编程接口的详细信息,请参见statflow API概述

过渡的来源。属性中不可用的只读属性属性检查器.当单击源超链接时,Stateflow Editor将转换源显示到前台。

目的地

转换的目的地。属性中不可用的只读属性属性检查器.单击目标超链接时,Stateflow Editor将转换目标显示到前台。

转换的父类。属性中不可用的只读属性属性检查器.单击父超链接时,状态流编辑器将父超链接显示到前台。

执行顺序

转换的执行命令。有关更多信息,请参见过渡评估令

将其视为变种转变

过渡是否为变型过渡。有关更多信息,请参见在状态流程图中创建不同的配置

标签

转换的标签。属性中不可用此属性属性检查器.有关更多信息,请参见定义转换中的动作

描述

转换的描述。

文档链接

链接到转换的在线文档。您可以在“MATLAB命令窗口”中输入web URL地址或MATLAB命令,以HTML文件或文本的形式显示文档。当你点击文档链接, Stateflow计算链接并显示文档。

另请参阅

对象

工具

相关的话题