實驗原理
線性時不變系統用微分方程描述:
y(n)(t)+an-1y(n-1)(t)+…+a1y(1)(t)+a0y(t)=bmf(m)(t)+bm-1f(m-1)(t)+…+b1f(1)(t)+b0f(t) (2-1)
(1)系統的零狀態響應可通過求解初始狀態為零的微分方程得到。
在MATLAB中,用lsim函數求解LTI的零狀態響應,其調用形式為: y=lsim(sys,f,t) (2-2)
其中,t表示計算系統響應的抽樣點向量,f是系統輸入信號向量matlab求系統單位沖激響應,sys是LTI系統模型,用來表示微分方程,差分方程,狀態方程。在求解微分方程時,微分方程的LTI系統模型sys要借助MATLAB中的tf函數來獲得matlab求系統單位沖激響應,其調用形式為: sys=tf(b,a) (2-3)
式中,向量a表示響應及其各階導數的系數:a=[ an an-1 … a1 a0],一般an=1;
向量b表示激勵及其各階導數的系數: b=[ bm bm-1 … b1 b0]
t表示計算響應所需的時間向量。例如t=c∶d∶e,其中c是起始時間,e是結束時間,d是時間增量。為了做出平滑的曲線,向量t的增量需要取得足夠小。需要注意的是,這里向量a和b的樣本值都是按照導數階數遞減的次序排列的。
也可以把式(3-2)、(3-3)合在一起用,即調用格式為: y=lsim(b,a,f,t) (2-4)
(2)系統的單位沖激響應是單位沖激信號作用在系統產生的零狀態響應。
在MATLAB中,用impulse函數求解LTI的沖激響應,調用形式為: y=impulse (b,a,t)
例題
微分方程為是
,輸入激勵為
,求其零狀態響應和單位沖激響應,并與用解析式表示的結果進行比較。
用MATLAB函數求解沖激響應的程序如下:
clc;clear
t=[0:0.1:10];
b=[1];
a=[1 3];
x=exp(-1t);
yf=lsim(b,a,x,t);
yf1=(1/2)(exp(-1t)-exp(-3t));
plot(t,yf,‘o’,t,yf1,‘r’);
title(‘零狀態響應’);
xlabel(‘t’);ylabel(‘yf(t)’);
legend(‘lsim函數計算結果’,‘解析式計算結果’);
h=impulse(b,a,t);
h1=exp(-3*t);
figure;
plot(t,h,‘o’,t,h1,‘r’);
title(‘單位沖激響應’);
xlabel(‘t’);ylabel(‘h(t)’);
legend(‘impulse函數計算結果’,‘解析式計算結果’);