电气工程学院陈华第1页控制系统数字仿真DigitalSimulationofControlSystem电气工程学院陈华第2页第二章控制系统的数学模型及其转换电气工程学院陈华第3页2.1线性系统数学模型的基本描述方法2.2系统数学模型间的相互转换2.3系统的组合和连接2.4系统的离散化和连续化内容提要电气工程学院陈华第4页2.1线性系统数学模型的基本描述方法控制系统计算机仿真是建立在数学模型的基础之上的一门技术。为了对系统进行仿真,首先要建立其数学模型。系统的数学模型就是描述系统输入、输出变量以及内部其它变量之间关系的数学表达式。控制系统数学模型的表示形式。微分方程状态空间表达式传递函数零极点形式部分分式形式电气工程学院陈华第5页在MATLAB中提供了3种数学模型形描述的式:(1)传递函数模型tf()(2)零极点形式的数学模型zpk()(3)状态空间表达式ss()本节首先介绍利用MATLAB提供的3个函数来建立系统的数学模型,然后在此基础上介绍各种数学模型之间的相互转换。电气工程学院陈华第6页1.tf传递函数模型格式:sys=tf(num,den)功能:建立连续系统的传递函数模型说明:假设系统是单输入单输出系统(简称SISO),其输入输出分别用u(t),y(t)来表示,则得到线性连续系统的传递函数模型:nnnnmmmmasasasabsbsbsbsUsYsG11101110......)()()(在MATLAB语言中,可以利用传递函数分子、分母多项式的系数向量进行描述。分子num、分母den多项式的系数向量分别为:mbbbnum,...,,10naaaden,...,,10这里分子、分母多项式系数按s的降幂排列。电气工程学院陈华第7页例2-1:已知系统的传递函数为:642392)(234ssssssG试建立系统的传递函数模型。sys=tf([29],[13246])Transferfunction:2s+9-----------------------------s^4+3s^3+2s^2+4s+6电气工程学院陈华第8页sys=tf([1421],den)den=conv(conv([3100],[144]),[5038])例2-2:已知系统传递函数如下)835()2)(13()32(7)(322sssssssG应用Matlab语言建立系统的传递函数模型。利用conv()可以计算多项式乘积函数调用格式c=conv(a,b)电气工程学院陈华第9页MATLAB还支持一种特殊的传递函数(矩阵)的输入格式,首先先用s=tf(‘s’)定义传递函数算子,然后用数学表达式形式直接输入系统的传递函数模型例2-2:已知系统传递函数如下)835()2)(13()32(7)(322sssssssG应用Matlab语言建立系统的传递函数模型。s=tf('s');g=7*(2*s+3)/(s^2*(3*s+1)*(s+2)^2*(5*s^2+3*s+8))如果已知系统的传递函数,可以通过tfdata(g,’v’)提取分子分母多项式的系数[n,d]=tfdata(g,'v')电气工程学院陈华第10页例2-2:已知系统传递函数如下23383283571332)(22.0ssssssesssGt应用Matlab语言建立系统的传递函数模型。g11=tf([23],[31],'ioDelay',0.2);g12=tf([7],[538]);g21=tf([20],[38]);g22=tf([13],[32]);G=[g11g12;g21g22]电气工程学院陈华第11页脉冲传递函数模型格式:sys=tf(num,den,’Ts’,T)功能:建立离散系统的脉冲传递函数模型nnnnmmmmazazazabzbzbzbzUzY11101110......)()(例:已知离散系统的脉冲传递函数为:642392)(234zzzzzzG试建立系统的脉冲传递函数模型。实际采样周期sys=tf([29],[13246],'Ts',0.1)电气工程学院陈华第12页2.zpk零极点形式的数学模型模型格式:sys=zpk(z,p,k)功能:建立零极点形式的数学模型说明:系统的传递函数还可以表示成零极点形式,零极点模型一般表示为:))...()(())...()(()(2121nmpspspszszszsKsG其中Zj(j=1,2…,m)和Pi(i=1,2…,n)分别为系统的零点和极点,K为系统的增益。z、p、k分别为系统的零、极点向量和增益。电气工程学院陈华第13页例2-3:已知系统传递函数如下)3)(2)(1()4(5)(ssssSG应用Matlab语言建立系统的零极点形式模型。sys=zpk([-4],[-1-2-3],[5])电气工程学院陈华第14页3.SS状态空间表达式格式:sys=ss(A,B,C,D),sys=ss(A,B,C,D,T)功能:建立系统的状态空间表达式说明:状态空间表达式是描述控制系统的一种常用的数学模型,在引进相应的状态变量后,可将传递函数或微分方程(外部描述)表示成状态空间表达式的形式(内部描述)。DuCxyBuAxxX为n维状态向量,U为r维输入矩阵;Y为m维输出向量;A为n×n的系统状态矩阵,由系统参数决定,B为n×r维系统输入矩阵;C为m×n维输出矩阵;D为m×r维直接传输矩阵。电气工程学院陈华第15页A=[200;041;004];B=[1;0;1];C=[110];D=0;sys1=ss(A,B,C,D)sys2=ss(A,B,C,D,0.1)例2-4:已知系统状态空间表达式为应用Matlab语言建立系统的状态空间表达式。xyuxx011101400140002)(011)()(101)(400140002)1(kxkykukxkx电气工程学院陈华第16页2.2系统数学模型间的相互转换在进行系统分析时,往往根据不同的要求选择不同形式的数学模型,因此经常要在不同形式数学模型之间相互转换,下面介绍三种模型之间的相互转换函数。1.ss2tf将状态空间表达式转换为传递函数形式格式:[num,den]=ss2tf(A,B,C,D,iu)说明:ss2tf函数可以将状态空间表达式通过DBAsICsdensnumsG1)()()()(转换为传递函数形式,其中,iu用于指定变换所使用的输入量,num和den分别为传递函数的分子、分母多项式系数向量。ss2tf还可以应用离散时间系统,这时得到的是Z变换表示。电气工程学院陈华第17页例2-5:已知系统Σ(A,B,C,D)的系数矩阵是求取该系统相应的传递函数模型。0011101400140002DCBAA=[200;041;004];B=[1;0;1];C=[110];D=0;[num,den]=ss2tf(A,B,C,D)电气工程学院陈华第18页例2-5:已知系统Σ(A,B,C,D)的系数矩阵是求取该系统相应的传递函数模型。]00[011101101400140002DCBAA=[200;041;004];B=[10;11;01];C=[110];D=[00];[num1,den1]=ss2tf(A,B,C,D,1)[num2,den2]=ss2tf(A,B,C,D,2)电气工程学院陈华第19页例2-6:已知系统Σ(A,B,C,D)的系数矩阵是求取该系统相应的传递函数模型。0000110011101101400140002DCBAA=[200;041;004];B=[10;11;01];C=[110;011];D=[00;00];[num1,den1]=ss2tf(A,B,C,D,1)[num2,den2]=ss2tf(A,B,C,D,2)电气工程学院陈华第20页2.ss2zp将系统的状态空间表达式转换为零极点增益模型格式:[z,p,k]=ss2zp(A,B,C,D,iu)3.tf2ss将单输入多输出系统的传递函数模型转换为状态空间表达式。格式:[A,B,C,D]=tf2ss(num,den)例2-7:已知系统的传递函数为应用MATLAB的模型转换函数将其转换为状态空间表达式的模型。54352)(22sssssssG4343[A,B,C,D]=tf2ss([12;34],[345])电气工程学院陈华第21页4.tf2zp将系统的传递函数模型转换为零极点增益模型格式:[z,p,k]=tf2zp(num,den)5.zp2ss将系统的零极点增益模型转换为状态空间模型。格式:[A,B,C,D]=zp2ss(z,p,k)6.zp2tf将系统零极点增益模型转换为传递函数模型。格式:[num,den]=zp2tf(z,p,k)应用MATLAB的模型转换函数将其转换为零极点形式的模型。1503914.403618)(23sssssG例3-7:已知系统的传递函数为电气工程学院陈华第22页7.residue将系统的传递函数模型转换为部分分式形式格式:[R,P,H]=residue(num,den)或:[num,den]=residue(R,P,H)其中,列向量P为传递函数的极点,对应个极点的留数在列向量R中,行向量H为原传递函数中剩余部分的的系数。应用MATLAB的模型转换函数将其转换为部分分式形式。1503914.403618)(23sssssG例2-8:已知系统的传递函数为[R,P,H]=residue([18,36],[140.4391150]))()()(1shpsrsUsYniii电气工程学院陈华第23页DuCxyBuAxx8.ss2ss相似变换(非奇异线性变换)格式:[A1,B1,C1,D1]=ss2ss(A,B,C,D,P)9.minreal最小实现格式:[Am,Bm,Cm,Dm]=minreal(A,B,C,D,tol)[zm,pm]=minreal(z,p)[NUMm,DENm]=minreal(num,den)uDzCDuzCPyuBzAPBuzPAPz111111zPx1电气工程学院陈华第24页2.3系统的组合和连接所谓系统组合,就是将两个或多个子系统按一定方式加以连接形成新的系统。这种连接组合方式主要有串联、并联、反馈等形式。MATLAB提供了进行这类组合连接的相关函数。1.series系统的串联格式1:sys=series(sys1,sys2),格式2:sys=series(sys1,sys2,outputs1,inputs2)功能:用于将两个线性模型串联形成新的系统即sys=sys1*sys2说明:格式1:对应于SISO系统的串联连接。格式2:对应于MIMO系统的串联连接;其中sys1的输出向量为outputs1sys2的输入向量为inputs2电气工程学院陈华第25页例2-9:求下列两个系统串联后的系统模型1111100110051166116110xyuxx2222201103210xyuxxa1=[01-1;-6-116;-6-115];b1=[001]';c1=[100];d1=0;a2=[01;-2-3];b2=[01]';c2=[10];d2=0;[a,b,c,d]=series(a1,b1,c1,d1,a2,b2,c2,d2)电气工程学院陈华第26页例2-10:求下列两个系统串联后的系统模型563)(123432)