问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

【控制理论】深入理解鲁棒控制 | 滑模控制原理与应用实例解析

创作时间:
作者:
@小白创作中心

【控制理论】深入理解鲁棒控制 | 滑模控制原理与应用实例解析

引用
CSDN
1.
https://blog.csdn.net/weixin_51200029/article/details/142021886

导读:滑模控制(Sliding Mode Control,SMC)是一种重要的鲁棒控制方法,能够在面对模型不确定性、外部干扰和未建模动态时,保持系统的稳定性和期望性能。本文将从鲁棒控制的基本概念出发,深入解析滑模控制的原理,并通过具体实例展示其应用,适合对控制理论感兴趣的读者深入学习。

一、鲁棒控制的定义与重要性

1.1 鲁棒控制的英文含义

鲁棒控制本身听上去不是很好理解,所以回归到它的英文"Robust",它的含义就是强壮的意思。鲁棒当然就是它的音译,当理解了含义之后,就可以明白鲁棒控制,即控制器设计是很强壮的。

1.2 维基百科上的定义

在维基百科上面有这样一段话介绍鲁棒控制:

To achieve robust performance and/or stabilty in presence of bounded modeling error.

其中有两点需要注意:presence和bounded。即存在有界误差。它的应用也非常广泛,比如空调系统,或者巡航系统,因为都存在一些误差,但是这些误差都是有界的,比如空调室外温度是有界的。比如巡航系统不管是在雨天或者在雪地,摩擦系数也都是有界的,但是是不确定的误差。

1.3 自适应控制示例

举个例子,有这样的系统:

$$
\dot { x } = a x ^ { 2 } + u
$$

叫做自适应控制(Adaptive Controller)。假设a是未知常数,可以令:

$$
u = \dot { x } d + x ^ { 2 } \int _ { 0 } ^ { t } e x ^ { 2 } d t + k e
$$

使得x趋向于$x_d$。在鲁棒控制中,条件变得更加苛刻:a不再是常数,只知道a是有界的数,即:

$$
| a | \le | \overline { a } |
$$

目标依然是令$x \rightarrow x_d$,即:

$$
x_d - x = e \rightarrow 0
$$

其中,e是误差。

二、鲁棒控制器设计

如何设计控制器呢?

先看一般形式:

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

目标是令$x \rightarrow x_d$,误差的动态方程就是:

$$
\dot { e } _ { d } = \dot { x } _ { d } - \dot { x } = \dot { x } _ { d } - f ( x ) - u
$$

前提条件是$| f ( x ) | < \rho ( x)$。可以令:

$$
u = \dot { x }_d + k e + \rho \frac { | e | } { e }
$$

其中:

$$
\frac{|e|}{e}=\text{sgn} \left( e \right) \left{ \begin{array}{c} \begin{array}{c} 1\ 0\ \end{array}\ -1\ \end{array} \right. \begin{array}{c} e>0\ e=0\ e<0\ \end{array}
$$

在图上画出来的图形如下:

三、数学证明

下面证明为什么这样的控制器设计可以使系统稳定。

3.1 李雅普诺夫稳定性

从李亚普诺夫方程的角度考虑问题,令:

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

对其求导可得:

$$
\begin{aligned}
\dot V\left( e \right) &=e\dot{e}=e\left( \dot{x}_d-f\left( x \right) -u \right)\
&=e\left( \dot{x}_d-f\left( x \right) -\dot{x}_d-ke-\rho \frac{|e|}{e} \right)\
&=-ke^2-ef\left( x \right) -\rho |e|\
&\leq -ke^2+|e||f\left( x \right) |-\rho |e|\
&\le -ke^2+|e|\rho -\rho |e|\
\end{aligned}
$$

即:

$$
\dot V{ ( e ) } \leq - k e ^ { 2 }
$$

再回过头看:

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

可以推出来:

$$
2 V ( e ) = e ^ { 2 }
$$

代入:

$$
\dot V ( e ) \leq - 2 k V { (e) }
$$

移到左边来:

$$
\dot { V } { ( e ) } + 2 k V { ( e ) } \leq 0
$$

得到微分方程不等式,引入新的大于0的函数$S ( t )$,可以写成:

$$
\dot { V } { ( e ) } + 2 k V { ( e ) } + S { ( t ) } = 0
$$

上式为一阶线性非齐次方程。

通解为:

$$
V ( t ) = V ( 0 ) e^ {- 2 k t} - e^{- 2 k t } \int _ { 0 } ^ { t } e^{ 2 k t }s (\tau ) d \tau .
$$

注意:此处的$e^ {- 2 k t}$为指数函数,不是误差。

3.2 进一步分析

在积分项里知道$s ( \tau ) > 0$,因为这是设的$s ( \tau ) > 0$。知道e的指数都是大于0的,所以积分项里的内容是大于0的,积分项外面的这一项$e^ {- 2 k t}$也一定是大于0的。所以整个减去的这一项都是大于0的,可以得到:

$$
V ( t ) \le V { ( 0 ) } e^{ - 2 k t}
$$

在这种情况下,把$V ( t )$代进去:

$$
\frac { 1 } { 2 } e ^ { 2 } ( t ) \le \frac { 1 } { 2 } e ^ { 2 } ( 0 ) \text{exp} ( - 2 k t )
$$

两边开方可得到:

$$
| e ( t ) | \leq | e ( 0 ) | \text{exp} ( - k t )
$$

这是一种指数渐进稳定的形式。

四、滑模控制原理

下面做的这一系列的工作,就是为了证明当:

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

其中,$| f ( x ) | < \rho ( x )$时,可以令:

$$
u = \dot { x }_d + k e + \rho \frac { | e | } { e }
$$

这样就可以令:

$$
e = x_d-x\rightarrow0,t\rightarrow0
$$

现在把式子代进来:

$$
\dot { e } = \dot { x } _ { d } -\dot x=\dot x_d- f ( x ) - u =- k e - f ( x ) - \rho ( x ) \frac { e } { | e | }
$$

把u代进去:

$$
e = - k e - f ( x ) - \rho ( x ) \frac { e } { | e | }
$$

先看前面一部分:

$$
e = - k e
$$

观察函数的相平面:

横轴是e,纵轴是$\dot e$,它是一条这样的线,在左半平面时,$e<0$,$\dot e>0$,所以它将沿着线向右移动;在右半平面时,$e>0$,$\dot e<0$,所以它将沿着线向左移动,最后都移动到0点。

引入后面这两项:

$$

  • f ( x ) - \rho ( x ) \frac { e } { | e | }
    $$

其中$f ( x )$项是本身系统的项,而$\rho ( x ) \frac { e } { | e | }$是引入的控制项。

上面两项的目标是当系统偏离这条线时,引导系统状态滑到这条线上去。系统的状态变量可能在这条线的左面,也有可能在这条线的右边,但是因为有后面的一项,会不断地把系统状态往这条线上引导,所以这样的过程叫做滑模控制(Sliding Mode)。

滑模控制(Sliding Mode Control, SMC)是一种鲁棒控制方法。鲁棒控制是指控制系统在面对模型不确定性、外部干扰和未建模动态时,仍能保持期望性能的能力。滑模控制通过设计一个滑动面和相应的控制律,使得系统状态在滑动面上滑动,即使在存在不确定性和干扰的情况下,也能保证系统的最终稳定性和期望的性能。

五、实例解析

现在来解刚刚的例子:

$$
\dot { x } = a x ^ { 2 } + u
$$

其中,a有界,即:

$$
| a | \le | \overline { a } |
$$

$a x ^ { 2 }$就是一般形式中的$f(x)$:

$$
| f ( x ) | = | a | x ^ { 2 } \leq | \overline { a } | x ^ { 2 } < | \overline { a } | ( x ^ { 2 } + 0 . 1 )
$$

后面括号里不管写多少都可以,因为引入了常数以后,小于号就一定成立了,这就是$\rho ( x )$,所以就可以令:

$$
u = k e + \dot { x } _ { d } + | \overline { a } |( x ^ { 2 } + 0 . 1 ) \frac { | e | } { e }
$$

这就是滑模控制器。

六、总结

大家可以自己设计Simulink验证。比如可以令a是小于3的随机数,随时间不断变化,看控制器的反应。

在下一篇博客里会再介绍两种另外的鲁棒控制器,并把它们放在一起给做比较。

本篇博客的内容就到这里,欢迎大家关注后续内容。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号