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