主要内容

cvsim

仿真并返回测试对象的模型覆盖率结果

说明

cvdo = cvsim(modelName) 会对模型进行仿真,并在 cvdata 对象 cvdo 中返回覆盖率结果。当使用 modelName 进行调用时,cvsim 使用在模型配置参数中指定的覆盖率度量设置。

注意

即使未在模型配置参数中启用覆盖率,cvsim 也会记录覆盖率。

cvdo = cvsim(testObj) 会对模型进行仿真,并返回 cvtest 对象 testObj 的覆盖率结果。

注意

testObj 中指定的覆盖率度量设置会覆盖在模型配置参数中指定的覆盖率度量设置。

[cvdo,simOut] = cvsim(__,Name,Value) 指定模型参数,对模型进行仿真,并在 cvdata 对象 cvdo 中返回覆盖率结果,在 Simulink.SimulationOutput 对象 simOut 中返回仿真输出。

[cvdo,simOut] = cvsim(testObj,paramStruct) 设置在结构体 paramStruct 中指定的模型参数。

[cvdo1,...,cvdoN] = cvsim(testObj1,...,testObjN) 针对 N 个测试对象对模型进行仿真,并返回每个对象的覆盖率结果。

示例

示例

全部折叠

此示例说明如何将 cvsimcvtest 对象输入以及模型参数的结构体结合使用。

加载 slvnvdemo_cv_small_controller 示例模型。

modelName = 'slvnvdemo_cv_small_controller';
load_system(modelName)

创建一个 cvtest 对象并启用决策覆盖率。

testObj = cvtest(modelName);
testObj.settings.decision = 1;

创建一个结构体,用于定义以下模型参数:

  • 将绝对容差 AbsTol 设置为 1e-5

  • 通过设置 SaveState,使仿真能够将状态保存到工作区。

  • 使用 SaveStateName 声明用于保存状态信息的变量名称。

  • 通过设置 SaveOutput,使 Simulink® 能够将仿真输出数据保存到工作区。

  • 使用 OutputSaveName 声明用于存储仿真输出数据的变量名称。

paramStruct.AbsTol =         '1e-5';
paramStruct.SaveState =      'on';
paramStruct.StateSaveName =  'xoutNew';
paramStruct.SaveOutput =     'on';
paramStruct.OutputSaveName = 'youtNew';

使用 cvsim 对模型进行仿真,并使用 cvhtml 生成覆盖率报告。

[covData,simOut] = cvsim(testObj,paramStruct);
cvhtml('CoverageReport.html',covData,'-sRT=0');

输入参数

全部折叠

Simulink 模型的名称,指定为字符数组或字符串数组。cvsim 使用当前的覆盖率设置对模型进行仿真。

数据类型: char | string

覆盖率测试设置,指定为 cvtest 对象。cvsim 使用 testObj 中指定的设置收集覆盖率。

testObj 中指定的覆盖率度量设置会覆盖在模型配置参数中指定的覆盖率度量设置。例如,如果您的模型中的结构覆盖率等级参数设置为修正条件决策覆盖率(MCDC),但您的 testObj.settings.mcdc 属性为 0,则 covData = cvsim(testObj)记录 MCDC 覆盖率。

数据类型: cvtest

模型参数,指定为一个结构体。您可以将模型参数指定为一个结构体,并使用该结构体代替名称-值对组参量来设置多个参数。

paramStruct 字段是模型参数的名称,而值是对应的参数值。

示例: paramStruct.AbsTol = '1e-5';

数据类型: struct

名称-值参数

全部折叠

将可选参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。

在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来

示例: [cvdo,simOut] = cvsim(testObj,'AbsTol','1e-5'); 指定使用 testObj 中指定的覆盖率设置,并以绝对容差 1e-5 对模型进行仿真。

cvsim 支持的模型参数与 sim 支持的相同,但“配置参数”窗口的覆盖率窗格中的参数除外。

模型参数的名称,指定为字符数组或字符串数组。参数的值指定为下一个参量。

数据类型: char | string

输出参量

全部折叠

cvdo,以 cvdata 对象的形式返回。但是,当为层次结构中的多个模型记录覆盖率时,cvdo 是一个 cv.cvdatagroup 对象。cvdo 包含来自仿真的系统的覆盖率数据。

请参阅对象结构体的 cvdata

simOut,以 Simulink.SimulationOutput 对象的形式返回。

限制

  • cvtest 对象不支持快速重启。如果您带多个 cvtest 对象调用 cvsim,并且您的模型启用了快速重启,则 cvsim 会忽略第一个对象之后的 cvtest 对象的配置。要对多次运行进行覆盖率分析,请禁用快速重启或使用 sim 函数。有关使用 sim 函数分析覆盖率的详细信息,请参阅对覆盖率数据执行操作

版本历史记录

在 R2006a 之前推出

另请参阅

| | | |