模型参考自适应控制.docx
- 文档编号:3053460
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:18
- 大小:89.27KB
模型参考自适应控制.docx
《模型参考自适应控制.docx》由会员分享,可在线阅读,更多相关《模型参考自适应控制.docx(18页珍藏版)》请在冰豆网上搜索。
模型参考自适应控制
10.自适应控制
严格地说,实际过程中的控制对象自身及能所处的环境都是十分复杂的,其参数会由于种种外部与内部的原因而发生变化。
如,化学反应过程中的参数随环境温度和湿度的变化而变化(外部原因),化学反应速度随催化剂活性的衰减而变慢(内部原因),等等。
如果实际控制对象客观存在着较强的不确定,那么,前面所述的一些基于确定性模型参数来设计控制系统的方法是不适用的。
所谓自适应控制是对于系统无法预知的变化,能自动地不断使系统保持所希望的状态。
因此,一个自适应控制系统,应能在其运行过程中,通过不断地测取系统的输入、状态、输出或性能参数,逐渐地了解和掌握对象,然后根据所获得的过程信息,按一定的设计方法,作出控制决策去修正控制器的结构,参数或控制作用,以便在某种意义下,使控制效果达到最优或近似更优。
目前比较成熟的自适应控制可分为两大类:
模型参考自适应控制(ModelReferenceAdaptiveControl)和自校正控制(Self-Turning)。
10.1模型参考自适应控制
10.1.1模型参考自适应控制原理
模型参考自适应控制系统的基本结构与图10.1所示:
10.1模型参考自适应控制系统
它由两个环路组成,由控制器和受控对象组成内环,这一部分称之为可调系统,由参考模型和自适应机构组成外环。
实际上,该系统是在常规的反馈控制回路上再附加一个参考模型和控制器参数的自动调节回路而形成。
在该系统中,参考模型的输出或状态相当于给定一个动态性能指标,(通常,参考模型是一个响应比较好的模型),目标信号同时加在可调系统与参考模型上,通过比较受控对象与参考模型的输出或状态来得到两者之间的误差信息,按照一定的规律(自适应律)来修正控制器的参数(参数自适应)或产生一个辅助输入信号(信号综合自适应),从而使受控制对象的输出尽可能地跟随参考模型的输出。
在这个系统,当受控制对象由于外界或自身的原因系统的特性发生变化时,将导致受控对象输出与参考模型输出间误差的增大。
于是,系统的自适应机构再次发生作用调整控制器的参数,使得受控对象的输出再一次趋近于参考模型的输出(即与理想的希望输出相一致)。
这就是参考模型自适应控制的基本工作原理。
模型参考自适应控制设计的核心问题是怎样决定和综合自适应律,有两类方法,一类为参数最优化方法,即利用优化方法寻找一组控制器的最优参数,使与系统有关的某个评价目标,如:
J=
e2(t)dt,达到最小。
另一类方法是基于稳定性理论的方法,其基本思想是保证控制器参数自适应调节过程是稳定的。
如基于Lyapunov稳定性理论的设计方法和基于Popov超稳定理论的方法。
系统设计举例
以下通过一个设计举例说明参数最优化设计方法的具体应用。
例10.1设一受控系统的开环传递函数为Wa(s)=
,其中K可变,要求用一参考模型自适应控制使系统得到较好的输出。
解:
对于该系统,我们选其控制器为PID控制器,而PID控制器的参数由自适应机构来调节,参考模型选性能综合指标良好的一个二阶系统:
Wm(d)=
自适应津决定的评价函数取
minJ=
e2(t)dt,e(t)为参考模型输出与对象输出的误差。
由于评价函数不能写成PID参数的解析函数形式,因此选用单纯形法做为寻优方法。
(参见有关优化设计参考文献)。
在上述分析及考虑下,可将系统表示具体结构表示如下图10.2所示。
r(t)x0x1x2
1/s1/s
--
1.414
x7
x5x3x4x6
PID1/s
单纯形法寻优
图10.2系统仿真结构图
为了进行数字仿真(连续系统离散相似法),图中的模型是采用典型环节(积分环节,惯性环节)型式表示。
对于图5-17所示系统,可写出各类环节的差数方程,其中,PID控制器的差分方程为:
式中,Kp为比例系数,TI为积分时间常数,Td为微分时间常数,它们是自适应津的调整参数,也是单纯形法的寻优参数。
T是采样周期。
用MATLAB编写的仿真程序如下,(chp10-1.m和suba.m),程序中有关离散相似法仿真及单纯形法寻优的原理请参见有关参考书,如参考文献[]。
globalRI9L1L2L3xp1p2p3
globalKpE1F1G1E5F5G5m
globalK1T4T5
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,1)=0.9;
forj=2:
N+1
fori=1:
N
ifi==j-1
x(i,j)=x(i,1)+L;
else
x(i,j)=x(i,1);
end
end
end
forj=1:
N+1
Q(j)=suba(j);
end
Ex=0;
whileEx<1
Q0=0;
forj=1:
N+1
ifQ(j)>Q0
Q0=Q(j);
j0=j;
end
end
Q1=0;
forj=1:
N+1
ifj~=j0
ifQ(j)>Q1
Q1=Q(j);
j1=j;
end
end
end
Q2=Q0;
forj=1:
N+1
ifQ(j) 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); ifQ2<1 if(Q0-Q2) Ex=1; end else if(Q0-Q2)<(E*Q2) Ex=1; end end fori=1: N x(i,N+2)=0; forj=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); ifQ(N+2) if(1.5*Q(N+2)-0.5*Q0) fori=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); ifQ(N+4) fori=1: N x(i,N+3)=x(i,N+4); end Q(N+3)=Q(N+4); else fori=1: N x(i,N+3)=x(i,N+2); end Q(N+3)=Q(N+2) end else fori=1: N x(i,N+3)=x(i,N+2); end Q(N+3)=Q(N+2); end fori=1: N x(i,j0)=x(i,N+3); end Q(j0)=Q(N+3); else ifQ(N+2)>Q(j0) fori=1: N x(i,N+3)=x(i,N+2); x(i,N+2)=x(i,j0); x(i,j0)=x(i,N+3); end end fori=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); ifQ(N+3) fori=1: N x(i,j0)=x(i,N+3); end Q(j0)=Q(N+3); else forj=1: N+1 fori=1: N x(i,j)=(x(i,j)+x(i,j2))/2; end end forj=1: N+1 Q(j)=suba(j); end end end end I9=1; j=j2; Fin=suba(j) x(1,j2),x(2,j2),x(3,j2) figure (1) m1=1: 1: m;m1=m1'; p1=p1(1: m,1);p2=p2(1: m,1);p3=p3(1: m,1); plot(m1,p1,'r',m1,p2,'B',m1,p3,'g') grid pause figure (2) m2=1: 1: mn;m2=m2'; Kp1=Kp1(1: mn,1);Ti=Ti(1: mn,1);Td=Td(1: mn,1); plot(m2,Kp1,'r',m2,Ti,'B',m2,Td,'g') grid functionresulta=suba(j) globalRI9L1L2L3xp1p2p3 globalKpE1F1G1E5F5G5m globalK1T4T5 K1=x(1,j); T4=x(2,j); T5=x(3,j); x1=0;x2=0;x3=0;x4=0;x6=0; w1=0;w2=0;w4=0;w5=0;u5=0; t=0;F=0; T6=L1*L2; fori1=1: L3 x5=R-x6; x3=x3+K1*(x5-w5+T6*x5/T4+T5*(x5-2*w5+u5)/T6); u5=w5;w5=x5; fori2=1: L2 x0=R-1.414*x1-x2; u2=x1;u4=x4; v1=(x0-w1)/L1; x1=E1*x1+F1*x0+G1*v1; w1=x0; v2=(u2-w2)/L1; x2=E1*x2+F1*u2+G1*v2; w2=u2; v3=(u4-w4)/L1; x4=E1*x4+F1*x3; x6=E5*x6+F5*u4+G5*v3; w4=u4; x7=x2-x6; t=t+L1; F=F+x7*x7*L1; ifI9==1 m=m+1; p1(m,1)=x2; p2(m,1)=x6; p3(m,1)=x7; end end end resulta=F; 程序运行后,绘制出受控对象和参考模型的输出及两者间的误差曲线如图10.3,控制器的三个参数(Kp,TI,Td)的变化曲线如图10.4所示,图中可以看到,经过一段时间的调整(kd,TI,Td自动调整)后,受控对象输出能很好地接近参考模型的输出。 图10.3受控对象和参考模型的输出图10.4Kp,TI,Td的变化曲线 及两者间的误差曲线 读者可以改变系统的某些参数(如让程序中的ka=1或ka=3等)后再运行程序观看仿真结果。 10.2自校正控制 自校正控制技术特别适宜用于结构已知而参数未知但恒定或缓慢变化的随机系统。 由于大多数工业对象正好具有这种特征,因此,自校正控制技术在工业控制过程中得到了广泛的应用。 10.2.1自校正控制系统的基本结构 图10.5自校正控制系统的典型结构 与模型参考自适应控制系统一样,自校正控制系统也由两个环路组成,典型结构如图10.5所示。 内
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 模型 参考 自适应 控制