MAT用基础及教程 4_第1页
MAT用基础及教程 4_第2页
MAT用基础及教程 4_第3页
MAT用基础及教程 4_第4页
MAT用基础及教程 4_第5页
已阅读5页,还剩70页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

lecture_09MATLAB在控制系统中的应用重点难点玫瑰花:美国、英国、西班牙、卢森堡、保加利亚的国花。控制理论的发展是一个由简单到复杂/量变到质变的辩证过程,其大致历经了经典控制理论、现代控制理论、智能控制理论三个阶段。经典控制理论主要研究简单控制系统(单输入单输出),大多是线性时不变(LTI)系统,如电机的位置和速度控制、冶炼炉的温度控制等。研究方法有频域法、根轨迹法、奈奎斯特稳定判据、期望对数频率特性综合等。具有较明显的依靠手工进行分析和综合的特点。现代控制理论主要用以解决多输入多输出(MIMO)系统,可以是线性或非线性、定常或时变系统,如精密机械加工、航天飞行器控制等。研究方法采用状态空间法。智能控制理论是一种能更好的模仿人类智能、非传统的控制理论,其主要方法来自于经典控制、现代控制、人工智能、运筹学、统计学等学科的交叉,其内容包括最优控制、自适应控制、鲁棒控制、神经网络控制、模糊控制、仿人控制等。其控制对象可以是已知系统也可以是未知系统。其控制策略多数不仅能抑制参数及环境变化、外界干扰等的影响,而且能有效地消除模型化误差的影响。

图9-1ControlSystemToolbox模块库控制系统的时域和频域描述可用传递函数、零极点增益、状态空间、状态图四种模型表示。每一种模型都有连续和离散系统。其中状态图最为直观,这里不再赘述。为便于分析系统有时需要在传递函数、零极点增益、状态空间三种模型之间进行转换,借助于MATLAB所提供的各种命令,能很方便的完成这些工作。9.1控制系统的模型描述9.1.1控制系统的模型与表达式一、传递函数模型【例9-1】分别应用MATLAB命令及Simulink工具箱设计一个简单的传递函数模型:9.1.1控制系统的模型与表达式步骤1、将下面的命令输入到MATLAB工作空间中去。>>num=[1,5];den=[1,2,3,4,5];G=tf(num,den)运行结果:G=s+5-----------------------------s^4+2s^3+3s^2+4s+5Continuous-timetransferfunction.这时对象G可以用来描述给定的传递函数模型,作为其它函数调用的变量。exam-9-1.m9.1.1控制系统的模型与表达式步骤2、打开Simulink,新建一个模型窗口,在Continuous模块库里将传递函数模块TransferFCN添加到新建模型窗口中,如图9-2(a)所示;在模型窗口中左键双击传递函数模块TransferFCN,设置其参数,如图9-3所示,得到的传递函数模型如图9-2(b)所示。

图9-2(a)

图9-2(b)

图9-3例9-1参数设置【例9-2】利用MATLAB相关命令建立如下所述的传递函数模型。9.1.1控制系统的模型与表达式在MATLAB工作空间中输入如下命令:>>num=6*[1,5];den=conv(conv([1,3,1],[1,3,1]),[1,6]);tf(num,den)运行结果Transferfunction:6s+30-----------------------------------------s^5+12s^4+47s^3+72s^2+37s+6exam-9-2.m二、零极点增益模型典型的零极点增益模型如下式所示。9.1.1控制系统的模型与表达式在MATLAB中用z、p、k矢量组分别表示系统的零点、极点和增益,即:z=[z1z2……zm];p=[p1p2……pn];k=[k];sys=zpk(z,p,k)zpk命令将sys变量表示成零极点增益模型。三、状态空间模型9.1.1控制系统的模型与表达式x=ax+buy=cx+du在MATLAB中用(a、b、c、d)矩阵组表示,然后sys=ss(a,b,c,d)ss命令将sys变量表示成状态空间模型。四、模型间的转换在MATLAB中进行模型间转换的命令有:ss2tf、ss2zp、tf2ss、tf2zp、zp2tf、zp2ss它们之间的转换关系可见图所示。【例9-3】给定系统传递函数如下,求其零极点增益模型。G1=zpk(G)将给定的LTI对象G转换成等效的零极点对象G1在MATLAB工作空间中输入如下命令:>>z=[7,21.2,25];p=[1,5,10,15,32.5];G=tf(z,p);G1=zpk(G)显示结果:G1=7(s^2+3.029s+3.571)----------------------------------------------(s^2+5.492s+9.152)(s^2-0.4921s+3.551)Continuous-timezero/pole/gainmodel.exam-9-3.m【例9-4】给定零极点模型如下,是将其转换为传递函数模型。G1=tf(G)求对象G的等效传递函数模型在MATLAB工作空间中输入如下命令:>>Z=[-3,-5];P=[0,-2-2j,-2+2j,-2.3];K=8;G=zpk(Z,P,K);G1=tf(G)结果显示:G1=8s^2+64s+120---------------------------------s^4+6.3s^3+17.2s^2+18.4sContinuous-timetransferfunction.exam-9-4.m一、系统的并联典型的零极点增益模型如下式所示。9.1.2控制系统模型间的关系parallel命令可以实现两个系统的并联。示意图如下:并联后的系统传递函数表示如式9-3所示。

(9-3)其中n1、d1和n2、d2分别为g1(s)、g2(s)的传递函数分子、分母系数行矢量。命令格式:[n,d]=parallel(n1,d1,n2,d2)[a,b,c,d]=parallel(a1,b1,c1,d1,a2,b2,c2,d2)【例9-5】设计一个简单模型,将以下两个系统并联连接。在MATLAB工作空间中输入如下命令:>>n1=[2];d1=[11];n2=[31];d2=[112];[n,d]=parallel(n1,d1,n2,d2)运行结果:n=051825d=161112可得并联后系统的传递函数为exam-9-5.m二、系统的串联典型的零极点增益模型如下式所示。9.1.2控制系统模型间的关系series命令实现两个系统的串联,示意图如下:串联后系统的传递函数如式(9-4)所示。

(9-4)其中n1、d1和n2、d2分别为g1(s)、g2(s)的传递函数分子、分母系数行矢量。命令格式:[n,d]=series(n1,d1,n2,d2)[a,b,c,d]=series(a1,b1,c1,d1,a2,b2,c2,d2)三、系统的反馈feedback命令实现两个系统的反馈连接,示意图如下:连接后系统的传递函数如式(9-5)所示。(9-5)命令格式:[n,d]=feedback(n1,d1,n2,d2)或:[n,d]=feedback(n1,d1,n2,d2,sign)[a,b,c,d]=feedback(a1,b1,c1,d1,a2,b2,c2,d2,sign)其中sign是指示y2到u1连接的符号,缺省时默认为负(即sign=-1)。【例9-6】设有下面两个系统,现将它们负反馈连接,设计其传递函数。在MATLAB工作空间中输入如下命令:>>n1=[1,1];d1=[1,2,3];n2=1;d2=[1,10];[n,d]=feedback(n1,d1,n2,d2);G=tf(n,d)运行结果:G=s^2+11s+10------------------------s^3+12s^2+24s+31Continuous-timetransferfunction.exam-9-6.m线性系统稳定的充要条件是系统的特征根均位于S平面的左半部分。系统的零极点模型可以直接被用来判断系统的稳定性。MATLAB语言中提供了有关多项式的操作函数,也可以用于系统的分析和计算。一、直接求特征多项式的根设p为特征多项式的系数向量,则MATLAB函数roots()可以直接求出方程p=0在复数范围内的解v。该函数的调用格式为:v=roots(p)9.2控制系统的时域分析与MATLAB实现9.2.1线性系统的稳定性分析【例9-7】已知系统的特征多项式如下所示,求其特征方程的解。在MATLAB工作空间中输入如下命令:>>p=[1,2,4,7,11,1];v=roots(p)结果显示:v=0.4639+1.7718i0.4639-1.7718i-1.4156+1.0414i-1.4156-1.0414i-0.0965+0.0000i利用多项式求根函数roots(),可以很方便的求出系统的零点和极点,然后根据零极点分析系统稳定性和其它性能。exam-9-7.m二、由根创建多项式如果已知多项式的因式分解式或特征根,可由MATLAB函数poly()直接得出特征多项式系数向量。调用格式为:p=poly(v)9.2.1线性系统的稳定性分析【例9-8】已知系续例9-7,求其特征多项式的系数。在MATLAB工作空间中输入如下命令:>>v=[0.4639+1.7718i;0.4639-1.7718i;-1.4156+1.0414i;-1.4156-1.0414i;-0.0965+0.0000i];>>p=poly(v)结果显示p=1.00002.00004.00007.000011.00001.0000由此可见,函数roots()与函数poly()是互为逆运算的。exam-9-8.m【例9-9】已知传递函数如下所示,试将该传递函数的部分分式展开。在MATLAB工作空间中输入如下命令:>>num=[1,4,2,3];den=[2,5,9,7];[r,p,k]=residue(num,den)命令窗口中显示如下结果r=-0.0359+0.6922i-0.0359-0.6922i0.8218+0.0000ip=-0.6550+1.5850i-0.6550-1.5850i-1.1900+0.0000ik=0.5000exam-9-9.m五、由传递函数求零点和极点在MATLAB控制系统工具箱中,给出了由传递函数对象G求出系统零点和极点的函数。其调用格式分别为:Z=tzero(G)P=G.P{1}其中要求的G必须是零极点模型对象,且出现矩阵的点运算“.”和大括号{}表示矩阵元素。【例9-10】已知传递函数如下所示,试求其零极点。在MATLAB工作空间中输入如下命令:>>num=[1,4,2,3];den=[2,5,9,7];G=tf(num,den);G1=zpk(G);Z=tzero(G)P=G1.P{1}结果显示Z=-0.1610+0.8887i-0.1610-0.8887i-3.6780+0.0000iP=-0.6550+1.5850i-0.6550-1.5850i-1.1900+0.0000iexam-9-10.m六、零极点分布图在MATLAB中,可利用pzmap()函数绘制连续系统的零、极点图,从而分析系统的稳定性。该函数调用格式为:pzmap(num,den)【例9-11】已知传递函如下所示,用MATLAB画图显示该系统的零极点分布情况。在MATLAB工作空间中输入如下命令:>>num=[1,2,3,3,6];den=[1,1,5,2,8,7];pzmap(num,den)title('Pole-ZeroMap')%图形标题exam-9-11.m一、阶跃响应step命令可以求得连续系统的单位阶跃响应,当不带输出变量时,可在当前窗口中绘出单位阶跃响应曲线。带有输出变时时则输出一组数据。命令格式:step(n,d,t);或[y,x,t]=step(n,d,t);step(a,b,c,d,t)或[y,x,t]=step(a,b,c,d,t);其中t是事先确定的时间矢量,当t缺省时则时间由函数自行决定。如果需要将输出结果返回到MATLAB工作空间,则采用以下格式:

c=step(G)此时,屏幕上不会显示响应曲线,必须利用plot()命令去查看响应曲线。Plot可以根据两个或多个给定的矢量绘制二维图形。9.2.2控制系统的动态响应【例9-12】已知传递函数如下所示,试求其单位阶跃响应。在MATLAB工作空间中输入如下命令:>>num=[0,0,10];den=[1,3,2];step(num,den)grid

%绘制网格线用dcgain命令求取系统输出的稳态值。例如可用下面的语句来得出阶跃响应曲线及其输出稳态值。>>G=tf([0,0,10],[1,3,2]);

t=0:0.1:5;

%从0到5每隔0.1取一个值

c=step(G,t);

%动态响应的幅值赋给变量c

plot(t,c)

%绘二维图形,横坐标取t,纵坐标取c

Css=dcgain(G)

%求取稳态值exam-9-12.m二、求系统的单位冲激响应impulse命令可求得系统的单位冲激响应。当不带输出变量时可在当前窗口得到单位冲激响应曲线,带有输出变量时则得到一组对应的数据。命令格式:impulse(n,d)或[y,x]=impulse(n,d)impulse(a,b,c,d)或[y,x]=impulse(a,b,c,d)也可加入事先选定的时间矢量t,其t的特性同上。9.2.2控制系统的动态响应【例9-13】已知某单位反馈控制系统的开环传递函数如下所示,求此系统的单位冲激响应。在MATLAB工作空间中输入如下命令:>>num1=[5];den1=[130];[n,d]=cloop(num1,den1);impulse(n,d)exam-9-13.m三、斜坡响应和加速度响应由于在MATLAB中没有专门的函数,斜坡响应和加速度响应可借助阶跃响应求得。斜坡响应=阶跃响应*1/s加速度响应=阶跃响应*1/s2【例9-14】已知某系统传递函数如下所示,求此系统的斜坡响应和加速度响应。>>G1=tf(2,[1310]);%利用阶跃响应转换为斜坡响应subplot(211);%绘制斜坡响应step(G1);title('斜坡响应');G2=tf(2,[13100]);%利用阶跃响应转换为加速度响应subplot(212);%绘制加速度响应step(G2);title('加速度响应');exam-9-14.m四、任意输入响应连续系统对任意输入的响应用lsim函数实现,其命令格式如下:lsim(G,U,T)%绘制系统G的任意响应曲线[y,t,x]=lsim(G,U,T)%得到系统G的任意响应数据其中,U为输入序列,每一列对应一个输入;参数T、t、x都可省略。【例9-15】已知某系统传递函数如下所示,求此系统在正弦信号sin(2t)输入下的响应。>>t=0:0.1:10;u=sin(2*t);G=tf(2,[131]);Lsim(G,u,t);exam-9-15.m五、零输入响应MATLAB提供了initial函数来实现零输入响应,其命令格式如下:initial(G,x0,T)%绘制系统G的零输入响应曲线[y,t,x]=initial(G,x0,T)%得到系统G的零输入响应数据其中,G必须是状态空间模型;x0是初始条件,x0与状态的个数应相同。【例9-16】已知某系统传递函数如下所示,系统初始状态为[1,2],求此系统的零输入响应。>>G1=tf(2,[131]);S1=ss(G1);x0=[1,2];initial(S1,x0)exam-9-16.m六、离散系统响应MATLAB提供了与连续系统相对应的函数命令,在连续系统的函数名前加“d”就表示相对应的离散系统函数。离散系统的函数见表9-1所示。表9-1离散系统的函数函数命令功能说明dstep(a,b,c,d)或dstep(num,den)离散系统的阶跃响应dimpulse(a,b,c,d)或dimpulse(num,den)离散系统的脉冲响应dlsim(a,b,c,d)或dlsim(num,den)离散系统的任意输入响应dinitial(a,b,c,d,x0)或dinitial(num,den,x0)离散系统的零输入响应

控制系统的时域分析中常常需要求响应指标,如稳态误差、超调量、上升时间、峰值时间、调节时间、输出稳态值。有两种方式可以观测和精确求出相关指标。一、游动鼠标法在程序运行完毕得到阶跃响应曲线后,用鼠标左键单击时域响应曲线任意一点,系统会自动跳出一个小方框,小方框显示了这一点的横坐标(时间)和纵坐标(幅值)。按住鼠标左键在曲线上移动,可找到曲线幅值最大的一点,即曲线最大峰值,此时小方框显示的时间就是此二阶系统的峰值时间,根据观测到的稳态值和峰值可计算出系统的超调量。系统的上升时间和稳态响应时间可以此类推。(注:它不适用于用己于plot()命令画出的图形。)二、用编程方式求取时域响应的各项性能指标可以用阶跃响应函数step()获得系统输出量,若将输出量返回到变量y中,可调用如下命令格式:[y,t]=step(G)对返回的这一对y和t变量的值进行计算,可得到时域性能指标。9.2.3控制系统的时域响应指标

4)上升时间上升时间(risetime)可利用MATLAB中的循环控制语句编制M文件来获得。要求出上升时间,可用while语句编写以下程序得到:C=dcgain(G);n=1whiley(n)<C

n=n+1;endrisetime=t(n)对于输出无超调的系统响应,上升时间定义为输出从稳态值的10%上升到90%所需时间。9.2.3控制系统的时域响应指标

5)调节时间调节时间(setllingtime)可由语句编程得到:

C=dcgain(G);

i=length(t);

while(y(i)>0.98*C)&(y(i)<1.02*C)

i=i-1;

endsetllingtime=t(i)用矢量长度函数length()可求得t序列的长度,将其设定为变量i的上限值。9.2.3控制系统的时域响应指标

【例9-17】已知传递函数如下所示,试求其单位阶跃响应及其性能指标(最大峰值时间、超调量、调节时间)。在MATLAB工作空间中输入如下命令:>>G=zpk([],[-1+3*i,-1-3*i],3);

%计算最大峰值时间和它对应的超调量。

C=dcgain(G)

[y,t]=step(G);

plot(t,y)

grid

[Y,k]=max(y);

timetopeak=t(k)

percentovershoot=100*(Y-C)/C

%计算上升时间。

n=1;

whiley(n)<C

n=n+1;

end

risetime=t(n)

%计算稳态响应时间。

i=length(t);

while(y(i)>0.98*C)&(y(i)<1.02*C)

i=i-1;

end

setllingtime=t(i)exam-9-17.m运行后的响应图如下图所示,命令窗口中显示的结果为:C=

0.3000

timetopeak=1.0592percentovershoot=35.0670

risetime=0.6447setllingtime=3.4999

一、玫瑰花语之一

玫瑰颜色丰富,不同颜色有着不同的寓意:

粉玫瑰花语---初恋

红玫瑰花语---热恋

橙红色玫瑰花语---羞怯

黄玫瑰花语---道歉

白玫瑰花语---尊敬

淡绿色玫瑰花语---青春长驻

当控制系统输入为正弦信号时,其系统输出的稳态输出常常需要研究其频域分析,即幅频特性和相频特性,比如绘制Bode图、Nyquist曲线和Nichols曲线。9.3控制系统的频域分析与MATLAB实现9.3.1控制系统的频域分析一、控制系统的幅频特性和相频特性设控制系统的传递函数为则其频域响应可写,其中为幅频特性,为相频特性。MATLAB提供了freqresp函数来计算频率特性,其命令格式如下所述。GW=freqresp(G,w)%计算系统G在w处的频率特性其中,当w是标量时,GW是由实部和虚部组成的频率特性值;当w是向量时,GW是三维数组,最后一维是频率。

【例9-18】已知传递函数如下所示,计算其处的幅频特性和相频特性。

在MATLAB工作空间中输入如下命令:>>G=tf(3,[31]);

w=1;Gw=freqresp(G,w);%计算幅频特性和相频特性Aw=abs(Gw);%计算幅频特性Fw=angle(Gw);%计算相频特性运行后得:Gw=0.3000-0.9000i;Aw=0.9487;Fw=-1.2490。exam-9-18.m9.3.1控制系统的频域分析二、Bode图利用bode命令可绘制对数幅相频率特性曲线Bode图。其命令格式如下:bode(G,w)%绘制系统G的bode图bode(G1,’plotstyle1’,G2,’plotstyle2’,…,w)%绘制多个系统的bode图[mag,pha]=bode(G,w)%求w处的幅值和相角[mag,pha,w]=bode(G)%求幅值、相角、频率其中,mag为幅值,pha为相角。另外通过bodemag命令可以只绘制对数幅频特性,其命令格式与bode相同。

【例9-19】已知传递函数如下所示,试绘制其bode图和对数幅频特性。在MATLAB工作空间中输入如下命令:>>G=tf(3,[31]);subplot(1,2,1);bode(G);%绘制bode图subplot(1,2,2);bodemag(G);%绘制对数幅频特性exam-9-19.m9.3.1控制系统的频域分析三、Nyquist曲线使用nyquist命令可绘制从到变化时的Nyquist曲线。其命令格式如下:nyquist(G,w)%绘制系统G的Nyquist曲线nyquist(G1,’plotstyle1’,G2,’plotstyle2’,…,w)%绘制多个系统的Nyquist曲线[Re,Im]=nyquist(G,w)%求w处的实部、虚部[Re,Im,w]=nyquist(G)%求w处的实部、虚部和频率其中,G、G1、G2等为系统模型,可为连续或离散的SISO或MIMO系统;plotstyle1、plotstyle2等是所绘曲线的线型;w为频率,可以是某个频率点或频率范围,该参数可以省略;Re为实部;Im为虚部。四、nichols曲线nichols曲线是将对数幅频特性和对数相频特性绘制在一个图中,MATLAB提供了nichols命令来绘制nichols曲线。同时还提供了ngrid命令在nichols曲线中添加等M线和等线的网格。nichols命令格式与bode命令相同,此处不再赘述。

【例9-20】已知传递函数如下所示,试绘制其Nyquist曲线。在MATLAB工作空间中输入如下命令:>>G=tf(3,[31]);nyquist(G)exam-9-20.m9.3.2控制系统的频域分析性能指标频域分析的性能指标主要有开环频率特性的相角裕度、截至频率、幅值裕度,闭环频率特性的谐振峰值、谐振频率和带宽频率。一、开环频率特性的性能指标利用margin命令可求得相角裕度、截至频率、幅值裕度。其命令格式如下:margin(G)%绘制系统G的bode图并标出幅值及相角裕度[Gm,Pm,Wcg,Wcp]=margin(G)%求系统G的幅值裕度、相角裕度和相应的频率其中,Gm为幅值裕度,单位db;Wcg为幅值裕度对应的频率即;Pm为相角裕度,单位rad;Wcp为相角裕度对应的频率即截至频率。【例9-21】已知传递函数如下所示,试求其开环频率特性的性能指标。在MATLAB工作空间中输入如下命令:>>G=tf(3,[31]);margin(G);[Gm,Pm,Wcg,Wcp]=margin(G)运行后得到:Gm=Inf;Pm=109.4712;Wcg=NaN;Wcp=0.9428。exam-9-21.m运行得到:M0=0.8333;I0=0。>>Mr=Mm/M0%计算谐振峰值运行得到:Mr=1.0321。>>wr=w(r)%计算谐振频率运行得到:wr=1.3099。>>wt=(m-0.707*M0)<0;[temp,n]=max(wt(1,:));Wb=w(n)%计算带宽频率运行得到:Wb=2.8644。9.4控制系统的根轨迹分析

设闭环系统中的开环传递函数如式(9-9)所示。

(9-9)则闭环特征方程为:

(9-10)特征方程的根随参数K的变化而变化,即为闭环根轨迹。根轨迹可用于分析系统的暂态和稳态性能分析。9.4.1控制系统的根轨迹分析一、绘制根轨迹控制系统工具箱中提供了rlocus()函数,可以用来绘制给定系统的根轨迹。另外,MATLAB还提供了sgrid命令,它可在根轨迹中绘制系统的主导极点的等线和等线。rlocus()函数的命令格式有以下几种。rlocus(G)%绘制系统G的根轨迹[r,k]=rlocus(G)%求得系统G的闭环极点r和增益kr=rlocus(G,k)%根据k求系统G的闭环极点其中,G是SISO系统,只能是传递函数模型。【例9-23】已知开环传递函数如下所示,试画出其根轨迹。>>G=tf(1,[conv([1,1],[1,2]),0]);rlocus(G);gridtitle(‘Root_LocusPlotofG(s)=K/[s(s+1)(s+2)]’)xlabel(‘RealAxis’)%给图形中的横坐标命名。ylabel(‘ImagAxis’)%给图形中的纵坐标命名。[K,P]=rlocfind(G)exam-9-23.m用鼠标点击根轨迹上与虚轴相交的点,在命令窗口中可发现如下结果select_point=0.0000+1.3921iK=5.8142p=-2.29830-0.0085+1.3961i-0.0085-1.3961i所以,要想使此闭环系统稳定,其增益范围应为0<K<5.81。参数根轨迹反映了闭环根与开环增益K的关系。我们可以编写下面的程序,通过K的变化,观察对应根处阶跃响应的变化。考虑K=0.1,0.2,…,1,2,…,5这些增益下闭环系统的阶跃响应曲线。可由以下MATLAB命令得到。>>holdoff;%擦掉图形窗口中原有的曲线。t=0:0.2:15;Y=[];forK=[0.1:0.1:1,2:5]GK=feedback(K*G,1);y=step(GK,t);Y=[Y,y];endplot(t,Y)对于for循环语句,循环次数由K给出。系统画出的图形如图9-20所示。可以看出,当K的值增加时,一对主导极点起作用,且响应速度变快。一旦K接近临界K值,振荡加剧,性能变坏。

图9-20

例9-23不同K值下的阶跃响应曲线9.4.1控制系统的根轨迹分析二、求给定根的根轨迹增益

利用rlocfind命令可以获得根轨迹上给定根的增益和闭环根。其命令格式如下:[k,p]=rlocfind(G)%求得根轨迹上某点的闭环极点p和增益k[k,p]=rlocfind(G,p)%根据p求得系统G的增益k其中,G是开环系统模型,可以是传递函数、零极点模型或状态空间模型,可以是连续或离散系统。函数运行后,在根轨迹图形窗口中显示十字光标,当用户选择根轨迹上某点并单击鼠标时,会获得相应的增益k和闭环极点p。【例9-24】已知开环传递函数如下所示,试画出其根轨迹,并求取其增益和闭环极点。exam-9-24.m>>num=1;den=[conv([1,4],conv([1-2+4j],[1-2-4j])),0];G=tf(num,den);rlocus(G);sgrid(0.7,10);[k,p]=rlocfind(G)图9-21

例9-24根轨迹图9-22

例9-24单击选中的根轨迹上某点在图9-22上单击选中的根轨迹上某点得到如下4个闭环根。selected_point=4.1232+4.5820ik=1.1189e+03p=3.9890+4.7881i3.9890-4.7881i-3.9890+3.5914i-3.9890-3.5914i9.4.2根轨迹设计工具MATLAB控制工具箱的根轨迹设计器是一个分析根轨迹的图形界面,使用rltool命令可打开根轨迹设计器。其命令格式如下:rltool(G)%打开系统G的根轨迹设计器其中,G是系统开环模型,该参数可省略。当该参数省略时,打开的是空白的根轨迹设计器。【例9-25】续例9-24,打开该传递函数的根轨迹设计器。在根轨迹设计器窗口中,可以用鼠标拖动各零极点运动,查看零极点位置改变时根轨迹的变化,在坐标轴下面显示了鼠标所在位置的零极点值。也可以通过使用工具栏中的相关按钮来添加或删除零极点。exam-9-25.m图9-23

例9-25根轨迹设计器运行后得到:V=0.5773+0.0000i0.5773-0.0000i0.5774+0.0000i-0.5774-0.0000i-0.5774+0.0000i-0.5774+0.0000i0.5774+0.0000i0.5774+0.0000i0.5773+0.0000iF=-1.0000+0.0000i0.0000+0.0000i0.0000+0.0000i0.0000+0.0000i-1.0000-0.0000i0.0000+0.0000i0.0000+0.0000i0.0000+0.0000i-1.0000+0.0000iP=111-1001-10J=-1100-1100-1exam-9-26.msysJ=A=x1x2x3x1-110x20-11x300-1B=u1x10x2-1x31C=x1x2x3y1011D=u1y10Continuous-timestate-spacemodel.exam-9-26.m>>A=[132;020;0-33];B=[21;11;-1-1];Qc=ctrb(A,B);%产生能控性矩阵n=size(A);%计算矩阵A的行数和列数r=rank(Qc);%计算能控性矩阵的秩ifr==n(1)%判别能控性disp('Thesystemiscontrolled!')elsedisp('Thesystemisnotcontrolled!')end运行后得到:Qc=2132-3-4112244-1-1-6-6-24-24n=33r=3Thesystemiscontrolled!exam-9-27.m二、能观性系统能观的充要条件是:MATLAB提供了obsv函数来计算能观性矩阵。其命令格式如下:Qo=obsv(A,C)%由矩阵A、C计算能控性矩阵QC=ctrb(sys)%由给定的系统状态空间模型计算能观性矩阵9.5.3状态空间的状态反馈与极点配置

极点配置是反馈控制系统设计的重要内容之一。如果给出了对象的状态方程模型,我们希望引入某种控制器,使闭环系统的极点移动到指定位置,从而改善系统的性能,这就是极点配置。一、状态反馈1)状态反馈状态反馈是指从状态变量到控制端的反馈。设原系统动态方程为:引入状态反馈后,系统的动态方程为:

9.5.3状态空间的状态反馈与极点配置2)输出反馈设原系统动态方程如下式所示。引入输出反馈后,系统的动态方程为:二、极点配置MATLAB提供了为SISO系统状态反馈极点配置的acker函数,以及为MIMO系统状态反馈极点配置的place函数。1)SISO系统的极点配置acker函数的命令格式如下:k=acker(A,b,p)%计算基于极点配置的状态反馈矩阵其中,A和b分别为SISO系统的系统矩阵和输入矩阵,p为给定的期望闭环极点,K为状态反馈矩阵。sys=A=x1x2x10.06667-4.533x21.133-2.067B=u1x11x22C=Emptymatrix:0-by-2D=Emptymatrix:0-by-1Continuous-timestate-spacemodel.exam-9-28.m9.5.3状态空间的状态反馈与极点配置2)MIMO系统的极点配置对MIMO系统极点配置所求的状态反馈矩阵可能不唯一。MATLAB所提供的place函数仅仅是使闭环特征值对系统矩阵A和输入矩阵B的扰动敏感性最小的方法。其命令格式如下:k=place(A,B,p)其中,p为给定的期望闭环极点;k为求得的状态反馈矩阵。9.6控制系统综合实例与应用设计应用Simulink对控制系统进行仿真设计,首先要对控制系统进行建模。建模的方法主要为机理分析法,即根据过程系统的内部机理(如运动规律、能流规律等),运用一些已知的原理、规律、定律,如物料或能量的平衡方程、运动方程、传热传质原理等,分析和建立过程系统的数学模型。【例9-29】已知控制系统的微分

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论