主要内容

解算器

描述

选择要用于在模拟或代码生成期间计算模型状态的求解器。

类别:解算器

设置

从这些类型中选择:

新型号的默认设置为VariableStepAuto

固定的解决者

默认值:FixedStepAuto

一般来说,所有的固定步解除ode 14 x计算下一步为:

Xn+ 1) =Xn) +hdXn

在哪里X是状态,h步长和dX是状态导数。dXn根据方法的顺序,由特定算法使用一个或多个导数计算来计算。

汽车

使用自动解算器选择的固定步解算器计算模型的状态。在编译模型时,汽车更改为自动求解器根据模型动态选择的固定步长求解器。单击模型右下角的解算器超链接以接受或更改此选择。

ode3 (Bogacki-Shampine)

使用Bogacki-Shampine公式积分技术计算状态导数,将模型在下一个时间步骤的状态作为状态和状态导数的当前值的显式函数计算。

离散(无连续状态)

通过向当前时间添加固定步长来计算下一个时间步长的时间。

使用此求解器的模型没有状态或只有离散状态,使用固定步长。依赖于模型的块来更新离散状态。

结果模拟的准确性和时间长度取决于模拟所采取的步骤的大小:步长越小,结果越准确,但模拟所需的时间越长。

请注意

固定步长离散求解器不能用于模拟具有连续状态的模型。

ode8 (Dormand-Prince RK8(7))

使用八阶Dormand-Prince公式计算下一个时间步的模型状态,作为状态当前值的显式函数,并在中间点近似状态导数。

ode5 (Dormand-Prince)

使用五阶Dormand-Prince公式计算下一时间步的模型状态,作为状态当前值的显式函数,状态导数近似于中间点。

ode4(龙格-库塔)

使用四阶龙格-库塔(RK4)公式计算下一个时间步的模型状态,作为状态的当前值和状态导数的显式函数。

ode2(修)

利用Heun积分法计算下一时间步的模型状态,将其作为当前状态值和状态导数的显式函数。

ode1(欧拉)

采用欧拉积分法计算下一个时间步的模型状态,作为状态的当前值和状态导数的显式函数。这个求解器比高阶求解器需要更少的计算量。然而,它提供的准确性相对较低。

ode14x(外推)

使用牛顿方法和从当前值推断的组合来计算模型在下一个时间步的状态,作为一个隐式的状态函数和下一个时间步的状态导数。在下面的例子中,X是状态,dX状态是导数吗h是步长:

Xn+ 1) -Xn) - - -hdXn+1) = 0

这个解算器每一步比显式解算器需要更多的计算量,但是对于给定的步长来说更准确。

ode1be(后向欧拉)

ode1be求解器是一个向后欧拉型求解器,它使用固定次数的牛顿迭代,并且只产生固定的代价。您可以使用ode1be求解器作为一种计算成本低的固定步的替代方案ode14x解算器。

变步解决者

默认值:VariableStepAuto

汽车

使用自动求解器选择的可变步长求解器计算模型的状态。在编译模型时,汽车更改为自动求解器根据模型动态选择的可变步长求解器。单击模型右下角的解算器超链接以接受或更改此选择。

数值(Dormand-Prince)

使用显式的龙格-库塔(4,5)公式(Dormand-Prince对)计算下一个时间步的模型状态,用于数值积分。

数值是一步求解器,因此只需要前一个时间点的解。

使用数值作为大多数问题的第一次尝试。

离散(无连续状态)

通过添加一个步长来计算下一步的时间,该步长取决于模型状态的变化率。

使用此求解器的模型没有状态或只有离散状态,使用可变步长。

ode23 (Bogacki-Shampine)

使用显式的龙格-库塔(2,3)公式(Bogacki-Shampine对)在下一个时间步骤计算模型的状态,用于数值积分。

ode23是一步求解器,因此只需要前一个时间点的解。

ode23效率比数值在粗公差和轻度刚度存在的情况下。

ode113(亚当斯)

利用变阶Adams-Bashforth-Moulton PECE数值积分技术计算下一个时间步的模型状态。

ode113是一个多步求解器,因此通常需要前几个时间点的解来计算当前解。金宝搏官方网站

ode113能比数值在严格的公差。

ode15s(硬/ NDF)

使用变阶数值微分公式(ndf)计算下一个时间步的模型状态。这些是相关的,但比向后微分公式(BDFs)更有效,也被称为齿轮的方法。

ode15s是一个多步求解器,因此通常需要前几个时间点的解来计算当前解。金宝搏官方网站

ode15s对于棘手的问题是有效的。试试这个求解器数值失败或效率低下。

ode23s(硬/国防部。。)

使用修正的2阶Rosenbrock公式计算下一个时间步的模型状态。

ode23s是一步求解器,因此只需要前一个时间点的解。

ode23s效率比ode15s在粗公差,并能解决棘手的问题ode15s是无效的。

ode23t (Mod. stiff/梯形)

使用带“自由”插值的梯形规则的实现在下一个时间步骤计算模型的状态。

ode23t是一步求解器,因此只需要前一个时间点的解。

使用ode23t如果问题只是中等刚度,你需要一个没有数值阻尼的解决方案。

ode23tb(硬/ TR-BDF2)

使用TR-BDF2的多步实现计算下一个时间步的模型状态,这是一个隐含的龙格-库塔公式,第一阶段具有梯形规则,第二阶段由二阶向后微分公式组成。通过构造,采用相同的迭代矩阵对两个阶段进行求解。

ode23tb效率比ode15s在粗公差,并能解决棘手的问题ode15s是无效的。

奥登(非适应)

使用一个Nth用定步长积分公式计算模型状态,将其作为状态当前值的显式函数,状态导数近似于中间点。

而求解器本身是一个固定的步进求解器,Simulink金宝app®将减少在零交叉点的步长以保证准确性。

daessc (Simscape™求解器)

通过求解由Simscape模型产生的微分代数方程系统,计算下一个时间步的模型状态。daessc提供健壮的算法,专门用于模拟由物理系统建模引起的微分代数方程。

daessc仅适用于Simscape产品。下载188bet金宝搏

提示

  • 确定模型的最优解算器需要实验。有关深入讨论,请参见求解器选择标准

  • 通过快速重新启动,如果您更改求解器,则不需要重新编译模型。您可以在运行时选择合适的求解器,而不必经历昂贵的重新编译过程。

  • 最优求解器平衡可接受的精度与最短的模拟时间。

  • 金宝appSimulink软件对没有状态或只有离散状态的模型使用离散求解器,即使您指定了连续求解器。

  • 较小的步长可以提高精度,但也会增加模拟时间。

  • 的计算复杂度增加颂歌n,因为n增加。

  • 随着计算复杂度的增加,结果的准确性也随之提高。

依赖关系

选择ode1(欧拉)ode2(蔚)ode 3 (bogaki - shampine)ode4(龙格-库塔)ode 5 (Dormand-Prince)ode 8(Dormand Prince RK8(7))离散(无连续状态)固定步进求解器启用以下参数:

  • 固定步长(基本采样时间)

  • 周期采样时间约束

  • 将每个离散速率视为单独的任务

  • 自动处理数据传输的速率转换

  • 优先级值越高,任务优先级越高

选择奥登(非适应)可变步长求解器启用以下参数:

  • 最大步长

  • 积分法

选择ode14x(外推)启用以下参数:

  • 固定步长(基本采样时间)

  • 外推法秩序

  • 牛顿的迭代次数

  • 周期采样时间约束

  • 将每个离散速率视为单独的任务

  • 自动处理数据传输的速率转换

  • 优先级值越高,任务优先级越高

选择ode1be(后向欧拉)启用以下参数:

  • 固定步长(基本采样时间)

  • 牛顿的迭代次数

  • 周期采样时间约束

  • 将每个离散速率视为单独的任务

  • 自动处理数据传输的速率转换

  • 优先级值越高,任务优先级越高

选择离散(无连续状态)可变步长求解器启用以下参数:

  • 最大步长

  • 自动处理数据传输的速率转换

  • 优先级值越高,任务优先级越高

  • 讨论二阶导数过零控制

  • 时间的宽容

  • 连续过零的次数

  • 算法

选择数值(Dormand-Prince)ode23 (Bogacki-Shampine)ode113(亚当斯),或ode23s(硬/国防部。。)启用以下参数:

  • 最大步长

  • 最小步长

  • 初始步长

  • 相对宽容

  • 绝对的宽容

  • 形状保存

  • 连续最小步数

  • 自动处理数据传输的速率转换

  • 优先级值越高,任务优先级越高

  • 讨论二阶导数过零控制

  • 时间的宽容

  • 连续过零的次数

  • 算法

选择ode15s(硬/ NDF)ode23t (Mod. stiff/梯形,或ode23tb(硬/ TR-BDF2)启用以下参数:

  • 最大步长

  • 最小步长

  • 初始步长

  • 求解器复位法

  • 连续最小步数

  • 相对宽容

  • 绝对的宽容

  • 形状保存

  • 最大的订单

  • 自动处理数据传输的速率转换

  • 优先级值越高,任务优先级越高

  • 讨论二阶导数过零控制

  • 时间的宽容

  • 连续过零的次数

  • 算法

命令行信息

参数:SolverName解算器
值:'VariableStepAuto' |' VariableStepDiscrete' |' ode45' |' ode23' |' ode113' |' ode15s' |' ode23s' |' ode23t' |' ode23tb' |' daessc' |' FixedStepAuto' |' FixedStepDiscrete' |'ode8'| 'ode5' |' ode4' |' ode3' |' ode1' |' ode14x'
默认值:“VariableStepAuto

相关的话题