回顾上节

对于系统

x(n)=f(x,t)+b(x,t)ux^{(n)}=f(\boldsymbol{x},t)+b(\boldsymbol{x},t)u

  • 函数ff(通常是非线性的)不是精确已知,但ff不精确性范围的上界是一个已知连续函数。(f^(x,t)f(x,t)F(x,t)\left | \hat{f}(\boldsymbol{x},t)-f(\boldsymbol{x},t) \right |\leqslant F(\boldsymbol{x},t),其中f^(x,t)\hat{f}(\boldsymbol{x},t)F(x,t)F(\boldsymbol{x},t)已知)

  • 跟踪误差x~=xxd\tilde{\boldsymbol{x}}=\boldsymbol{x}-\boldsymbol{x}_d

  • 选取中间变量ss,要求

    {s˙包含us0x(t)0\begin{cases}\dot{s}\text{包含}u\\ s \rightarrow 0 \Rightarrow \boldsymbol{x}(t)\rightarrow 0\\ \end{cases}

  • u=u^k sgn(s)u=\hat{u}-k~sgn(s)k=F+ηk=F+\eta replace by u=u^(kΦ˙) sat(sΦ)u=\hat{u}-(k-\dot{\Phi})~sat(\frac{s}{\Phi}) ​ boundary layer interpolation

8. 自适应控制

Adaptive Control:how to exploit the fact that part of the uncertainty of f(x,t) can be described simply as unknown constants ?
Basically can we make the system work as if the unknown constants we’ve known?

e.g. 摆(pendulum)

1

动力学方程

Jx¨+bx˙x˙+mglsinx=uJ\ddot{x}+b\dot{x}\left | \dot{x} \right |+mglsinx=u

其中 令a1=J,a2=b,a3=mgla_1=J,a_2=b,a_3= mgl。则a1,a2,a3a_1,a_2,a_3均为未知数

选择中间变量s=x~˙+λx~=x˙x˙rs=\dot{\tilde{x}}+\lambda \tilde{x}=\dot{x}-\dot{x}_r,其中x˙r=x˙dλx~,x¨r=x¨dλx~˙\dot{x}_r= \dot{x}_d-\lambda \tilde{x},\ddot{x}_r= \ddot{x}_d-\lambda \dot{\tilde{x}}

选取李雅普诺夫函数

V=12Js2(8.1)V=\frac{1}{2}Js^2 \tag{8.1}

计算其微分V˙=Js˙s\dot{V}=J\dot{s}\cdot s

下面计算Js˙J\dot{s}

Js˙=J(x¨x¨r)=uJx¨rbx˙x˙mglsinx=uya\begin{align*} J\dot{s}&=J(\ddot{x}-\ddot{x}_r)\\ &=u-J\ddot{x}_r-b\dot{x}\left | \dot{x} \right |-mglsinx\\ &=u-\boldsymbol{y}\boldsymbol{a} \end{align*}

其中y=[x¨r  x˙x˙  sinx]\boldsymbol{y}=[\ddot{x}_r ~~\dot{x}\left |\dot{x} \right |~~sinx ]为已知向量,a=[J  b  mgl]T\boldsymbol{a}=[J~~b~~mgl]^T未知向量

V˙=Js˙s=s(uya)(8.2)\dot{V}=J\dot{s}\cdot s=s(u-\boldsymbol{y}\boldsymbol{a}) \tag{8.2}

  1. 假设存在一时刻向量a\boldsymbol{a}已知,取u=yaksu=\boldsymbol{y}\boldsymbol{a}-ks,则

    V˙=ks2\dot{V}=-ks^2

    其中k是正常数

    根据Barbalat引理

    V˙0s0x~0,x~˙0\dot{V} \rightarrow 0 \Rightarrow s \rightarrow 0 \Rightarrow \tilde{x} \rightarrow0,\dot{ \tilde{x}} \rightarrow 0

  2. 下面考虑向量a\boldsymbol{a}未知

    选择控制律(control law)

    u=ya^ks(8.3)u=\boldsymbol{y}\hat{\boldsymbol{a}}-ks \tag{8.3}

    其中a~=a^a\tilde{a}=\hat{a}-a,此时V˙=ks2+sya~\dot{V}=-ks^2+s\boldsymbol{y}\tilde{\boldsymbol{a}}

    为了将后项sya~s\boldsymbol{y}\tilde{\boldsymbol{a}}去掉,保证V˙\dot{V}半负定,在李雅普诺夫函数中加项

    V=12Js2+12a~TP1a~(8.4)V=\frac{1}{2}Js^2+\frac{1}{2}\boldsymbol{\tilde{a}}^T\boldsymbol{P}^{-1}\boldsymbol{\tilde{a}} \tag{8.4}

    其中P\boldsymbol{P}是恒定对称正定矩阵

    ddt(12a~TP1a~)=12a~˙TP1a~+12a~TP1a~˙=a~˙TP1a~=a^˙TP1a~V˙=ks2+sya~+a^˙TP1a~=0\begin{align*} &\frac{\mathrm{d} }{\mathrm{d} t}(\frac{1}{2}\boldsymbol{\tilde{a}}^T\boldsymbol{P}^{-1}\boldsymbol{\tilde{a}})\\ =&\frac{1}{2}\boldsymbol{\dot{\tilde{a}}}^T\boldsymbol{P}^{-1}\boldsymbol{\tilde{a}}+\frac{1}{2}\boldsymbol{\tilde{a}}^T\boldsymbol{P}^{-1}\boldsymbol{\dot{\tilde{a}}}\\ =&\boldsymbol{\dot{\tilde{a}}}^T\boldsymbol{P}^{-1}\boldsymbol{\tilde{a}}=\boldsymbol{\dot{\hat{a}}}^T\boldsymbol{P}^{-1}\boldsymbol{\tilde{a}}\\ \Rightarrow \dot{V}=&-ks^2+\underbrace{s\boldsymbol{y}\tilde{\boldsymbol{a}}+\boldsymbol{\dot{\hat{a}}}^T\boldsymbol{P}^{-1}\boldsymbol{\tilde{a}}}_{=0} \end{align*}

    所以

    sya~+a^˙TP1a~=(sy+a^˙TP1)a~=0s\boldsymbol{y}\tilde{\boldsymbol{a}}+\boldsymbol{\dot{\hat{a}}}^T\boldsymbol{P}^{-1}\boldsymbol{\tilde{a}} = (s\boldsymbol{y}+\boldsymbol{\dot{\hat{a}}}^T\boldsymbol{P}^{-1})\boldsymbol{\tilde{a}}=0

    adaptation law

    a^˙=PyTs(8.5)\boldsymbol{\dot{\hat{a}}}= -\boldsymbol{P}\boldsymbol{y}^Ts \tag{8.5}

    所以可将control law进一步写成

    u=ksyPyTs dtu=-ks-\boldsymbol{y}\int \boldsymbol{P}\boldsymbol{y}^Ts ~dt

小结

control  law:u=ya^ksadatation  law:a^˙=PyTs\begin{align*} control ~~law:u=\boldsymbol{y}\hat{\boldsymbol{a}}-ks\\ adatation~~law:\boldsymbol{\dot{\hat{a}}}= -\boldsymbol{P}\boldsymbol{y}^Ts\\ \end{align*}

延深

a^\hat{\boldsymbol{a}}是否收敛到aa?

Adaptation is on a need-to-know basis(sufficient richness)

我们知道s0s \rightarrow0,可以验证s˙0\dot{s} \rightarrow0(s¨ bounded\ddot{s} ~bounded)

{Js˙=uyau=ya^ksJs˙+ks=ya~\begin{cases}J\dot{s}=u-\boldsymbol{y}\boldsymbol{a} \\ u=\boldsymbol{y}\boldsymbol{\hat{a}}-ks\\ \end{cases} \Rightarrow J\dot{s}+ks=\boldsymbol{y}\boldsymbol{\tilde{a}}

ya~0\boldsymbol{y}\boldsymbol{\tilde{a}} \rightarrow 0yda~0\boldsymbol{y}_d\boldsymbol{\tilde{a}} \rightarrow 0

yda~2=0a~TydTyda~=0\left \| \boldsymbol{y}_d\boldsymbol{\tilde{a}} \right \|^2=0 \Leftrightarrow \boldsymbol{\tilde{a}} ^T \boldsymbol{y}_d^T \boldsymbol{y}_d \boldsymbol{\tilde{a}}=0

其中ydTyd\boldsymbol{y}_d^T \boldsymbol{y}_d正半定矩阵(rank = 1),不是正定矩阵。故方程解不唯一,a~\boldsymbol{\tilde{a}}不一定为0,即a^\hat{\boldsymbol{a}}不一定收敛到aa
a^a\hat{\boldsymbol{a}} \rightarrow \boldsymbol{a}

t00,T>0,α>0,tt0,1Ttt+TydTydαI\exists t_0 \geqslant 0,\exists T >0 ,\exists \alpha >0 ,\forall t\geqslant t_0,\frac{1}{T}\int_{t}^{t+T} \boldsymbol{y}_d^T \boldsymbol{y}_d \geqslant \alpha I

即在一个时间段平均值内ydTyd\boldsymbol{y}_d^T \boldsymbol{y}_d满秩。例:

13([100000000]+[000010000]+[000000001])=13I(rank=3)\frac{1}{3}(\begin{bmatrix} 1 &0 &0 \\ 0& 0& 0\\ 0& 0 & 0 \end{bmatrix} + \begin{bmatrix} 0 &0 &0 \\ 0& 1& 0\\ 0& 0 & 0 \end{bmatrix} + \begin{bmatrix} 0 &0 &0 \\ 0& 0& 0\\ 0& 0 & 1 \end{bmatrix}) =\frac{1}{3}I(rank =3)

参考

【1】Applied Nonlinear Control,Slotine and Li,Prentice-Hall 1991:Sections 8
【2】https://www.bilibili.com/video/BV1Tk4y167kR?p=8&vd_source=b1a52fdb6c7481b4e8c78d03e9a9acb0