Simulink Design Verifier 如何通过验证结果报告近似值
Simulink® Design Verifier™ 在分析过程中执行近似计算。该软件识别近似值的存在,并在 Simulink Design Verifier HTML 报告的客观状态章节中按照每个目标状态的级别进行报告。有关更多信息,请参阅 近似值在模型分析中的作用 和 目标 状态 章节 。
为了验证仿真期间的测试用例或反例,模型被锁定在快速重启模式。有关更多信息,请参阅 快速重启方法 。
例如,为了确保近似的效果,在测试生成分析中,测试用例会根据分析过程中的覆盖率数据进行验证。
近似值对目标状态的影响
该软件为分析过程中因近似而受到影响的目标提供了测试用例或反例。这些目标被报告为测试生成分析的测试用例目标未定和属性证明分析的目标未定,有反例。
该软件将由于近似值而受到影响的目标确认为死逻辑、有效或不可满足。下表总结了所有分析模式的这些目标。
分析模式 | 目标状态 |
---|---|
设计错误检测 |
|
测试生成 | |
属性证明 |
在以下情况下,软件无法通过验证结果来确认目标状态:
通过模块替换引入的目标。有关更多信息,请参阅 什么是模块替换? 。
Verification Subsystem 由
sldv.test
或sldv.prove
函数组成。您可以使用Simulink Design Verifier结果摘要窗口中的停止按钮中止分析,或者软件超出其最大分析时间。因此,分析过程中某些目标仍未经验证,软件无法确认目标状态。
具有目标的模块位于 Simulink 测试框架内部,但在被测组件外部。有关更多信息,请参阅 测试框架与模型关系 (Simulink Test) 。
下表总结了前述案例的目标状况。为了确认目标的状态,您必须运行测试用例或反例的额外仿真。
分析模式 | 目标状态 |
---|---|
设计错误检测 | |
测试生成 | |
属性证明 |
通过验证结果识别近似值的影响
这个例子显示了近似值如何影响Switch模块的目标状态。在sldvApproximationsExample
模型中,Constant模块中的计算1./3
和2./3
在分析时得出浮点数到有理数的转换的结果。
对于输入端口 In2
等于 -1
,在仿真中,Switch模块的输入 2
不等于 0
。因此,Switch 不会选择输入端口 In3
作为输出。对于测试生成和属性证明分析,由于分析过程中近似的影响,Switch模块的目标logical trigger input false(output is from 3rd input port)
尚未确定。
1.打开模型sldvApproximationsExample:
open_system('sldvApproximationsExample');
2.要执行测试生成分析,请在Design Verifier选项卡上点击生成测试。该软件仿真模型并根据覆盖率数据验证测试结果。
3.要查看详细的分析报告,点击“Simulink”®“Design Verifier™ 结果摘要”窗口中的“HTML”。
该图显示了生成的分析报告的测试目标状态部分。该软件提供了两个受近似值影响的测试用例。
测试目标状态 - 目标已满足
测试目标状态 - 目标尚未确定,但有测试用例
4.要执行属性证明分析,请在Design Verifier选项卡的模式部分中选择属性证明。点击证明属性。
此图显示了生成的分析报告的证明目标状态部分。
证明目标状态 - 目标未定,有反例
该软件提供了一个受近似影响的反例。
注意:sldvApproximationsExample
示例模型已预先配置,其中 运行附加分析以减少有理近似的情况 选项设置为 Off
。如果启用此选项并运行分析,则 Undecided with Testcases
测试目标将报告为 Unsatisfiable
,而证明目标将报告为 Valid.