Main Content

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

cv.cvdatagroup 类

命名空间: cv

cvdata 对象的集合

描述

cv.cvdatagroup 类的对象包含一个或多个 cvdata 对象。每个 cvdata 对象包含模型层次结构中模型的覆盖率结果。cv.cvdatagroup 不能包含多个具有相同模型名称、仿真模式和版本的 cvdata 对象。

当您在启用覆盖率的情况下仿真包含模型引用的模型时,或者当您的模型使用外部代码文件并且您选择了外部文件进行覆盖率分析时,Simulink® Coverage™ 会创建一个 cv.cvdatagroup 对象。使用 getgetAll 类方法来检索模型参考层次结构中特定模型的覆盖率数据。使用 allNames 方法检索 cvdata 对象名称,以便与 get 类方法一起使用。

cv.cvdatagroup 类是 handle 类。

创建对象

描述

cvdg = cv.cvdatagroup(cvdo1,cvdo2,...) 创建一个包含指定 cvdata 对象的 cvdatagroup 对象。

注意

如果使用具有相同模型名称、仿真模式和版本的多个 cvdata 对象创建 cv.cvdatagroup 对象,则生成的 cv.cvdatagroup 对象仅包含其中一个 cvdata 对象。

示例

输入参量

全部展开

覆盖率数据,指定为一个或多个 cvdata 对象。

数据类型: cvdata

属性

全部展开

对象名称,指定为字符数组。

示例: cvdg.name = 'myDataGroup';

属性:

GetAccess
public
SetAccess
public

数据类型: char

方法

全部展开

示例

全部折叠

此示例显示如何从 cv.cvdatagroup 对象中检索指定的覆盖率数据对象、所有覆盖率数据对象或所有覆盖率数据对象名称。

加载示例模型。

modelName = 'slvnvdemo_eml_model_coverage_demo';
load_system(modelName);

使用 Simulink.SimulationInput 类来设置启用覆盖率的仿真场景。

simIn = Simulink.SimulationInput(modelName);
simIn = setModelParameter(simIn,'CovEnable','on');
simIn = setModelParameter(simIn,'CovMetricStructuralLevel','MCDC');
simIn = setModelParameter(simIn,'CovSaveSingleToWorkspaceVar','on');
simIn = setModelParameter(simIn,'CovSaveName','covData');
simIn = setModelParameter(simIn,'CovSaveOutputData','off');

通过将 SimulationInput 对象传递给 sim 函数来仿真模型,然后从 SimulationOutput 对象中检索覆盖率数据。

simOut = sim(simIn);
covData = simOut.covData
covData = ... cv.cvdatagroup

  slcoverageExternalFile (simulation mode: Normal)
  slvnvdemo_eml_model_coverage_demo (simulation mode: Normal)


示例模型包含一个调用外部 MATLAB 函数的 MATLAB® Function 模块。因为 Simulink Coverage 在单独的 cvdata 对象中返回 MATLAB 函数的覆盖率数据,所以 sim 返回一个 cv.cvdatagroup 对象,该对象包含模型和 MATLAB 函数的覆盖率结果。

要确定 cv.cvdatagroup 内每个 cvdata 对象关联的名称,请使用类方法 allNames

covDataNames = allNames(covData)
covDataNames =

  2x1 cell array

    {'slcoverageExternalFile'           }
    {'slvnvdemo_eml_model_coverage_demo'}

cv.cvdatagroup 包含模型以及 MATLAB 函数的覆盖率结果。

要检索模型的覆盖率数据,请使用 get 类方法。

modelCovData = get(covData,modelName)
modelCovData = ... cvdata
            version: (R2024a)
                 id: 882
               type: TEST_DATA
               test: cvtest object
             rootID: 884
           checksum: [1x1 struct]
          modelinfo: [1x1 struct]
          startTime: 20-Apr-2024 10:50:14
           stopTime: 20-Apr-2024 10:50:14
  intervalStartTime: 
   intervalStopTime: 
simulationStartTime: 0
 simulationStopTime: 1
             filter: 
            simMode: Normal

要检索模型和外部文件的覆盖率数据,请使用 getAll 类方法。

covDataArray = getAll(covData)
covDataArray =

  2x1 cell array

    {1x1 cvdata}
    {1x1 cvdata}

此示例显示如何使用两个 cvdata 对象创建一个 cvdatagroup 对象。

记录 slvnvdemo_cv_small_controller 的覆盖率。

model_1 = 'slvnvdemo_cv_small_controller';
load_system(model_1)
cvdo1 = cvsim(model_1);

记录 slvnvdemo_powerwindow_controller 的覆盖率。

model_2 = 'slvnvdemo_powerwindow_controller';
load_system(model_2)
cvdo2 = cvsim(model_2);

创建一个包含两个 cvdata 对象的 cv.cvdatagroup 对象。

cvdg = cv.cvdatagroup(cvdo1,cvdo2);

版本历史记录

在 R2007b 中推出

另请参阅

| |