x1=zeros(1,nl);
zi1=filtic(num,den,y01,x01); y1=filter(num,den,x1,zi1); subplot(3,1,1); stem(n,y1,'r.'); title('零输入响应'); y02=[0 0]; x02=[0 0]; x2=0.8.^n;
zi2=filtic(num,den,y02,x02); y2=filter(num,den,x2,zi2); subplot(3,1,2); stem(n,y2,'r.'); title('零状态响应'); y03=[10 30]; x03=[0 0]; x3=0.8.^n;
zi3=filtic(num,den,y03,x03); y3=filter(num,den,x1,zi3); subplot(3,1,3); stem(n,y3,'r.'); title('全响应'); 结果:
6
与用lism函数求出的结果相同。
4.选择一个连续时间 LTI 系统进行实验。可考虑以下的问题:系统的微分方程为 y’’ (t) + 5y’(t) + 6y (t) = 2x’(t) + 8x (t),输入信号为 x (t) = e?tu (t),输出的初始值为 y (0?) = 5, y’(0?) = ?4。
(a) 画出系统的单位冲激响应和单位阶跃响应; 源代码: a=[1 5 6]; b=[2 8]; sys=tf(b,a); t=0:0.01:10;
subplot(2,1,1); impulse(sys,t); subplot(2,1,2); step(sys,t); 结果:
7
5.(b) 给定或求出相应的系统状态变量的初值; 结果:
8
6.计算并画出系统的零输入响应、零状态响应和全响应; 源代码: clear; a=[1 5 6]; b=[2 8];
[A,B,C,D]=tf2ss(b,a); sys=ss(A,B,C,D); X0=[7/18 0.25]; t=0:0.01:10; f=exp(-t);
yzi=lsim(sys,zeros(1,length(t)),t,X0); yzs=lsim(sys,f,t); y=lsim(sys,f,t,X0); plot(t,yzi,'r:',t,yzs,'g--',t,y);
xlabel('Time?(seconds)'); ylabel('Amplitude');
legend('Zero?Input?Response','Zero?State?Response','Total?Response'); 结果:
9
7.用 Simulink 求解系统的响应。
四、 讨论
心得体会:
本次实验我主要学会了用MATLAB 函数对线性时不变系统的时域特性进行仿真分析; 在实验过程中,我们要一步步按照PDF上的步骤来,并且需要我们有足够耐心和细心,这个实验帮助我们更好为之后信号与系统学习起到很大的帮助。
思考题:
1.Simulink 的模块库中提供了 Transfer Fcn 和 State-Space 模块,是否可以利用这两个模块简化本实验中的 Simulink 的求解过程?
答:可以。
10