航空工业管理学院《电子信息系统仿真》课程设计级电子信息工程专业班级题目连续时间LTI系统仿真和时域分析姓名学号指导教师二О一年月日MATLAB软件简介MATLAB 是MathWork 公司于1984 年推出的一套面向工程和科学运算的高性能软件,它具有强大的图形处理功能及符号运算功能,为我们实现信号的可视化及系统分析提供了强有力的工具。
MATLAB 强大的工具箱函数可以分析连续信号、连续系统,同样也可以分析离散信号、离散系统,并可以对信号进行各种分析域计算,如相加、相乘、移位、反折、傅里叶变换、拉氏变换、Z 变换等等多种计算MATLAB 用于算法开发、数据可视化、数据分析以数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB 可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连Matlab开发工作界面接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。
Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。
在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。
Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。
设计目的掌握信号经过LTI 系统的时域分析方法。
根据连续时不变信号处理的基本概念、理论和方法对信号进行分析和处理,实现卷积积分或卷积和,零输入响应和零状态响应,学会应用MATLAB 对实际问题进行仿真,并对仿真结果进行分析。
在本次课程设计中,利用MATLAB 软件对LTI 连续系统时域进行仿真与分析。
根据连续时不变信号处理的基本概念、理论和方法对信号进行分析和处理,实现卷积积分或卷积和,零输入响应和零状态响应,熟悉卷积和conv 函数,并会利用卷积求零状态响应,并对输出的波形和仿真结果进行分析。
理论分析连续时间系统卷积分原理连续时间信号1()f t 和2()f t 的卷积运算可用信号的分段求和来实现,即:1212120()()*()()()lim()()k f t f t f t f t f t d f k f t k ττ∞∞-∞∆→=-∞==-=∆-∆⋅∆∑⎰如果只求当t (n )(n 为整数)时f (t )的值f (n ) ,则上式可得:1212()()()()[()]k k f n f k f t k f k f n k ∞∞=-∞=-∞∆=∆-∆⋅∆=∆∆-∆∑∑式中的12()[()]k f k f n k ∞=-∞∆∆-∆∑实际上就是连续时间信号1()f t 和2()f t 经等时间间隔均匀抽样的离散序列1()f k ∆和2()f k ∆的-。
当足够小时,()f n ∆就是卷积积分的结果——连续时间信号f (t )的较好数值近似。
连续时间系统零输入响应原理零输入响应就是动态电路在没有外实施激励时,有电路中的动态原件的初始储能引起的响应。
在电路断开的瞬间有储能元件(电感、电容)引起的响应,所以最后电路的稳态为0。
描述n 阶线性时不变(LTI )连续系统的微分方程为:连续时间零状态响应原理零状态响应就是在电路初始状态下(动态储能元件储能为零)由外施激励引起的反应,最终状态的为一确定的实数。
LTI 连续系统可用如下所示的线性常系数微分方程来描述,()()()()NMi j i j i j a yt b ft ===∑∑Matlab 实现及波形输出卷积分程序及仿真利用conv 函数实现连续时间函数卷积分运算实际上就是先将时间离散化,在计算卷积分,最后根据函数画出输出函数波形,如求f1(t ),f2(t )的卷积 ,f (t )=f1(t )*f2(t )。
MATLAB 程序:t=0:0.1:2*pi;f1=input('输入函数f1='); f2=input('输入函数f2=');1121111n n mn n m m n n m d y d y dy d u du a a a a y b b b u dt dt dt dt dt-++-++⋅⋅⋅⋅⋅++=+⋅⋅⋅⋅++dt=input('dt=');y=conv(f1,f2);plot(dt*([1:length(y)]-1),y);grid on;title('卷积');xlabel('t');ylabel('f1'*f)程序运行结果:输入以下数据:f1=sin(3*t) f2=cos(3*t+2) dt=0.01 得出图形如图4.1所示:卷积tf 1*f 2图4.1 卷积和输出波形图卷积分运用:利用卷积求零状态系统零状态响应()()*()zs y t e t h t =,其中激励信号e(t),系统单位冲激响应h(t)。
已知系统单位冲激响应[]()()(2)2th t u t u t =--,系统激励()(0.5)(1)e t u t u t =+--,使用卷积法求系统零状态响应()*()e t h t zs r (t)=。
MATLAB 程序为: a=1000; t=-5:1/a:5;h=0.5*t.* (stepfun(t,0)-stepfun(t,2) ); e=stepfun(t,-0.5)-stepfun(t,1);r=conv(h,e);t=-10:1/a:10;plot(t,r);title('零状态响应r(t)'); xlabel('t');ylabel('r');零输入程序及仿真建模当LIT 系统的输入为零时,其零输入响应为微分方程的其次解(即令微分方程的等号右端为零),其形式为(设特征根均为单根)其中p 1,p 2,…,p n 是特征方程a1λn+a2λn-1+…+an λ+an=0的根,它们可以用root(a)语句求得。
各系数 由y 及其各阶导数的初始值来确定。
对此有………………………………………………………………………………………写成矩阵形式为: P 1n-1C 1+ P 2n-1C 2+…+ P n n-1C n =D n-1y 01012201111120111n n n n n n n C y p p p C Dy p p p C D y ----⋅⋅⋅⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⋅⋅⋅⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⋅⋅⋅⎣⎦⎣⎦⎣⎦即 V •C=Y 0 其解为:C=V\Y 0 式中 1212()n p tp tp t n y t C e C e C e =++⋅⋅⋅⋅+120n C C C y ++⋅⋅⋅⋅+=11220n n p C p C p C Dy ++⋅⋅⋅⋅+=111111220n n n n n np C p C p C D y ----++⋅⋅⋅⋅+=[]12n C C C C =⋅⋅⋅1000n C y Dy D y -⎡⎤=⋅⋅⋅⎣⎦V 为德蒙矩阵,在matlab 的特殊矩阵库中有vander 。
以下面式子为例: y(0_)=1,y(0_)=5; MATLAB 程序:a=input('输入分母系数a=[a1,a2,...]='); n=length(a)-1;Y0=input('输入初始条件向量 Y0=[y0,Dy0,D2y0,...]='); p=roots(a);V=rot90(vander(p)); c=V\Y0'; dt=input('dt='); te=input('te='); t=0:dt:te;y=zeros(1,length(t)); for k=1:ny=y+c(k)*exp(p(k)*t); end plot(t,y); grid on ; xlabel('t') ;1211112111n n n n n p p p V p p p ---⋅⋅⋅⎡⎤⎢⎥⋅⋅⋅⎢⎥=⎢⎥⎢⎥⋅⋅⋅⎣⎦''''()5()4()2()4()y t y t y t f t f t ++=-ylabel('y'); title('零输入响应');程序运行结果:用这个通用程序来解一个三阶系统,运行此程序并输入 a=[1,5,4] Y0=[1,5] dt=0.01 te=6结果如下图:根据图可以分析零输入响应,它的起始值与输入函数无关,只与它的初始状态值有关,其起始值等于y(0_)的值。
随着时间的推移,最后零输入响应的值无限的趋近于0。
ty零输入响应零状态态程序及仿真我们知道,LTI 连续系统可用如下所示的线性常系数微分方程来描述,()()00()()N Mi j i j i j a y t b f t ===∑∑ 例如,对于以下方程:''''''''''''32103210()()()()()()()()a y t a y t a y t a y t b f t b f t b f t b f t +++=+++可用32103210[,,,],[,,,],a a a a a b b b b b ==输入函数()u f t =,得出它的冲击响应h ,再根据LTI 系统的零状态响应y (t )是激励u (t )与冲击响应h (t )的卷积积分。
注意,如果微分方程的左端或右端表达式中有缺项,则其向量a 或b 中的对应元素应为零,不能省略不写,否则出错。
求函数的零状态响应及初始状态'(0)(0)0zs zs y y --==。
输入函数()sin(3*)cos(2*)f t t t =+。
建模先求出系统的冲击响应,写出其特征方程2540λλ++=求出其特征根为p 和p ,及相应的留数r ,r ;则冲击响应为 1212()p t p t h t re r e =+输入y (t )可用输入u (t )与冲击响应h (t )的卷积求得。
MATLAB 程序:a=input('输入分母系数a=[a1,a2,...]=');b=input('输入输入信号系数b=[b1,b2,...]=');dt=input('dt=');te=input('te=');''''()5()4()2()4()y t y t y t f t f t ++=-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);gridtitle('冲击函数');y=conv(u,h)*dt;subplot(2,1,2),plot(t,y(1:length(t)));gridtitle('零状态响应');程序运行结果执行这个程序,取a=[1,5,4] b=[2,4] dt=0.01 te=6u t t=+sin(3*)cos(2*)得出图形如下:由于初始状态为零,所以零状态的起始值也为零,即h(t)包含了连续系统的固有特性,与系统的输入无关。