主要内容

可变步长求解器金宝app

可变步骤求解器在仿真过程中改变步长,当模型状态变化迅速时减小步长以提高精度,当模型状态变化缓慢时增大步长以避免采取不必要的步骤。计算步长会增加每一步的计算开销,但可以减少总步数,从而减少模拟时间,以维持具有快速变化或分段连续状态的模型的指定精度水平。

当你设置时类型控制求解器配置窗格到可变步骤, 这求解器控制允许您选择一个变量步骤求解器。与固定步骤求解器一样,该组可变步长溶剂包括离散求解器和连续溶剂的集合。但是,与固定步骤求解器不同,步长基于本地误差动态变化。

两种类型的可变步长求解器之间的选择取决于模型中的块是否定义状态,如果是的话,则为定义的状态类型。如果您的模型没有定义任何状态或仅定义离散状态,请选择离散求解器。如果模型具有连续状态,则连续求解器使用数字集成来计算下次步骤中连续状态的值。

笔记

如果模型没有状态或仅离散状态,则Simulink金宝app®即使指定连续求解器,也要使用离散求解器模拟模型。

可变步骤离散求解器

当您的型号不包含连续状态时,使用可变步骤离散求解器。对于这种模型,可变步骤离散求解器降低了其步长,以捕获诸如零交叉的模型事件,并且在可以提高模拟性能时增加步长。

图中所示的模型包含在0.5和0.75个采样时间的离散正弦波信号。下图显示了模型中的信号以及分别用于可变步长和固定步骤离散求解器的求解器步骤。您可以看到变量步骤求解器仅采用从每个块记录输出信号所需的步骤。另一方面,固定步骤求解器需要使用固定步长或基本采样时间的0.25来模拟0.25以记录所有信号,从而实现更多步骤。

可变步骤连续求解器

可变步长求解器在模拟期间动态地改变阶梯尺寸。这些求解器中的每一个都会增加或减少步骤尺寸,使用其本地错误控制来实现您指定的公差。计算每个时间步骤的步长增加计算开销。但是,它可以减少总步数,以及维护指定的精度级别所需的模拟时间。

您可以进一步将可变阶梯连续求解器进行分类为单步或多步,单个订单或可变顺序,以及显式或隐式。看一步与多步骤连续求解器想要查询更多的信息。

可变步骤连续显式求解器

可变阶梯明确的求解器设计用于非永久性问题。金宝appSimulink提供四种这样的求解器:

  • ODE45.

  • ode23.

  • ode113.

  • 奥登

颂求解器 一步法 多步骤方法 准确度的顺序 方法
ODE45. X 中等的 Runge-Kutta,Dormand-Prince(4,5)对
ode23. X 低的 Runge-Kutta(2,3)对Bogacki&Shampine
ode113. X 变量,低到高 Pece实施Adams-Bashforth-Moulton
奥登 X 准确度的顺序固定步骤连续显式求解器 集成技术固定步骤连续显式求解器

颂求解器 什么时候使用
ODE45.

一般来说,ODE45.求解器是最好的申请,因为大多数问题是第一次尝试。runge-kutta(4,5)求解器是第五阶方法,执行错误的四阶估计。该求解器还使用第四阶Interpolant,其允许事件位置和更顺畅的图。

如果是ODE45.计算方式慢,问题可能是僵硬的,因此需要隐含的求解器。

ode113.

对于严格错误容忍或计算密集问题的问题,Adams-Bashforth-Moulton Pece求解器可以比ODE45.

ode23.

ode23.可以比效率更高ODE45.求解误差容差的求解器和温和的刚度存在。该求解器通过将立方Hermite插值应用于在步骤的末端计算的金宝搏官方网站值和斜坡来提供准确的解决方案。

奥登 奥登求解器使用其订单所确定的不适用的runge-kutta集成求解器订单范围。奥登使用由固定的步骤尺寸确定最大步长参数,但是可以减少步长以捕获某些求解器事件,例如零交叉和分立样本命中。

笔记

选择奥登仿真速度很重要的求解器,例如,何时

  • 该模型包含大量零点和/或求解器重置

  • 求解活动案例在分析模型时不会检测到任何失败的步骤

可变步骤连续隐式求解器

如果您的问题很僵硬,请尝试使用一个可变步骤隐式求解器之一:

  • ode15s.

  • ode23s.

  • ODE23T.

  • ODE23TB.

颂求解器 一步法 多步骤方法 准确度的顺序 求解器重置方法 最大限度。命令 方法
ode15s. X 变量,低至中等 X X 数值分化公式(NDFS)
ode23s. X 低的 二阶,修改了rosenbrock公式
ODE23T. X 低的 X 使用Interpolant的梯形规则
ODE23TB. X 低的 X TR-BDF2

求解器重置方法

为了ode15s.ODE23T., 和ODE23TB.下拉菜单求解器重置方法出现在求解器详细信息配置窗格的部分。该参数控制求解器如何处理例如通过过零检测引起的复位。允许的选项是快速地强壮的快速地指定求解器不会重新编译Zacobian以进行求解器重置,而强壮的指定求解器执行的操作。因此,快速地设置更快,但它可以在某些情况下使用小的步长。要测试此类情况,请使用每个设置运行模拟并进行比较结果。如果结果没有区别,则可以安全使用快速地设置和节省时间。如果结果有显着差异,请尝试减少快速仿真的步长。

最高订单

为了ode15s.求解器,您可以选择解算器适用的数值差分公式(NDFS)的最大顺序。自从此以来ode15s.使用第一级五阶公式,最高订单参数允许您选择订单1到5.对于僵硬的问题,您可能希望以订单2开头。

选择可变步骤隐含求解器的提示

下表提供了用于应用可变步骤隐式求解器的提示。有关这些求解器的行为的示例,请参阅使用僵硬模型探索可变步骤求解器

颂求解器 何时使用的提示
ode15s.

ode15s.是基于的可变秩序求解器数值分化公式(NDFS)。NDFS与后向分化公式(BDF)更有效,也称为齿轮方法。这ode15s.求解器数值上产生雅曲族矩阵。如果您怀疑问题是僵硬,或者如果ODE45.失败或效率低下,尝试ode15s.。通常,首先将NDFS的最大顺序限制为2。

ode23s.

ode23s.是基于一个修改了rosenbrock的顺序。因为它是一步的求解器,它可以比效率更高ode15s.在粗耐受性。喜欢ode15s.ode23s.数值上为您生成雅可比矩阵。但是,它可以解决某些僵硬的问题ode15s.无效。

ODE23T.

ODE23T.求解器是使用“自由”立体化的梯形规则的实现。如果您的型号仅适度静置,则使用此求解器,并且您需要一个没有数值阻尼的解决方案。(在振荡运动时,能量不会消散。)

ODE23TB.

ODE23TB.是TR-BDF2的实现,具有两个阶段的隐式跳动-Kutta公式。第一阶段是一个梯形规则步骤,而第二阶段使用的顺序的向后差分公式2通过构造,该方法使用相同的迭代矩阵评估两个阶段。喜欢ode23s.,这个求解器可以比效率更高ode15s.在粗耐受性。

笔记

对于一个僵硬的问题,解决方案可以在与集成间金宝搏官方网站隔相比的时间标度上更改,而感兴趣的解决方案更加较长的时间尺度。不设计用于僵硬问题的方法是在解决方案缓慢变化的间隔内无效,因为这些方法使用时间步长足够小以解决最快的变化。有关更多信息,请参阅洗发丁,L. F.,常微分方程的数值解,Chapman&Hall,1994年。

可变步长求解器的错误容差

本地错误

可变步骤求解器使用标准控制技术来监视每个时间步骤的本地错误。在每个时间步骤中,求解器在步骤结束时计算状态值并确定本地错误- 这些状态值的估计误差。然后他们将本地错误进行比较可接受的错误,这是相对耐受性的函数(rotol.)和绝对耐受性(阿托尔)。如果本地错误大于可接受的错误任何人状态,求解器可减少步长并再次尝试。

  • 相对宽容测量相对于每个状态大小的误差。相对容差表示状态值的百分比。默认值1E-3意味着计算状态准确到0.1%以内。

  • 绝对宽容是一个阈值误差值。这种容差表示可接受的误差,因为测量状态的值为零。

    求解器需要错误一世国家,E.一世, 为了满足:

    E. 一世 ≤. 最大限度 R. T. O. L. × | X 一世 | 一种 T. O. L. 一世

下图显示了状态和区域的区域和绝对容差确定可接受的误差的曲线图。

绝对宽容

您的模型具有全局绝对公差,可以在“配置参数”对话框的“求解器”窗格上设置。这种宽容适用于模型中的所有状态。您可以指定汽车或一个真正的标量。如果您指定汽车(默认值),Simulink最金宝app初基于相对容差对每个状态设置绝对公差。如果相对容差较大1E-3,ab在1E-6初始化。但是,对于RELTOL.小于1e-3,ab对于国家进行初始化Reltol * 1E-3。随着模拟的进展,每个状态的绝对容差重置为迄今为止所假设的最大值,倍增该状态的相对容差。因此,如果状态从0变为1和1RELTOL.是1E-3,ab在1E-6初始化,并在模拟结束时达到1E-3。如果状态从0到1000,那么ab更改为1。

现在,如果状态从0变为1和1RELTOL.在1E-4设置,然后设置ab在1E-7处初始化,并通过模拟结束达到1E-4的值。

如果计算的绝对容差的初始值不合适,则可以自己确定适当的值。您可能必须多次运行模拟以确定绝对容差的适当值。您还可以指定绝对容差是否应与其类似地适应汽车通过启用或禁用的设置autoscalabstol.范围。有关更多信息,请参阅自动规模绝对耐受性

有几个块允许您指定用于解决它们计算或确定其输出的模型状态的绝对容差值:

为这些块指定的绝对公差值覆盖了配置参数对话框中的全局设置。例如,如果全局设置为所有模型状态提供足够的错误控制,您可能希望覆盖全局设置,因为它们的幅度差异很大。您可以将块绝对容差设置为:

  • 汽车

  • -1(与...一样汽车

  • 正标量

  • 真正的矢量(具有等于块中相应的连续状态的数量)

提示

如果您确实选择设置绝对容差,请记住,值得的值太低导致求解器在近零状态值附近占用太多步骤。结果,模拟较慢。

另一方面,如果将绝对容差设置得太高,则您的结果可以作为模型方法中的一个或多个连续状态不准确。

一旦仿真完成,您可以通过减少绝对容差并再次运行模拟来验证结果的准确性。如果这两种模拟的结果令人满意地关闭,那么您可以对自己的准确性感到充满信心。