连续时间LTI系统分析
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三连续时间LTI系统分析
一、实验目的
(一)掌握使用Matlab进行连续系统时域分析的方法
1、学会使用符号法求解连续系统的零输入响应和零状态响应
2、学会使用数值法求解连续系统的零状态响应
3、学会求解连续系统的冲激响应和阶跃响应
(二)掌握使用Matlab进行连续时间LTI系统的频率特性及频域分析方法
1、学会运用MATLAB分析连续系统的频率特性
2、学会运用MATLAB进行连续系统的频域分析
(三)掌握使用Matlab进行连续时间LTI系统s域分析的方法
1、学会运用MATLAB求拉普拉斯变换(LT)
2、学会运用MATLAB求拉普拉斯反变换(ILT)
3、学会在MATLAB环境下进行连续时间LTI系统s域分析
二、实验条件
装有MATLAB的电脑
三、实验内容
(一)熟悉三部分相关内容原理
(二)完成作业
1、已知某系统的微分方程如下:
)(3)()(2)(3)(t e t e t r t r t r +'=+'+''
其中,)(t e 为激励,)(t r 为响应。
(1) 用MATLAB 命令求出并画出2)0(,1)0(),()(3='==---r r t u e t e t 时系统的
零状态响应和零输入响应(零状态响应分别使用符号法和数值法求解,零输入
响应只使用符号法求解);
符号法求解零输入响应: >> eq='D2y+3*Dy+2*y=0';
>> cond='y(0)=1,Dy(0)=2';
>> yzi=dsolve(eq,cond);
>> yzi=simplify(yzi)
yzi =
符号法求解零状态响应:exp(-2*t)*(4*exp(t) - 3)
eq1='D2y+3*Dy+2*y=Dx+3*x';
eq2='x=exp(-3*t)*heaviside(t)';
cond='y(-0.001)=0,Dy(-0.001)=0';
yzs=dsolve(eq1,eq2,cond);
yzs=simplify(yzs)
yzs =
(exp(-2*t)*(exp(t) - 1)*(sign(t) + 1))/2
图像如下:
代码:subplot(211)
ezplot(yzi,[0,8]);
grid on
title('ÁãÊäÈëÏìÓ¦')
subplot(212)
ezplot(yzs,[0,8]);
grid on
title('Áã״̬ÏìÓ¦')
数值计算法:
t=0:0.01:10;
sys=tf([1,3],[1,3,2]);
f=exp(-3*t).*uCT(t);
y=lsim(sys,f,t);
plot(t,y),grid on;
axis([0 10 -0.001 0.3]);
title('ÊýÖµ¼ÆËã·¨µÄÁã״̬ÏìÓ¦')
(2)使用MATLAB命令求出并画出系统的冲激响应和阶跃响应(数值法);用卷积积分法求系统的零状态响应并与(1)中结果进行比较;
系统的冲激响应和阶跃响应(数值法):
代码:
t=0:0.01:10;
sys=tf([1,3],[1,3,2]);
h=impulse(sys,t);
g=step(sys,t);
subplot(211)
plot(t,h),grid on;
axis([0 10 -0.01 1.1]);
title('³å¼¤ÏìÓ¦')
subplot(212)
plot(t,g),grid on;
axis([0 10 -0.01 1.6]);
title('½×Ô¾ÏìÓ¦'
卷积积分法求系统的零状态响应:
Ctsconv函数的定义:
function[f,t]=ctsconv(f1,f2,t1,t2,dt)
f=conv(f1,f2);
f=f*dt;
ts=min(t1)+min(t2);
te=max(t1)+max(t2);
t=ts:dt:te;
subplot(221)
plot(t1,f1);
grid on
axis([min(t1),max(t1),min(f1)-abs(min(f1)*0.2),max(f1)+abs(max(f1)*0.2)])
title('f1(t)');
xlabel('t')
subplot(222)
plot(t2,f2);
grid on
axis([min(t2),max(t2),min(f2)-abs(min(f2)*0.2),max(f2)+abs(max(f2)*0.2)])
title('f2(t)');
xlabel('t')
subplot(212)
plot(t,f);
grid on
axis([min(t),max(t),min(f)-abs(min(f)*0.2),max(f)+abs(max(f)*0.2)])
title('f(t)=f1(t)*f2(t)');
xlabel('t')
求系统的零状态响应代码:
dt=0.01;t1=0:dt:10;
f1=exp(-3*t1).*uCT(t1);
t2=t1;
sys=tf([1,3],[1,3,2]);
f2=impulse(sys,t2);
[t,f]=ctsconv(f1,f2,t1,t2,dt)
如图,根据两图相比较,两种方法做出的零状态响应大体相同。