时域分析的Matlab实现.docx
《时域分析的Matlab实现.docx》由会员分享,可在线阅读,更多相关《时域分析的Matlab实现.docx(18页珍藏版)》请在冰豆网上搜索。
时域分析的Matlab实现
兰州商学院
本科生毕业论文(设计)
论文(设计)题目:
时域分析的Matlab实现
学院、系:
信息工程学院
计算机科学与技术系
专业(方向):
电子信息工程
年级、班:
2007级
学生姓名:
指导教师:
_2011__年5月25日
声明
本人郑重声明:
所呈交的毕业论文(设计)是本人在导师的指导下取得的成果。
对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
因本毕业论文(设计)引起的法律结果完全由本人承担。
本毕业论文(设计)成果归兰州商学院所有。
特此声明
毕业论文(设计)作者签名:
年月日
时域分析的Matlab实现
摘要
分析和设计系统的首要工作是确定系统的数学模型。
一旦建立了合理的、便于分析的数学模型,就可以对已组成的控制系统进行分析,从而得出系统性能的改进方法。
经典控制理论中,常用时域分析法、根轨迹法或频率分析法来分析控制系统的性能。
本文采用MATLAB语言编程实现了高阶系统时域分析,分析了其稳定性、快速性、准确性。
用户只需键入传递函数即可获得所需各种特性曲线和时域性能指标。
为提高高阶系统分析和设计效率提供了一种新的工具,应用实例验证了它的有效性。
[关键词]时域分析高阶系统MATLAB实现
ABSTRACT
Analysisanddesignofthesystem'stoppriorityistodeterminethemathematicalmodel.Onceareasonablemodeltofacilitatetheanalysis,tobecomposedofthecontrolsystemhavebeenanalyzedtoarriveatthesystemperformanceenhancement.Classicalcontroltheory,commonlyusedtimedomainanalysis,rootlocusorfrequencyanalysistoanalyzethecontrolsystemperformance.Inthispaper,theMATLABprogramminglanguagedomainanalysisofhigh-endsystem,analyzesitsstability,speed,accuracy.Userssimplytypethetransferfunctioncanbeobtainedforallkindsofcharacteristiccurvesandtime-domainperformance.Toimprovetheefficiencyofhigh-endsystemsanalysisanddesignprovidesanewtool,theapplicationexampleshowsitseffectiveness
[Keywords]Timedomainanalysis,High-endsystems,Matlab,Toachieve
时域分析的Matlab实现
一、引言
信号与系统的分析在通信、信息系统、信号处理、自动控制、检测等领域都有十分重要的作用。
信号与系统的分析一般先抽象为数学模型,然后讨论系统本身的初始状态以及不同激励时的响应。
对于高阶的微分方程,由于计算量庞大,人工计算难于实现。
经典控制理论对高阶系统进行时域分析通常采用拉氏反变换的方法求系统响应,系统阶次越高,进行拉氏反变换的困难就越大,因此,用经典法对高阶系统进行时域分析是一件较困难的事。
本文采用MATLAB语言编程,设计了对高阶系统进行时域性能辅助分析程序BSTT,充分发挥了MATLAB人机交互性好、函数调用方便、数学运算与绘图功能强大的优势,使分析效率和准确性大为提高。
二、时域分析基础理论
时域分析是指控制系统在一定的输入下,根据输出量的时域表达式,分析系统的稳定性、瞬态和稳态性能。
由于时域分析是直接在时间域中对系统进行分析的方法,所以时域分析具有直观和准确的优点。
系统输出量的时域表示可由微分方程得到,也可由传递函数得到。
在初值为零时,一般都利用传递函数进行研究,用传递函数间接的评价系统的性能指标。
具体是根据闭环系统传递函数的极点和零点来分析系统的性能。
此时也称为复频域分析。
(一)典型输入信号和时域性能指标
1、典型输入信号
控制系统的输出响应是系统数学模型的解。
系统的输出响应不仅取决于系统本身的结构参数、初始状态,而且和输入信号的形式有关。
初始状态可以作统一规定,如规定为零初始状态。
如再将输入信号规定为统一的形式,则系统响应由系统本身的结构、参数来确定,因而更便于对各种系统进行比较和研究。
自动控制系统常用的典型输入信号有下面几种形式:
1.阶跃函数定义为
式中U是常数,称为阶跃函数的阶跃值。
U=1的阶跃函数称为单位阶跃函数,记为1(t)。
如图2-1所示。
单位阶跃函数的拉氏变换为1/s。
在t=0处的阶跃信号,相当于一个不变的信号突然加到系统上,如指令的突然转换、电源的突然接通、负荷的突变等,都可视为阶跃作用。
2.斜坡函数定义为
这种函数相当于随动系统中加入一个按恒速变化的位置信号,恒速度为U。
当U=1时,称为单位斜坡函数,如图2-2所示。
单位斜坡函数的拉氏变换为1/s2。
3.抛物线函数定义为
这种函数相当于系统中加入一个按加速度变化的位置信号,加速度为U。
当U=1时,称为单位抛物线函数,如图2-3所示。
单位抛物线函数的拉氏变换为1/s3。
4.单位脉冲函数δ(t)定义为
图2-1单位阶跃函数图2-2斜坡函数
图2-3抛物线函数图2-4单位脉冲函数
单位脉冲函数的积分面积是1。
单位脉冲函数如图2-4所示。
其拉氏变换为1。
单位脉冲函数在现实中是不存在的,它只有数学上的意义。
在系统分析中,它是一个重要的数学工具。
此外,在实际中有很多信号与脉冲信号相似,如脉冲电压信号、冲击力、阵风等。
5.正弦函数定义为
其中A为振幅,ω为角频率。
其拉氏变换为
。
用正弦函数作输入信号,可以求得系统对不同频率的正弦输入函数的稳态响应,由此可以间接判断系统的性能。
2、时域性能指标
时域中评价系统的暂态性能,通常以系统对单位阶跃输入信号的暂态响应为依据。
这时系统的暂态响应曲线称为单位阶跃响应或单位过渡特性,典型的响应曲线如图2-5所示。
为了评价系统的暂态性能,规定如下指标:
图2-5单位阶跃输入信号下的暂态响应
1.延迟时间td指输出响应第一次达到稳态值50%所需的时间。
2.上升时间tr指输出响应从稳态值的10%上升到90%所需的时间。
对有振荡的系统,则取响应从零到第一次达到稳态值所需的时间。
3.峰值时间tp指输出响应超过稳态值而达到第一个峰值(即y(tp))所需的时间。
4.调节时间ts指当输出量y(t)和稳态值y(∞)之间的偏差达到允许范围(一般取2%或5%)以后不再超过此值所需的最短时间。
5.最大超调量(或称超调量)σp%指暂态过程中输出响应的最大值超过稳态值的百分数。
即
6.稳态误差ess指系统输出实际值与希望值之差。
在上述几项指标中,峰值时间tp、、上升时间tr和延迟时间td均表征系统响应初始阶段的快慢;调节时间ts表征系统过渡过程(暂态过程)的持续时间,从总体上反映了系统的快速性;而超调量σp%标志暂态过程的稳定性;稳态误差反映系统复现输入信号的最终精度。
(二)一阶系统的时域分析
凡是可用一阶微分方程描述的系统称一阶系统。
一阶系统的传递函数为
式中T称为时间常数,它是表征系统惯性的一个重要参数。
所以一阶系统是一个非周R(s)期的惯性环节。
图2-6为一阶系统的结构图。
图2-6一阶系统的结构图
下面分析在三种不同的典型输入信号作用下一阶系统的时域分析。
1、单位阶跃响应
当输入信号u(t)=1(t)时,U(s)=1/s,系统输出量的拉氏变换为
对上式取拉氏反变换,得单位阶跃响应为
由此可见,一阶系统的阶跃响应是一条初始值为0,按指数规律上升到稳态值1的曲线,见图2-7。
由系统的输出响应可得到如下的性能。
图2-7一阶系统的阶跃响应曲线
1.由于Y(t)的终值为1,因此系统稳态误差为0。
2.当t=T时,Y(T)=0.632。
这表明当系统的单位阶跃响应达到稳态值的63.2%时的时间,就是该系统的时间常数T。
单位阶跃响应曲线的初始斜率为
这表明一阶系统的单位阶跃响应如果以初始速度上升到稳态值1,所需的时间恰好等于T。
3.根据暂态性能指标的定义可以求得
调节时间为ts=3T(s)(±5%的误差带)
ts=4T(s)(±2%的误差带)
延迟时间为td=0.69T(s)
上升时间为tr=2.20T(s)
峰值时间和超调量都为0。
2、单位斜坡响应
当输入信号u(t)=t时,U(s)=1/s2,系统输出量的拉氏变换为
对上式取拉氏反变换,得单位斜坡响应为
其中(t-T)为稳态分量,Te-t/T为暂态分量。
单位斜坡响应曲线如2-8。
图2-8单位斜坡响应曲线
由一阶系统单位斜坡响应可分析出,系统存在稳态误差。
因为u(t)=t,输出稳态为t–T,所以稳态误差为ess=t–(t–T)=T。
从提高斜坡响应的精度来看,要求一阶系统的时间常数T要小。
3、单位脉冲响应
当u(t)=δ(t)时,系统的输出响应为该系统的脉冲响应。
因为L[δ(t)]=1,一阶系统的脉冲响应的拉氏变换为
对应单位脉冲响应为
单位脉冲响应曲线如图2-9。
时间常数T越小,系统响应速度越快。
图2-9脉冲响应曲线
(三)高阶系统的时域分析
设高阶系统的传递函数可表示为:
设闭环传递函数的零点为-z1,-z2,…,-zm,极点为-p1,-p2,…,-pn,则闭环传递函数可表示为:
当输入信号为单位阶跃信号时,输出信号为:
式中n=q+2r,而q为闭环实极点的个数,r为闭环共轭复数极点的对数。
用部分分式展开得
对上式取反拉氏变换得:
由上式分析可知,高阶系统的暂态响应是一阶惯性环节和二阶振荡响应分量的合成。
系统的响应不仅和
、wnk有关,还和闭环零点及系数Aj、Bk、Ck的大小有关。
这些系数的大小和闭环系统的所有的极点和零点有关,所以单位阶跃响应取决于高阶系统闭环零极点的分布情况。
从分析高阶系统单位阶跃响应表达式可以得到如下结论:
1.高阶系统暂态响应各分量衰减的快慢由
和
、wnk决定,即由闭环极点在s平面左半边离虚轴的距离决定。
闭环极点离虚轴越远,相应的指数分量衰减的越快,对系统暂态分量的影响越小;反之,闭环极点离虚轴越近,相应的指数分量衰减的越慢,系统暂态分量的影响越大。
2.高阶系统暂态响应各分量的系数不仅和极点在s平面的位置有关,还与零点的位置有关。
如果某一极点
靠近一个闭环零点,又远离原点及其他极点,则相应项的系数Aj比较小,该暂态分量的影响也就越小。
如果极点和零点靠得很近,则该零极点对暂态响应几乎没有影响。
3.如果所有的闭环极点都具有负实部,由上式可知,随着时间的推移,
系统的暂态分量不断的衰减,最后只剩下由极点所决定的稳态分量。
此时的系统称为稳定系统。
稳定性是系统正常工作的首要条件,下一节将详细探讨系统的稳定性。
4.假如高阶系统中距离虚轴最近的极点的实部绝对值仅为其他极点的
1/5或更小,并且附近又没有闭环零点,则可以认为系统的响应主要由该极点(或共轭复数极点)来决定。
这种对高阶系统起主导作用的极点,称为系统的主导极点。
因为在通常的情况下,总是希望高阶系统的暂态响应能获得衰减震荡的过程,所以主导极点常常是共轭复数极点。
找到一对共轭复数主导极点后,高阶系统就可近似为二阶系统来分析,相应的暂态响应性能指标可以根据二阶系统的计算公式进行近似估算。
三、基于MATLAB实现高阶系统的时域分析
MATLAB的控制工具箱提供了丰富的函数,配合MATLAB语言的自定义函数功能,使时域特性曲线的绘制和性能指标的求取通过简单的函数调用即可轻松实现,为系统设计与控制策略开发提供直观、图形化的仿真环境,从而实现高阶系统的时域分析。
BSTT主程序流程如图3-1所示。
图3-1主程序BSTT流程图
(1)函数PZmap(sys)来绘制系统的零极点在S平面上的分布,可以迅速、直观的判断系统的稳定性。
(2)图中时间矢量t包括阶跃响应的开始时间t0、步长s和终止时间te,可由step(b,a)函数自动确定时间轴的分度并自动生成图形,由用户根据图形输入自定义的各时间矢量,通过选取合适的坐标系刻度范围,保证输出图形既反映图象整体形状又能刻画出足够细节。
(3)y为线性系统单位阶跃响应的输出矢量,可由y=step(b,a)获得。
输出参数σ、Tr、Ts、Tp分别为超调量、上升时间、调整时间、峰值时间。
调整时间允许误差范围选择±2%或5%。
调整时间Ts的求取由程序通过循环判断输出Y值首次进入允许误差带的时间确定。
循环步长取s,初值为v0=(te-t0)/s。
以误差限为±2%为例,上升时间Tr用与求Ts类似的方法分别求出输出从t0开始首次增大至10%Yss的时间t1和增大到90%Yss所需时间t2,计算得:
Tr=t2-t1。
峰值时间Tp,为单位阶跃响应曲线从零上升到第一个峰值点所需时间。
四、高阶系统时域分析的MATLAB实现
利用MATLAB程序设计语言可以方便、快捷地对控制系统进行时域分析。
由于控制系统的稳定性决定于系统闭环极点的位置;欲判断系统的稳定性,只需求出系统的闭环极点的分布状况;利用MATLAB命令可以快速求解出和绘制出系统的零、极点位置。
欲分析系统的动态特性,只要给出系统的在某典型输入的输出响应曲线即可;同样,利用MATLAB可以十分方便的求解出和绘制出系统的响应曲线。
设有一高阶系统,其闭环传递函数为
试在时域内分析系统的单位阶跃响应,以判断系统的稳、快、准性能指标。
(一)应用经典法求解
忽略闭环零点Z=-10及闭环极点S3=-0、45+J0、33和S4=-0、45-J0、33的影响,化系统的传函为
,
将四阶系统降阶为二阶系统,且ζ=1时的临界阻尼情况,因为系统的闭环特征根为S1=S2=-0、45,即均位于S平面左半平面,系统稳定。
分析系统的快速性指标从概念出发,计算得tr=6.26s,ts=8.83s,tp=∞(即此系统无峰值时间),因为系统为一型系统,所以
(二)MATLAB实现
b=[0.33,3.3];
>>a=[1,9,24,16.33,3.3];
>>t=[0:
0.01:
0.5];
>>s=t(fb,a)
Transferfunction:
0.33s+3.3
sˆ4+9sˆ3+24sˆ2+16.33s+3.3
>>[y,t]=step(s)
1、系统稳定性分析
一个线性系统正常工作的首要条件,就是它必须是稳定的。
所谓稳定性,是指系统受到扰动作用后偏离原来的平衡状态,在扰动作用消失后,经过一段过度时间能否回复到原来的平衡状态或足够准确地回到原来的平衡状态的性能。
若系统能恢复到原来的平衡状态,则称系统是稳定的;若扰动消失后系统不能恢复到原来的平衡状态,则称系统是不稳定的。
线性系统的稳定性取决于系统本身固有的特性,而与扰动信号无关。
它决定于扰动取消后暂态分量的衰减与否,从上节暂态特性分析中可以看出,暂态分量的衰减与否,决定于系统闭环传递函数的极点(系统的特征根)在s平面的分布:
如果所有极点都分布在s平面的左侧,系统的暂态分量将逐渐衰减为零,则系统是稳定的;如果有共轭极点分布在s平面的虚轴上,则系统的暂态分量做等幅振荡,系统处于临界稳定状态;如果有闭环极点分布在s平面的右侧,系统具有发散的暂态分量,则系统是不稳定的。
所以,线性系统稳定的充分必要条件是:
系统特征方程式所有的根(即闭环传递函数的极点)全部为负实数或为具有负实部的共轭复数,也就是所有的极点分布在s平面虚轴的左侧。
因此,可以根据求解特征方程式的根来判断系统稳定与否。
例如,一阶系统的特征方程式为
特征方程式的根为
显然特征方程式根为负的充分必要条件是
均为正值,即
二阶系统的特征方程式为
特征方程式的为
要使系统稳定,特征方程式的根必须有负实部。
因此二阶系统稳定的充分必要条件是:
由于求解高阶系统特征方程式的根很麻烦,所以对高阶系统一般都采用间接方法来判断其稳定性。
1887年,劳斯发表了研究线性定常系统稳定性的方法。
该判据的具体内容和步骤如下。
1、首先列出系统特征方程式
式中各个项系数均为实数,且使
。
2、根据特征方程式列出劳斯数组表
sn
···
sn-1
···
sn-2
···
sn-3
···
···
···
···
s2
s1
s0
表中各未知元素由计算得出,其中
同样的方法,求取表中其余行的系数,一直到第n+1行排完为止。
3、根据劳斯表中第一列各元素的符号,用劳斯判据来判断系统的稳定性。
劳斯判据的内容如下:
1)如果劳斯表中第一列的系数均为正值,则其特征方程式的根都在s的左半平面,相应的系统是稳定的。
2)如果劳斯表中第一列系数的符号发生变化,则系统不稳定,且第一列元素正负号的改变次数等于特征方程式的根在s平面右半部分的个数。
在MATLAB的命令窗口键入pzmap(s)可得系统闭环特征根分布图(见图4-1)。
从图中直观的看出系统的所有根都具有负实部,即位于S平面左半平面,所以系统是稳定的。
图4-1MATLAB实现的闭环特征根分布图
2、系统的快速性分析
由[y,t]=step(s)得出tr=7、60s,ts=13、34s,tp=∞(即无峰值出现,见响应曲线图4-3)。
图4-3单位阶跃响应曲线
3、系统的准确性分析
准确性是控制系统时域指标之一,用来评价系统稳态性能的好坏。
准确性仅对稳定系统才有意义。
稳态条件下输出量的期望值与稳态值之间存在的误差,称为系统准确性。
影响系统准确性的因素很多,如系统的结构、系统的参数以及输入量的形式等。
没有准确性的系统称为无差系统,具有准确性的系统称为有差系统。
为了分析方便,把系统的准确性按输入信号形式不同分为扰动作用下的准确性和给定作用下的准确性。
对于恒值系统,由于给定量是不变的,常用扰动作用下的准确性来衡量系统的稳态品质;而对随动系统,给定量是变化的,要求输出量以一定的精度跟随给定量的变化,因此给定准确性成为恒量随动系统稳态品质的指标。
从函数输出的响应值或系统输出响应曲线,均可以看出系统的准确性性能指标ess,当t=∞时,ess=0。
(三)应用MATLAB分析系统的动态特性
已知三阶系统的传递函数为
绘制系统的单位阶跃响应和单位脉冲响应曲线。
解:
可执行如下程序:
%Thisprogramplotsacurveofstepresponseandstepimpulseforthreeorder%system
clf
num=[100200];
den=[11.4100.44100.04];
h=tf(num,den);
[y,t,x]=step(h)
[y1,t1,x1]=impulse(h)
subplot(211),plot(t,y)
title(‘StepResponse’)
xlabel(‘time’),ylabel(‘amplitude’)
subplot(212),plot(t1,y1)
title(‘impulseresponse’)
xlabel(‘time’),ylabel(‘amplitude’)
CLF是清屏命令。
程序的第四行、第五行是计算系统的阶跃响应和冲激响应,并把计算结果分别存于变量y和x中,对应的时间量存于变量t。
为了将两个响应曲线绘于同一个窗口,程序采用了分区绘图的命令,即subplot(211),其定义是取上半部分,绘制阶跃响应图;subplot(212),其定义是取下半部分,绘制脉冲响应曲线。
程序中还定义了所绘曲线的坐标名称及图形的名称,运行结果见图:
图4-5系统的单位阶跃响应和单位脉冲响应曲线
MATLAB中所提供的单位阶跃响应函数step,单位脉冲响应impulse以及零输入响应函数initial和任意输入下的仿真函数lsim,其输入变量不仅可以是系统的零、极点形式,传递函数形式,还可以是状态空间模型形式。
五、结论
基于MATLAB实现对高阶系统进行时域分析的程序BSTT提供了一种简便易行的系统分析方法,提高了系统分析和设计的效率和准确性。
同时,该程序的设计方法体现出MATLAB作为程序设计语言的优势,提示可以将MATLAB应用编程扩展到多入多出系统、离散系统等复杂系统的分析和设计。
参考文献
[1]侯夔龙.自动控制原理[M].西安:
西安交通大学出版社,1993.59-87.
[2]晁勤,傅成华,王军等.自动控制原理[M].重庆:
重庆大学出版社,2001.57-58.
[3]程卫国,冯峰,姚东等.MATLAB5.3应用指南[M].北京:
人民邮电出版社,1999.282-342.
[4]陈怀琛,吴大正,高西全.MATLAB及在电子信息课程中的应用[M].北京:
电子工业出版社,2002.223-235.
[5]郑君里,杨为理,等.信号与系统[M].北京:
高等教育出版社,2000.
[6]闵大镒,朱学勇,编著.信号与系统分析[M].成都:
电子科技大学出版社,2000.
[7]张昱。
周绮敏,等编著.信号与系统实验教程[M].北京:
人民邮电出版社,2005.
[8]陈怀琛,吴大正,高西全,编著.MATLAB及在电子信息课程中的应用[M].北京:
电子工业出版社,2003.
[9]程鹏,主编.自动控制原理[M].北京:
高等教育出版社,2003
[10]谢麟阁主编.自动控制原理[M].北京:
水利电力出版社,2005.
[11]戴忠达主编.自动控制理论基础[M].北京:
清华大学出版社,2004.
[12]崔怡主编.MATALB5.3实例详解[M].北京;航空工业出版社,2000.
[13]薛定宇主编.计算机辅助设计MATLAB语言及应用[M].北京:
清华大学出版社,2009.
[14]楼顺天,于卫.基于MATLAB的系统分析和设计——控制系统[M].西安:
电子科技大学出版社,2008.
[15]孔凡才.自动控制原理与系统(第2版)[M].北京:
机械工业出版