主要内容

relationalboundaryinfo

检索关系边界覆盖cvdata对象

描述

例子

报道= relationalboundaryinfo (covdata对象返回关系边界覆盖结果cvdata对象covdata指定的模型对象对象和它的后代。

例子

报道= relationalboundaryinfo (covdata对象模式返回关系边界覆盖结果cvdata对象covdata指定的模型对象对象及其后代为仿真模式模式

报道= relationalboundaryinfo (covdata对象ignore_descendants返回关系边界覆盖结果cvdata对象covdata指定的模型对象对象并且,取决于ignore_descendants,后代对象。

报道描述) = relationalboundaryinfo (covdata对象返回关系边界覆盖结果cvdata对象covdata指定的模型对象对象,以及对每个覆盖结果的文本描述。

例子

全部折叠

这个例子展示了如何收集关系边界覆盖信息饱和块在模型中。有关关系边界覆盖支持的块的更多信息,请参见金宝app对接收覆盖率的对象建模

打开slvnvdemo_cv_small_controller模型。为模型创建一个模型覆盖率测试规范对象。

open_system (“slvnvdemo_cv_small_controller”);testObj = cvt (“slvnvdemo_cv_small_controller”);

在模型覆盖测试规范对象中,激活关系边界覆盖。

testObj.settings.relationalop = 1;

模拟模型并收集覆盖结果cvdata对象。

dataObj = cvsim (testObj);

的关系边界覆盖结果饱和块在slvnvdemo_cv_small_controller.覆盖结果存储在表单的两个元素向量中[covered_outcomes total_outcomes]

blockHandle = get_param (“slvnvdemo_cv_small_controller /饱和度”“处理”);;[covResults, covDesc] = relationalboundaryinfo(dataObj, blockHandle)
covResults = 2 4 covDesc = isFiltered: 0 decision: [1x2 struct]

这个领域决定是一个1 X 2结构。的每个元素决定对应于块中的一个关系操作。的饱和块包含两个比较。第一个比较有一个下限,第二个比较有一个上限。因此,决定是一个二元结构。

查看接收关系边界覆盖的块中的第一个操作。为饱和块中,第一个关系操作是输入> lowerlimit

covDesc.decision (1)
ans = result: [1x2 struct] text: 'input - lowerlimit' isFiltered: 0 filterRationale: "

文本字段显示两个操作数。的isFiltered字段设置为1,如果从关系边界覆盖中筛选块。有关更多信息,请参见覆盖过滤

查看块中第一个关系操作的结果。

(我= 1:2)covDesc.decision (1) .outcome(我)结束
ans = isActive: 1 execCount: 0 text: '[-tol..]0]' ans = isActive: 1 execCount: 0 text: '(0..tol]'

查看接收关系边界覆盖的块中的第二个操作。为饱和块,第二个关系操作是输入< upperlimit

covDesc.decision (2)
ans = result: [1x2 struct] text: 'input - upperlimit' isFiltered: 0 filterRationale: "

查看块中第二个关系操作的结果。

(我= 1:2)covDesc.decision (2) .outcome(我)结束
ans = isActive: 1 execCount: 1 text: '[-tol..0]' ans = isActive: 1 execCount: 2 text: '[0..tol]'

输入参数

全部折叠

覆盖结果数据,指定为cvdata对象。

模型或模型组件,指定为完整路径、句柄或路径或句柄数组。

对象规范 描述

BlockPath

到模型或块的完整路径

BlockHandle

模型或块的句柄

slObj

Simulink的句柄金宝app®API对象

sfID

Stateflow®ID

sfObj

Stateflow API对象的句柄

{BlockPath, sfID}

单元格数组,其中包含到状态流图或原子子图的路径以及该图表或子图表中包含的对象ID

{BlockPath, sfObj}

单元格数组,包含到状态流图或原子子图的路径,以及该图表或子图表中包含的状态流对象API句柄

{BlockHandle, sfID}

单元格数组,具有状态流图或原子子图的句柄和该图表或子图表中包含的对象ID

当指定S-function块时,为对象包括以下:

对象规范 描述

{BlockPath、帧}

单元格数组的路径功能块和源文件的名称。

{BlockHandle、帧}

单元格数组功能块句柄和源文件的名称。

{BlockPath、帧,funName}

单元格数组的路径功能块、源文件的名称和函数名。

{BlockHandle、帧,funName}

单元格数组功能块句柄、源文件的名称和函数名。

对于在软件在环(SIL)模式或处理器在环(PIL)模拟模式中收集的覆盖数据,有效值为对象包括以下:

对象规范 描述

{文件名,funName}

单元格数组,包含源文件名称和函数名称。

{模型中,文件名}

单元格数组具有模型名称(或模型句柄)和源文件的名称。

{模型、文件名funName}

单元格数组具有模型名称(或模型句柄)、源文件名称和函数名称。

例子:get_param(“slvnvdemo_cv_small_controller /饱和度”、“处理”)

有效值为模式包括以下:

对象规范 描述

“正常”

正常仿真模式下的模型。

“银”(或“公益诉讼”)

模型在软件在环(SIL)或处理器在环(PIL)模拟模式。

“ModelRefSIL”(或“ModelRefPIL”)

在软件在环(SIL)或处理器在环(PIL)仿真模式中的模型参考。

“ModelRefTopSIL”(或“ModelRefTopPIL”)

软件在环(SIL)或处理器在环(PIL)模拟模式中的模型参考,代码接口设置为顶层模型。

优先选项,以忽略作为逻辑值指定的后代对象的覆盖。

1-忽略后代对象的覆盖
0-收集后代对象的覆盖率

数据类型:逻辑

输出参数

全部折叠

关系边界覆盖结果,存储在表单的两个元素向量中[covered_outcomes total_outcomes].这两个要素是:

covered_outcomes 满足的关系边界结果的数目对象
total_outcomes 的关系边界结果总数对象

数据类型:

所指定的模型组件的覆盖率结果的文本描述对象,作为结构数组返回。根据收集的模型覆盖的类型,结构数组可以有不同的字段。如果只收集关系边界覆盖,结构数组包含以下字段:

isFiltered

0指定的模型组件对象也不排除在覆盖记录之外。1指定的模型组件对象被排除在覆盖记录之外。有关从覆盖范围中排除对象的详细信息,请参见覆盖过滤

decision.text

字符向量或字符串的形式:

op_1-op_2

  • op_1是关系操作中的左操作数。

  • op_2是关系操作中的右操作数。

decision.outcome

每个覆盖结果包含两个字段的结构数组:

isActive 布尔变量。如果这个变量是,这表明由于信号大小的变化,在模拟过程中没有评估决策。
execCount 的次数op_1-op_2在…所描述的范围内文本
文本 考虑用于覆盖的关系边界周围的范围。有关更多信息,请参见关系边界

decision.isFiltered

0指定的模型组件对象也不排除在覆盖记录之外。1指定的模型组件对象被排除在覆盖记录之外。有关从覆盖范围中排除对象的详细信息,请参见覆盖过滤

decision.filterRationale

对指定的模型组件进行过滤的基本原理对象,如果对象被排除在承保范围之外,并指定了理由。有关从覆盖范围中排除对象的详细信息,请参见覆盖过滤

数据类型:结构体

介绍了R2014b