离散系统Matlab仿真.ppt
1,第五章 离散系统Matlab仿真,5.1 离散系统的数学模型,5.2 离散系统的稳定性分析,5.3 离散系统的动态性能分析,2,5.1 离散系统的数学模型,sys=tf(num,den,Ts):返回离散系统的传递函数模型,num与den分别为系统的分子与分母多项式系数向量;Ts为采样周期,当Ts=-1或者Ts=时,表示系统的采样周期未定义。,sys=zpk(z,p,k,Ts):用来建立离散系统的零极点增益模型,Ts为采样周期,当Ts=-1或者Ts=时,表示系统的采样周期未定义。,一、数学模型的建立,3,num=0.01 0.03-0.07;den=1-2.7 2.42-0.72;G=tf(num,den,-1),4,sys=filt(num,den):用来建立采样时间未指定的脉冲传递函数;sys=filt(num,den,Ts):用来建立一个采样时间由Ts指定的脉冲传递函数。num和den分别为系统分子与分母多项式系数向量。,printsys(num,den,s):连续系统传递函数;printsys(num,den,z):离散系统传递函数。,另外,还可以用printsys()函数来输出控制系统的传递函数。其调用格式为:,5,num=0.01 0.03-0.07;den=1-2.7 2.42-0.72;G=filt(num,den)printsys(num,den,z),6,二、数学模型的相互转换,这两种数学模型之间是可以相互转换的,其调用格式分别为:tf(sys)将零极点增益模型转换成传递函数模型;zpk(sys)将传递函数模型转换成零极点增益模型。,z,p,k=tf2zp(num,den),其中num和den分别为系统传递函数的分子与分母多项式系数向量,z,p,k分别为系统对应的零点向量、极点向量和增益。num,den=zp2tf(z,p,k),其中z,p,k分别为系统的零点向量、极点向量和增益。num和den分别为系统对应的传递函数模型分子与分母多项式系数向量。,7,num=0.01 0.03-0.07;den=1-2.7 2.42-0.72;G=tf(num,den,-1);G=zpk(G)z,p,k=tf2zp(num,den),8,三、连续系统和离散系统数学模型之间的转换,sysd=c2d(sysc,Ts,imp):把连续定常系统模型sysc转换成离散系统模型sysd,采样时间为Ts,imp表示直接脉冲响应法。,9,num=1;den=0.1 1 0;sysc=tf(num,den);sysd=c2d(sysc,1,imp),10,sysd=c2d(sysc,Ts,zoh):把连续定常系统模型sysc转换成离散系统模型sysd,采样时间为Ts,imp表示对输入信号加零阶保持器。,11,num=1;den=1 1 0;sysc=tf(num,den);sysd=c2d(sysc,1,zoh),12,四、多模块数学模型的建立,1、两模块串联,13,G1=tf(1,1 1);G1d=c2d(G1,1,imp)G2=tf(1,1 2);G2d=c2d(G2,1,imp)Gd=G1d*G2d,14,G1=tf(1,1 1);G2=tf(1,1 2);G=G1*G2Gd=c2d(G,1,imp),15,2、闭环离散系统,16,G=tf(1,1 1 0);Gd=c2d(G,1,imp);phid=feedback(Gd,1),17,5.2 离散系统的稳定性分析,离散系统稳定的充要条件:闭环脉冲传递函数的极点全部在z平面的单位圆内,或闭环特征根的模都小于1。,18,sysc=tf(10,1 1 0);sysd=c2d(sysc,1,zoh);closysd=feedback(sysd,1);closysd=zpk(closysd)pzmap(closysd)pole(closysd),19,sysc=tf(1,1 1 0);sysd=c2d(sysc,1,zoh);pole(sysd)rlocus(sysd)k,poles=rlocfind(sysd),20,5.3 离散系统的动态性能分析,dstep(num,den,N);绘制离散系统的单位阶跃响应曲线,num、den分别为系统闭环脉冲传递函数分子和分母多项式系数向量,N为指定的输出点个数;y=dstep(num,den,N):不绘制阶跃响应曲线,返回输出数值序列y。,一、离散系统单位阶跃响应,21,sys=tf(1,1 1 0);sysd=c2d(sysc,1,zoh);closysd=feedback(sysd,1);num,den=tfdata(closysd)dstep(num,den,25),22,dimpulse(num,den,N);绘制离散系统的单位脉冲响应曲线,num、den分别为系统闭环脉冲传递函数分子和分母多项式系数向量,N为指定的输出点个数;y=dimpulse(num,den,N):不绘制脉冲响应曲线,返回输出数值序列y。,二、离散系统单位脉冲响应,23,hold ondimpulse(num,den,25)hold offy,x=dimpulse(num,den,25);,24,dlsim(num,den,U);绘制离散系统在任意数值序列U作用下的响应曲线,num、den分别为系统闭环脉冲传递函数分子和分母多项式系数向量;y=dlsim(num,den,U):不绘制响应曲线,返回输出数值序列y。,三、离散系统任意输入下的时间响应,25,sysc=tf(1,1 1 0);sysd=c2d(sysc,1,zoh);closysd=feedback(sysd,1);num,den=tfdata(closysd);,26,Ts=1;dtime=(0:Ts:50);R1=dtime;R2=0.5*dtime.*dtime;subplot(2,1,1);dlsim(num,den,R1)subplot(2,1,2);dlsim(num,den,R2),27,sysc=tf(1,1 1 0);sysd=c2d(sysc,1,zoh);closysd=feedback(sysd,1);num,den=tfdata(closysd);,28,Ts=1;dtime=(0:Ts:50);U=2*ones(size(dtime);ii=find(dtime=10);U(ii)=0.5;dlsim(num,den,U),