7. 滑模控制

7.1 滑动曲面

考虑单输入动态系统

x(n)=f(x,x˙,⋯ ,x(n−1),t)+b(x,x˙,⋯ ,x(n−1),t)u(7.1)x^{(n)}=f(x,\dot{x},\cdots ,x^{(n-1)},t)+b(x,\dot{x},\cdots ,x^{(n-1)},t)u \tag{7.1}

其中标量xx是我们所感兴趣的输出,标量uu是控制输入。

  • 在方程(7.1)中函数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)已知)
  • 类似地,控制增益bb不精确知道,但其符号已知且其范围受一个连续函数界定。
  • 现在的控制问题是在​ff​和​bb​具有建模不精确性的情况下,使状态​xx​跟踪特定的时变状态​xd=[xd,x˙d,⋯ ,xdn−1]Tx_d=[x_d,\dot{x}_d,\cdots,x_d^{n-1}]^T​。

7.1.1 记号简化

跟踪误差x~\tilde{\boldsymbol{x}}

x~=x−xd=[x~,x~˙,⋯ ,x~(n−1)]T\tilde{\boldsymbol{x}}=\boldsymbol{x}-\boldsymbol{x}_d=[\tilde{x},\dot{\tilde{x}},\cdots,\tilde{x}^{(n-1)}]^T

选取中间变量ss,要求

  • s˙\dot{s}包含uu
  • s→0⇒x~(t)→0s \rightarrow 0 \Rightarrow \tilde{x}(t)\rightarrow 0

跟踪​nn​维向量​xd\boldsymbol{x}_d​的问题能够有效地被用s表示的一阶镇定问题取代。

e.g. n=2n=2,系统

x¨=f+u\ddot{x}=f+u

选择s

s=x~˙+λx~s=\dot{\tilde{x}}+\lambda \tilde{x}

  • 验证条件s˙=x¨−x¨d+λx~˙=f+u−x¨d+λx~˙\dot{s}= \ddot{x}-\ddot{x}_d+\lambda \dot{\tilde{x}}=f+u-\ddot{x}_d+\lambda \dot{\tilde{x}}。s˙\dot{s}包含uu
  • 对于方程x~˙+λx~=s\dot{\tilde{x}}+\lambda \tilde{x}=s,可以看成输入ss,输出x~\tilde{x}的低通滤波器

‍

1

滑动曲面是相平面上斜率为一λ,并包含时变点xd=[xd,x˙d]Tx_d=[x_d,\dot{x}_d]^T的一条直线。从任何一点开始,状态轨线都可在小于∣s(t=0)∣η\frac{\left | s(t=0) \right |}{\eta }的有限时间内到达时变曲面,然后沿曲面以时间常数1/λ指数滑动到xdx_d。
2
n=nn=n时,选择s

s=(ddt+λ)n−1x~(7.2)s=(\frac{\mathrm{d} }{\mathrm{d} t}+\lambda )^{n-1} \tilde{x} \tag{7.2}

  • 验证条件s˙\dot{s}包含uu
  • 输入ss,输出x~\tilde{x}的低通滤波器
    3

进一步地,s的界可直接转换成跟踪误差向量x的界限,因此标量s是跟踪性能的真实度量。

∣s∣⩽Φ  as  t→∞\left | s \right |\leqslant \Phi ~~as~~t\rightarrow \infty

若n=2n=2

x~(t)=Effect of Initial Condition+∫0te−λ(t−r)s(r)dr\tilde{x}(t)=\text{Effect of Initial Condition}+\int_{0}^{t}e^{-\lambda (t-r)}s(r)\mathrm{d}r

第一项趋近于0,因为λ>0\lambda>0。第二项

∣∫0te−λ(t−r)s(r)dr∣⩽∫0t∣e−λ(t−r)s(r)dr∣⩽Φ∫0te−λ(t−r)dr⩽Φλ\left | \int_{0}^{t}e^{-\lambda (t-r)}s(r)\mathrm{d}r \right |\leqslant \int_{0}^{t}\left | e^{-\lambda (t-r)}s(r)\mathrm{d}r \right |\leqslant\Phi \int_{0}^{t}e^{-\lambda (t-r)}\mathrm{d}r \leqslant \frac{\Phi }{\lambda }

若n=nn=n时,∣x~∣⩽Φλn−1\left | \tilde{x} \right |\leqslant \frac{\Phi }{\lambda ^{n-1}}

  • 由式(7.2)可知ss仅是位置误差和速度误差的加权和
  • 跟踪x≡xd\boldsymbol{x}\equiv \boldsymbol{x}_d的问题即等价于当t>0t>0时轨线必须停留在曲面s(t)s(t)上;跟踪​nn​维向量​xd\boldsymbol{x}_d​的问题可简化为使标量​ss​恒为零的问题。
    现在可通过选择式(7.1)中的控制uu,使得在曲面 s(t)s(t)之外满足

12ddts2⩽−η∣s∣(7.3)\frac{1}{2}\frac{\mathrm{d} }{\mathrm{d} t}s^2\leqslant -\eta \left | s \right | \tag{7.3}

以得到使得s恒为零的简化的一阶问题,其中η是正常数。

  • 本质上,式(7.3)表达的是以s²为度量到曲面的平方"距离"沿所有系统轨线减小。因此这就使轨线趋于曲面​s(t)s(t)。轨线一旦进入曲面就将一直停留在该曲面上。换句话说,系统轨线满足式(7.3),即滑动条件,使曲面成为一个不变集。
  • 此外,式(7.3)表明在有一些干扰和系统不确定时,仍然保持曲面是个不变集。不在曲面上的轨线仍然能指向着曲面运动。满足式(7.3)的曲面s(t)s(t)称为滑动曲面,且系统性态一旦在曲面就被称为滑动形态或者滑动模。
    4
  • 最后,满足式(7.3)的条件保证了即使x(t=0)\boldsymbol{x}(t=0)偏离了xd(t=0)\boldsymbol{x}_d(t=0)时,系统轨线仍然能在小于∣s(t=0)∣η\frac{\left | s(t=0) \right |}{\eta }的有限时间内到达曲面s(t)s(t)。

12ddts2⩽−η∣s∣⇒s⋅s˙⩽−η∣s∣⇒s˙⩽−η(s>0)\frac{1}{2}\frac{\mathrm{d} }{\mathrm{d} t}s^2\leqslant -\eta \left | s \right | \Rightarrow s \cdot \dot{s}\leqslant -\eta \left | s \right | \Rightarrow \dot{s}\leqslant -\eta (s>0)

e.g. 系统

x¨+α(t)x˙2cos(3x)=u\ddot{x}+\alpha (t)\dot{x}^2cos(3x)=u

其中,α(t)\alpha (t)未知,但是满足1⩽α(t)⩽21\leqslant \alpha (t)\leqslant 2

选择f^=−1.5x˙2cos(3x),F=0.5x˙2∣cos(3x)∣\hat{f}=-1.5\dot{x}^2cos(3x),F=0.5\dot{x}^2\left |cos(3x) \right |

选择s

s=x~˙+λx~s=\dot{\tilde{x}}+\lambda \tilde{x}

则

s˙=x¨−x¨d+λx~˙=f+u−x¨d+λx~˙\dot{s}= \ddot{x}-\ddot{x}_d+\lambda \dot{\tilde{x}}=f+u-\ddot{x}_d+\lambda \dot{\tilde{x}}

使得s˙=0\dot{s}=0一个连续控制规律的最好逼近u^\hat{u}为

u^=−f+x¨d−λx~˙\hat{u}=-f+\ddot{x}_d-\lambda \dot{\tilde{x}}

此时u=u^,s˙=f−f^u=\hat{u},\dot{s}=f-\hat{f}

不管动态f的不确定性,为了满足滑动条件(7.3),在穿越曲面s=0s=0时,在u^\hat{u}上加上一不连续项,即

u=u^−k sgn(s)u=\hat{u}-k~sgn(s)

其中,sgn是符号函数

sgn(s)=+1,s>0sgn(s)=−1,s<0\begin{align*} &sgn(s)= +1, s>0\\ &sgn(s)=-1, s<0 \end{align*}

考虑滑动条件(7.3)

12ddts2=s⋅s˙=[f−f^−k sgn(s)]s=(f−f^)s−k∣s∣\frac{1}{2}\frac{\mathrm{d} }{\mathrm{d} t}s^2=s \cdot \dot{s}=[f-\hat{f}-k~sgn(s)]s=(f-\hat{f})s-k\left | s \right |

因此,取

k=F+ηk =F+\eta

从而满足

12ddts2⩽−η∣s∣\frac{1}{2}\frac{\mathrm{d} }{\mathrm{d} t}s^2\leqslant -\eta \left | s \right |

故取uu

u=1.5x˙2cos(3x)+x¨d−λ⏟u^x~˙−(0.5x˙2∣cos(3x)∣+η⏟k) sgn(x~˙+λx~⏟s)u=\underbrace{1.5\dot{x}^2cos(3x)+\ddot{x}_d-\lambda}_{\hat{u}} \dot{\tilde{x}}-(\underbrace{0.5\dot{x}^2\left |cos(3x) \right |+\eta}_{k})~sgn(\underbrace{\dot{\tilde{x}}+\lambda \tilde{x}}_s)

总结

  • 方程(7.2)和(7.3)的思想就是挑选跟踪误差的一个有好性态的函数(它就是s)。然后忽略模型不确定性和干扰,选择(7.1)中的反馈控制规律uu使得s²是闭环系统的类李雅谐诺夫函数。
  • 控制器设计包括两个步骤。第一个步骤,选择反馈控制规律u使得滑动条件(7.3)成立。
    当然,考虑到模型不准确和干扰的存在,控制规律在穿过s(t)s(t)时必须是不连续的。由于相应控制切换的实现必然是非理想的(例如,在实际中切换不是瞬间的,且s的值不可能无限精确),这就导致了颤振。
    在实际中颤振是不希望的,因为它需要高的控制功率,并且可能进一步激发在建模中被忽略的高频动态(例如未建模的结构模态、被忽略的时滞等)。
  • 因此,在第7.2节中将要详细讨论的第二个步骤中,不连续控制规律​uu​将会被适当平滑以得到控制带宽和跟踪精确度之间的最佳权衡:第一步考虑的是参数不确定性,而第二步得到高频未建模动态的鲁棒性。

5

参考

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

‍