模型参考自适应控制
- 格式:doc
- 大小:247.00 KB
- 文档页数:16
10.自适应控制
严格地说,实际过程中的控制对象自身及能所处的环境都是十分复杂的,其参数会由于种种外部与内部的原因而发生变化。如,化学反应过程中的参数随环境温度和湿度的变化而变化(外部原因),化学反应速度随催化剂活性的衰减而变慢(内部原因),等等。如果实际控制对象客观存在着较强的不确定,那么,前面所述的一些基于确定性模型参数来设计控制系统的方法是不适用的。
所谓自适应控制是对于系统无法预知的变化,能自动地不断使系统保持所希望的状态。因此,一个自适应控制系统,应能在其运行过程中,通过不断地测取系统的输入、状态、输出或性能参数,逐渐地了解和掌握对象,然后根据所获得的过程信息,按一定的设计方法,作出控制决策去修正控制器的结构,参数或控制作用,以便在某种意义下,使控制效果达到最优或近似更优。目前比较成熟的自适应控制可分为两大类:模型参考自适应控制(Model Reference Adaptive Control)和自校正控制(Self-Turning)。
10.1模型参考自适应控制
10.1.1模型参考自适应控制原理
模型参考自适应控制系统的基本结构与图10.1所示:
10.1模型参考自适应控制系统
它由两个环路组成,由控制器和受控对象组成内环,这一部分称之为可调系统,由参考模型和自适应机构组成外环。实际上,该系统是在常规的反馈控制回路上再附加一个参考模型和控制器参数的自动调节回路而形成。
在该系统中,参考模型的输出或状态相当于给定一个动态性能指标,(通常,参考模型是一个响应比较好的模型),目标信号同时加在可调系统与参考模型上,通过比较受控对象与参考模型的输出或状态来得到两者之间的误差信息,按照一定的规律(自适应律)来修正控制器的参数(参数自适应)或产生一个辅助输入信号(信号综合自适应),从而使受控制对象的输出尽可能地跟随参考模型的输出。
在这个系统,当受控制对象由于外界或自身的原因系统的特性发生变化时,将导致受控对象输出与参考模型输出间误差的增大。于是,系统的自适应机构再次发生作用调整控制器的参数,使得受控对象的输出再一次趋近于参考模型的输出(即与理想的希望输出相一致)。这就是参考模型自适应控制的基本工作原理。
模型参考自适应控制设计的核心问题是怎样决定和综合自适应律,有两类方法,一类为参数最优化方法,即利用优化方法寻找一组控制器的最优参数,使与系统有关的某个评价目标,如:J=⎰t
e2(t)dt,达到最小。另一类方法是基于稳
o
定性理论的方法,其基本思想是保证控制器参数自适应调节过程是稳定的。如基于Lyapunov稳定性理论的设计方法和基于Popov超稳定理论的方法。
系统设计举例
以下通过一个设计举例说明参数最优化设计方法的具体应用。
k,其中K可变,要例10.1设一受控系统的开环传递函数为W a(s)=
s
(+
)1
s
求用一参考模型自适应控制使系统得到较好的输出。
解:对于该系统,我们选其控制器为PID 控制器,而PID 控制器的参数由自适应机构来调节,参考模型选性能综合指标良好的一个二阶系统:
W m (d)=1
414.112++s s 自适应津决定的评价函数取
minJ =⎰t
0e 2(t)dt ,e(t)为参考模型输出与对象输出的误差。
由于评价函数不能写成PID 参数的解析函数形式,因此选用单纯形法做为寻优方法。(参见有关优化设计参考文献)。
在上述分析及考虑下,可将系统表示具体结构表示如下图10.2所示。
x7
x5 x3 x4 x6
PID 1/s 1
+s K
单纯形法寻优
图10.2 系统仿真结构图
为了进行数字仿真(连续系统离散相似法),图中的模型是采用典型环节(积分环节,惯性环节)型式表示。
对于图5-17所示系统,可写出各类环节的差数方程,其中,PID 控制器的差分方程为:
))]2()1(2)(()()1()([)1()(55555533-+--+⨯+--+-=k x k x k x T
T k x T T k x k x K k x k x d i p 式中,K p 为比例系数,T I 为积分时间常数,T d 为微分时间常数,它们是自适应津的调整参数,也是单纯形法的寻优参数。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
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;
for j=2:N+1
for i=1:N
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);