实验五 连续系统的时域求解与MATLAB 实现
一、 实验目的和要求
1.练习用dsolve 函数求解微分方程; 2.练习分别用lsim 和tf 函数绘制系统响应及输入信号的时域波形; 3.在验证的基础上,设计用impulse 和step 函数绘制系统的冲激响应和阶跃响应的时域波形。
二、 实验仪器设备
1.微型计算机; 2.MA TLAB 电路仿真软件。
三、 实验内容及步骤
1.使用dsolve 函数求解微分方程
使用dsolve 函数可求解微分方程(组),得到解的解析表达形式。
问题:设方程)(2)(6)(5)('''t e t y t y t y t ε-=++,试求零状态响应)(t y 。
[教材75页例3-14] 命令序列: ];
80[,()'0)0(,0)0(',)'exp(*2*6*52(yzs ezplot Dy y t y Dy y D deolve yzs ==-=++= 执行结果:)
*2exp(
*2)*3exp()1exp(t t yzs ---+-= 即)()2()(32t e e e t y t t t ε---+-=
观察实验结果,参考本实验提纲附加内容给出的相关说明,进一步掌握dsolve 函数的使用方法,用MATLAB 求解教材第70页例3-11。
2.使用lsim 函数绘制系统响应时域波形图
lsim 函数的部分功能是对一个由微分方程描绘的系统,绘制系统响应及输入信号的时域波形。
问题:已知描述某连续系统的微分方程为)(2)()()(2)('
'''t f t f t y t y t y +=++,该系统的输入信号为)()(2t e t f t ε-=,试用MA TLAB 对系统的响应)(t y 进行仿真,并绘出系统响应及输入信号的时域波形。
命令序列:
执行结果:
观察实验结果,探讨并说明交互式察看系统响应与激励信号样值的方法,为进一步掌握lsim 函数及tf 函数,结合本实验提纲附加内容给出的相关说明,仔细阅读以上命令序列,进一步理解其中的关键命令(tf 、lsim )。
3.LTI 连续时间系统冲激响应的MATLAB 实现
可以用MATLAB 提供的专用的impulse 函数求解连续系统冲激响应并绘制其时域波形。
问题:已知描述某连续系统的微分方程为)(2)()()()('''''t f t f t y t y t y +=++,试用MA TLAB 绘出该系统冲激响应时域波形图。
命令序列:
执行结果:
观察实验结果,交互式察看系统响应与激励信号样值;上述命令序列中仅使用了一种impulse 函数的调用格式,为进一步掌握impulse 函数的使用方法,请用另三种格式调用impulse 函数,绘制系统冲激响应的时域波形或得到系统冲激响应的数值解,并具体给出所用命令序列。
另外,请完成对教材70页例3-12的仿真。
4.LTI 连续时间系统阶跃响应的MATLAB 实现
可以用MATLAB 提供的专用的step 函数求解连续系统阶跃响应并绘制其时域波形。
问题:已知描述某连续系统的微分方程为)(2)()(6)(11)(6)(''''''''t f t f t y t y t y t y +=+++,试用MA TLAB 绘出该系统阶跃响应时域波形图。
命令序列:
执行结果:
观察实验结果,交互式察看系统响应与激励信号样值,上述命令序列中给出了step 函数的两种调用格式,为进一步掌握step 函数的使用方法,请用step 函数的另两种调用格式绘制系统阶跃响应的时域波形或得到系统阶跃响应的数值解,并具体给出所用命令序列。
5.设计
已知描述某连续系统的微分方程为)(2)()(2)(3)('
'''t f t f t y t y t y +=++,试编制实现该系统冲激响应和阶跃响应时域波形图的MA TLAB 程序。
要求给出程序代码,对其中关键的命令给出详细的注释,正确记录程序运行结果,即绘出系统冲激响应和阶跃响应曲线。
四、 实验报告要求
1.进一步查阅资料,掌握dsolve 、lsim 、tf 、impulse 和step 函数的使用方法;
2.正确记录实验情况,回答本实验提纲中所提出的问题。
3.结合课程教材,进一步掌握系统冲激响应和阶跃响应的相关理论。
附加说明
◇ 关于dsolve 函数
调用格式
yp=dsolve(’方程1,方程2,…’,’条件1,条件2,…’,’变量’)
简要说明
(1)函数返回微分方程1(或方程1、方程2、…构成的微分方程组)的解;
(2)各个微分方程中的一阶导数符号用‘D ’表示,D2、D3、…Dn 分别表示二阶、三阶、…n 阶导数;
(3)各个微分方程中的自变量默认为‘t ’,否则,可用格式中的 ’变量’ 重新指明;
(4)各个’条件’项可用于指明初始条件。
若不指明或指明不全,则函数的返回值中可能出现C1、C2、…等待定常数。
◇ 关于tf 函数
tf 函数根据描述系统的微分方程的系数生成系统函数对象(TF 对象)。
调用格式
sys=tf(b,a)
简要说明
输入参量a - 微分方程左边多项式系数),2,1,0(n j a j =构成的行向量;
输入参量b - 微分方程右边多项式系数),2,1,0(m i b i =构成的行向量;
输出参量sys - 系统函数对象
对一般形式的系统微分方程: )()()(0)(0t y b t y a i i m
i j j
n j ∑∑=== 或 )()()()()()()()(0'1)1(1)(0'1)1(1)(t f b t f b t f b t f b t y a t y a t y a t y a m m m m n n n n ++++=++++---- a 和b 应分别定义成:][011a a a a a n n
-=、][011b b b b b m m -=。
例如,对由微分方程)(2)()(2)(3)(''''t f t f t y t y t y +-=++描述的系统,由tf 函数生成其系统对象sys 的
命令为
上述命令运行结果为
调用tf 函数生成系统函数对象sys,并用向量f 和t 定义了系统激励信号后,即可调用lsim 函数对连续系统的响应进行仿真。
◇ 关于lsim 函数
调用格式
lsim 函数的一种调用格式为: lsim(sys,f,t)
简要说明
这种调用格式对向量t 定义的时间范围内的系统响应进行仿真,即绘制LTI 连续系统的响应的时域波形,同时还绘出系统的激励信号对应的时域波形。
在这种调用格式中,输入参量f 和t 是两个表示输入信号的行向量,其中t 为表示输入信号时间范围的向量,f 则是输入信号在向量t 定义的时间点上的采样值。
例如,命令 t=0:0.01:5; f=cos(2*t); 就定义了0-5秒时间范围内的余弦输入信号cos(2*t)(采样时间间隔为0.01秒)。
输入参量sys 是由tf 函数根据描述系统的微分方程的系数生成的系统函数对象。
◇ 关于impulse 函数
Impulse 函数主要用于求连续系统冲激响应并绘制其时域波形。
调用格式
(1)impulse(b,a) (2)impulse(b,a,t) (3)impulse(b,a,t1:ts:t2) (4)y=impulse(b,a,t1:ts:t2)
简要说明
(1)该调用格式以默认的方式绘制由向量a 和b 定义的LTI 连续系统的冲激响应时域波形,并提供交互式功能查看任意时刻冲激响应的信号样值。
其中输入参量a 和b 分别是描述系统的微分方程左边和右边系数构成的行向量。
例如,对由微分方程)(6)()(4)(2)('''''t f t f t y t y t y +-=++描述的系统,则定义该系统的向量a 和b 应使用命令: a=[1 0 2 4]; b=[-1 6]; 。
(2)该调用格式绘制由向量a 和b 定义的连续系统在时间参数t 所指定的0~t 时间范围内系统冲激响应的时域波形。
(3)该调用格式绘制由向量a 和b 定义的连续系统在时间范围t1~t2内,且以时间间隔ts 均匀采样的系统冲激响应的时域波形。
(4)该调用格式并不绘制系统冲激响应的波形,而是求出由向量a 和b 定义的连续系统在时间范围t1~t2内,且以时间间隔ts 均匀采样的系统冲激响应的数值解。
◇ 关于step 函数
调用格式
(1)step(b,a) (2)step (b,a,t) (3)step (b,a,t1:ts:t2) (4)y= step (b,a,t1:ts:t2)
上述4种调用格式的使用方法和调用过程与impulse 函数完全相同,只是该函数绘制的是系统阶跃响应的时域波形而不是冲激响应波形。