1、0实验二 LTI 系统的响应一、 实验目的1. 熟悉连续时间系统的单位冲激响应、阶跃响应的意义及求解方法2. 熟悉连续(离散)时间系统在任意信号激励下响应的求解方法3. 熟悉应用 MATLAB 实现求解系统响应的方法二、 实验原理1.连续时间系统对于连续的 LTI 系统,当系统输入为 f(t),输出为 y(t),则输入与输出之间满足如下的线性常系数微分方程: ,当系统输入为单位冲激信号 (t)时产生的零状态响应称为系统的单()()00nmi ji jaytbft位冲激响应,用 h(t)表示。若输入为单位阶跃信号 (t)时,系统产生的零状态响应则称为系统的单位阶跃响应,记为 g(t),如下图所示
2、。系统的单位冲激响应 h(t)包含了系统的固有特性,它是由系统本身的结构及参数所决定的,与系统的输入无关。我们只要知道了系统的冲激响应,即可求得系统在不同激励下产生的响应。因此,求解系统的冲激响应 h(t)对我们进行连续系统的分析具有非常重要的意义。在 MATLAB 中有专门用于求解连续系统冲激响应和阶跃响应, 并绘制其时域波形的函数 impulse( ) 和 step( )。如果系统输入为 f(t),冲激响应为 h(t),系统的零状态响应为 y(t),则有: 。()(ythft若已知系统的输入信号及初始状态,我们便可以用微分方程的经典时域求解方法,求出系统的响应。但是对于高阶系统,手工计算这
3、一问题的过程非常困难和繁琐。在 MATLAB 中,应用 lsim( )函数很容易就能对上述微分方程所描述的系统的响应进行仿真,求出系统在任意激励信号作用下的响应。lsim( )函数不仅能够求出连续系统在指定的任意时间范围内系统响应的数值解,而且还能同时绘制出系统响应的时域波形图。以上各函数的调用格式如下: impulse( ) 函数函数 impulse( )将绘制出由向量 a 和 b 所表示的连续系统在指定时间范围内的单位冲激响应 h(t)的时域波形图,并能求出指定时间范围内冲激响应的数值解。 impulse(b,a) 以默认方式绘出由向量 a 和 b 所定义的连续系统的冲激响应的时域波形。
4、impulse(b,a ,t0) 绘出由向量 a 和 b 所定义的连续系统在 0 t0 时间范围内冲激响应的时域波形。 impulse(b,a,t1:p:t2) 绘出由向量 a 和 b 所定义的连续系统在 t1 t2 时间范围内,并且以时间间隔p 均匀取样的冲激响应的时域波形。1 y=impulse(b,a,t1:p:t2) 只求出由向量 a 和 b 所定义的连续系统在 t1 t2 时间范围内,并且以时间间隔 p 均匀取样的冲激响应的数值解,但不绘出其相应波形。 step( ) 函数函数 step( )将绘制出由向量 a 和 b 所表示的连续系统的阶跃响应,在指定的时间范围内的波形图,并且求出
5、数值解。和 impulse( )函数一样,step( )也有如下四种调用格式:step( b,a)step(b,a,t0)step(b,a,t1:p:t2)y=step(b,a,t1:p:t2) 上述调用格式的功能和 impulse( )函数完全相同,所不同只是所绘制(求解)的是系统的阶跃响应 g(t),而不是冲激响应 h(t)。 lsim( )函数根据系统有无初始状态,lsim( )函数有如下两种调用格式:系统无初态时,调用 lsim( )函数可求出系统的零状态响应,其格式如下: lsim(b,a,x,t) 绘出由向量 a 和 b 所定义的连续系统在输入为 x 和 t 所定义的信号时,系统零
6、状态响应的时域仿真波形,且时间范围与输入信号相同。其中 x 和 t 是表示输入信号的行向量,t 为表示输入信号时间范围的向量,x 则是输入信号对应于向量 t 所定义的时间点上的取样值。 y=lsim(b,a,x,t) 与前面的 impulse 和 step 函数类似,该调用格式并不绘制出系统的零状态响应曲线,而只是求出与向量 t 定义的时间范围相一致的系统零状态响应的数值解。系统有初始状态时,调用 lsim( )函数可求出系统的全响应,格式如下: lsim(A,B,C,D,e,t,X0) 绘出由系数矩阵 A,B,C,D 所定义的连续时间系统在输入为 e 和 t 所定义的信号时,系统输出函数的全
7、响应的时域仿真波形。t 为表示输入信号时间范围的向量,e 则是输入信号 e(t)对应于向量 t 所定义的时间点上的取样值, X0 表示系统状态变量 X=x1,x2,.xn在 t=0 时刻的初值。 Y,X= lsim(A,B,C,D,e,t,X0) 不绘出全响应波形,而只是求出与向量 t 定义的时间范围相一致的系统输出向量 Y 的全响应以及状态变量 X 的数值解。显然,函数 lsim( )对系统响应进行仿真的效果取决于向量 t 的时间间隔的密集程度,t 的取样时间间隔越小则响应曲线越光滑,仿真效果也越好。说明:(1)当系统有初始状态时,若使用 lsim( )函数求系统的全响应,就要使用系统的状态
8、空间描述法,即首先要根据系统给定的方式,写出描述系统的状态方程和输出方程。假如系统原来给定的是微分方程或系统函数,则可用相变量法或对角线变量等方法写出系统的状态方程和输出方程。(2)显然利用 lsim( )函数不仅可以分析单输入单输出系统,还可以分析复杂的多输入多输出系统。例题 1: 若某连续系统的输入为 f(t),输出为 y(t),系统的微分方程为:(56(32(yttyff求该系统的单位冲激响应 h(t)及其单位阶跃响应 g(t)。若 求出系统的零状态响应 y(t)2()tfe分析: 求冲激响应及阶跃响应的 MATLAB 程序:a=1 5 6;b=3 2;subplot(2,1,1), i
9、mpulse(b,a,4)2subplot(2,1,2), step(b,a,4)运行结果如右: 求零状态响应的 MATLAB 程序:a=1 5 6;b=3 2;p1=0.01; %定义取样时间间隔为 0.01t1=0:p1:5; %定义时间范围x1=exp(-2*t1); %定义输入信号lsim(b,a,x1,t1), %对取样间隔为 0.01 时系统响应进行仿真hold on; %保持图形窗口以便能在同一窗口中绘制多条曲线p2=0.5; %定义取样间隔为 0.5t2=0:p2:5; %定义时间范围x2=exp(-2*t2); %定义输入信号lsim(b,a,x2,t2), hold off
10、 %对取样间隔为 0.5 时系统响应进行仿真并解除保持运行结果如下:例题 2 已知一个过阻尼二阶系统的状态方程和输出方程分别为:, r( t)=0 1X(t) 。 010()()232xtXtft若系统初始状态为 X(0)=4 -5T , 求系统在 作用下的全响应。43te求全响应程序如下:A=0 1 ; -2 -3 ;B=0 2;C=0 1;D=0;X0=4 -5; %定义系统初始状态t=0: 0.01:10; E=3*exp(-4*t).*ones(size(t); %定义系统激励信号r , x=lsim(A,B,C,D,E,t,X0); %求出系统全响应的数值解plot(t,r) %绘制
11、系统全响应波形运行结果如右。2.离散时间系统3LTI 离散系统中,其输入和输出的关系由差分方程描述:(前向差分方程)00()()nmi jaykbfk(后向差分方程)i jfnj当系统的输入为单位序列 (k)时产生的零状态响应称为系统的单位函数响应,用 h(k)表示。当输入为 (k)时产生的零状态响应称为系统的单位阶跃应,记为: g(k),如下图所示。如果系统输入为 e(k),冲激响应为 h(k),系统的零状态响应为 y(k),则有: 。与()()ykhfk连续系统的单位冲激响应 h(t)相类似,离散系统的单位函数响应 h(k)也包含了系统的固有特性,与输入序列无关。我们只要知道了系统的单位函
12、数响应,即可求得系统在不同激励信号作用下产生的响应。因此,求解系统的单位函数响应 h(k)对我们进行离散系统的分析也同样具有非常重要的意义。MATLAB 中为用户提供了专门用于求解离散系统单位函数响应, 并绘制其时域波形的函数 impz( )。同样也提供了求离散系统响应的专用函数 filter( ),该函数能求出由差分方程所描述的离散系统在指定时间范围内的输入序列作用时,产生的响应序列的数值解。当系统初值不为零时,可以使用 dlsim( )函数求出离散系统的全响应,其调用方法与前面连续系统的 lsim( )函数相似。另外,求解离散系统阶跃响应可以通过如下两种方法实现:一种是直接调用专用函数 d
13、step( ),其调用方法与求解连续系统阶跃响应的专用函数 step( )的调用方法相似;另一种方法是利用求解离散系统零状态响应的专用函数 filter( ),只要将其中的激励信号看成是单位阶跃信号 (k)即可。函数的调用格式分别如下: impz( )函数 impz(b,a) 以默认方式绘出由向量 a 和 b 所定义的离散系统单位函数响应的时域波形。 impz(b,a,n) 绘出由向量 a 和 b 所定义的离散系统在 0 n (n 必须为整数)的离散时间范围内单位函数响应的时域波形。 impz(b,a,n1:n2) 绘出由向量 a 和 b 所定义的离散系统在 n1 n2 (n1、n2 必须为整
14、数)的离散时间范围内单位函数响应的时域波形。 y=impz(b,a,n1:n2) 求出由向量 a 和 b 所定义的离散系统在 n1 n2 (n1、n2 必须为整数)的离散时间范围内单位函数响应的数值解,但不绘出波形。 filter( ) 函数 filter(b,a,x) 其中 a 和 b 与前面相同,x 是包含输入序列非零样值点的的行向量。此命令将求出系统在与 x 的取样时间点相同的输出序列样值。例题:已知描述离散系统的差分方程为: ,且已知系()0.25(1)0.(2)(1)ykykfk统输入序列为 ,12()()kf 求出系统的单位函数响应 h(k)在-3 10 离散时间范围内响应波形。
15、求出系统零状态响应在 0 15 区间上的样值;并画出输入序列的时域波形以及系统零状态响应的波形分析: 求系统的单位函数响应的 MATLAB 程序:a=1,-0.25,0.5; b=1,1,0; 4impz(b,a,-3:10), title(单位响应) %绘出单位函数响应在 -3 10 区间上的波形运行结果如图 a。求零状态响应的 MATLAB 程序:列表达式y=filter(b,a,x) %求解零状态响应样值subplot(2,1,1),stem(k,x) %绘制输入序列的波形 title(输入序列 )subplot(2,1,2),stem(k,y) %绘制零状态响应的波形title(输出序
16、列 )运行结果如下:y =Columns 1 through 10 1.0000 1.7500 0.6875 -0.3281 -0.2383 0.1982 0.2156 -0.0218 -0.1015 -0.0086Columns 11 through 16 0.0515 0.0187 -0.0204 -0.0141 0.0069 0.0088图 a. 运行结果 图 b. 运行结果三、 实验内容1. 已知描述系统的微分方程和激励信号 f(t) 分别如下,试用解析方法求系统的单位冲激响应 h(t)和零状态响应 r(t),并用 MATLAB 绘出系统单位冲激响应和系统零状态响应的波形,验证结果是否
17、相同。 ; 4()3ytytftft()te ; 26()t () ;3tft2t如下图所示的电路中,已知 , ,且两电感上初始电流分别为134R12()LH,如果以电阻 上电压 作为系统输出,请求出系统在激励12(0),()0iAi()yt(v)作用下的全响应。ftt52. 请用 MATLAB 分别求出下列差分方程所描述的离散系统,在 020 时间范围内的单位函数响应、阶跃响应和系统零状态响应的数值解,并绘出其波形。另外,请将理论值与 MATLAB 仿真结果在对应点上的值作比较,并说出两者的区别和产生误差的原因。 ; ()21)(2)(ykykf14)(fk ; 0.7.72)f()fk ;566f一带通滤波器可由下列差分方程描述: , 其中 为系统()0.8(2ykf()fk输入, 为系统输出。请求出当激励为 (选取适当()yk 1cos/)10cos()fknn的 n 值)时滤波器的稳态输出。四、实验报告要求1.理论上计算出系统的单位冲激响应/单位函数响应、阶跃响应、零状态响应、全响应的表达式,并写出解题过程。2.记录仿真结果(包括数据和波形)。 3.写出程序清单。