文档介绍:计算机仿真技术
济南大学控制科学与工程学院
授课教师:李实
cse_******@ujn.
1教1007室
1
第三章数字仿真通用算法
在工程实际和科学研究中所遇到的问题往往很复杂,很多情况下无法给出描述动态特性的微分方程解的解析表达式,多数只能用近似的数值方法求解. 随着计算机软硬件和数值理论的进展,微分方程的数值解方法已成为当今研究、分析和设计系统的一种有力工具.
系统仿真中常用的数值积分法
刚性系统的特点及算法
实时半实物仿真
采样控制系统的仿真方法
分布参数系统的数字仿真
2
系统仿真中常用的数值积分法
欧拉法和改进欧拉法
龙格-库塔法
线性多步法
MATLAB中常微分方程求解方法
3
欧拉法和改进欧拉法
欧拉法是最简单的单步法,它是一阶的,精度较差. 但公式简单,有明显的几何意义,适合初学者在直观上学习数值x(tn)是如何逼近微分方程的精确解x(t)的.
考虑初值问题:
()
式()的解x(t)是一连续变量x的函数,现在要用一系列离散时刻的近似值x(t1),x(t2),…,x(tn)来代替,其中ti=t0+ih, h成为步长,是相邻两点的距离. 将式()在区间(ti,ti+1)上积分,则可得:
()
积分项的几何意义是曲线f(x,y)在区间(ti,ti+1)上的面积,当(ti,ti+1)充分小时,可以用矩形面积来代替:
4
欧拉法
因此,式()可近似为:
写成递推式:
()
已知x(0)=x0, 可以由上式求出x(t1), x(t2), …. 这种算法成为单步法. 可以直接由初始值递推出其它各时间的值,因此单步法是一种自启动算法.
定义x(tn)=xn, 式子()还可以写成:
()
该式称为前向欧拉公式,又称显式欧拉公式.
后向欧拉公式(隐式欧拉公式):
()
5
欧拉法
[] 设系统方程为
试用欧拉法求其在t=1时的数值解,仿真步长h=,要求分别使用前向欧拉法和后向欧拉法.
方程可以写为:
写出该系统向欧拉递推公式为:
6
欧拉法
该系统的后向欧拉递推公式为:
整理后得到:
将h=,求得方程的解为:
7
欧拉法的几何意义
h
t
x(t)
tn
xn
tn+1
xn+1
前向欧拉法
tn+1
h
t
x(t)
tn
xn
xn+1
后向欧拉法
8
改进欧拉法(预测-校正法)
对积分公式()利用梯形面积公式计算积分项,得:
()
()
写成递推差分格式:
()
可以先用欧拉法计算xn+1, 定义为预估值,写为xpn+1,再将该预估值代入原方程中计算函数,最后利用式()+1, 改进后的欧拉法描述如下:
()
9
欧拉法:误差分析
欧拉法以一定的步长来进行数值计算,所得到的解在tn点的近似值与微分方程的精确解存在误差.
数值仿真的误差可分为截断误差和舍入误差两种. 截断误差与采用的计算方法有关,而舍入误差由计算机的字长决定.
截断误差:将x(tn+h)在t=tn点进行泰勒展开:
()
取并截断,得到欧拉公式,Rn为截断误差,与h2成正比
()
解从t=0到t=tn所积累的误差为整体误差,比局部误差要大,欧拉法的整体误差与h成正比,即为O1(h).
10