《2022年自适应控制 .pdf》由会员分享,可在线阅读,更多相关《2022年自适应控制 .pdf(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1 10自适应控制严格地说,实际过程中的控制对象自身及能所处的环境都是十分复杂的,其参数会由于种种外部与内部的原因而发生变化。如,化学反应过程中的参数随环境温度和湿度的变化而变化(外部原因) ,化学反应速度随催化剂活性的衰减而变慢(内部原因),等等。如果实际控制对象客观存在着较强的不确定,那么,前面所述的一些基于确定性模型参数来设计控制系统的方法是不适用的。所谓自适应控制是对于系统无法预知的变化,能自动地不断使系统保持所希望的状态。因此,一个自适应控制系统,应能在其运行过程中,通过不断地测取系统的输入、状态、输出或性能参数,逐渐地了解和掌握对象,然后根据所获得的过程信息, 按一定的设计方法,
2、作出控制决策去修正控制器的结构,参数或控制作用,以便在某种意义下, 使控制效果达到最优或近似更优。目前比较成熟的自适应控制可分为两大类:模型参考自适应控制(Model Reference Adaptive Control)和自校正控制( Self-Turning) 。10.1 模型参考自适应控制10.1.1模型参考自适应控制原理模型参考自适应控制系统的基本结构与图10.1所示:10.1 模型参考自适应控制系统它由两个环路组成,由控制器和受控对象组成内环,这一部分称之为可调系统,由参考模型和自适应机构组成外环。实际上,该系统是在常规的反馈控制回路上再附加一个参考模型和控制器参数的自动调节回路而形
3、成。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 14 页 - - - - - - - - - 2 在该系统中,参考模型的输出或状态相当于给定一个动态性能指标,(通常,参考模型是一个响应比较好的模型) , 目标信号同时加在可调系统与参考模型上,通过比较受控对象与参考模型的输出或状态来得到两者之间的误差信息,按照一定的规律(自适应律)来修正控制器的参数(参数自适应)或产生一个辅助输入信号(信号综合自适应) ,从而使受控制对象的输出尽可能地跟随参考模型的输出。在这个系统,当
4、受控制对象由于外界或自身的原因系统的特性发生变化时,将导致受控对象输出与参考模型输出间误差的增大。于是,系统的自适应机构再次发生作用调整控制器的参数, 使得受控对象的输出再一次趋近于参考模型的输出(即与理想的希望输出相一致) 。这就是参考模型自适应控制的基本工作原理。模型参考自适应控制设计的核心问题是怎样决定和综合自适应律,有两类方法,一类为参数最优化方法, 即利用优化方法寻找一组控制器的最优参数,使与系统有关的某个评价目标,如:J=toe2(t)dt,达到最小。另一类方法是基于稳定性理论的方法, 其基本思想是保证控制器参数自适应调节过程是稳定的。如基于 Lyapunov 稳定性理论的设计方法
5、和基于Popov超稳定理论的方法。系统设计举例以下通过一个设计举例说明参数最优化设计方法的具体应用。例 10.1 设一受控系统的开环传递函数为Wa(s)=)1(ssk,其中 K可变,要求用一参考模型自适应控制使系统得到较好的输出。解:对于该系统, 我们选其控制器为PID 控制器,而 PID 控制器的参数由自适应机构来调节,参考模型选性能综合指标良好的一个二阶系统:Wm(d)=1414.112ss自适应津决定的评价函数取 minJ=t0e2(t)dt ,e(t) 为参考模型输出与对象输出的误差。由于评价函数不能写成PID 参数的解析函数形式, 因此选用单纯形法做为寻优方法。 (参见有关优化设计参
6、考文献) 。在上述分析及考虑下,可将系统表示具体结构表示如下图10.2 所示。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 14 页 - - - - - - - - - 3 r(t) x0 x1 x2 1/s 1/s - - 1.414 x7 x5 x3 x4 x6 PID 1/s 1sK单纯形法寻优图 10.2 系统仿真结构图为了进行数字仿真 (连续系统离散相似法) ,图中的模型是采用典型环节 (积分环节,惯性环节)型式表示。对于图 5-17 所示系统,可写出各类环节
7、的差数方程,其中,PID 控制器的差分方程为:)2()1(2)()()1()()1()(55555533kxkxkxTTkxTTkxkxKkxkxdip式中, Kp为比例系数, TI为积分时间常数, Td为微分时间常数,它们是自适应津的调整参数,也是单纯形法的寻优参数。T是采样周期。用 MATLAB 编写的仿真程序如下,(chp10-1 .m 和 suba.m), 程序中有关离散相似法仿真及单纯形法寻优的原理请参见有关参考书,如参考文献 。global R I9 L1 L2 L3 x p1 p2 p3 global Kp E1 F1 G1 E5 F5 G5 m global K1 T4 T5
8、x=zeros(3,7);Q=zeros(1,7);p1=zeros(1000,1);k=zeros(3,1); N=3;E=0.001;R=1;L=0.012;p2=zeros(1000,1);p3=zeros(1000,1); L1=0.05;L2=5;L3=200;m=0;mn=0; Kp1=zeros(100,1);Ti=zeros(100,1);Td=zeros(100,1); Kp=2; E1=1;F1=L1;G1=L1*L1/2; E5=exp(-L1);F5=Kp*(1-E5);G5=Kp*(E5-1)+Kp*L1; I9=0; x(1,1)=1;x(2,1)=0.5;x(3,
9、1)=0.9; for j=2:N+1 for i=1:N 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 14 页 - - - - - - - - - 4 if i=j-1 x(i,j)=x(i,1)+L; else x(i,j)=x(i,1); end end end for j=1:N+1 Q(j)=suba(j); end Ex=0; while ExQ0 Q0=Q(j); j0=j; end end Q1=0; for j=1:N+1 if j=j0 if Q(
10、j)Q1 Q1=Q(j); j1=j; end end end Q2=Q0; for j=1:N+1 if Q(j)Q2 Q2=Q(j); j2=j; end end mn=mn+1; Kp1(mn,1)=x(1,j2); Ti(mn,1)=x(2,j2); Td(mn,1)=x(3,j2); if Q21 if (Q0-Q2)E Ex=1; end else 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 14 页 - - - - - - - - - 5 if (Q0-
11、Q2)(E*Q2) Ex=1; end end for i=1:N x(i,N+2)=0; for j=1:N+1 x(i,N+2)=x(i,N+2)+x(i,j); end x(i,N+2)=2*(x(i,N+2)-x(i,j0)/N-x(i,j0); end j=N+2; Q(N+2)=suba(j); if Q(N+2)Q(j1) if (1.5*Q(N+2)-0.5*Q0)Q2; for i=1:N x(i,N+4)=1.5*x(i,N+2)-0.5*x(i,j0); end j=N+4; Q(N+4)=suba(j); if Q(N+4)Q(j0) for i=1:N 名师资料总结
12、- - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 14 页 - - - - - - - - - 6 x(i,N+3)=x(i,N+2); x(i,N+2)=x(i,j0); x(i,j0)=x(i,N+3); end end for i=1:N x(i,N+3)=0.3*x(i,j0)+0.7*x(i,N+2); end j=N+3; Q(N+3)=suba(j); if Q(N+3)um if contr0 contr=um; else contr=-um; end end py1(i
13、j)=y1_v; py2(ij)=contr; end t=1:800;t=t; plot(t,R,g,t,py1,b,t,py2,r) grid 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 14 页 - - - - - - - - - 14 % - subrls - function result=subrls(l) global q1 pm1 id y1_v r1 v1=zeros(30,1); z1=0;ww=0; for i=1:l v1(i)=0; for
14、 j=1:l v1(i)=v1(i)+pm1(i,j)*r1(j); end end for i=1:l z1=z1+r1(i)*q1(i); ww=ww+r1(i)*v1(i); end ww=1+ww; for i=1:l q1(i)=q1(i)+v1(i)*(y1_v-z1)/ww; for j=1:l pm1(i,j)=(pm1(i,j)-v1(i)*v1(j)/ww); end end result=l; 图 10.6 例 10.2 程序运行结果0200400600800-20020406080名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 14 页 - - - - - - - - -