管理 Simulink Design Verifier 数据文件
Simulink® Design Verifier™完成分析后生成数据文件。数据文件是包含 sldvData
结构体的 MAT 文件。该结构体存储了软件在分析过程中收集和产生的所有数据。尽管软件框架模型和报告中以图形方式显示相同的数据,但您可以使用数据文件进行进一步的自定义分析或生成自定义报告。
生成 sldvData
结构
完成以下步骤来探索sldvData
结构体的内容。
为
sldvdemo_flipflop
模型生成测试用例。openExample('sldv/FlipFlopTestGenerationExample', ... 'supportingFile', 'sldvdemo_flipflop'); sldvrun('sldvdemo_flipflop');
将
sldvdemo_flipflop
模型的sldvData
结构体加载到MATLAB®工作区。load('sldv_output\sldvdemo_flipflop\sldvdemo_flipflop_sldvdata.mat')
显示结构体中字段的名称。
sldvData = ModelInformation: [1x1 struct] AnalysisInformation: [1x1 struct] ModelObjects: [1x2 struct] Constraints: [] Objectives: [1x12 struct] TestCases: [1x4 struct] Version: '2.1'
sldvData
中的模型信息字段
以下部分描述了 sldvData
结构体中的字段:
模型信息
ModelInformation
字段包含有关您在 Simulink Design Verifier 中分析的模型的信息。下表描述了ModelInformation
字段中的子字段。
子字段名称 | 描述 |
---|---|
Name | 型号名称。 |
Version | 型号。 |
Author | 用户名。 |
TimeStamp | 上次更新的日期和时间。 |
SubsystemPath | 所分析的子系统(如果有)的完整路径名。 |
ExtractedModel | 提取用于分析 |
ReplacementModel | 包含模块替换的模型的名称。 |
HarnessOwnerModel | 所分析的 Simulink Test™框架模型的所有者的姓名。 |
分析信息
AnalysisInformation
字段列出了分析选项和相关信息。该表描述了AnalysisInformation
字段。
子字段名称 | 描述 |
---|---|
Status | 分析状态。 |
AnalysisTime | 分析持续时间(秒) |
Options | 分析过程中使用的 Simulink Design Verifier 选项对象的深度复制。 |
InputPortInfo | 包含有关系统顶层每个 Inport模块的信息的结构单元数组。 |
OutputPortInfo | 包含有关系统顶层每个 Outport模块的信息的结构单元数组。 |
SampleTimes | 仅限内部使用。 |
Parameters | 仅限内部使用。 |
AbstractedBlocks | 仅限内部使用。 |
Approximations | 描述分析过程中执行的近似值的结构。有关更多信息,请参阅 近似值在模型分析中的作用 。 |
ReplacementInfo | 仅限内部使用。 |
PreProcessingTime | 构建或重用模型表示的时间(以秒为单位)。 |
ModelRepresentationInfo | 分析中使用的模型表示的日期和时间。 |
模型对象
ModelObjects
字段列出了模型项目及其相关目标。该表描述了ModelObjects
字段。
子字段名称 | 描述 |
---|---|
descr | 模型对象的完整路径,包括Stateflow®图表中的对象。 |
typeDesc | 模型对象的类型,对于状态对象返回 S,对于转换对象返回 T。 |
slPath | Simulink模型对象的完整路径。 |
sfObjType | Stateflow 对象的类型。例如: |
sfObjNum | 表示 Stateflow 对象的唯一标识符的整数。 |
sid | 仅限内部使用。 |
designSid | 仅限内部使用。 |
replacementSid | 仅限内部使用。 |
objectives | 表示与模型对象相关的目标索引的整数向量。 |
约束
Constraints
字段列出了有关模型中输入端口上指定的最小值和最大值(如果有)的信息。该表描述了Constraints
字段。
子字段名称 | 描述 |
---|---|
DesignMinMax | 包含每个输入端口的名称以及最小值和最大值的结构单元数组。 |
目标
Objectives
字段列出了有关每个目标的信息,例如其类型、状态和描述。该表描述了Objectives
字段。
子字段名称 | 描述 |
---|---|
type | 目标类型。 |
status | 目标狀況。 |
descr | 与目标相关的描述。 |
label | 目标标签。 |
outcomeValue | 表示目标结果的整数。 |
coveragePointIdx | 表示与目标相关的覆盖率点索引的整数。 |
linkInfo | 仅限内部使用。 |
range | 仅限内部使用。 |
detectability | 目标的可探测状态。 |
detectionSites | Simulink 可检测目标的检测站点标识符 (SID)数组。 |
modelObjectIdx | 表示与目标相关的模型对象的索引的整数。 |
analysistime | 目标的分析时间。 |
testCaseIdx | 表示目标中解决的测试用例或反例的索引的整数。 |
测试用例或反例
该字段名称取决于检查的类型:
如果将 Mode 参数设置为 设计错误检测,则
CounterExamples
字段将提供导致整数溢出或除以零错误的每个测试用例的信息。如果将Mode参数设置为测试生成,则
TestCases
字段会列出有关每个测试用例的信息,例如其信号值和测试目标。如果将 Mode 参数设置为 属性证明,则
CounterExamples
字段会列出有关每个反例及其证伪的证明目标的信息。
该表描述了TestCases
和CounterExamples
字段。
子字段名称 | 描述 |
---|---|
timeValues | 与测试用例或反例中的信号相关的时间值向量。 |
dataValues | 与测试用例或反例中的信号相关的数据值向量。 |
paramValues | 表示与测试用例或反例相关的参数详细信息的结构,包含以下字段:
|
stepValues | 指定测试用例或反例中组成信号的时间步数的向量。 |
objectives | 指定测试用例或反例要解决的目标的结构。其领域包括:
|
dataNoEffect | 逻辑向量单元数组,指定信号的数据值是否影响目标。该向量使用 |
expectedOutput | 向量元胞数组,指定使用测试用例信号仿真模型所产生的输出值。每个单元格代表与顶层系统中不同 Outport模块相关的输出值。如果您选择包括预期输出值,则会填充此子字段。 |
版本字段
Version
字段列出了分析中使用的 Simulink Design Verifier 版本。
死逻辑场
如果您使用 运行死逻辑部分检查 选项分析模型中的死逻辑,则 sldvData
结构体中的 DeadLogic
字段会列出有关每个死逻辑目标的信息。
该表描述了DeadLogic
字段的每个子字段。
子字段名称 | 描述 |
---|---|
label | 死逻辑目标的描述。 |
descr | 模型对象的完整路径,包括Stateflow图表中的对象。 |
modelObjIdx | 表示与目标相关的模型对象的索引的整数。 |
coverageType | 覆盖率目标的类型。 |
coverageIdx | 表示与目标相关的覆盖率点索引的整数。 |
ObjectiveIdx | 表示与模型对象关联的目标索引的整数。 |
使用数据文件仿真模型
您可以使用 sldvruntest
函数通过位于 Simulink Design Verifier 数据文件中的测试用例或反例来仿真模型。完成以下步骤,使用数据文件中的测试用例仿真sldvdemo_flipflop
模型。
仿真
sldvdemo_flipflop
模型并生成测试用例:openExample('sldv/FlipFlopTestGenerationExample', ... 'supportingFile', 'sldvdemo_flipflop'); sldvrun('sldvdemo_flipflop');
保存Simulink Design Verifier分析模型后生成的数据文件的位置。
sldvDataFile = 'sldv_output\sldvdemo_flipflop\sldvdemo_flipflop_sldvdata.mat'
使用
sldvruntest
函数使用数据文件中的第二个测试用例仿真sldvdemo_flipflop
模型:[ outdata ] = sldvruntest('sldvdemo_flipflop', sldvDataFile, 2)
sldvruntest
输出是
对象的数组。Simulink.SimulationOutput
使用
Simulink.SimulationOutput
对象检查第一个测试用例的输出数据:tout_sldvruntest = outdata(1).find('tout_sldvruntest'); xout_sldvruntest = outdata(1).find('xout_sldvruntest'); yout_sldvruntest = outdata(1).find('yout_sldvruntest'); logsout_sldvruntest = outdata(1).find('logsout_sldvruntest');
从数据文件加载结果
您可以从数据文件中加载模型先前分析的结果。有关更多信息,请参阅 加载先前的结果 和 sldvloadresults
。
另请参阅
查看分析结果 | sldvreport
| 加载先前的结果