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

使用 Pattern Wizard 创建流程图

Pattern Wizard 是一个实用工具,可生成常见流程图样式,用在图形函数和图中。相比手动创建流程图,Pattern Wizard 具有以下优势。Pattern Wizard:

  • 生成常见逻辑和迭代循环模式。

  • 提升模式间的几何结构和布局的一致性。

  • 便于从一个中心位置存储和重用模式。

  • 允许在现有流程图中插入模式。

Pattern Wizard 生成流程图,其几何结构和布局符合 MathWorks 汽车咨询委员会 (MAAB) 的规范。您可以通过修改条件和动作或插入额外的逻辑模式来自定义流程图。您还可以在 Pattern Wizard 中将流程图保存为自定义模式,以便以后重用。

例如,假设您要使用 Pattern Wizard 创建一个图形函数,用于在二维矩阵的上三角中进行迭代。该函数由两个嵌套的 for 循环组成,其中行索引 i 始终小于或等于列索引 j。通过使用 Pattern Wizard,您可以:

  1. 为对行索引 i 进行迭代的外部循环创建一个流程图。

  2. 插入对列索引 j 进行迭代的内部循环以扩展该流程图。

  3. 在 Pattern Wizard 中将流程图保存为自定义模式。

  4. 在一个图形函数中重用该自定义模式。

创建可重用的流程图

要创建流程图,请从 Chart > Add Pattern in Chart 菜单中选择一种模式。模式选项包括:

  • Decisionifif-else 以及嵌套的 if 决策模式。

  • Loopforwhiledo-while 循环模式。

  • Switchswitch 模式,最多包含 4 个 case。

  • Custom:您保存的自定义模式,供以后重用。

Stateflow® 的 Patterns 对话框提示您输入特定于所选模式的条件和动作。有关流程图模式的详细信息,请参阅Pattern Wizard 生成的符合 MAAB 的模式

例如,要在上三角迭代器模式中创建外部 for 循环,请执行下列步骤:

  1. 在 Stateflow Editor 中,选择Chart > Add Pattern in Chart > Loop > For

  2. 在 Stateflow Patterns 对话框中,指定用于对矩阵的第一个维度进行迭代的初始化表达式、循环测试表达式和计数表达式:

  3. 点击 OK。Pattern Wizard 生成此流程图。

要完成上三角迭代器模式,请在此流程图中沿垂直转移插入第二个 for 循环。

在现有流程图中插入逻辑模式

使用 Pattern Wizard 向现有流程图添加循环或决策逻辑扩展。选择符合条件的垂直转移,并从 Chart > Insert Pattern on Selection 菜单中选择一种模式。可用模式包括 DecisionLoopSwitch。Stateflow 的 Patterns 对话框提示您输入特定于所选模式的条件和动作。

例如,要在上三角迭代器模式中添加第二个循环,请执行下列步骤:

  1. 在 Stateflow Editor 中,从外部 for 循环模式中,选择标记为 {action1} 的垂直转移。

  2. 选择 Chart > Insert Pattern on Selection > Loop > For

  3. 在 Stateflow Patterns 对话框中,指定用于对矩阵的第二个维度进行迭代的初始化表达式、循环测试表达式和计数表达式。初始化表达式确保 i 永远不会超过 j。此外,输入一个动作来检索矩阵的上三角中的每个元素。

  4. 点击 OK。Pattern Wizard 将第二个循环添加到流程图。

  5. 保存包含模式的模型。

插入逻辑模式的指导原则

在创建逻辑扩展时,遵循以下指导原则:

  • 一次只能选择一个要扩展的转移。所选转移必须是垂直转移,并且具有一个目标结点。

  • 您只能扩展由 Pattern Wizard 创建的流程图。

  • 包含流程图的 Stateflow 图只能包含结点和转移。图不能包含其他对象,如状态、函数或真值表。

  • 您不能扩展自定义创建或修改过的模式。

  • 不可以选择自定义模式作为扩展。

如果所做的选择不符合插入条件,则当选择 Chart > Insert Pattern on Selection 时,会看到一条消息,而不是模式选项。

消息问题
选择垂直转移尚未选择垂直转移。
所选转移必须是垂直转移您选择了一个转移,但该转移不是垂直转移。
请只选择一个垂直转移您选择了多个转移。
编辑器必须只包含转移和联接点图中还有状态、函数或真值表等其他对象。

保存自定义流程图模式

使用 Pattern Wizard 集中保存流程图模式,以便轻松检索并在图形函数和图中重用。选择具有要保存的模式的流程图,然后选择 Chart > Save Pattern

例如,假设您要保存上三角迭代器模式供以后重用,请执行下列步骤:

  1. 创建一个用于存储您的自定义模式的文件夹。请参阅创建自定义模式文件夹的指导原则

  2. 在 Stateflow Editor 中,选择上三角迭代器流程图。

  3. 选择 Chart > Save Pattern

  4. 如果您尚未指定自定义模式文件夹,Pattern Wizard 会提示您选择一个文件夹。选择您创建的文件夹,然后点击 Select Folder

  5. 根据提示,将您的模式命名为 UpperTriangleIterator,然后点击 Save。Pattern Wizard 在自定义模式文件夹中将模式保存为模型文件 UpperTriangleIterator.slx

注意

您可以通过 Pattern Wizard 来仅重用流程图本身。要重用状态和子图,请创建一个原子子图。有关详细信息,请参阅Create Reusable Subcomponents by Using Atomic Subcharts

创建自定义模式文件夹的指导原则

Pattern Wizard 使用一个扁平的文件夹来保存和检索流程图模式。

  • 将所有流程图存储在自定义模式文件夹的顶层。不要创建子文件夹。

  • 确保所有流程图文件都带有 .mdl.slx 扩展名。

更改您的自定义模式文件夹

Pattern Wizard 会记忆您选择的自定义模式文件夹以供将来的会话使用。要选择不同文件夹,请重命名您的现有自定义模式文件夹,并执行以下操作之一:

  • 将新的自定义模式保存到 Pattern Wizard 中。

  • 从 Pattern Wizard 中重用一个现有自定义模式。

Pattern Wizard 会提示您选择一个新文件夹。

重用自定义流程图模式

Pattern Wizard 将您的流程图作为模型文件存储在自定义模式文件夹中。当选择 Chart > Add Pattern in Chart > Custom 时,保存在此文件夹中的模式会出现在下拉列表中。您可以将自定义模式直接添加到图或图中的子图化图形函数。

例如,要将上三角迭代器自定义模式添加到图形函数,请执行下列步骤:

  1. 从对象选项板中,将一个图形函数添加到图,如定义图形函数中所述。

  2. 输入此函数签名:

    function y = ut_iterator(u, numrow, numcol)
    函数采用三个输入。

    Input说明
    u二维矩阵
    numrow矩阵中的行数
    numcol矩阵中的列数

  3. 在函数内点击右键,然后选择 Group & Subchart > Subchart。该函数显示为不透明的框。

  4. 双击子图化的图形函数将其打开。

  5. 选择 Chart > Add Pattern in Function > Custom。随后会打开一个对话框,其中列出已保存到自定义模式文件夹的所有模式。

  6. 选择上三角迭代器模式,然后点击 OK。Pattern Wizard 将您的自定义模式添加到图形函数。

  7. 在图形函数中,将 action1 替换为适当的动作。该动作对矩阵的每行重复一次。

Pattern Wizard 生成的符合 MAAB 的模式

Pattern Wizard 生成流程图,其几何结构和布局符合 MathWorks 汽车咨询委员会 (MAAB) 的规范。

决策逻辑模式

 if

 if-else

 if-elseif

 if-elseif-else

 if-elseif-elseif-else

 嵌套 if

迭代循环模式

 for

 while

 do-while

Switch 模式

 包含两个 case 和 default 情形的 switch

 包含三个 case 和 default 情形的 switch

 包含四个 case 和 default 情形的 switch

相关主题