变更模型顾问检查度量仪表板
度量板可以收集和显示度量结果,帮助您评估模型的规范合规性。当您在度量仪表板中运行度量时,仪表板可以运行模型顾问检查组,使用 MATLAB® 代码分析器分析代码,并报告 Simulink® 诊断结果。仪表板显示了建模规范合规性组中的这些度量结果。您可以利用这些度量结果来监控模型合规性方面的警告和问题。

默认情况下,建模规范合规性组中的拨号控件和条形图控件使用来自两组模型顾问检查的度量数据:高完整性系统和 MAB 建模标准。您可以自定义建模规范合规性组,以显示不同的度量结果、使用不同的度量阈值或删除特定小组件。
此示例展示了如何更改条形图小组件中的 MAB 拨号小组件和 MAAB 条形图,以显示除默认检查组之外的其他检查组的度量结果。有关如何删除小组件或更改度量阈值的信息,请参阅 重新排列和删除度量板中的小组件 和 在度量板中修改、删除和添加度量阈值。
为自定义模型顾问度量创建度量 ID
如果您希望度量板收集特定模型顾问检查组的度量结果,请创建一个自定义模型顾问度量,该指标运行检查并计算度量结果。要创建自定义模型顾问度量,您需要创建一个度量 ID。
自定义模型顾问度量的度量 ID 必须采用 <Family ID>.<Check Group ID> 的形式。家族 ID 定义了度量返回的数据类型。检查组 ID 定义了度量运行和分析的模型顾问检查组。
1.打开模型顾问配置编辑器,选择所需的检查组文件夹,即可找到检查组的检查组 ID。您可以使用函数 Simulink.ModelAdvisor.openConfigUI 打开模型顾问配置编辑器。
Simulink.ModelAdvisor.openConfigUI
例如,假设您要查找模型顾问检查组克隆检测和模型重构的检查组 ID。在模型顾问窗格中,选择模型顾问配置编辑器 > 按产品 > Simulink Check> 克隆检测和模型重构。当您选择文件夹时,信息选项卡显示检查组 ID 为 _SYSTEM_By Product_Simulink Check_Clone Detection and Model Refactoring。
有关检查组和模型顾问配置编辑器的更多信息,请参阅 使用模型顾问配置编辑器来自定义模型顾问。

2.将检查组 ID 保存为工作区中的字符串变量。
checkGroupID = "_SYSTEM_By Product_Simulink Check_Clone Detection and Model Refactoring";创建自定义模型顾问度量的度量 ID 时,您可以将系列 ID 指定为以下两种之一:
mathworks.metrics.ModelAdvisorCheckCompliance- 该度量返回由检查组 ID 指定的检查组中通过检查的比例。mathworks.metrics.ModelAdvisorCheckIssues- 该度量返回由检查组 ID 指定的检查组报告的问题数量。
3.为返回检查组中通过检查比例的度量创建自定义模型顾问度量 ID。
metricID_for_Fraction_Passed = strcat("mathworks.metrics.ModelAdvisorCheckCompliance.",checkGroupID);4.为返回检查组报告的问题数量的度量创建自定义模型顾问度量 ID。
metricID_for_Number_of_Issues = strcat("mathworks.metrics.ModelAdvisorCheckIssues.",checkGroupID);访问您想要更改的小组件
仪表盘配置决定了小组件在度量盘中的显示位置和方式。您可以创建一个仪表板配置对象,并使用该对象访问布局中的小组件。
1.打开默认仪表盘配置,并将配置对象保存到基础工作区。
dashboardconfig = slmetric.dashboard.Configuration.openDefaultConfiguration();
2.从仪表盘配置中获取小组件布局。该布局包含多层仪表板对象。
layout = getDashboardLayout(dashboardconfig);
3.使用 getWidgets 函数获取布局顶层的仪表板对象。
layoutWidget = getWidgets(layout);
默认布局的顶层包含显示当前模型和大小、架构以及建模规范合规性度量等信息的小组件。建模规范合规性组是布局顶层的第三个组。
4.获取建模规范合规性组。
complianceGroup = layoutWidget(3);
建模规范合规性组包含两个容器:
顶部容器包含拨号小组件和条形图。
底部容器包含警告小组件。
在此图中,红色数字 1 和 2 分别表示顶部和底部容器。顶部容器中有三个小组件:高完整性拨号小组件、MAB 拨号小组件和模型顾问检查问题条形图。
要查看顶部和底部容器中的小组件,您可以通过输入以下命令打开度量仪表板:
metricsdashboard vdp

5.使用 getWidgets 函数获取建模规范合规性组中的两个容器。
complianceContainers = getWidgets(complianceGroup);
6.取出最上面的容器。
topContainer = complianceContainers(1);
7.获取顶部容器中的组件。
topContainerWidgets = getWidgets(topContainer);
8.从顶部容器中获取 MAB 拨号小组件和模型顾问检查问题条形图。
dialwidget = topContainerWidgets(2); barChartWidget = topContainerWidgets(3);
将自定义模型顾问度量给小组件
度量配置决定了您可以分配给度量仪表板中小组件的度量 ID。您可以更新度量配置,将自定义模型顾问度量 ID 分配给小组件,并更新小组件属性以使其适用于自定义模型顾问度量。请注意,度量配置不使用模型顾问配置文件来确定要运行哪些检查。如果您指定了自定义模型顾问配置,即使您未在模型顾问配置文件中选择这些检查,度量仪表板也会运行您的度量配置指定的检查。
1.打开默认度量配置,并将配置对象保存到基础工作区。
metricconfig = slmetric.config.Configuration.openDefaultConfiguration();
2.更新度量配置以识别克隆检测和模型重构检查组 ID。建模规范合规性组只能获取您使用函数 setMetricFamilyParameterValues 的 ModelAdvisorStandard 参量指定的检查组的度量结果。
originalCheckGroupIds = {'maab', 'hisl_do178'};
CheckGroupIDs = [originalCheckGroupIds checkGroupID];
setMetricFamilyParameterValues(metricconfig,ModelAdvisorStandard=CheckGroupIDs);3.更新拨号小组件,使其报告克隆检测和模型重构检查组中通过检查的比例,而不是默认的 MAB 建模标准检查组。
setMetricIDs(dialwidget,metricID_for_Fraction_Passed); dialwidget.Labels = "Clones and Refactoring"; dialwidget.Title = "Clone/Refactor";
拨号小组件接受介于 0 和 1 之间的小数数据值,但在仪表板中以百分比形式显示数据。
4.更新条形图小组件,使其报告来自克隆检测和模型重构检查组的检查问题数量,而不是默认的 MAB 建模标准检查组。
setMetricIDs(barChartWidget,metricID_for_Number_of_Issues); barChartWidget.Labels = "Issues"; barChartWidget.Title = "Clone Detection and Model Refactoring Issues";
5.保存更新后的仪表盘和度量配置,将配置设置为活动配置,然后打开度量盘以查看更新后的仪表盘布局。
save(dashboardconfig,'Filename','DashboardConfig.xml'); slmetric.dashboard.setActiveConfiguration(fullfile(pwd,'DashboardConfig.xml')); save(metricconfig,'FileName','MetricConfig.xml'); slmetric.config.setActiveConfiguration(fullfile(pwd,'MetricConfig.xml')); metricsdashboard vdp
要运行度量并查看度量结果,点击工具栏中的所有度量。

对于模型 vdp,拨号小组件显示克隆检测和模型重构检查组中 100% 的检查都通过了,条形图显示克隆检测和模型重构检查组中没有检查问题。由于自定义模型顾问度量没有关联的度量阈值,因此拨号小组件显示为蓝色。有关如何添加或更改度量阈值的信息,请参阅 在度量板中修改、删除和添加度量阈值。
有关度量仪表板自定义的更多信息,请参阅 自定义度量盘布局和功能。