滑模控制综述(滑模控制理论(SMC))
滑模控制理论(Sliding Mode Control,SMC)
滑膜控制理论是一种建立在现代控制理论基础上的控制理论,其核心为李雅普诺夫函数,滑膜控制的核心是建立一个滑模面,将被控系统拉倒滑模面上来,使系统沿着滑模面运动,滑膜控制的优势在于无视外部扰动和不确定性参数,采取一种比较暴力的方式来达到控制目的,但是这种暴力也带来了一些问题,就是正负信号的高频切换,一般的硬件是无法进行信号的高频切换的,所以需要一些其他的方式避免这个问题,还有就是型号的高频切换会导致输出的信号出现震荡,导致系统在所选取的滑模面之间来回震荡,这种震荡是无法消除的,这也是滑膜控制的一个问题。
优点
滑动模态可以设计
对扰动不敏感
缺点
硬件无法适应高频的信号切换
信号高频切换带来的输出信号震荡
系统建模
我们可以建立一个简单的二阶系统的状态方程
x
˙
1
=
x
2
x
˙
2
=
u
\begin{align} \dot x_1 &= x_2 \nonumber \\ \dot x_2 &= u \nonumber \\ \end{align}
x˙1x˙2=x2=u 我们的控制目标很明确,就是希望x
1
=
,
x
2
=
x_1 = 0,x_2=0
x1=0,x2=0设计滑模面
s
=
c
x
1
+
x
2
s=cx_1+x_2
s=cx1+x2这里有个问题就是,滑模面是个什么东西,为什么要设计成这个样子,为什么不是别的样子,其实这个涉及一个问题就是我们控制的目标是什么,是
x
1
=
,
x
2
=
x_1 = 0,x_2=0
x1=0,x2=0,那如果s
=
s=0
s=0呢
{
c
x
1
+
x
2
=
x
˙
1
=
x
2
⇒
c
x
1
+
x
˙
1
=
⇒
{
x
1
=
x
1
(
)
e
−
c
t
x
2
=
−
c
x
1
(
)
e
−
c
t
\begin{equation} \begin{cases} cx_1 + x_2 = 0 \\ \dot x_1 = x_2 \\ \end{cases} \Rightarrow cx_1+\dot x_1 = 0 \Rightarrow \begin{cases} x_1 = x_1(0)e^{-ct} \\ x_2 = -cx_1(0)e^{-ct} \\ \end{cases} \nonumber \end{equation}
{cx1+x2=0x˙1=x2⇒cx1+x˙1=0⇒{x1=x1(0)e−ctx2=−cx1(0)e−ct 可以看出状态量最终都会趋于0,而且是指数级的趋于0。c
c
c 越大,速度也就越快。所以如果满足s
=
c
x
1
+
c
2
=
s=cx_1+c_2=0
s=cx1+c2=0,那么系统的状态将沿着滑模面趋于零,(s
=
s=0
s=0称之为滑模面)设计趋近律
上面说,如果
s
=
s=0
s=0 状态变量最终会趋于0,可以如何保证s
=
s=0
s=0 呢,这就是控制率u
u
u需要保证的内容了
s
˙
=
c
x
˙
1
+
x
˙
2
=
c
x
2
+
u
\dot s = c \dot x_1 + \dot x_2 = cx_2+u
s˙=cx˙1+x˙2=cx2+u 趋近律就是指s
˙
\dot s
s˙,趋近律的一般有以下几种设计
{
s
˙
=
−
ε
s
g
n
(
s
)
,
ε
>
s
˙
=
−
ε
s
g
n
(
s
)
−
k
s
,
ε
>
,
k
>
s
˙
=
−
k
∣
s
∣
α
s
g
n
(
s
)
,
<
α
<
1
\begin {cases} \dot s = - \varepsilon sgn(s), \varepsilon > 0 \\ \dot s = - \varepsilon sgn(s)-ks, \varepsilon > 0 , k>0\\ \dot s = - k|s|^{\alpha}sgn(s), 0 < \alpha < 1 \end{cases}
⎩⎨⎧s˙=−εsgn(s),ε>0s˙=−εsgn(s)−ks,ε>0,k>0s˙=−k∣s∣αsgn(s),0<α<1s
g
n
(
s
)
=
{
1
,
s
>
−
1
,
s
<
sgn(s) = \begin{cases} 1,s>0 \\ -1,s<0 \\ \end{cases}
sgn(s)={1,s>0−1,s<0根据以上的趋近律,我们就可以获得控制量
u
u
u了(选取第一种控制率)。
u
=
−
c
x
2
−
ε
s
g
n
(
s
)
u = -cx_2-\varepsilon sgn(s)
u=−cx2−εsgn(s) 我们对系统施加控制量u
u
u 即可保证系统最终稳定在原点。证明有效性
在控制原理中用李雅普诺夫函数来判断系统的稳定性,对于系统状态方程
s
˙
=
c
x
2
+
u
\dot s = cx_2+u
s˙=cx2+u ,我们此时的目标已经是希望把系统拉倒滑模面附近了,控制目标是s
s
s ,对于s
s
s 如果存在一个连续函数V
V
V 满足下面两个式子,那么系统将在平衡点s
=
s=0
s=0 处稳定,即lim
t
→
∞
V
=
{\lim\limits_{t \to \infty}V = 0}
t→∞limV=0lim
∣
s
∣
→
∞
V
=
∞
{\lim\limits_{|s| \to \infty}V = \infty}
∣s∣→∞limV=∞V
˙
<
f
o
r
s
≠
\dot V < 0 \ for \ s \ne 0
V˙<0fors=0我们证明的方法就是令
V
=
1
2
s
2
V= \frac {1} {2} s ^ 2
V=21s2 ,很明显我们满足第一个条件,我们对V
V
V进行求导,
V
˙
=
s
s
˙
=
−
s
ε
s
g
n
(
s
)
=
−
ε
∣
s
∣
<
\dot V = s \dot s = -s \varepsilon sgn(s) = - \varepsilon|s| < 0
V˙=ss˙=−sεsgn(s)=−ε∣s∣<0 也是满足第二个条件的,所以最终系统会稳定在滑膜面附近,这也就意味着两个变量也会稳定在滑模面期望他们稳定在的位置,即零点。无限时间问题
上面的分析看似无懈可击,实际上是没什么用的,因为我们最终得到的结论是,在时间趋于无穷时,系统的状态必将趋于0,这有用吗,并没有,因为无限时间这太恐怖了,人死了系统都没稳定的话这没什么意义,所以我们必须要求他是有限时间可达的,所以我们修改一个李雅普诺夫的第二个条件
V
˙
≤
−
α
V
1
2
\dot V \le - \alpha V ^ {\frac {1} {2}}
V˙≤−αV21对于改进后的这个条件可以分离变量再积分
d
V
d
t
≤
−
α
V
1
2
V
−
1
2
d
V
≤
−
α
d
t
∫
t
V
−
1
2
d
V
≤
∫
t
−
α
d
t
V
1
2
(
t
)
−
V
1
2
(
)
≤
−
1
2
α
t
V
1
2
(
t
)
≤
−
1
2
α
t
+
V
1
2
(
)
\begin {align} \frac {\text d V} {\text d t} &\le - \alpha V ^ {\frac {1} {2}} \nonumber\\ V ^ {- \frac {1} {2}} \text d V &\le - \alpha \text d t \nonumber\\ \int^{t}_{0} V ^ {- \frac {1} {2}} \text d V &\le \int^{t}_{0} - \alpha \text d t \nonumber\\ V ^ {\frac {1} {2}} (t) - V ^ {\frac {1} {2}} (0) &\le - \frac {1} {2} \alpha t \nonumber\\ V ^ {\frac {1} {2}} (t) &\le - \frac {1} {2} \alpha t + V ^ {\frac {1} {2}} (0) \nonumber \\ \end {align}
dtdVV−21dV∫0tV−21dVV21(t)−V21(0)V21(t)≤−αV21≤−αdt≤∫0t−αdt≤−21αt≤−21αt+V21(0) 根据上面的等式可以看出,V
V
V将在有限时间达到稳定,稳定的最终时间为
t
r
≤
2
V
1