MATLAB在自动控制系统中的应用课件_第1页
MATLAB在自动控制系统中的应用课件_第2页
MATLAB在自动控制系统中的应用课件_第3页
MATLAB在自动控制系统中的应用课件_第4页
MATLAB在自动控制系统中的应用课件_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

MATLAB在自动控制系统中的应用

1用MATLAB进行部分分式展开考虑下列传递函数式中的某些值可能为零,在MATLAB的行向量中,num和den分别表示传递函数的分子和分母的系数,即命令[r,p,k]=residue(num,den)将求出多项式B(s)和A(s)之比的部分分式展开式中的留数\极点和余项.

例1:对下述传递函数展开解:对于该传递函数有如下程序:num=[2536]den=[16116][r,p,k]=residue(num,den)其中,r为留数列向量,p为极点列向量,k为余项列向量,num=2536den=16116r=-6.0000-4.00003.0000p=-3.0000-2.0000-1.0000k=2

例2:(传递函数具有重根的情况)num=[0123];den=[1331];[rpk]=residue(num,den)r=1.00000.00002.0000p=-1.0000-1.0000-1.0000

2将部分分式展开式返回到多项式之比命令:

[num,den]=residue(r,p,k)

printsys(num,den,’s’)将以s多项式之比的形式打印出传递函数num=[0123]den=[1331][rpk]=residue(num,den)[num,den]=residue(r,p,k)printsys(num,den,'s')3、求特征方程的根利用求根命令roots,可以求得多项式的根.(poly([p1p2…pi])命令可以在已知根的情况下求多项式)例:求的根p=[1234];roots(p)ans=-1.659-0.17468540428031+1.54686888723140i-0.17468540428031-1.54686888723140ipoly([1,2,3])或p1=1;p2=2;p3=3;poly([p1,p2,p3])ans=1-611-6z=-3-1p=0-6.0000-4.0000-2.0000k=44s^2+16s+12----------------------------s^4+12s^3+44s^2+48s

5、已知零点、极点求传递函数

z=[-1];p=[-2;-4;-8];K=12;[num,den]=zp2tf(z,p,k);printsys(num,den)num/den=

4s+4------------------------s^3+14s^2+56s+646、求串联、并联和反馈(闭环)传递函数命令:

[num,den]=series(num1,den1,num2,den2)

[num,den]=parallel(num1,den1,num2,den2)[num,den]=feedback(num1,den1,num2,den2)例:num1=[0010];den1=[1210];num2=[05];den2=[15];[num,den]=series(num1,den1,num2,den2);Printsys(num,den)(1)标准2阶系统的MATLAB描述对于给定的自然震荡频率和阻尼系数,下列命令printsys(num,den)或printsys(num,den,’s’)将以s的多项式比值形式,打印出num/den例:wn=5;damping_ratio=0.4;[num0,den]=ord2(wn,damping_ratio);num=5^2num0;printsys(num,den,’s’);

step(num,den)num/den=25--------------s^2+4s+25例:t=0:0.2:10;zeta=[00.20.40.60.81]forn=1:6;num=[001]den=[12*zeta(n)1][y(1:51,n),x,t]=step(num,den,t)endplot(t,y)gridtitle(‘plotofunit-stepresponsecurveswith\zeta=0,0.2,0.4,0.6,0.8,1’)Xlabel(‘t(sec)’)text(4.1,1.86’\zeta=0’);text(3.5,1.5’0.2’);text(3.5,1.24’0.4’);text(3.5,1.08’0.6’);text(3.5,0.95’0.8’);text(3.5,0.86’1.0’);例子程序:%计算二阶系统的阶跃响应%wn=1t=0:0.1:12;num=[1];zeta1=0.1;den1=[12*zeta11];zeta2=0.2;den2=[12*zeta21];zeta3=0.4;den3=[12*zeta31];zeta4=0.6;den4=[12*zeta41];zeta5=0.8;den5=[12*zeta51];zeta6=1.0;den6=[12*zeta61];zeta7=2.0;den7=[12*zeta71];[y1,x,t]=step(num,den1,t);[y2,x,t]=step(num,den2,t);[y3,x,t]=step(num,den3,t);[y4,x,t]=step(num,den4,t);[y5,x,t]=step(num,den5,t);[y6,x,t]=step(num,den6,t);[y7,x,t]=step(num,den7,t);Plot(t,y1,t,y2,t,y3,t,y4,t,y5,t,y6,t,y7)Xlabel('wnt'),ylabel('c(t)')GridonTitle('zeta=0.1,0.2,0.4,0.6,0.8,1.0,2.0')(2)求系统的单位脉冲响应例子程序%计算单位脉冲响应%wn=1,zeta=0.2Num=[001];Den=[10.41];Impulse(num,den);GridonTitle(‘unit-impulseresponseofG(s)=1/(s^2+0.4s+1)’)(3)用MATLAB求上升时间、峰值时间、最大超调量和调整时间:例:求的上升时间、峰值时间、最大超调量和调整时间。解:

num=[0025];den=[1625];t=0:0.005:5;[y,x,t]=step(num,den,t);r=1;whiley(r)<1.0001;r=r+1;end;rise_time=(r-1)*0.005[ymax,tp]=max(y);peak_time=(tp-1)*0.005max_overshoot=ymax-1s=1001;whiley(s)>0.98&y(s)<1.02;s=s-1;end;setting_time=(s-1)*0.005rise_time=0.5550peak_time=0.7850max_overshoot=0.0948setting_time=1.1850(4)求对任意输入信号的响应为了求对任意输入信号的响应,可以应用lsim。命令:lsim(num,den,r,t)y=lsim(num,den,r,t)将产生对输入时间函数r和u的响应例:求函数的单位斜坡响应

num=[001];den=[111];t=0:0.1:8;r=t;y=lsim(num,den,r,t);plot(t,r,’-’,t,y,’o’);grid;title(‘unit-rampresponseobtainedbyuseofcommand”lsim”’);xlabel(‘tsec’);Ylabel(‘unit-rampinputandsystemoutput’);text(2.1,4.65,’unit-rampinput’);text(4.5,2.0,’output’)3)[r,k]=rlocus(num,den)

[r,k]rlocus(num,den,k)屏幕上将显示矩阵r和增益向量K(r具有长度为K的行和长度为den-1的列,后者包括复数根位置),但不显示根轨迹n=[1];d=[conv([1,0],[1,0.5])];k=0:10:100;[r,k]=rlocus(n,d,k)4)r=rlocus(num,den,k)

plot(r,’o’)前句只给出相应跟轨迹增益对应的根值,后者绘制跟轨迹的点n=[1];d=[conv([1,0],[1,0.5])];k=0:10:100;r=rlocus(n,d,k);plot(r,'o')5)命令sgrid将定常阻尼比(0-1,增量间隔为0.1)线与定常自然振荡频率圆覆盖到根轨迹上。如果只需要一些特定的定常阻尼线和特定的定常自然振荡频率圆,则可采用下列命令:

sgrid([zeta1,zeta2…],[wn1,wn2,wn3…])

例:num=[0001];den=[1450];rlocus(num,den);sgrid([0.5,0.707],[0.5,1,2])9、用MATLAB作伯特图命令bode可以计算连续线性定常系统频率响应的幅值和相角。当把命令bode(不带左方变量)输入计算机后,MATLAB可以在屏幕上产生伯特图。常用的命令:

bode(num,den)

bode(num,den,w)

bode(sys)当包含左方变量时,即:

[mag,phase,w]=bode(num,den,w)

[mag,phase,w]=bode(num,den)该命令将把系统的频率响应转变成mag,phase和W三个矩阵,这时在屏幕上不显示频率响应图。矩阵mag和phase包含系统频率响应的幅值和相角,这些幅值和相角值是在用户指定的频率点上得到的。这时的相角是以度来表示。利用下列表达式可以把幅值转变成分贝:

magdB=20*lg10(mag)为了指明频率范围,采用命令

lgspace(d1,d2)

lgspace(d1,d2,n)在两个十进制数10的d1次方和10的d2次方之间产生一个由50个点组成的向量,这50个点彼此在对数上有相等的距离。而第二条命令是在10的d1次方和10的d2次方之间产生N个在对数上相等距离的点。num=[10410];den=[10.890];w=logspace(-2,3,100);bode(num,den,w);title('bodeDiagramofG(s)=10(s^2+0.4s+1)/[s(s^2+0.8s+9)]')num=[1-1];den=[12];bode(num,den)九、用MATLAB作奈奎斯特图命令nyquist可以计算连续时间、线性定常系统的频率响应。当命令中不包含左方变量时,nyquist仅在屏幕上产生奈奎斯特图。其形式:nyquist(num,den)

nyquist(num,den,w)其中,第二条指令包含有用户指定频率向量,可以在指定的频率点上计算频率响应。当采用左方变量时,命令

温馨提示

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

评论

0/150

提交评论