Simulink各求解器的特点

对于用数值方法求解常系数微分方程(Ordinary Differential Equation,ODE)或微分方程组,Simulink提供了七种求解函数(的方法)。

  1. Ode45。这种求解器采用龙格一库塔方法,这也是利用Simulink求解微分方程时最常用的一种方法。这种算法精度适中,是计算方程的首选项。

它是利用有限项的泰勒级数取近似解函数,而误差的来源就是泰勒的截断项,误差就是截断误差。

Ode45分别采用四阶、五阶泰勒级数计算每个积分步长终端的状态变量近似值,并利用这个级数的值相减,得到的误差作为计算误差的判断标准。如果误差估计值大于这个系统的设定值,那么就把该积分步长缩短,然后重新计算:如果误差远小于系统的设定值,那么就将积分步长放长。

  1. Ode23。这种求解器采用龙格一库塔方法,为了能够达到Ode45同样的精度,Ode23的积分步长总要比Ode45取得小。因此,Ode23处理“中度Stiff”问题的能力优于Ode45。

Ode23是利用有限项的泰勒级数取近似解函数,而误差的来源就是泰勒的截断项,其中,误差就是指截断误差。

Od45分别采用泰勒级数计算每个积分步长终端的状态变量近似值,并利用这个级数的值相减,得到的误差作为计算误差的判断标准。如果误差估计值大于这个系统的设定值,那么就把该积分步长缩短,然后重新计算。如果误差远小于系统的设定值,那么就将积分步长扩大。Ode23和Ode45都是变步算法。

  1. Ode113。该求解器与Ode45和Ode23不同,它采用的变阶Adams法是一种多步预报校正算法。

Ode113在执行过程中还自动地调整近似多项式的阶数,以平衡其精确性和有效性。Ode45和Ode23采用的是泰勒级数方法,而Odel13采用的是多项式方法,计算导数的次数也比前面两种方法次数少,所以在计算光滑系统时,Ode113的速度更快。

  1. Odel5s是专门用来求解刚性(Stiff)方程的变阶多步算法,包含一种对系统动态转换进行检测的机理。这种检测使这一算法对非刚性(Stiff)系统尤其是对那种有快速变化模式的系统情况计算效率低下。

  2. Ode23s。该求解器和Odel5s一样都是用来求解刚性方程的,是基于Rosenbrok公式建立起来的定阶单步算法。由于计算阶数不变,所以计算效率要比Odel5s效率高。

  3. Ode23t。常用来求解中度刚性方程。

  4. Ode23tb。常用来求解中度刚性方程。

当系统是刚性方程时,要选择适当的求解器才能得到正确结果。对刚性微分方程,利用不同的求解器仿真结果和精确值进行比较,并说明求解器使用不当,产生的结果差别非常大。

刚性微分方程的含义是指:在用微分方程描述的一个变化过程中,若往往又包含着多个相互作用但变化速度相差十分悬殊的子过程,这样一类过程就认为具有“刚性”。描述这类过程的微分方程初值问题称为“刚性问题”。举个例子:

求微分方程 d 2 y   d x 2 + 999 d y   d x + 0.999 y = 0 \frac{\mathrm{d}^{2} y}{\mathrm{~d} x^{2}}+999 \frac{\mathrm{d} y}{\mathrm{~d} x}+0.999 y=0  dx2d2y+999 dxdy+0.999y=0

在初始条件 d y   d x ( 0 ) = 1 , y ( 0 ) = 0 \frac{\mathrm{d} y}{\mathrm{~d} x}(0)=1, y(0)=0  dxdy(0)=1,y(0)=0 时的解

例如,宇航飞行器自动控制系统一般包含两个相互作用但效应速度相差十分悬殊的子系统:一个是控制飞行器质心运动的系统,当飞行器速度较大时,质心运动惯性较大,因而相对变化缓慢;另一个是控制飞行器运动姿态的系统,由于惯性小,相对变化很快,因而整个系统就是一个刚性系统。通过系统的特征值来判断刚性方程的条件是: s = ∣ ( λ ) max ⁡ ( λ ) min ⁡ ∣ s=\left|\frac{(\lambda)_{\max }}{(\lambda)_{\min }}\right| s= (λ)min(λ)max 定义为刚性比,这里入是系统的特征值,当 s > 1 s>1 s>1时,即认定为刚性问题。

摘录自《Matlab Simulink动力学系统建模与仿真

你可能感兴趣的:(MATLAB,Simulink,matlab,simulink,求解器)