《1第3章连续系统的数字仿真》由会员分享,可在线阅读,更多相关《1第3章连续系统的数字仿真(59页珍藏版)》请在金锄头文库上搜索。
1、内蒙古科技大学第三章第三章 连续系统的数字仿真连续系统的数字仿真本章内容(1)熟悉在数字计算机仿真技术中常用的几种数值积分法,特别是四阶龙格-库塔法;(2)典型环节及其系数矩阵的确定;(3)各连接矩阵的确定;(4)利用MATLAB在四阶龙格-库塔法的基础上,对以状态空间表达式和方框图描述的连续系统进行仿真;(5)了解以增广矩阵法为基础的连续系统的快速仿真方法。1内蒙古科技大学l 用数字计算机来仿真或模拟一个连续控制系统的目的就是求解系统的数学模型。由控制理论知,一个n阶连续系统可以被描述成由n个积分器组成的模拟结构图。因此利用数字计算机来进行连续系统的仿真,从本质上讲就是要在数字计算机上构造出
2、n个数字积分器,也就是让数字计算机进行n次数值积分运算。可见,连续系统数字仿真中的最基本的算法是数值积分算法。2内蒙古科技大学3.1 数值积分法l连续系统通常把数学模型化为状态空间表达式,为了对n阶连续系统在数字计算机上仿真及求解,就要采用数值积分法来求解系统数学模型中的n个一阶微分方程。l设n阶连续系统由以下n个一阶微分方程组成l(3-1)l所谓数值积分法,就是要逐个求出区间a ,b内若干个离散点a t0 t1t0时,x(t)是未知的,因此式(3-2)右端的积分是求不出的。为了解决这个问题,把积分间隔取得足够小,使得在tk与tk+1之间的f(t,x(t)可以近似看作常数f(tk,x(tk),
3、这样便得到用矩形公式积分的近似公式l或简化为l l这就是欧拉公式。5内蒙古科技大学 以x(t0)=x0作为初始值,应用欧拉公式,就可以一步步求出每一时刻tk的xk值,l即 k =0,x1x0+f(t0,x0)hl k=1, x2x1+f(t1,x1)hl l k=n-1, l xnxn-1+f(tn-1,xn-1)hl 这样式(3-1)的解x(t)就求出来了。欧拉法的计算虽然比较简单,但精度较低。图3-1为欧拉法的几何解释。6内蒙古科技大学3.1.2 3.1.2 3.1.2 3.1.2 梯形法梯形法梯形法梯形法 由上可知欧拉公式中的积分是用矩形面积由上可知欧拉公式中的积分是用矩形面积f f(
4、(t tk k, ,x xk k) )h h 来近似的。来近似的。l由图3-2知,用矩形面积tkabtk+1代替积分,其误差就是图中阴影部分。为了提高精度现用梯形面积tkactk+1来代替积分,即l于是可得梯形法的计算公式为 7内蒙古科技大学l 由于上式右边包含未知量xk+1,所以每一步都必须通过迭代求解,每一步迭代的初值xk+1(0)通常采用欧拉公式来计算,因此梯形法每一步迭代公式为l l 3-3)l式中 迭代次数R=0,1,2,8内蒙古科技大学l3.1.3 3.1.3 预估校正法预估校正法l虽然梯形法比欧拉法精确,但是由于每一步都要进行多次叠代,计算量大,为了简化计算,有时只对式(3-3)
5、进行一次叠代就可以了,因此可得l通常称这类方法为预估校正方法。它首先根据欧拉公式计算出xk+1的预估值xk+1(0),然后再对它进行校正,以得到更准确的近似值xk+1(1)。9内蒙古科技大学l3.1.4 3.1.4 龙格库塔法龙格库塔法l 根据泰勒级数将式(3-1)在tk+1=tk+h时刻的解xk+1=x(tk+h) 在tk附近展开,有l l 3-5)l 可以看出,提高截断误差的阶次,便可提高其精度,但是由于计算各阶导数相当麻烦,所以直接采用泰勒级数公式是不适用的,为了解决提高精度问题,龙格和库塔两人先后提出了间接使用泰勒级数公式的方法,即用函数值f (t,x)的线性组合来代替f (t,x)的
6、导数,然后按泰勒公式确定其中的系数, 这样既能避免计算f (t,x)的导数,又可以提高数值计算精度,其方法如下。10内蒙古科技大学l因l故式(3-5)可写成l (3-6) l为了避免计算式(3-6)中的各阶导数项,可令xk+1由以下多项式表示。l (3-7)11内蒙古科技大学l式中 am为待定因子,v为使用f函数值的个数,km满足下列方程l (3-8)l即:l将式(3-7)展开成h的幂级数并与微分方程式(3-1)精确解式(3-6)逐项比较,便可求得式(3-7)和式(3-8)中的系数am ,bmj和cm等。12内蒙古科技大学l现以v=2为例,来说明这些参数的确定方法。设v=2,则有l(3-9)l
7、 l将k1和k2在同一点(tk ,xk)上用二元函数展开为13内蒙古科技大学l将k1和k2代入式(3-9)整理后可得l l(3-10)l将上式与式(3-6)逐项进行比较,可得以下关系式l若取 l则14内蒙古科技大学l于是可得l (3-11)l 由于式(3-11)只取到泰勒级数展开式的h2项,故称这种方法为两阶龙格库塔法,其截断误差为0(h3)。15内蒙古科技大学l 同理当v=4时,仿照上述方法可得如下四阶龙格-库塔公式16内蒙古科技大学l 通过上述龙格-库塔法的介绍,可以把以上介绍的几种数值积分法统一起来,它们都是基于在初值附近展开成泰勒级数的原理,所不同的是取泰勒级数多少项。欧拉公式仅取到h
8、项,梯形法与二阶龙格库塔法相同均取到h2项,四阶龙格库塔法取到h4项。从理论上讲,取得的项数愈多,计算精度愈高,但计算量愈大,愈复杂,计算误差也将增加,因此要适当的选择。目前在数字仿真中,最常用的是四阶龙格库塔法,其截断误差为(h5), 已能满足仿真精度的要求。17内蒙古科技大学3.2 连续系统的数字仿真程序l若系统的状态空间表达式为l (3-14)l (3-15)l其中 A:nn; b: n1; C:1n18内蒙古科技大学l 假设在仿真中,数值积分法采用四阶龙格库塔方法,因对于n阶系统,其状态方程式(3-14)可写成以下n个一阶微分方程l l (3-16)19内蒙古科技大学 故根据式(3-1
9、2)可得求解以上一阶微分方程组的四阶龙格库塔公式如下式中 xik为t=tk时刻的xi值,xik+1为t=tk+h时刻的xi值。20内蒙古科技大学l令21内蒙古科技大学l则式(3-17)可写成如下矩阵的形式l根据式(3-15)可得t=tk+1时刻的输出22内蒙古科技大学23内蒙古科技大学l例例3-13-1 假设单变量系统如下图所示。l试根据四阶龙格库塔法,求输出量y的动态响应。24内蒙古科技大学l解解 仿真程序如下lExample3.1l取仿真时间:Tf=5; 计算步长:h=0.02 l在MATLAB环境下执行以上程序可得如图3-6所示仿真曲线。25内蒙古科技大学图3-626内蒙古科技大学3.3
10、 面向系统结构图的仿真l 这种方法与上节介绍的方法相比,有以下几个主要优点:l)便于研究各环节参数对系统的影响;l)可以得到每个环节的动态响应;l)可对多变量系统进行仿真。l下面具体介绍面向结构图的仿真方法。27内蒙古科技大学l3.3.1 3.3.1 典型环节的确定典型环节的确定l 一个控制系统可能由各种各样的环节所组成,但比较常见环节有:(1)比例环节: (2)积分环节: (3)比例积分环节:(4)惯性环节:(5)超前滞后环节:(6)二阶振荡环节: 28内蒙古科技大学l 为了编制比较简单而且通用的仿真程序必须恰当选择仿真环节。在这里选用图3-7所示的典型环节作为仿真环节,即l式中 u为典型环
11、节的输入,x为典型环节的输出。l 利用这个典型环节,只要改变a ,b ,c 和d 参数的值,便可分别表示以上所述的各一阶环节,至于二阶振荡环节,则可用l两个一阶环节等效连l接得到,如图3-8所示。29内蒙古科技大学l3.3.2 3.3.2 连接矩阵连接矩阵l一个控制系统用典型环节来描述时,必须用连接矩阵把各个典型环节连接起来。所谓连接矩阵,就是用矩阵的形式表示各个典型环节之间的关系。下面介绍连接矩阵的建立方法, 假设多输入多输出系统的结构图如图3-9所示。30内蒙古科技大学l 图中带数字的方框表示典型环节,,表示比例系数。31内蒙古科技大学l 由图可得各环节的输入与各环节的输出间的关系以及系统
12、的输出与环节的输出间关系分别为l和 32内蒙古科技大学l写成矩阵形式l和33内蒙古科技大学l或写成l (3-20)l l定义式中的W ,W0 和 Wc阵为连接矩阵,W反映了各典型环节输入输出间的连接关系,W0反映了系统的参考输入与各环节输入间的连接关系, Wc反映了系统的输出与各环节输出间的关系。34内蒙古科技大学l 一般也将系统中各典型环节的系数写成如下矩阵的形式(假设系统由n个典型环节组成)l (3-21)35内蒙古科技大学l3.3.3 3.3.3 确定系统的状态方程确定系统的状态方程l 典型环节和连接矩阵确定后,便可求得系统的状态空间表达式,推导过程如下。l 假设系统由n个典型环节组成,
13、则根据典型环节的传递函数有l l (i=1,2,)l即l 36内蒙古科技大学写成矩阵形 (3-22)式中:37内蒙古科技大学l 将式(3-20)中的上式进行拉氏变换后代入式(3-22)中可得l对上式两边取拉氏反变换得l(3-23)l 若参考输入向量r=r1 r2 rmT中的r1,r2,rm均为阶跃函数,则上式可简化为l (3-24)38内蒙古科技大学l令l则式(3-24)可写成l若H的逆存在,则有ll再令l可得 (3-25)l 上式即为闭环系统的状态方程,它是一个典型的状态方程,利用前面介绍的求解方法可方便地求出各典型环节的输出响应,最后根据式(3-20)中的第二式便可求出系统的输出响应。39
14、内蒙古科技大学3.3.4 3.3.4 面向结构图的数字仿真程序面向结构图的数字仿真程序l 面向结构图的数字仿真程序框图如图 -10所示,其程序清单通过下例给出。40内蒙古科技大学l例例3-23-2 假设某一系统由四个典型环节组成,如图3-11所示。求输出量y的动态响应。41内蒙古科技大学l解解 由图可得各环节的输入与输出以及系统的输出与环节的输出间关系为42内蒙古科技大学l根据以上两式和各典型环节的系数值,可得如下连接矩阵和系数矩阵43内蒙古科技大学l取仿真时间: Tf=10;计算步长:h=0.05l 在MATLAB环境下执行以上程序可得如图3-12所示仿真曲线。l仿真程序如下lExample
15、3.244内蒙古科技大学图3-1245内蒙古科技大学3.4 连续系统的快速仿真l前面介绍过的两种连续系统的数字仿真方法,当系统比较复杂并要求满足较高的计算精度时,计算工作量较大,计算速度较慢,有时不能满足实时仿真的要求,为了解决这个问题,下面介绍一种连续系统的快速数字仿真方法-增广矩阵法。46内蒙古科技大学l3.4.1 3.4.1 增广矩阵法的基本原理增广矩阵法的基本原理l设连续系统的状态方程为l (3-26)l则它的解为l将eAt展开成泰勒级数,即l则有47内蒙古科技大学l 可以证明,如果取eAt的泰勒级数的前五项,则式(3-27)的计算精度与四阶龙格库塔法相同,设计算步长为T, 则式(3-
16、27)可写成l上式括号中只是矩阵的相乘及加法,仿真计算十分简单,因此可大大加快数字仿真的计算速度,如果将矩阵的相乘在数字仿真前算好,则数字仿真的速度将更快。48内蒙古科技大学l 如果要求解的状态方程为非齐次方程l 为了能对其应用上述的快速计算方法,就要将控制量Bu(t)项增广到状态变量中去,将其转换为齐次方程,这就是增广矩阵法的基本原理。当u(t)是一些典型函数时,增广矩阵是很容易实现的。下面介绍三种典型输入的增广矩阵。49内蒙古科技大学l3.4.2 3.4.2 三种典型输入函数的增广矩阵三种典型输入函数的增广矩阵l假设n阶连续系统的状态空间表达式为 l(3-29)l1. 当输入信号为阶跃函数
17、时,即u(t)=r0l定义第n+1个状态变量为l xn+1(t)=u(t)=r0l则 (3-30)l 50内蒙古科技大学l将式(3-30)增广到式(3-29)中可得增广后的状态空间表达式l l l增广后的系统矩阵 称为增广矩阵。51内蒙古科技大学2.当输入信号为斜坡输入时,即定义则52内蒙古科技大学因此增广后的状态空间表达式为53内蒙古科技大学3.当输入信号为抛物线时,即定义则54内蒙古科技大学因此增广后的状态空间表达式为55内蒙古科技大学lr=10;lP=0.110.51;0110;2120;101100;lW=000-1;1000;0100;0010;lW0=1;0;0;0;lwc=000
18、1;ltf=input(仿真时间tf=);lh=input(计算步长h=);lA1=diag(P(:,1);lB1=diag(P(:,2);lC1=diag(P(:,3);lD1=diag(P(:,4);lH=B1-D1*W;lH=inv(H);lQ=C1*W-A1;lA=H*Q;lB=H*C1*W0;56内蒙古科技大学lx=zeros(length(A),1);ly=0;lt=0;lfori=1:tf/hlk1=A*x+B*r;lk2=A*(x+h*k1/2)+B*r;lk3=A*(x+h*k2/2)+B*r;lk4=A*(x+h*k3)+B*r;lx=x+h*(k1+2*k2+2*k3+k
19、4)/6;ly=y;wc*x;t=t;t(i)+h;lendlplot(t,y)57内蒙古科技大学lr=20.4;lnum0=1.875e61.562e6;lden0=154204.2213.863.5;lnumh=0.002;denh=1;lnum,den=feedback(num0,den0,numh,denh);lA,b,C,D=tf2ss(num,den);lTf=input(仿真时间Tf=);lh=input(计算步长h=);lx=zeros(length(A),1);y=0;t=0;58内蒙古科技大学lfori=1:Tf/hlk1=A*x+b*r;lk2=A*(x+h*k1/2)+b*r;lk3=A*(x+h*k2/2)+b*r;lk4=A*(x+h*k3)+b*r;lx=x+h*(k1+2*k2+2*k3+k4)/6;ly=y;C*x;t=t;t(i)+h;lendlplot(t,y)59