7. 滑模控制

7.1 滑动曲面

考虑单输入动态系统

x(n)=f(x,x˙,,x(n1),t)+b(x,x˙,,x(n1),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不精确知道,但其符号已知且其范围受一个连续函数界定。
  • 现在的控制问题是在ffbb具有建模不精确性的情况下使状态xx跟踪特定的时变状态xd=[xd,x˙d,,xdn1]Tx_d=[x_d,\dot{x}_d,\cdots,x_d^{n-1}]^T​。

7.1.1 记号简化

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

x~=xxd=[x~,x~˙,,x~(n1)]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
  • s0x~(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+ux¨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+λ)n1x~(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λ(tr)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λ(tr)s(r)dr0teλ(tr)s(r)drΦ0teλ(tr)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~Φλn1\left | \tilde{x} \right |\leqslant \frac{\Phi }{\lambda ^{n-1}}

  • 由式(7.2)可知ss仅是位置误差和速度误差的加权和
  • 跟踪xxd\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ηsss˙ηss˙η(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˙2cos(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+ux¨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˙=ff^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=ss˙=[ff^k sgn(s)]s=(ff^)sks\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˙2cos(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