实验六连续系统分析的MATLAB实现一、实验目的1、深刻理解连续时间系统的系统函数在分析连续系统的时域特性、频率特性及稳定性中的重要作用及意义;2、掌握利用MATLAB分析连续系统的时域响应、频率响应和零极点的基本方法。二、实验仪器设备PC机、MATLAB软件。三、预习练习1.为了使实验能够顺利地进行,课前对教材中连续系统的频域分析的相关内容和实验原理、方法及内容做好充分预习,并预期实验的结果。2.学习MATLAB软件,尤其是其中的和连续系统的频域分析有关的一些函数的使用。3.写出实验内容2中的图6-5所示电路的频率响应。四、实验原理连续时间LTI系统可用如下的线性常系数微分方程来描述:()(1)(1)110()(1)(1)110()()()()()()()()nnnnmmmmaytaytaytaytbftbftbftbft(6-1)如果系统的输入和初始状态已知,便可以用解析的方法求出系统的响应。但对于高阶系统,手工计算将会变得非常繁琐和困难。MATLAB的控制工具箱(controltoolbox)里包含了许多可用于分析线性非时变(LTI)系统的函数,使用命令helpcontrol可以查看控制工具箱里的这些函数。在调用这些函数时,需要用系数向量表示系统。在后面会介绍具体的使用方法。(一)系统的频率响应如果设LTI系统的冲激响应为()ht,该系统的激励信号为()ft,则此系统的零状态响应()yt为()()*()ythtft(6-2)设()ft,()ht,()yt的傅里叶变换分别为()Fj,()Hj,()Yj,根据时域卷积定理,与式(6-2)对应的频域关系为()()()YjHjFj(6-3)一般地,连续系统的频率响应定义为系统的零状态响应()yt的傅里叶变换()Yj与激励信号()ft的傅里叶变换()Fj之比,即()()()YjHjFj(6-4)通常,()Hj是的复函数,因此,又可将其写为()()()jHjHje(6-5)称()Hj为系统的幅频特性,()为系统的相频特性。需要注意的是,)(jH是系统的固有属性,求系统的)(jH,当然可以按照式(6-4)的定义求,但在实际工程中往往是给出具体的系统图(如具体电路形式),通过电路分析的方法直接求出)(jH。通常,)(jH可表示成两个有理多项式)(jB与)(jA的商,即11101110()()()()()()()()()mmmmnnnnbjbjbjbBjHjAjajajaja(6-6)在MALTAB中可使用向量110[,,,,]mmbbbbb和向量110[,,,,]nnaaaaa分别保存分子多项式和分母多项式的系数。(二)系统的系统函数对(1)式两边做拉普拉斯变换,则有00()()NMkkkkkkasYsbsFs即00()()()()()MkkkNkkkbsYsBsHsFsAsas(6-7)上式(6-7)表明,对于一个能够用线性常系数微分方程描述的连续时间LTI系统,它的系统函数是一个关于复变量s的有理多项式的分式,其分子和分母的多项式系数与系统微分方程左右两端的系数是对应的。根据这一特点,可以很容易的根据微分方程写出系统函数表达式,或者根据系统函数表达式写出系统的微分方程。其实系统函数)(sH的实质就是系统单位冲激响应(ImpulseResponse))(th的拉普拉斯变换。因此,系统函数也可以定义为dtethsHst)()((6-8)所以,系统函数)(sH的一些特点是和系统的时域响应)(th的特点相对应的。拉普拉斯变换与傅里叶变换之间的关系可表述为:傅里叶变换是信号在虚轴上的拉普拉斯变换,也可用下面的数学表达式表示()()sjHjHs(6-9)上式(6-9)表明,给定一个信号h(t),如果它的拉普拉斯变换存在的话,它的傅里叶变换不一定存在,只有当它的拉普拉斯变换的收敛域包括了整个虚轴,则表明其傅里叶变换是存在的。(三)连续系统响应的求解(1)用命令impulse可以求解系统的单位冲激响应。impulse(sys):计算并画出系统的冲激响应,sys可以是用命令tf、zpk或ss建立的系统函数。impulse(sys,t):计算并画出系统在向量t定义的时间内的冲激响应。Y=impulse(sys,t):向量Y保存对应时间的系统输出值。例1:已知系统的微分方程为()5()6()2()8()ytytytftft,计算该系统的单位冲激响应,MATLAB程序如下:b=[2,8];a=[1,5,6];sys=tf(b,a);t=0:0.1:10y=impulse(sys,t)plot(y);(2)用命令step求解系统的单位阶跃响应step(sys):计算并画出系统的阶跃响应,sys可以是用命令tf、zpk或ss建立的系统函数。step(sys,t):计算并画出系统在向量t定义的时间内的阶跃响应。Y=step(sys,t):向量Y保存对应时间的系统输出值。例2:对于例1中的系统,计算该系统的单位阶跃响应,MATLAB程序如下:b=[2,8];a=[1,5,6];sys=tf(b,a);t=0:0.1:10;y=step(sys,t)plot(y);(3)使用命令lsim求解系统在任意输入下的响应lsim(sys,f,t):计算并画出任意输入下系统的零状态响应,sys可以是用命令tf、zpk或ss建立的系统函数,t为时间向量定义时间范围,f为系统的输入。例3:对于例1中的系统,如果输入为()()tfteut,计算该系统的零状态响应,MATLAB程序如下:b=[2,8];a=[1,5,6];sys=tf(b,a);t=0:0.1:10;f=exp(-t);y=lsim(sys,f,t);plot(y);(4)连续系统频响)(jH的分析MATLAB提供了专门用于连续系统频响)(jH分析的函数freqs()。该函数可以求出系统频响的数值解,并可绘出系统的幅频及相频响应曲线。函数freqs()有如下四种调用格式:①h=freqs(b,a,w)该调用格式中,b为对应于式(6)的向量10[,,,]mmbbb,a为对应于式(6-6)的向量10[,,,]nnaaa,w为形如w1:p:w2的冒号运算定义的系统频率响应的频率范围,w1为起始频率,w2为终止频率,p为频率取样间隔。向量h则返回在向量w所定义的频率点上系统频响的样值。例4:例如,运行如下命令:a=[121];b=[01];h=freqs(b,a,0:0.5:2*pi)%计算2~0频率范围内的频响样值则运行结果为:h=Columns1through61.00000.4800-0.6400i0-0.5000i-0.1183-0.2840i-0.1200-0.1600i-0.0999-0.0951iColumns7through12-0.0800-0.0600i-0.0641-0.0399i-0.0519-0.0277i-0.0426-0.0199i-0.0355-0.0148i-0.0300-0.0113iColumn13-0.0256-0.0088i②[h,w]=freqs(b,a)该调用格式将计算默认频率范围内200个频率点的系统频率响应的样值,并赋值给返回变量h,200个频率点记录在w中。③[h,w]=freqs(b,a,n)该调用格式将计算默认频率范围内n个频率点的系统频率响应的样值,并赋值给返回变量h,n个频率点记录在w中。④freqs(b,a)该调用格式并不返回系统频率响应样值,而是以对数坐标的方式绘出系统的幅频响应和相频响应。例5:例如运行如下命令:a=[10.41];b=[100];freqs(b,a)运行结果如图6-1所示。图6-1对数坐标的系统幅频及相频响应曲线下面通过具体例子说明函数freqs()求解系统频响的方法。例6:理想低通滤波器在物理上是不可实现的,但传输特性近似于理想特性的电路却能找到。图6-2是常见的用RLC元件构成的二阶低通滤波器(一般说来,阶数越高,实际滤波器的特性越能接近于理想特性)。设HL8.0,FC1.0,2R,试用MATLAB的freqs()函数求解该系统频率响应并绘图。图6-2RLC二阶低通滤波器电路图解:根据原理图,容易写出系统的频率响应为RLjLCjH211)(将L,C,R的值代入)(jH的表达式,得)(2)(14.0)(08.01)(jejHjjjH其中:4208.011)(jH208.014.0arctan)(实现求解该系统响应的程序为:b=[001];%生成向量ba=[0.080.41];%生成向量a[h,w]=freqs(b,a,100);%求系统频响特性h1=abs(h);%求幅频响应h2=angle(h);%求相频响应subplot(211);plot(w,h1);gridxlabel('角频率(w)');ylabel('幅度');title('H(jw)的幅频特性');subplot(212);plot(w,h2*180/pi);gridxlabel('角频率(w)');ylabel('相位(度)');title('H(jw)的相频特性');运行结果如图6-3所示。由图6-3可见,当从0开始增大时,该低通滤波器幅度从1降到0,c约为3.5;而)(从0°降到-180°,与理论分析结果一致。图6-3RLC二阶低通滤波器的幅频特性及相频特性(四)连续系统零极点图及零极点分析1、连续系统零极点连续系统的系统函数)(sH大多数情况下是复变函数,对于式(6-7)表示的)(sH写成零极点形式为11()()()MjjNiiksqHssp(6-10)其中k为常数,(1,2,,)jqjM为()Hs的M个零点,(1,2,,)ipiN为()Hs的N个极点。系统函数()Hs的零极点分布完全决定了系统的特性,若某系统函数的零极点已知,则系统函数便可确定下来。因此,系统函数的零极点分布对连续系统特性的分析具有非常重要意义。在MATLAB中,表达系统函数)(sH的方法是给出系统函数的分子多项式和分母多项式的系数向量。由于系统函数的分子和分母的多项式系数与系统微分方程左右两端的系数是对应的,因此,用MATLAB表示系统函数,就是用系统函数的两个系数向量来表示。在MALTAB中可使用向量110[,,,,]mmbbbbb和向量110[,,,,]nnaaaaa分别保存分子多项式和分母多项式的系数。2、连续系统零极点图及零极点分析系统的零极点可用MATLAB的多项式求根函数roots()来实现,调用格式为p=roots(A)其中A为待求根多项式的系数构成的行矩阵,返回向量p则是包含多项式所有根的列向量。如多项式为32()32Fssss,则求该多项式根的MATLAB命令为为:A=[1-132];P=roots(A)运行结果为:P=0.7630+1.7946i0.7630-1.7946i-0.5260一个稳定的LTI系统,它的单位冲激响应h(t)满足绝对可积条件,即dtth)(同时,一个信号的傅里叶变换的存在条件就是这个信号满足绝对可积条件,所以,如果系统是稳定的话,那么,该系统的频率响应也必然是存在的。极点决定了冲激响应的形式,而各系数则由零极点共同决定。系统的稳定性由极点s在平面上的分布决定,而零点不影响稳定性。极点分布在s左半平面,系统是稳定的。极点在虚轴上有单极点,系统是临界稳定。极点在s右半平面或在虚轴上有重极点,系统不稳定。又根据傅里叶变换与拉普拉斯变换之间的关系,可进一步推理出,稳定的系统,其系统函数的收敛域必然包括虚轴。稳定的因果系统,其系统函数的全部极点一定位于s平面的左半平面。用roots()求得()Hs的零极点后,就可以用plot()函数绘制出系统的零极点图。下面是