Matlab/Simulink中各种求解算法总结

Solver中,变步长包括了discrete,ode45,ode23,ode113,ode15s,ode23s,ode23t和ode23tb。

1.Disctete:当Simulink检测到模块没有连续状态时使用。

2.ode45:求解器算法是四阶或五阶龙格库塔法,为系统默认值,适用于大多数连续系统或离散系统仿真,但不适用于Stiff(刚性)系统。

3.ode23:求解器算法是二阶或三阶龙格库塔法,它在误差限要求不高和求解的问题不太复杂的情况下比ode45更有效。

4.ode113:一种阶数可变的求解器,它在误差要求严格的情况下通常比ode45更有效。

5.ode15s:是一种基于数字微分公式的求解器,适用于刚性系统。当用户估计要解决的问题比较复杂,或者不使用ode45或者效果不好时,可以使用ode15s。通常对于刚性系统,如果用户选择了ode45求解器,运行仿真后Simulink会弹出警告对话框,提醒用户选择刚性系统,但不会终止仿真。

6.ode23s:是一种单步求解器,专门用于刚性系统,在弱误差允许条件下效果会高于ode15s。它能解决某些ode15s不能解决的问题。

7.ode23t:是梯形规则的一种自由差值实现,适用于求解适度刚性的问题而用户又需要一个无数字振荡的求解器时使用。

8.ode23tb:具有两个阶段的隐式龙格库塔公式。

固定步长求解器的算法包括disctete,ode5,ode4,ode3,ode2,ode1,ode14z。

1.discrete:是一个实现积分的固定步长求解器,它适用于离散无连续状态的系统。

2.ode5:系统默认求解器,是ode45的固定步长版本,适用于大多数连续或离散系统,不适用于刚性系统。

3.ode4:四阶龙格库塔法,具有一定的计算精度。

4.ode3:固定步长的2/3阶龙哥库塔法。

5.ode2:改进欧拉法。

6.ode1:欧拉法。

7.ode14z:外推法。

此外,在设置仿真步长时,最大步长要大于最小步长,初始步长介于二者之间。默认的最大步长为“仿真时间除以50”,即整个仿真至少计算50个点。最小步长及初始补偿使用AUTO即可。

发布了131 篇原创文章 · 获赞 44 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/qq_38769551/article/details/103723271