运行模式转换
一个过渡表示反应系统从一种工作模式过渡到另一种工作模式。在一个Stateflow®图中,过渡是一条带箭头的线,通常连接两个状态。的源的状态是转换开始的状态和目的地是转换结束时的状态。
您还可以通过使用连接连接来创建具有多个转换段的转换路径。例如,您可以创建从单个源到多个目的地或从多个源到单个目的地的转换路径。在这种情况下,任何中间转换都有一个连接结作为源或目的地。有关更多信息,请参见结合过渡和连接创建分支路径.
一个缺省转换是一种没有源的特殊类型的转换。在具有排他(or)分解和至少两个子状态的图表或状态中,必须有一个不受条件保护或由事件触发的默认转换路径。在没有历史连接的情况下,默认转换指示当图表或超状态激活时,第一个激活的子状态。有关更多信息,请参见使用默认转换指定初始子状态活动获取详细信息。
例如,这个图表中的状态表示一个空气控制器系统的两个风扇的运行模式。状态之间的转换集成软件包
而且定时关机
表示空气控制器系统打开和关闭时模式的变化。默认转换到状态定时关机
指示在模拟开始时唤醒图表时系统处于关闭状态。在美国也是如此FAN1
而且FAN2
,子状态之间的转换表示每个风扇打开和关闭时模式的变化,默认转换表示风扇在超状态时是关闭的集成软件包
变得活跃。有关此示例的更多信息,请参见利用并行性对同步子系统进行建模.
转换的父级是包含转换的源和目标的最低级别状态或图表。例如,在前面的例子中,FAN1
是子状态之间转换的父状态吗FAN1。在
而且FAN1。从
.同样的,FAN2
是子状态之间转换的父状态吗FAN2。在
而且FAN2。从
.相反,状态之间的转换的父级集成软件包
而且定时关机
就是图表本身。
创建一个过渡
您可以将转换添加到新的或现有的目标。
指向源状态或结点的边界。指针变为十字准星。
单击并拖离源状态或结。Stateflow Editor提供图形提示,允许您添加连接或状态。
为新的转换选择一个目的地:
要在转换结束时添加新状态,请单击矩形提示。
若要在过渡结束处添加新结点,请单击圆形提示。
若要将转换连接到现有状态或结,请将指针拖动到所需的目标。
为转换输入一个标签,然后单击离开转换。标签指定使转换有效的条件和触发器,以及在模拟期间转换执行的任何操作。有关更多信息,请参见在转换中定义操作.
创建转换后,可以使用Stateflow Editor更改转换的形状、源、目标或标签:
要重新塑造转换,请单击并拖动转换的中点。
要更改源或目标,请单击并拖动转换的端点。
若要编辑转换标签,请单击要编辑的字符位置附近的标签文本。如果您的转换有一个空标签,首先选择转换。
要移动转换标签,请单击并拖动该标签。
创建一个默认的过渡
在对象面板中,单击Default转换图标.
在图表画布上,单击目标状态或节点的一侧。
可以为默认转换添加一个标签。
提示
默认转换端点的大小与箭头的大小成正比。看到改变过渡箭头的大小.
在转换中定义操作
转换的标签指定一个事件或消息触发器和使转换有效的条件,以及在模拟期间转换执行的条件操作和转换操作。转换标签的一般格式如下:
触发[状态]{condition_action} / {transition_action}
标签的每个部分都是可选的,可以显示在单独的一行上。有关图表如何使用标签来确定转换的有效性的更多信息,请参见评估转换.
事件和消息触发器
转换标签以触发转换的事件或消息的名称开始。要指定多个事件或消息触发器,请使用逻辑or (|
)算子。
只有当图表接收到指定事件的广播时,带有事件触发器的转换才有效。只有当指定的消息存在于消息队列中时,带有消息触发器的转换才有效。有关更多信息,请参见通过广播事件同步模型组件而且通过发送消息与状态流图通信.
例如,在这个图表中,状态之间的转换定时关机
而且集成软件包
事件触发。当源状态是活动的并且图表接收到输入事件的广播时,这些转换是有效的开关
.
提示
您可以使用隐式事件(例如改变
,输入
,或退出
)和时间逻辑运算符(例如后
,在
,之前
,或每一个
)来触发转换。有关更多信息,请参见使用隐式事件的控制图行为而且使用时态逻辑执行控制图.
条件
要向转换标签添加条件,请输入用方括号括起来的布尔表达式([]
).在定义条件时遵循以下准则:
条件表达式必须是一个布尔表达式,计算结果为
真正的
(1)或假
(0)。要组合多个布尔表达式,请使用逻辑AND (
& &
)和或(||
)操作符。若要在多行上输入条件表达式,请使用省略号(
...
).条件表达式可以调用图形函数,真值表函数,MATLAB®函数或模型®返回数值的函数。但是,函数不能修改任何数据值或导致图表改变状态。
不要在条件表达式中使用赋值语句。
带条件的转换只有在指定表达式为true时才有效。例如,在这个图表中,亚状态之间的转换从
而且在
是否有比较图表输入值的条件临时
一个阈值。当源状态为活动且条件为真时,这些转换是有效的。
条件的行为
一旦确定转换有效,图表就会执行一个条件操作。若要添加条件操作,请在条件之后输入一个或多个用大括号括起来的语句({}
).要分隔多条语句,请使用逗号或分号。或者,您也可以在单独的一行中输入每个语句。若要在多行上输入单个语句,请使用省略号(...
).
如果转换是由多个段组成的转换路径的一部分,则该图表在评估转换路径的任何后续段之前执行条件操作。例如,此图表包含一个包含两个转换段的转换路径。当图表接收到输入事件的广播时开关
,图表在第一个转换段上执行条件操作,而不管第二个转换段是否有效。有关更多信息,请参见通过使用条件操作执行控制图.
转换操作
当图表确定整个转换路径有效时,它会执行一个转换操作。要添加转换操作,在条件操作之后,输入正斜杠(/
)后面跟着用大括号括起来的一个或多个语句({}
).要分隔多条语句,请使用逗号或分号。或者,您也可以在单独的一行中输入每个语句。若要在多行上输入单个语句,请使用省略号(...
).
如果转换是由多个段组成的转换路径的一部分,则该图表在确定存在到目标状态或终端连接的有效段序列后执行转换操作。例如,此图表包含一个包含两个转换段的转换路径。当图表接收到输入事件的广播时开关
,只有当第二个转换段有效时,图表才会在第一个转换段上执行转换操作。有关更多信息,请参见使用条件和转换操作评估外部转换.
在MATLAB中的独立状态流图中不支持转换操作。
提示
在使用C作为操作语言的图表中,不必将转换操作括在大括号中。在使用MATLAB作为动作语言的图表中,如果转换动作缺少大括号,语法将自动更正。看到用MATLAB作为动作语言时的自动纠错.
改变过渡箭头的大小
使用实例调整转场箭头的大小。
右键单击过渡。
选择箭头的大小.
从下拉列表中选择箭头大小。
或者,您可以同时调整多个过渡的箭头大小。
选择多个转换。
右键单击选中的转换之一。
选择格式>箭头的大小.
从下拉列表中选择箭头大小。
更改转换上的箭头大小也会更改具有相同目标的其他转换的箭头大小。
为转换指定属性
下面列出的属性使您能够指定转换如何与状态流图中的其他组件交互。中修改这些属性属性检查器、模型资源管理器或转换属性对话框。
使用属性检查器:
在建模选项卡,在设计数据中,选择属性检查器.
在状态流编辑器中,选择转换。
在属性检查器,编辑转换属性。
要使用模型资源管理器:
在建模选项卡,在设计数据中,选择模型浏览器.
在模型层次结构窗格中,为转换选择父状态或图表。
在内容窗格,选择转换。
在对话框窗格中,编辑转换属性。
使用“过渡属性”对话框:
在Stateflow Editor中,右键单击转换。
选择属性.
在属性对话框中,编辑转换属性。
还可以通过使用以编程方式修改转换属性Stateflow。过渡
对象。有关Stateflow编程接口的更多信息,请参见Stateflow API概述.
源
转变的来源。属性中不可用的只读属性属性检查器.单击源超链接时,Stateflow Editor将转换源带到前台。
目的地
过渡的目的地。属性中不可用的只读属性属性检查器.单击目标超链接时,Stateflow Editor会将转换目标显示到前台。
父
转换的父节点。属性中不可用的只读属性属性检查器.单击父超链接时,Stateflow Editor将父超链接带到前台。
执行顺序
转换的执行顺序。有关更多信息,请参见评价秩序的过渡.
将其视为变体转换
转换是否为变式转换。有关更多信息,请参见在状态流图中创建不同的配置.
标签
转换的标签。控件中无法使用此属性属性检查器.有关更多信息,请参见在转换中定义操作.
描述
转换的描述。
文档链接
链接到转换的在线文档。您可以输入web URL地址或MATLAB命令,在MATLAB命令窗口中以HTML文件或文本的形式显示文档。当您单击文档链接超链接时,Stateflow计算链接并显示文档。
另请参阅
对象
工具
- 模型浏览器(模型)