您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 第四章 MATLAB在控制系统仿真中的应用
第四章MATLAB在控制系统仿真中的应用控制系统的数学模型对于控制系统的研究具有重要意义。要对系统进行仿真研究,首先应建立系统的数学模型,在此模型的基础上建立系统的仿真模型,然后进行仿真,分析研究系统,并设计出相应的控制器对系统进行控制,使系统响应达到预期目标。本章重点:控制系统数学模型的基本描述方法控制系统的稳定性分析控制系统的根轨迹系统的频率响应线性系统时间响应分析一、控制系统数学模型的基本描述方法G(s)=G(s)=控制系统仿真中,主要用4种形式的数学模型:传递函数、零极点模型、结构图形式和状态方程模型。11211121)()(nnnmmmasasabsbsbsusy)())()(()())()((321321nmpspspspszszszszsk传递函数零极点状态方程结构图形式X=Ax+BuY=Cx+Du4.1.1控制系统的传递函数描述用分子分母的系数构成两个向量,唯一的确定出来:num=[b1,b2,…,bn]den=[a1,a2,…,an]注意:构成分子,分母向量按降幂排列的顺序。传递函数的分子、分母均为多项式相乘的形式时,不能直接写出,可借助多项式乘法运算函数conv()来处理,以便获得分子、分母多项式向量。)()())(()(5s2s3s1ss6s6s2s4sG233224.1.2控制系统的零极点模型将零点、极点及K值输入即可建立零极点模型。z=[-z,-z…,-z]p=[-p,-p…,-p]k=k对于给出的传函来说,分别对分子分母作因式分解,则可以得出系统的零极点模型。这可以通过求出分子,分母多项式的根来实现。MATLAB中提供了多项式求根的函数,roots()调用格式:z=roots(a)其中:z—各个根所构成的向量a—多项式系数向量系统增益k即为原传递函数分子的最高项系数与分母最高项系数的比值。分别求出分子分母多项式的根,即可得到系统的零,极点模型。4.1.3控制系统状态方程模型只要将A,B,C,D几个矩阵输入进去即可。对于离散系统来说,也与上面类似。MATLAB还提供了由系统状态方程转换为系统零极点模型及传递函数模型的函数。[num,den]=ss2tf(A,B,C,D,iu)%iu—表示输入的序号(对多输入系统)[z,p,k]=ss2zp(A,B,C,D,iu)%[z,p,k]—表示对第iu个输入信号的传递函数的零极点。[A,B,C,D]=tf2ss(num,den)[A,B,C,D]=zp2ss(z,p,k)4.1.4控制系统工具箱中的LTI对象为了避免对一个系统采用多个分离变量进行描述,新版本的控制系统工具箱,将LTI系统的各种描述封装成一个对象,即用一个变量来描述。在控制系统工具箱中,有以上讲述的三种对象,即ss对象,tf对象和zpk对象。每种系统模型的生成和模型间的转换均可以通过一个函数来实现dss()函数:生成系统的状态空间模型。filt()函数:生成DSP(数字信号处理)形式的离散传递函数ss()函数:生成状态空间模型,或者将传递函数及零极点模型转换成状态空间模型tf()函数:生成传递函数模型,或将零极点模型及状态空间模型转换成传递函数模型zpk()函数:生成零极点模型或者将其他模型转化成零极点模型4.1.5控制系统的结构图描述及转换注意:复杂的结构图建模可以用SIMUKINK简单的结构图描述及典型连接串联并联负反馈series()Parallel()Feedback()二、控制系统的稳定性分析计算机仿真中,控制系统稳定性的分析方法有:①求闭环特征方程的根;②化为零极点模型,看极点是否在s右半平面;③对状态空间形式(闭环),求A阵的特征值eig(A);④用Lyapunov方程求解。在自控原理中,均采用间接方法劳斯判据,奈氏判据等,但由于在MATLAB中很容易地求解多项式方程。因此,我们可以直接求出特征方程的根,可用多项式求根函数roots()。控制系统的稳定性分析numg=1;deng=[11223];numf=1;denf=1;(num,den)=feedback(numg,deng,numf,denf,-1);roots(den)例:三、控制系统的根轨迹控制系统工具箱中提供了系统根轨迹绘制及分析函数,还有一个GUI分析工具。根轨迹的绘制及分析函数:•rlocfind():计算给定根的根轨迹增益格式:①[k,poles]=rlocfind(sys)②[k,poles]=rlocfind(sys,p)•rlocus()函数:功能为求系统根轨迹。格式:rlocus(sys)---计算SISO开环LTI对象的根轨迹,增益自动选取。rlocus(sys,k)---显式设置增益。[r,k]=rlocus(sys)---返回系统的增益k(向量)和闭环极点r(向量),即对应于增益的闭环极点为r(i)•sgrid()函数:绘制连续时间系统根轨迹和零极点图中的阻尼系数和自然频率栅格线控制系统的根轨迹num=[251];den=[123];sys=tf(num,den);rlocus(sys);[r,k]=rlocus(sys);[gain,poles]=rlocfind(sys)例:系统开环传递函数四、系统的频率响应若系统的传递函数为:G(s)=则频率特性函数G(j)=若系统由状态空间模型来描述,则系统的频率特性为:G(j)=C[jI+A]B+D111211121nnnmmmmasasasabsbsbsb11211121)()()()()()(nnnnmmmmajajajabjbjbjb1计算方法:polyval(num,sqrt(-1)*w)./polyval(den,sqrt(-1)*w)或H=freqresp(sys,)系统频率响应曲线的绘制(一)Bode图绘制:bode()函数调用格式:①bode(sys):bode(num,den)bode(A,B,C,D,iu)---可自动地选择一个合适的频率范围。②bode(sys,w)---给出频率范围,这里频率范围一般由logspace(a,b,n)给出。③[mag,phase,]=bode(sys)或[m,p]=bode(sys)这种格式只计算Bode图的幅值向量和相位向量,不画出图形。要在此基础上画图,可用:subplot(211);semilogx(,20*log10(m)%对数幅频曲线subplot(212);semilogx(,p)%对数相频曲线④bode(,,…,)⑤bode(,,…,,)这两种格式可在一个图形窗口同时绘多个系统的bode图系统频率响应曲线的绘制(二)Nyquist曲线的绘制:nyquist()函数格式:①nyquist(sys)②nyquist(sys,)③nyquist(,,…,)④nyquist(,,…,,)⑤[re,im,]=nyquist(sys)re—频率响应实部im—虚部计算控制系统的稳定裕度margin()函数利用该函数可以直接求出系统的幅值裕度和相角裕度。调用格式为:①[Gm,Pm,Wcg,Wcp]=margin(num,den)=margin(A,B,C,D)=margin(sys)Gm---幅值裕度;Pm---相位裕度;Wcg---幅值裕度处对应的频率;Wcp---相位裕度处对应的频率。②[Gm,Pm,Wcg,Wcp]=margin(mag,phase,)---根据幅值、相位数据计算稳定裕度。③margin(sys)---在当前图形窗口中绘制出系统裕度的Bode图。五、线性系统时间响应分析工具箱已提供直接求各种输入下系统响应的函数。一般控制系统的输入有:阶跃,斜坡,加速度及脉冲输入等。在工具箱中主要提供了如下三种函数:1.step()函数---求系统阶跃响应2.impulse()函数:求取系统的脉冲响应3.lsim()函数:求系统的任意输入下的仿真4.5.1系统阶跃响应step()函数---求系统阶跃响应其调用格式为:1)step(sys)step(num,den)2)step(sys,t)------定义仿真时间这两种格式直接画出响应曲线3)[y,x]=step(sys)---只计算仿真数据,不画图。=step(sys,t)y---各个仿真时刻的输出向量。x---自动选择的状态向量的时间响应数据。4)step(sys1,sys2,…)—同时仿真多个系统。4.5.2系统脉冲响应impulse()函数---求系统脉冲响应其调用格式为:1)impulse(sys)impulse(num,den)2)impulse(sys,t)------定义仿真时间这两种格式直接画出响应曲线3)[y,x]=impulse(sys)---只计算仿真数据不画图=impulse(sys,t)y---各个仿真时刻的输出向量。x---自动选择的状态向量的时间响应数据。4)impulse(sys1,sys2,…)—同时仿真多个系统。4.5.3任意输入下系统响应lsim()函数:求系统的任意输入下的仿真格式:1)lism(sys,u,t)u---给定输入构成的列向量,它的元素个数应与t的元素个数相一致。这种形式还可以写成:lsim(num,den,u,t)lsim(A,B,C,D,iu,u,t)其中:iu---输入变量序号2)lsim(sys,u,t,)---定义初始状态3)[y,x]=lsim(sys,u,t,)---不画出图形只算数据4)lsim(,,…,,,t)---同时仿真多个LTI对象线性系统时间响应分析(一)例:求下面系统在阶跃信号为0.11(t)时系统的响应。num=20;den=[18364020];t=0:0.1:20;t1=length(t);u=ones(t1,1)*0.1;[y,x]=lsim(num,den,u,t)plot(t,y)grid线性系统时间响应分析(二)例:已知系统开环传递函数为:求系统单位阶跃响应,并求出超调量、调节时间(误差在5%以内)、上升时间。(编写相应的M文件实现)n=5;d=[125];[nc,dc]=feedback(n,d,1,1,-1);s=tf(nc,dc);[y,t]=step(s);wentai=polyval(nc,0)/polyval(dc,0)caotiao=100*(max(y)-wentai)/wentai……………………525)(2sssG六、延迟系统的仿真Tse5443322154433221)()()()(2/1)()()()(2/1TSPTSPTSPTSPTSTSPTSPTSPTSPTSTsesGsG)(ˆ)(纯时间滞后环节可以由有理函数来近似,1892年法国数字家Pade曾提出了一种著名的有理近似方法,后人将它命名为Pade近似法。其表达式为:控制系统工具箱提供了一个函数pade()调用格式为:[num,den]=pade(T,n)---------返回近似模T---延迟时间常数n---要求拟和的阶数或:[A,B,C,D]=pade(T,n)---返回等效状态方程模型拟和的阶数越高,精度也越高纯时间滞后环节为Tse七、状态空间法仿真实现介绍控制系统工具箱中,几种状态空间法实现的函数ss2ss():功能是进行相似变换ctrb()函数:功能是计算可控性矩阵Co=[BAB…]ctrbf()函数:系统的可控与不可控分解obsv()函数:计算可观性矩阵obsvf():系统的可观与不可观分解minreal():状态空间的最小实现例:sim4_6.m
本文标题:第四章 MATLAB在控制系统仿真中的应用
链接地址:https://www.777doc.com/doc-2167285 .html