Main Content

绝对容差

描述

指定当测得的状态值接近零时,可接受的最大求解器误差。如果绝对误差超过此容限,求解器会减少时间步大小。

类别:求解器

设置

默认值:auto

  • 默认值 (auto) 最初只根据相对容差设置每个状态的绝对容差。如果相对容差大于 1e-3,则初始绝对容差设置为 1e-6。但是,如果相对容差小于 1e-3,则状态的绝对容差初始化为 reltol * 1e-3。随着仿真的进行,每个状态的绝对容差将重置为状态在该点之前达到的最大值乘以该状态的相对容差。

    例如,如果状态从 0 变为 1,并且相对容差为 1e-4,则绝对容差初始化为 1e-7,在仿真结束时绝对容差达到 1e-4。

    另一方面,如果相对容差设置为 1e-3,则绝对容差设置为 1e-6,并在仿真结束时达到 1e-3。

  • 如果计算的设置不合适,您可以自己确定一个合适的设置。

  • 如果您为绝对容差设置自己的值,您还可以通过切换 AutoScaleAbsTol 参数来选择它是否根据状态值进行调整。有关详细信息,请参阅Auto scale absolute tolerance

提示

  • 每个时间步的可接受误差是相对容差绝对容差的函数。有关这些设置如何协作工作的详细信息,请参阅Error Tolerances for Variable-Step Solvers

  • IntegratorSecond-Order IntegratorVariable Transport DelayTransfer FcnState-SpaceZero-Pole 模块允许您指定绝对容差值,以求解它们计算的或决定其输出的模型状态。您在这些模块中指定的绝对容差值将覆盖“配置参数”对话框中的全局设置。

  • 如果全局设置不能为您的所有模型状态提供足够的误差控制(例如其量级差异很大时),则可能需要使用模块覆盖绝对容差设置。

  • 如果将绝对容差设置得太低,则求解器可能会在接近零的状态值附近执行太多时间步,从而减慢仿真速度。

  • 要在运行后检查仿真的准确性,可以降低绝对容差并再次运行。如果两次仿真的结果没有显著差异,则可以确信解已收敛。

  • 如果仿真结果看起来不准确,并且您的模型的状态值接近零,则绝对容差可能太大。请减小绝对容差以强制仿真在接近零状态值的区域附近执行更多时间步。

依存关系

仅当您进行如下设置时此参数才会启用:

  • 将求解器类型设置为“变步长”。

  • 求解器设置为连续变步长求解器。

将此参数与相对容差结合使用,可确定每个时间步的可接受误差。有关这些设置如何协作工作的详细信息,请参阅Error Tolerances for Variable-Step Solvers

编程用法

参数:AbsTol
类型:字符向量 | 数值
值:'auto' | 正实数标量
默认值:'auto'

推荐的设置

应用场景设置
调试无影响
可追溯性无影响
效率无影响
安全预警无影响

相关主题