Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

比较 Simulink 模型

浏览 Simulink 模型比较报告

您可以对使用任何 Simulink® 版本创建的模型进行比较。比较工具基于 SLX 文件生成比较报告,必要时还会重新保存为最新版本。使用报告查看差异,查看原始模型中突出显示的更改并合并差异。

比较报告仅显示更改,而不显示整个文件内容。该报告显示文件不同部分的分层视图,不显示文件的相同部分。要了解报告,请参阅关于 Simulink 模型比较

逐一查看差异,请在 Comparison 选项卡上的 Navigate 部分,点击 NextPrevious。请参阅逐一查看更改

您也可以通过点击选择层次结构树中的项并观察以下显示特征:

  • 所选项会在框中突出显示。

  • 如果所选项是匹配对的一部分,则该项会同时在左右两侧树的框中突出显示。

  • 当您选择一个项时,将显示原始模型并突出显示对应的项。请参阅查看原始模型中的更改

报告项的突出显示反映了各项差异的性质,如下所示:

报告项的类型突出显示注释
修改项紫色

修改项是两个文件之间存在差异的匹配对。当您选择某个修改项时,它会同时在两侧树的框中突出显示。
所选对中发生了更改的参数会显示在下方。

插入项蓝色

当您选择某个不匹配的项时,它仅在一侧树的框中突出显示。

删除项黄色
容器

没有突出显示的行表示一个容器项,其中包含其他经过修改或不匹配的项。

图标表示项的类别,例如:模型、子系统、Stateflow® 状态机或图、模块、信号线、参数等。

要展开或筛选树视图,请在工具条上找到下列功能选项:

  • Filter - 使用筛选器仅显示您感兴趣的更改。默认情况下,报告会隐藏所有非功能性更改,例如项的重新定位。关闭筛选器可查看所有差异,包括非功能性更改。请参阅筛选器比较报告

  • Find - 打开 Find 对话框,您可以在其中搜索项。

  • 如果要交换文件,请在 Comparison 选项卡上选择 Swap。报告会对两侧内容进行交换并返回比较结果。Refresh 还会再次执行分析。

要创建新报告,请参阅选择要比较的 Simulink 模型

有关说明的示例,另请参阅模型比较示例

逐一查看更改

Comparison 选项卡上的 Navigate 部分中,当您点击 Next 箭头按钮(或者焦点在报告中时按向下键)时,您将按以下顺序逐一查看报告中的各组更改:

  1. 第一次点击 Next 时,它会选中第一个有更改(紫色)的或插入(蓝色)的节点。

  2. 使用 Next 按钮逐一查看差异。

    • 当选定的项在右侧树中有匹配项时,它们也会突出显示。

    • 对于没有颜色背景的白色节点,如果其下没有参数更改,按 Next 会跳过这些节点。白色节点是层次结构中没有差异的部分。

    • 如果插入或删除项包含子节点且这些子节点也全部是插入或删除项,则按 Next 将跳过这些子节点。例如,如果插入一个子系统,按 Next 会选择顶层子系统节点,然后跳过该子系统内的所有节点(如果它们都是插入项)并选择下一个差异。

    • 在模型中进行突出显示时,Next 可最大限度地减少上下文切换。当您点击 Next 时,报告将在报告的左侧和右侧树中逐一显示模型、子系统或图的相同级别上的所有差异,然后再移至报告的下一级别。例如,您可以在左侧和右侧树中逐一查看某个子系统的所有差异,然后再移到另一个子系统。

  3. 当您逐一查看所有更改后,Next 会在结束位置停止。

如果您点击报告中的某一项,Next/Previous 控制项将从您选择的点开始逐一显示更改。

查看原始模型中的更改

当您比较 Simulink 模型时,可以选择在选择报告项时在原始模型中显示对应的项。您可以使用此突出显示功能来查看原始模型中的更改。当您选择一个项时,报告将突出显示模型中的对应项。

可以使用 Highlight Now 按钮和 Always Highlight 复选框来控制显示。

有关详细信息,请参阅Display Differences in Original Models

合并差异

要进行合并,请在 Comparison 选项卡上点击 Merge Mode。Target 窗格显示在报告的底部。使用按钮可选择要保留在目标中的差异。有关详细信息,请参阅从比较报告合并 Simulink 模型

打开选定节点的子级比较报告

如果针对特定的参数还可进行其他比较,您会看到一个 Compare 按钮,点击该按钮可以打开针对该对节点的比较报告。例如,如果 Model Workspace 中存在差异,则可以点击 Compare 打开一个新报告,供您查看变量中的差异。

  • 如果报告不能显示所有详细信息(例如,长字符串或脚本),则可以打开针对参数的新比较。

  • 如果原始模型包含 MATLAB Function 模块组件并且发现差异,请点击 MATLAB Function 模块报告项末尾的 Compare 按钮以在比较工具中打开新比较,这会显示 MATLAB Function 模块组件的文本差异报告。您可以合并来自文本比较报告的 MATLAB Function 模块代码中的差异。请参阅从比较报告合并 Simulink 模型

  • 如果原始模型包含真值表,并且存在差异:

    • 点击 MATLAB Function 节点末尾的 Compare 按钮可查看所有更改的汇总。

    • 点击 truthtable 节点可反向标注并同时显示两个真值表编辑器。

    • 点击参数上的 Compare 按钮可打开仅显示条件表差异的新文本比较。

    • 同样,对 Action Table 点击 Compare 按钮可仅查看操作更改。

了解报告层次结构和匹配

注意

如果文件先前对应部分的变化太大,则分析可能无法检测到匹配。

如果在报告中看不到预期的更改,请关闭筛选器并查看标识的所有更改。请参阅筛选器比较报告

筛选器比较报告

您可以定义自定义筛选器以简化报告并专注于指定的元素。您可以导入和导出筛选器以进行共享。使用内置筛选器可控制更改类别的显示。关闭筛选功能可查看标识的所有更改。

要查看可用的筛选器以及它们是否应用于当前报告,请在 Comparison 选项卡的 Filter 部分中,点击向下箭头以展开筛选器库。点击筛选器名称可切换是否应用它们。在 Filter 部分中,点击 Show 将所选筛选器更改包括在报告中,或点击 Hide 将所选筛选器更改从报告中排除。

使用筛选器可仅包含您感兴趣的更改。默认情况下,报告会隐藏所有非功能性更改。这些更改对设计行为(例如项目的重新定位)没有影响。关闭筛选器可查看所有差异,包括非功能性更改。如果在报告中看不到预期的更改,请尝试关闭筛选器。

内置筛选器包括:

  • Lines。选择对信号线的所有更改,包括功能性更改。

  • Nonfunctional Changes。报告将模型文件中的某些项标识为非功能性项,例如表示模块、系统、图或标签位置的参数的项,模块和信号线的字体和颜色设置,以及系统打印和显示设置。

  • Block Defaults。模块默认值很少更改,当添加或删除模块时,这些内容会使得报告更长。隐藏模块默认值可让报告更为简单。

要显示所有更改,请使用以下任一方法:

  • 不隐藏任何内容 - 点击 Hide 并禁用库中的所有筛选器。

  • 显示所有内容 - 创建自定义筛选器。在 New Filter 对话框中,删除第一列的内容,使其显示 “Any”,然后删除 Parameter Name 下的行的其余内容。点击 Show 并启用库中的“everything”筛选器。

要定义新的自定义筛选器,请执行下列操作:

  1. Comparison 选项卡的 Filter 部分中,点击 New Filter

  2. 在 New Filter 对话框中,为新筛选器定义一个或多个规则。例如,您可以选择参数或特定类型的模块或值。建议值取决于比较报告中的项目。为筛选器指定唯一名称,然后点击 Apply

  3. 要检查筛选器是否按您的预期应用于项目,请仅启用筛选器库中的新筛选器,然后点击 Show。相对于检查筛选器是否在隐藏您要在报告中看到的更改,以上操作通常更容易。

观察如何定义这些自定义筛选器。

用途SelectParameter NameParameter Value
筛选掉注释更改Annotation点击减号按钮可清除行。保留为空白
筛选掉 InportOutport 模块更改BlockBlockTypeInport
要添加行,请点击 Add Rule,然后选择 “BlockBlockTypeOutport
筛选掉采样时间参数更改ParameterSampleTimeAny

  • 注释更改:

  • InportOutport 模块更改:

  • 采样时间参数更改:

例外

报告不会筛选掉对模块和系统名称、注释和 Stateflow 注释所做的非功能性更改,即使对这些项的更改不影响仿真结果也是如此。报告始终会显示这些更改以便于查看代码更改,因为它们可能包含有关用户意图的重要信息。

在极少数情况下,报告会筛选掉可能影响设计行为的更改。默认情况下,移动将作为非功能性更改被筛选掉,但在以下情况下,移动可能会更改设计行为:

  • 在某些情况下移动模块可能会更改执行顺序。

  • 在 Stateflow 图中,如果移动状态或结点使它们相交,则模型将无法仿真。

要在报告中查看这些类型的更改,请关闭针对非功能性更改的筛选器。

更改颜色预设

您可以更改并保存比较工具的差异颜色预设。您可以将颜色预设应用于所有比较类型。

  1. 在 MATLAB® 主页选项卡中,点击预设

  2. 在“预设项”对话框中的 MATLAB 下,点击比较

  3. 根据需要编辑差异和合并的颜色设置。查看示例窗格中的颜色。

    当前设置列表中显示默认(已修改)

  4. 要在比较中使用修改后的设置,请点击应用并刷新比较报告。

  5. 要返回到默认颜色设置,请在“预设项”对话框中点击重置,然后点击应用。刷新比较报告。

  6. 如果要保存修改后的颜色预设以供将来的 MATLAB 会话使用,请点击另存为。为您的颜色设置配置文件输入一个名称,然后点击确定

    保存设置后,便可以在当前设置列表中选择它们。

保存比较结果

要保存比较结果,请使用下列 Comparison 选项卡按钮:

  • Publish > HTMLWordPDF - 打开“Save”对话框,您可以在其中选择保存比较报告的可打印版本。请参阅Save Printable Report

  • Publish > Workspace Variable - 将比较结果导出至工作区。请参阅Export Results to the Workspace

您也可以使用 visdiff 函数将比较报告发布到文件。

模型比较示例

有关说明的示例,请参阅:

另请参阅

相关示例

详细信息