滑模控制

滑模控制是通过将相空间分块的方式实现分段非线性控制的控制方法。

相图

对于微分方程

dxdt=f(x)\frac{\mathrm{d} \mathbf{x}}{\mathrm{d} t} = f(\mathbf{x})

f(x)f(\mathbf{x}) 只通过 x\mathbf{x}tt 相关而不直接相关,这样的微分方程称为自洽微分方程, 同时保证,在一个初值下,自洽微分方程的解是存在且唯一的

微分方程的解为 $x = \phi(t,x_0) $, 即从初值 x0x_0 出发的解。

我们可以证明: 对于方程的解 ϕ(t,x0)\phi(t,x_0), ϕ(t+c,x0)\phi(t+c,x_0) 仍然是方程的解,即解是 tt 无关的

方程的解集

D={xDx=ϕ(t,x0),tJ}D = \left\{\mathbf{x}\in D\big| \mathbf{x} = \phi(t,\mathbf{x}_0), t\in J\right\}

称为方程的相空间,解曲线 xi=ϕ(t,x0)\mathbf{x}_i = \phi(t,\mathbf{x}_0) 实际是 tJRxDRnt\in J\subset \mathbb{R} \to \mathbf{x} \in D\subset \mathbb{R}^n 的一条曲线,曲线在相空间DD 上的投影称为相轨迹

trajectory

二阶系统滑模控制

考虑二阶系统,其闭环传递函数为

Φ(s)=αs2+βs+α\Phi(s) = \frac{\alpha}{s^2+\beta s+\alpha}

对应的微分方程为

c¨+βc˙+αc=αr\ddot{c} + \beta \dot{c} + \alpha c = \alpha r

sys

ee为误差函数,定义为 e=rce = r-c

考虑常值输入,此时有

αe=α(rc)=e¨βe˙\begin{aligned} \alpha e & = \alpha (r-c) = -\ddot{e} - \beta\dot{e} \end{aligned}

因此原系统可以化为关于误差的零输入二阶系统

e¨+βe˙+αe=0\ddot{e} + \beta\dot{e} +\alpha e = 0

特征方程根

λ1=β+β24α2,λ2=ββ24α2\lambda_1 = \frac{-\beta + \sqrt{\beta^2-4\alpha}}{2}, \lambda_2 = \frac{-\beta - \sqrt{\beta^2-4\alpha}}{2}

对于方程

e¨(λ1+λ2)e˙+λ1λ2e=0\ddot{e} -(\lambda_1+\lambda_2)\dot{e} + \lambda_1\lambda_2 e = 0

写为

[e˙e]=[λ1+λ2λ1λ210][e˙e]\begin{bmatrix} \dot e\\ e \end{bmatrix}' = \begin{bmatrix} \lambda_1+\lambda_2 & \lambda_1\lambda_2\\ 1&0 \end{bmatrix} \begin{bmatrix} \dot e\\ e \end{bmatrix}

因此对于 X=[e˙e]\displaystyle X = \begin{bmatrix}\dot e\\ e\end{bmatrix}, 有

dXdt=AX\frac{\mathrm{d} X}{\mathrm{d} t} = A X

特征值为 λ1,λ2\lambda_1,\lambda_2

这个方程的相曲线即为当前零输入误差二阶系统的相曲线。

由于

de2=2ee˙\mathrm{d} e^{2} = 2e\dot e

因此当e˙,e\dot{e}, e图的相曲线收敛到0时,表示 e0\|e\| \to 0 且不在变化,说明此时系统稳定。同时,当 ee˙<0e\dot{e} <0 时, 系统的误差在下降。

去掉中间的负反馈通路 β\beta ,将二阶系统改为前向通路中存在一个-1的开关

  • 当开关处于1的时候,闭环传递函数为

Φ(s)=αs2+α\Phi(s) = \frac{\alpha}{s^2+\alpha}

  • 当开关处于2当时候,闭环传递函数为

Φ(s)=αs2α\Phi(s) = -\frac{\alpha}{s^2-\alpha}

sliding

这两种状态单独存在的时候,两个系统都无法渐进稳定,但是通过某种切换策略,在两个系统之间有限次转换,就可以实现相轨迹趋向于原点。

其中发散模量

A=e˙0+αe02λ=s02αA = \frac{\dot e_0 +\sqrt{\alpha} e_0}{2\lambda} = \frac{s_0}{2\sqrt \alpha}

Switch 2的稳定特征线为 $ \dot e+ \sqrt{\alpha} e = 0$, 此时方程通解的发散模项为0

s>0s>0 是向正向发散,当s<0s<0的时候会将幅值先向0调整后再负向发散。因此,当 e>0,s<0e> 0,s<0 或者 $e<0, s>0 $ 时, 发散项的贡献都是将误差向靠近0的收敛。

es>0es>0 时,切换为Switch 1, 此时特征根为两个共轭纯虚根,因此对于轨迹的贡献为旋转贡献。

因此以e(e˙+αe)=0e(\dot e +\sqrt \alpha e ) = 0 作为滑模面进行滑模控制

通常使用开关函数进行开关的切换

sgn(s)={1s01s<0\mathrm{sgn}(s) =\begin{dcases} 1& s\geq 0\\ -1 & s<0 \end{dcases}

实际使用时,会设计一个饱和边界层γ\gamma , 使用连续的函数替换开关函数,比如

Sat(x)={1x1xx(1,1)1x1\mathrm{Sat}\left(x\right) = \begin{dcases} 1 & x\geq 1\\ x & x\in (-1,1)\\ -1 & x\leq -1 \end{dcases}

或者

tanh(x)=exexex+ex\tanh (x) = \frac{e^{x}-e^{-x}}{e^{x}+e^{-x}}

用于实现跳变的连续化与光滑化。使用 Sat(sγ)\mathrm{Sat}\left(\dfrac{s}{\gamma}\right) 或者 tanh(sγ)\tanh\left(\dfrac{s}{\gamma}\right) 进行跳变,能将变化区域大致限制在饱和区 [γ,γ][-\gamma,\gamma]

对于 nn 阶高阶系统,滑模面是子空间内的超曲面

s=s(x1,,xm)s = s(x_1,\cdots, x_m)

需要更加复杂的切换逻辑