主要内容

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

sldvruntest

使用输入数据仿真模型

说明

outData = sldvruntest(model, dataFile) 使用 model 中的所有测试用例来仿真 dataFileoutDataSimulink.SimulationOutput 对象的数组。每个数组元素包含相应测试用例的仿真输出数据。

outData = sldvruntest(model, dataFile, runOpts) 使用 model 中的所有测试用例来仿真 dataFilerunOpts 定义了仿真测试用例的选项。

示例

[outData, covData] = sldvruntest(model, dataFile, runOpts) 使用 model 中的测试用例仿真 dataFile。当 runOpts 字段 coverageEnabledtrue 时,Simulink® Coverage™ 软件会在仿真过程中收集模型覆盖率信息。sldvruntestcvdata 对象 covData 中返回覆盖率数据。

示例

全部折叠

分析 sldvdemo_cruise_control 模型。使用三个测试用例的数据来仿真模型。使用仿真数据检查器检查信号记录数据。

打开 sldvdemo_cruise_control 示例模型。

openExample('sldv/CruiseControlTestGenerationExample',...
'supportingFile', 'sldvdemo_cruise_control');

设置 sldvoptions 并分析模型。

opts = sldvoptions;
opts.Mode = 'TestGeneration';
opts.SaveHarnessModel = 'on';
opts.SaveReport = 'off';
[ status, files ] = sldvrun('sldvdemo_cruise_control', opts);

使用三个测试用例的数据来仿真模型。使用仿真数据检查器检查信号记录数据。

runOpts = sldvruntestopts;
[ outData ] = sldvruntest('sldvdemo_cruise_control',...
    files.DataFile, runOpts);
Simulink.sdi.createRun('Test Case 1 Output', 'namevalue',...
    {'output'}, {outData(1).find('logsout_sldvruntest')});
Simulink.sdi.createRun('Test Case 2 Output', 'namevalue',...
    {'output'}, {outData(2).find('logsout_sldvruntest')});
Simulink.sdi.createRun('Test Case 3 Output', 'namevalue',...
    {'output'}, {outData(3).find('logsout_sldvruntest')});
Simulink.sdi.view;

通过仿真 sldvdemo_cruise_control 模型的测试用例来生成覆盖率报告。

打开 sldvdemo_cruise_control 示例模型。

openExample('sldv/CruiseControlTestGenerationExample',...
'supportingFile', 'sldvdemo_cruise_control');

设置 sldvoptions 并分析模型。

opts = sldvoptions;
opts.Mode = 'TestGeneration';
opts.SaveHarnessModel = 'on';
opts.SaveReport = 'off';
[ status, files ] = sldvrun('sldvdemo_cruise_control', opts);

启用收集模型覆盖率数据的选项并使用该数据仿真模型。然后,使用 cvhtml (Simulink Coverage) 生成覆盖率报告。

runOpts = sldvruntestopts;
runOpts.coverageEnabled = true; 
[ outData,covData ] = sldvruntest('sldvdemo_cruise_control',...
                      files.DataFile,runOpts); 
cvhtml('coverageReport',covData); 

输入参数

全部折叠

要仿真的 Simulink 模型的名称或句柄,指定为字符向量或字符串标量。

包含输入数据的数据文件、结构体或电子表格的名称,指定为字符向量或字符串标量。

对于 MAT 文件,您可以使用 Simulink Design Verifier™ 分析或运行 sldvlogsignals 函数来生成数据文件。有关详细信息,请参阅管理 Simulink Design Verifier 数据文件

对于电子表格,您可以使用 Simulink Design Verifier 分析或运行 sldvgenspreadsheet 函数来生成数据文件。

sldvruntest 的配置以具有以下字段的结构体返回:

字段描述

testIdx

dataFile 进行仿真的测试用例索引数组。如果 testIdx[]sldvruntest 则仿真所有测试用例。

默认值: []

signalLoggingSaveFormat

指定连接到模型的 outport 的信号以及配置为记录的中间信号的信号记录数据格式。

如果指定数据集,数据将存储在 Simulink.SimulationData.Dataset 对象中。

默认值: 'Dataset'

coverageEnabled

如果为 true,则指定 Simulink Coverage 软件在仿真中收集模型覆盖率数据。

默认值: false

coverageSetting

cvtest 对象用于收集模型覆盖率。如果 []sldvruntest 使用 model 的现有覆盖率设置。

默认值: []

fastRestart

如果 trueSimulink Design Verifier 使用快速重启模式进行模型仿真。

默认值: true

useParallel

如果 trueSimulink Design Verifier 则使用并行计算仿真测试用例。此选项需要 Parallel Computing Toolbox™ 许可证。

默认值: false

注意

runOpts = sldvruntestopts 返回一个 runOpts 结构体,其中包含每个字段的默认值。

输出参量

全部折叠

仿真测试用例的输出数据,以 Simulink.SimulationOutput 对象数组的形式返回。每个 Simulink.SimulationOutput 对象都有以下字段:

字段名称描述

tout_sldvruntest

仿真时间

xout_sldvruntest

状态数据

yout_sldvruntest

输出信号数据

logsout_sldvruntest

信号记录数据:

  • 连接到输出端口的信号

  • 配置用于记录模型的信号

模型覆盖率数据,以 covdata 对象的形式返回。

注意

covdata 可能引用包含覆盖率结果的文件。当覆盖率函数使用 covdata 时,引用文件的覆盖率数据会自动加载到内存中。该文件存储在 sldv_covoutput 文件夹内生成的 sldv_output 文件夹中。

提示

  • 使用 Simulink Design Verifier 分析或运行 sldvlogsignals 创建的 dataFile 包含时间值和数据值。当您使用这些测试用例来仿真模型时,您可以实现缺失覆盖率。当由于数值计算差异导致 dataFile 中的时间值与当前仿真时间步长不一致时,就会出现缺失覆盖率。利用多速率模型(具有多个采样时间的模型),您可以更频繁地实现缺失覆盖率。

  • 对于 useParallel,使用并行计算仿真测试用例时必须考虑以下几点:

    • 启动并行池可能需要一些时间,这会影响整体分析时间。为了减少分析时间:

      • 在运行测试生成分析之前,请确保并行池已经在运行。默认情况下,并行池在空闲指定的分钟数后会关闭。要更改设置,请参阅 Parallel Computing Toolbox 中的主题“指定您的并行预设项”。

      • 在所有并行池工作进程上加载 Simulink。

    • 仿真按以下顺序进行:

      • 该集群不是 local。配置并行预设项以仅使用 local 集群。要更改设置,请参阅 Parallel Computing Toolbox 中的主题“指定您的并行预设项”。

      • 在启动 SLDV 分析之前,模型处于 dirty state 状态。

      • 该模型有 ToFile 模块。

      • 该模型处于软件在环(SIL)仿真模式。

      • 该模型是内部框架。

版本历史记录

在 R2007b 中推出

另请参阅

(Simulink Coverage) | (Simulink Coverage) | | |