信号与系统实验指导书 实验四连续时间LTI系统的时域分析 一、实验目的 1、学会运用MATLAB求解连续时间LT系统的零输入响应、零状态响应。 2、学会运用MATLAB求解连续时间LT系统的阶跃响应和冲激响应。 3、熟悉MATLAB相关函数的调用格式及作用。 二、实验原理 为了分析系统,就需要基于己知的原理和公式为系统建立数学模型。LT连续系统可以 采用线性常系数微分方程来描述: anym(0)+an-ym-(0+.+ay'0+a0= bnfm(0)+bn-1fm-(0)++bf)+bf)) 其中,n≥m,系统的初始条件为0-)、y0-)、y(0-)、y-(0-) 系统响应一般包括两个部分,即由当前输入所产生的响应(零状态响应)和由初始状态 所产生的响应(零输入响应)。 此外,系统响应还包括冲激响应和阶跃响应。其中,冲激响应是以单位冲激信号激励时 系统的零状态响应,记为):阶跃响应是以单位阶跃信号激励时系统的零状态响应,记 为g()。对于线性系统而言,阶跃响应是对系统冲激响应的积分。 对于高阶系统,手工计算比较困难,利用MATLAB强大的计算功能可以较容易的求解 系统的各种响应,如冲激响应、阶跃响应、零输入响应、零状态响应及完全响应。 可以利用MATLAB符号工具箱提供的dsoe函数求解常系数微分方程。此外,同时可 采用MATLAB中的impulse(冲激响应)、step(阶跃响应)、roots(零输入响应)、lsim(零 状态响应)等函数分别求解系统的各种响应。要求以系数向量的形式输入系统的微分方程, 使用前必须对系统的微分方程进行变换,得到其传递函数,分别用向量a和b表示分母多项 式和分子多项式的系数(按照降幂排列) 、impulse函数 功能:计算并画出系统的冲激响应。 调用格式: impulse(sys):其中sys可以是利用命令tfpk或ss建立的系统函数。 impulse(sys,t):计算并画出系统在向量t定义的时间内的冲激响应。 Y-impulse((sys,t):保存系统的输出值。 2、step函数
信号与系统实验指导书 -1- 实验四 连续时间 LTI 系统的时域分析 一、实验目的 1、学会运用 MATLAB 求解连续时间 LTI 系统的零输入响应、零状态响应。 2、学会运用 MATLAB 求解连续时间 LTI 系统的阶跃响应和冲激响应。 3、熟悉 MATLAB 相关函数的调用格式及作用。 二、实验原理 为了分析系统,就需要基于已知的原理和公式为系统建立数学模型。LTI 连续系统可以 采用线性常系数微分方程来描述: ( ) ( ) . ( ) ( ) ( ) ( ) . ( ) ( ) 1 0 ( 1) 1 ( ) 1 0 ( 1) 1 ( ) b f t b f t b f t b f t a y t a y t a y t a y t m m m m n n n n 其中, n m ,系统的初始条件为 y(0) 、 y (0)、 y (0) 、.、 (0 ) ( 1) n y 系统响应一般包括两个部分,即由当前输入所产生的响应(零状态响应)和由初始状态 所产生的响应(零输入响应)。 此外,系统响应还包括冲激响应和阶跃响应。其中,冲激响应是以单位冲激信号激励时 系统的零状态响应,记为 h(t) ;阶跃响应是以单位阶跃信号激励时系统的零状态响应,记 为 g(t) 。对于线性系统而言,阶跃响应是对系统冲激响应的积分。 对于高阶系统,手工计算比较困难,利用 MATLAB 强大的计算功能可以较容易的求解 系统的各种响应,如冲激响应、阶跃响应、零输入响应、零状态响应及完全响应。 可以利用 MATLAB 符号工具箱提供的 dsolve 函数求解常系数微分方程。此外,同时可 采用 MATLAB 中的 impulse(冲激响应)、step(阶跃响应)、roots(零输入响应)、lsim(零 状态响应)等函数分别求解系统的各种响应。要求以系数向量的形式输入系统的微分方程, 使用前必须对系统的微分方程进行变换,得到其传递函数,分别用向量 a 和 b 表示分母多项 式和分子多项式的系数(按照降幂排列) 1、impulse 函数 功能:计算并画出系统的冲激响应。 调用格式: impulse( sys):其中 sys 可以是利用命令 tf. zpk 或 ss 建立的系统函数。 impulse(sys,t):计算并画出系统在向量 t 定义的时间内的冲激响应。 Y- impulse(sys,t):保存系统的输出值。 2、step 函数
信号与系统实验指导书 功能:计算并画出系统的阶跃响应曲线。 调用格式: stcp(sys):其中sys可以是利用命令tf.zpk或s建立的系统。 step(sys,t):计算并画出系统在向量t定义的时间内的阶跃响应。 3、lsim函数 功能:计算并画出系统在任意输入下的零状态响应 调用格式: lsim(sys,x,t):其中sys可以是利用命令fZpk或ss建立的系统函数 输入,t定义的是时间范围: Isim(sys,x,t,z:计算出系统在任意输入和零状态下的全响应,sys必须是状态空间形 式的系统函数,是系统的初始状态。 4、roots函数 功能:计算齐次多项式的根。 调用格式: roots(b):计算多项式b的根,r为多项式的根。 三、实验内容 1、连续时间LT1系统零输入响应的求解 【例4-1】已知系统的微分方程为y(0)+3y'(0)+2y()=0,起始条件为y(0-)=1, y'(0-)=2,求系统的零输入响应。 程序如下: eq-D2y+3*Dy+2+y-0: cond=y(0)=1,Dy(0)=2'; yzi=-simplify(dsolve(eq,cond)%系统的零输入响应 ezplot(yzi) 程序运行后,得到系统的零输入响应表达式如下: yzi= -3*exD(-2*t)+4*exD(-t) 零输入响应波形如图4-1所示 2、连续时间LT系统零状态响应的求解 【例4-2】已知系统的微分方程为y"()+3y'(+2)=x'()+3x(t),激励信号为 x()=e(t),求系统的零状态响应。 程序如下: eql=D2y+3*Dy+2*y=Dx+3*x' eq2='x=exp(-3*t)heaviside(t);
信号与系统实验指导书 -2- 功能:计算并画出系统的阶跃响应曲线。 调用格式: step(sys):其中 sys 可以是利用命令 tf. zpk 或 ss 建立的系统。 step(sys,t):计算并画出系统在向量 t 定义的时间内的阶跃响应。 3、lsim 函数 功能:计算并画出系统在任意输入下的零状态响应。 调用格式: lsim(sys,x,t):其中 sys 可以是利用命令 tf_ zpk 或 ss 建立的系统函数'x 输入,t 定义的是时间范围; lsim(sys,x,t,zi):计算出系统在任意输入和零状态下的全响应,sys 必须是状态空间形 式的系统函数,zi 是系统的初始状态。 4、roots 函数 功能:计算齐次多项式的根。 调用格式: roots(b):计算多项式 b 的根,r 为多项式的根。 三、实验内容 1、连续时间 LTI 系统零输入响应的求解 【例 4-1】已知系统的微分方程为 y (t) 3y (t) 2y(t) 0 ,起始条件为 y(0) 1, y (0) 2 ,求系统的零输入响应。 程序如下: eq='D2y+3*Dy+2*y=0'; cond='y(0)=1,Dy(0)=2'; yzi=simplify(dsolve(eq,cond)) %系统的零输入响应 ezplot(yzi) 程序运行后,得到系统的零输入响应表达式如下: yzi = -3*exp(-2*t)+4*exp(-t) 零输入响应波形如图 4-1 所示 2、连续时间 LTI 系统零状态响应的求解 【例 4-2】已知系统的微分方程为 y (t) 3y (t) 2y(t) x (t) 3x(t) ,激励信号为 ( ) ( ) 3 x t e u t t ,求系统的零状态响应。 程序如下: eq1='D2y+3*Dy+2*y=Dx+3*x'; eq2='x=exp(-3*t)*heaviside(t)';
信号与系统实验指导书 cond-y(-0.01=0,Dy-0.01=0 yzs=dsolve(eql,eq2,cond);%系统的零状态响应 yzs=simplify(yzs.y) ezplot(yzs) 程序运行后,得到系统的零状态响应表达式如下: yzs= -heaviside(t)*(exp(-2*t)-exp(-t)) 零状态响应波形如图4-2所示 图41系统零输入响应 图42系统零状态响应 需要注意的是本例题中求解零状态响应时,初始条件y0-)=0、y(0-)=0,但如 果在cond中设定(O)=0、y'(0)=0,则实际为0+)=0、y'(0+)=0,用dsolve 求解将会得出错误的结论。 此外,本例中dsolve解得的结果是关于x(I)和y()的,必须采用simplify(yzs.y)取 出y). 完全响应是零输入响应和零状态响应之和,同样可用plot命令绘制其波形。 以上采用的是符号法求解系统响应,在实际应用中,较多使用的是数值法求解系统响应。 MATLAB控制系统工具箱提供了对LT系统的零状态响应进行数值仿真的函数,其语句格 式如下:
信号与系统实验指导书 -3- cond='y(-0.01)=0,Dy(-0.01)=0'; yzs=dsolve(eq1,eq2,cond);%系统的零状态响应 yzs=simplify(yzs.y) ezplot(yzs) 程序运行后,得到系统的零状态响应表达式如下: yzs = -heaviside(t)*(exp(-2*t)-exp(-t)) 零状态响应波形如图 4-2 所示 需要注意的是本例题中求解零状态响应时,初始条件 y(0) 0、 y (0) 0 ,但如 果在 cond 中设定 y(0) 0、 y (0) 0 ,则实际为 y(0) 0 、 y (0) 0 ,用 dsolve 求解将会得出错误的结论。 此外,本例中 dsolve 解得的结果是关于 x(t) 和 y(t) 的,必须采用 simplify(yzs.y)取 出 y(t) 。 完全响应是零输入响应和零状态响应之和,同样可用 ezplot 命令绘制其波形。 以上采用的是符号法求解系统响应,在实际应用中,较多使用的是数值法求解系统响应。 MATLAB 控制系统工具箱提供了对 LTI 系统的零状态响应进行数值仿真的函数,其语句格 式如下: 图 4-1 系统零输入响应 图 4-2 系统零状态响应
信号与系统实验指导书 y=lsim(sys.f.t) 其中,「为系统激励,t为系统响应的时间抽样点,向量sys表示LT系统模型,实际求 解过程中可以利用MATLAB中的tf函数根据微分方程系数生成,语句格式如下: sys=tf(b.a) 其中,b和分别是微分方程右端和左端的系数向量,即系统模型的分子和分母系数, 当出现对应阶次有缺项时,要在相应的位置写0,不得省略。 对于上述例题,可采用数值法求解,二者结果是相同的,程序如下: 0.01:5 sys=tf[13][132]) f=exp(-3*t).*u(t): yl=lsim(sys,f.t); plot(Ly1) 3、连续时间LT1系统冲激响应、阶跃响应的求解 【例4-3】已知系统的微分方程为y")+3y()+2()=x'(0+3x0),求系统的阶跃响应 和冲激响应。 程序如下: =001:5, 5ys=t[13].132]D h=impulse((sys,t%冲激响应 subplot(211) plot(t,h); xlabel(t). vlabel('h(t)) title(冲激响应 g=step(sys,t):%阶跃响应 subplot(212). plot(tg); xlabel(t). ylabel('g(t)) title(阶跃响应) 4
信号与系统实验指导书 -4- y=lsim(sys,f,t) 其中,f 为系统激励,t 为系统响应的时间抽样点,向量 sys 表示 LTI 系统模型,实际求 解过程中可以利用 MATLAB 中的 tf 函数根据微分方程系数生成,语句格式如下: sys=tf(b,a) 其中,b 和 a 分别是微分方程右端和左端的系数向量,即系统模型的分子和分母系数, 当出现对应阶次有缺项时,要在相应的位置写 0,不得省略。 对于上述例题,可采用数值法求解,二者结果是相同的,程序如下: t=0:.01:5; sys=tf([1 3],[1 3 2]); f=exp(-3*t).*u(t); y1=lsim(sys,f,t); plot(t,y1) 3、连续时间 LTI 系统冲激响应、阶跃响应的求解 【例 4-3】已知系统的微分方程为 y (t) 3y (t) 2y(t) x (t) 3x(t) ,求系统的阶跃响应 和冲激响应。 程序如下: t=0:.01:5; sys=tf([1 3],[1 3 2]); h=impulse(sys,t);%冲激响应 subplot(211) plot(t,h); xlabel('t'); ylabel('h(t)') title('冲激响应') g=step(sys,t);%阶跃响应 subplot(212); plot(t,g); xlabel('t'); ylabel('g(t)') title('阶跃响应')
信号与系统实验指导书 程序运行后,冲激响应和阶跃响应波形如图43所示。 冲激响应 205 000.5115225 33544.5 阶跃响应 15 05 图43系统的冲激响应和阶跃响应 四、实验报告要求 1、已知系统的微分方程为y()+2y()+4y(t)=f"(u+f(t),其中f()=sin(2m)u) 起始条件为(0-)=1,y(0-)=2,求系统的零输入响应。 2、己知系统的微分方程如下,试用MATLAB命令求出系统的零状态响应并绘制零状态响应波 形。 (1)y()+5y'()+6)=6f) (2)y"()+2y'()+4)=5f")+2f(). 3、己知系统的微分方程如下,试用MATLAB命令求出系统的阶跃响应和冲激响应并绘制波形。 (1)y'0+5y'()-6)=4f) (2)y")+2y'()+32y(0=f"()+2f0
信号与系统实验指导书 -5- 程序运行后,冲激响应和阶跃响应波形如图 4-3 所示。 四、实验报告要求 1、已知系统的微分方程为 y (t) 2y (t) 4y(t) f (t) f (t) ,其中 f (t) sin(2t)u(t) 起始条件为 y(0) 1, y (0) 2 ,求系统的零输入响应。 2、已知系统的微分方程如下,试用 MATLAB 命令求出系统的零状态响应并绘制零状态响应波 形。 (1) y (t) 5y (t) 6y(t) 6 f (t) (2) y (t) 2y (t) 4y(t) 5 f (t) 2 f (t) 。 3、已知系统的微分方程如下,试用 MATLAB 命令求出系统的阶跃响应和冲激响应并绘制波形。 (1) y (t) 5y (t) 6y(t) 4 f (t) (2) y (t) 2y (t) 32y(t) f (t) 2 f (t) 图 4-3 系统的冲激响应和阶跃响应 图 1-6 符号 函数信号