实验五 连续系统分析
一、实验目的
1.深刻理解连续时间系统的系统函数在分析连续系统的时域特性、频域特性及稳定性中的重要作用及意义,掌握根据系统函数的零极点设计简单的滤波器的方法。
2.掌握利用MATLAB分析连续系统的时域响应、频响特性和零极点的基本方法。
二、实验原理及内容
MATLAB提供了许多可用于分析线性时不变连续系统的函数,主要包含有系统函数、系统时域响应、系统频域响应等分析函数。 1. 连续系统的时域响应
连续时间LTI系统可用如下的线性常系数微分方程来描述:
any(n)(t)?an?1y(n?1)(t)???a1y (t)?a0y(t)?bmx(m)(t)?bm?1x(m?1)(t)???b1x (t)?b0x(t)
已知输入信号x(t)以及系统初始状态y(0?),y'(0?),?,y(n?1)(0?),就可以求出系统的响应。
MATLAB提供了微分方程的数值计算的函数,可以计算上述n阶微分方程描述的连续系统的响应,包括系统的单位冲激响应、单位阶跃响应、零输入响应、零状态响应和完全响应。
在调用MATLAB函数时,需要利用连续系统对应的系数函数。对微分方程进行Laplace变换即可得系统函数:
Y(s)bmsm?bm?1sm?1???b1s?b0 H(s)??X(s)ansn?an?1sn?1???a1s?a0在MATLAB中可使用向量和向量分别保存分母多项式和分子多项式的系数:
a?[an,an?1,?,a1,a0] b?[bm,bm?1,?,b1,b0]
这些系数均按s的降幂直至s0排列。
● 连续系统的单位冲激响应h(t)的计算
impulse(sys)计算并画出系统的冲激响应。 参数:sys可由函数tf(b,a)获得。其中:
a?[an,an?1,?,a1,a0] b?[bm,bm?1,?,b1,b0]
h=impulse(sys, t) 计算出系统在向量t定义的区间上的冲激响应, 向
量h保存对应区间的系统冲激响应的输出值。
● 连续系统的单位阶跃响应g(t)的计算
step(sys)计算并画出系统的阶跃响应。
1
参数:sys可由函数tf(b,a)获得。其中:
a?[an,an?1,?,a1,a0] b?[bm,bm?1,?,b1,b0]
g=step(sys, t) 计算出系统在向量t定义的区间上的阶跃响应,向量g保存对应区间的系统阶跃响应的输出值。
y\(t)?5y' (t)?6y(t)?2x' (t)?8x(t),计算该系统已知描述某连续系统的微分方程:
的单位冲激响应h(t)和阶跃响应g(t)。t=(0:0.1:10)
程序如下
subplot(2,1,1); t=0:0.1:10; a=[1,5,6]; b=[2,8]; sys=tf(b,a);
h=impulse(sys,t); plot(h);
subplot(2,1,2); sys=tf(b,a); g=step(sys,t); plot(g);
程序运行结果如图
● 连续系统的零状态响应y(t)的计算
lsim(sys, x, t) 计算并画出系统的零状态响应。 参数: sys可由函数tf(b,a)获得 x为输入信号
t为定义的时间向量。
已知描述某连续系统的微分方程:y\(t)?5y' (t)?6y(t)?2x' (t)?8x(t),计算在输入x(t)?e?tu(t)为时系统的零状态响应。t=(0:10/300:10)
2
程序如下
t=0:10/300:10; a=[1,5,6]; b=[2,8]; sys=tf(b,a); x=exp(-t)
y=lsim(sys,x,t); plot(t,y);
程序运行结果如图:
2.连续系统的系统函数零极点分析
连续LTI系统的系统函数H(s)可以表示为部分分式形式:
H(s)?(s?z1)(s?z2)...(s?zm)N(s) ?kD(s)(s?p1)(s?p2)...(s?pn)设m?n,且H(s)的极点pi全部为单极点,则:
nki h(t)??kiepitu(t) H(s)??i?1i?1s?pin系统函数H(s)的极点pi决定了冲激响应h(t)的基本形式,而零点和极点共同
确定了冲激响应h(t)的幅值ki。
MATLAB中提供了roots函数计算系统的零极点,提供了pzmap函数绘制连续系统的零极点分布图。
其中:a?[an,an?1,?,a1,a0] b?[bm,bm?1,?,b1,b0]
roots(b):求b的特征根;
roots(a):求a的特征根
pzmap(sys): sys可由函数tf(b,a)获得
2s2?3s?1已知某连续系统的系统函数为:H(s)?3 计算其零极点,画
s?2s2?2s?1出分布图。
3
程序如下
b=[2,3,1]; a=[1,2,2,1]; roots(b); roots(a); sys=tf(b,a); pzmap(sys);
程序运行结果如图:
3.连续系统的频率响应
若连续因果LTI连续系统的系统函数H(s)的极点全部位于S左半平面,则系统的频率响应可由H(s)求出,即
H(j?)?H(s)s?j??H(j?)ej?(?)
MATLAB中freqs函数可以分析连续系统的频响,格式如下:
H=freqs(b,a,w): 计算系统在指定频率点向量w上的频响H;w为频率点向量。 [H,w]=freqs(b,a) :自动选取200个频率点计算频率响应。
其中:a?[an,an?1,?,a1,a0] b?[bm,bm?1,?,b1,b0]
已知某连续系统的系统函数为:H(s)?1,分析系统的幅频特性。 2(s?1)(s?s?1)[H,w]=freqs(b,a); %自动选取若干个频率点计算频率响应 plot(w,abs(H)); %绘制频率响应图 xlabel('Frequency(rad/s)'); %x坐标的频率 ylabel('Amplitude'); %y坐标的振幅 title('Magnitude response'); %频率响应的标题 程序运行结果如图:
4
5