MATLAB在自动控制原理中的应用.ppt
第 5 章 MATLAB在自动控制原理中的应用 5.1 控制系统模型控制系统模型pipipxx5.1.1 5.1.1 控制系统的描述控制系统的描述 控制系统的模型及转换控制系统的模型及转换 线性控制系统是一般线性系统的子系统。在MATLAB中,对自动控制系统的描述采用三种模型:状态空间模型(ss)、传递函数模型(tf)以及零极点增益模型(zpk)。模型转换函数:ss2tf,ss2zp,tf2ss,tf2zp,zp2ss和zp2tf。 在MATLAB的Control System Toolbox(控制系统工具箱)中提供了许多仿真函数与模块,用于对控制系统的仿真和分析。 第 5 章 MATLAB在自动控制原理中的应用 5.1.2控制系统模型的建立及转换函数 在MATLAB的控制系统工具箱中,各种LTI对象模型的生成和模型间的转换都可以通过一个相应函数来实现。函数名称及基本格式函数名称及基本格式功功 能能dss(a, b, c, d, )生成(或将其它模型转换为)描述状态空间模型filt(num, den, )生成(或将其它模型转换为)DSP形式的离散传递函数ss(a, b, c, d, )生成(或将其它模型转换为)状态空间模型tf(num, den, )生成(或将其它模型转换为)传递函数模型zpk(z, p, k, )生成(或将其它模型转换为)零极点增益模型表表 生成LTI模型的函数第 5 章 MATLAB在自动控制原理中的应用 例例 生成系统的零极点模型。生成系统的零极点模型。MATLAB源程序为:z=-2;p=-10;k=5;s1=zpk(z,p,k) %连续系统连续系统s1的零极点增益模型的零极点增益模型s2=zpk(z,p,k,-1) %离散系统离散系统s2的零极点增益模型的零极点增益模型运行结果为:运行结果为:Zero/pole/gain:5 (s+2)-(s+10) Zero/pole/gain:5 (z+2)-(z+10) Sampling time: unspecified例例 生成系统的传递函数模型。生成系统的传递函数模型。num= 2,5,1;den= 1,2,3;s3=tf(num,den) %系统的传递函数模型z p k=tf2zpk (num,den) %传递函数模型转换成零极点模型第 5 章 MATLAB在自动控制原理中的应用 5.1.3 LTI5.1.3 LTI模型的简单组合模型的简单组合1LTI模型的简单组合模型的简单组合若假定两环节均为单输入单输出的系统若假定两环节均为单输入单输出的系统SA和和SB。两个环节级联:两个环节级联:sysseries(SA,SB)两个环节并联:两个环节并联:sys=parallel(SA,SB)A环节前向,环节前向,B环节反馈:环节反馈:S=feedback(SA,SB)第 5 章 MATLAB在自动控制原理中的应用 例例 计算如图所示的系统的传递函数。MATLAB源程序为:s1=tf(2,5,1,1,2,3) %系统s1的传递函数模型s2=zpk(-2,-10,5) %系统s2的零极点增益模型sys=feedback(s1,s2)% s1环节前向,s2环节反馈5(s+2)/(s+10)程序运行结果为:程序运行结果为:Transfer function: 系统s1的传递函数模型2 s2 + 5 s + 1- s2 + 2 s + 3Zero/pole/gain: 系统s2的零极点增益模型5 (s+2)-(s+10)Zero/pole/gain: 系统s1、s2的反馈零极点增益模型0.18182 (s+10) (s+2.281) (s+0.2192)- (s+3.419) (s2 + 1.763s + 1.064)第 5 章 MATLAB在自动控制原理中的应用 2. 连续系统与采样系统之间的转换函数连续系统与采样系统之间的转换函数函数名函数名功能功能调用格式调用格式c2d连续系统转换为采样系统sysd = c2d(sysc,Ts,method) d2c采样系统转换为连续系统sysc = d2c(sysd,method) d2d采样系统改变采样频率sys = d2d(sys,Ts) 例例 系统的传递函数为:输入延时Td=0.35秒,试用一阶保持法对连续系统进行离散,采样周期Ts=0.1s。MATLAB程序为:程序为:sys=tf(2,5,1,1,2,3,td,0.5); %生成连续系统的传递函数模型sysd=c2d(sys,0.1,foh)%形成采样系统程序运行结果为:程序运行结果为:Transfer function: 2.036 z2 - 3.628 z + 1.584z(-5) * - z2 - 1.792 z + 0.8187 Sampling time: 0.132152)(22sssssH第 5 章 MATLAB在自动控制原理中的应用 5.2 控制系统的时域分析 时域分析是一种直接在时间域中对系统进行分析的方法,具有直观和准确的优点。它是根据控制系统输入与输出之间的时域表达式,分析系统的稳定性、瞬态过程和稳态误差。控制系统最常用的分析方法有两种:一是当输入信号为单位阶跃时,求出系统的响应;二是当输入信号为单位冲激函数时,求出系统的响应。 1. 生成特定的激励信号的函数生成特定的激励信号的函数gensig( )格式:格式:u,t = gensig(type,tau)功能:按指定的类型type和周期tau生成特定类型的激励信号u。其中变元type可取字符为:sin(正弦)、square(方波)、pulse(脉冲)。第 5 章 MATLAB在自动控制原理中的应用 2LTI模型的单位冲激响应函数模型的单位冲激响应函数impulse( )格式:impulse(sys)功能:绘制系统sys(sys由函数tf、zpk或ss产生)的单位冲激响应,结果不返回数据,只返回图形。例例 系统传递函数为:系统传递函数为:求脉冲响应。MATLAB程序如下:sys=tf(4,1 1 4); %生成传递函数模型impulse(sys); %计算并绘制系统的单位冲激响应title(脉冲响应脉冲响应);该程序运行所得结果如图所示。44)(2sssG系统的脉冲响应 第 5 章 MATLAB在自动控制原理中的应用 3. 状态空间模型系统的零输入响应函数状态空间模型系统的零输入响应函数initial( ) 格式:initial(sys,x0) 功能:绘制状态空间模型sys在初始条件x0下的零输入响应,不返回数据,只绘出 响应曲线。该响应由如下方程表征:连续时间:Axx Cxy 0)0(xx离散时间: 1kAxkxkCxky00 xx、4LTI模型任意输入的响应函数模型任意输入的响应函数lsim( )格式:格式:lsim(sys,u,T) 功能:计算和绘制LTI模型sys在任意输入u、持续时间T的作用下的输出y,不返回数据,只返回图形。T为时间数组,它的步长必须与采样周期Ts相同。当u为矩阵时,它的列作为输入,且与T(i)行的时间向量相对应。例如t = 0:0.01:5; u = sin(t); lsim(sys,u,t)完成系统sys对输入u(t)=sin(t)在5秒内的响应仿真。5LTI模型的阶跃响应函数模型的阶跃响应函数step( )格式:格式:step(sys)功能:绘制系统sys(sys由函数tf、zpk或ss产生)的阶跃响应,结果不返回数据,只返回图形。对多输入多输出模型,将自动求每一输入的阶跃响应。第 5 章 MATLAB在自动控制原理中的应用 例例 求系统:的方波响应,其中方波周期为6秒,持续时间12秒,采样周期为0.1秒。MATLAB程序为:程序为:u,t=gensig(square,6,12,0.1); %生成方波信号plot(t,u,-);hold on; %绘制激励信号sys=tf(1,1,1,2,5); %生成传递函数模型lsim(sys,u,t); %系统对方波激励信号的响应hold ony2=step(1,1,1,2,5,t); %系统的阶跃响应plot(t,y2,r);该程序运行所得结果如图所示。521)(2ssssG方波、阶跃响应曲线 024681012-0.200.20.40.60.811.2Linear Simulation ResultsTime (sec)Amplitude第 5 章 MATLAB在自动控制原理中的应用 5.3 控制系统的根轨迹 在控制系统分析中,为了避开直接求解高阶多项式的根时遇到的困难,在实践中提出了一种图解求根法,即根轨迹法。所谓根轨迹是指当系统的某一个(或几个)参数从0到时,闭环特征方程的根在复平面上描绘的一些曲线。应用这些曲线,可以根据某个参数确定相应的特征根。在根轨迹法中,一般取系统的开环放大倍数K作为可变参数,利用它来反映出开环系统零极点与闭环系统极点(特征根)之间的关系。 根轨迹可以分析系统参数和结构已定的系统的时域响应特性,以及参数变化对时域响应特性的影响,而且还可以根据对时域响应特性的要求确定可变参数及调整开环系统零极点的位置,并改变它们的个数,也就是说根轨迹法可用于解决线性系统的分析与综合问题。 MATLAB提供了专门绘制根轨迹的函数命令,如下表所示,使绘制根轨迹变得轻松自如。 第 5 章 MATLAB在自动控制原理中的应用 函数名功能格式pzmap绘制系统的零极点图pzmap(sys) tzero求系统的传输零点z = tzero(sys) rlocfind计算给定根轨迹增益K,poles = rlocfind(sys) rloccus求系统根轨迹rloccus(sys)damp求系统极点的固有频率和阻尼系统Wn,Z = damp(sys) ploe求系统的极点p = pole(sys) dcgain求系统的直流(稳态)增益k = dcgain(sys) dsort离散系统极点按幅值降序排列s = dsort(p) esort连续系统极点按实部降序排列s = esort(p)表 系统根轨迹绘制及零极点分析函数 第 5 章 MATLAB在自动控制原理中的应用 例例 由连续系统:试绘制其零极点图和根轨迹图。MATLAB程序为:num=2,5,1; den=1,2,3;sys=tf(num,den); %生成传递函数模型figure(1); pzmap(sys);title(零极点图); %绘制零极点图figure(2); rlocus(sys); sgrid; title(根轨迹); %绘制根轨迹图32152)(22sssssH传递函数的零极点图和根轨迹图 第 5 章 MATLAB在自动控制原理中的应用 5.4 控制系统的频域分析 频域分析法是应用频率特性研究控制系统的一种经典方法。采用这种方法可直观地表达出系统的频率特性,分析方法比较简单,物理概念比较明确,对于诸如防止结构谐振,抑制噪声、改善系统稳定性和暂态性能等问题,都可以从系统的频率特性上明确的看出其物理实质和解决途径。 频率分析法主要包括三种方法: Bode图(幅频/相频特性曲线) Nyquist曲线 Nichols图。第 5 章 MATLAB在自动控制原理中的应用 函数名功能格式bodeBode图绘制bode(sys) nicholsNichols图绘制nichols(sys)nyquistNyquist图绘制Nyquist(sys)sigma系统奇异值Bode图绘制Sigma(sys)evalfr计算系统单个复频率点的频率响应fresp = evalfr(sys,x) dbode绘制离散系统的Bode图dbode(a,b,c,d,Ts,iu)dnichols绘制离散系统的Nichols图dnichols(num,den,ts) dnyquist绘制离散系统的Nyquist图dnyquist(num,den,ts) ngridNichols网格图绘制ngridmargin绘制离散系统的Bode图gm,pm,wcg,wcp=margin(sys)freqresp计算系统在给定实频率区间的频率响应 h = freqresp(sys,w) 第 5 章 MATLAB在自动控制原理中的应用 例例 试绘制开环系统H(s)的Nyquist曲线,判断闭环系统的稳定性,并求出闭环系统的单位冲激响应。其中MATLAB程序为:程序为:k=50;z=;p=-5,2;sys=zpk(z,p,k);figure(1);nyquist(sys);title(Nyquist曲线图曲线图);figure(2);sb=feedback(sys,1);impulse(sb);title(单位冲激响应单位冲激响应);w=logspace(-2,2);figure(3);bode(sys,w);title(bode曲线图曲线图);grid)2)(5(50)(sssH开环系统的Nyquist曲线图及冲激响应 -60-40-20020Magnitude (dB)10-210-1100101102-180-170-160-150Phase (deg)bode曲线图Frequency (rad/sec)开环系统的Bode曲线图结束结束