实验二 LTI 系统的响应
一、 实验目的
1. 熟悉连续时间系统的单位冲激响应、阶跃响应的意义及求解方法
2. 熟悉连续(离散)时间系统在任意信号激励下响应的求解方法
3. 熟悉应用MATLAB 实现求解系统响应的方法
二、 实验原理
1.连续时间系统
在MATLAB 中有专门用于求解连续系统冲激响应和阶跃响应, 并绘制其时域波形的函数impulse( ) 和step( )。如果系统输入为f (t ),冲激响应为h(t),系统的零状态响应为y (t ),则有:()()()y t h t f t =*。
若已知系统的输入信号及初始状态,我们便可以用微分方程的经典时域求解方法,求出系统的响应。但是对于高阶系统,手工计算这一问题的过程非常困难和繁琐。
在MATLAB 中,应用lsim( )函数很容易就能对上述微分方程所描述的系统的响应进行仿真,求出系统在任意激励信号作用下的响应。lsim( )函数不仅能够求出连续系统在指定的任意时间范围内系统响应的数值解,而且还能同时绘制出系统响应的时域波形图。 说明:
(1)当系统有初始状态时,若使用lsim( )函数求系统的全响应,就要使用系统的状态空间描述法,即首先要根据系统给定的方式,写出描述系统的状态方程和输出方程。假如系统原来给定的是微分方程或系统函数,则可用相变量法或对角线变量等方法写出系统的状态方程和输出方程。其转换原理如前面实验四所述。
(2)显然利用lsim( )函数不仅可以分析单输入单输出系统,还可以分析复杂的多输入多输出系统。
例题1: 若某连续系统的输入为e (t ),输出为r (t ),系统的微分方程为:
''()5'()6()3'()2()y t y t y t f t f t ++=+
① 求该系统的单位冲激响应h (t )及其单位阶跃响应g (t )。 a=[1 5 6];b=[3 2];
subplot(2,1,1),impulse(b,a,0:0.01:5); subplot(2,1,2),step(b,a,0:0.01:5);
-1
012
3Im pulse Response
Tim e (sec)A m p l i t u d e
0.20.40.6
0.8Step Response
Tim e (sec)
A m p l i t u d e
② 若2()()t
f t e t ε-= 求出系统的零状态响应y(t ) a=[1 5 6];b=[3 2]; t=0:0.01:5; f=exp(-2*t); lsim(b,a,f,t);
Linear Sim ulation R esults
Tim e (sec)
A m p l i t u d e
-0.2
0.2
0.4
0.6
0.8
1
1.2
例题2 已知一个过阻尼二阶系统的状态方程和输出方程分别为:
010'()()()232x t X t f t ????=+????--????
, r (t )=[0 1]X (t ) 。
若系统初始状态为X (0)=[4 -5]T , 求系统在4()3()t
f t e t ε-=作用下的全响应。 A=[0 1;-2 -3];
B=[0 2]';C=[0 1];D=[0]; x0=[4 -5]'; t=0:0.01:10; f=[3*exp(-4*t)]'; lsim(A,B,C,D,f,t,x0);
-5
-4
-3
-2
-1
1
2
3
Linear Sim ulation Results
Tim e (sec)
A m p l i t u d e
2.离散时间系统
MATLAB 中为用户提供了专门用于求解离散系统单位函数响应, 并绘制其时域波形的函数impz( )。同样也提供了求离散系统响应的专用函数filter( ),该函数能求出由差分方程所描述的离散系统在指定时间范围内的输入序列作用时,产生的响应序列的数值解。当系统初值不为零时,可以使用dlsim( )函数求出离散系统的全响应,其调用方法与前面连续系统的lsim( )函数相似。另外,求解离散系统阶跃响应可以通过如下两种方法实现:一种是直接调用专用函数dstep( ),其调用方法与求解连续系统阶跃响应的专用函数step( )的调用方法相似;另一种方法是利用求解离散系统零状态响应的专用函数filter( ),只要将其中的激励信号看成是单位阶跃信号ε(k )即可。 例题:已知描述离散系统的差分方程为:
()0.25(1)0.5(2)()(1)y k y k y k f k f k --+-=+-,且已知系统输入序列为
12()()()
k
f k k ε=, ① 求出系统的单位函数响应h (k )在-3 ~10离散时间范围内响应波形。
a=[1 -0.25 0.5];b=[1 1 0]; impz(b,a,-3:10);
n (samples)
A m p l i t u
d e
Impulse Response
② 求出系统零状态响应在0 ~15区间上的样值;并画出输入序列的时域波形以及系统零状
态响应的波形
a=[1 -0.25 0.5];b=[1 1 0]; k=0:15; f=(1/2).^k; y=filter(b,a,f);
subplot(2,1,1),stem(k,f,'filled'); title('输入序列')
subplot(2,1,2),stem(k,y,'filled'); title('输出序列')
输出序列
三、 实验内容
1. 已知描述系统的微分方程和激励信号e (t ) 分别如下,试用解析方法求系统的单位冲激响应h(t)和零状态响应r (t ),并用MATLAB 绘出系统单位冲激响应和系统零状态响应的波形,验证结果是否相同。
①''()4'()4()'()3()y t y t y t f t f t ++=+;()()t
f t e t ε-= a=[1 4 4];b=[1 3]; t=0:0.01:5; f=exp(-t);
subplot(2,1,1),impulse(b,a,t); title('单位冲激响应'); subplot(2,1,2),lsim(b,a,f,t); title('零状态响应');
0.5
1
单位冲激响应
Tim e (sec)
A m p l i t u d e
0.5
1
零状态响应
Tim e (sec)
A m p l i t u d e
②''()2'()26()'()y t y t y t f t ++=;()()f t t ε= a=[1 2 26];b=[1]; t=0:0.01:5; f=stepfun(t,0);
subplot(2,1,1),impulse(b,a,t); subplot(2,1,2),lsim(b,a,f,t);