Main Content

Stateflow 编辑器操作

Stateflow 编辑器

Stateflow® 编辑器允许您在 Simulink® 模型中绘制、缩放、修改、打印和保存 Stateflow 图。当您打开新的 Stateflow 图时,Stateflow 编辑器会显示该图。

要在 Stateflow 编辑器中打开新 Stateflow 图,请在 MATLAB® 命令提示符下输入:

  1. 命令结果
    sfnew
    使用默认动作语言创建一个图。有关详细信息,请参阅sfnew
    sfnew -MATLAB
    使用 MATLAB 作为动作语言创建空图。
    sfnew -C
    创建空的 C 语言状态图。

    Simulink 编辑器将打开,画布上包含一个空图。

  2. 要打开 Stateflow 编辑器,请双击图对象。

Default view of the Stateflow Editor.

Stateflow 编辑器的主要组件是图画布、对象选项板、符号窗格和属性检查器

  • 图画布是一个绘图区域,您可以在其中通过组合状态、转移和其他图形元素来创建图。

  • 在画布的左侧有一个对象选项板,其中显示了一组可向图中添加图形元素的工具。有关详细信息,请参阅图形对象

    要添加对象,请执行以下操作:

    • 点击对象的图标,然后将光标移至绘图区域中要放置该对象的位置。

    • 将该对象的图标拖放到绘图区域。

    • 双击该图标,然后在绘图区域多次点击以生成对象的副本。

  • 在画布的右侧有一个符号窗格,您可以用它向图添加新数据并解析任何未定义或未使用的符号。此外,在画布的右侧、符号窗格上方,是属性检查器。使用属性检查器可更改符号窗格中列出的符号的属性。有关详细信息,请参阅Manage Symbols in the Stateflow Editor

撤消和重做编辑器操作

可以撤消和重做在图中执行的操作。撤消某项操作时,即会回到您执行的最后一次编辑操作。在图中撤消这些操作后,还可以逐一重做这些操作。

  • 要撤消图中的操作,请按 Ctrl + Z

  • 要重做图中的操作,请按 Ctrl + Y

撤消操作的例外情况

您可以撤消或重做几乎所有编辑器操作,以下情况除外:

指定图中的颜色和字体

您可以更改 Stateflow 显示图中单个元素的方式,或指定整个图中使用的全局显示选项。

更改单个元素的大小

要更改图中单个元素的显示大小,请右键点击该元素,然后从上下文菜单中选择新的格式选项。可用选项取决于您选择的元素。

选项状态转移结点注释其他元素
字体大小可用可用不可用可用可用
箭尖大小可用可用可用不可用不可用
结点大小不可用不可用可用不可用不可用
字体样式不可用不可用不可用可用不可用
阴影不可用不可用不可用可用不可用
文本对齐不可用不可用不可用可用不可用

更改全局显示选项

通过颜色和字体对话框,您可以指定图的颜色方案,也可以为图中不同类型的对象指定颜色和标签字体。要打开颜色和字体对话框,请在格式选项卡中点击样式

Colors and fonts dialog box.

颜色和字体对话框中,绘图区域显示图的当前颜色方案所指定的颜色和标签字体的示例。您可以从方案菜单中选择不同颜色方案。要修改某一类型图元素的显示选项,请将指针放在样本对象上。

  • 要更改元素的颜色,请点击样本对象,然后在对话框中选择一种新颜色。

    State and frame color dialog box.

  • 要更改元素的字体,请右键点击样本对象,然后在对话框中选择新字体、样式或大小。

    Select font dialog box.

要将方案应用于图,请点击应用。要应用方案并关闭对话框,请点击确定

要将方案设为所有图的默认方案,请选择选项 > 将此项设为 ''默认'' 方案

要保存对默认颜色方案的更改,请选择选项 > 将默认方案保存到磁盘。如果修改后的方案不是默认方案,则选择将默认方案保存到磁盘将无效。

Stateflow 对象内容预览

Stateflow 图关闭后,您可以在 Simulink 中预览 Stateflow 图的内容。您可以查看图内容的概况。仿真期间,您可以查看图动画。当图打开时,您可以预览子图和 Simulink 函数的内容。

要为 Stateflow 图或子图打开内容预览,请右键点击该图,然后选择格式 > 内容预览。对于 Simulink 函数,右键点击该函数并选择内容预览。有关在 Simulink 中进行内容预览的详细信息,请参阅预览模型组件的内容 (Simulink)

例如,Temporal Logic 图使用内容预览。图 Without Temporal Logic 则不使用。

Two Stateflow charts. One chart has content preview enabled. The other has content preview disabled.

Stateflow 图使用智能 Tab 键自动填充

Stateflow 的 Tab 键自动填充功能提供了基于上下文的编辑协助。Tab 键自动填充有助于避免录入错误。它可以让您快速为关键字、数据、事件、消息和函数名称选择符合语法的项,而不必在模型资源管理器中查找。在 Stateflow 图中,要完成输入:

  1. 键入目标字词的前几个字符。

  2. Tab 键查看可能匹配项的列表。

  3. 使用箭头键选择一个词。

  4. Tab 键进行选择。

此外,您可以:

  • 关闭列表,不选择任何项,方法是按 Esc 键。

  • 在原词语中键入更多字符,缩小可能匹配项的列表。

如果按 Tab 键后没有任何词列出,那么当前词语便是唯一的可能匹配项。

区分动作语言语法元素

可以使用颜色高亮来区分下列语法元素:

  • 关键字

  • 注释

  • 事件

  • 消息

  • 函数

  • 字符串

  • 数字

  • 局部数据

  • 常量数据

  • 输入数据

  • 输出数据

  • 参数数据

  • 数据存储内存数据

语法高亮是一个用户预设项,不是模型预设项。

默认语法高亮

下图说明了用于语言元素的默认高亮。

Stateflow chart showing default highlighting.

如果 Stateflow 解析器无法解析某个语法元素,图会以默认文本颜色显示该元素。

编辑语法高亮

  1. 在 Stateflow 编辑器的格式选项卡上,点击样式 > 语法高亮

    此时会出现“语法高亮预设项”对话框。

  2. 点击想要更改的颜色,从调色板选择一个替代颜色,然后点击应用

  3. 点击确定关闭“语法高亮预设项”对话框。

启用与禁用语法高亮

  1. 在 Stateflow 编辑器的格式选项卡上,点击样式 > 语法高亮

    此时会出现“语法高亮预设项”对话框。

  2. 选择或清除启用语法高亮,然后点击确定

使用微型地图缩放和导航

要放大或缩小 Stateflow 图,请使用鼠标上的滚轮。当您缩放时,按住空格键可看到显示键盘快捷方式的对话框。

Space bar pop-up

您也可以按空格键在左下角查看图的微型地图。当您在 Stateflow 图中缩放或导航时,蓝色方块将在微型地图上移动,指示您相对于整个图的位置。

Mini map

您也可以点击并拖动微型地图上的蓝色方块,以在您的 Stateflow 图中导航。当您缩小时,Stateflow 图中的文本会调整其大小以保持可读性。

Zoomed out stateflow chart

设置图对象格式

为了提高图中对象的易读性,您可以使用 Stateflow 编辑器的格式选项卡中的命令。这些命令包括用于以下功能的选项:

  • 对齐

  • 分布

  • 调整大小

您可以对以下图对象进行对齐、分布或调整大小操作:

  • 状态

  • 函数

  • 图框

  • 结点

其中一些选项仅在选择图中的元素后才会出现。

图对象对齐、分布和调整大小

图对象对齐、分布或调整大小操作的基本步骤类似。

  1. 选择您想要对齐、分布或调整其大小的图对象。

    您可以按任何顺序逐个选择对象或者框选多个对象。

  2. 确定使用哪个对象作为其他图对象对齐、分布或调整大小的定位点。此对象为参考对象。

    要将对象设为参考对象,右键点击该对象。该参考对象的四个角随即会出现直角括号。在下例中,DoorMotion 状态已选中,Door 状态为参考对象。如果逐一选择对象,所选的最后一个对象将作为参考对象。

    Chart that contains three states: Door, Win, and Motion. Door is the reference state.

  3. 格式选项卡中选择一个选项,以对齐、分布所选对象或调整其大小。

    有关对象分布选项的详细信息,请参阅图对象分布选项

图对象分布选项

选项描述
横向分布

任何两个对象之间的中心到中心水平距离都相同。

分布的水平空间是最左边对象的左边缘到最右侧对象右边缘之间的距离。如果所选对象的总宽度超出可用水平空间,对象在分布后可能会重叠。

纵向分布

任何两个对象之间的中心到中心垂直距离都相同。

分布的垂直空间是最上方对象的顶边缘到最下方对象的底边缘之间的距离。如果所选对象的总高度超出可用垂直空间,对象在分布后可能会重叠。

横向等间距

任何两个对象之间的水平空白空间相同。

此操作需遵循横向分布的空间限制。

纵向等间距

任何两个对象之间的垂直空白空间相同。

此操作需遵循纵向分布的空间限制。

Stateflow 图的自动格式化

借助自动排列,Stateflow 会对您的图进行整理以达到以下目的:

  • 扩大状态和转移的空间以容纳其标签字串。

  • 调整类似状态的大小,使其大小相同。

  • 对齐状态(如果状态稍微有点未对齐)。

  • 将转移拉直。

  • 对准中点调整水平转移标签的位置。

格式选项卡中,点击自动排列

在此示例中,图中存在以下情况:

  1. 一些状态动作位于状态 A 边界外。

  2. 一个转移条件与状态 B 重叠。

  3. 一个转移不是水平的。

Chart before automatic formatting.

布局经过自动整理后:

  1. 这些状态动作被放入状态 A 内部。

  2. 该转移条件不再与状态 B 重叠。

  3. 下方的转移变为水平的。

Chart after automatic formatting.

相关主题