Main Content

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

sldvruntest

使用输入数据仿真模型

说明

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

示例

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

[outData, covData] = sldvruntest(model, dataFile, runOpts) 使用 dataFile 中的测试用例仿真 model 。当 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_output文件夹内生成的sldv_covoutput文件夹中。

提示

  • 使用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) | | |