decisioninfo
从 cvdata
对象检索决策覆盖率信息
语法
说明
从 covInfo
= decisioninfo(cvdo
, modelObject
)cvdata
对象 cvdo
返回由 modelObject
指定的模型组件的决策覆盖率结果。
从 covInfo
= decisioninfo(cvdo
, modelObject
, simMode
)cvdata
对象 cvdo
返回由 modelObject
指定的模型组件针对仿真模式 simMode
的决策覆盖率结果。
根据 covInfo
= decisioninfo(cvdo
, modelObject
, ignoreDescendants
)ignoreDescendants
的值返回 modelObject
的决策覆盖率结果。
[
返回与 covInfo
, description
] = decisioninfo(cvdo
, modelObject
)modelObject
相关的决策覆盖率结果和决策点的文本描述。
示例
查看决策覆盖率数据
此示例显示如何查看模型中模块的决策覆盖率数据。
加载模型。
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
输入参数
cvdo
— 覆盖率数据
cvdata
对象
覆盖率数据,指定为 cvdata
对象。
数据类型: cvdata
modelObject
— 模型对象
character array
| string array
| Simulink® handle
| Stateflow® ID
| cell array
模型对象,指定为字符数组、字符串数组、Simulink 句柄、Stateflow ID 或元胞数组。
要指定模型对象(例如模块或 Stateflow 图),请使用以下格式之一:
对象设定 | 描述 |
---|---|
| 模型或模块的完整路径 |
| 模型或模块 |
| Simulink API 对象的句柄 |
| Stateflow ID |
| 来自单独实例化的 Stateflow 图的 Stateflow API 对象的句柄 |
| 包含 Stateflow 图或原子子图的路径以及该图或子图中包含的对象的 ID 的元胞数组 |
| 包含 Stateflow 图或子图的路径以及该图或子图中包含的 Stateflow 对象 API 句柄的元胞数组 |
| 带有 Stateflow 图或原子子图句柄的元胞数组以及该图或子图中包含的对象的 ID |
要指定 S-Function 模块或其内容,请使用以下格式之一:
对象设定 | 描述 |
---|---|
| 包含 S-Function 模块路径和源文件名称的元胞数组 |
| 具有 S-Function 模块句柄和源文件名称的元胞数组 |
| 包含 S-Function 模块的路径、源文件的名称和函数名称的元胞数组 |
| 带有 S-Function 模块句柄、源文件的名称和函数名称的元胞数组 |
要指定代码覆盖率结果,例如在软件在环(SIL) 或处理器在环(PIL) 分析期间收集的覆盖率数据,请使用以下格式之一:
对象设定 | 描述 |
---|---|
| 包含源文件名称和函数名称的元胞数组 |
| 具有模型名称或模型句柄和源文件名称的元胞数组 |
| 具有模型名称或模型句柄、源文件的名称和函数名称的元胞数组 |
数据类型: char
| string
| cell
| Stateflow.State
| Stateflow.Transition
simMode
— 仿真模式
character array
| string array
覆盖率分析期间的仿真模式,指定为以下选项之一:
对象设定 | 描述 |
---|---|
| 普通仿真模式下的模型。 |
| 软件在环 (SIL) 或处理器在环 (PIL) 仿真模式下的模型。 |
| SIL 或 PIL 仿真模式下的模型参考。 |
| 在 SIL 或 PIL 仿真模式下的模型引用,代码接口设置为顶层模型。 |
数据类型: char
| string
ignoreDescendants
— 是否忽略覆盖率结果中的后代
false
或 0
(默认) | true
或 1
是否忽略覆盖率结果中的后代,指定为数字或逻辑 1 (true)
或 0 (false)
,其中:
0 (false)
包括后代对象的覆盖率结果。1 (true)
忽略后代对象的覆盖率结果。
数据类型: single
| double
| logical
输出参量
covInfo
— 覆盖率信息
标量
覆盖率信息,如果 cvdo
包含决策覆盖率数据,则返回为 [covered_outcomes,total_outcomes]
形式的双元素数组,如果不包含,则返回空数组。
covered_outcomes | modelObject 满足的决策结果数量 |
total_outcomes | modelObject 的决策结果总数 |
数据类型: double
description
— 决策覆盖率描述
structure
决策覆盖率描述,以具有以下字段的结构体数组形式返回:
isFiltered
— 模块排除标志
0
| 1
模块排除标志,如果模块被排除则返回为 1
,如果没有被排除则返回为 0
。
数据类型: double
filterRationale
— 模块覆盖率过滤器原理
character array
模块覆盖率过滤器原理,以字符数组形式返回。
数据类型: char
justifiedCoverage
— 已申述覆盖率目标结果的数量
scalar
已申述覆盖率目标结果的数量,以双精度标量形式返回。
数据类型: double
isJustified
— 模块申述标志
0
| 1
模块申述标志,如果模块对齐则返回 1
,否则返回 0
。
数据类型: double
decision
— 个人决策信息
structure array
单个决策的信息,以包含以下字段的结构体返回:
isFiltered
— 决策排除标志
0
| 1
决策排除标志,如果决策被排除则返回为 1
,否则返回为 0
。
数据类型: double
isJustified
— 决策申述标志
0
| 1
决策申述标志,如果决策已申述则返回 1
,否则返回 0
。
数据类型: double
filterRationale
— 覆盖率过滤器原理
character array
覆盖过滤器的基本原理,以字符数组形式返回。
数据类型: char
text
— 决策描述
character array
决策的描述,以字符数组形式返回。
数据类型: char
outcome
— 个人决策结果信息
structure
单个决策结果的信息,以包含以下字段的结构体数组返回:
text | 决策结果,以 'true' 或 'false' 形式返回。 |
executionCount | 决策产生此结果的时间步数,以双精度标量形式返回。 |
isFiltered | 决策结果排除标志,如果结果被排除则返回为 1 ,否则返回为 0 。 |
isJustified | 决策结果申述标志,如果结果已申述则返回 1 ,如果结果未申述则返回 0 。 |
filterRationale | 覆盖过滤器的基本原理,以字符数组形式返回。 |
executedIn | 聚合覆盖率测试用例可追溯性信息,以结构体数组形式返回。如果您的覆盖率数据不包含来自多个仿真的聚合结果,则 executedIn 是一个空数组。如果您的覆盖率数据包含聚合结果,executedIn 表示哪些测试运行执行了决策结果。 |
executedIn.uniqueId | 执行此条件结果的测试用例创建的 cvdata 对象的唯一标识符,以字符数组的形式返回。 |
executedIn.analyzedModel | 所分析模型的名称,以字符数组形式返回。 |
executedIn.description | 测试用例描述,以字符数组形式返回。 |
executedIn.date | 创建 cvdata 对象的仿真的日期和时间,以字符数组形式返回。 |
executedIn.traceLabel | 测试用例的简称,以字符数组形式返回。 |
executedIn.testRunInfo | 测试详细信息,以结构体数组返回。 |
executedIn.testRunInfo.runid | 生成覆盖率结果的运行的标识符,以双精度标量形式返回。 |
executedIn.testRunInfo.runName | 生成覆盖率结果的测试用例的名称,以字符数组形式返回。 |
executedIn.testRunInfo.testId | 识别生成覆盖率结果的测试用例的数据,以结构体数组的形式返回。 |
executedIn.testRunInfo.testId.uuid | 生成覆盖率结果的测试用例的唯一标识符,以字符数组形式返回。 |
executedIn.testRunInfo.testId.contextType | 获取覆盖率结果的测试上下文,以下列值之一返回:
|
数据类型: struct
数据类型: struct
数据类型: struct
备选方法
使用覆盖率设置来收集和显示决策覆盖率结果:
打开模型。
在模型编辑器中,选择建模选项卡上的模型设置。
在配置参数对话框的覆盖率窗格中,选择启用覆盖率分析。
在覆盖率度量下,选择决策作为结构覆盖率级别。
点击确定关闭配置参数对话框并保存更改。
通过点击运行按钮来仿真模型并查看结果。
版本历史记录
在 R2006b 中推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)