下面的部分描述如何分析sldvdemo_cruise_control_fxp_fixed
用于整数溢出和按零除错误的模型。
打开和检查整数溢出和零除错误模型:
打开sldvdemo_cruise_control_fxp_fixed
模型。
在设计验证器选项卡,准备部分中,从模式设置的下拉菜单中单击设置.
在“配置参数”对话框中,选择设计验证器>设计错误检测.
在设计错误检测窗格中,选择:
整数溢出
除零
在“配置参数”对话框中,单击诊断>数据的有效性窗格中,设置信号>包装上溢出,信号>浸透在溢出和参数>检测溢出来错误
.
点击好吧保存这些设置并关闭“配置参数”对话框。
在模式部分中,选择设计错误检测.
点击检测设计错误.
当分析完成时:
软件利用分析结果对模型进行了重点分析。
的金宝app®设计验证器™结果对话框将打开并显示分析的摘要。
通过识别可能的信号值,导出的范围可以帮助你理解误差的来源,你可以通过以下步骤看到:
在最高级的sldvdemo_cruise_control_fxp_fixed
模型,单击定点控制器子系统。
的金宝app仿真软件设计验证器结果窗口显示输出端口的可能信号值的推导范围,根据分析计算:
Outport 1 (throt)的取值范围为-2.6101
来2.6096
.
Outport 2 (target)的取值范围为0
来255.9960
.
的Outport块sldvdemo_cruise_control_fxp_fixed
模型以查看相同的信号边界值。
打开定点控制器子系统。
这个子系统中的两个对象用红色表示。PI控制器子系统用绿色表示。
单击Sum块(用红色标出),它为PI Controller子系统提供错误输入。
这个Sum块会产生溢出错误。分析发现了一个测试用例,在这个测试用例中,Sum块的输出超出了范围[-128 ..127.9960]。
要更充分地理解这个错误,请单击向Sum块提供输入的两个块。在金宝app仿真软件设计验证器结果窗口,查看他们的派生范围:
第三个出口从公共汽车块的范围是[0..256]。
从Outport开关块的范围是[0..256]。
你可以看到,这些信号范围的求和运算可以计算出一个超过范围[-128 ..]的值。为出口的总和块。
分析报告溢出错误总和块。分析不会传播这个错误并假设总和块输出在任何后续计算的有效范围内。
单击PI Controller子系统(用绿色表示)。PI控制器子系统中的任何块都不会产生溢出或零除错误。软件对PI Controller子系统进行分析时,忽略了来自控制器的溢出错误总和阻塞,并假定到子系统的输入是有效的。
保持sldvdemo_cruise_control_fxp_fixed
打开模型。在下一节中,您将创建利用模型来查看生成总和块溢出错误。
要查看演示错误的测试用例,请从金宝app仿真软件设计验证器结果窗口:
在sldvdemo_cruise_control_fxp_fixed
模型,打开定点控制器子系统。
单击总和块,用红色标出,它提供PI控制器子系统的错误输入。
的金宝app仿真软件设计验证器“结果”窗口显示发生溢出错误的信息。
在金宝app仿真软件设计验证器结果窗口中,单击查看测试用例.
软件创建一个包含导致溢出错误的信号值的测试用例的工具模型。
在脊甲模型中,将打开Signal Builder对话框,并显示测试用例2。
单击Start模拟按钮以使用此测试用例模拟模型。
的溢出错误导致模拟失败总和块在定点控制器子系统。
有关更多信息,请参见金宝appSimulink设计验证器线束模型.
查看包含详细信息的分析报告的HTML报告sldvdemo_cruise_control_fxp_fixed
模型:
在金宝app仿真软件设计验证器“结果”窗口,若要重新显示结果摘要,请单击回到总结.
点击生成详细的分析报告.
该软件生成一个详细的分析报告,在浏览器中打开。
为sldvdemo_cruise_control_fxp_fixed
模型中,设计错误检测目标状态报告的一章分两大类提供了详细的结果:
目标被证明有效-模型对象不产生错误
用测试用例证伪目标-为测试用例生成错误的对象建模
具有决策或条件结果的模型对象接收死逻辑检测。有关具有决策或条件目标的模型对象的完整列表的更多信息,请参见对接收覆盖率的对象建模(金宝app仿真软件覆盖).
有关更多信息,请参见金宝appSimulink设计验证器报告.