主要内容

使用克隆检测来实现组件重用

克隆是具有相同块类型和连接的建模模式。的克隆探测器App跨模型或子系统边界识别克隆。您可以使用Clone Detector应用程序或MATLAB命令通过创建克隆模式的库块并将克隆替换为指向这些库块的链接来重用组件。您还可以使用它来链接现有库中的克隆。

完全克隆和相似克隆

克隆有两种类型:完全克隆和相似克隆。完全克隆具有相同的块类型、连接和参数值。相似的克隆具有相同的块类型和连接,但它们可以具有不同的块参数值。例如,在相似的克隆中,增益块的值可以不同,但在完全相同的克隆中必须相同。

完全克隆和相似克隆有以下差异:

  • 两个克隆可以有不同的排序顺序。

  • 同一块连接时,信号线的长度、块的位置和大小可以不同。

  • 块和信号可以有不同的名称。

识别克隆之后,可以用库块链接替换它们。类似的克隆链接到屏蔽库子系统。

指定在哪里检测克隆

克隆检测器应用程序支持两个选项来检测模型中的克金宝app隆。您可以使用克隆检测设置在子系统中或模型中的任何地方搜索克隆。

  • 子系统克隆:仅标识子系统中的克隆。

  • 跨模型克隆:标识跨模型的克隆。

识别完全相同和相似的克隆

这个例子展示了如何使用Clone Detector应用程序来识别精确和相似的子系统克隆,然后用库块的链接替换它们。

  1. 打开模型ex_clone_detection.在MATLAB中®命令行输入:

    目录(fullfile (docroot,“工具箱”,“模型”,“示例”金宝app))ex_clone_detection

  2. 将模型保存到您的工作文件夹。模型必须是开放的才能访问应用程序。

  3. 应用程序选项卡上,单击克隆探测器.或者,在MATLAB命令行输入:

    clonedetection(“ex_clone_detection”)
  4. 应用程序打开克隆探测器选项卡。本例将介绍每个部分。

设置克隆检测窗格

该应用程序在多个窗格上显示信息。控件下的三个窗格视图菜单。这些窗格是:

  • 帮助.选择此选项可访问包含克隆检测工作流程概述的帮助窗格。

  • 结果.选择,查看“克隆检测结果和操作”窗格。

  • 属性.选择查看“检测到的克隆属性”窗格。

设置克隆检测参数

命令,设置克隆检测参数设置下拉菜单。

  • 选择忽略>信号名称中的差异当信号名称不同时,对克隆进行识别和分类。

  • 选择忽略>块属性的差异当块属性不同时,对克隆进行识别和分类。有关块属性的详细信息,请参见指定块属性

  • 点击用子系统引用替换精确克隆用子系统参考块查找并替换精确的克隆。

  • 点击排除组件访问排除模型引用排除库链接,排除不活跃和注释的区域选项。使排除不活跃和注释的区域选项标识可变数量的克隆,因为变异来源块在模型中。有关更多信息,请参见排除克隆检测组件.使排除模型引用而且排除库链接选项将导致识别更少的克隆,这取决于模型。

  • 点击用库匹配模式并选择一个外部库来查找克隆。有关更多信息,请参见识别并替换模型库中的克隆

  • 未匹配块参数的最大个数50默认情况下。这表示参数的数量,这些参数可以在子系统之间变化,并且仍然被分类为相似的克隆。您可以减少这个数字,以识别和分类更少的相似克隆。将该值设置为0,将只识别精确的克隆。

  • 点击跨模型检测克隆为了能够在模型的任何地方检测克隆。的值最小区域大小而且最小克隆组大小用这些匹配块来检测克隆。默认大小设置为2

识别模型中的子系统克隆

  1. 要在模型中找到克隆,单击要分析的子系统。在检测节中,所选的子系统名称显示在在系统中寻找克隆选项卡。使用大头针来记住选择。

  2. 点击发现克隆识别克隆。

  3. 子系统的颜色会发生变化,以反映所识别的相似和精确的克隆。红色高亮表示精确的克隆,不同深浅的蓝色高亮表示相似的克隆。

克隆探测器应用程序在工作目录中创建一个备份文件夹。备份文件夹名称有前缀m2m_<模型名称>.它将克隆数据保存在mat文件中。在重构模型后,您还可以在这个文件夹中找到原始模型的备份,用库块的链接替换克隆。

克隆检测结果分析

在识别克隆之后,您可以分析克隆检测的结果,并根据需要对模型进行更改。分析结果:

  1. 克隆检测结果和处理措施面板,在克隆的结果页签,显示克隆组列表。

  2. 单击>旁边的符号精确克隆组1查看所有完全克隆的子系统、块的数量和块的差异。重复同样的步骤相似克隆组1而且相似克隆组2

  3. 克隆检测结果和处理措施窗格,单击日志选项卡。上的超链接日志窗格。

    一个新的窗口将打开克隆检测结果,其中包括已识别的克隆、克隆类型、检测参数和克隆检测中的排除项的集成报告。

  4. 单击模型层次结构选项卡。单击超链接以突出显示模型中的特定子系统。要返回高亮显示所有克隆,在克隆的结果选项卡,单击高亮所有克隆

  5. 克隆的结果选项卡,扩大相似克隆组1然后点击视图参数差异超链接。

  6. 检测到的克隆属性面板,单击ex_clone_detection /魔法石/国超链接,它打开增益块在子系统中《魔法,在这里您可以访问与基线子系统不同的参数。

  7. 改变增益参数的值一个B并点击发现克隆.这会重新分类相似克隆组1精确克隆组2因为你解决了子系统之间的差异并把它转换成一个完全相同的克隆体。

  8. 重构的好处面板,你可以考虑不同类型的克隆存在的百分比。

    克隆检测结果和处理措施窗格,在克隆的结果选项卡,选择你想重构的克隆。选择要减少重构的所有克隆组22.5806%模型重用。

取代克隆

  1. 您可以使用默认库名称,也可以更改库文件的名称及其在克隆的结果TAB,然后再替换克隆。

  2. 点击取代克隆

    模型被重构,克隆被替换为指向newLibraryFile库文件在您的工作目录。

  3. 通过单击,您可以使用克隆将模型恢复到其原始配置恢复上生成的克隆检测器日志中找到的日志的标签。克隆检测结果和处理措施窗格。

识别并替换模型库中的克隆

  1. 打开图书馆ex_clone_library.在MATLAB命令行输入:

    目录(fullfile (docroot,“工具箱”,“模型”,“示例”金宝app))ex_clone_library

  2. 点击设置>匹配模式与库并选择ex_clone_library.slx.然后单击发现克隆

    请注意

    使用外部库标识和重构克隆必须在模型中分别完成。在模型重构期间,只有库中的精确克隆才会被库链接替换。

  3. 点击取代克隆

    用替换的克隆对模型进行重构。

检查模型的等价性

如果您拥有Simulink 金宝appTest™许可证,则可以单击检查相等.打开一个窗口,显示当前模型已成功重构为等效模型。

相关的话题