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