机电系统的计算机辅助分析.pdf
《机电系统的计算机辅助分析.pdf》由会员分享,可在线阅读,更多相关《机电系统的计算机辅助分析.pdf(67页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、3.机电系统的计算机辅助分析与设计3.1 机电系统的数学模型及其转换方法机电系统计算机仿真与辅助设计是建立在机电系统数学模型基础之上的。对于各类机电系统,利用仿真手段对其进行分析与设计,首先就需要建立相应的系统数学模型,此后,就需要研究如何将系统的数学模型转变为适合于计算机进行分析计算的仿真模型,即数值算法模型。在此基础上,即可通过对数学模型的求解分析,实现对系统动静态特性的分析与设计。显然,进行上述工作的重要基础就是系统的数学模型。因此本章首先介绍系统的几种典型数学描述,然后介绍各种数学模型之间的相互转换,以及系统环节不同形式的相互连接的MATLAB实现。3.1.1 连续系统的数学描述连续系
2、统的数学模型通常可以用微分方程、传递函数、状态空间表达式三种形式对系统加以描述。下面将简单对这几类数学模型加以回顾,同时给出MATLAB对它们的表示方法。1.系统的微分方程形式模型一个系统的动态特性通常可用高阶微分方程加以描述,因此描述一个系统最常用的数学模型就是微分方程的形式。假设连续系统为单入单出(简称SISO)系统,其输入与输出分别用u(t)、y(t)加以表示,则描述系统的高阶微分方程为:dy dTy d2y dy-F-:F%-z-+Q”1-F 6Z,.Vdtn 1 T 2 dC-2 I dtiM-1 jn-2a u a u-c1.-+c2-r+cudtT 2 dt-2(3-1)其初始条
3、件为:)0)=打,弛)=%,如果引入微分算子p=,则(3-1)式可以写作:dtpy+aiP“Ty+a“_iPy+%y=CiP%,+“一1即 LSan-jPiy=lLCn-iPUJ=O i=0对匕式稍加整理并令即=1,可以得到(3-2)02.系统传递函数形式模型1)传递函数模型对(3-1)式等号两边取拉氏变换,并假设y 与 u 的各阶导数的初值均为零,则存在sy(s)+%5Ty(s)+%s y(s)+a“y(s)(3 3)=C15,-1t/(5)+C25H _2t/(5)+-,+式中:y(s)输出y(f)的拉氏变换:u(s)输入w(f)的拉氏变换。从 而(3-1)式所描述的系统的传递函数为G(S
4、)=4 4=CJ T:C2S-2 TCI+G 4)U(s)/Sn+Q i S 1+a2Sn 2+-FQ S+QL ni n对 照(3-2)式 与(3-4)式可以清楚地看出,当描述系统的微分方程的初始值为零时,用算子p 所表示的式子与传递函数G(S)在形式上完全相同。传递函数是经典控制论描述系统的数学模型之一,它表达了系统输入量和输出量之间的关系。它只与系统本身的结构、特性和参数有关,而与输入量的变化无关,传递函数是研究线性系统动态响应和性能的重要手段与方法。在 MATLAB语言中,可以利用分别定义的传递函数分子、分母多项式系数向量方便地对其加以描述。例如 对 于(3-4)式,系统可以别定义传递
5、函数的分子、分母多项式系数向量为num=c i c2-cn.1 cnden=1 a 敢斯4 这里分子、分母多项式系数向量中的系数均按s的降暴排列,由于传递函数G(s)的最高次项系数为1,所以分母多项式系数向量加中第一个元素为1c在MATLAB5.x中,可以用t f来建立传递函数的系统模型,其基本格式为s y s=t f(n u m,d e n)例3-1已知系统传递函数为_2s+9_s+3s 3+。2s 3+4s+6解:可 以 利 用M A TL A B将上述系统模型表示出来,并将其建立在工作空间(W o r k s p ac e)中,写成n u m=2 9 ;d e n=l 2 3 4 6 ;
6、p r i n t s y s (n u m,d e n,s)执行上述语句后得到n u m/d e n=2s+9s八4+3 s八3+2 s人2+4s+6对 于M A TL A B 5.x可以利用t f直接建立系统模型,即n u m=2 9 ;d e n=1 3 2 4 6 J;m o d e l=t f(n u m,d e n)执行上述语句后得T r an s fe r fu n c t i o n:2s+9sA4+3 sA3+2 sA2+4s+6由上例可以看,出,对于M A TL A B的不同版本建立的传递函数有所不同,但结果是一致的。下面考虑一种较复杂的传递函数形式。例3-2 已知系统传递
7、函数为G(s)=_ 7(2$+,S2(3S+1XS+2)2(5$3+3S+8)解:可以利用M A TL A B建立其相应的传递函数系统模型。n u m=7*2 3;d e n=c o n v (c o n v (c o n v (1,0,0 ,3,1 ),c o n v (1 2 ,1,2),5,0,3,8 );m o d e l=t f(n u m,d e n)运行结果T r an s fe r fu n c t i o n:14 s+2115 s A 8 +6 5 s A 7 +8 9 s A 6 +8 3s A 5 +15 2s 八 4 +14 0s A 3+32s A 2在这里使用了
8、c o n v 函数,它 是 M A T L A B 中的标准函数,用来求取两个向量的卷积分。因此当两个多项式相乘,需两个多项式系数向量相乘时,就可利用c o n v 函数来进行。c o n v 函数允许多重嵌套,由上例已清楚地看到这一点。对于连续时间系统可以用传递函数对其加以表示,而对于离散时间系统则应采用脉冲传递函数对其进行描述。脉冲传递函数一般可表示为关于z的降塞多项式分式形式,即G(7)=Z fc)=+q“T +C Z +C、ou(z)anz +an_lzn1+-+aiz+a0在 M A T L A B 5.0 中,对于离散系统同样可以建立相应的系统模型,其基本格式为n u m=c,c
9、m.x,,c,c(J;d e n=a,an.,,a,a0:s y s=t f(n u m,d e n,T)其中T为系统采样周期。2)系统的零极点形式模型系统的传递函数还可表示成另一种形式,即零极点形式。这种形式的系统传递函数比标准形式传递函数更加直观,可清楚地看到系统零极点分布情况。系统的零极点模型一般可表示为K(s-Z】X s-Z 2)一,)(3-5)其中,号(,=1,2/-,加)和,0 =1,2,)分别为系统的零点和极点,Z,、P,既可以是实数也可是复数,K 为系统增益。M A T L A B 可以使用z p k 函数建立零极点形式的系统模型.其基本格式为s y s=z p k (z ,p
10、 ,k)其中,z 、p 、k 分分别为系统的零极点和增益。3.系统的状态空间表达式状态方程是研究系统的最为有效的系统数学描述,不论是单入单出系统还是多入多出(简称M 1M 0)系统,若可用一组一阶微分方程对其加以表示,在引进相应的状态变量后,则可将这一组一阶微分方程写成紧凑形式,即状态空间表达式。通常一个线性定常系统可以表示为X=AX+BU(3-6)Y CX+DU其中上述第一式由n 个一阶微分方程构成,称为系统的状态方程表达式,下 式 由/个线性代数程组构成,称为系统的输出方程。X 为 n 维状态向量;。为 m 维输入向量;V 为/维输出向量;4 为 X”维的系统状态阵,由系统的参数所决定;B
11、为nX m 维的系统输入阵;C 为/X”维输出阵;D 为 IX m 维直接传输阵。应 用 MATLAB可以方便地表示系统的状态方程模型,只要按照矩阵输入方式建立相应的系统系数阵即可,考虑SISO系统,容易在MATLAB工作空间中建立系统的系数阵,形式为A=al 1 a2an;a21a22a2;awl an2annB=tl;b2;bn;C=cl c2D=d;当然,也完全可以在MATLAB工作空间中建立MIMO系统的系数阵。根据系统状态方程的系数阵,可在MATLAB中建立相应的系统模型,其基本格式为sys=ss(A,B.C,D)上 述 是 MATLAB 5.x中的格式,在 MATLAB 4.2中其
12、格式为printsys(A,B,C,D)对于离散系统,其状态空间表达式可表示成X(k 十 1)=AX(k)+BU(k)Y(k)=CX(4)+DU Ck)在 MATLAB 5.x中同样也可建立相应的系统模型,其格式为sys=ss(A,B,C,D,T)其中,T 为系统采样周期。在 MATLAB 4.2 中也可建立类似的系统模型。3.1.2 系统模型的相互转换在前一节中已经介绍了描述个系统的数学模型主要有三种形式:微分方程模型、传递函数模型(包括零极点形式模型)、状态空间模型等。显然在这些不同形式的系统数学模型中存在着内在的联系,虽然它们外在形式不同,但它们的实质内容是等价的。人们在进行系统分析研究
13、时,往往根据不同的要求选择不同形式的系统数学模型,因此研究不同形式的数学模型之间的转换具有重要意义。1.机电系统模型向传递函数或零极点增益形式的转换1).状态空间方程向传递函数形式的转换系统的状态空间方程可表示为X=AX+BUY=CX+DU据此,可以得到等效的系统传递函数模型。G(S)=C(“-WB+。dens)显然在进行这种变换过程中,求 取(s I -A)阵的逆比较困难,然 而MATLAB有一系列的函数可以完成各种变换,其中就包括进行这种变换的s s 2 t f函数,其基本格式为 n u m,d e n =s s 2 t f (A,B.C,D,i u)利用该函数即可实现将状态空间方程转换为
14、传递函数的形式,i u用于指定变换所使用的输入量。为了获得传递函数的系统形式,还可以采用下述方式进行,即G l=s s (A,B,C,D);G 2=t f (G l)可以证明,由给定的状态方程模型转换为传递函数形式其结果是惟一的。例3-3 已知连续系统(A,B,C,D)的系数矩阵是2 0 OjA-0 4 1,B=0 C-1 1 O,D 0_0 0 4_|求取该系统相应的传递函数模型。解:应用MATLAB的s s 2 t f函数可以方便实现这种转换。A=l 2 0 0;0 4 1;0 0 4 J;B=l 0 I :C=l 1 O J;D=0;n u m d e n j=s s 2 t f (A,
15、B,C,D,1)G=t f (n u m,d e n)运行上述语句即可实现要求的转换,利用G=t f(n u m,d e n)将转换后的传递函数分子,分母多项式系数向量构造成传递函数系数模型,下面给出了运算结果;n u m=0 1.0 0 0 0 -7.0 0 0 0 1 4.0 0 0 0d e n=1 -1 0 3 2 -3 2T r a n s f e r f u n c t i o n:s A2-7 s+1 4sA3 -1 0 s A2 +3 2 s-3 2对于多输入系统,应用s s 2 t f函数可以进行指定要求的模型转换。例3-4已知连续系统软(A,B,C,D)的系数矩阵是-2.2
16、5-5 -1.25-0.5-462.25-4.25-1.25-0.2524A=,C=0 2 0 2,D=00.25-0.5-1.25-1,B=221.25-1.75-0.25-0.7502_求取系统相应的传递函数模型。解:该系统为一双输入系统,利用s s 2 t f函数可以进行指定输入的状态方程向传递函数的转换。s s 2 t f (A,B,C,D,T)函数中的T,指定了要转换的系统所对应的输入信号,下面给出了相应于第二输入信号的转换方法。A=2.2 5 -5 -1.2 5 -0.5;2.2 5 -4.2 5 -1.2 5 -0.2 5;0.2 5 -0.5 -1.2 5 -1;1.2 5 -
17、1.7 5 -0.2 5 -0.7 5;B=4 6;2 4;2 2;0 2;C=l 0 2 0 2 j;D=0 0;T=2;n u m 2,d e n 2 =s s 2 t f(A,B,C,D,T)G=t f (n u m 2,d e n 2)运 行 结 果n u m 2=0 1 2.0 0 0 0 3 2.0 0 0 0 3 7.0 0 0 1 7.0 0 0 0d e n 2=1.0 0 0 0 4.0 0 0 0 6.2 5 0 0 5.2 5 0 0 2.2 5 0 0Tr an s f e r f u n ct i o n:1 2 s A3 +3 2 sA2 +3 7 s+1 7s
18、八 4 +4 s 八 3 +6.2 5 s A2 +5.2 5 s +2.2 5当 T=1时,将指定第输入信号所对应的系统转换,下面给出了相应的转换结果。numl=0 4.0000 14.0000 22.0000 15.0000denl=1.0000 4.0000 6.2500 5.2500 2.2500Transfer function:4s A3+14s A2+22s+15s 八 4+4 s 八 3+6.25 s A2+5.25 s+2.252).模型向零极点形式的转换系统的零极点模型实际上是传递函数模型的另一种形式,也是对系统进行分析的一类常用模型,因此在MATLAB中,也提供了实现将各
19、类系统模型转换为零极点形式模型的函数。其基本格式为z,p,k=ss2zp(A,B,D,IU)z,p,k=tf2zp(num,den)Gzp=zpk(sys)上述第一式是将以状态方程形式给出的模型根据指定研究的输入,转换为零极点模型形式;第二式是将传递函数形式给出的模型转换为零极点形式;第三式十分简洁,用该函数可将非零极点形式的模型转换为零极点系统模型。例 3-5 已知系统状态方程的系数阵为-3 -2 1 11 r 1A=,B=,C=1.5 2,D=0_ i o j L J试将其转换成零极点模型形式。解:利用转换函数z,P,k=ss2zp(A,B,C,D)即可实现所希望的转换,运行结果为z=-1
20、.3333P=-2-1k=1.5000也可利用Gzp=zpk(sys)函数进行转换,即sys=ss(A,B,C,D)Gzp=zpk(sys)运行结果Continuous-time system.Zero/pole/gain;2(s+0.5)(s 十 2)(s+l)显然,两种方法所得到的结果是相关的。2.系统模型向状态方程形式的转换前面介绍了系统模型转换为传递函数的方法,同样也可以利用MATLAB函数实现所需要的系统模型向状态方程的转换。其基本格式为A,B,C,D=tf2ss(num,den)A,B,C,D=zp2ss(Z,p,k)syss=ss(sys)例36 已知系统传递函数为G(s)=_
21、_)$3+40 4/+39i$+i5o应用MATLAB的模型转换函数将其转换为状态方程形式的模型。解:应用tf2ss转换函数很容易实现所要求的转换。但应注意,由于其状态变量选取的不同,转换结果是不惟一的。下面给出了应用tf2ss函数的转换程序与结果。num=18,36;den=El 40.4 391 150;A,B,C,D=tf2ss(num,den)运行结果为A=-40.4000-391.0000-150.00001.00000001.00000B=100c=0 18 36D=0利用 A,B,C,D=zp2ss(z,p,k)可以将零极点形式给出的模型转换为状态方程。对于sys二 ss(s y
22、 s),可以将任意LTI系统模型转换为状态方程。例 3-7 考虑例3-6,将程序进行修改。解:修改程序如下。num=18,36;den=L 1 40.4 391 150;G=tf(num,den)Sys=ss(G)运行结果A=-40.4000-391.0000-150.00001.00000 0 00 1.0000 0B=100c=0 18 36D=03.1.3系统状态方程的变换与实现1.状态方程的相似变换在前一节已经述及将系统的状态方程转换为传递函数时,其结果是惟一的;然而由于状态变量的选取不同,将系统的传递函数转换为状态方程则不能保证结果的惟一。换言之,对于一个系统的传递函数,可以存在着众
23、多的状态方程实现。这样,对于同一个系统有着不同的状态方程的描述,因此也就存在着它们之间的相互变换,MATLAB中的ss2ss函数可以实现对系统状态方程的相似变换。其基本格式为GT=ss2ss(G,T)其中,G 为原系统的状态方程模型,T 为非奇异变换阵。该变换实现下列相似变换z=TxfZ=AtU+BtUJ=Gz+DfU其中AtTAT,B尸 TBT,Ct=TCr,D,=TDT下面通过个例子来说明这种变换。例 3-8 已知系统状态方程为10-4 2A=8 0 0,B=0,C=0.5-0.4375 0.4375,0=0,0 2 o Oj试应用ss2ss函数进行状态方程的相似变换。解:由于变换阵7可以
24、任意选择,只要保证其非奇异即可。在此选择单位反对角阵作为变换阵,下面给出了变换方法与结果。A=10-4 2;8 0 0;0 2 0;B=2 0 0 ;C=0.5-0.4375 0.4375;D=0:G1=ss(A,B,C,D)T=fliplr(eye(3);GT=ss2ss(G l,T)得到结果为xlx2x3xl002.00000 x22.000000-4.00000 x308.0000010.00000 xlx2x3002.00000d=xl0.43750 x20.437500.50000ulyio2.规范型状态方程的实现在 MATLAB中提供给用户一个状态方程的规范实现函数cannon,以
25、进行LTI系统模型sys的规范状态空间表达式的实现。其基本格式为G1 =cannon(sys,type)同时,状态方程的规范实现函数cannon还具有可以返回状态变换阵的形式,即Gl T=cannon(sys,type)式中,sys表示原系统状态方程模型,字串type确定规范形式的类型,它可以是模态(m odal)规范型(约当标准型),也可以是伴随矩阵(companion)形式。7 是状态变换阵返回变量,满足z=Tx关系,其中要求sys为状态空间模型。例 3-9 已知系统X(A,B,C,0 的系数阵为对其进行规范型变换(约当变换),并给出变换阵。解:应用状态方程的规范实现函数cannon容易进
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 机电 系统 计算机辅助 分析
限制150内