主要内容

模型度量数据聚合

通过分析聚合的模型度量数据,您可以更好地理解模型及其组件的大小、复杂性和可读性。聚合的度量数据可在AggregatedValueAggregatedMeasures属性的slmetric.metric.Result对象。的AggregatedValue属性聚合度量标量值。的AggregatedMeasures属性聚合度量度量(即关于度量值的详细信息)。

模型度量聚合如何工作

模型指标的实现定义了指标如何跨组件层次结构聚合数据。对于MathWorks模型度量,slmetric.metric.Metric类定义模型度量聚合。这个类包括AggregationMode属性,它有以下选项:

  • 总和:返回价值财产和价值跨组件层次结构的子组件属性。的和Meaures财产和措施跨组件层次结构的子组件属性。

  • 马克斯:返回的最大值价值财产和价值跨组件层次结构的子组件属性。的最大值措施财产和措施跨组件层次结构的子组件属性。

  • 没有一个:不聚合度量值。

您可以找到关于MathWorks模型度量及其的描述AggregationMode属性设置模型指标.对于自定义指标,作为算法方法,您可以定义指标如何聚合数据。有关更多信息,请参见为非虚拟块计数创建自定义模型度量

此图显示了软件如何跨模型层次结构的组件聚合度量数据。父模型位于层次结构的顶端。组件可以如下:

  • 模型

  • 子系统块

  • 图表

  • MATLAB功能块

  • 保护模式

访问聚合度量数据

这个示例展示了如何在度量引擎中以编程方式收集度量数据,然后访问聚合的度量数据。

  1. 加载sldemo_applyVarStruct模型。

    模型=“sldemo_applyVarStruct”;开放(模型);load_system(模型);
  2. 创建一个slmetric。引擎对象,并设置分析根。

    metric_engine = slmetric.Engine ();setAnalysisRoot (metric_engine,“根”模型,“RootType”,“模型”);

  3. 为输入输出模型度量收集数据。

    execute (metric_engine mathworks.metrics.IOCount);
  4. 获取返回数组的模型度量数据slmetric.metric.ResultCollection对象,res_col.指定的输入参数AggregationDepth

    res_col = getMetrics (metric_engine,“mathworks.metrics.IOCount”,…‘AggregationDepth’,‘所有’);

    AggregationDepth输入参数有两个选项:所有没有一个.如果你不想getMetrics集合度量和值的方法,指定没有一个

  5. 显示结果。

    metricData ={‘MetricID’,‘ComponentPath’,‘价值’,……“AggregatedValue”、“措施”、“AggregatedMeasures '};问= 1;For n=1:length(res_col) if res_col(n)。Status == 0 results = res_col(n).Results;for m=1:length(results) disp(['MetricID: ',results(m).MetricID]);disp([‘ComponentPath:’,结果(m) .ComponentPath]);disp([值:,num2str(结果(m) Value)]);disp([' aggregatevalue: ',num2str(results(m). aggregatevalue))]);disp([措施:,num2str(结果(m)各行业)]); disp([' Aggregated Measures: ',... num2str(results(m).AggregatedMeasures)]); metricData{cnt+1,1} = results(m).MetricID; metricData{cnt+1,2} = results(m).ComponentPath; metricData{cnt+1,3} = results(m).Value; tdmetricData{cnt+1,4} = results(m).Measures; metricData{cnt+1,5} = results(m).AggregatedMeasures; cnt = cnt + 1; end else disp(['No results for:',res_col(n).MetricID]); end disp(' '); end

结果如下:

MetricID: mathworks.metrics.IOCount ComponentPath: sldemo_applyVarStruct值:3聚合值:5措施:1 2 0 0聚合措施:3 2 0 0 MetricID: mathworks.metrics.IOCount ComponentPath: sldemo_applyVarStruct /控制器值:4聚合值:4措施:3 1 0 0聚合措施:3 1 0 0 MetricID:mathworks.metrics.IOCount ComponentPath: sldemo_applyVarStruct /飞机动力学模型值:5聚合值:5措施:3 2 0 0聚合措施:3 2 0 0 MetricID: mathworks.metrics.IOCount ComponentPath: sldemo_applyVarStruct /德莱顿风速模型值:2聚合值:2措施:0 2 0 0聚合措施:0 2 0 0 MetricID:mathworks.metrics.IOCount ComponentPath: sldemo_applyVarStruct /新西兰估算值:3聚合值:3措施:2 1 0 0聚合措施:2 1 0 0 MetricID: mathworks.metrics.IOCount ComponentPath: sldemo_applyVarStruct /更多Info2值:0聚合值:0措施:0 0 0 0聚合措施:0 0 0 0

对于输入输出度量,AggregationMode马克斯.对于每个组件,AggregatedValueAggregatedMeasures属性是自身及其子组件的最大输入和输出数量。例如,对于sldemo_applyVarStruct,AggregatedValue属性是5,也就是sldemo_applyVarStruct /飞机动力学模型组件值。

另请参阅

|||

相关的话题