主要内容

本页采用了机器翻译。点击此处可查看英文原文。

System Composer 比较工具

比较并合并 System Composer 架构模型之间的更改

自 R2022a 起

说明

System Composer™ 中的比较工具是一个交互式工具,用于可视化并合并两个 System Composer 架构模型及其相关数据之间的差异。

使用比较工具,您可以:

  • 比较并审查架构模型文件中的更改。

  • 在 System Composer 编辑器中可视化并突出显示更改。

  • 在 R2026a 中: 将比较结果导出,以便提交同行评审。

  • 在 R2026a 中: 使用合并模式来移植或还原不同架构模型中的更改。

该对比报告显示了以下类型架构数据之间的差异:

  • 模型结构差异(组件、端口和连接器)

  • 不同类型的支持组件和端口

  • 数据字典

  • 专属端口接口

  • 在模型元素上应用构造型和属性值更改

  • 配置文件 (自 R2025a 起)

  • 架构视图

  • 序列图 (自 R2025a 起)

  • 参数

  • Simulink® 属性

比较报告中的行根据差异类型突出显示:

  • 插入 teal highlight - 右侧新增元素,左侧不存在

  • 删除 gold highlight - 左侧存在,但右侧已删除的元素

  • 修改 purple highlight - 左右两侧都存在,但内容发生变化的元素

有关该工具的 Simulink 版本,请参阅比较工具

System Composer Model Comparison Tool

打开 System Composer 比较工具

您可以使用其中一种方法选择磁盘上的文件和文件夹进行比较:

  • 文件或工程面板 - 要比较磁盘上的两个文件,请同时选择这两个文件。然后,右键点击并选择比较选定的文件/文件夹比较工具会打开您在左侧首先选择的文件。

  • 命令行窗口 - 使用 visdiff 函数。

对于源代码管理下的文件,您可以打开比较工具,使用以下方法之一了解修订版之间的差异。

  • 文件或工程面板 - 要将文件与其祖先进行比较,请选择 源代码管理 > 查看更改。若要将该文件与另一个版本进行比较,请右键点击该文件,然后选择显示修订版。在日志对话框中,选择修订版本并点击与本地文件比较

  • 源代码控制面板 - 要将文件与其祖先文件进行比较,请在已修改文件部分右键点击该文件,然后选择查看更改。若要将该文件与另一个版本进行比较,请右键点击该文件,然后选择显示修订版。在日志对话框中,选择修订版本并点击与本地文件比较

  • 分支管理器 - 要检查两个 Git™ 修订版本之间文件的更改,请打开分支管理器。右键点击并选择 源代码管理 > 分支管理器。在提交差异窗格中,右键点击文件并选择显示差异

示例

全部展开

本示例演示了如何使用 System Composer 比较工具 来比较两个 Simulink® 数据字典 (.sldd) 文件。您可以在生成的比较报告中查看并合并这些差异。

System Composer™ 比较工具生成的报告中,列出了数据字典各部分所存储数据之间的差异。

  • 报告中的设计数据部分包含对 MATLAB® 变量、Simulink 参数、Simulink 信号和 Simulink 对象所做的更改。

  • 报告中的架构数据部分包含接口及其元素、值类型以及其他已定义类型(如别名类型、数值类型和枚举类型)的变更。

  • 报告中的配置部分包含对配置集参数所做的更改。

本示例中的数据字典存储了四旋翼飞行器架构的相关数据。有关四旋翼飞行器架构的详细信息,请参阅开发并验证四旋翼飞行器架构

比较数据字典中的差异

一位同事对字典 QuadData 进行了修改,并将修改后的字典保存为 QuadDataEdited。使用 visdiff 函数来比较数据字典文件。

visdiff("QuadData.sldd","QuadDataEdited.sldd");

System Composer 比较工具会显示一份报告,其中包含数据字典中存储的数据之间的差异。在此示例报告中,该工具选中了 landTime 节点,并在报告底部的窗格中显示了详细信息。在“详细信息”窗格中,该变量的 Value 属性已更改为 30

The System Composer Comparison Tool open with the landTime variable highlighted in purple. The Value panel displays the Value property of the landTime variable.

请仔细阅读对比报告,了解这些字典文件之间的差异。要逐步查看差异,请在比较选项卡中的导航部分使用下一个上一个按钮。

比较报告显示:

  • 设计数据部分中,添加了一个名为 GCSModes 的枚举类型。要查看枚举类型的结构体,请展开 GCSModes 节点。

  • 架构数据部分,OperatorCmds 数据接口已发生变更。删除了 TakeoffLandEmergencyOff 元素,并新增了一个名为 GroundControlMode 的元素。

  • 配置部分,将 StopTime 参数的值更改为 20

如需了解具体更改的详细信息,您可以选中对比报告中的一行。该工具会在报告底部的窗格中显示详细信息。

合并数据字典中的更改

您可以使用合并模式,通过双向合并将更改在数据字典文件之间进行同步。

  1. 比较工具条中,点击合并模式。比较工具会展开第一个更改,并在报告底部打开一个 Target 窗格。此操作还会创建第三个文件 targetFile,该文件可能包含来自左侧数据字典 (QuadData) 或右侧数据字典 (QuadDataEdited) 的更改。

  2. 使用 Target 树中的按钮,选择要在目标文件中保留的差异。

  3. 点击下一步跳转到下一处差异。

Two-way merge tool open with the comparison report of two data dictionaries and the Target pane open.

完成合并更改后,请点击保存结果按钮,将您的选择保存到临时文件 targetFile 中。若要取消所有操作,请在不保存文件的情况下点击返回比较。在“模型资源管理器”中检查您的更改。

自 R2025a 起

此示例展示了如何使用 System Composer 比较工具 来比较两个 System Composer™ 配置文件。您可以在生成的比较报告中查看并合并配置文件差异。

本例中的模型表示一种移动机器人的硬件架构,而该配置文件定义了构造型和属性,用于通过元数据扩展元素类型。有关该模型的详细信息,请参阅使用架构模型构建和分析系统。有关配置文件的更多信息,请参阅使用配置文件扩展 System Composer 语言元素

比较配置文件差异

一位同事对配置文件 MobileRobotProfile 进行了修改,并将修改后的配置文件保存为 MobileRobotProfileEdited。要比较配置文件,请在“文件”面板中选中这两个文件。右键点击任一文件并选择比较选定的文件/文件夹

System Composer 比较工具会显示一份报告,其中包含不同配置文件之间的差异,包括构造型刻板印象及其属性。在此示例报告中,该工具选中了 CriticalProcess 节点,并在报告底部的窗格中显示了详细信息。在“详细信息”窗格中,列出了新添加的 CriticalProcess 构造型的属性。

The System Composer Comparison Tool open with the CriticalProcess stereotype highlighted in blue. The Profile Property panel displays the Name, UUID, AppliesTo, and Color properties of the CriticalProcess stereotype.

请仔细阅读对比报告,了解这些配置文件之间的差异。要逐步查看差异,请在比较选项卡中的导航部分使用下一个上一个按钮。

比较报告显示:

  • DataConnector 构造型的 TypeOfConnection 属性的 <Default> 属性值已更改为 'USB'

  • MechanicalComponent 构造型中新增了一个名为 Manufacturer 的属性。

  • MechanicalComponent 构造型中新增了一个名为 UnitCost 的属性。

  • 新增了一个名为 PhysicalPort 的构造型。

  • 已删除 PowerSupply 构造型。

如需了解具体更改的详细信息,您可以选中对比报告中的一行。该工具会在报告底部的窗格中显示详细信息。

合并配置文件中的更改

您可以使用合并模式,通过双向合并将更改迁移到配置文件之间。

  1. 比较工具条中,点击合并模式。比较工具会展开第一个更改,并在报告底部打开一个 Target 窗格。此操作还会生成第三个文件 targetFile,该文件可能包含左侧配置文件 (MobileRobotProfile) 或右侧配置文件 (MobileRobotProfileEdited) 中的更改。

  2. 使用 Target 树中的按钮,选择要在目标文件中保留的差异。

  3. 点击下一步跳转到下一处差异。

Two-way merge tool open with the comparison report of two profiles and the Target pane open.

完成合并更改后,请点击保存结果按钮,将您的选择保存到临时文件 targetFile 中。若要取消所有操作,请在不保存文件的情况下点击返回比较。在“配置文件编辑器”中查看您的更改。

自 R2025a 起

本示例演示了如何使用 System Composer 比较工具 来比较两个 System Composer™ 序列图。您可以查看图元(如生命线、片段、操作数、消息、注解和持续时间约束)之间的差异。

本例中的模型和序列图描述了行人在设有交通信号灯的十字路口过马路的相关场景。有关创建序列图的更多信息,请参阅以交互方式编写序列图

比较图元素差异

一位同事对架构模型 SequenceDiagramComparisons 的序列图进行了修改,并将修改后的模型保存为 SequenceDiagramComparisonsEdited。使用 vissdiff 函数来比较架构模型。

visdiff("SequenceDiagramComparisons.slx","SequenceDiagramComparisonsEdited.slx");

System Composer 比较工具会显示一份报告,其中包含序列图元素之间的差异。该报告未列出模型元素之间的差异,因为这两个模型之间的模型元素均未发生变化。在此示例报告中,该工具选中了 Inhibit_v1 节点,并在报告底部的窗格中显示了详细信息。在“详细信息”窗格中,Name 属性的值已更改为 Inhibit_v2

The System Composer Comparison Tool open with the comparison report of two sequence diagrams.

请仔细阅读对比报告,了解这些序列图之间的差异。要逐步查看差异,请在比较选项卡中的导航部分使用下一个上一个按钮。

比较报告显示:

  • 已删除 When inhibit is true 注解。

  • pedRequestswitchPed 消息事件之间,新增了一项持续时间约束,其 Expression 属性值设置为 t > 12msec

  • 第一个消息的 Condition 属性被修改为 rising(sw-1){sw==1}

如需了解具体更改的详细信息,请在对比报告中选择一行。该工具会在报告底部的窗格中显示详细信息。

相关示例

参数

全部展开

在比较报告中,将待比较的两个文件的顺序对调。

当文件出现不同步时,请将更改内容同步到比较报告中。在点击 Refresh 之前,您必须先保存这两个文件。

Always Highlight 处于关闭状态时,您可以点击 Highlight Now 来突出显示文件中当前选中的比较报告节点。

默认情况下,在比较两个架构模型时,待比较的两个文件会显示在比较报告的右侧,其中与报告左侧对应的模型位于上方,与报告右侧对应的模型位于下方。关闭 Always Highlight 以使用 Highlight Now 按钮和模型中的控制高亮显示。

通过过滤菜单访问该复选框。选择该选项后,比较报告中将忽略组件定位和大小调整等图形变化。

将比较结果保存为可打印的报告(HTML、WORD、PDF、PDF/A)或作为工作区变量保存。

Linux® 不支持 PDF/A 比较报告。

注意

在云盘(例如 MATLAB® Drive™ 或 Microsoft® OneDrive™)上生成 PDF 报告时,可能会导致报告生成软件与云盘同步软件之间发生文件争用,从而引发此类错误。

Error closing document package: Could not commit changes: removeAll failed: fl:filesystem:AccessDenied: 
C:\Users\jdoe\OneDrive\Documents\MATLAB\reports\temp_FO\stylesheets: Permission denied.
为避免此问题,请在不会与云端同步的本地磁盘上生成报告。请考虑编写一个脚本,该脚本先在本地驱动器上生成一份报告,然后将该报告复制到云驱动器上。

点击合并模式会打开一个名为 Target 的第三个窗格。该窗格提供了选项按钮,供您从模型中选择要保存到 Target 文件中的更改。

编程用途

visdiff("scMobileRobot.slx","scMobileRobotEdited.slx") 从 MATLAB 命令行窗口打开 比较工具

版本历史记录

在 R2022a 中推出

全部展开