这个例子展示了如何使用Simulink®Design Verifier™属性证明分析来发现属性冲突。金宝app您将安全需求建模为属性,然后根据需求验证设计模型。
当您执行属性证明分析时,Simulink Design Verifier会生成一个反例,金宝app您可以使用它来调试属性冲突。
的sldvdemo_cruise_control_verification
的模型引用sldvdemo_cruise_control_defective
设计模型。设计模型是一个巡航控制系统,由PI控制器组成,根据实际速度和目标速度的差异计算节流输出。
open_system (“sldvdemo_cruise_control_verification”);
节气门输出的安全特性在安全属性
验证子系统由断言块。
open_system (“sldvdemo_cruise_control_verification /安全属性”);
在设计验证器选项卡上,单击证明属性.
在分析完成后,Results Summary窗口报告有一个目标被伪造。
脊甲模型生成,Signal Builder对话框打开并显示反例。
在“信号生成器”对话框中,单击开始模拟按钮▸。
“诊断查看器”窗口显示一个错误,说明由于当时发生断言,模拟已终止0.04
.
您还可以选择使用Model Slicer调试属性冲突。有关更多信息,请参见调试属性使用模型切片器证明违规.
反例所显示的错误行为被固定在sldvdemo_cruise_control_verification_fixed
模型。
open_system (“sldvdemo_cruise_control_verification_fixed”);
在属性证明工作流中,您可能需要重新设计系统和/或重新定义属性并执行这样的迭代。
打开引用的模型sldvdemo_cruise_control_fixed
并打开控制器
子系统。在这个子系统中,更新的设计模型重置节气门输出时,主动控制是主动的。
在设计验证器选项卡上,单击证明属性.分析完成后,Results Summary窗口报告目标是有效的。