MATLAB控制系统仿真课件第八章_第1页
MATLAB控制系统仿真课件第八章_第2页
MATLAB控制系统仿真课件第八章_第3页
MATLAB控制系统仿真课件第八章_第4页
MATLAB控制系统仿真课件第八章_第5页
已阅读5页,还剩94页未读 继续免费阅读

下载本文档

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

文档简介

第八章控制系统的分析稳定性分析系统稳定性的MATLAB直接判定系统稳定性的MATLAB图形化判定控制系统的时域分析控制系统的动态性能指标分析控制系统的稳态性能指标分析MATLAB时域响应仿真的典型函数应用离散系统时域响应分析控制系统的根轨迹分析主要内容稳定性分析1系统稳定性MATLAB直接判定1

MATLAB直接判定相关函数2

MATLAB直接判定实例系统稳定性的MATLAB图形化判定1

MATLAB图解判定的相关函数2

MATLAB图解判定实例MATLABLTIViewer稳定性判定系统稳定的概念

经典控制分析中,关于线性定常系统稳定性的概念是:若控制系统在初始条件和扰动作用下,其瞬态响应随时间的推移而逐渐衰减并趋于原点(原平衡工作点),则称该系统是稳定的。反之,如果控制系统受到扰动作用后,其瞬态响应随时间的推移而发散,输出呈持续振荡过程,或者输出无限制地偏离平衡状态,则称该系统是不稳定的。系统稳定的意义系统稳定性是系统设计与运行的首要条件。只有稳定的系统,才有价值分析与研究系统自动控制其它问题。控制系统的稳定性分析是系统时域分析、稳态误差分析、根轨迹分析与频率分析的前提。对一个稳定的系统,还可以用相对稳定性进一步衡量系统的稳定程度。系统的相对稳定性越低,系统的灵敏性和快速性越强,系统的振荡也越激烈。系统特征多项式

设线性定常系统闭环传递为:式中,称为系统特征多项式。

为系统特征方程。

系统特征方程

系统稳定的判定

对于线性连续系统:如果系统的所有特征根(极点)的实部为负,则系统是稳定的;如果有实部为零的根,则系统是临界稳定的(在实际工程中视临界稳定系统为不稳定系统);如有正实部的根,则系统不稳定。系统稳定的判定线性连续系统稳定的充分必要条件是:描述该系统的微分方程的特征方程的根全具有负实部,即全部根在左半复平面内。或者说系统的闭环传递函数的极点均位于左半s平面内。线性离散系统稳定的充分必要条件是:如果闭环线性离散系统的特征方程根或者闭环脉冲传递函数的极点为则当所有特征根的模都小于1时,即:该线性离散系统是稳定的:如果模的值大于1时,则该线性离散系统是不稳定的。系统稳定的判定其它稳定性判据除上述判据之外,还有很多其它判据(如根轨迹、频率域方法等)从各个不同的角度对系统的稳定性加以判别,说明系统稳定性是系统能够成立与运行的首要条件。系统稳定性的MATLAB直接判定由系统的稳定判据可知,实际上是判定系统闭环特征方程的根的位置。其前提需要求出特征方程的根。MATLAB提供了与之相关的函数,见下表。MATLAB直接判定相关函数p=eig(G)求取矩阵特征根。系统的模型G可以是传递函数、状态方程和零极点模型,可以是连续或离散的P=pole(G)Z=zero(G)分别用来求系统的极点和零点。G是已经定义的系统数学模型[p,z]=pzmap(sys)求系统的极点和零点。sys是定义好的系统数学模型r=roots(P)求特征方程的根。P是系统闭环特征多项式降幂排列的系数向量MATLAB直接判定相关函数MATLAB直接判定实例例:已知系统闭环传递函数为用MATLAB判定稳定性。num=[1021];den=[12812201616];G=tf(num,den)p=eig(G)p1=pole(G)r=roots(den)分析:由不同MATLAB函数求得的系统特征方程根是一致的。在需要时根据情况选择使用。MATLAB直接判定实例例:给定系统如图,给出MATLAB程序判定系统是否稳定,要求程序给出提示。MATLAB直接判定实例num=[13];den=[245810];G=tf(num,den);Gc=feedback(G,1);[num,den]=tfdata(Gc,'v');r=roots(den);disp('系统闭环极点:');disp(r)a=find(real(r)>0);%找索引b=length(a);%找个数ifb>0disp('系统不稳定.');elsedisp('系统稳定.');end例:某控制系统的方框图如图所示。试用MATLAB确定当系统稳定时,参数K的取值范围(假设)。MATLAB直接判定实例k=0:0.01:50;%50-100forindex=1:5000%5-10p=[21527k(index)+12k(index)+1];r=roots(p);ifmax(real(r))>0sprintf('系统临界稳定时K值为:K=%7.4f\n',k(index))break;endend系统稳定性的MATLAB图形化判定MATLAB图形化判定的相关函数对于给定系统G,pzmap(G)函数在无返回参数列表使用时,直接以图形化的方式绘制出系统所有特征根在S-复平面上的位置。判定系统是否稳定只需看一下系统所有极点在S-复平面上是否均位于虚轴左侧即可。这种图形化的方式更直观。例:已知一控制系统框图,如图所示,试判断系统的稳定性。G1=tf([11],[21]);G2=tf([5],[231]);H1=tf(1,[21]);Gc=feedback(G2*G1,H1)pzmap(Gc)例:给定离散系统闭环传递函数分别为:和采样周期均为0.1秒。分别绘制系统零极点分布图,并判定各系统稳定性。num=[14.25.43];den=[1-2.72.52.43-0.56];Gc=tf(num,den,0.1)pzmap(Gc)num=[0.685.43];den=[1-1.350.40.080.002];G2=tf(num,den,0.1)pzmap(G2)MATLABLTIViewer稳定性判定实例MATLABLTIViewer是MATLAB为LTI(LinearTimeInvariant)系统的分析提供的一个图形化工具。用它来可以很直观简便地分析控制系统的时域和频域响应。用MATLABLTIViewer来观察闭环系统的零极点分布情况,需要首先在MATLAB中建立系统的闭环系统传递函数模型。

例:已知单位负反馈控制系统的开环传递函数为用MATLABLTIViewer观察闭环系统的零极点分布情况,并判断此闭环系统稳定性。z=[-3];p=[0-2-5];k=3;G=zpk(z,p,k)Gc=feedback(G,1)ltiview控制系统的时域分析控制系统的动态性能指标分析1控制系统的动态性能指标2控制系统动态性能指标的MATLAB求取示例控制系统的稳态性能指标分析1系统的稳态性能指标2控制系统稳态性能指标的MATLAB求取示例MATLAB时域响应仿真的典型函数应用1MATLAB时域响应仿真的典型函数2MATLAB时域响应仿真的典型函数应用实例MATLAB/Simulink图形化时域分析1MATLABLTIViewer应用实例2Simulink应用实例系统的性能指标性能指标,指在分析一个控制系统的时候,评价系统性能好坏的标准。系统性能的描述,又可以分为动态性能和稳态性能。粗略地说,系统的全部响应过程中,系统的动态性能表现在过渡过程结束之前的响应中,系统的稳态性能表现在过渡过程结束之后的响应中。系统性能的描述,如以准确的定量方式来描述称为系统的性能指标。系统测试信号系统测试信号的选取原则对于一个实际的控制系统,测试信号的形式应接近或反映系统工作时最常见的输入信号形式,同时也应该注意选取对系统工作最不利的信号作为测试信号。常用测试信号对各种控制系统的性能进行测试和评价时,人们习惯选择下述5种信号作为系统的输入信号。典型测试信号表名称时域表达式复域表达式单位阶跃函数单位斜坡函数单位加速度函数单位脉冲函数1正弦函数控制系统的动态性能指标分析对于稳定系统,通常在系统阶跃响应曲线上来定义系统动态性能指标。系统的单位阶跃响应不仅完整反映了系统的动态特性,而且反映了系统在单位阶跃信号输入下的稳定状态。同时,单位阶跃信号又是一个最简单、最容易实现的信号。最大超调量(简称超调量)

瞬态过程中输出响应的最大值超过稳态值的百分数。峰值时间输出响应超过稳态值第一次达到峰值所需要的时间。上升时间输出响应第一次达到稳态值的时间。有时也定义为输出从稳态值的10%上升到90%的时间。延迟时间输出响应第一次达到稳态值所需的时间。调节时间(过渡过程时间)误差达到规定的允许值,且以后不再超出此值所需的时间。振荡次数在调节时间内,响应曲线振荡的次数。通常在系统阶跃响应曲线上来定义系统动态性能指标。在用MATLAB求取系统动态性能指标之前,首先给出单位阶跃响应函数step的用法。给定系统,可使用下表所列函数调用方式得到系统阶跃响应。系统阶跃响应函数用法step(num,den)step(G)绘制系统阶跃响应曲线。step(num,den,t)step(G,t)绘制系统阶跃响应曲线。由用户指定时间范围,如t是标量,则指定了终止时间;如t是向量,则指定了步距和起止时间y=step(num,den,t)y=step(G,t)返回系统阶跃响应曲线y值,不绘制图形。用户可用plot函数绘制[y,t]=step(num,den,t)[y,t]=step(G,t)返回系统阶跃响应曲线y值和t值,不绘制图形。可用plot函数绘制step(A,B,C,D,iu)

绘制系统阶跃响应曲线。iu指定输入和输出step(A,B,C,D,iu,t)

绘制系统的阶跃响应曲线。iu指定输入,t指定时间范围[y,x,t]=step(A,B,C,D,iu)

返回系统阶跃响应曲线参数,不绘制图形。x为系统状态轨迹,t由系统模型特性决定[y,x,t]=step(A,B,C,D,iu,t)

返回系统阶跃响应曲线参数,不绘制图形。x为系统状态轨迹,t指定时间范围状态空间方程表示的系统阶跃响应函数用法例

典型二阶系统传递函数为试分析不同参数下的系统单位阶跃响应。1、假设将自然频率固定为wn=1,ζ=0,0.1,0.2,0.3,…1,2,3,5。2、将阻尼比ζ的值固定在ζ=0.55,wn=0.1~1。wn=1;zetas=[0:0.1:1,2,3,5];t=0:0.1:12;holdonfori=1:length(zetas)Gc=tf(wn^2,[1,2*zetas(i)*wn,wn^2]);step(Gc,t)endwn=[0.1:0.1:1];z=0.55;t=0:0.1:12;holdonfori=1:length(wn) Gc=tf(wn(i)^2,[1,2*z*wn(i),wn(i)^2]); step(Gc,t)end例

控制系统的状态空间模型为试采用不同的step调用方法,绘制系统的单位阶跃响应曲线。a=[-1,-1;6,0];b=[1,1;1,0];c=[1,0;0,1];d=[0,0;0,0];sys=ss(a,b,c,d);%在一个图像窗口绘制的4个子图分别绘制每个输出分量对每个输入分量的响应曲线step(sys),gridon; %等效于调用step(a,b,c,d)%绘制输出对第1个输入分量的响应曲线figure,step(sys(:,1)),gridon; %等效于调用step(a,b,c,d,1)%绘制第1个输出分量对第2个输入分量的响应曲线figure,step(sys(1,2)),gridon; 例:设单位负反馈系统的开环传递函数为:试求系统单位阶跃响应。num=[0.31];den=[10.50];G=tf(num,den);G0=feedback(G,1)step(G0)%第二种方式[y,t]=step(G0);plot(t,y)gridon,xlabel('\itt'),ylabel('\ity');例:求如下系统的单位阶跃响应。控制系统动态性能指标

MATLAB求取实例A=[01;-25-4];B=[11;01];C=eye(2);D=zeros(2);step(A,B,C,D)step(A,B,C,D,1)title('输入=u_1的阶跃响应')step(A,B,C,D,2)title('输入=u_2的阶跃响应')例:单位负反馈系统的开环传递函数,试求系统动态性能指标,由图获取。控制系统动态

性能指标MATLAB求取实例Gk=tf(10,[210]);G0=feedback(Gk,1)step(G0)title('系统10/(2s^2+s+10)的单位阶跃响应','Fontsize',12)例:已知单位负反馈系统的开环传递函数,编写程序求系统动态性能指标。控制系统动态

性能指标MATLAB求取实例s=tf('s');Gk=7/s/(s+1);G0=feedback(Gk,1,-1)[y,t]=step(G0);C=dcgain(G0);%峰值时间计算[max_y,k]=max(y);peak_time=t(k)%超调量计算max_overshoot=100*(max_y-C)/C%上升时间计算%以从稳态值的10%上升到90%定义r1=1;while(y(r1)<0.1*C)r1=r1+1;endr2=1;while(y(r2)<0.9*C)r2=r2+1;endrise_time=t(r2)-t(r1)%调整时间计算s=length(t);whiley(s)>0.98*C&&y(s)<1.02*Cs=s-1;endsettling_time=t(s)step(G0)控制系统的稳态性能指标分析系统的稳态性能指标稳态误差:系统误差为,而稳态误差即当时间t趋于无穷时,系统输出响应的期望值与实际值之差。这种定义被称为是在输出端定义的稳态误差。下表给出不同输入信号下系统的稳态误差计算方式。不同输入信号下系统的

稳态误差计算Kp=dcgain(numk,denk)Kv=dcgain([numk0],denk)Ka=dcgain([numk00],denk)稳态误差系数MATLAB求解控制系统稳态性能指标MATLAB求取示例例:单位负反馈系统的开环传递函数为:试求单位阶跃输入下的稳态误差。

s=tf('s');Gk=10/(0.1*s+1)/(0.5*s+1);Gc=feedback(Gk,1)ess=1-dcgain(Gc)Kp=dcgain(Gk)1/(1+Kp)分析:手工计算和MATLAB程序得出的结果比较是一致的。可见由MATLAB程序很容易得到稳态误差。使用Simulink求取稳态误差更方便,因为在Simulink下可以直接将误差信号引出到示波器观察。控制系统稳态性能指标MATLAB求取示例MATLAB时域响应仿真的典型函数应用MATLAB时域响应仿真的典型函数MATLAB时域响应仿真的典型输入函数除step(单位阶跃函数)外,还有impulse(单位脉冲函数),lsim(求任意函数作用下系统响应的函数)等。各函数的用法如下表。impulse(G)impulse(G,t)impulse(G1,G2,...,Gn)[y,t]=impulse(G),y=impulse(G,t)

求取系统单位脉冲响应,其用法基本同step函数。如带返回参数列表使用则不输出响应曲线,不带返回参数列表则直接打印响应曲线lsim(G,u,t)[y,t]=lsim(G,u,t)

求取系统对任意输入u的响应。如带返回参数列表使用则不输出响应曲线,不带返回参数列表则直接打印响应曲线求取时域响应函数及用法例:求一阶惯性环节的脉冲响应曲线,观察T变化对系统性能的影响。

MATLAB时域响应仿真的典型函数应用实例t=0:0.1:100;T=[1510]forn=1:3G=tf([1],[T(n)1]);y(:,n)=impulse(G,t);endplot(t,y)title('系统1/(Ts+1)脉冲响应曲线.T取1,5,10','Fontsize',16);xlabel('\itt'),ylabel('\ity');figure(2);subplot(1,3,1)plot(t,y(:,1));title('T=1');xlabel('\itt'),ylabel('\ity');subplot(1,3,2)plot(t,y(:,2));title('T=5');xlabel('\itt'),ylabel('\ity');subplot(1,3,3)plot(t,y(:,3));title('T=10');xlabel('\itt'),ylabel('\ity');

也可绘制在一张图上t=0:0.1:100;forT=[1510]G=tf([1],[T1]);impulse(G,t);pause;%程序暂停,便于观察

holdonendtitle('系统1/(Ts+1)脉冲响应曲线.T取1,5,10','Fontsize',12);例:已知某控制系统的闭环传递函数(1)求在单位斜坡输入函数作用下系统的响应曲线。(2)求在输入2+sin(t)信号作用下,系统的输出响应曲线。MATLAB时域响应仿真的典型函数应用实例%1)求取方式1t=0:0.1:10;num=120;den=[1121200];y=step(num,den,t);plot(t,y,'g',t,t,'b--');axis([02.502.5]);title('系统单位斜坡响应(使用step函数)');xlabel('\itt');ylabel('\ity');%1)求取方式2t=0:0.1:10;num=120;den=[112120];G=tf(num,den);u=t;y=lsim(G,u,t);plot(t,y,'g',t,u,'b--');axis([02.502.5]);title('系统单位斜坡响应(使用lsim函数)');xlabel('\itt');ylabel('\ity');%2)t=0:0.01:10;num=120;den=[112120];G=tf(num,den);u=2+sin(t);y=lsim(G,u,t);plot(t,y,t,u,'b--');title('系统对输入2+sin(t)的响应(使用lsim函数)');xlabel('\itt');ylabel('\ity');MATLAB/Simulink图形化时域分析除应用函数直接进行时域分析之外,也可以利用MATLAB的图形工具,得到系统的响应曲线及性能指标,供进一步分析。有关MATLABLTIViewer的用法,在系统稳定性分析中已有初步介绍。MATLABLTIViewer应用实例例:当ζ取0.2,0.4,0.6时,通过LTIViewer工具观察二阶系统

的阶跃响应曲线和脉冲响应曲线。fori=1:3zeta(i)=0.2*i;ss(i)=tf(1,[12*zeta(i)1]);endltiviewSimulink应用实例例:系统的开环传递函数为在Simulink下观察系统在不同输入下的响应曲线。例:统的Simulink模型图离散系统时域响应分析

分析离散系统的相关函数一般在具有同样功能的分析连续系统的函数名前加一个字母“d”,其使用方法和输入输出变量的定义和分析连续系统的函数基本相同。其输入变量均为离散系统的数学模型。常用的离散系统分析函数有:

dstepdimpulsedinitialdlsimdlyapstaris dbodednyquistdnicholsmargin rlocusrlocfindzgrid

若系统为纯数字系统,则直接利用以“d”开头的函数进行分析计算;若系统中存在连续环节,会涉及到连续系统数学模型离散化问题,要将连续系统数学模型转换为离散系统数学模型,然后再分析计算。例

已知系统如图所示,PID控制器的参数为Kp=1.0468,Kd=0.2134,Ki=1.2836,采样周期T=0.25s,试绘制离散系统的根轨迹图和阶跃响应曲线。nc=10;dc=[1,2,0];ts=0.25;kp=1.0468;kd=0.2134;ki=1.2836;[nz1,dz1]=c2dm(nc,dc,ts);nz2=[kp*ts+kd+ki*ts*ts,-(kp*ts+2*kd),kd];dz2=[ts,-ts,0];[nzk,dzk]=series(nz2,dz2,nz1,dz1);[nt,dt]=cloop(nzk,dzk,-1);dstep(nt,dt)figure;zgrid('new');holdon,rlocus(nzk,dzk);控制系统的根轨迹分析控制系统的根轨迹法分析

MATLAB根轨迹分析的相关函数

MATLAB根轨迹分析实例MATLAB图形化根轨迹法分析根轨迹概念是指当开环系统某一参数从零变到无穷大时,闭环系统特征根(闭环极点)在复平面上移动的轨迹。通常情况下根轨迹是指增益K由零到正无穷大下的根的轨迹。

根轨迹方程闭环控制系统一般可用图所示的结构图来描述。

开环传递函数可表示为系统的闭环传递函数为系统的闭环特征方程为即

在s平面上凡是满足上式的点,都是根轨迹上的点。上式称为根轨迹方程。上式可以用幅值条件和相角条件来表示。

幅值条件相角条件式中,分别代表所有开环零点、极点到根轨迹上某一点的向量相角之和。绘制根轨迹的基本法则

根轨迹绘制法则可用来求取根轨迹的起点和终点,根轨迹的分支数、对称性和连续性,实轴上的根轨迹,根轨迹的分离点和会合点,根轨迹的渐近线,根轨迹的出射角和入射角,根轨迹与虚轴的交点等信息,见下表。表中以“*”标明的法则是绘制0根轨迹的法则(与绘制常规根轨迹的法则不同),其余法则不变。

以绘制根轨迹的基本规则为基础的图解法是获得系统根轨迹很实用的工程方法。通过根轨迹可以清楚地反映如下的信息:临界稳定时的开环增益;闭环特征根进入复平面时的临界增益;选定开环增益后,系统闭环特征根在根平面上的分布情况;参数变化时,系统闭环特征根在根平面上的变化趋势等。MATLAB中提供了rlocus()函数,可以直接用于系统的根轨迹绘制。还允许用户交互式地选取根轨迹上的值。rlocus(G)rlocus(G1,G2,...)rlocus(G,k)[r,k]=rlocus(G)r=rlocus(G,k)

绘制指定系统的根轨迹绘制指定系统的根轨迹。多个系统绘于同一图上绘制指定系统的根轨迹。K为给定增益向量返回根轨迹参数。r为复根位置矩阵。r有length(k)列,每列对应增益的闭环根返回指定增益k的根轨迹参数。r为复根位置矩阵。r有length(k)列,每列对应增益的闭环根MATLAB根轨迹分析的

相关函数[K,POLES]=rlocfind(G)[K,POLES]=rlocfind(G,P)

交互式地选取根轨迹增益。产生一个十字光标,用此光标在根轨迹上单击一极点,同时给出该增益所有对应极点值返回P所对应根轨迹增益K,及K所对应的全部极点值sgridsgrid(z,wn)

在零极点图或根轨迹图上绘制等阻尼线和等自然振荡角频率线。阻尼线间隔0.1,范围从0到1,自然振荡角频率间隔为1rad/s,范围从0到10

在零极点图或根轨迹图上绘制等阻尼线和等自然振荡角频率线。用户指定阻尼系数值和自然振荡角频率值clf;%清除当前图像窗口num=1;den=conv([110],[15]);rlocus(num,den)axis([-88-88])例:已知单位反馈控制系统的开环传递函数,绘制系统的根轨迹,

温馨提示

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

评论

0/150

提交评论