实验三 连续时间LTI系统的时域分析实验报告

更新时间:2023-09-25 05:41:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验三 连续时间LTI系统的时域分析

一、实验目的

1、学会使用符号法求解连续系统的零输入响应和零状态响应 2、学会使用数值法求解连续系统的零状态响应

3、学会求解连续系统的冲激响应和阶跃响应

二、实验原理及实例分析

1、连续时间系统零输入响应和零状态响应的符号求解

连续时间系统可以使用常系数微分方程来描述,其完全响应由零输入响应和零状态响应组成。MATLAB符号工具箱提供了dsolve函数,可以实现对常系数微分方程的符号求解,其调用格式为:

dsolve(‘eq1,eq2…’,’cond1,cond2,…’,’v’)

其中参数eq表示各个微分方程,它与MATLAB符号表达式的输入基本相同,微分和导数的输入是使用Dy,D2y,D3y来表示y的一价导数,二阶导数,三阶导数;参数cond表示初始条件或者起始条件;参数v表示自变量,默认是变量t。通过使用dsolve函数可以求出系统微分方程的零输入响应和零状态响应,进而求出完全响应。

2、连续时间系统零状态响应的数值求解

在实际工程中使用较多的是数值求解微分方程。对于零输入响应来说,其数值解可以通过函数initial来实现,而该函数中的参量必须是状态变量所描述的系统模型,由于现在还没有学习状态变量相关内容,所以此处不做说明。对于零状态响应,MATLAB控制系统工具箱提供了对LTI系统的零状态响应进行数值仿真的函数lsim,利用该函数可以求解零初始条件下的微分方程的数值解。其调用格式为:y=lsim(sys,f,t),其中t表示系统响应的时间抽样点向量,f是系统的输入向量;sys表示LTI系统模型,用来表示微分方程、差分方程或状态方程。在求解微分方程时,sys是有tf函数根据微分方程系数生成的系统函数对象,其语句格式为:sys=tf(a,b)。其中,a和b分别为微分方程右端和左端的系数向量。例如,对于微分方程

a3y'''(t)?a2y''(t)?a1y'(t)?a0y(t)?b3f'''(f)?b2f''(t)?b1f'(t)?b0f(t)

可以使用a?[a3,a2,a1,a0];b?[b3,b2,b1,b0];sys?tf(b,a)获得其LTI模型。注意,如果微分方程的左端或者右端表达式有缺项,则其向量a或者b中对应元素应该为零,不能省略不写。

3、连续时间系统冲激响应和阶跃响应的求解

在连续时间LTI系统中,冲激响应和阶跃响应是系统特性的描述。在

MATLAB中,对于冲激响应和阶跃响应的数值求解,可以使用控制工具箱中提供的函数impulse和step来求解。

y?impulse(sys,t)y?step(sys,t)

其中t表示系统响应的时间抽样点向量,sys表示LTI系统模型。

三、实验环境

本次实验使用的是Matlab软件,连续时间系统可以使用常系数微分方程来

描述,其完全响应由零输入响应和零状态响应组成。MATLAB符号工具箱提供了dsolve函数,可以实现对常系数微分方程的符号求解,MATLAB控制系统工具箱提供了对LTI系统的零状态响应进行数值仿真的函数lsim函数,冲激响应和阶跃响应的数值求解,可以使用控制工具箱中提供的函数impulse和step来求解对某些函数进行验证和画图。

四、实验内容

1、已知系统的微分方程和激励信号,使用MATLAB命令画出系统的零状态响应和零输入响应(零状态响应分别使用符号法和数值法求解,零输入响应只使用符号法求解)。要求题目2必做,题目1选做。

解:

(2)零状态响应: 符号法:

eq1='D2y+4*Dy+4*y=Df+3*f'; eq2='f=exp(-t)*heaviside(t)';

cond='y(-0.001)=0,Dy(-0.001)=0';%求零状态响应 yzs=dsolve(eq1,eq2,cond); %符号求解 yzs=simplify(yzs.y) ezplot(yzs,[0,10]);grid on

title('符号法求零状态响应') %输出符号法求零状态响应 结果: yzs =

-(heaviside(t)*(t - 2*exp(t) + 2))/exp(2*t)

符号法求零状态响应0.350.30.250.20.150.10.050012345t678910

数值法:

t=0:0.001:10;%取间隔

sys=tf([1,3],[1,4,3]);%表示出系统微分方程 f=exp(-t).*heaviside(t);%表示激励信号 y=lsim(sys,f,t);%零状态响应 plot(t,y),grid on xlabel('Time'); ylabel('f(t)'); title('零状态数值法');

零状态数值法0.40.350.30.25f(t)0.20.150.10.050012345Time678910

零输入响应: 符号法:

eq='D2y+4*Dy+4*y=0'; %求零输入响应

cond='y(0)=11,Dy(0)=22'; %随意制定的起始条件 yzi=dsolve(eq,cond); %符号求解 yzi=simplify(yzi)

ezplot(yzi,[0,10]);grid on %输出符号法求零输入响应 title('符号法求零输入响应'); 结果 yzi =

(11*(4*t + 1))/exp(2*t)

符号法求零输入响应109876543210012345t678910

2、已知系统的微分方程,使用MATLAB命令画出系统的冲激响应和阶跃响应(数值法)。要求题目2必做,题目1选做。

解:

(2)t=0:0.001:10;

sys=tf([0,1,0],[1,2,2]); f1=impulse(sys,t); subplot(2,1,1)

plot(t,f1),grid; xlabel('t'); ylabel('f1(t)'); title('冲激响应'); subplot(2,1,2)

plot(t,f2),grid; xlabel('t'); ylabel('f2(t)'); title('阶跃响应');

本文来源:https://www.bwwdw.com/article/htkd.html

Top