机电系统的计算机辅助分析.docx
《机电系统的计算机辅助分析.docx》由会员分享,可在线阅读,更多相关《机电系统的计算机辅助分析.docx(66页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、3.机电系统的计算机辅助分析与设计3.1机电系统的数学模型及其转换方法机电系统计算机仿真与辅助设计是建立在机电系统数学模型基础之上的。对于各类机电系统,利用仿真手段对其进行分析与设计,首先就需要建立相应的系统数学模型,此后,就需要研究如何将系统的数学模型转变为适合于计算机进行分析计算的仿真模型,即数值算法模型。在此基础上,即可通过对数学模型的求解分析,实现对系统动静态特性的分析与设计。显然,进行上述工作的重要基础就是系统的数学模型。因此本章首先介绍系统的几种典型数学描述,然后介绍各种数学模型之间的相互转换,以及系统环节不同形式的相互连接的MATLAB实现。3.1.1连续系统的数学描述连续系统的
2、数学模型通常可以用微分方程、传递函数、状态空间表达式三种形式对系统加以描述。下面将简单对这几类数学模型加以回顾,同时给出MATLAB对它们的表示方法。1 .系统的微分方程形式模型一个系统的动态特性通常可用高阶微分方程加以描述,因此描述一个系统最常用的数学模型就是微分方程的形式。假设连续系统为单入单出(简称SISO)系统,其输入与输出分别用u (t)、y (t)加以表示,则描述系统的高阶微分方程为:dny dn-ly dn-2ydy(3-1)4t +%v +凡1h % y dtn 1 dtn-X 2 dtn-27 dtdnxu dn2uC.-+ C27+ C U1 dtn-x 2 dt-2其初始
3、条件为:y(t0)=y0,夕(。)=夕0,“()=“(),如果引入微分算子p =贝式可以写作:p”y+%p”y HF an_xpy + any = cxpnxu +qp,4F cnu”一i即 Xa-jPJy = YCn-iP,Uj=0i=0对上式稍加整理并令o =1,可以得到Z*p)=(3-2)7=02 .系统传递函数形式模型1)传递函数模型对(3-1)式等号两边取拉氏变换,并假设y与u的各阶导数的初值均为零,则存在sy(s)+6sTy(s)+*sY(s)+ a“y(s)口3)= clsn-lU(s)+ c2sn2U(s)+-+ cnU(s)式中:Y(s)输出y(f)的拉氏变换;U(s)输入的
4、拉氏变换。从而(3-1)式所描述的系统的传递函数为G(s)=,(s)= js1+QS”2+.+ c“_S + c“(34)U(s) sn +a15n-1+a2sn2 H-an_ts + an对照(3-2)式与(3-4)式可以清楚地看出,当描述系统的微分方程的初始值为零时,用算子p所表示的式子与传递函数G (S)在形式上完全相同。传递函数是经典控制论描述系统的数学模型之一,它表达了系统输入量和输出量之间的关系。它只与系统本身的结构、特性和参数有关,而与输入量的变化无关,传递函数是研究线性系统动态响应和性能的重要手段与方法。在MATLAB语言中,可以利用分别定义的传递函数分子、分母多项式系数向量方
5、便地对其加以描述。例如对于(3-4)式,系统可以别定义传递函数的分子、分母多项式系数向量为num= ci c2-Cn-i cnden=1 a上%-i %这里分子、分母多项式系数向量中的系数均按s的降幕排列,由于传递函数G的最高次项系数为I.所以分母多项式系数向量de”中第一个元素为1。在MATLAB 5.x中,可以用tf来建立传递函数的系统模型,其基本格式为sys=tf(num,den)例3-1已知系统传递函数为G(s)=s4+3.J+a2s3+4S +6解:可以利用MATLAB将上述系统模型表示出来,并将其建立在工作空间(Workspace)中,写成num=29;den=l 2346;pri
6、ntsys (num, den,*s*)执行上述语句后得到num/den=2s+9sA4+3sA3+2sA2+4s+6对于MATLAB 5. x可以利用tf直接建立系统模型,即num=29;den=13246J; model=tf(num,den)执行上述语句后得Transfer function:2s+9sA4+3sA3+2sA2+4s+6由上例可以看出,对于MATLAB的不同版本建立的传递函数有所不同,但结果是一致的。下面考虑一种较复杂的传递函数形式。例32已知系统传递函数为-(3s + iXs +2)2(5s3+3s +8)解:可以利用MATLAB建立其相应的传递函数系统模型。num=7
7、*23;den= conv (conv (conv (1,0,0,3,1),conv (12,1,2),5,0,3,8); model=tf (num,den)运行结果Transfer function:14s+2115s A 8+65s A 7+89s A 6+83s A 5+152s A4+140s A 3+32s A 2在这里使用了 conv函数,它是MATLAB中的标准函数,用来求取两个向量的卷积分。因此当两个多项式相乘,需两个多项式系数向量相乘时,就可利用conv函数来进行。conv函数允许多重嵌套,由上例已清楚地看到这一点。对于连续时间系统可以用传递函数对其加以表示,而对于离散时间
8、系统则应采用脉冲传递函数对其进行描述。脉冲传递函数一般可表示为关于z的降基多项式分式形式,即G(z)= JZ1+C吁遥 mT + CZ + Co u(z) anzn +an_lzn-l +-+ a,z + a0在MATLAB 5.0中,对于离散系统同样可以建立相应的系统模型,其基本格式为 num=cm, cm.i,Ci, c0: den= an, a.i,a” a。; sys= tf (num, den. T)其中T为系统采样周期。2)系统的零极点形式模型系统的传递函数还可表示成另一种形式,即零极点形式。这种形式的系统传递函数比标准形式传递函数更加直观,可清楚地看到系统零极点分布情况。系统的零
9、极点模型一般可表示为G(s)=K(s-ZiXs-Z2Ys-Zm)(s-Pls-p2)-s-pn)(3-5)其中,z,G = L2,加)和Pj。=1,2,)分别为系统的零点和极点,Zi、Pj既可以是实数也可是复数,K为系统增益。MATLAB可以使用zpk函数建立零极点形式的系统模型.其基本格式为sys=zpk (z.p,k)其中,z、p、k分分别为系统的零极点和增益。3.系统的状态空间表达式状态方程是研究系统的最为有效的系统数学描述,不论是单入单出系统还是多入多出(简称MIMO)系统,若可用一组一阶微分方程对其加以表示,在引进相应的状态变量后,则可将这一组一阶微分方程写成紧凑形式,即状态空间表达
10、式。通常一个线性定常系统可以表示为心 AX +8U36)Y = CX +DU其中上述第一式由n个一阶微分方程构成,称为系统的状态方程表达式,下式由/个线性代数程组构成,称为系统的输出方程。X为n维状态向量;U为机维输入向量;y为/维输出向量;A为X维的系统状态阵,由系统的参数所决定;B为n Xm维的系统输入阵;C为IX”维输出阵;D为IXm维直接传输阵。应用MATLAB可以方便地表示系统的状态方程模型,只要按照矩阵输入方式建立相应的系统系数阵即可,考虑SISO系统,容易在MATLAB工作空间中建立系统的系数阵,形式为A=l 1。12。;”21。22。2; an an2*annb2; bn;C=
11、cl c2由;D=d;当然,也完全可以在MATLAB工作空间中建立MIMO系统的系数阵。根据系统状态方程的系数阵,可在MATLAB中建立相应的系统模型,其基本格式为sys=ss (A, B. C. D)上述是MATLAB 5.x中的格式,在MATLAB 4.2中其格式为printsys (A, B, C, D)对于离散系统,其状态空间表达式可表示成X (%十1)=AX (k)+BU (k)Y (k)= CX (it)+ DU (k)在MATLAB 5.x中同样也可建立相应的系统模型,其格式为sys=ss (A, B, C. D, T)其中,T为系统采样周期。在MATLAB 4.2中也可建立类似
12、的系统模型。3. 1.2系统模型的相互转换在前一节中已经介绍了描述一个系统的数学模型主要有三种形式;微分方程模型、传递函数模型(包括零极点形式模型)、状态空间模型等。显然在这些不同形式的系统数学模型中存在着内在的联系,虽然它们外在形式不同,但它们的实质内容是等价的。人们在进行系统分析研究时,往往根据不同的要求选择不同形式的系统数学模型,因此研究不同形式的数学模型之间的转换具有重要意义。1 .机电系统模型向传递函数或零极点增益形式的转换1).状态空间方程向传递函数形式的转换系统的状态空间方程可表示为X = AX + BUY = CX + DU据此,可以得到等效的系统传递函数模型。G(s)=C(s
13、/-A)B+Ddenys)显然在进行这种变换过程中,求取(sI-A)阵的逆比较困难,然而MATLAB有一系列的函数可以完成各种变换,其中就包括进行这种变换的ss2tf函数,其基本格式为num, den=ss2tf (A. B, C, D, iu)利用该函数即可实现将状态空间方程转换为传递函数的形式,iu用于指定变换所使用的输入量。为了获得传递函数的系统形式,还可以采用下述方式进行,即Gl=ss (A, B, C, D);G2=tf (Gl)可以证明,由给定的状态方程模型转换为传递函数形式其结果是惟一的。例3-3已知连续系统工(A, B, C,的系数矩阵是2001rfA=041, B=0, C=
14、11 o,)=0004j1求取该系统相应的传递函数模型。解:应用MATLAB的ss2tf函数可以方便实现这种转换。A=200;041;004;B=l 01):C=l 10;D=0;num den=ss2tf (A, B, C D.1)G=tf (num. den)运行上述语句即可实现要求的转换,利用G=tf(num, den)将转换后的传递函数分子,分母多项式系数向量构造成传递函数系数模型,下面给出了运算结果;num=01.0000-7.000014.0000den=1-1032-32Transfer function:s A2-7s+14sA3-10s A2+32s-32对于多输入系统,应用
15、ss2tf函数可以进行指定要求的模型转换。例3-4已知连续系统软(A, B, C, D)的系数矩阵是-2.25-5-1.25-0.546A=2.25-4.25-1.25-0.250.25-0.5-1.25-1,B=2242,C=0202, D=01.25-1.75-0.25-0.7502求取系统相应的传递函数模型。解:该系统为一双输入系统,利用ss2tf函数可以进行指定输入的状态方程向传递函数的转换。ss2tf (A, B, C, D, T)函数中的T,指定了要转换的系统所对应的输入信号,下面给出了相应于第二输入信号的转换方法。A=2.25-5-1.25-0.5;2.25-4.25-1.25-
16、0.25;0.25-0.5-1.25-1;1.25-1.75-0.25-0.75;B=46;24;22;02;C=l0202j;D=00;T=2;num2, den2=ss2tf(A,B,C,D,T)G=tf (num2, den2)运行结果num2=012.000032.000037.00017.0000den2=1.00004.00006.25005.25002.2500Transfer function:12 s A3+32sA2+37s+17sA4+4sA3+6.25 s A2+5.25 s +2.25当T=1时,将指定第输入信号所对应的系统转换,下面给出了相应的转换结里 y| Onu
17、ml =04.000014.000022.000015.0000denl=1.00004.00006.25005.25002.2500Transfer function:4s A3+14s A2+22s+15sA4+4s A3+6.25 sA2+5.25 s +2.252) .模型向零极点形式的转换系统的零极点模型实际上是传递函数模型的另一种形式,也是对系统进行分析的一类常用模型,因此在MATLAB中,也提供了实现将各类系统模型转换为零极点形式模型的函数。其基本格式为z, p. k=ss2zp (A, B, D, IU)z, p, k=tf2zp (num, den)Gzp=zpk (sys)
18、上述第一式是将以状态方程形式给出的模型根据指定研究的输入,转换为零极点模型形式;第二式是将传递函数形式给出的模型转换为零极点形式;第三式十分简洁,用该函数可将非零极点形式的模型转换为零极点系统模型。例3-5已知系统状态方程的系数阵为A=0, B=0 C=1.52, D=0试将其转换成零极点模型形式。解:利用转换函数z , P, k=ss2zp (A, B, C. D)即可实现所希望的转换,运行结果为L-1 1.3333P=kJ1.5000也可利用Gzp=zpk (sys)函数进行转换,即 sys=ss (A, B C, D) Gzp=zpk (sys)运行结果Continuous-time s
19、ystem.Zero/pole/gain;2(s+0.5)(s 十2)(s+1)显然,两种方法所得到的结果是相关的。2 .系统模型向状态方程形式的转换前面介绍了系统模型转换为传递函数的方法,同样也可以利用MATLAB函数实现所需要的系统模型向状态方程的转换。其基本格式为A, B, C, D=tf2ss (num, den)A, B, C, D=zp2ss (Z, p, k) syss=ss (sys)例36已知系统传递函数为G(.)=-+40.4,V2+391.V+150应用MATLAB的模型转换函数将其转换为状态方程形式的模型。解:应用tf2ss转换函数很容易实现所要求的转换。但应注意,山于
20、其状态变量选取的不同,转换结果是不惟一的。下面给出了应用tf2ss函数的转换程序与结果。num=18,36;den=140.4391150;A, B, C, D=tf2ss (num, den)运行结果为A=-40.4000-391.0000-150.00001.00000001.00000B =01836D=利用A, B, C, D=zp2ss(z,p,k)可以将零极点形式给出的模型转换为状态方程。对于sys=ss (sys),可以将任意ED系统模型转换为状态方程。例37考虑例36,将程序进行修改。解:修改程序如下。num= L 18,36;den= L140.4391150;G=tf (n
21、um den)Sys= ss (G)运行结果A=-40.4000-391.0000-150.00001.000000001.00000B=C=01836D=3 .1.3系统状态方程的变换与实现1 .状态方程的相似变换在前一节已经述及将系统的状态方程转换为传递函数时,其结果是惟一的;然而由于状态变量的选取不同,将系统的传递函数转换为状态方程则不能保证结果的惟一。换言之,对于一个系统的传递函数,可以存在着众多的状态方程实现。这样,对于同一个系统有着不同的状态方程的描述,因此也就存在着它们之间的相互变换, MATLAB中的ss2ss函数可以实现对系统状态方程的相似变换。其基本格式为GT=ss2ss
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机电 系统 计算机辅助 分析
限制150内