连续系统的数字仿真1_08解析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2
3
3.1 数值积分法
连续系统通常把数学模型化为状态空间表达式,为
了对n阶连续系统在数字计算机上仿真及求解,就要 采用数值积分法来求解系统数学模型中的n个一阶微 分方程。
设n阶连续系统由以下n个一阶微分方程组成
dx(t)
dt
f (t, x(t))
(3-1)
x(t0 ) x0
所谓数值积分法,就是要逐个求出区间[a ,b]内若
xk 1
Hale Waihona Puke Baidu
xk
hfk
h2 2!
(
f
' k
f' xk
fk ) 0(h p1() 3-6)
为了避免计算式(3-6)中的各阶导数项,可令xk+1由
以下多项式表示。
v
xk1 xk h amkm m1
(3-7)
12
式中 am为待定因子,v为使用f函数值的个数,
km满足下列方程
m1
km f (tk cmh, xk bmjk jh)
t k 1
x(tk1) x(tk ) f (t, x(t))dt
tk
通常假设离散点t0,t1,…,tn是等距离的,即tk+1tk=h, 称h为计算步长或步距。
5
当t>t0时,x(t)是未知的,因此式(3-2) 右端的积分是求不出的。为了解决这个问题, 把积分间隔取得足够小,使得在tk与tk+1之间 的 f(t,x(t)) 可 以 近 似 看 作 常 数 f(tk,x(tk)) , 这样便得到用矩形公式积分的近似公式
hf
(tk , xk )
xk
(1) 1
xk
h[ f 2
(tk , xk )
f
(tk
1
,
xk
(0) 1
)]
通常称这类方法为预估-校正方法。它首
先根据欧拉公式计算出xk+1的预估值
xk+1(0) ,然后再对它进行校正,以得到更
准确的近似值xk+1(1)。
10
3.1.4 龙格-库塔法
根据泰勒级数将式(3-1)在tk+1=tk+h时刻的解 xk+1=x(tk+h) 在tk附近展开,有
xk 1
xk
hxk
1 2!
h2
xk
hp p!
xk( p)
0(h p31-)5)
可以看出,提高截断误差的阶次,便可提高其精
度,但是由于计算各阶导数相当麻烦,所以直接采
用泰勒级数公式是不适用的,为了解决提高精度问
题,龙格和库塔两人先后提出了间接使用泰勒级数
公式的方法,即用函数值f (t,x)的线性组合来代替f
f(tk,xk)h 来近似的。 由图3-2知,用矩形面积
f dx
dt
c
tkabtk+1代替积分,其误差就
是图中阴影部分。为了提高精
a
b
度现用梯形面积tkactk+1来代
替积分,即
tk1
h
tk
t k 1
t
tk
f
(t, x(t))dt
[ 2
f
(tk , xk )
f
(tk1, xk1)]
于是可得梯形法的计算公式为
(3-7)和式(3-8)中的系数am ,bmj和cm等。
13
现以v=2为例,来说明这些参数的确定方法。
或简化为 x(tk1) x(tk ) f (tk , x(tk ))h
这就是欧拉公x式k。1 xk f (tk , xk )h
6
以x(t0)=x0作为初始值,应用欧拉公式, 就可以一步步求出每一时刻tk的xk值,
即 k =0,x1≈x0+f(t0,x0)h
k=1, x2≈x1+f(t1,x1)h x2
图3-2 义
梯形法的几何意
xk 1
xk
h[ f 2
(tk , xk )
f
(tk1, xk1)]
8
由于上式右边包含未知量xk+1,所以每一步都 必须通过迭代求解,每一步迭代的初值xk+1(0 通常采用欧拉公式来计算,因此梯形法每一步
迭代公式为
xk
(0) 1
xk
hf
(tk , xk )
xk
( 1
(t,x)的导数,然后按泰勒公式确定其中的系数, 这
样既能避免计算f (t,x)的导数,又可以提高数值计算
精度,其方法如下。
11
因
xk f (tk , xk ) fk
xk
df
(t, dt
x)
t tk
f f dx
( t
x
) dt
t tk
fk f xk fk
x xk
x xk
故式(3-5)可写成
干个离散点a≤ t0 < t1<… <tn≤b处的近似值
x(t1),x(t2),…,x(tn)。
4
3.1.1 欧拉法
欧拉法又称折线法或矩形法,是最简单也是最 早的一种数值方法
将式(3-1)中的微分方程两边进行积分,得
tk1 dx(t)
t k 1
dt f (t, x(t))dt
tk dt
tk
即
R1)
xk
h[ 2
f
(tk , xk )
f
(tk
1
,
x(R) k 1
)]
(3-3)
式中 迭代次数R=0,1,2,…
9
3.1.3 预估-校正法
虽然梯形法比欧拉法精确,但是由于每 一步都要进行多次叠代,计算量大,为了 简化计算,有时只对式(3-3)进行一次叠 代就可以了,因此可得
xk
(0) 1
xk
用数字计算机来仿真或模拟一个连续控 制系统的目的就是求解系统的数学模型。 由控制理论知,一个n阶连续系统可以被描 述成由n个积分器组成的模拟结构图。因此 利用数字计算机来进行连续系统的仿真, 从本质上讲就是要在数字计算机上构造出n 个数字积分器,也就是让数字计算机进行n 次数值积分运算。可见,连续系统数字仿 真中的最基本的算法是数值积分算法。
┇
x1
k=n-1,
x
(t2 ,x2)
(t1 ,x1)
xn≈xn-1+f(tn-1,xn-1)h 这样式(3-1)的解x(t) 就求出来了。欧拉法的计 算虽然比较简单,但精度 较低。图3-1为欧拉法的 几何解释。
x0
t
t0 t1 t2 图3-1 欧拉法的几何解释
7
3.1.2 梯形法
由上可知欧拉公式中的积分是用矩形面积
第3章 连续系统的数字仿真
本章内容
(1) 熟悉在数字计算机仿真技术中常用的几种数值积分法 ,
特别是四阶龙格-库塔法; (2) 典型环节及其系数矩阵的确定; (3) 各连接矩阵的确定; (4) 利用MATLAB在四阶龙格-库塔法的基础上,对以状 态
空间表达式和方框图描述的连续系统进行仿真; (5) 了解以增广矩阵法为基础的连续系统的快速仿真方法1 。
j 1
(3-8)
c1 0, m 1,2,, v
即:
k1 f (tk , xk )
k2 f (tk c2h, xk b21k1h)
k3 f (tk c3h, xk b31k1h b32k2h) 将式(3-7)展 开成h的幂级数并与微分方程式 (3-1)精确解式(3-6)逐项比较,便可求得式
3
3.1 数值积分法
连续系统通常把数学模型化为状态空间表达式,为
了对n阶连续系统在数字计算机上仿真及求解,就要 采用数值积分法来求解系统数学模型中的n个一阶微 分方程。
设n阶连续系统由以下n个一阶微分方程组成
dx(t)
dt
f (t, x(t))
(3-1)
x(t0 ) x0
所谓数值积分法,就是要逐个求出区间[a ,b]内若
xk 1
Hale Waihona Puke Baidu
xk
hfk
h2 2!
(
f
' k
f' xk
fk ) 0(h p1() 3-6)
为了避免计算式(3-6)中的各阶导数项,可令xk+1由
以下多项式表示。
v
xk1 xk h amkm m1
(3-7)
12
式中 am为待定因子,v为使用f函数值的个数,
km满足下列方程
m1
km f (tk cmh, xk bmjk jh)
t k 1
x(tk1) x(tk ) f (t, x(t))dt
tk
通常假设离散点t0,t1,…,tn是等距离的,即tk+1tk=h, 称h为计算步长或步距。
5
当t>t0时,x(t)是未知的,因此式(3-2) 右端的积分是求不出的。为了解决这个问题, 把积分间隔取得足够小,使得在tk与tk+1之间 的 f(t,x(t)) 可 以 近 似 看 作 常 数 f(tk,x(tk)) , 这样便得到用矩形公式积分的近似公式
hf
(tk , xk )
xk
(1) 1
xk
h[ f 2
(tk , xk )
f
(tk
1
,
xk
(0) 1
)]
通常称这类方法为预估-校正方法。它首
先根据欧拉公式计算出xk+1的预估值
xk+1(0) ,然后再对它进行校正,以得到更
准确的近似值xk+1(1)。
10
3.1.4 龙格-库塔法
根据泰勒级数将式(3-1)在tk+1=tk+h时刻的解 xk+1=x(tk+h) 在tk附近展开,有
xk 1
xk
hxk
1 2!
h2
xk
hp p!
xk( p)
0(h p31-)5)
可以看出,提高截断误差的阶次,便可提高其精
度,但是由于计算各阶导数相当麻烦,所以直接采
用泰勒级数公式是不适用的,为了解决提高精度问
题,龙格和库塔两人先后提出了间接使用泰勒级数
公式的方法,即用函数值f (t,x)的线性组合来代替f
f(tk,xk)h 来近似的。 由图3-2知,用矩形面积
f dx
dt
c
tkabtk+1代替积分,其误差就
是图中阴影部分。为了提高精
a
b
度现用梯形面积tkactk+1来代
替积分,即
tk1
h
tk
t k 1
t
tk
f
(t, x(t))dt
[ 2
f
(tk , xk )
f
(tk1, xk1)]
于是可得梯形法的计算公式为
(3-7)和式(3-8)中的系数am ,bmj和cm等。
13
现以v=2为例,来说明这些参数的确定方法。
或简化为 x(tk1) x(tk ) f (tk , x(tk ))h
这就是欧拉公x式k。1 xk f (tk , xk )h
6
以x(t0)=x0作为初始值,应用欧拉公式, 就可以一步步求出每一时刻tk的xk值,
即 k =0,x1≈x0+f(t0,x0)h
k=1, x2≈x1+f(t1,x1)h x2
图3-2 义
梯形法的几何意
xk 1
xk
h[ f 2
(tk , xk )
f
(tk1, xk1)]
8
由于上式右边包含未知量xk+1,所以每一步都 必须通过迭代求解,每一步迭代的初值xk+1(0 通常采用欧拉公式来计算,因此梯形法每一步
迭代公式为
xk
(0) 1
xk
hf
(tk , xk )
xk
( 1
(t,x)的导数,然后按泰勒公式确定其中的系数, 这
样既能避免计算f (t,x)的导数,又可以提高数值计算
精度,其方法如下。
11
因
xk f (tk , xk ) fk
xk
df
(t, dt
x)
t tk
f f dx
( t
x
) dt
t tk
fk f xk fk
x xk
x xk
故式(3-5)可写成
干个离散点a≤ t0 < t1<… <tn≤b处的近似值
x(t1),x(t2),…,x(tn)。
4
3.1.1 欧拉法
欧拉法又称折线法或矩形法,是最简单也是最 早的一种数值方法
将式(3-1)中的微分方程两边进行积分,得
tk1 dx(t)
t k 1
dt f (t, x(t))dt
tk dt
tk
即
R1)
xk
h[ 2
f
(tk , xk )
f
(tk
1
,
x(R) k 1
)]
(3-3)
式中 迭代次数R=0,1,2,…
9
3.1.3 预估-校正法
虽然梯形法比欧拉法精确,但是由于每 一步都要进行多次叠代,计算量大,为了 简化计算,有时只对式(3-3)进行一次叠 代就可以了,因此可得
xk
(0) 1
xk
用数字计算机来仿真或模拟一个连续控 制系统的目的就是求解系统的数学模型。 由控制理论知,一个n阶连续系统可以被描 述成由n个积分器组成的模拟结构图。因此 利用数字计算机来进行连续系统的仿真, 从本质上讲就是要在数字计算机上构造出n 个数字积分器,也就是让数字计算机进行n 次数值积分运算。可见,连续系统数字仿 真中的最基本的算法是数值积分算法。
┇
x1
k=n-1,
x
(t2 ,x2)
(t1 ,x1)
xn≈xn-1+f(tn-1,xn-1)h 这样式(3-1)的解x(t) 就求出来了。欧拉法的计 算虽然比较简单,但精度 较低。图3-1为欧拉法的 几何解释。
x0
t
t0 t1 t2 图3-1 欧拉法的几何解释
7
3.1.2 梯形法
由上可知欧拉公式中的积分是用矩形面积
第3章 连续系统的数字仿真
本章内容
(1) 熟悉在数字计算机仿真技术中常用的几种数值积分法 ,
特别是四阶龙格-库塔法; (2) 典型环节及其系数矩阵的确定; (3) 各连接矩阵的确定; (4) 利用MATLAB在四阶龙格-库塔法的基础上,对以状 态
空间表达式和方框图描述的连续系统进行仿真; (5) 了解以增广矩阵法为基础的连续系统的快速仿真方法1 。
j 1
(3-8)
c1 0, m 1,2,, v
即:
k1 f (tk , xk )
k2 f (tk c2h, xk b21k1h)
k3 f (tk c3h, xk b31k1h b32k2h) 将式(3-7)展 开成h的幂级数并与微分方程式 (3-1)精确解式(3-6)逐项比较,便可求得式