本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

Stateflow Editor 操作

Stateflow Editor

使用 Stateflow® Editor 绘制、缩放、修改、打印和保存窗口中显示的图。

打开 Stateflow 图会将图显示在 Stateflow Editor 中。

要在 Stateflow Editor 中打开新 Stateflow 图:

  1. 在 MATLAB® 命令提示符处,输入:

    命令结果
    sfnew
    使用默认动作语言创建一个图。有关详细信息,请参阅 sfnew
    sfnew -matlab
    使用 MATLAB 作为动作语言创建空图。
    sfnew -C
    创建空的 C 语言状态图。
    stateflow
    使用默认动作语言创建空图,并显示 Stateflow 模块库。

    Simulink® Editor 打开并显示一个空图。

  2. 双击该图对象。

    Stateflow Editor 打开。

Stateflow Editor 窗口包含以下部分:

  • 标题栏

    完整的图名称以模型名称/图名称* 的格式出现在此处。对于新创建的图或已编辑但尚未保存的现有图,图名称末尾会有 * 字符。

  • 工具条

    大部分编辑器命令可从工具条使用。您可将鼠标指针置于工具栏的每个工具上,通过出现的工具名称提示来辨认每个工具。

  • 对象面板

    显示一系列用于绘制状态、转移和其他图对象的工具。要添加对象,可以使用该面板执行以下操作:

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

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

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

  • 导航栏

    路径导航会显示您已在编辑器打开的系统。点击路径导航中的某个系统即可显示该系统。导航栏还包含用于图层次结构导航的按钮(请参阅Navigate Subcharts)。

  • 模型浏览器

    点击左下角的双箭头 可打开或关闭编辑器中模型的树状结构视图。

  • 绘图区 - 此区域显示图的可编辑副本。

  • 上下文菜单(快捷菜单)- 当您右键点击某个对象时,这些菜单会从绘图区域弹出,并且只显示适用于该对象的命令。如果右键点击该图的任何空白区域,将弹出适用于图对象的上下文菜单。

  • 状态信息 - 在靠近编辑器顶部的位置,您可以查看和重置仿真时间和仿真模式。底部的状态栏会显示 Stateflow 状态、工具提示、缩放比例和求解器。

撤消和重做编辑器操作

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

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

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

可以在 Symbols 窗格或 Property Inspector 中撤消和重做对 Stateflow 对象执行的许多操作。

撤消操作的例外情况

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

指定图中的颜色和字体

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

更改单个元素的大小

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

选项状态转移节点注释其他元素
Font尺寸可用可用不可用可用可用
Arrowhead Size可用可用可用不可用不可用
Junction Size不可用不可用可用不可用不可用
Font样式不可用不可用不可用可用不可用
Shadow不可用不可用不可用可用不可用
Text Alignment不可用不可用不可用可用不可用

更改全局显示选项

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

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

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

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

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

要将方案设为所有图的默认方案,请选择 Options > Make this the 'Default' scheme

要保存对默认颜色方案的更改,请选择 Options > Save defaults to disk。如果修改后的方案不是默认方案,选择 Save defaults to disk 将无效。

Stateflow 对象内容预览

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

例如,时序逻辑图使用内容预览。不带时序逻辑的图则不使用。

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

注意

为了查看内容预览,您需要放大 Stateflow 图或对象。

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

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

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

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

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

  4. Tab 键进行选择。

此外,您可以:

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

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

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

区分动作语言语法元素

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

  • 关键字

  • 注释

  • 事件

  • 消息

  • 函数

  • 字符串

  • 数值

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

Default语法高亮

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

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

要修改颜色分配,请参阅Edit语法高亮。To disable语法高亮, see Enable and Disable语法高亮.

Edit语法高亮

  1. 在 Stateflow Editor 的 Format 选项卡上,点击 Style > Syntax Highlighting

    此时会出现 Syntax Highlight Preferences 对话框。

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

  3. 点击 OK 关闭 Syntax Highlight Preferences 对话框。

Enable and Disable语法高亮

  1. In the Stateflow Editor, in the Format选项卡,点击样式 > 语法高亮.

    此时会出现 Syntax Highlight Preferences 对话框。

  2. 选择或清除 Enable syntax highlighting,然后点击 OK

选择与取消选择图形对象

对象位于绘图区域后,若要对该对象进行任何更改或添加项目,选中该对象即可。

  • 要选择对象,请在对象内的任意位置点击。

  • 要选择多个相邻对象,请点击并拖出一个方框,让该方框包含或接触想要选择的对象,然后松开鼠标按键。

    框中的全部或部分对象即变为选中。

  • 要选择多个单独的对象,请按下 Shift 键的同时点击某个对象或框选一组对象。

    此步骤可将对象添加到已选中对象的列表,除非该对象之前已选中(在这种情况下,该对象会被取消选中)。这种多重对象选择对于选择某个状态内的多个对象但不选中该状态本身的情况很有用。

  • 要取消选择所有选中的对象,只需在绘图区域(而非在对象上)点击一下。

对象选中后,会以设定为选择颜色的颜色高亮显示(默认为蓝色;请参阅指定图中的颜色和字体 获取更多信息)。

Cut and Paste图形对象

可以从绘图区域剪切对象,或者根据需要进行多次剪切和粘贴。可以在两个图之间剪切和粘贴对象。图中会保留最近剪切对象的选择列表。对象会粘贴到绘图区域中最接近当前鼠标指针位置的位置。

  • 要剪切对象,右键点击该对象,然后从上下文菜单中选择 Cut

  • 要粘贴最近剪切选择的对象,在图中点击右键,然后从上下文菜单中选择 Paste

Copy图形对象

要将对象复制粘贴到绘图区域,可选中对象,然后点击右键并将其拖放到绘图区域中所需的位置。此操作也会更新图剪贴板。

注意

在图中复制和粘贴状态时,以下规则适用:

  • 如果原始状态使用默认的 ? 标签,则新状态保留该标签。

  • 如果原始状态不使用默认的 ? 标签,则为新状态生成唯一名称。

或者,如果要在两个图之间进行复制,请从右键上下文菜单依次选择 CopyPaste

注释掉对象

要注释掉 Stateflow 对象,请右键点击该选中对象,然后选择 Comment Out。有关详细信息,请参阅Commenting Stateflow Objects in a Chart

设置图对象格式

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

  • 对齐

  • 分布

  • 调整大小

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

  • 状态

  • 函数

  • 图框

  • 节点

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

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

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

  1. 如果图中包括来自单一个源的并行状态或出向转移,请确保该图使用显式排序。

    要设置显式排序,在 Chart 属性对话框中,选择 User specified state/transition execution order

    注意

    如果图使用隐式排序决定并行状态的执行顺序或出向转移的计算顺序,则在您进行图对象对齐、分布或调整大小操作后,该顺序可能会发生更改。使用显式排序可以防止发生此更改。有关详细信息,请参阅并行状态的执行顺序 and 转移的计算顺序.

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

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

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

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

    注意

    如果逐一选择对象,所选的最后一个对象将作为参考对象。

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

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

图对象分布选项

选项说明
Distribute Horizontally

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

注意

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

Distribute Vertically

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

注意

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

Even Horizontal Gaps

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

注意

此操作需遵循 Distribute Horizontally 的空间限制。

Even Vertical Gaps

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

注意

此操作需遵循 Distribute Vertically 的空间限制。

图对象对齐示例

假设您打开 sf_pool 模型,看到一个包含多个 MATLAB 函数的图。

要右对齐这三个 MATLAB 函数:

  1. 打开 sf_pool 模型。双击 Pool 模块打开该图。

    提示

    展开 Stateflow Editor 以查看整个图。

  2. 点击thefunctionisAnyBallGoingToStop.

  3. Shift-点击thefunctionisAnyBallNewlyPocketed.

  4. Shift-点击thefunctiongetBallInteraction.

    此对象是对齐三个函数的参考点(或定位点)。该函数的四个角会显示直角括号。

  5. 在 Format 选项卡中,点击 Align Right。

    此步骤基于 getBallInteraction 的右边缘对齐三个函数的右边缘。

图对象分布示例

假设您打开 sf_frame_sync_controller 模型,看到一个包含多个状态的图。

要垂直分布这三个状态:

  1. 打开 sf_frame_sync_controller 模型。

    提示

    双击 Frame Sync Controller 模块以打开图。

  2. 按任意顺序选择三个状态。

    按住 Shift 键并点击可以选择多个状态。

    注意

    按任意顺序选择三个状态后,您的参考对象可能并不是所显示的那个对象。这一不同不会影响垂直空白空间的分布。

  3. Format 选项卡中,点击 Even Vertical Gaps

    此步骤可以确保如何两个状态之间的垂直空白空间都相同。

图对象大小调整示例

假设您打开 sf_clutch_enabled_subsystems 模型,看到一个包含大小不同的多个图形函数的图。

要调整图形函数的大小以使它们全部符合 detectSlip 的大小:

  1. 打开 sf_clutch_enabled_subsystems 模型。

  2. 在 Friction Mode 图中,框选这三个图形函数。

  3. detectSlip 设为用于调整大小的引用对象。

    右键点击该函数,以使用直角括号标记它。

  4. Format 选项卡中,点击 Match Size

    此步骤可以确保这三个函数大小相同。

  5. 将函数框调整为正确格式:

    1. Format 选项卡中,点击 Align Left

    2. Format 选项卡中,点击 Even Vertical Gaps

Stateflow 图的自动格式化

借助 Arrange Automatically,Stateflow 会对您的图进行整理以达到以下目的:

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

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

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

  • 将转移拉直。

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

Format 选项卡中,点击 Auto Arrange

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

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

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

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

布局经过自动整理后:

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

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

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

生成模型报告

Print Details 报告是 Simulink 模型窗口中 Print Details 报告的扩展。它提供了与当前视图中的 Stateflow 图相关的 Stateflow 和 Simulink 对象的报告,您可以从中选择所需的报告。

要生成图对象的模型报告:

  1. 打开想要为其生成报告的图或子图。

  2. Simulation 选项卡中,选择 Print > Print Details

    Print Details 对话框出现。

  3. 输入报告文件的目标目录,然后选择相应选项以指定要在报告中出现的对象。

    有关在 File locations/naming options 部分设置字段的详细信息,请参阅打印模型报告 (Simulink)。有关获得的报告的详细信息,请参阅系统报告选项报告格式

  4. 点击Print.

Print Details 对话框随即出现,并会跟踪报告生成过程。有关本窗口的详细信息,请参阅打印模型报告 (Simulink)。

HTML 报告显示在您的默认浏览器中。

提示

如果您安装了 Simulink Report Generator™,则可以为您的系统生成详细报告。为此,在 Modeling 选项卡中,选择 Compare > System Design Description Report。有关详细信息,请参阅System Design Description (Simulink Report Generator)。

系统报告选项

根据您在 System reporting options 中所选的选项,为当前 Stateflow 图生成的报告会有所不同:

  • Current - 为当前编辑器窗口中的 Stateflow 图或子图及其直接父级 Simulink 系统生成报告。

  • Current and above - 此选项呈灰显状态,无法用于打印图详细信息。

  • Current and below - 为当前编辑器窗口中的图或子图、其下的层级的所有内容以及紧接 Simulink 系统生成报告。

  • Entire model - 生成整个模型的报告,涵盖所有图和所有 Simulink 系统。

    如果选择此选项,可以如下所示修改报告:

    • Look under mask dialog – 在报告中包括封装子系统的内容。

    • Expand unique library links – 在报告中包括作为子系统的库模块的内容。

      在报告中,一个库子系统只出现一次,即使它出现在模型中多个位置也是如此。

报告格式

Print Details 报告采用常见的自上而下格式,具体内容如下:

  • 报告会显示 Simulink 模型中包含当前视图中 Stateflow 图或子图的系统的标题。

  • 显示该系统及其子系统的 Simulink 层次结构图。层次结构中的每个子系统均链接到其 Stateflow 图的报告。

  • 在每个系统或子系统的 Stateflow 图的报告部分中,开头为系统或子系统的摘要报告,后面是所含各个图的报告。

  • 每份图报告均包括该图的一个复制图,其中提供了具有自己的报告的子图化状态的链接。

  • 附录列出了报告中所涵盖的 Stateflow 和 Simulink 对象。