您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 机械/模具设计 > MATLAB在控制系统中的应用
1MATLAB在控制系统中的应用[摘要]:MATLAB具有编程简单直观,开放性强等优点,能有效提高控制系统的工作效率,是控制系统中一种很好的工具。MATLAB除了传统的交互式编程之外,还提供丰富可靠的矩阵运算、图形绘制、数据处理、方便的Windows编程等便利工具,出现了各种以MATLAB为基础的实用工具箱,广泛地应用于自动控制、图像信号处理、生物医学工程、语音处理、雷达工程、信号分析、振动理论、时序分析与建模、化学统计学、优化设计等领域。并显现出一般高级语言难以比拟的优势。关键词:MATLAB应用软件;控制系统设计;离散系统设计;仿真;应用一、控制系统的主要内容(1)线性控制系统的数学模型目前大部分控制系统分析设计的算法都需要假设系统的模型已知,而获得数学模型有两种方法:其一是从已知的物理规律出发,用数学推导的方法建立起系统的数学模型,另外一种方法是由实验数据拟合系统的数学模型。一般线性系统控制理论科学和研究中,经常将控制系统分为连续系统和离散系统,描述线性连续系统常用的描述方式是传递函数和状态方程,相应地离散系统可以用离散传递函数和离散状态方程表示。除了这两种描述方法以外,还常用零极点形式来表示连续线性系统模型。(2)线性系统的传递函数模型连续动态系统一般是由微分方程来描述的,而线性系统又是以线性常微分方程来描述的。当系统用传递函数表示如下所示时:在MATLAB中可以分别表示完分子和分母多项式后,再利用控制系统工具箱的tf()函数就可以用一个变量表示传递函数G:];,,...,,[121mmbbbbnum];,,,...,,[132,1nnaaaaaden);,(dennumtfG(3)线性系统的状态方程模型当系统是用状态方程描述时,MATLAB要用到另一种表示函数的方法,例如系统用状态方程的表示如下所示:)()()(tButAxtx)()()(tDtCxty1231211121......)(nnnnnmmmmasasasasabsbsbsbsG2此系统的状态方程模型可以用下面的语句直接建立起来:),,,(DCBAssG(4)线性系统的零极点模型零极点模型实际上是传递函数的另一种表现形式,对原系统传递函数的分子和分母分别进行分解因式处理,则可得到系统的零极点模型为))...()(())...()(()(2121nmpspspszszszsKsG在MATLAB下表示零极点模型的方法很简单,先用向量的形式输入系统的零点和极点,然后调用zpk()函数就可以输入这个零极点模型了。];;...;;[21mzzzz];;...;;[21npppp);,,(KpzzpkG(5)线性离散时间系统的数学模型一般的单变量离散系统可以由下面的差分方程来表示。])][(])1[(...])1[()T(121TnkyaTnkyaTkyakyann])[(])1[(...])1[()(110TnkubTnkubTkubkTubnn在MATLAB语言中,输入离散系统的传递函数模型和连续系统传递函数模型一样简单,只需分别按要求输入系统的分子和分母多项式,就可也以利用tf()函数将其输入到MATLAB环境。和连续传递函数不同的是,同时还需要输入系统的采样周期T,具体语句如下:];,,...,,[110nnbbbbnum];,,...,,[121nnaaaaden);,'',,(TTsdennumtfH二、线性控制系统的分析(1)稳定性用系统的状态方程判断系统的稳定性是看系统状态方程中A矩阵的特征根是否均有负实部,在线性系统工具箱中,求取一个线性定常系统的特征根只需用p=eig(G)函数即可,其中p返回系统的全部特征根。不论系统的模型G是传递函数、状态方程还是零极点模型,且不论系统是连续或离散的,都可以用这样简单的命令求解系统的全部特征根,这样就使系统的稳定性判定变得十分容易。另外,由pzmap(G)函数能用图形的方式绘制出系统所有特征根在s复平面上的位置,所以判定连续系统是否稳定只须看一下系统所有极点在s复平面上是否均位于虚轴左侧即可。(2)系统内部稳定性分析在反馈控制系统的分析中,为了得到更好的控制效果,仅仅分析系统的输入输出稳定性是不够的,因为这样的稳定性分析只能保证由稳定输入激励下的输出信号的有界性,但3不能保证系统的内部信号都是有界的。若系统的内部信号变成无界的,即使原系统稳定,也将破坏原系统的物理结构。如下图1.1所示的反馈系统结构图1.1反馈系统结构如果上系统中从输入信号(r,d,n)到内部输出信号(x1,x2,x3)的所有9个闭环系统函数都是稳定的,则该系统是内部稳定的。可以证明,这9个传递函数可以表示成1)()()()()(1)()()()(1)(1321sGsGsGsHsGsGsHsHsGsMxxxccc逐一去判断每个式子传递函数的稳定性无疑是很繁琐的,所以可以根据内部稳定性定理,用简单方法直接判定。该定理为:闭环系统内部稳定的充要条件为:传递函数)()()(1sGsGsHc没有Re[s]≥0的零点。乘积)()()(sGsGsHc中没有满足Re[s]≥0的零极点对消。(3)二阶系统的时域分析假设系统的开环模型为)2(/)(2nnsssG,并假设有单位负反馈构造出整个闭环控制系统模型,则定义ζ为系统的阻尼比,ωn为系统的自然震荡频率,假设给出一个二阶线性系统如下,对其进行时域分析得出阶跃响应曲线。这时闭环系统模型可以写成4342ssG系统的阶跃响应曲线num=[4];,den=[1,3,4];G=tf(num,den);step(G)%求解系统的阶跃响应曲线4图1.2系统的阶跃响应曲线图1.3系统的根轨迹曲线由dcgain(G)可以直接得出系统的稳态值为1。由系统的阶跃响应曲线可以得到:1.超调量σ(系统的峰值与稳态值的差距)2.上升时间rt(一般定义为系统阶跃响应从稳态值的10%--90%的这段时间)41.2rt3.调节时间st(一般指系统的阶跃响应进入稳态值附近的一个带中,比如2%或5%的带后不再出来时所需的时间)89.3st系统的根轨迹曲线rlocus(G),grid%绘制系统的根轨迹如图1.3所示,由系统函数可知系统有两个极点,没有零点,因此系统的根轨迹曲线是两条向远处无限延伸的曲线。系统的Nyquist曲线、Bode图、Nichols图nyquist(G),grid%求系统的Nyquist曲线bode(G)%绘制系统的伯德图figure,nichols(G),grid%绘制系统的Nichols图StepResponseTime(sec)Amplitude05101520253000.20.40.60.811.21.4System:GPeakamplitude:1.03Overshoot(%):2.83Attime(sec):2.41System:GTime(sec):3.89Amplitude:1-1.6-1.4-1.2-1-0.8-0.6-0.4-0.20-5-4-3-2-10123450.030.060.090.130.190.260.40.650.030.060.090.130.190.260.40.651234512345RootLocusRealAxisImaginaryAxis3%1001103.1%100)()(yyyp-1-0.8-0.6-0.4-0.200.20.40.60.81-1-0.8-0.6-0.4-0.200.20.40.60.810dB-20dB-10dB-6dB-4dB-2dB20dB10dB6dB4dB2dBNyquistDiagramRealAxisImaginaryAxis-80-60-40-200Magnitude(dB)BodeDiagramFrequency(rad/sec)10-210-1100101102-180-135-90-450System:GPhaseMargin(deg):-180DelayMargin(sec):InfAtfrequency(rad/sec):0ClosedLoopStable?YesPhase(deg)5图1.4系统的Nyquist曲线图1.5系统的伯德图从得出的Nyquist图可知整个Nyquist图并不包围(-1,j0)点,根据Nyquist定理可以断定,该系统是稳定的。由系统的Nichols图可以得到系统的幅值裕度、频率、相角裕度和剪切频率,图1.6系统的Nichols曲线三、Simulink在系统仿真中的应用MATLAB下提供的Simulink环境是解决非线性系统建模、分析与仿真的理想工具。控制系统仿真研究的一种常见的要求是通过计算机得出系统在某信号驱动下的时间响应,从中得出期望的结论。Simulink是MATLAB的一个组成部分,它提供的模块包括一般线性性、非线性控制系统所需的模块,也有更高层的模块,使得用户可以轻而易举地对感兴趣的系统进行仿真,得出希望的结果。如:已知三阶对象模型3()1/(1)Gss,在MATLAB中研究闭环系统在不同控制情况下的阶跃响应,并分析结果。(1)0,idTT时,在不同KP值下,闭环系统的阶跃响应;(2)10,pdKT时,在不同iT值下,闭环系统的阶跃响应;(3)1piKT时,在不同dT值下,闭环系统的阶跃响应;在Simulink中找到各个部件并创建出满足要求的仿真模型如下-360-315-270-225-180-135-90-450-80-60-40-20020406dB3dB1dB0.5dB0.25dB0dB-1dB-3dB-6dB-12dB-20dB-40dB-60dB-80dBSystem:GGain(dB):-79.4Phase(deg):-179Frequency(rad/sec):742System:GGain(dB):-0.000105Phase(deg):-0.426Frequency(rad/sec):0.0305NicholsChartOpen-LoopPhase(deg)Open-LoopGain(dB)6图1.7系统的仿真模型系统仿真研究单击启动仿真按钮,则可启动仿真过程,将示波器输出模式改为数组形式,在command命令下,使用plot(a(:,1),a(:,2))和holdon命令并修改参数值,可得下图。图1.90,idTT,图1.8修改Kp、Ti、和Td峰值由高到低为Kp=10,7,5从图1.9仿真结果看,随着Kp的增大,系统响应超调量增大,响应速度快,调节时间更长,稳定性能更变差。从图2.0仿真结果看,随着Ti的增大系统超调亮减小,响应速度略微变慢,它可以使得稳定的闭环系统没有稳态误差。从图2.1仿真结果看,随着Td值的增大,闭环系统超调量减小,响应速度加快,加入串比例-微分控制,会使稳态性能得以提高。012345678910-6-4-20246012345678910-2-1.5-1-0.500.511.522.5301234567891000.511.57图2.010,pdKT图2.11piKT,峰值由高到低为Ti=0.5,1,2峰值由高到低为Td=1,2,3四、结束语随着MATLAB版本的不断升级,其功能也越来越完善,特别是SIMULINK的出现,更使得MATLAB为控制系统的仿真与其在CAD中的应用打开了崭新的局面。MATLAB强大的功能与先进的技术等待我们去发掘和应用。参考文献薛定宇、张晓华.控制系统计算机辅助设计.第二版.清华大学出版社,2011张俊红,王亚慧,陈一民.控制系统仿真及Matlab应用.机械工业出版社,2010王海英,袁丽英,吴勃.控制系统的MATLAB仿真与设计.高等教育出版社,2009王丹力,邱志平.MATLAB控制系统设计仿真应用.中国电力出版社,2
本文标题:MATLAB在控制系统中的应用
链接地址:https://www.777doc.com/doc-2881967 .html