离散化原理及要求和常用的几种数值积分法

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

“数字”计算,引入舍入误差; 按指令一步一步进行,必须将时间 离散化。
系统仿真
3

连续系统仿真:

从时间、数值两个方面对原系统进行离散 化,并选择合适的数值计算方法来近似积 分运算,由此得到离散模型来近似原连续 模型。
系统仿真
4
相似原理

设系统模型为:
y f ( y, u , t )
仿真时间间隔为:h
第三章 连续系统数值积分 仿真方法学
3.1 离散化原理及要求


(1)离散化原理 (2)离散化建模方法的要求
系统仿真
2
(1)离散化原理
在数字计算机上对连续系统进行仿真时, 首先遇到的问题是:数字计算机的数值及时间 均具有离散性,而被仿真系统的数值及时间均 具有连续性,后者如何用前者来实现。
a.
b.
y(t)在tn处得切线方程为
yn+1 yn (t0,y0) t
(t1,y1)
y(t)
y yn f (tn , yn )(t tn )
则得
0
tn
tn+1
t
y(tn1 ) y(tn ) hf (tn , yn ) yn1
yn1 yn hfn
系统仿真
21
例1
设系统方程为:
f (t c2 h, y (t ) a1k1h) f (t , y) c2 h t f (t , y )
a1k1h y f (t , y)
系统仿真
31
y (t h) y (t ) h bi ki y (t ) b1hk1 b2 hk2
i 1 y (t ) b1hf (t , y ) b2 h[ f (t , y ) c2 h t f (t , y ) a1k1h y f (t , y ) t ] y

f (t , y )
f y
y (t h) y (t ) hf (t , y ) 其中: ft
f t
( ft f f y )
f y
, f f (t , y ), f y
系统仿真
29
将y(t+h)写成线性组合形式
y (t h) y(t ) h bi ki
系统仿真
u(t)
原连续模型y
f ( y, u , t )
y(t)
- +
h
e y (t k ) 0
ˆ u (t k )
仿真模型
f ( y, u, t ) ˆ ˆ ˆ k y
ˆ y (t k )
图2.1 相 似 原理
系统仿真
6
(2)离散化建模方法的要求
1.
2.
稳定性 准确性:

最基本的准则是: ˆ 绝对误差准则:e y (t k ) y (t k ) y (t k )
2

令 b1 b2 ,得 a 1, b b 0.5, c1 1 1 1 2 所以
2 f y (t ) (b1 b2 )hf (t , y ) b2c2 h t
2 f y a1b1h y t
yn 1 yn 1 h(k1 k 2 ) 2 k1 f n f (t n , yn ) k f f (t , y ) f (t , y hk ) n 1 n 1 n 1 n 1 n 1 2
误差在10-2数量级
系统仿真
23
(2)改进的欧拉法(梯形法)

又称二阶龙格-库塔法 曲边梯形的面积
f(t) 误差
f
S1
t n1
tn
f (t , y)dt y(tn1 ) y(tn )
直边梯形的面积
tn tn+1 当h比较小时,以直边梯形代替曲边梯形的面积,可得
S2 1 h f (tn , yn ) f (tn1 , yn1 ) 2
0
t
y(tn1 ) y(tn ) 1 h f (tn , yn ) f (tn1 , yn1 ) 2

其差分方程
yn1 yn 1 h f (t n , yn ) f (t n1 , yn1 ) 2
yn1 yn h f n f n1 2
y y 0,
2
y(0) 1
f (t, y) y
2
试用欧拉法求其数值解(取步长h=0.1,0≤t≤1) 解:原方程为: 递推公式为: yn 1 yn hf (t n , yn ) yn (1 0.1 yn )
y2 , y
t0 0, y0 1 t1 0.1, y1 y0 (1 0.1 y0 ) 0.9 t 2 0.2, y2 y1 (1 0.1 y1 ) 0.819
预估-校正法
使用隐式公式时,需用另一显式公式估计 一个初值,然后再用隐式公式进行迭代运算。
系统仿真
13
截断误差

假设前一步得到的结果y 是准确的,则用泰勒级 数求得t 处的精确解为
m
m+1
1 2 y (t m h) y (t m ) hy (t m ) h (t m ) y 2! 1 r (r ) h y (t m ) o(h r 1 ) r!
系统仿真
——改进欧拉法
32
④ r=4
y(tn1 ) yn1 yn h (k1 2k2 2k3 k4 ) 6
其中:
k1 f (t n , yn ) k 2 f (t n 1 h, yn h k1 ) 2 2 k3 f (t n 1 h, yn h k 2 ) 2 2 k 4 f (t n h, yn hk3 )

3.
快速性
ˆ y (t k ) y (t k ) 相对误差准则: e y (t k ) ˆ y (t k )
系统时间间隔——hk=tk+1-tk 计算每一步间隔——Tk 若hk= Tk ,——实时仿真 若Tk< hk ,——超实时仿真 若Tk>hk ,——离线仿真
系统仿真
7
明确几个概念
i 1
r
其中r称为阶数,bi待定系数,ki由下式决定
ki f (t ci h, y(t ) h a j k j ), i 1,2,3,...r
j 1
i 1
且定义C1=0
系统仿真
30
① r=1,此时c1=0,a1=0,k1=f(t,y),则 y(t h) y(t ) hb1 f (t , y) 取b1=1,即得一阶龙格-库塔法 ② r=2 k1 f (t , y ) k 2 f (t c2 h, y (t ) a1k1h) 将 f (t c2h, y(t ) a1k1h) 在点(t,y)展开泰勒级数
若从以上精确解中取前两项之和来近似计
算ym+1,由这种方法单独引进的附加误差通 常称作局部截断误差.
系统仿真
14
舍入误差
舍入误差与h成反比,若计算步长小,计
算次数就多,则舍入误差就大。
系统仿真
15
3.2 常用的几种数值积分法

建立系统数学模型的目的是研究系统的 运动规律
y f (t , y ) y (t 0 ) y 0
1 2
(1)
y n1 y(tn ) h f (tn , yn ) f (tn1, y n1 )
( 0)


3.再用
( 2)
y n1
(1)
求y
( 2)
n 1
y n1 y(tn ) h f (tn , yn ) f (tn1, y n1 )
1 2 (1)
系统仿真

系统仿真
wenku.baidu.com
8
差分方程
已知表示某系统一阶向量微分方程及初 值为:
Y F (t , Y ) Y (t 0 ) Y0
t
对上式两边积分,则
Y (t ) Y (t0 ) F (t, Y )dt
t0
系统仿真
(1)
9
在t
t0 , t1,, tm1 时的连续解为:
Y (tm1 ) Y (t0 ) F (t , Y )dt
t0 t m1
Y (tm ) F (t , y )dt
tm
t m1
(2)
(3)
令 则
Qm
t m1
Y (tm1 ) Y (tm ) Qm
tm
F (t , Y )dt
(4)
或表示为
Ym1 Ym Qm
系统仿真
(5)
10
数值解法
就是寻求初值问题式(1)的解在一系列离散点 t1 , t2 ,, tm , tm1 的近似解 Y , Y2 ,, Ym , Ym1 (即数值解) 1 相邻两个离散点的间距 h tm1 tm ——称为计算步长或步距 常用的基本方法有三类: 单步法、多步法、预估-校正法。 并可分为显式公式和隐式公式。
系统仿真
27
(3)龙格-库塔法

基本思想

间接利用泰勒展开式,即用几个点上的y(t) 的一阶导函数值的线性组合来近似代替y(t) 在某一点的各阶导数,然后用泰勒级数展 开式确定线性组合中各加权系数
系统仿真
28
(a)龙格-库塔数值积分公式推导
一阶微分方程: y f (t , y ) y (t 0 ) y 0
ˆ 离散后的输入变量:u (t k )
ˆ y 系统变量: (tk )
如果:
其中tk kh
ˆ ˆ u(tk ) u(tk ) y(tk ) y(tk )
两模型等价。
5
即: eu (tk ) u(tk ) u(tk ) 0 ˆ
ˆ ey (tk ) y(tk ) y(tk ) 0
y(t h) y(t ) y(t )h 从而 y(t h) y(t ) hf (t , y)
将上式写成差分方程
yn1 yn hf (tn , yn )
系统仿真
19
(b)矩形近似解法
y f (t , y ) y (t 0 ) y 0
系统仿真
t10 1.0, y10 y9 (1 0.1y9 ) 0.4628
22
已知方程的解析解为
精确解与数值解比较
t 0 0.1 0.2 0.3
1 y 1 t
0.5 … … … 1.0 0.5 0.4628
0.4
精确解y(t) 1 0.9091 0.8333 0.7692 0.6667 0.625 数值解yn 1 0.9 0.819 0.7519 0.6594 0.647
系统仿真
24
1.用欧拉法求出初值,算出 y(tn1 ) 的近似值
2.计算导函数 f n 1 近似值
p
y n1
p n1
p
f n1 f (tn1, y )
3.然后用梯形法求出修正后的
y n1
e
系统仿真
25
迭代运算:
1.用欧拉法预估一个初值
y n1
(0)
2.用下式求出
(1)
y n1
系统仿真
16
(一)单步法
系统仿真
17
(1)欧拉法(一阶龙格-库塔法)


Taylor级数展开 矩形近似解法 切线近似
系统仿真
18
(a)Taylor展开
y f (t , y ) y (t 0 ) y 0 假定 y(t ) g (t , y) 为其解析解
将y(t)展开成Taylor级数
系统仿真
11
单步法与多步法

单步法


只由前一时刻的数值 ym就可求得后一时刻 的数值ym+1 能自动启动
计算ym+1需要用到 tm,tm-1,tm-2,…时刻y的数 据 不能自动启动
系统仿真

多步法

12
显式与隐式


显式

计算 ym+1时所用数值均已计算出来 计算中隐含有未知量
隐式

h2 2
假定y(t)是上式的解析解。将y(t)展开成泰勒级数
y(t h) y(t ) hy(t )
y (t ) f (t , y ) (t ) y
d dt
(t ) ... y
f t
其中:
f (t , y)
f t

f y y t h2 2

26
( ) ( ynm1与ynm1 1)相差很小时为止。 如此反复下去直到
( p) yn 1 yn hf (t n , yn )
y n1 yn
(c)
1 2
h f (t , y ) f (t
n n
预估公式
n 1
, y n1 )
( p)

校正公式
——预估校正法
在区间[tn,tn+1]上积分,得
f(t) 误差
f
近似矩形
0
t n1
tn
tn+1
t
y(tn1 ) y(tn )
于是 y(t n 1 ) y(t n ) hf (t n , yn ) yn 1
tn
f (t , y)dt
yn1 yn hfn
系统仿真
20
y
(c)切线近似
相关文档
最新文档