资源预览内容
第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
第9页 / 共9页
亲,该文档总共9页全部预览完了,如果喜欢就下载吧!
资源描述
一、课程设计题目:基于MATLAB的连续时间LTI系统的时域分析二、基本要求: 掌握连续时不变信号处理的基本概念、基本理论和基本方法; 学会 MATLAB 的使用,掌握 MATLAB 的程序设计方法; 学会用 MATLAB 对信号进行分析和处理; 编程实现卷积积分或卷积和,零输入响应,零状态响应; 撰写课程设计论文,用信号处理基本理论分析结果。三、设计方法与步骤:一般的连续时间系统分析有以下几个步骤: 求解系统的零输入响应; 求解系统的零状态响应;求解系统的全响应;分析系统的卷积;画出它们 的图形.下面以具体的微分方程为例说明利用MATLAB软件分析系统的具体方 法.1连续时间系统的零输入响应描述n阶线性时不变(LTI)连续系统的微分方程为:dnydn-iydyT dmuT du Ta + a+.+ a + a y = b HF b + b u1 dtn2 dtn-1n dtn+l1 dtmm dtm+l已知y及各阶导数的初始值为y (0),y(0),y(n-i)(0),求系统的零输入响应。建模当LIT系统的输入为零时,其零输入响应为微分方程的其次解(即令微分方 程的等号右端为零),其形式为(设特征根均为单根)y (t)二 C ep1t + C ep2t + C epnt12n其中p,p2,.,pn是特征方程a+a2-i+.+a+an=0的根,它们可以 用root(a)语句求得。各系数由y及其各阶导数的初始值来确定。对此有C + C + C = y12n 0p C + p C + p C = Dy1 12 2n n 0P n-1C + p n-1C + p n-1C = Dn-1 y1122n n0写成矩阵形式为:P1n-1C1+ P2n-1C2+ P n-1C =Dn-1y01122n n0一 11 1 一一 C -y10PPPCDy12n2o0 P n-11P n12P n1nCnDn-1 y00即VC二Y式中 C = c1其解为:C二VY0C n1C 二 y Dy Dn-1 y0 0 0p n-11P n-12p n-1nV为范德蒙矩阵,在matlab的特殊矩阵库中有vander。 以下面式子为例:y(t) + 5 y (t) + 4 y (t) = 2f (t) - 4f (t) y(0_)=1,y(0_)=5;MATLAB 程序:a二input(输入分母系数 a二al,a2,.=); n=length(a)-1;Y0=input(输入初始条件向量 YO二yO,DyO,D2yO,.二); p=roots(a);V=rot90(vander(p);c=VY0; dt=input(dt=);te=input(te=);t=O:dt:te;y=zeros(1,length(t);for k=1:n y=y+c(k)*exp(p(k)*t);end plot(t,y);gridxlabel(t) ;ylabel(y); title(零输入响应);程序运行结果: 用这个通用程序来解一个三阶系统,运行此程序并输入a=1,5,4YO=1,5 dt=O.O1 te=6结果如下图:根据图可以分析零输入响应,它的起始值与输入函数无关,只与 它的初始状态值有关,其起始值等于y(0_)的值。随着时间的推移,最后零输入 响应的值无限的趋近于0。零输入响应2卷积的计算连续时间信号f (t)和f (t)的卷积运算可用信号的分段求和来实现,即:f (t) f (t)* f (t) J f (t)f (t t )dT lim12g 12at 012另 f (kA)f (t-kA)-A12k s如果只求当t =泌(n为整数)时f (t)的值f (nA),贝V上式可得:f (nA) = K f (k A) f (t - k A)-A = aY f (k A) f (n - k) A 1 2 1 2k=gk=g式中的才f (kA)f (nA k)A实际上就是连续时间信号f (t)和f (t)经等时间间1 2 1 2k g隔 均匀抽样的离散序列f (Ak)和f (Ak)的卷积和。当A足够小时,f (nA)就是12卷积积分的结果一一连续时间信号f(t)的较好数值近似。建模下面是利用MATLAB实现连续信号卷积的通用程序conv(),该程序在计算出 卷积积分的数值近似的同时,还绘制出f(t)的时域波形图。应注意,程序中是如 何设定f(t)的时间长度。MATLAB 程序:f1=input(输入函数fl二); f2=input(输入函数f2=);dt=input(dt=); y=conv(fl,f2);plot(dt*(l:length(y)-l),y);grid on;title(卷积); xlabel(t); ylabel(fl*f2)程序运行结果:输入以下数据:f1=sin(3*t) f2=cos(3*t+2) dt=0.01 得出图形如下:3连续时间系统零状态响应的数值计算我们知道,LTI连续系统可用如下所示的线性常系数微分方程来描述,为 a y(i)(t)=ii=0迓bf (j )(t)j戶0例如,对于以下方程:a3 y(t) + a y(t) + 竽(t) + a0 y (t)二 b3f(t) + b2f(t) + bf( ) + bf(t)可用a二a3, a2, a, a0, b二b3, b2, b, bl输入函数u = f (t),得出它的冲击响 应h,再根据LTI系统的零状态响应y (t)是激励u (t)与冲击响应h (t)的 卷积积分。注意,如果微分方程的左端或右端表达式中有缺项,则其向量a或b中的对应元 素应为零,不能省略不写,否则出错。求函数的零状态响应y(t) + 5 y(t) + 4 y (t) = 2f (t) - 4f (t)及初始状态 y (0 ) = y (0 ) = 0。输入函数 /(t) = sin(3*t) + C0S(2* t)。 zs 一zs 一建模先求出系统的冲击响应,写出其特征方程九 2 + 5X + 4 = 0求出其特征根为P和P,及相应的留数r,r;则冲击响应为h (t) = rep1t + r ep2112输入y (t)可用输入u (t)与冲击响应h (t)的卷积求得。MATLAB 程序:a二input(输入分母系数 a二al,a2,.=);b=input(输入输入信号系数 b二bl,b2,.=); dt=input(dt=);te=input(te=);t=0:dt:te;u二input(输入函数 u=);te=t(end);dt=te/(length(t)-1);r,p,k=residue(b,a);h=r(1)*exp(p(1)*t)+r(2)*exp(p(1)*t); subplot(2,1,1),plot(t,h);grid title(冲击函数);y=conv(u,h)*dt; subplot(2,1,2), plot(t,y(1:length(t);grid title(零状态响应);程序运行结果执行这个程序,取 a=1,5,4b=2,4dt=0.01te=6u = sin(3* t) + cos(2* t)得出图形如下:由于初始状态为零,所以零状态的起始值也为零卩h(t)包含了连续系统的固 有特性,与系统的输入无关。只要知道了系统的冲激响应,即可求得系统在不同 输入时产生的输出。因此,求解系统的冲激响应h对进行连续时间系统的分析具 有非常重要的意义冲击函数4连续时间系统的全响应计算上面通过对LTI系统函数的描述,我们可以得知:如果在系统的初始状态不 为零,在激励f(t)的作用下,LTI系统的响应称为全响应,它是零输入响应和 零状态响应之和,即y (t) = y (t) + y (t)zi zs故可先求出零输入响应和零状态响应,再把两者相加,得到全响应。但简单的相 加可能由于零输入与零状态的矩阵不同而不能的出正确的结果,这就需要对矩阵 进行截取,使它们的阶数相同。例如,对于以下方程:y (t) + 5 y (t) + 4 y (t) = 2f (t) - 4f (t)初始值为:y(0_)=i,y(0_)=5 ;输入函数为:f (t)= sin(3* t) + cos(2* t)求它的全响应。建模先根据零输入响应的求法,得出零输入响应yl (t)。再根据零状态响应的求 法,得出零状态响应y2 (t)。最后,全响应y等于零输入响应y1 (t)加上零状 态响应y2 (t),得出全响应。MATLAB 程序:a=input(输入分母系数 a二a1,a2,.=); n=length(a)-l;Y0=input(输入初始条件向量 Y0二yO,DyO,D2yO,.=); b=input(输入输入信号系数 b=b1,b2,.=);u=input(输入函数 u=); dt=input(dt=);te=input(te=);t=0:dt:te; p=roots(a);V=rot90(vander(p);c=VY0;yl=zeros(l,length(t);for k=l:n yl=yl+c(k)*exp(p(k)*t);end te=t(end);dt=te/(length(t)-l); r,p,k=residue(b,a);h=r(l)*exp(p(l)*t)+r(2)*exp(p(l)*t); y2=conv(u,h)*dt;y=yl(l:length(t)+y2(l:length(t); figure(l);subplot(3,l,l),plot(t,yl),grid xlabel(t); ylabel(y1); title(零输入响应); subplot(3,l,2),plot(t,y2(l:length(t);grid xlabel( t);ylabel(y2); title(零状态响应);subplot(3,1,3),plot(t,y),gridxlabel(t); ylabel(y); title(全响应响应);程序运行结果执行程序,取 a=1,5,4Y0=1,5b=1,2,4u=sin(3*t)+cos(2*t)dt=0.01 te=6结果如下图:在零输入响应中任一时刻取值yl,在零状态响应的对应时刻取值y2,再在全响应的对应时刻取值y。可以得出:y=y1+y2。零输入响应零状态响应全响应响应四、调试总结:在matlab语言
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号