找回密码
 成为会员
查看: 3470|回复: 0

[图文教程] Simulink中的仿真算法

[复制链接]

4

帖子

0

精华

18

铜板

中级会员

Rank: 2

积分
80
发表于 2020-5-2 16:10:06 | 显示全部楼层 |阅读模式

We are leading you to the next level!

您需要 登录 才可以下载或查看,没有帐号?成为会员

x
本帖最后由 黑板擦 于 2020-5-2 16:13 编辑

在Simulink的仿真过程中选择合适的算法是很重要的,仿真算法是求常微分方程、传递函数、状态方程解的数值计算方法,这些方法主要有欧拉法( Euler) 、阿达姆斯法(Adams) 、龙格·库塔法(Rung-Kutta) ,这些算法都主要建立在泰勒级数的基础上。

欧拉法是最早出现的一种数值计算方法,它是数值计算的基础,它用矩形面积来近似积分计算,欧拉法比较简单,但精度不高,现在已经较少使用。

阿达姆斯法是欧拉法的改进,它用梯形面积近似积分计算,所以也称梯形法,梯形法计算每步都需要经过多次迭代,计算盘较大,采用预报-校正后只要迭代一次,计算盘减少,但是计算时要用其他算法计算开始的几步。

龙格·库塔法是间接使用泰勒级数展开式的方法,它在积分区间内多预报几个点的斜率,然后进行加权平均,用作计算下一点的依据,从而构造了精度更高的数值积分计算方法。如果取两个点的斜率就是二阶龙格·库塔法,取四个点的斜率就是四阶龙格.库塔法。

Simulink汇集了各种求解常微分方程数值解的方法,这些方法分为两大类,可变步长类算法和固定步长类算法。

可变步长类算法

可变步长(Variable- step) 类算法是在解算模型(方程)时可以自动调整步长,并通过减小步长来提高计算的精度。在SIMULINK 的算法中可变步长类算法有如下几种:

1. Ode45(Dormand-Prince)
基于显式Rung-Kutla (4 , 5) 和Dormand-Prince 组合的算法,它是一种一步解法,即只要知道前一时间点的解y (tn-1 ) ,就可以立即计算当前时间点的方程解y (tn) 。对大多数仿真模型来说,首先使用od e45 来解算模型是最佳的选择,所以在SIMULINK 的算法选择中将ode45 设为默认的算法。

2. Ode23(Bogacki-Shampine)
基于显式Rung-Kutta(2 , 3) 、Bogacki 和Shampine 相结合的算法,它也是一种一步算法。在容许误差和计算略带刚性的问题方面,该算法比ode45 要好。

3. Ode113 ( Adams)
这是可变阶数的Adams-Bash forth-Moulton PECE 算法,在误差要求很严时,odel13 算法较ode45 更适合。odel13 是一种多步算法,也就是需要知道前几个时间点的值,才能计算出当前时间点的值。

4. Ode15s(Stiff/NDF)
一种可变阶数的Numerical Differentiation Formulas (NDFs) 算法,它相对Backward Differentiation Formulas 算法(简称BDFs 算法,也称Gear 算法)较好。它是一种多步算法,当遇到带刚性( Stiff) 问题时或者使用ode45算法不行时,可以试试这种算法。

5. Ode23s(Stiff/Mod. Rosenbrock)
这是一种改进的二阶Rosenbrock 算法。在容许误差较大时,ode23s 比ode15s有效,所以在解算一类带刚性的问题时用ode15s 处理不行的话,可以用ode23s算法。

6. Ode23t (Mod.Stiff/Trapezoidal)
一种采用自由内插方法的梯形算法。如果模型有一定刚性,又要求解没有数值衰减时,可以使用这种算法。

7. Ode23tb(stiff/TR-BDF2)
采用TR-BD F2算法,即在龙格.库塔法的第一阶段用梯形法,第二阶段用二阶的Backward Differentiation Formulas 算法。从结构上讲,两个阶段的估计都使用同一矩阵。在容差比较大时, ode23tb 和ode23t 都比ode15s 要好。

8. Discrete (NoContinuous States)
这是处理离散系统(非连续系统)的算法。

固定步长类算法

固定步长类算法,顾名思义,是在解算模型(方程)的过程中步长是固定不变的,在SIMULINK 的算法中固定步长类算法有如下几种:

1. Ode5(Dormand-Prince)
采用Dormand -Prince算法,也就是固定步长的ode45算法。

2. Ode4(Rung-Kutta)
四阶的龙格·库塔法。

3. Ode3(Bogacki-Shampine)
采用Bogacki-Shampine 算法。

4. Ode2 (Heun)
一种改进的欧拉算法。

5. ode1 (Euler)
欧拉算法

6. Discrete 'NoContinuous States)
不含积分的固定步长解法,它适用于没有连续状态仅有离散状态模型的计算。
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

Archiver|手机版|AutoSim仿真教程 ( 皖ICP备15024617号-9 )

GMT+8, 2024-4-26 04:35 , Processed in 0.028722 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc. Design AutoSim

快速回复 返回顶部 返回列表