系统仿真算法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
h[
f
(tn ,
yn )
f
(tn1,
yn 1 )]
3.1 数值积分法
即
yn1
yn
1 h[ f 2
(tn , yn )
f
(tn1, yn1)]
yn
1 2
h[
f
n
f n 1 ]
也称为梯形公式或二阶隐式Adams公式,公式右端隐含有待
求量,故梯形法不能自行起步运算,而需有其他算法的帮
助。为了提高计算精度常常需要迭代运算。为减小计算量
k4 )
y1
打印 x1, y1
N i n?
Y
i 1 i x1 t0 y1 y0
3.1 数值积分法
【例3-2】已知系统方程 &y& 0.5y& 2 y 0 y&(0) 0 y(0) 1 取步长 h 0.1试用RK4公式计算 t 0.1 t 0.2 时y的值。 解:将原系统方程转化成下列方程组:
3.1 数值积分法
3.1.2 龙格-库塔(Runge-Kutta)积分法 是用几个点上的的一阶导函数值的线性组合来近似代替在某
一点的各阶导数,然后用Taylor级数展开式确定线性组合 中各加权系数。这就是Runge-Kutta(简称RK)法的基本 思想。 各阶RK公式及说明如下:
一阶RK公式为: y(t h) y(t) hf (t,y) 它就是Euler公式,也就是说,Euler公式是RK公式的特例
将这种思想引申如果在每个积分步中多取几个点(如取r个点 ),分别求出其斜率 k1,k2,…,kr,然后取不同的权 值,则公式为:k 1k1 2k2 ... rkr 得出一系列龙格 —
库塔(Runge-Kutta)法 。
3. 几个基本概念 (1)算法自启动 (2)单步法与多步法 (3)显式与隐式 (4)截断误差 (5)舍入误差 (6)初始误差
1. Euler法 对于初值问题
y& f (t, y)
y(0)
y0
假定y(t)为其解析解,将展成泰勒级数:y(t h) y(t) y&(t)h ...
则 y(t h) y(t) hf (t, y)
写成差分方程的形式:
3.1 数值积分法
yn1 yn hf (tn , yn ) yn hfn
依次取1/2,1/2,0,1时为 依次取1,1,1/2,1/2时为
k1 f (tn , yn )
k2
f (tn
h 2 , yn
1 2 hk1)
yn1
yn
hf
(tn
h 2
,
yn
Βιβλιοθήκη Baidu
1 2
hk1 )
yn1
k1
f
yn
h 2
(tn,yn
(k1 )
k2
)
k2 f (tn h,yn hk1)
3.1 数值积分法
梯形面积代替每一个小区间的曲线面积,则可提高精度。
曲边梯形的面积为 直边梯形的面积为
tn1
S1 f (t, y)dt y(tn1) y(tn )
tn
S2
1 2
h[
f
(tn ,
yn )
f
(tn1,
yn 1 )]
当比较小时,以直边梯形面积取代曲边梯形的面积,可得
y(tn1)
y(tn )
1 2
,常常迭代一次就求得近似解。这样就可以得到改进的
Euler法公式:
yp n1
yn
hf
(tn ,
yn )
yc n1
yn
1 2
h[
f
(tn ,
yn )
f
(tn1,
yp n1
)]
第一式称为预估公式,第二式称为校正公式。通常称这类方 法为预估— 校正法。
实质上是采用了和两点斜率平均值的结果
3.1 数值积分法
则上式在 t t0,t1,...,tn,tn1 在形式上的连续解为
tn1
tn1
Yn1 Y (tn1) Y (t0 ) F (t,Y )dt Y (tn ) F (t,Y )dt Yn Qn
t0
tn
通过上式的演化,连续系统的数值解就转化为相邻
两个时间点上的数值积分问题。
3.1 数值积分法
h 2
,yn
h 2
k2
)
h,yn hk3)
3.1 数值积分法
四阶RK法程序框图
开始 读入数据
0i
t0 h x1 f (t0 , y0 ) k1
f
(t0
h 2
,
y0
hk1 ) 2
k2
f
(t0
h 2
,
y0
hk2 2
)
k3
f (t0 h, y0 hk3 ) k4
y0
1 6
h(k1
2k2
2k3
只要给定初始条件y0及步长h,就可根据f(t0,y0)算出y1, 再由y1,算出y2,如此递推算出y3,y4,y5…。
【例3-1】 y& y2 0 y(0) 1 h 0.1 0≤t ≤1 试用Euler法求其数值解。
3.1 数值积分法
2. 改进Euler法(预估 — 校正法) 在Euler法中,是用矩形面积来代替曲边梯形面积。如果改用
二阶RK法是每步取两个斜率加权。 第一斜率 k1 f (tn , yn ) fn
第二斜率 k2 f (tn h, yn hk1)
加权后递推公式为 yn1 yn hk yn h(1k1 2k2 )
3.1 数值积分法
经过与泰勒级数对比可确定四个参数αβω1ω2,可得二阶RK法 的计算公式:
三阶RK法公式: 四阶RK法公式:
yn1
yn
h 4
(k1
3k3 )
k1
f
(tn,yn )
k2
f (tn
h3,yn
h 3
k1
)
k3
f
(tn
2h 3
,yn
2h 3
k2
)
yn1
yn
h 6
(k1
2k2
2k3
k4 )
k1
f (tn,yn )
k2
f (tn
h 2
,yn
h 2
k1
)
k3 k4
f (tn f (tn
数值解法 3.1 数值积分法(针对连续系统的微分方程形式。利用数值
积分方法对常微分方程(组)建立离散化形式的数学模型 ——差分方程,并求其数值解 )
3.1 数值积分法
3.1.1 数值积分法基本原理
把被仿真系统表示成一阶微分方程组或状态方程的形式
Y& F (t,Y ) Y (t0 ) Y0
(3-1)
所谓数值解法,就是寻求初值问题式(3-1)的真解在 一系列离散点 t1 t2 L tn L 上的近似数值解 Y1,Y2,...,Yn,... 相邻两个时间离散点的间隔hn = tn+1 - tn, 称为计算步距或步长,通常取hn = h为定值。
数值积分法的主要问题归结为对函数F(t,Y)的数值积分问题
系统仿真算法
第3章系统仿真算法 3.1 数值积分法
在数学仿真中,从一个实际系统抽象出数学模型只是第一步,这 一步将实际系统变成了数学模型,可以称之为系统建模或系统辨识, 这是第一次模型化过程。这次模型化所得到的只是数学方程式,必须 使用一定的仿真工具才能求解。将已获得的数学模型变成能在一定仿 真工具中运算求解的仿真模型,这是第二次模型化过程。