自适应控制
- 自适应控制所讨论的对象,一般是指对象的结构已知,仅仅是参数未知,而且采用的控制方法仍是基于数学模型的方法
- 但实践中我们还会遇到结构和参数都未知的对象,比如一些运行机理特别复杂,目前尚未被人们充分理解的对象,不可能建立有效的数学模型,因而无法沿用基于数学模型的方法解决其控制问题,这时需要借助人工智能学科,也就是智能控制
- 自适应控制与常规的控制与最优控制一样,是一种基于数学模型的控制方法
- 自适应控制所依据的关于模型的和扰动的先验知识比较少,需要在系统的运行过程中不断提取有关模型的信息,使模型愈来愈准确
- 常规的反馈控制具有一定的鲁棒性,但是由于控制器参数是固定的,当不确定性很大时,系统的性能会大幅下降,甚至失稳
设计思路
问题的提出
对于一个非线性系统
x ˙ = − a x 2 + u \dot{x} =-ax^{2}+u x˙=−ax2+u
a a a是未知参数, u u u是控制输入
要求设计一个合理的控制信号 u u u,使得系统状态 x ( t ) x( t) x(t)跟踪上期望信号 x d ( t ) x_{d}( t) xd(t),假设 x d ( t ) x_{d}( t) xd(t)是解析并有界的,且其微分 x ˙ d ( t ) \dot{x}_{d}( t) x˙d(t)也是连续且有界的,这个假设在实际中可以满足,因为跟踪信号往往是认为设计的
解决思路
对于现代控制理论,正如前面所述,设计控制信号实际上是设计误差动力学系统,因此,设误差信号 e ( t ) = x ( t ) − x d ( t ) e( t) =x( t) -x_{d}( t) e(t)=x(t)−xd(t),则误差的动力学系统方程为
e ˙ ( t ) = − a x 2 ( t ) + u − x ˙ d ( t ) \dot{e}( t) =-ax^{2}( t) +u-\dot{x}_{d}( t) e˙(t)=−ax2(t)+u−x˙d(t) ----------- (1)
由于原系统是满足matching条件的,即控制信号和未知参数处于一个方程中,那么根据等价确定性原则(certainty equivalence, CE)设计控制器
u = a ^ x 2 + x ˙ d − K e u=\hat{a} x^{2} +\dot{x}_{d} -Ke u=a^x2+x˙d−Ke ----------- (2)
a ^ \hat{a} a^是参数 a a a的估计值
K > 0 K>0 K>0是控制器参数
接下来需要设计估计参数
a
^
\hat{a}
a^的更新律,这里采用结合Lyapunov稳定性进行设计
假设
a
~
=
a
^
−
a
\tilde{a} =\hat{a} -a
a~=a^−a,将控制
u
u
u代入(1),则(1)可以写成
e ˙ ( t ) = a ~ x 2 ( t ) − K e ( t ) \dot{e}( t) =\tilde{a} x^{2}( t) -Ke( t) e˙(t)=a~x2(t)−Ke(t) ----------- (3)
定义Lyapunov函数
V ( e , a ~ ) = 1 2 e 2 + 1 2 η a ~ 2 V\left( e,\tilde{a}\right) =\dfrac{1}{2} e^{2} +\dfrac{1}{2\eta }\tilde{a}^{2} V(e,a~)=21e2+2η1a~2 ----------- (4)
求导,得
V ˙ ( e , a ~ ) = e e ˙ + 1 η a ~ ⋅ a ~ ˙ = e e ˙ + 1 η a ~ ⋅ a ^ ˙ \dot{V}\left( e,\tilde{a}\right) =e\dot{e} +\dfrac{1}{\eta }\tilde{a} \cdot \dot{\tilde{a}} =e\dot{e} +\dfrac{1}{\eta }\tilde{a} \cdot \dot{\hat{a}} V˙(e,a~)=ee˙+η1a~⋅a~˙=ee˙+η1a~⋅a^˙
= e ( a ~ x 2 − K e ) + 1 η a ~ ⋅ a ^ ˙ = − K e 2 + a ~ ( e x 2 + 1 η a ^ ˙ ) \ \ \ \ \ \ \ \ \ \ \ =e\left(\tilde{a} x^{2} -Ke\right) +\dfrac{1}{\eta }\tilde{a} \cdot \dot{\hat{a}} =-Ke^{2} +\tilde{a}\left( ex^{2} +\dfrac{1}{\eta }\dot{\hat{a}}\right) =e(a~x2−Ke)+η1a~⋅a^˙=−Ke2+a~(ex2+η1a^˙)
为了达到系统的稳定,则要使得 V ˙ ≤ 0 \dot{V}\leq 0 V˙≤0,因此,设计 a ^ \hat{a} a^的更新律为
a ^ ˙ = − η ⋅ e ⋅ x 2 \dot{\hat{a}} =-\eta \cdot e\cdot x^{2} a^˙=−η⋅e⋅x2 ----------- (5)
代入,得到
V ˙ ( e , a ~ ) ≤ 0 \dot{V}\left( e,\tilde{a}\right) \leq 0 V˙(e,a~)≤0 ----------- (6)
由(4),(6)的positive definite特性可以确定(4)是一个合理的Lyapunov函数,由(6)可知(4)有界,即
e
e
e和
a
~
\tilde{a}
a~也有界,且
e
e
e平方可积。根据期望信号
x
d
x_{d}
xd的假设,以及参数误差和跟踪误差的定义可知,
x
x
x与
a
^
\hat{a}
a^也是有界的,因此由(2)得到的控制
u
u
u也是有界的,且由(1)得到
e
˙
(
t
)
\dot{e}( t)
e˙(t)也有界。
由Barbalat’s Lemma可得
e
˙
(
t
)
\dot{e}( t)
e˙(t)uniformly continuous且
lim t → ∞ e ( t ) = 0 \lim _{t\rightarrow \infty } e( t) =0 limt→∞e(t)=0
由此可以得到系统渐进稳定,但是我们此时只是得到了系统的跟踪误差渐进收敛到0,但是参数的估计误差并没有收敛到0,因为我们设计参数的更新律时,是从系统的角度来设计的。
综合,整体思路为,先求出对期望信号 x d ( t ) x_{d}( t) xd(t)跟踪误差的误差动态方程;根据等价确定性原则(certainty equivalence, CE)设计控制器 u ( t ) u(t) u(t),包含耦合抵消项和线性负反馈项两项组成,其中的未知参数用其参数估计值代替;然后设计Lyapunov函数,求导得出参数估计更新律;最后在保证Lyapunov函数导数非正的情况下,根据Barbalat引理得出跟踪误差渐近收敛得结论
存在的问题
参数估计的更新律中,并没有包含参数估计误差的负反馈,而是与跟踪误差直接耦合在一起 a ^ ˙ = − η ⋅ e ⋅ x 2 \dot{\hat{a}} =-\eta \cdot e\cdot x^{2} a^˙=−η⋅e⋅x2,结果导致跟踪误差影响参数估计的过程,而参数估计在控制器中直接影响跟踪误差,两者的直接耦合造成了系统闭环性能的下降
改进
解决办法就是浸入与不变(Immersion and Invariance, I&I)理论。通过引入关于状态的修正项,从而间接将未知参数引入到参数估计动态当中
我们需要人为设计估计误差的动态特性,此时
u
u
u是已知量,对于这个问题不同于控制系统的设计在于,我们并不知道
z
z
z的具体值,因为我们队最终参数
θ
\theta
θ是未知的,所以我们只能利用已经存在的动态结构,最大可能的构造利于证明收敛的自适应律,也就是
θ
^
˙
\dot{\hat{\theta }}
θ^˙,相当于控制系统设计中的
u
u
u
对于,
z
˙
=
−
∂
β
∂
x
⋅
x
2
⋅
z
\dot{z} =-\dfrac{\partial \beta }{\partial x} \cdot x^{2} \cdot z
z˙=−∂x∂β⋅x2⋅z,我们需要构造Lyapunov函数,设计
β
(
x
)
\beta ( x)
β(x),从而证明了参数收敛的稳定性。
总结
两种设计方法只不过是将自适应律的设计问题的转化了而已,原先的自适应律的设计是直接根据整个系统的Lyapunov进行设计,改进的方法是建立参数的动态模型,并根据此系统的Lyapunov进行设计