主要内容

Stateflow编辑操作

Stateflow编辑器

使用状态流®编辑器绘制、缩放、修改、打印和保存窗口中显示的图表。

打开状态流图表将在状态流编辑器中显示图表。

在状态流编辑器中打开一个新的状态流图:

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

    命令 结果
    sfnew
    使用默认操作语言创建图表。有关更多信息,请参见sfnew
    sfnew matlab
    用MATLAB作为动作语言创建一个空图表。
    sfnew - c
    创建一个空的C图。
    stateflow
    使用默认操作语言创建空图表,并显示Stateflow块库。

    的仿真软金宝app件®编辑器打开,其中有一个空图表。

  2. 双击图表对象。

    打开状态流编辑器。

状态流编辑器窗口包括以下部分:

  • 标题栏

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

  • 将来发布

    大多数编辑器命令都可以从工具条中获得。您可以将指针放在工具栏上,直到出现识别工具提示,从而识别工具栏上的每个工具。

  • 对象调色板

    显示一组用于绘制状态、过渡和其他图表对象的工具。要添加一个对象,你可以使用调色板:

    • 单击对象的图标,并将光标移动到绘图区域中要放置对象的位置。

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

    • 双击图标,然后在绘图区域多次单击以复制对象。

  • 探险家酒吧

    面包屑显示您在编辑器中打开的系统。单击面包屑中的系统以显示该系统。还包含用于导航图表层次结构的按钮(参见导航子图表).

  • 模型浏览器

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

  • 绘图区—该区域显示图表的可编辑副本。

  • 上下文菜单(快捷菜单)-当你右键单击一个对象时,这些菜单会从绘图区域弹出。它们显示只应用于该对象的命令。如果右键单击图表的空白区域,则上下文菜单应用于图表对象。

  • 状态信息-在编辑器顶部附近,你可以看到(并重置)模拟时间和模拟模式。底部状态栏显示statflow处理、工具提示、缩放因子和求解器的状态。

撤销和重做编辑器操作

可以撤消和重做在图表中执行的操作。撤消操作时,您将撤消上一次执行的编辑操作。撤消图表中的操作后,还可以一次重做一个操作。

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

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

您可以在“符号”窗格或“属性检查器”中撤消和重做您在“状态流”对象上完成的许多操作。

撤销的例外

您可以撤消或重做所有编辑器操作,但有以下例外:

  • 无法撤消关闭先前子图状态的子图的操作。

    要理解分段图表,请参见使用子图封装模态逻辑

  • 无法撤消绘制超转场或分割现有转场。

    现有转换的分割是指对作为超转换一部分的转换段的源或目的地的重定向。有关超跃迁的描述,请参见在子图中绘制超过渡而且从子图中绘制超过渡

  • 不能使用statflow API撤消对图表所做的任何更改。

    有关状态流API的描述,请参见statflow编程接口

    请注意

    当您执行上述操作之一时,撤销和重做按钮将被禁用,无法撤销和重做任何先前的操作。

在图表中指定颜色和字体

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

改变单个元素的大小

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

选项 转换 连接 注释 其他元素
字体大小 可用 可用 不可用 可用 可用
箭头的大小 可用 可用 可用 不可用 不可用
结大小 不可用 不可用 可用 不可用 不可用
字体样式 不可用 不可用 不可用 可用 不可用
影子 不可用 不可用 不可用 可用 不可用
文本对齐方式 不可用 不可用 不可用 可用 不可用

更改全局显示选项

通过颜色和字体对话框中,您可以为图表指定配色方案,或为图表中不同类型的对象指定颜色和标签字体。打开颜色和字体对话框中的格式选项卡上,单击风格

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

  • 要更改元素的颜色,请单击示例对象并在对话框中选择新颜色。

  • 要更改元素的字体,右键单击示例对象,并在对话框中选择新的字体、样式或大小。

单击,将方案应用到图表中应用.单击,应用该方案并关闭对话框好吧

若要使该方案成为所有图表的默认方案,请选择选项>将此设置为“默认”方案

若要保存对默认配色方案的更改,请选择选项>将默认值保存到磁盘.如果修改后的方案不是缺省方案,选择将默认值保存到磁盘没有效果。

状态流对象的内容预览

当图表关闭时,您可以在Simulink中预览状态流图表的内容。金宝app您可以看到图表内容的大纲。在模拟过程中,您可以看到图表动画。打开图表后,可以预览子图表和Simulink功能的内容。金宝app

例如,Temporal Logic图表使用内容预览。没有时间逻辑的图表没有。

若要打开状态流图表和子图表的内容预览,请右键单击图表并选择格式>内容预览.对于Si金宝appmulink函数,右键单击该函数并选择内容预览.有关Simulink中内容预览的详细信息,请参见金宝app模型组件的预览内容(金宝app模型)

请注意

为了查看内容预览,您可能需要放大状态流图或对象。

智能补全标签Stateflow图表

状态流选项卡补全提供上下文敏感的编辑帮助。选项卡补全可以帮助您避免排版错误。它还可以帮助您快速为关键字、数据、事件、消息和函数名选择适合语法的选项,而无需导航Model Explorer。在状态流图中,要完成条目:

  1. 输入你想要的单词的前几个字符。

  2. 新闻选项卡查看可能匹配的列表。

  3. 使用方向键选择单词。

  4. 新闻选项卡做出选择。

此外,你可以:

  • 关闭列表,不选择任何东西,按Esc关键。

  • 在原始术语上输入其他字符以缩小可能匹配的列表。

如果你按选项卡如果没有列出单词,则当前单词是唯一可能匹配的单词。

区分动作语言语法元素

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

  • 关键字

  • 评论

  • 事件

  • 消息

  • 功能

  • 字符串

  • 数字

  • 本地数据

  • 常量数据

  • 输入数据

  • 输出数据

  • 参数数据

  • 数据存储内存数据

语法高亮显示是用户首选项,而不是模型首选项。

默认语法高亮显示

下面的图表说明了语言元素的默认高亮显示。

默认高亮显示。

如果Stateflow解析器不能解析语法元素,则图表将以默认文本颜色显示该元素。

编辑语法高亮显示

  1. 的状态流编辑器中格式选项卡上,单击风格>语法高亮显示

    出现“语法突出显示首选项”对话框。

  2. 单击要更改的颜色,从调色板中选择替代颜色,然后单击应用

  3. 点击好吧关闭“语法突出显示首选项”对话框。

启用和禁用语法高亮显示

  1. 的状态流编辑器中格式选项卡上,单击风格>语法高亮显示

    出现“语法突出显示首选项”对话框。

  2. 选择或清除启用语法高亮显示并点击好吧

选择和取消选择图形对象

一旦对象在绘图区域中,要对该对象进行任何更改或添加,请选择它。

  • 若要选择一个对象,请单击该对象内部的任何位置。

  • 若要选择多个相邻对象,请单击并拖动选择框,使该框包含或触及要选择的对象,然后松开鼠标按钮。

    选中框内的所有对象或对象的部分。

  • 选择多个单独的对象,同时按转变单击一个对象或框一组对象。

    此步骤将对象添加到已选择对象的列表中,除非已经选择了对象,在这种情况下,对象将被取消选择。这种类型的多对象选择对于在不选择状态本身的情况下选择状态内的对象非常有用。

  • 若要取消选中所有选定对象,请在绘图区域单击,但不要在对象上单击。

当一个对象被选中时,它会高亮显示在颜色集中,作为选择颜色(默认为蓝色;看到在图表中指定颜色和字体以获取更多信息)。

剪切和粘贴图形对象

您可以从绘图区域剪切对象,也可以剪切并粘贴任意多次。您可以从一个图表剪切和粘贴对象到另一个图表。该图表保留了最近切割对象的选择列表。对象被粘贴在最接近当前指针位置的绘图区域位置。

  • 若要剪切对象,请右键单击对象并选择减少从上下文菜单。

  • 要粘贴最近剪切的对象选择,请在图表中单击右键并选择粘贴从上下文菜单。

复制图形对象

若要在绘图区域复制和粘贴对象,请选择对象并右键单击并将其拖动到绘图区域中的所需位置。该操作也会更新图表剪贴板。

请注意

如果在图表中复制粘贴一个状态,则适用以下规则:

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

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

或者,要从一个图表复制到另一个图表,请选择复制然后粘贴从右键单击上下文菜单。

注释掉对象

要注释出状态流对象,右键单击所选对象并选择注释掉.有关更多信息,请参见注释图表中的状态流对象

格式图表对象

要增强图表中对象的可读性,可以在“状态流编辑器”中使用格式选项卡。这些命令包括以下选项:

  • 对齐

  • 分布

  • 调整

您可以对齐、分布或调整这些图表对象:

  • 功能

  • 盒子

  • 连接

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

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

对齐、分发或调整图表对象大小的基本步骤类似。

  1. 如果图表包括来自单一来源的并行状态或传出转换,请确保图表使用显式排序。

    若要设置显式排序,请在“图表属性”对话框中选择用户指定的状态/转换执行顺序

    请注意

    如果图表使用隐式排序来确定并行状态的执行顺序或传出转换的求值顺序,则在对齐、分发或调整图表对象后,顺序可以更改。使用显式排序可以防止发生这种更改。有关更多信息,请参见平行州的执行命令而且过渡评估令

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

    您可以按任意顺序选择对象,可以一个接一个地选择,也可以在对象周围画一个框。

  3. 决定使用哪个对象作为对准、分布或调整其他图表对象的锚点。该对象为引用对象。

    若要将对象设置为引用,请右键单击对象。括号出现在引用对象周围。在下面的示例中,使用而且运动状态被选中,并且状态是参考。

    请注意

    如果逐个选择对象,最后选择的对象将作为引用。

  4. 控件中选择一个选项格式选项卡来对齐、分配或调整所选对象的大小。

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

分配图表对象的选项

选项 描述
水平分布

任何两个物体之间的中心到中心的水平距离是相同的。

请注意

水平分布空间是最左边对象的左边缘与最右边对象的右边缘之间的距离。如果您选择的对象的总宽度超过可用的水平空间,对象可以在分布后重叠。

垂直分布

任何两个物体之间的中心到中心的垂直距离是相同的。

请注意

垂直分布空间是最高物体的上边缘与最低物体的下边缘之间的距离。如果您选择的对象的总高度超过可用的垂直空间,则对象分布后可以重叠。

水平间隔均匀

任何两个物体之间的水平空白都是一样的。

请注意

空间限制水平分布适用。

垂直间隔均匀

任何两个物体之间的垂直空白都是一样的。

请注意

空间限制垂直分布适用。

对齐图表对象的例子

假设你打开sf_pool模型和看到一个图表与多个MATLAB函数。

将右侧的三个MATLAB函数对齐:

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

    提示

    展开Stateflow Editor以查看整个图表。

  2. 点击功能isAnyBallGoingToStop

  3. Shift-click函数isAnyBallNewlyPocketed

  4. Shift-click函数getBallInteraction

    该对象是对齐三个函数的引用(或锚点)。括号出现在函数周围。

  5. 在“格式”选项卡中,单击“向右对齐”。

    的右边缘对齐三个函数的右边缘getBallInteraction

分发图表对象的示例

假设你打开sf_frame_sync_controller建模,看一个有三个状态的图表。

垂直分布这三种状态:

  1. 打开sf_frame_sync_controller模型。

    提示

    双击帧同步控制器块打开图表。

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

    按shift键可选择多个状态。

    请注意

    当您以任意顺序选择这三个状态时,您的引用对象可能与显示的不同。这种差异并不影响垂直空白的分布。

  3. 格式选项卡上,单击垂直间隔均匀

    这一步确保了任何两个状态之间的垂直空白是相同的。

调整图表对象大小的例子

假设你打开sf_clutch_enabled_subsystems建模并查看具有不同大小的图形函数的图表。

来调整图形化函数的大小,使它们都与detectSlip:

  1. 打开sf_clutch_enabled_subsystems模型。

  2. 在“摩擦模式”图表中,通过在三个图形功能周围画一个框来选择它们。

  3. detectSlip作为用于调整大小的参考对象。

    右键单击该函数,用括号标记它。

  4. 格式选项卡上,单击匹配的尺寸

    这一步确保三个函数的大小相同。

  5. 调整功能框以纠正格式:

    1. 格式选项卡上,单击左对齐

    2. 格式选项卡上,单击垂直间隔均匀

自动图表格式

使用自动安排,statflow安排您的图表:

  • 展开状态和转换以适应它们的标签字符串。

  • 将相似的状态大小调整为相同的大小。

  • 如果状态有轻微的不对齐,则对齐它们。

  • 整理了一下转换。

  • 将水平转换标签重新定位到中点。

格式选项卡上,单击自动排列

在这个例子中,图表有:

  1. 在状态A边界之外的状态行为。

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

  3. 不水平的过渡。

在布局自动排列完成后:

  1. 状态行为包含在状态A中。

  2. 转换条件与状态B不重叠。

  3. 较低的过渡是水平的。

生成模型报告

印刷细节报表是的扩展印刷细节在Simulink模型窗口中金宝app生成报告。它提供了相对于当前视图中的图表的Stateflow和Simulink对象的报金宝app告,您可以从中选择报告。

要在图表对象上生成模型报告:

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

  2. 模拟选项卡上,选择打印>印刷细节

    将出现“打印详细信息”对话框。

  3. 输入报表文件的目标目录,并选择选项以指定报表中出现的对象。

    中设置字段的详细信息文件位置/命名选项节中,看到打印模型报告(金宝app模型).有关您收到的报告的详细信息,请参见系统报表选项而且报告格式

  4. 点击打印

将出现打印详细信息对话框并跟踪报表生成。看到打印模型报告(金宝app模型)有关此窗口的详细信息。

HTML报告出现在默认浏览器中。

提示

如果你有金宝appSimulink Report Generator™安装完成后,您可以生成关于系统的详细报告。这样做,在建模选项卡,在设计中,选择系统设计报告.有关更多信息,请参见系统设计说明(金宝appSimulink Report Generator)

系统报表选项

的选项不同,当前状态流图的报告也不同系统报告选项字段:

  • 当前的-在当前编辑器窗口及其直接父Simulink系统中报告图表或子图表。金宝app

  • 目前及以上-此选项为灰色,无法打印图表细节。

  • 电流及以下-在当前编辑器窗口中报告图表或子图表,以及层次结构较低级别的所有内容,以及即时Simulink系统。金宝app

  • 整个模型-整个模型的报告,包括所有图表和所有Simulink系统。金宝app

    选择该选项后,可对报表进行如下修改:

    • 面具下看对话框—报表中包含屏蔽子系统的内容。

    • 扩展唯一的库链接—包含报表中属于子系统的库块内容。

      报告只包含一个库子系统一次,即使它出现在模型中的多个地方。

报告格式

的一般自顶向下格式印刷细节报告如下:

  • 报告显示Simulink模型中系统的标题,其中包含当前视图中的图表或子图。金宝app

  • 下面是包含系统及其子系统的Simulin金宝appk层次结构的表示。层次结构中的每个子系统都链接到其状态流程图的报告。

  • 每个系统或子系统的状态流程图的报告部分以一个关于系统或子系统的小报告开始,然后是每个包含的图表的报告。

  • 每个图表报告都包含其图表的复制,并带有子图表状态的链接,这些子图表状态有自己的报告。

  • 附录列出了报告中包含的statflow和Simulink对象。金宝app