MATLAB仿真之连续时间LTI系统仿真和时域分析.docx
《MATLAB仿真之连续时间LTI系统仿真和时域分析.docx》由会员分享,可在线阅读,更多相关《MATLAB仿真之连续时间LTI系统仿真和时域分析.docx(11页珍藏版)》请在冰豆网上搜索。
MATLAB仿真之连续时间LTI系统仿真和时域分析
郑州航空工业管理学院
《电子信息系统仿真》课程设计
级电子信息工程专业班级
题目连续时间LTI系统仿真和时域分析
姓名学号
指导教师
二О一年月日
MATLAB软件简介
MATLAB是MathWork公司于1984年推出的一套面向工程和科学运算的高性能软件,它具有强大的图形处理功能及符号运算功能,为我们实现信号的可视化及系统分析提供了强有力的工具。
MATLAB强大的工具箱函数可以分析连续信号、连续系统,同样也可以分析离散信号、离散系统,并可以对信号进行各种分析域计算,如相加、相乘、移位、反折、傅里叶变换、拉氏变换、Z变换等等多种计算MATLAB用于算法开发、数据可视化、数据分析以数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连Matlab开发工作界面接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。
Simulink是MATLAB最重要的组件之一,它提供一个动态系统建模、仿真和综合分析的集成环境。
在该环境中,无需大量书写程序,而只需要通过简单直观的鼠标操作,就可构造出复杂的系统。
Simulink具有适应面广、结构和流程清晰及仿真精细、贴近实际、效率高、灵活等优点,并基于以上优点Simulink已被广泛应用于控制理论和数字信号处理的复杂仿真和设计。
设计目的
掌握信号经过LTI系统的时域分析方法。
根据连续时不变信号处理的基本概念、理论和方法对信号进行分析和处理,实现卷积积分或卷积和,零输入响应和零状态响应,学会应用MATLAB对实际问题进行仿真,并对仿真结果进行分析。
在本次课程设计中,利用MATLAB软件对LTI连续系统时域进行仿真与分析。
根据连续时不变信号处理的基本概念、理论和方法对信号进行分析和处理,实现卷积积分或卷积和,零输入响应和零状态响应,熟悉卷积和conv函数,并会利用卷积求零状态响应,并对输出的波形和仿真结果进行分析。
理论分析
连续时间系统卷积分原理
连续时间信号
和
的卷积运算可用信号的分段求和来实现,即:
如果只求当t(n)(n为整数)时f(t)的值f(n),则上式可得:
式中的
实际上就是连续时间信号
和
经等时间间隔均匀抽样的离散序列
和
的-。
当足够小时,
就是卷积积分的结果——连续时间信号f(t)的较好数值近似。
连续时间系统零输入响应原理
零输入响应就是动态电路在没有外实施激励时,有电路中的动态原件的初始储能引起的响应。
在电路断开的瞬间有储能元件(电感、电容)引起的响应,所以最后电路的稳态为0。
描述n阶线性时不变(LTI)连续系统的微分方程为:
连续时间零状态响应原理
零状态响应就是在电路初始状态下(动态储能元件储能为零)由外施激励引起的反应,最终状态的为一确定的实数。
LTI连续系统可用如下所示的线性常系数微分方程来描述,
Matlab实现及波形输出
卷积分程序及仿真
利用conv函数实现连续时间函数卷积分运算实际上就是先将时间离散化,在计算卷积分,最后根据函数画出输出函数波形,如求f1(t),f2(t)的卷积,f(t)=f1(t)*f2(t)。
MATLAB程序:
t=0:
0.1:
2*pi;
f1=input('输入函数f1=');
f2=input('输入函数f2=');
dt=input('dt=');
y=conv(f1,f2);
plot(dt*([1:
length(y)]-1),y);
gridon;
title('卷积');
xlabel('t');
ylabel('f1'*f)
程序运行结果:
输入以下数据:
f1=sin(3*t)f2=cos(3*t+2)dt=0.01
得出图形如图4.1所示:
图4.1卷积和输出波形图
卷积分运用:
利用卷积求零状态
系统零状态响应
,其中激励信号e(t),系统单位冲激响应h(t)。
已知系统单位冲激响应
,系统激励
,使用卷积法求系统零状态响应
。
MATLAB程序为:
a=1000;
t=-5:
1/a:
5;
h=0.5*t.*(stepfun(t,0)-stepfun(t,2));
e=stepfun(t,-0.5)-stepfun(t,1);
r=conv(h,e);
t=-10:
1/a:
10;
plot(t,r);
title('零状态响应r(t)');
xlabel('t');
ylabel('r');
零输入程序及仿真
建模
当LIT系统的输入为零时,其零输入响应为微分方程的其次解(即令微分方程的等号右端为零),其形式为(设特征根均为单根)
其中p1,p2,…,pn是特征方程a1λn+a2λn-1+…+anλ+an=0的根,它们可以用root(a)语句求得。
各系数由y及其各阶导数的初始值来确定。
对此有
………………………………………………………………………………………
写成矩阵形式为:
P1n-1C1+P2n-1C2+…+Pnn-1Cn=Dn-1y0
即V•C=Y0其解为:
C=V\Y0
式中
V为范德蒙矩阵,在matlab的特殊矩阵库中有vander。
以下面式子为例:
y(0_)=1,y(0_)=5;
MATLAB程序:
a=input('输入分母系数a=[a1,a2,...]=');
n=length(a)-1;
Y0=input('输入初始条件向量Y0=[y0,Dy0,D2y0,...]=');
p=roots(a);
V=rot90(vander(p));
c=V\Y0';
dt=input('dt=');
te=input('te=');
t=0:
dt:
te;
y=zeros(1,length(t));
fork=1:
n
y=y+c(k)*exp(p(k)*t);
end
plot(t,y);
gridon;
xlabel('t');
ylabel('y');
title('零输入响应');
程序运行结果:
用这个通用程序来解一个三阶系统,运行此程序并输入
a=[1,5,4]Y0=[1,5]dt=0.01te=6
结果如下图:
根据图可以分析零输入响应,它的起始值与输入函数无关,只与它的初始状态值有关,其起始值等于y(0_)的值。
随着时间的推移,最后零输入响应的值无限的趋近于0。
零状态态程序及仿真
我们知道,LTI连续系统可用如下所示的线性常系数微分方程来描述,
例如,对于以下方程:
可用
输入函数
,得出它的冲击响应h,再根据LTI系统的零状态响应y(t)是激励u(t)与冲击响应h(t)的卷积积分。
注意,如果微分方程的左端或右端表达式中有缺项,则其向量a或b中的对应元素应为零,不能省略不写,否则出错。
求函数的零状态响应
及初始状态
。
输入函数
。
建模
先求出系统的冲击响应,写出其特征方程
求出其特征根为p和p,及相应的留数r,r;则冲击响应为
输入y(t)可用输入u(t)与冲击响应h(t)的卷积求得。
MATLAB程序:
a=input('输入分母系数a=[a1,a2,...]=');
b=input('输入输入信号系数b=[b1,b2,...]=');
dt=input('dt=');te=input('te=');
t=0:
dt:
te;
u=input('输入函数u=');
te=t(end);
dt=te/(length(t)-1);
[r,p,k]=residue(b,a);
h=r
(1)*exp(p
(1)*t)+r
(2)*exp(p
(1)*t);
subplot(2,1,1),plot(t,h);grid
title('冲击函数');
y=conv(u,h)*dt;
subplot(2,1,2),
plot(t,y(1:
length(t)));grid
title('零状态响应');
程序运行结果
执行这个程序,取a=[1,5,4]b=[2,4]dt=0.01te=6
得出图形如下:
由于初始状态为零,所以零状态的起始值也为零,即h(t)包含了连续系统的固有特性,与系统的输入无关。
只要知道了系统的冲激响应,即可求得系统在不同输入时产生的输出。
因此,求解系统的冲激响应h对进行连续时间系统的分析具有非常重要的意义
设计总结:
一个星期的课程设计使我收获良多,虽然课程设计的过程中遇到了很多困难与问题,但最终还是完成了设计的任务及要求。
通过这次课程设计让我了解了Matlab软件在连续信号时域处理方面的应用,又一次学习了Matlab软件的使用和程序的设计,也使我了解到身上的许多不足之处,这就需要自己不断的学习MATLAB和与自己专业相关的知识。
这次课程设计我上网查阅资料知道了很多Matlab函数用于求各种运算,这些函数再加上程序,可以很方便地进行信号分析、处理和设计,特别在我们学的数字信号方面,起着非常大的作用。
此次课程设计过程中感谢指导老师们的帮助,通过与老师同学交流,问题逐一解决,让我们学到很多上课没有涉及到的知识点,进一步加深了对Matlab的学习。
总之,通过这次课程设计,使我清楚明白了自己的能力有多深,想提高还得归于多锻炼,多动手,多向别人学习。
指导教师评语:
课程设计成绩:
指导教师签名:
年月日