ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:138.51KB ,
资源ID:3361831      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3361831.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于MATLAB对控制课程的辅助应用分析.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于MATLAB对控制课程的辅助应用分析.docx

1、基于MATLAB对控制课程的辅助应用分析基于MATLAB对控制课程的辅助应用分析姓名 XXX 班级 08自动化 学号 200805070029 申请得分:95摘要:早期的控制系统设计可以由纸笔等工具容易地计算出来,如 Ziegler 与 Nichols 于1942年提出的 PID经验公式就可以十分容易地设计出来。随着控制理论的迅速发展,光利用纸笔以及计算器等简单的运算工具难以达到预期的效果,加之在计算机领域取得了迅速的发展,于是很自然地出现了控制系统的计算机辅助设计 (computer-aided control system design , CACSD)方法。随着MATLAB 语言出现以来

2、,就深受控制领域学生和研究者的欢迎,已经成为控制界最流行、最有影响的通用计算机语言, MATLAB 作为主要程序设计语言来介绍控制系统计算机辅助设计的算法,可以使学者将主要精力集中在控制系统理论和方法上,而不是将主要精力花费在没有太大价值的底层重复性机械性劳动上,这样可以对控制系统计算机辅助设计技术有较好的整体了解,避免“只见树木,不见森林”的认识偏差,提高控制器设计的效率和可靠性。 子曰:“工欲善其事,必先利其器”。跟踪国际最先进的CACSD软件环境及发展,以当前国际上最流行的 CACSD软件环境MATLAB为基本出发点来系统地介绍控制系统计算机辅助设计技术及软件实现,从而大大提高 CACS

3、D算法研究与实际应用的效率和可靠性。关键词:Matlab 经典控制 现代控制 数学模型 传递函数 根轨迹 稳定性 劳斯判据 奈氏图 伯德图 能控性 能观性 状态空间模型 正文:控制理论的主要内容主要分为两大部分:经典控制理论和现代控制理论。但是将这两者总结道一起又可以详尽的分为以下6个分类:1 数学模型经典(时域法)现代(频域法)理论基础建立在以1. 常微分方程稳定性理论2. Fourier变换为基础的根轨迹和奈奎斯特判据理论之上1. 常微分方程稳定性理论2. 状态空间分析3. 泛函分析、微分几何等现代数学分支数学模型传递函数(研究系统外部特性,属于外部描述,不完全描述。)状态空间表达式(深入

4、系统内部,是内部描述,完全描述。)适用对象仅适用于: 单输入单输出线性定常集总参数可推广至: 多输入多输出非线性时变分布参数传递函数表示方法MATLAB语言表达Num=b1,b2,,bm;Den=a1,a2,an;G=tf(num,den);G=ss(A,B,C,D)2. 稳定性分析及时域分析2.1对控制系统的性能的要求,主要是稳定性、暂态性能和稳态性能几个方面。系通过分析是系统设计的基础,而大部分的系统设计方法都是在系统稳定性的基础上发展起来的。常见的线性定常系统的时域分析方法有劳斯判据、赫尔维兹稳定判据等。线性定常连续系统稳定的充要条件是系统的全部特征根或闭环极点都具有负实部,或者说位于复

5、平面左半部。劳斯判据不仅能够判别系统是否稳定,而且能够确定有多少正实部根,也能够具体确定对称于远点的特征根。线性系统的动态性能取决于系统的闭环极点和零点的分布。虽然可以通过计算机直接求解得到闭环极点,但不能看到系统闭环极点随着系统参数变化的情况。但是通过根轨迹法,能够根据系统的开环零、极点分布,用图解的方法画出系统闭环极点随着系统参数变化的轨迹。 虽然用手工精确绘制系统更轨迹是非常困难的,但是Matlab中专门提供了绘制根轨迹有关的函数。r,k=rlocus(num,den)和r,k=rlocus(num,den,k)的功能是绘制根轨迹图。r,k=rlocus(num,den)是绘制部分的根轨

6、迹。如果要以给定的参数范围绘制根轨迹,则执行命令k,poles=rlofind(num,den,p)。 k,poles=rlofind(num,den,)和k,poles=rlofind(num,den,p)的功能是确定根轨迹上poles处的根轨迹放大系数的值。例: 键入:n=1,3; d=1,13,54,82,60,0; rlocus(n,d)可得图1所示根轨迹图:图13.频域分析 当系统是高阶系统时,系统微分方程的求解时很困难的;另外,系统的时间响应没有明确反映出系统响应与系统结构、参数之间的关系,一旦系统很难满足要求,就很难确定如何去调整系统的结构和参数。频域分析法克服了时域的不足。根据

7、系统的频率特性,可以直观地分析系统的稳定性,并且很容易的二和系统的结构、参数联系起来,因此可以根据系统的频率特性选择系统的结构和参数,使之满足控制要求。实验中常用的频率分析方法是伯德图和奈氏图。因此,可以使用Matlab绘制系统的博得图、奈氏图,并确定系统的相位裕度和幅值裕度。 用Matlab很容易精确的绘制奈氏图和伯德图,但是只能绘制其中的一部分,不能绘制出的全貌,所以不能用来分析系统的稳定性。3.1用Matlab绘制奈氏图 绘制奈氏图的Matlab命令是nyquist(num,den),若要指定频率时,可用函数nyquist(num,den,)。还有以下两种形式:re,im,w= nyqu

8、ist(num,den)re,im,w= nyquist(num,den,w)通过以上两种形式的调用,可计算频率特性的实部和虚部,但不能产生奈氏图,还需调用plot(re,im)函数才能得到。例如:开环传递函数为用Matalb键入:G=tf(75*1,2,conv(1,10,1,3,2,5),nyquist(G)得到如图2所示:图23.2用Matlab绘制伯德图 绘制伯德图可用命令bode(num,den).如果需要给出频率的频率范围,可调用之林w=logspace(a,b,n),频率的采样点可在一定范围内产生n个十进制对数分点的等距离点。 如果需要制定幅值mag和phase范围,这执行命令m

9、ag,phase,w= bode(num,den),Matlab在频率响应范围内能够自动选取频率值绘图。例:用Matlab绘制伯德图 键入命令:G=tf(2000*1.5,conv(1,2,0,1,4,100),bode(G) 输出结果如下: Transfer function: 3000-s4 + 6 s3 + 108 s2 + 200 s 图3若键入G=tf(2000*1.5,conv(1,2,0,1,4,100);kg,r=margin(G)可以得到G的幅值域度kg = 0.8296和幅值穿越频率r =-14.40624.结构问题关于结构问题主要涉及现代控制理论,它包含了系统的能控能观性

10、、以及对应的能控规范型和能观规范型、系统的能控分解和能观分解、系统的最小实现。线性系统的能控性和能观性事基于状态方程的控制理论的基础.关于线性系统空间结构涉及的两个主要问题就是系统的状态空间模型的结构性分解以及传递函数阵与能控性/能观性的关系。而由系统的传递函数建立状态空间模型这类问题称为系统实现问题,而求得的状态空间模型称为相应的传递函数的一个实现。两种系统实现方法-能控/能观规范形实现。4.1线性系统的可控性判定 基于 MATLAB 的判定方法:rank(T) 构造可控性判定矩阵: 例:离散状态方程的可控性MATLAB 求解判定矩阵判定矩阵构造方法4.1.1线性系统的能观性判定 4.1.1

11、.1判定矩阵 4.1.1.2 MATLAB 求解 4.1.2可控标准型和能观标准型 使用下面两个转换函数时线输入如下函数sscanform()function Gs=sscanform(G,type)switch type case ctrl G=tf(G); Gs=; G.num1=G.num1/G.den1(1); % 传递函数归一化 G.den1=G.den1/G.den1(1); d=G.num1(1); G1=G; G1.ioDelay=0; G1=G1-d; num=G1.num1; den=G1.den1; n=length(G.den1)-1; A=zeros(n-1,1) e

12、ye(n-1); -den(end:-1:2); B=zeros(n-1,1);1; C=num(end:-1:2); D=d; Gs=ss(A,B,C,D,Ts,G.Ts,ioDelay,G.ioDelay); case obsv Gc=sscanform(G,ctrl); Gs=ss(Gc.a,Gc.c,Gc.b,Gc.d,Ts,G.Ts,ioDelay,G.ioDelay); otherwise error(Only options ctrl and obsv are applicable.)end可控标准型 Gs=sscanform(G,obsv)例如:对求解可控标准型 键入命令:nu

13、m=6 0 2 8 10; den=2 0 6 4 8;G=tf(num,den); Gs=sscanform(G,obsv)标准型:可观测标准型 4.1.2.1Kalman 规范分解子空间 示意图 4 图44.1.2.2最小实现例:多变量模型 是否能最小实现?MATLAB求解A=-6,-1.5,2,4,9.5; -6,-2.5,2,5,12.5; -5,0.25,-0.5,3.5,9.75; -1, 0.5, 0, -1, 1.5; -2, -1, 1, 2, 3; B=6,4; 5,5; 3,4; 0,2; 3,1; D=zeros(2);C=2,0.75,-0.5,-1.5,-2.75;

14、 0,-1.25,1.5,1.5,2.25;G=ss(A,B,C,D); G1=minreal(G) 可得如下:a = x1 x2 x3 x1 -2.169 -1.967 0.1868 x2 0.1554 -0.1811 -0.2789 x3 0.1403 1.613 -1.65b = u1 u2 x1 -7.907 -5.5 x2 3.228 2.506 x3 2.461 5.046c = x1 x2 x3 y1 -0.8326 -0.1501 -0.04028 y2 -0.3842 0.2764 0.4348d = u1 u2 y1 0 0 y2 0 05系统设计 系统设计主要是基于输入输

15、出模型和基于状态空间模型的计。由此可以使用Matlab设计出相应的算法直接设计,并进行整个系统的仿真分析。5.1基于输入输出模型的设计方法5.1.1.超前滞后校正器设计方法串联超前滞后校正器,如图5 图5 超前滞后校正器1 ;1:超前滞后校正器零极点分配图与伯德图,如图6所示图65.1.2超前滞后校正器的设计方法基于剪切频率和相位裕度的设计方法式中,为校正器的增益根据超前滞后校正器的涉及规则,可以写出相应的Matlab语言的超前滞后校正器的设计函数leadladc(),内容如下function Gc=leadlagc(G,Wc,Gam_c,Kv,key)G=tf(G); Gai,Pha=bod

16、e(G,Wc);Phi_c=sin(Gam_c-Pha-180)*pi/180);den=G.den1; a=den(length(den):-1:1);ii=find(abs(a)0, a=a(ii(1)+1); else, a=a(1); end;alpha=sqrt(1-Phi_c)/(1+Phi_c); Zc=alpha*Wc; Pc=Wc/alpha; Kc=sqrt(Wc*Wc+Pc*Pc)/(Wc*Wc+Zc*Zc)/Gai; K1=G_n*Kc*alpha/a;if nargin=4, key=1; if Phi_c0, key=2; else, if K1Kv, key=3;

17、 end, endendswitch keycase 1, Gc=tf(1 Zc*Kc,1 Pc);case 2 Kc=1/Gai; K1=G_n*Kc/a; Gc=tf(1 0.1*Wc,1 K1*Gcn(2)/Kv); case 3 Zc2=Wc*0.1; Pc2=K1*Zc2/Kv; Gcn=Kc*conv(1 Zc,1,Zc2); Gcd=conv(1 Pc,1,Pc2); Gc=tf(Gcn,Gcd);end例:, 设计超前滞后校正器。键入命令:s=tf(s); G=4*(s+1)*(s+0.5)/s/(s+0.1)/(s+2)/(s+10)/(s+20)wc=20; f1=figu

18、re; f2=figure; % 打开两个图形窗口for gam=20:10:90 Gc=leadlagc(G,wc,gam,1000,3); figure(f1); step(feedback(G*Gc,1),1); hold on figure(f2); bode(Gc*G); hold on;endGc1=zpk(leadlagc(G,20,60,1000,3) % 设计超前滞后校正器Gc2=zpk(leadlagc(G,20,60,1000,1) % 设计超前校正器figure;step(feedback(G*Gc1,1),-,feedback(G*Gc2,1),:,1) % 绘制闭环

19、响应结果如下:Transfer function: 4 s2 + 6 s + 2-s5 + 32.1 s4 + 263.2 s3 + 426 s2 + 40 s其中为超前滞后校正器,为超前校正器,如图7,图8,图9所示。如果要知道相位裕度为60,不同剪切频率对应的单位阶跃响应和伯德图,键入如下命令即可,如图10、11、12、13所示。 图7 图8图9 图10 图11 图12 图13gam=60; f1=figure; f2=figure; % 打开两个图形窗口for wc=5:5:30 Gc=leadlagc(G,wc,gam,1000,3); a,b,c,d=margin(Gc*G); fi

20、gure(f1); step(feedback(G*Gc,1),3); hold on figure(f2); bode(Gc*G); hold on;end5.2基于状态空间模型的设计方法 使用Matlab辅助设计状态空间模型主要是对状态空间模型控制器的设计。5.2.1状态反馈控制结构框图如图14 所示 图14 将u(t)=v(t)-Kx(t)代入开环系统的状态方程模型,则在状态反馈矩阵K下,系统的闭环状态方程模型可以写成如果系统(A,B)完全可控,则选择合适的K矩阵,可以将闭环系统矩A-BK的特征值配置到任意地方。对于开环状态空间模型(A,B,C,D)来说,在状态反馈向量K下,闭环系统的状

21、态方程可以写成(A-BK,B,C-DK,D)。就极点配置来说,使用以下算法可以实现,算法如下:Ackermann 算法 :K=acker(A,B,p);鲁棒极点配置算法:K=place(A,B,p);place( ) 函数不适用于含有多重期望极点的问题acker( ) 函数可以求解配置多重极点的问题例: , 键入命令:A=0 1 0 0 ; 0 0 -1 0; 0 0 0 1; 0 0 5 0; B=0 1 ; 0 -1; 0 0 ; 0 0; p=-0.1; -0.2; -0.5+0.2i; -0.5-0.2i; K=place(A,B,p) rank(ctrb(A,B)5.2.2观测器设计

22、及基于观测调节器设计 如图15所示图15原系统的(A,C)为完全可观测,则状态观测器数学模型的状态空间表示为:方程解析解为:稳定, 输入.m函数,如下function xh,x,t=simobsv(G,L)y,t,x=step(G); G=ss(G); A=G.a; B=G.b; C=G.c; D=G.d; y1,xh1=step(A-L*C),(B-L*D),C,D,1,t);y2,xh2=lsim(A-L*C),L,C,D,y,t); xh=xh1+xh2;G为对象的状态方程的状态对象模型,L为观测器向量。例:。键入命令:P=-10;-10;-10;-10; L=acker(A,C,P);

23、 L % 设计新观测器xh,x,t=simobsv(ss(A,B,C,D),L);plot(t,x,t,xh,:); set(gca,XLim,0,30,YLim,-0.5,4)figure结果如图16所示:图16如果极点位于10键入命令:P=-10;-10;-10;-10; L=acker(A,C,P); L % 设计新观测器xh,x,t=simobsv(ss(A,B,C,D),L);plot(t,x,t,xh,:); set(gca,XLim,0,30,YLim,-0.5,4)可得结果:ans = -421.1634 260.7255 33.2946 -20.8091带有观测器的状态反馈控

24、制结构图如图17所示:图17求取控制器和反馈环节的Matlab函数function Gc,H=obsvsf(G,K,L)H=ss(G.a-L*G.c, L, K, 0);Gc=ss(G.a-G.b*K-L*G.c+L*G.d*K, G.b, -K, 1);如果参考输入信号r(t )=0,控制结构Gc(s)化简为,c=reg(G,K,L)则有Gc=reg(G,K,L)例:, 选择加权矩阵Q=diag(0.01,0.01,2,3),R=1,设计LQ最有控制器。键入命令:A=0,2,0,0; 0,-0.1,8,0; 0,0,-10,16; 0,0,0,-20;B=0;0;0;0.3953; C=0.

25、09882,0.1976,0,0; D=0;Q=diag(0.01,0.01,2,3); R=1; % 输入加权矩阵K=lqr(A,B,Q,R), step(ss(A-B*K,B,C,D) % 设计rm LQ 最优控制器结果如下:K =0.1000 0.9429 0.7663 0.6387如图18所示:设观测器极点均位于-5,用极点配置发设计极点观测器:键入命令:P=-5;-5;-5;-5; G=ss(A,B,C,D); L=acker(A,C, P); % 设计观测器Gc,H=obsvsf(G,K,L); % 设计控制器step(ss(A-B*K,B,C,D),feedback(G*Gc,H

26、) % 比较基于观测器的控制器与状态反馈结果如图19 所示:图18图19基于观测器下控制器闭环系统的最小实现模型:键入命令:zpk(minreal(feedback(G*Gc,H) % 最小实现模型zpk(minreal(ss(A-B*K,B,C,D) % 这个结果和上式忽略两个一阶零点几乎一致结果如下:Zero/pole/gain: 9.9982 (s+1)-(s+20.01) (s+10.01) (s2 + 0.3341s + 0.05052)Zero/pole/gain: 9.9982 (s+1)-(s+20.01) (s+10.01) (s2 + 0.3341s + 0.05052)参考文献:1 薛定宇 控制系统计算机辅助设计MATLAB语言与应用(第二版).北京:清华大学出版社2 王万良 自动控制原理 .北京:高等教育出版社3 刘豹,唐万生 现代控制理论(第三版).北京:机械工业出版社

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1