《机电系统的计算机辅助分析.pdf》由会员分享,可在线阅读,更多相关《机电系统的计算机辅助分析.pdf(67页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
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容易进
26、行该变换。A=5 2 1 0;0 4 6 0;0-3-5 0;0-3-6-1;B=1 2 3 4 ;C=l 2 5 2;D=0;sys=ss(A,B,C,D);G,T=canon(sys,modal)运行结果a=xlx2x3x4xl5.0000000 x20-1.0000000 x300-2.000000 x40001.00000ulxl 3.60714x2-20.00000 x3 26.55760 x4 11.79248c=xl x2 x3 x4yl 1.00000 2.00000-2.75412 0.74200d=ulyl 0Continuous-time system.T=1.00000
27、.60710.464300-3.0000-6.00001.00000-3.3197-6.639400-2.3585-2.35850对于系统的其他规范型变换,如可控规范型和可观规范型变换,将放到后面章节中阐述。3.系统的均衡实现考查系统B,C,D),其系统的系数阵分别为4=-1000-25B=IO10C=10s 10-5,0=0在该系统中,系数阵的各个元素的值相差极为悬殊,显然对这类问题直接进行求解必然会在数值运算过程中由于舍入的处理而带来严重的误差,一般将这类系统称为不均衡系统。在 MATLAB中,为用户提供了可以进行系统均衡变换的函数,从而使不均衡系统经过变换,使其系数变为相对较为均衡,以消
28、除计算中舍入对其造成的严重误差影响。其均衡变换函数的具体格式为Ab,Bb,Cb,G,T=balreal(A,B,C)其中T 为均衡变换阵,G 为均衡系统的Gram阵,并且满足下述变换关系Ab=TAT,Bb=T1B,Cb=CT,Db=D同时系统的状态变量也满足Xb=T X 关系。以前面给出的不均衡系统作为示例,利用均衡变换函数实现系统的均衡变换,即Ab,Bb,Cb,G,T=balreal(A,B,C)运行结果Ab=-14.013745745757560-6.64048427128458-6.64048427128458-20.98625424242441Bb=1.373097921795070.
29、33852931507043Cb=1.37309792179507 0.33852931507043G=0.067269591423080.00273040857692T=1.0e+004*0.00000000855-0.000000000517285.17284303362319 8.55813618432752由上述运行结果可以清楚地看出,经过均衡变换后,系统的系数阵实现了预期的系数均衡处理,从而大大降低了数值计算时的舍入误差。应该注意的是,只有稳定的系统才能进行均衡变换。4.系统的降阶实现在控制系统的研究中,模型的降阶技术是简化系统分析的重要手段,其降阶实质就是由相对低阶的模型近似成一个
30、高阶原系统,从而使高阶模型可以按照低阶的仿真与设计方法加以进行。在 MATLAB中,为用户提供了实现系统降阶处理的专用函数,如 modred函数。其基本格式为RSYS=modred(sys,ELIM)RSYS=modred(sys,ELIM,mdc)RSYS=modred(sys,ELIM,del)其中,ELIM为待消去的状态;,mdc,表示在降阶中保证增益的匹配;表示在降阶中不能保证增益的匹配。例 3-1 0 已知系统的传递函数为G(s)=_180_b -s4+20?+136s2+38O.v+343应用modred函数进行降阶处理,保留前两个状态,降为二阶系统。解:先构造modred所需要的
31、函数,再进行降阶处理。num=180;den=1 20 136 380 343a,b,c,d=tf2ss(num,den)sys=ss(a,b,c,d)sysm=modred(sys,3:4,del)执行上述语句得到系统降阶后的结果为xlx2xl-20.00000-136.00000 x21.000000b=ulxl1.00000 x20c=xlx2yi00d=ulyi0显然在直接利用modred函数进行系统降阶处理时具有一定的盲目性,为此往往将 balreal函数与modred函数相结合加以使用。由 balreal函数先进行均衡变换,依据 Gram阵确定对系统影响较小的状态,再应用modre
32、a函数求出降阶后的系统。例 3-11已知系统(4,B,C,O)的系数阵为-3 1 0-11A=-0.5-1 1-1,B=0,C=l 0-1 o-1.5 1-2 00-1.5 2 1-40在尽可能保持系统基本特性的情况下进行降阶处理。解:对系统进行均衡变换。A=-3 1 0-1:-0.5-1 1 -1;-1.5 1 -2 0:-1.5 2 1 -4B=l 0 0 0 C=l 0-1 0Ab,Bb,Cb,G,T=balreal(A,B,C)得到均衡变换后的系统模型,以及变换阵T、Gram阵。Ab=1.28290.4033-0.19000.03590.4033-1.77481.5444-0.3144
33、-0.19001.5444-5.92012.8156-0.03590.3144-2.8156-1.0223Bb=0.9849-0.15770.07300.0138Cb=0.9849-0.1577 0.0730-0.0138G=0.38710.00700.00050.0001T=0.6403-1.69381.8373-2.3068-0.1591-1.0219-0.0109-0.2640-0.3446-1.53611.7643-2.2930-0.3092-1.31701.5967-1.4304由Gram阵可以看出,变换后的模型中,第 3、第 4 状态变量对系统的作用较小,因此可以利用modred函
34、数进行降阶处理,保留第1、第 2 状态变量。键入下述命令sys=ss(Ab,Bb,Cb,Db)sysr=modred(sys,3:4,mdc)得到降阶模型为xlx2xl-1.278040.36341x20.36341-1.44664ulxl 0.98303x2-0.14235c=xl x2yl 0.98303-0.14235d=ulyl 0.00071在 MATLAB中还给出最小实现函数minreal,它的基本格式为Am,Bm,Cm,Dm=minreal(A,B,C,D)numm,denmj=minreal(num,den)该函数消去了不必要的状态,从而得到系统的最小实现。有关它的具体应用可参
35、见相关帮助文件,在此不再详述。3.1.4 控制系统模型的建立与典型连接1.基本系统模型的建立MATLAB为用户提供了一些基本系统或模型建立的函数,如二阶系统、随 机 n阶系统的模型建立等。下面分别介绍。1)二阶系统的生成在控制系统中,二阶系统占有相当的比例,即或是高阶系统往往也需要对其进行简化降阶处理,然后再对其进行分析研究。因此,研究与讨论二阶系统具有重要的意义。MATLAB提供了二阶系统生成函数o rd 2,其基本格式为A,B,C,D=ord2(Wn,z)式 中 W n为自然角频率,z 为阻尼因子,返回变量A,B,C,D 描述了连续二阶系统。应用该函数就可以生成所期望的以状态方程形式描述的
36、二阶系统,上述自然角频率与阻尼因子的意义表示为W n表示z 表示自。同 时 MATLAB也提供了生成以传递函数形式描述的二阶系统的ord2函数,其格式为num,den=ord2(Wn,z)返回变量为传递函数的分子、分母多项式系数向量。例 3-1 2 分别生成以状态方程形式和传递函数形式描述的二阶系统,要求J =0.8,(On 2.2 rad/s解:直接应用。rd2函数进行。Wn=2.2;z=0.8;A,B,C,DJ=ord2(Wn,z)得A=0 1.0000-4.8400-3.5200B=01c=1 0D=0求取传递函数形式如下:Wn=2.2;z=0.8;num,den=ord2(Wn,z);
37、G=tf(num,den)结果为Transfer function:1sA 2+3.52 s+4.842)随机n 阶系统的模型建立MATLAB为用户提供了建立随机n 阶系统模型的函数,其基本格式为 num,den=rmodel(n)num,den=rmodel(n,p)A,B,C,D=rmodel(n)A,B,C,D=rmodel(n,p,m)num,den=drmodel(n)num,den=drmodel(n,p)A,B,C,D=drmodel(n)A,B,C,D=drmodel(n,p,m)其中num,den=rmodel(n)可以随机生成n 阶稳定传递函数模型。num,den=rmod
38、el(n,p)可以随机生成单入p 出的n 阶稳定传递函数模型。A.B,C,D =rmodel(n)可以随机生成n阶 稳 定SISO状态方程模型。A,B,C,D=rmodel(n,p,m)可以随机生成n阶 稳 定p出m入状态空间模型。drmodel(n)函数将生成相应的离散模型。如果欲生成一随机三阶二输入单输出状态空间表达式,则可应用A,B,C,0 0.6900DJ=rmodel(n,p,m)o运行LA,B,C,D=rmodel(3,1,2)得至IJA=-0.9688-4.09320.69414.0638-1.0010-0.4993-0.84930.0983-2.0227B=000.71430.
39、85801.62361.2540C=-1.593700.5711D=3)系统模型的重构(1).子系统选取与删除MATLAB提供了一个从大系统中选择子系统的函数ssselect,其基本格式为A e,Be,Ce.De=ssselect(A,B,C;D,Inputs,outputs)利用指定的输入、输出向量建立状态方程子系统。向 量inputs指定系统输入,向量outputs指定系统输出。Ae,Be,Ce,De=ssselect(A,B,C,D.利用指定的输入、输出及状态向量构建子系统。0的系数阵为inputs,outputs,states)A=例 1J-13已知系统X(4,B,C,153 46 4
40、17167 8,B=12 253022 43 842257 96 47342621 52 39532,O=22 46 1223 54 2显然该系统为四阶三输入、二输出系统,现利用s s s e l e c t函数在原系统的基础上构造新系统,保 留1、3输入信号,1、2输出以及1、2、4状态变量。解:根据题意要求可以编写相应的程序为A=l 5 3 4;7 1 6 7 8;3 0 2 2 4;4 2 2 5 7 9 :B=6 4 1 3;1 2 2 5 4:3 8 2 6;6 4 7 2 ;C=1 5 9 3;2 3 5 2 1;D=2 2 4 6 1 2;2 3 5 4 2 ;i n p u t
41、 s=1 3 ;o u t p u t s=l 2 ;s t a t e s =1 2 4 J;A l,B l,CL D l =s s s e l e c t (A,B,C,D,i n p u t s,o u t p u t s,s t a t e s)运行上述语句得到新构建的系统模型为A l =1 5 47 1 6 84 2 2 5 9B l=6 31 2 46 2C l=1 5 32 3 2D l=2 2 1 22 3 2s s s e l e c t函数除了可应用于连续函数,也可应用于离散系统。MATLAB还提供了与s s s e l e c t函数进行相反操作的一类函数,它们是 A r
42、,B r,C r,D r =s s d e l e t e (A,B,C,D,i n p u t s,o u t p u t s)A r,B r,C r,D r J=s s d e l e t e (A,B,C,D,i n p u t s,o u t p u t s,s t a t e s)利用该函数可从状态空间系统(A,B,C,D)中删除分别由i n p u t s、O u t p u t s和s t a t e s指定的输入、输出与状态。(2).状态的增广在对系统进行分析研究时,往往需要对状态在系统(输出)中加以增广。如对系统进行全状态反馈研究时,考虑到U=K x,因此一般就需要在输出方程
43、中增广状态。所以状态增广有时具有十分重要的实际用途,在MATLAB中特别为用户提供了一种状态增广函数augstate。其基本格式为asys=augstate(sys)augstate函数将状态增广到状态空间系统中,产生一个新的状态空间系统,其输入与状态和原系统相同,但其系统输出增加了全部的状态,构造成新系统为X=AX+BUYXU例 3-1 4 已知系统状态方程为0.4375,0=1将所有的状态增广到系统输出中。解:应用augstate函数进行输出状态增广。A=E10-4 2;8 0 0;0 2 0;B=2 0 0 ;C=0.5-0.4375 0.4375;D=l:SYS=ss(A,B,C,D)
44、ASYS=augstate(SYS)执行上述语句得到新构建的系统为Continuoustime system.xlx2x3xl10.00000-4.000002.00000 x28.0000000 x302.000000b=ulxl2.00000 x20 x30c=xlx2x3yi0.50000-0.437500.43750y21.0000000y301.000000可见在新系统中,状态方程的系数阵没有变化,而输出方程中的C 与D 阵都出y40 0 1.00000d=ulyiy2y3y41.00000000现了增广,满足了将全部状态添加至系统输出的要求。2.系统组合与连接所谓系统组合,就是将两
45、个或多个子系统按一定方式加以连接形成新的系统。一般这种连接组合方式主要有串联、并联、反馈等形式。MATLAB提供了进行这类组合连接的相关函数。1).模型串联在 MATLAB中提供了模型串联连接函数series,该函数用于两个线性模型的串联,其基本格式为sys=series(sys 1,sys2)上述串联函数实现了 sysl和 sys2相串联形成新系统sys。运行后形成sys=sysl*sys2如果相串联的两个系统(环节)sysl(s)、sys2(s)的状态方程系数阵分别为(A”B”G,D.)和 A2,B2,C2,D2J,则串联后整个系统的系数阵将变为4 08 G A?A=,B=B?Di对于多入
46、多出系统,上述串联函数的形式为sys=series(sysl,sys2,ouputsl,inputs2)应用上述函数将实现由outputsl指定的sysl输出端连接到由inputs2指定的sys2输入端,其中inputs2与 outputsl分别为sys和 sy sl的输入、输出向量。2).模型并联在 MATLAB中提供了并联连接函数parallel,其基本格式为sys=parallel(sysl,sys2,inh in2,outl,out2)该函数将两个线性系统以并联方式加以连接,in i与 in2指定了相连接的输入端;outl与 out2指定了进行信号相加的输出端。最终得到以v l、u、v
47、2、作为输入z l、y、z 2 作为输出的系统syso inl in2分别为sysk sys2的输入向量,outR out2分别为sysk sys2的输出向量。当 sysl、sys2为 SISO系统时,该函数简化为sys=parallel(sysh sys2)这是标准并联连接的形式。sysl与 sys2这两个系统在共同的输入信号作用下,将产生两个输出信号,而并联系统的输出就是这两个系统输出之和。若用传递函数对系统加以描述,系统总的传递函数G(S)=G (S)+G2(S)。若考虑dens)2 den2(s)则系统总传递函数为)den(s)den2(s)例 3-15已知两个线性系统应用parall
48、el函数进行系统并联连接。解:程序如下。numl=12 4;denl=1 5 2;num2=E 1 6;den2=1 7 1;sysl=tf(numl,deni);sys2=tf(num2,den2);sys=parallel(sysh sys2)运行上述语句得到连接后的总系统传递函数为Transfer function:13 sA 3+99 s 八 2+72 s+16sA4+1 2 sA3+3 8 sA2+19s+2如果系统用状态方程的形式给出,则并联后的系统模型为*24 o0 A2X2Bzy=g C2 1+(D(+D2)ULx2j若已知两个线性系统,应用parallel函数即可方便地实现系
49、统的连接Al=L1 2;3 4;A2=2 4;3 5;Bl=2 6J;B2=2 5 ,;Cl=l 5;C2=2 3;Dl=4;D2=l;sysl=ss(A l,B l,Cl,DI);sys2=ss(A2,B2,C2,D2);sys=parallel(sysl,sys2)运行结果a=xlx2x3x4X 11.000002.0000000 x23.000004.0000000 x3002.000004.00000 x4003.000005.00000ulxl2.00000 x26.00000 x32.00000 x45.00000 xlx2x3x4yi1.000005.000002.000003.
50、00000d=ulyl 5.000003).反馈连接反馈系统是系统中最为重要与常见的一类系统,在 MATLAB中为使用者提供了一种方便的构造反馈系统的函数feedback,其一般格式为sys=feedback(sysl,sys2,sign)执行该语句将实现两个系统的反馈连接,sign缺省时即为负反馈,sign=l时为正反馈。如果由sysl与sys2表示的前向系统和反馈系统用传递函数描述,则反馈系统的传递函数为(、s w i(s)I 土 s y S (s)s y (s)若由sysl与 sys2表示的前向系统和反馈系统分别以状态方程的形式给出(A l,B,Cl,D I),(A2,B2,C2,0 2