Main Content

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

sigrangeinfo

cvdata 对象检索信号范围覆盖率信息

说明

[min,max] = sigrangeinfo(cvdo,modelObject) 返回 cvdata 对象 cvdo 内的模型组件 modelObject 输出的最小和最大信号值。

如果信号大小可变,则 minmax 是包含每个数组位置的最小值和最大值的向量。如果数组具有无界维度,则 minmax 是单个值,表示所有数组位置的最小值和最大值。

示例

[min,max] = sigrangeinfo(cvdo,modelObject,portID) 返回与 modelObject 的输出端口 portID 相关的最小和最大信号值。

示例

全部折叠

此示例展示如何从覆盖率数据对象中提取信号范围信息。

加载模型并设置覆盖率选项

将模型加载到内存中。本例采用的是小型控制器模型。

modelName = 'slvnvdemo_cv_small_controller';
load_system(modelName)

使用参数名称和值的结构体声明覆盖率设置。

covOpts.CovEnable = 'on';
covOpts.CovSaveSingleToWorkspaceVar = 'on';
covOpts.CovSaveName = 'covData';
covOpts.CovMetricSignalRange = 'on';

使用sim对模型仿真,以模型名称和参数结构体作为输入。

simOut = sim(modelName,covOpts);

获取信号范围数据

使用 get_param 获取产品模块的模块句柄。

bHandle = get_param([modelName,'/Product'],'Handle');

通过调用 sigrangeinfo 并以 cvdata 对象和模块句柄作为输入来获取信号范围数据。

[minVal, maxVal] = sigrangeinfo(covData,bHandle)
minVal =

     0


maxVal =

   25.0000

输入参数

全部折叠

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

数据类型: cvdata

模型对象,指定为字符数组、字符串数组、Simulink 句柄、Stateflow ID 或元胞数组。

要指定模型对象(例如模块或 Stateflow 图),请使用以下格式之一:

对象设定描述

BlockPath

模型或模块的完整路径

BlockHandle

模型或模块

slObj

Simulink API 对象的句柄

sfID

Stateflow ID

sfObj

来自单独实例化的 Stateflow 图的 Stateflow API 对象的句柄

{BlockPath, sfID}

包含 Stateflow 图或原子子图的路径以及该图或子图中包含的对象的 ID 的元胞数组

{BlockPath, sfObj}

包含 Stateflow 图或子图的路径以及该图或子图中包含的 Stateflow 对象 API 句柄的元胞数组

{BlockHandle, sfID}

带有 Stateflow 图或原子子图句柄的元胞数组以及该图或子图中包含的对象的 ID

要指定 S-Function 模块或其内容,请使用以下格式之一:

对象设定描述

{BlockPath, fName}

包含 S-Function 模块路径和源文件名称的元胞数组

{BlockHandle, fName}

具有 S-Function 模块句柄和源文件名称的元胞数组

{BlockPath, fName, funName}

包含 S-Function 模块的路径、源文件的名称和函数名称的元胞数组

{BlockHandle, fName, funName}

带有 S-Function 模块句柄、源文件的名称和函数名称的元胞数组

要指定代码覆盖率结果,例如在软件在环(SIL) 或处理器在环(PIL) 分析期间收集的覆盖率数据,请使用以下格式之一:

对象设定描述

{fileName, funName}

包含源文件名称和函数名称的元胞数组

{Model, fileName}

具有模型名称或模型句柄和源文件名称的元胞数组

{Model, fileName, funName}

具有模型名称或模型句柄、源文件的名称和函数名称的元胞数组

数据类型: char | string | cell | Stateflow.State | Stateflow.Transition

模块的输出端口,指定为字符数组或字符串数组。

数据类型: char | string

输出参量

全部折叠

模型对象输出的最小信号值,以双精度标量形式返回。如果 modelObject 输出是一个向量,那么 min 就是包含每个输出最小信号值的向量。如果 modleObject 输出是一个无界的可变数组,则 min 是一个表示所有数组位置的最大值的单一聚合值。

如果某个模块没有执行,sigrangeinfo 将返回 +Inf 作为该模块的 min 值。

如果某个模块不是叶模块,则 sigrangeinfo 返回一个空数组。

数据类型: double

模型对象输出的最大信号值,以双精度标量形式返回。如果 modelObject 输出是一个向量,那么 max 就是包含每个输出最大信号值的向量。如果 modleObject 输出是一个无界的可变数组,则 max 是一个表示所有数组位置的最大值的单一聚合值。

如果某个模块没有执行,sigrangeinfo 将返回 -Inf 作为该模块的 max 值。

如果某个模块不是叶模块,则 sigrangeinfo 返回一个空数组。

数据类型: double

备选方法

使用覆盖率设置来收集模型的信号范围覆盖率:

  1. 打开您想要收集信号范围覆盖率的模型。

  2. 在模型编辑器中,选择建模选项卡上的模型设置

  3. 在配置参数对话框的覆盖率窗格中,选择启用覆盖率分析

  4. 覆盖率度量下,选择信号范围

  5. 点击确定关闭配置参数对话框并保存更改。

  6. 通过点击运行按钮来仿真模型并查看结果。

版本历史记录

在 R2006b 中推出

全部展开