Main Content

本页采用了机器翻译。点击此处可查看英文原文。

检测由错误值导致的死逻辑

死逻辑检测可帮助您识别:

  • 模型设计错误。

  • 无关的模型元素。

  • 应该执行但实际上并未执行的模型元素。

在此示例中,您将分析燃料速率控制器模型以确定该模型是否包含死逻辑。死逻辑检测发现不正确的变量值,导致 Stateflow ® 图表中的转换条件保持非活动。

Investigate the Cause of the Dead Logic

1.打开模型。

open_system('sldvdemo_fuelsys_logic_simple')

确保当前文件夹可写。

2.配置死逻辑检测。

Design Verifier 选项卡的模式部分中,选择设计错误检测

3.选择错误检测设置

4.在配置参数对话框中,在Design Verifier > 设计错误检测窗格中:

  1. 启用 死逻辑(部分) 选项。

  2. 如果选择了 运行详尽分析 选项,请清除该选项。

  3. 要分析的覆盖率目标设置为条件决策。下拉菜单中可用的选项有决策、条件决策和 MCDC。

5.单击检测设计错误

6.结果对话框显示,109 个目标中有 2 个是死逻辑。

dead_logic_ri_results.png

查看结果并追踪模型

1.创建分析报告。在结果检查窗口中,点击HTML

2.滚动到Dead Logic部分。表中列出了两个死逻辑实例。

3.在Description列中,其中一个死逻辑实例是按下< zero_thresh 的假条件。死逻辑结果表示在仿真中,没有执行错误条件。该逻辑是 Sens_Failure_Counter.INC 转换的一部分。

4.点击模型项目链接。Simulink 突出显示了图表中的转变。

dead_logic_sldvdemo.png

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.在新的成果中,目标不再是死逻辑。

另请参阅

死逻辑检测