主要内容

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

使用优化检查检测缺陷

自 R2024b 起

缺陷检查器用于在开发阶段识别模型中的缺陷。它采用优化策略来有效地发现缺陷,专注于识别潜在问题而不是证明它们不存在。

缺陷检查器在应用于您正在处理的特定组件时最有效,确保您只解决与您当前关注的缺陷并避免不相关组件中的问题。这可以帮助您了解模型中的缺陷,并在将组件集成到更大的模型之前修复它们。缺陷检查器可帮助您在整个开发阶段检查模型中是否存在常见和严重的设计错误,例如除以零、整数溢出、死逻辑和数组越界。

使用缺陷检查器识别并纠正常见设计错误

此示例向您展示如何在整个开发阶段使用缺陷检查器来识别和纠正模型中的常见错误。考虑模型 PIController_Defective. 在将模型集成到完整系统之前,sldvExDefectChecker_Defective, 运行缺陷检查器来查找常见错误并在分析完整系统之前将其删除。

配置缺陷检查器选项

打开模型。

open_system("PIController_Defective");

model.png

Design Verifier 选项卡上,您可以在工具条上看到缺陷检查器按钮。缺陷检查器默认处于启用状态。如果按钮处于“关闭”状态,请点击工具条上的按钮并启用它。

您还可以通过以下步骤启用缺陷检查器

点击错误检测设置。在配置参数对话框中,在 Design Verifier 选项卡 > 设计错误检测窗格,选择缺陷检查器。

defect_checker.png

您还可以通过编程启用缺陷检查器:

如果使用以下方式生成选项,则缺陷检查器默认为“开启”:

opts = sldvoptions;

要检查模型的缺陷检查器选项是否处于“开启”状态:

opts = sldvoptions("PIController_Defective");
defectCheckerStatus = opts.DefectChecker;

如果缺陷检查器处于“关闭”状态,则使用以下命令启用:

opts.DefectChecker = 'on';

注意:缺陷检查器会自动调用死逻辑、越界数组访问、除以零、整数溢出以及指定的最小值和最大值违规检查。要指定检查,请将缺陷检查器设置为 off。

运行缺陷检查器

要使用缺陷检查器执行分析,请在 Design Verifier 选项卡上点击检测设计错误

该软件分析模型中的缺陷,并在结果窗口中显示分析过程中发现的缺陷数量。

defective_analysis.png

查看分析结果

PI_Defective.png

  1. 使用突出显示导航到缺陷的源头,即 Sum 模块。Sum 模块以红色突出显示,以帮助您找到缺陷。PI_Defective.png

  2. 告密者提供了调试信息和供进一步调查的链接。比较输入端口和输出端口的范围,您会发现输出端口数据类型的范围不足以合并总和。另一种调试方式是点击调试选项,使用模型切片器调试缺陷。

  3. 调整 Sum 模块的输出数据类型以适应更广泛的范围。这避免了溢出。

在固定组件模型上重新运行缺陷检查器

反例所表现出的错误行为在 sldvExDefectChecker_Fixed 模型中得到了修复。

open_system('PIController_Fixed');

当您对此修复的组件重新运行分析时,您会发现缺陷检查器不再发现任何缺陷。

fixed_analysis.png

注意:仅报告伪造和死逻辑目标。

将模型集成到整个系统中

反例所表现出的错误行为在 sldvExDefectChecker_Fixed 模型中得到了修复。

open_system('sldvExDefectChecker_Fixed');

fixed_model.png

重新运行缺陷检查器来检查是否存在缺陷。分析完成后,“结果摘要”窗口将报告模型和组件级别不再存在缺陷。

No_defects.png

相关链接