检测由错误值导致的死逻辑
死逻辑检测可帮助您识别:
模型设计错误。
无关的模型元素。
应该执行但实际上并未执行的模型元素。
在此示例中,您将分析燃料速率控制器模型以确定该模型是否包含死逻辑。死逻辑检测发现不正确的变量值,导致 Stateflow ® 图表中的转换条件保持非活动。
Investigate the Cause of the Dead Logic
1.打开模型。
open_system('sldvdemo_fuelsys_logic_simple')
确保当前文件夹可写。
2.配置死逻辑检测。
在 Design Verifier 选项卡的模式部分中,选择设计错误检测。
3.选择错误检测设置。
4.在配置参数对话框中,在Design Verifier > 设计错误检测窗格中:
5.单击检测设计错误。
6.结果对话框显示,109 个目标中有 2 个是死逻辑。
查看结果并追踪模型
1.创建分析报告。在结果检查窗口中,点击HTML 。
2.滚动到Dead Logic部分。表中列出了两个死逻辑实例。
3.在Description列中,其中一个死逻辑实例是按下< zero_thresh 的假条件。死逻辑结果表示在仿真中,没有执行错误条件。该逻辑是 Sens_Failure_Counter.INC 转换的一部分。
4.点击模型项目链接。Simulink 突出显示了图表中的转变。
Investigate the Cause of the Dead Logic
1.控制转换的逻辑语句是:
speed==0 & press < zero_thresh
2.返回报告。滚动到约束部分。
3.输入控制逻辑/输入数据“按下”的值限制在 0 到 2 之间。单击链接即可在模型资源管理器中打开输入。
4.在模型资源管理器中选择模型工作区。在内容表中,选择 zero_thresh。zero_thresh的值为250。
鉴于 press 的约束值,它始终小于 zero_thresh,因此,永远不会满足错误条件。
Update the Input Constraint and Reanalyze the Model
1.将 zero_thresh 的值更改为 0.250。
2.重新分析模型。在Design Verifier选项卡上,点击检测设计错误。
3.在新的成果中,目标不再是死逻辑。