将“精确克隆”替换为“子系统引用”
精确克隆是指建模模式具有相同的模块类型、连接和参数值。克隆件检测器 用于标识跨越参考模型边界的这些克隆。然后,您可以通过将完全相同的克隆替换为库链接和子系统引用块来重用组件。要将精确克隆替换为库链接,请参阅 通过使用克隆检测启用组件重用。本示例演示如何使用 Create and Use Referenced Subsystems in Models 块替换子系统克隆。
识别确切克隆
打开模型
ex_detect_clones。openExample("ex_detect_clones");
将模型保存到您的工作文件夹中。该模型必须处于开放状态才能访问该应用程序。
在 App 选项卡上,点击克隆检测器。或者,在 MATLAB® 命令行中输入:
clonedetection("ex_detect_clones")该 App 会打开克隆检测器选项卡。本示例将带您了解每个部分。

用于克隆检测的设置窗格
该应用程序在三个窗格中显示信息。要打开窗格,请使用视图菜单。这些窗格分别是:
帮助 - 选择此项可访问包含克隆检测工作流程概述的帮助窗格。
结果 - 选择以查看克隆检测结果和操作窗格。
属性 - 选择以查看检测到的克隆属性窗格。
设置克隆检测参数
您可以使用设置下拉菜单设置克隆检测的参数。
选择用子系统引用替换精确克隆。
点击排除组件可访问排除模型引用、排除库链接和排除非活动和注释掉的区域选项。启用排除非活动和注释掉的区域选项会导致无法识别精确克隆
SS1,因为模型中存在 Variant Source 模块。有关详细信息,请参阅从克隆检测中排除组件。保持排除非活动和注释掉的区域选项为空。点击检测整个模型内的克隆以启用检测模型中任意位置的克隆。您可以选择最小区域大小和最小克隆组大小的值来检测具有这些匹配块的克隆。最小区域大小是每个克隆的块数,最小克隆组大小是该克隆组中存在的克隆数。每个的默认大小为
2。
识别模型中的克隆
点击查找克隆以标识克隆。
子系统
SS1和SS4的颜色变为红色,表示它们是完全相同的克隆体。
分析克隆检测结果
识别出克隆体后,您可以分析结果并根据需要对模型进行更改。分析结果:
在克隆检测结果和操作面板的克隆结果选项卡上,显示了克隆组
Exact Clone Group 1。点击
Exact Clone Group 1旁边的>符号,即可查看所有完全相同的子系统以及每个克隆的块数。在克隆检测结果和操作窗格中,点击日志选项卡。点击日志窗格上的超链接。
克隆检测报告以 HTML 格式生成,并保存在 MATLAB 当前文件夹中。该报告在新 Web 浏览器窗口中打开,显示克隆摘要、单个检测结果以及有关克隆组、克隆类型、检测参数和应用于模型的排除配置的详细信息。
点击模型层次结构选项卡并展开
ex_detect_clones。点击超链接以突出显示模型中存在的子系统。在检测到的克隆属性窗格的重构好处部分,您可以查看完全克隆的百分比。
重构模型后,模型重用率降低了 6.4516%。

替换克隆
在克隆检测器选项卡中,点击替换克隆。完全相同的克隆体被子系统参考块替换。您可以在工作文件夹中看到子系统引用的
.slx文件。您可以通过点击克隆检测结果和操作窗格的克隆结果选项卡中的还原按钮,将模型恢复到其原始配置并创建克隆。
检查模型的等效性
如果您有 Simulink Test™,您可以通过点击检查等效性在克隆检测选项卡中检查新模型与原始模型的等效性。
