cvdata
在 MATLAB 工作区中访问 Simulink Coverage 数据
说明
cvdata 对象存储模型覆盖率数据。
创建对象
当您对启用了覆盖率的模型进行仿真时,会自动生成 cvdata 对象。您可以使用覆盖率函数来访问覆盖率数据。cvdata 对象在您关闭或修改其父模型时将会失效。
属性
此属性是只读的。
覆盖率数据来源版本,以字符数组形式返回。
数据类型: char
此属性是只读的。
内部覆盖率数据 ID,以标量形式返回。
数据类型: double
此属性是只读的。
内部覆盖率数据类型,如果是单次覆盖率仿真,则以 TEST_DATA 形式返回;如果是聚合或累积覆盖率数据,则以 DERIVED_DATA 形式返回。
数据类型: char
此属性是只读的。
测试数据,以 cvtest 对象形式返回。此属性描述覆盖率配置。
数据类型: cvtest
此属性是只读的。
内部根 ID,以标量形式返回。
数据类型: double
此属性是只读的。
覆盖率数据校验和,以结构体数组形式返回。对模型进行的某些更改会导致 checksum 发生变化,例如,编辑模型结构(如删除或添加模块)或更改某些配置参数。要聚合覆盖率结果,cvdata.checksum 属性必须匹配。
数据类型: struct
此属性是只读的。
模型信息,以结构体数组形式返回。此属性包含有关进行覆盖率分析的模型的元数据。
cvdata.modelinfo 具有以下字段:
字段 | 描述 | 值 |
|---|---|---|
| 进行覆盖率分析的模型的版本。 | 包含版本号的 |
| 模型的原始创建者。 | 系统名称或组织名称 |
| 模型的上次修改日期和时间。 | 包含日期和时间的 |
| 指示默认参数行为设置。 |
|
| 指示是否启用了模块简化。 有关详细信息,请参阅模块简化。 |
|
| 条件输入执行开关。值 |
|
| 用于修正条件决策覆盖率 (MCDC) 分析的定义。值 有关详细信息,请参阅Simulink Coverage 中的修改条件和决策覆盖率 (MCDC) 定义。 |
|
| 分析的模型或模型对象的名称。如果分析范围被限定在子系统、Stateflow® 图或其他模型对象,则这是该模型对象的路径。 |
|
| 通过模块简化参数简化的模块列表(在启用了模块简化并且简化了任何模块的情况下)。 |
|
| 在测组件或包含在测组件的模型。如果您有模块图框架,则这是该框架所测试的模型。如果您有子系统框架,则这是包含该子系统的模型。 | character array |
| 如果模型包含子系统框架,则这是该框架正在测试的子系统。 |
|
| 框架模型名称。如果您有从多次测试运行聚合的数据,且每次运行对相同的 | character array |
| 指示是否启用了短路选项。 |
|
数据类型: struct
仿真开始时的系统时间,以字符数组形式返回。
数据类型: char
仿真停止时的系统时间,以字符数组形式返回。
数据类型: char
覆盖率区间开始时间,以标量形式返回。此值来自 CovStartTime 参数。有关详细信息,请参阅覆盖率区间开始时间。
数据类型: double
覆盖率区间停止时间,以标量形式返回。此值来自 CovStopTime 参数。有关详细信息,请参阅覆盖率区间停止时间。
数据类型: double
覆盖率过滤器文件名,以字符数组或字符数组元胞数组形式返回。此属性包含覆盖率过滤器文件的名称。如果未应用覆盖率过滤器,则此字段为空。您可以在仿真后通过将有效过滤器文件的名称赋给此属性来应用覆盖率过滤器。
数据类型: char | cell
仿真模式,以字符数组形式返回。有关详细信息,请参阅仿真模式。
数据类型: char
是否在覆盖率报告中排除非活动变体,指定为 0 或 1。将此属性设置为 0 时,将在覆盖率报告中报告非活动变体;将此属性设置为 1 时,将从覆盖率报告中排除非活动变体。
此属性仅影响具有启动激活时间的 Simulink® 变体和 Stateflow 图中的非活动变体配置。
如果您聚合两个或多个具有不同 excludeInactiveVariants 值的 cvdata 对象,则得到的聚合 cvdata 对象的 excludeInactiveVariants 属性值将为 0。
示例: covData.excludeInactiveVariants = 1;
数据类型: double
对象函数
cvhtml | 从模型覆盖率对象创建 HTML 覆盖率报告 |
cvmodelview | 以模型突出显示形式显示模型覆盖率结果 |
cvresults | 返回活动覆盖率数据,清除活动覆盖率数据以及从文件中加载活动覆盖率数据 |
cvsave | 将覆盖率设置和结果保存到文件中 |
extract | 从系统级覆盖率数据中提取子系统覆盖率数据 |
complexityinfo | 从 cvdata 对象中检索圈复杂度覆盖率信息 |
conditioninfo | 从 cvdata 对象中检索条件覆盖率信息 |
decisioninfo | 从 cvdata 对象检索决策覆盖率信息 |
executioninfo | 从 cvdata 对象检索执行覆盖率信息 |
getCoverageInfo | 从 cvdata 对象检索 Simulink Design Verifier 模块的覆盖率信息 |
mcdcinfo | 从 cvdata 对象中检索修正条件/决策覆盖率信息 |
overflowsaturationinfo | 从 cvdata 对象检索整数溢出覆盖率的饱和度 |
relationalboundaryinfo | 从 cvdata 对象检索关系边界覆盖率 |
sigrangeinfo | 从 cvdata 对象检索信号范围覆盖率信息 |
sigsizeinfo | 从 cvdata 对象检索信号大小覆盖率信息 |
tableinfo | 从 cvdata 对象检索查找表覆盖率信息 |
您可以对 cvdata 对象使用以下这些专门的 MATLAB® 运算符。
+ | 返回两个 |
- | 返回左操作数和右操作数之间的差集。返回的 |
* and .* | 返回两个 |
示例
此示例说明如何查看模型中某个模块的决策覆盖率数据。
加载模型。
modelName = 'slvnvdemo_cv_small_controller';
load_system(modelName);
使用 Simulink.SimulationInput 对象为模型配置覆盖率设置。
simIn = Simulink.SimulationInput(modelName); simIn = setModelParameter(simIn,'CovEnable','on'); simIn = setModelParameter(simIn,'CovMetricStructuralLevel','Decision'); simIn = setModelParameter(simIn,'CovSaveSingleToWorkspaceVar','on'); simIn = setModelParameter(simIn,'CovSaveName','covData');
将 simIn 作为输入传递给 sim 来对模型进行仿真。
simOut = sim(simIn);
从 SimulationOutput 对象 simOut 中以 cvdata 对象形式提取覆盖率数据。
covData = simOut.covData;
通过使用模块路径调用 decisioninfo 来查看 Saturation 模块的决策覆盖率结果。
blockPath = [modelName,'/Saturation'];
decisionCov = decisioninfo(covData,blockPath)
decisionCov =
3 4
decisioninfo 返回一个包含两个标量的数组。第一个值是满足的决策结果的数量,第二个值是总决策结果的数量。使用这些值来确定 Saturation 模块的满足的决策结果所占的百分比。
percentDecisionCov = 100 * decisionCov(1) / decisionCov(2)
percentDecisionCov =
75
版本历史记录
在 R2006a 之前推出
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)