滑膜控制器

滑模控制(SMC:sliding mode control)是一种相当简单而且控制性能优越的控制方法,但是绝大多数工程师在做过程控制时还是只考虑PID控制。笔者将以初学者的角度讨论滑膜控制器,并加以适当的工程实战进行检验

简介

滑模控制本质上是非线性控制的一种,简单的说,它的非线性表现为控制的不连续性,即系统的“结构”不固定(稳态是有振荡的),可以在动态过程中根据系统当前的状态有目的地不断变化,迫使系统按照预定“滑动模态”的状态轨迹运动。

它的控制效果优越体现在哪里呢?主要是两点:

1、滑动模态可以进行设计,调节的参数少,响应速度快。

2、对扰动不灵敏。什么是干扰?如果你的机器好端端地在工作,突然来了一个熊孩子拿起一钉锤就是一顿敲;或者工厂附近有高铁,每隔一段时间地面就要抖两下。滑模控制对扰动有很强的抑制能力,这对于在复杂环境工作下的机器来说非常友好。

常用趋近率

为了方便后续随时查询,笔者将趋近率放在了推导的前面。初读者可跳至下一节阅读完毕然后回头

  • 等速趋近率
    $$
    \dot{s} = -\epsilon\cdot \text{sign}(s), \epsilon\gt 0
    $$
  • 指数趋近率
    $$
    \dot{s} = -\epsilon\cdot \text{sign}(s)-p s; \epsilon,p\gt 0
    $$
  • 幂次趋近率
    $$
    \dot{s} = -\epsilon|s|^{\alpha}\cdot\text{sign}(s) \\
    \epsilon >0,1>\alpha>0
    $$
  • 一般趋近率
    $$
    \dot{s} = -\epsilon\cdot \text{sign}(s)-f(s)
    $$

原理分析

首先考虑一个非线性系统:

$$
\dot{x} = f(x) + u
$$

u是我们设计的控制器的对系统的作用量

$$
u = \dot{x_d}+K\cdot e +\rho \cdot \text{sgn}(e)
$$

注意这边的
$$
\rho = \rho(x)>f(x)
$$
是一个函数,值必须大于系统函数

则为了评估控制效果,我们引出误差量:

$$
e = x_d -x
$$

则易有:

$$
\dot{e} = \dot{x_d} -\dot{x}=\dot{x_d} - f(x) -u \\
\dot{e} = -f(x)-K\cdot e - \rho \cdot \text{sgn}(e)
$$

考虑一个函数:

$$
V(t) = V(e) = \frac{1}{2} e^2
$$

那么

$$
\dot{V}(e) = e\cdot \dot{e} \\
=e\cdot [\dot{x_d}-f(x)-u]
$$

代入u可得:

$$
\dot{V}(e) = e\cdot [-f(x)-K\cdot e -\rho \cdot \text{sgn}(e)] \\
= -e\cdot f(x)-K\cdot e^2 - \rho e\cdot \text{sgn}(e) \\
\le |e|\cdot|f(x)|-K\cdot e^2 - \rho e\cdot \text{sgn}(e) \\
\le |e|\cdot\rho-K\cdot e^2 - \rho e\cdot \text{sgn}(e) \\
\because e\cdot \text{sgn}(e) = |e| \\
\therefore \dot{V}(e) \le -K\cdot e^2 = -2K\cdot V(e)
$$

让我们使用一个非负项来把上不等式转为等式求解:

$$
\because S(t) \ge 0 \\
\therefore \dot{V}(e) + 2K\cdot V(e) \le 0 \\
\Rightarrow \dot{V}(e) + 2K\cdot V(e) +S(t) = 0
$$

求解这个一阶微分方程可得

$$
\frac{dV(e)}{dt} +2K\cdot V(e) = -S(t) \\
\Rightarrow V(t) = V(0)\cdot e^{-2Kt} - e^{-2Kt} \cdot \int^t_0 e^{2K\tau}S(\tau) d\tau
$$

观察上解最后一项,显然是恒正的,那么

$$
V(t) \le V(0)\cdot e^{-2Kt} \\
\Rightarrow \frac{1}{2}e^2(t) \le \frac{1}{2} e^2(0)\cdot e^{-2Kt}
$$

哦吼!🚀系统误差是以指数衰减的!!!

$$
|e(t)| \le |e(0)| \cdot e^{-Kt}
$$

滑膜控制的底层设计原理

上面推了那么一会儿得出了个不错的结论,这时回头一想,哎嘿🤔这东西从一开始就不对劲!为什么上面推导过程中能想到把u设成

$$
u = \dot{x_d}+K\cdot e +\rho \cdot \text{sgn}(e)
$$

以下内容皆为笔者个人学习理解,欢迎指正

稍加变换

$$
u = \dot{x_d} + \dot{e} \\
\dot{e} = K\cdot e +\rho \cdot \text{sgn}(e)
$$

是不是很眼熟?对🎉这就是趋近率(上面列出的指数趋近率,让我们先不讨论正负号问题)

OK,接下来加入另一个莫名其妙的点,为什么V(t)函数要设计成那样?让我们引入一个重要的家喻户晓的控制原理——Lyapunov函数:

$$
\begin{cases}
\lim_{|e|\to \infty} V = \infty \\
\dot{V} \lt 0, & e\not ={0}
\end{cases}
\Rightarrow \lim_{t\to \infty} e = 0
$$

意思就是只要一个函数V(e,t)在输入e无穷大的时候无穷大,e不为0的时候一阶导数总为负数,那么这个函数V经过一段时间必会收敛到0。

那么如果让我们寻找最简单最简单的V形式就是:

$$
V = \frac{1}{2} e^2
$$

因为太显然了嘛

$$
\Rightarrow \begin{cases}
\lim_{|e|\to \infty} \frac{1}{2} e^2 = \infty \\
\dot{V} = e\dot{e}
\end{cases}
$$

那随便找一个趋近率中最普通的等速趋近率

$$
\dot{e} = -\epsilon \cdot \text{sgn}(e) \\
\Rightarrow \dot{V} = e\dot{e} = -e\epsilon\cdot\text{sgn}(e) \lt 0
$$

太显然满足Lyapunov函数条件了,其他的趋近率随便一代进去都可以发现是符合要求的

“滑膜”怎么滑的

让我们找回一个前面原理分析时的公式

$$
\dot{e} = -f(x)-K\cdot e - \rho \cdot \text{sgn}(e)
$$

这时候就能看到相平面上的一条滑膜面

$$
\dot{e} = -K\cdot e
$$

让我们把它画出来,就像这样

SlidingMode

显然在滑膜面上的任意一点(比如C和E点)都会滑向O点;而面外的点,由于

$$
\rho = \rho(x)>f(x)
$$

所以由系统函数项和控制项组成的

$$
-f(x) - \rho \cdot \text{sgn}(e)
$$

必使得滑膜面外的状态(如A、B和D点)迅速滑至滑膜面上,然后收敛

说明:以上所有的分析中系统函数是一个普通函数,即SMC即可以用于线性也可以用于非线性系统

设计一个滑膜控制器

当然在实际设计中,是有其他实际指标要我们考虑的,比如收敛时间。让我们以一个例子来体现

假设现在有一个系统:

$$
\dot{x_1} = x_2 \\
\dot{x_2} = u
$$

设计滑膜面为:

$$
s = cx_1 + x_2 \\
\dot{s} = c\dot{x_1} + \dot{x_2} = cx_2 + u = -\epsilon\cdot \text{sgn}(s)
$$

控制器为:

$$
u = -cx_2 -\epsilon\cdot \text{sgn}(s)
$$

显然这样的一个滑膜控制器必是收敛的,但是注意Lyapunov函数是:

$$
\lim_{t\to\infty}s=0
$$

要是我们的系统通过100秒才收敛好,这是没意义的丫🌩因为我们的控制系统常常是要秒级甚至毫秒级的响应速度。所以我们需要改造升级,就改进一下Lyapunov函数第二个条件吧

$$
\dot{V} \le -\alpha V^{\frac{1}{2}}
$$

那么会有什么后果呢?

$$
\frac{dV}{dt}\le -\alpha V^{\frac{1}{2}}
\\ \Rightarrow
\int_0^t V^{-\frac{1}{2}} dV \le -\alpha t
\\
V(t)^{\frac{1}{2}}\le -\frac{1}{2}\alpha t +V^{\frac{1}{2}}(0)
$$

所以显然由开方的非负性可知系统有最长稳定时间

$$
\because 0\le V(t)^{\frac{1}{2}}
\\ \therefore
t_r = \frac{V^{\frac{1}{2}}(0)}{\frac{1}{2}\alpha}
$$

则我们可以对控制器参数进行合理调整:

$$
\begin{cases}
V = \frac{1}{2}s^2 \\
\dot{V} = s\dot{s} = -\epsilon s \cdot \text{sgn}(s) \\
\dot{V} \le -\alpha V^{\frac{1}{2}}
\end{cases}
\\ \Rightarrow
-\epsilon s \cdot \text{sgn}(s) \le -\alpha V^{\frac{1}{2}}=-\frac{\alpha s}{\sqrt{2}}
\\
\epsilon \ge \frac{\alpha}{\sqrt{2}}
$$

SMC抗干扰性能分析

假设上系统加入噪声项变为

$$
\dot{x_1} = x_2 \\
\dot{x_2} = u+d
$$

滑模设计和控制器设计不变

$$
s = cx_1+x_2
\\
u = -cx_2 -\epsilon\cdot \text{sgn}(s)
$$

但是

$$
\dot{s} = c\dot{x_1}+\dot{x_2} = cx_2+u+d
\\
= d-\epsilon\cdot \text{sgn}(s)
$$

则Lyapunov函数有

$$
\dot{V} = s\dot{s}=s(d-\epsilon\cdot \text{sgn}(s))
\\ \le -s\epsilon\cdot\text{sgn}(s)+sd
\\
=-|s|\cdot(\epsilon-L)
$$

L表示干扰的上界

考虑上面讨论的时间响应

$$
\dot{V} \le -\alpha V^{\frac{1}{2}} = -\alpha\frac{s}{\sqrt{2}}
$$

可联立求得:

$$
\epsilon > L +\frac{\alpha}{\sqrt{2}}
$$

理解:Lyapunov函数既满足有限时间收敛又负定,所以系统仍按照先滑动到滑模面,再沿滑模面做指数趋近运动。干扰没有对系统造成影响。

滑膜控制器平衡小车

努力更新中…

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2022-2023 RY.J
  • Visitors: | Views:

请我喝杯咖啡吧~

支付宝
微信