电子信息
工程
路基工程安全技术交底工程项目施工成本控制工程量增项单年度零星工程技术标正投影法基本原理
系实验报告
成 绩:
课程名称: 计算机仿真技术
指导教师(签名):
实验项目名称:实验4 信号与系统仿真—连续时间LTI系统的时域
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
实验时间:2011-11-22
班级
班级管理量化考核细则初中班级管理量化细则班级心理健康教育计划班级建设班级德育计划
:电信092 姓名:XXX 学号:910706201
一、实 验 目 的:
学会运用MATLAB符号求解连续系统的零输入响应和零状态响应;学会运用MATLAB数值求解连续系统的零状态响应;学会运用MATLAB求解连续系统的冲激响应和阶跃响应;思考运用MATLAB卷积积分法求解系统的零状态响应。
二、实 验 环 境:
硬件:PC机,PII以上 CPU,内存1G;
软件:Matlab7.1
三、实 验 原 理:
连续时间系统零状态响应的数值求解:
对于零状态响应,MATLAB控制系统工具箱提供了对LTI系统的零状态响应进行数值仿真的函数lsim,该函数可求解零初始条件下微分方程的数值解,语句格式为:y=lsim(sys,f,t)
其中,t
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示计算系统响应的时间抽样点向量;f是系统的输入信号向量;sys表示LTI系统模型,用来表示微分方程、差分方程或者状态方程。在求微分方程时,sys是由MATLAB的tf函数根据微分方程系数生成的系统函数对象,其语句格式为:sys = tf(b,a)
其中,b和a分别为微分方程右端和左端的系数向量。例如,对于微分方程
可用
;
;
获得其LTI模型。注意,如果微分方程的左端或右端表达式中有缺项,则其向量a或者b中对应的元素应为0,不能省略不写,否则会出错。
连续时间系统冲激响应和阶跃响应的求解:
在MATLAB中,对于连续LTI系统的冲激响应和阶跃响应的数值解,可分别用控制系统工具箱提供的函数impulse和step来求解。其语句格式分别为:
y = impulse(sys,t);
y = step(sys,t);
其中,t表示计算机系统响应的时间抽样点向量,sys表示LTI系统模型。
四、实 验 内 容 及 过 程:
1.1、已知系统的微分方程和激励信号
如下,试用MATLAB命令绘出系统零状态响应的时域仿真波形图。
(1)
(2)
思路:建立关于单位阶跃函数的源文件,即创建名为uCT的M文件:
function f=uCT(t)
f=(t>0);
保存后,就可调用该函数。
利用函数式y=lsim(sys,f,t)求LTI系统的零状态响应。
(1)按要求可编写如下程序代码:
clear;clc;
ts = 0; te =5; dt = 0.01;
sys = tf([1],[1,4,3]);
t = ts:dt:te;
f = 1.*uCT(t);
y = lsim(sys,f,t);
plot(t,y),grid on
xlabel('Time(sec)'), ylabel('y(t)')
title('零状态响应');
(2)同理,按要求编写如下程序代码:
clear;clc;
ts = 0; te =5; dt = 0.01;
sys = tf([1,3],[1,4,4]);
t = ts:dt:te;
f = exp(-t).*uCT(t);
y = lsim(sys,f,t);
plot(t,y),grid on
xlabel('Time(sec)'), ylabel('y(t)')
title('零状态响应');
1.2、利用卷积积分法求题1.1的系统零状态响应。
思路:利用卷积积分法求系统的零状态响应,可先求单位冲激响应,接着将输入信号与冲激响应进行卷积即可。
利用MATLAB中的function命令建立连续时间信号卷积运算的函数ctsconv.m。
其源程序为:
function [f,t] = ctsconv(f1,f2,t1,t2,dt)
f = conv(f1,f2);
f = f*dt;
ts = min(t1) +min(t2);
te = max(t1)+max(t2);
t = ts:dt:te;
subplot(221)
plot(t1,f1); grid on
axis([min(t1),max(t1),min(f1)-abs(min(f1)*0.2),max(f1)+abs(max(f1)*0.2)])
title('f1(t)');xlabel('t');
subplot(222)
plot(t2,f2); grid on
axis([min(t2),max(t2),min(f2)-abs(min(f2)*0.2),max(f2)+abs(max(f2)*0.2)])
title('f2(t)');xlabel('t');
subplot(212)
plot(t,f); grid on
axis([min(t),max(t),min(f)-abs(min(f)*0.2),max(f)+abs(max(f)*0.2)])
title('f(t)=f1(t)*f2(t)');xlabel('t');
(1)按要求可在命令窗口中编写如下程序代码:
clear;clc;
dt = 0.01;
t1 = 0:dt:5;
f1 = 1.*uCT(t1);
t2 = t1;
sys=tf([1],[1,4,3]);
f2 = impulse(sys,t2);
[t,f] = ctsconv(f1,f2,t1,t2,dt);
(2)按要求可在命令窗口中编写如下程序代码:
clear;clc;
dt = 0.01;
t1 = 0:dt:5;
f1 = exp(-t1).*uCT(t1);
t2 = t1;
sys=tf([1,3],[1,4,4]);
f2 = impulse(sys,t2);
[t,f] = ctsconv(f1,f2,t1,t2,dt);
2、已知系统的微分方程如下,试用MATLAB命令求系统冲激响应和阶跃响应的数值解,并绘出系统冲激响应和阶跃响应的时域波形图。
(1)
(2)
思路:利用控制系统工具箱提供的函数impulse和函数step来求解。
(1)可在命令窗口编写如下程序代码:
clear;clc;
t = 0:0.001:4;
sys = tf([1],[1,3,2]);
h = impulse(sys,t);
g = step(sys,t);
subplot(211)
plot(t,h),grid on
xlabel('Time(sec)'), ylabel('h(t)')
title('冲激响应')
subplot(212)
plot(t,g),grid on
xlabel('Time(sec)'), ylabel('g(t)')
title('阶跃响应')
(2)可在命令窗口编写如下程序代码:
clear;clc;
t = 0:0.001:4;
sys = tf([1],[1,2,2]);
h = impulse(sys,t);
g = step(sys,t);
subplot(211)
plot(t,h),grid on
xlabel('Time(sec)'), ylabel('h(t)')
title('冲激响应')
subplot(212)
plot(t,g),grid on
xlabel('Time(sec)'), ylabel('g(t)')
title('阶跃响应')
五、实 验 结 果 及 分 析:
题1.1、在命令窗口中分别输入以上程序代码并执行此文件,可在窗口中分别看到
和
的零状态响应的时域仿真波形图,如图1、2所示:
图1
图2
题1.2、利用上述编写的关于卷积积分法的程序代码,输入到命令窗口中并运行,可分别看到如图3、4所示的零状态响应的时域仿真波形图。
图3 卷积法求
零状态响应
图4 卷积法求
零状态响应
综合图1、2、3、4可知,利用卷积积分法求系统的零状态响应和利用函数lsim求解所得的图形大体一致,
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
可行。
题2、在命令窗口中分别输入以上程序代码并执行此文件,可在窗口中分别看到系统冲激响应和阶跃响应的时序波形图,如图5、6所示:
图5
波形图 图6
波形图
六、问 题 与 思 考:
1、思考如何用卷积积分法求系统的零状态响应,叙述详细的编程求解思路。
答:用卷积积分法求系统的零状态响应,可先求单位冲激响应,接着将输入信号与冲激响应进行卷积,即可求得系统的零状态响应。
利用卷积函数conv自定义编写以M文件形式存在的函数ctsconv.m,编程如下:
function [f,t]=ctsconv(f1,f2,t1,t2,dt)
f=conv(f1,f2);
f=f*dt;
ts=min(t1)+min(t2); 中文论坛
te=max(t1)+max(t2);
t=ts:dt:te; 文论坛
subplot(2,2,1);plot(t1,f1);
grid on;
axis([min(t1),max(t1),min(f1)-abs(min(f1)*0.2),max(f1)+abs(max(f1)*0.2)]);
title('f1(t)');xlabel('t');
subplot(2,2,2);plot(t2,f2); 文论坛
grid on;
axis([min(t2),max(t2),min(f2)-abs(min(f2)*0.2),max(f2)+abs(max(f2)*0.2)]);
title('f2(t)');xlabel('t');
subplot(2,1,2);plot(t,f);
grid on;
axis([min(t),max(t),min(f)-abs(min(f)*0.2),max(f)+abs(max(f)*0.2)]);
title('f(t)=f1(t)*f2(t)');xlabel('t');
若f(t)为系统的激励信号即输入信号,f(2)即为单位冲激响应,求单位冲激响应可利用式子f(2) =impulse(sys,t2)求得。综上所述,明显可用卷积积分法求系统的零状态响应。