主要内容

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

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

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

  • 模型设计错误。

  • 无关的模型元素。

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

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

分析燃油系统模型

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.滚动到死逻辑部分。表中列出了两个死逻辑实例。

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

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

dead_logic_sldvdemo.png

调查死逻辑的原因

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

另请参阅

死逻辑检测