Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

比较 Simulink 模型

浏览 Simulink 模型比较报告

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

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

逐一查看差异,请在比较选项卡上的导航部分,点击下一个上一个。请参阅逐一查看更改

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

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

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

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

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

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

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

插入项蓝色

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

删除项黄色
容器

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

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

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

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

  • 查找 - 打开“查找”对话框,您可以在其中搜索项。

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

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

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

逐一查看更改

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

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

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

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

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

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

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

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

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

查看原始模型中的更改

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

可以使用立即突出显示按钮和始终突出显示复选框来控制显示。

有关详细信息,请参阅Open and Highlight Changes in Simulink Editor

合并差异

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

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

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

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

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

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

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

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

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

    • 同样,点击操作表比较按钮,仅查看操作更改。

了解报告层次结构和匹配

注意

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

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

过滤器比较报告

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

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

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

内置过滤器包括:

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

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

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

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

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

  • 显示所有内容 - 创建自定义过滤器。在“新建过滤器”对话框中,删除第一列的内容,使其显示任何,然后删除参数名称下的行的其余内容。点击显示并启用库中的“everything”过滤器。

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

  1. 比较选项卡的过滤器部分中,点击新建过滤器

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

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

观察如何定义这些自定义过滤器。

用途选择参数名称参数值
过滤掉注释更改注释点击减号按钮可清除行。保留为空白
过滤掉 InportOutport 模块更改模块BlockType输入端口
要添加行,请点击添加规则,然后选择模块BlockType输出端口
过滤掉采样时间参数更改参数采样时间任何

  • 注释更改:

  • InportOutport 模块更改:

  • 采样时间参数更改:

例外

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

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

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

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

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

更改颜色预设

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

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

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

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

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

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

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

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

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

保存比较结果

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

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

  • 发布 > 工作区变量 - 将比较结果导出至工作区。请参阅

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

模型比较示例

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

限制

MATLAB Online™ 不支持合并或创建自定义过滤器等功能。在 MATLAB Online 中,模型比较不支持 Stateflow 比较。

另请参阅

相关示例

详细信息