如何调试一个属性证明反例
使用Simulink Design Veri万博1manbetxfier™进行属性验证是一种静态分析技术,它使用形式化方法来证明给定的属性是否总是有效的。这种技术可以帮助您正式验证在设计中实现的特定需求将始终得到满足。如果一个属性无效,将自动生成一个反例用于调试。
学习如何使用Simulink Design Verifier执行属性证明,并了解如何使万博1manbetx用Simulink Check™中的Model Slicer工具调试自动生成的反例。
有些需求很难通过基于模拟的测试完全验证。
让我们用一个简化的飞机逆推力系统的四个要求来演示。逆推力装置用于飞机着陆后在跑道上减速。
我们需要确保推力逆转器在某些不安全的情况下没有被使用。因此,有四个安全要求来定义何时禁止推力反转器的部署。
注意到在每个需求中使用了“shall not”吗?在要求中使用“不得”可能表明要求很难完全核实。你怎么能确定你已经解释了异常情况?
通过基于模拟的测试,我们需要创建很多很多的测试用例来实现这个目标,如果这是可能的!
这就是属性证明的作用所在。
使用Simulink Design Veri万博1manbetxfier进行属性验证是一种静态分析技术,它使用形式化方法来证明给定的属性是否总是有效的。这种技术可以帮助您正式验证在设计中实现的特定需求将始终得到满足。
本视频将带您通过一个例子,向您展示如何使用Simulink Design Verifier和Simulink Check中的Model Sli万博1manbetxcer功能正式验证这四个推力反向器的安全要求,并调试一个自动生成的反例。
这个Sim万博1manbetxulink模型包含在Stateflow状态图中定义的逻辑,以确定在飞机着陆后何时部署推力逆转器。
定义了四个属性以验证安全要求;每个需求一个属性。属性已经在一个验证子系统中定义,该子系统不生成代码。可以使用Simulink块、Stateflow状态图或MATLA万博1manbetxB函数块中的MATLAB代码定义属性。
让我们看看车轮重量要求的属性作为一个例子。车轮重量传感器(WOW)用于确定飞机何时在地面上。
WOW安全需求的属性描述显示为验证子系统中的注释:“如果两个WOW传感器为假,则deploy不能为真。”换句话说,如果飞机在空中,就不应该部署逆推力装置。
WOW属性定义使用了来自Simulink Design Verifier库的Implies块。万博1manbetxImplies块允许您指定产生给定响应的条件。还使用了来自Simulink Model Verifica万博1manbetxtion库的断言块,它让Simulink Design Verifier知道已经定义了一个属性。
让我们在属性证明模式万博1manbetx中运行Simulink Design Verifier,以验证设计满足所有四个安全要求。
万博1manbetxSimulink Design Verifier能够使四个属性中的三个无效。
为每个属性违反自动生成反例测试向量以供调试。
反例可能很难调试,因为Simulink Design Verifier将试图在尽可能少的时间步骤中找万博1manbetx到一个违反,并且该工具不知道在您的整个系统中什么是实际的。
你需要提供工程方面的见解。一种方法是使用证明假设来限制信号的范围、变化率或其他特征。万博1manbetx在分析模型时,Simulink Design Verifier将使用这些假设。
我们还不想做任何假设来排除任何可能性。
相反,让我们使用Simulink Check中的Model Slicer来万博1manbetx调试一个反例。让我们从WOW属性开始。
这和选择WOW属性子系统中的断言块一样简单,然后在Design Verifier结果窗口中单击“调试”。
Model Slicer被自动设置,以帮助我们逐步通过WOW属性的反例。
Model Slicer允许您逐步通过模拟来查看模型的哪些部分是活动的,以及在模拟的任何步骤中信号值是什么。
如果我们后退一步,然后通过简短的反例模拟,我们可以看到有一个特定的瞬态条件,其中空速和轮速传感器值的突然变化可能违反WOW的要求。这是一个不寻常的场景,但是代表了在基于模拟的测试中很难定义的条件类型。
在分析了其他属性的反例后,结合我自己设计类似逻辑的工程经验,我发现这个设计没有充分考虑到着陆后信号值的突然变化。
我们有很多方法可以解决这个问题。我决定增加一个新要求,在适当的条件满足后,将增加一个短的延迟,以启用反向推力部署。这种短暂的延迟不会影响逆推力器的物理性能。
让我们打开固定模型并再次运行属性证明。
都准备好了!
这个例子展示了如何使用Simulink Design Veri万博1manbetxfier和Simulink Check中的Model Slicer来使用属性证明来分析安全需求并调试一个反例。
除了基于模拟的测试之外,您还可以将证明目标链接到“需求工具箱”中的需求,以管理属性证明的验证结果。
访问Simulink万博1manbetx设计验证器产品页面或Simulink检查产品页面申请试用。
相关产品s manbetx 845
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。