文档库

最新最全的文档下载
当前位置:文档库 > 实验三 连续时间LTI系统的时域分析

实验三 连续时间LTI系统的时域分析

实验三 连续时间LTI 系统的时域分析 一、实验目的

1.学会用MA TLAB 求解连续系统的零状态响应; 2. 学会用MATLAB 求解冲激响应及阶跃响应; 3.学会用MA TLAB 实现连续信号卷积的方法; 二、实验原理

1.连续时间系统零状态响应的数值计算

我们知道,LTI 连续系统可用如下所示的线性常系数微分方程来描述,

()

()0

()()N

M

i j i j i j a y

t b f t ===∑∑

在MA TLAB 中,控制系统工具箱提供了一个用于求解零初始条件微分方程数值解的函数lsim 。其调用格式

y=lsim(sys,f,t)

式中,t 表示计算系统响应的抽样点向量,f 是系统输入信号向量,sys 是LTI 系统模型,用来表示微分方程,差分方程或状态方程。其调用格式

sys=tf(b,a)

式中,b 和a 分别是微分方程的右端和左端系数向量。例如,对于以下方程:

''''''''''''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 == (,)sys tf b a = 获得其LTI 模型。

注意,如果微分方程的左端或右端表达式中有缺项,则其向量a 或b 中的对应元素应为零,不能省略不写,否则出错。

例3-1 已知某LTI 系统的微分方程为 y’’(t)+ 2y’(t)+100y(t)=f(t)

其中,'

(0)(0)0,()10sin(2)y y f t t π===,求系统的输出y(t).

解:显然,这是一个求系统零状态响应的问题。其MATLAB 计算程序如下: ts=0;te=5;dt=0.01; sys=tf([1],[1,2,100]); t=ts:dt:te;

f=10*sin(2*pi*t); y=lsim(sys,f,t); plot(t,y);

xlabel('Time(sec)'); ylabel('y(t)');

2.连续时间系统冲激响应和阶跃响应的求解

在MATLAB 中,对于连续LTI 系统的冲激响应和阶跃响应,可分别用控制系统工具箱提供的函数impluse 和step 来求解。其调用格式为 y=impluse(sys,t)

y=step(sys,t)

式中,t 表示计算系统响应的抽样点向量,sys 是LTI 系统模型。

例3-2已知某LTI 系统的微分方程为 y’’(t)+ 2y’(t)+100y(t)=10f(t)

求系统的冲激响应和阶跃响应的波形. 解:ts=0;te=5;dt=0.01; sys=tf([10],[1,2,100]);

t=ts:dt:te;

h=impulse(sys,t); figure; plot(t,h);

xlabel('Time(sec)'); ylabel('h(t)');

g=step(sys,t); figure; plot(t,g);

xlabel('Time(sec)');

ylabel('g(t)');

3. 用MATLAB 实现连续时间信号的卷积

信号的卷积运算有符号算法和数值算法,此处采用数值计算法,需调用MATLAB 的conv( )函数近似计算信号的卷积积分。连续信号的卷积积分定义是

τττd t f f t f t f t f ?∞

--=*=)()()()()(2121

如果对连续信号)(1t f 和)(2t f 进行等时间间隔?均匀抽样,则)(1t f 和)(2t f 分别变为离散时间信号)(1?m f 和)(2?m f 。其中,m 为整数。当?足够小时,)(1?m f 和)(2?m f 既为连续时间信号)(1t f 和)(2t f 。因此连续时间信号卷积积分可表示为

∑?∞

-∞

=→?∞

-?

??-??=-=*=m m t f

m f d t f f t f t f t f )()()()()()()(2

102121lim

τ

ττ

采用数值计算时,只求当?=n t 时卷积积分)(t f 的值)(?n f ,其中,n 为整数,既

∑∑∞

-∞

=∞

-∞

=?-???=?

??-???=

?m m m n f m f m n f

m f n f ]

)[()()()()(212

1

其中,

∑∞

-∞

=?-??m m n f

m f ])[()(2

1

实际就是离散序列)(1?m f 和)(2?m f 的卷积和。

当?

足够小时,序列)(?n f 就是连续信号)(t f 的数值近似,既

)]()([)()(21n f n f n f t f *?=?≈

上式表明,连续信号)(1t f 和)(2t f 的卷积,可用各自抽样后的离散时间序列的卷积再乘以抽样间隔?。抽样间隔?越小,误差越小。

例3-3用数值计算法求)2()()(1--=t t t f εε与)()(32t e t f t ε-=的卷积积分。

解:因为)()(32t e t f t ε-=是一个持续时间无限长的信号,而计算机数值计算不可能计算真正的无限长信号,所以在进行)(2t f 的抽样离散化时,所取的时间范围让)(2t f 衰减到足够小就可以了,本例取5.2=t 。程序是

dt=0.01; t=-1:dt:2.5; f1=(t>=0); f2=(t>=2); f3=f1-f2

f4=exp(-3*t).*f1; f=conv(f3,f4)*dt

n=length(f); tt=(0:n-1)*dt-2; subplot(221), plot(t,f3), grid on;

axis([-1,2.5,-0.2,1.2]); title('f1(t)'); xlabel('t') subplot(222), plot(t,f4), grid on;

axis([-1,2.5,-0.2,1.2]); title('f2(t)'); xlabel('t') subplot(223), plot(tt,f), grid on; title('f(t)=f1(t)*f2(t)'); xlabel('t')

y=(1/3-1./3*exp(-3*t)).*f1-(1/3-1./3*exp(-3*(t-2))).*f2; subplot(224), plot(t,y), grid on title('f(t)=f1(t)*f2(t)'); xlabel('t')

由于)(1t f 和)(2t f 的时间范围都是从t=-1开始,所以卷积结果的时间范围从 t=-2开始,增量还是取样间隔?,这就是语句tt=(0:n-1)*dt-2的由来。 三、上机实验内容

1. 验证实验原理中所述的相关程序

2. 已知描述系统的微分方程和激励信号f(t)如下,试用解析法求系统的零状态响应y(t),并用MATLAB 绘出系统零状态响应的时域仿真波形,验证结果是否相同 y ’’(t)+ 4y’(t)+4y(t)=f’(t)+3f(t) f(t)= exp(-t))(t ε ts=0;te=5;dt=0.01; f1=(t>=0);

sys=tf([1 3],[1 4 4]);

t=ts:dt:te;

f=exp(-t).*f1;

y=lsim(sys,f,t);

plot(t,y);

xlabel('Time(sec)');

ylabel('y(t)');

实验三 连续时间LTI系统的时域分析

3.已知描述系统的微分方程如下,试用MA TLAB求系统在0~10秒范围内冲激响应和阶跃响应的数值解,并用绘出系统冲激响应和阶跃响应的时域波形

y’’(t)+3y’(t)+2y(t)=f(t)

(1):t=0:0.01:5;

n=[1 3 2];

m=[1];

sys=tf(m,n);

h=impulse(sys,t);

figure;

plot(t,h);

xlabel('Time(sec)');

ylabel('h(t)');

g=step(sys,t);

figure;

plot(t,g);

xlabel('Time(sec)'); ylabel('g(t)');

实验三 连续时间LTI系统的时域分析

实验三 连续时间LTI系统的时域分析

y’’(t)+ 2y’(t)+2y(t)=f’(t)

t=0:0.01:5;

n=[1 2 2];

m=[1 0];

sys=tf(m,n);

h=impulse(sys,t); figure;

plot(t,h);

xlabel('Time(sec)');

ylabel('h(t)');

g=step(sys,t);

figure;

plot(t,g);

xlabel('Time(sec)');

ylabel('g(t)');

实验三 连续时间LTI系统的时域分析

实验三 连续时间LTI系统的时域分析

4.画出信号卷积积分)()(21t f t f *的波形,)1()()()(21--==t t t f t f εε dt=0.01; t=-1:dt:3; f1=(t>=0); f2=(t>=1); f3=f1-f2;

f=conv(f3,f3)*dt; n=length(f); tt=(0:n-1)*dt-2; subplot(221); plot(t,f1); grid on;

axis([-1,3,-0.2,1.2]); title('f1(t)'); xlabel('t') subplot(222); plot(t,f2); grid on;

axis([-1,3,-0.2,1.2]); title('f2(t)'); xlabel('t') subplot(223); plot(t,f3); grid on;

axis([-1,3,-0.2,1.2]); title('f3(t)'); xlabel('t'); subplot(224); plot(tt,f); grid on;

title('f(t)=f3(t)*f3(t)'); xlabel('t');

实验三 连续时间LTI系统的时域分析

四、实验要求

1. 在MATLAB中输入程序,验证实验结果,并将实验结果存入指定存储区域。

2. 对于程序设计实验,要求通过对验证性实验的练习,自行编制完整的实验程序,实现对信号的模拟,并得出实验结果。

3. 在实验报告中写出完整的自编程序,并给出实验结果。

五、思考题

1. 连续时间系统的数学模型有哪些?

2. 可否用lsim函数编程实现求解例3-2中的冲击响应和阶跃响应?

h即可认为是零状态响应,也可认为是零输入响应?

3. 为什么说系统的冲击响应)(t