滨江学院
课程论文
连续时间LTI系统的时域分析
课 程 信号与系统
院 系 电子工程系
专 业 电子信息工程
学生姓名 范以文
学 号 20112305907
基于 MATLAB的连续时间LTI系统的时域分析
一、课程目的
学习MATLAB语言的编程方法与熟悉MATLAB的指令;
编程实现卷积积分或卷积和,零输入响应,零状态响应;
学会用 MATLAB 对信号进行分析求解系统零状态响应,冲激响应,阶跃响应的方法;
撰写课程设计论文,用信号处理基本理论分析结果。
二、基本要求:
掌握连续时不变信号处理的基本概念、基本理论和基本方法;
学会 MATLAB 的使用,掌握 MATLAB 的程序设计方法;
三、课程内容与步骤:
①求解系统的零输入响应;
②求解系统的零状态响应;
③求解系统的全响应;
④分析系统的卷积;
⑤画出它们的图形. 下面以具体的微分方程为例说明利用MATLAB 软件分析系统的具体方法.
1.连续时间系统的零输入响应
描述n阶线性时不变(LTI)连续系统的微分方程为:
已知y及各阶导数的初始值为y(0),y(1)(0),… y(n-1)(0), 求系统的零输入响应。
建模
当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));
for k=1:n y=y+c(k)*exp(p(k)*t);end
plot(t,y);grid
xlabel('t') ;ylabel('y');
title('零输入响应');
程序运行结果:
用这个通用程序来解一个三阶系统,运行此程序并输入
a=[1,5,4] Y0=[1,5] dt=0.01 te=6
结果如下图:根据图可以分析零输入响应,它的起始值与输入函数无关,只与它的初始状态值有关,其起始值等于y(0_)的值。随着时间的推移,最后零输入响应的值无限的趋近于0。
2.卷积的计算
连续时间信号和的卷积运算可用信号的分段求和来实现,即:
如果只求当t = nD(n为整数)时f (t)的值f (nD) ,则上式可得:
式中的 实际上就是连续时间信号和经等时间间隔 均匀抽样的离散序列和的卷积和。当D足够小时,就是卷积积分的结果——连续时间信号f (t)的较好数值近似。
建模
下面是利用MATLAB 实现连续信号卷积的通用程序conv(),该程序在计算出卷积积分的数值近似的同时,还绘制出f (t)的时域波形图。应注意,程序中是如何设定f (t)的时间长度。
MATLAB程序:
f1=input('输入函数f1=');
f2=input('输入函数f2=');
dt=input('dt=');
y=conv(f1,f2);
plot(dt*([1:length(y)]-1),y);grid on;
title('卷积');
xlabel('t'); ylabel('f1*f2')
程序运行结果:
输入以下数据:
f1=sin(3*t) f2=cos(3*t+2) dt=0.01
得出图形如下:
3.连续时间系统零状态响应的数值计算
我们知道,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.01 te=6
得出图形如下:
由于初始状态为零,所以零状态的起始值也为零,即h(t)包含了连续系统的固有特性,与系统的输入无关。只要知道了系统的冲激响应,即可求得系统在不同输入时产生的输出。因此,求解系统的冲激响应h对进行连续时间系统的分析具有非常重要的意义
4.连续时间系统的全响应计算
上面通过对LTI系统函数的描述,我们可以得知:如果在系统的初始状态不为零,在激励f(t)的作用下,LTI系统的响应称为全响应,它是零输入响应和零状态响应之和,即
故可先求出零输入响应和零状态响应,再把两者相加,得到全响应。但简单的相加可能由于零输入与零状态的矩阵不同而不能的出正确的结果,这就需要对矩阵进行截取,使它们的阶数相同。
例如,对于以下方程:
初始值为:y(0_)=1,y(0_)=5;
输入函数为:
求它的全响应。
建模
先根据零输入响应的求法,得出零输入响应y1(t)。再根据零状态响应的求法,得出零状态响应y2(t)。最后,全响应y等于零输入响应y1(t)加上零状态响应y2(t),得出全响应。
MATLAB程序:
a=input('输入分母系数a=[a1,a2,...]=');
n=length(a)-1;
Y0=input('输入初始条件向量 Y0=[y0,Dy0,D2y0,...]=');
b=input('输入输入信号系数b=[b1,b2,...]=');
u=input('输入函数u=');
dt=input('dt=');te=input('te=');
t=0:dt:te;
p=roots(a);V=rot90(vander(p));c=V\Y0';
y1=zeros(1,length(t));
for k=1:n y1=y1+c(k)*exp(p(k)*t);end
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);
y2=conv(u,h)*dt;
y=y1(1:length(t))+y2(1:length(t));
figure(1);
subplot(3,1,1),plot(t,y1),grid
xlabel('t'); ylabel('y1');title('零输入响应');
subplot(3,1,2),plot(t,y2(1:length(t)));grid
xlabel('t');ylabel('y2');title('零状态响应');
subplot(3,1,3),plot(t,y),grid
xlabel('t'); ylabel('y');title('全响应响应');
程序运行结果
执行程序,取 a=[1,5,4] Y0=[1,5] b=[1,2,4]
u=sin(3*t)+cos(2*t) dt=0.01 te=6
结果如下图:在零输入响应中任一时刻取值y1,在零状态响应的对应时刻取值y2,再在全响应的对应时刻取值y。可以得出:y=y1+y2。
四、调试总结:
在matlab语言中,用subplot对图形进行分块,使几幅图同时显示在一个图像框里。 plot用来绘制连续的函数图形。cnov用来求卷积,再就是利用语句对不同阶的矩阵进行截取,使之相加,这点很重要,因为简单的零输入响应与零状态响应相加,可能由于阶数不同而无法得出结果,所以一定要使两者的阶数相同。
五、总结:
经过一个学期对《信号与系统》的学习与认知,让我逐步的走进这充满神秘色彩的学科。这门课程是以《高等数学》为基础,但它又不是一门只拘泥于数学推导与数学运算的学科,它更侧重与数学与专业的有机融合与在创造,是一门应用性很强的学科。
大家都知道学习是一个把书看厚然后再看薄、理解和总结的过程。下面我就来和大家分享一下我在学习信号与系统中的一些学习心得。
所谓学习一门学科,首先要知道它有什么用,然后才能有学习的兴趣和动力。所以让我们先来整体认识一下信号与系统。这门课是电气专业的基础,对后面的数字信号处理,滤波器设计都是十分重要的。它也给了我们一个学习的思想:无论什么问题,都可以把问题看作一个系统,有了输入,那么就会得到输出。那么输入和输出有什么关系呢?就需要我们学习了这门课程来掌握理解不同的输入对应怎样的输出,是怎样对应过去的。
信号与系统主要用到的知识有傅里叶变换(离散和连续),拉普拉斯变换,z变换。其中,傅里叶变换是重中之重,学会了这个,另外两个就是一个举一反三的过程。
纵观一个系统的实现,其实就是: 激励→零输入响应+零状态响应
在老师的帮助下我顺利的完成了这个课程,通过这次连续时间系统的时域分析课程设计,让我了解了关于MATLAB软件在连续信号时域处理方面的应用,MATLAB的仿真使我更加深入的了解了信号时域处理的过程 ,对我对数字信号处理的理解加深了一步。MATLAB拥有强大的数据仿真能力,在生产和研究中起着非常大的作用。
通过查阅大量的资料,我选择用矩阵计算的方法来求连续时间系统的零输入响应,卷积则是利用matlab中的conv语句求得,再根据LTI系统的零状态响应y(t)是激励u(t)与冲击响应h(t)的卷积积分,求得零状态响应,全响应则为零输入响应与零状态响应之和。
MATLAB语言是一种广泛应用于工程计算及数值分析 领域的新型高级语言,Matlab功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。特别是Matlab还具有信号分析工具箱,不需具备很强的编程能力,就可以很方便地进行信号分析、处理和设计。通过与老师的交流和学习,让我学会了很多在课堂上没有理解的难点。同时也进一步加深了对Matlab的理解和认识。
参考资料:
信号与线性系统分析(第4版)
主编 : 吴大正
MATLAB及在电子信息课程中的应用(第2版)
陈怀琛 吴大正 高西全 编著
第二篇:驼峰信号自动控制课程设计论文
驼峰信号自动控制课程设计
一、课程设计的目的
本课程设计是学生完成“驼峰信号自动控制”课程学习之后进行的实践性教学环节。针对该课程中的重点和难点内容进行训练,加深学生对编组站驼峰自动控制系统的理解,提高工程设计技能,为后续课程的学习和毕业设计打下基础。
二、课程设计的内容
(一)驼峰调车场头部信号平面布置图
以纵列式编组站为依据,设计驼峰调车场头部信号平面布置图,该场设有24条编组线、2条推送线和2条禁溜线。
1、驼峰调车场信号机及相关表示器
驼峰调车场信号机包括驼峰信号机、线束信号机和其它调车信号机。
(1)驼峰信号机:应设在驼峰峰顶平坡与加速坡变坡点左侧,每个峰顶设一架。用来指挥调车机车进行推送解体作业。如附图01所示:T1和T2等。
(2)线束调车信号机:一般设在线束头部,其作用是指挥机车在峰下线路间进行转线调车作业。如附图01所示:D218、D220、D234~D248 等。
(3)其它调车信号机:用于一般的调车作业,如附图01所示:D202、D250、D214和D216 等。
(4)线路表示器:调车线路表示器是上峰线束调车信号机的复示器。采用一个单机构矮型色灯信号机,灯光为白色。如附图01所示的B1~B2~。
2、道岔转换设备
目前驼峰场采用的转换机有两种类型:电动转换机和电空转换机。根基道岔和现场动力情况,一个场的转换设备类型尽量一致。在有风压设备的条件下(如有采用风压减速器的驼峰场),应尽可能采用ZK型电空转辙机。
3、轨道电路
驼峰场采用的轨道电路一般有两种类型:峰下分路道岔区段采用驼峰轨道电路(即双区段轨道电路)或高灵敏度的轨道电路,其它区段采用非电码化安全型轨道电路。
4、调速设备
由于车组越过峰顶便失去了机车对它的控制,所以溜放过程中为了能很好地调整溜放车组的溜放速度,提高编解能力,保证驼峰作业和人身安全,减轻劳动强度,在驼峰场头部设有相关的调速设备。如车辆减速器、停车器、加速顶、减速顶、加减速顶或牵引小车等。
5、自动化驼峰监视设备
为实现计算机实时监控设有检测设备:传感器、测速设备、测长设备、侧重设备、光挡和气象站等。
6、信号楼及室内设备
驼峰信号楼及动力室均设于驼峰调车场内,其数量应根据制动位、调车线数以及制动设备控制方式确定。
信号楼:主要作用是集中控制信号、道岔、调速设备。其设置位置一般设在瞭望条件好、便于操作设备和有利于作业人员互相联系的地方。自动化驼峰调车场只有一个信号楼。
动力室:为信号设备供电及转辙机和减速器提供动力来源。
7、其它设备
限界检查器:设置车辆减速器的驼峰调车场,应该配置车辆减速器的限界检查器。限界检查器的设置位置受线路布置限制,应在每条推送线上,一般距离峰顶80~100m处。
按钮柱:为使有关现场作业人员在发现影响或危机作业安全的问题时,能够及时关闭驼峰信号,在适当地点设有关闭驼峰信号的按钮柱。一般设在驼峰信号机前方推送线左侧的适当地点。
驼峰信号关闭时,为了引起相关作业人员的注意,在驼峰信号机柱上还装有一个大电铃。
(二)联锁表
1、方向栏
填写进路性质及运行方向,驼峰场只有调车进路。
2、进路栏
逐条列出联锁范围内的全部调车的基本进路 。由TX溜放车组时,应写作“由
TX;调车至某一顺向调车信号机时,应写作“至Dxx”;向尽头线处调车时,应
写作“向Dxx”;
3、排列进路按下按钮栏
顺序填写排列进路时应按下的按钮名称。
4、信号机栏
在办理一条调车进路时,应在信号机栏填出该进路始端信号机的名称及相应的信号显示。
5、道岔栏
顺序填写所排进路中的全部道岔以及有关防护和带动道岔的编号和位置。用道岔的号码外加小括号“()”表示进路要求该道岔处于反位位置,不外加括号则表示要求该道岔处于定位位置。
6、敌对信号栏
站内联锁设备中,敌对进路必须互相照查,不得同时开通。凡属于敌对进路的信号不能同时开放。为此,应把由敌对关系的信号机名称填写在“敌对信号”栏中。下列进路规定为敌对进路:峰下分路道岔区段对向重叠或顺向重叠的调车进路;
7、轨道区段栏
填写排列进路时应检查的轨道区段名。注意的是超限绝缘节的检查。
(三)储存器进路编码表
溜放进路控制系统按照进路代码的组成及储存方式的不同,通常分为道岔储存式和进路储存式两大类。
继电进路储存式溜放进路控制设备由储存器和传感器两大类组成。
进路储存器存放的是进路命令代码,在储存器中设有若干储存单眼,每一个单元可以储存一条命令。进路命令代码的编码方式可以有很多种,以进路上的道岔位置来编码是一种被广泛采用的编码方式,即将该进路上各分路道岔的位置变换成记忆单元中记忆继电器相应的工作状态。设计中所示的调车场,共有24条溜放进路,将每一条溜放进路对道岔的位置的要求,用记忆继电器的相应状态表示出来,并按照股道的顺序裂成表格,交进路编码表。
1、分路道岔分级
以峰顶为坐标原点,将纵坐标相同或相近的各组分路道岔,划为一个级别,自编组成头部至峰顶,依次为I级~V级。
设计附图中每条溜放进路最多经过5组分路道岔,故称之为具有5级分路道岔的调车场,为记录一条调车进路命令,在记忆单元中须设5个记忆继电器1J~5J,用它们分别记录I级~V级分别道岔的位置。规定:用记忆继电器J↑,记录道岔反位;用记忆继电器J↓,记录道岔定位。
2、进路编码表
设计附图中进路编码表如图03所示,表中去1道和2道的进路不经过第II级道岔,应该在2J栏中填“0”,其余类似。
进路编码表反映出溜放进路对分路道岔位置的要求,另一方面,它也表明了储有某条进路命令的记忆单元的各记忆继电器应处的位置。
(四)车辆减速器控制电路
1、车辆减速器控制方式
车辆减速器可在驼峰信号楼内集中进行自动、半自动或手动控制。手动控制优先于自动、半自动控制。
自动或半自动控制时,由计算机系统输出制动命令,动作制动阀,使车辆减速器制动。停止发送制动命令,动作缓解阀,使车辆减速器制动。停止发送制动命令,动作缓解阀,使车辆减速器缓解。
手动控制时,按下控制台上的自复式制动按钮ZA,动作制动阀,使车辆减速器制动。按下自复式缓解按钮HA,动作缓解阀,使车辆减速器缓解。
当维修人员需对某车辆减速器进行检修时,征得驼峰信号楼值班员同意后,按下非自复式的检修按钮JXA,车辆减速器就不能进行制动和缓解操作,可以安全地检修车辆减速器,检修完毕,拉出JXA,即可对车辆减速器进行操作。
2、制动和缓解电路
对于每一台车辆减速器设一个制动继电器ZJ和一个缓解继电器HJ器。 ZJ的3~4线圈受计算机系统控制,计算机系统发出制动控制命令,使ZJ吸起,接通制动阀ZF电路,车辆减速器进行制动动作,ZJ吸起后,使HJ吸起,但此时缓解阀HF电路被ZJ后接点断开。此后HJ经缓解表示继电器HBJ后接点、制动表示继电器ZBJ前接点的电路自闭。在车辆减速器处于制动位置和未
达到缓解位置时吸起,以确保车辆减速器缓解。车辆减速器脱离制动位置后,ZBJ落下,HJ缓解2~3s时间内,缓解阀HF动作,使车辆减速器缓解。HF仅短时间动作,一经缓解即自动断开其电路。
手动控制时,作业员按下制动按钮ZA,使ZJ吸起并自闭,动作制动阀ZF,车辆减速器制动。此后,ZJ吸起后,即在制动过程中ZF一直工作,知道按下缓解按钮HA,使ZJ落下,ZF才停止工作。ZJ吸起工作,接通HJ电路,其过程同自动控制时的电路动作。