主要内容

检测整数溢出和逐个零误差

关于这个例子

下面的部分描述如何分析sldvdemo_cruise_control_fxp_fixed.Integer溢出和逐个零错误的模型。

分析模型

为整数溢出和逐个零错误的打开和检查模型:

  1. 打开sldvdemo_cruise_control_fxp_fixed.模型。

  2. 在这一点设计验证者选项卡,准备从模式设置的下拉菜单中的部分,单击设置

  3. 在“配置参数”对话框中,选择设计验证者>设计错误检测

  4. 在这一点设计错误检测窗格,选择:

    • 整数溢出

    • 被零除

  5. 在“配置参数”对话框中,在诊断>数据有效性窗格,套信号>包装上溢出信号>饱于溢出参数>检测溢出错误

  6. 点击好吧要保存这些设置并关闭“配置参数”对话框。

  7. 在里面模式部分,选择设计错误检测

  8. 点击检测设计错误

分析完成后:

  • 该软件将突出显示模型,分析结果。

  • 金宝app®设计验证器™结果对话框打开并显示分析摘要。

检讨分析结果

回顾模型的结果

通过识别可能的信号值,导出的范围可以帮助你理解误差的来源,你可以通过以下步骤看到:

  1. 在顶级sldvdemo_cruise_control_fxp_fixed.模型,单击“固定点控制器子系统”。

    金宝appSimulink Design Verifier结果窗口显示输出端口的可能信号值的推导范围,根据分析计算:

    • Outport 1(Throt)的值范围从-2.61012.6096

    • Outport 2 (target)的取值范围为0.255.9960.

  2. 单击“出口块”sldvdemo_cruise_control_fxp_fixed.模型可查看相同的信号绑定值。

  3. 打开定点控制器子系统。

    此子系统中的两个对象以红色概述。PI控制器子系统以绿色概述。

  4. 单击红色中概述的SUM块,为PI控制器子系统提供错误输入。

    这个Sum块会产生溢出错误。分析发现了一个测试用例,在这个测试用例中,Sum块的输出超出了范围[-128 ..127.9960]。

  5. 要更完全理解此错误,请单击向SUM块提供输入的两个块。在里面金宝appSimulink Design Verifier结果窗口,查看他们的派生范围:

    • 第三个出口从公共汽车块有一系列[0..256]。

    • 出口的出口转变块有一系列[0..256]。

    你可以看到,这些信号范围的求和运算可以计算出一个超过范围[-128 ..]的值。为出口的块。

    分析报告溢出错误块。分析不会传播这个错误并假设块输出位于任何后续计算的有效范围内。

  6. 单击绿色概述的PI控制器子系统。PI控制器子系统中的块都不可以产生溢出溢出的误差。当软件分析PI控制器子系统时,它会忽略溢出错误阻止并假设对子系统的输入有效。

保持sldvdemo_cruise_control_fxp_fixed.型号打开。在下一节中,您创建了线束模型,以查看生成的测试用例块溢出错误。

查看线束模型

要查看演示错误的测试用例,请从中生成线束模型金宝appSimulink Design Verifier结果窗口:

  1. 在里面sldvdemo_cruise_control_fxp_fixed.模型,打开固定点控制器子系统。

  2. 单击块,以红色填写,为PI控制器子系统提供错误输入。

    金宝appSimulink Design Verifier“结果”窗口显示发生溢出错误的信息。

  3. 在里面金宝appSimulink Design Verifier结果窗口,点击查看测试用例

    软件创建一个包含导致溢出错误的信号值的测试用例的工具模型。

    在线束模型中,将打开“信号构建器”对话框,并显示测试案例2。

  4. 单击“开始仿真”按钮以使用此测试用例模拟模型。

    的溢出错误导致模拟失败块在固定点控制器子系统中。

有关更多信息,请参阅金宝appSimulink Design Verifier Harness模型

查看分析报告

要查看包含有关分析报告的详细信息的HTML报告sldvdemo_cruise_control_fxp_fixed.模型:

  1. 在里面金宝appSimulink Design Verifier结果窗口,要重新显示结果摘要,请单击回到总结

  2. 点击生成详细的分析报告

    该软件生成详细的分析报告,可在浏览器中打开。

为了sldvdemo_cruise_control_fxp_fixed.模特,这设计错误检测目标状态报告的章节有两类提供的详细结果:

  • 经验证明是有效的-模型对象不产生错误

  • 用测试用例证伪目标- 模型对象,测试用例产生错误

有关更多信息,请参阅金宝appSimulink设计验证程序报告

相关的话题