1、系统表述
在任何实际控制问题的表述中,实际对象与其用于控制器设计的数学模型之间总是存在差异。这些差异(或不匹配)是由未知的外部干扰、工厂参数和寄生/未建模的动态引起的。对于控制工程师来说,设计在存在这些干扰/不确定性的情况下为闭环系统提供所需性能的控制律是一项非常具有挑战性的任务。这引起了人们对开发旨在解决该问题的鲁棒控制方法的浓厚兴趣。鲁棒控制器设计的一种特殊方法是所谓的滑模控制技术。
在这里控制系统简单地表述为
{
x
˙
1
=
x
2
x
1
(
0
)
=
x
10
x
˙
2
=
u
+
f
(
x
1
,
x
2
,
t
)
x
2
(
0
)
=
x
20
(1)
\begin{cases}\begin{aligned} \dot{x}_1&=x_2 & & {x_1(0)=x_{10}}\\ \dot{x}_2&=u+f(x_1,x_2,t) & & {x_2(0)=x_{20}} \end{aligned}\end{cases} \tag{1}
{x˙1x˙2=x2=u+f(x1,x2,t)x1(0)=x10x2(0)=x20(1)
这里使用滑模控制的目的是使系统状态 x 1 , x 2 x_1,x_2 x1,x2 稳定收敛到原点
2、定义滑模面
最常设计的滑模面是线性的
s
=
x
2
+
c
x
1
=
0
(2)
s=x_2+cx_1=0 \tag{2}
s=x2+cx1=0(2)
其中,
c
>
0
c>0
c>0
设计的线性滑模面需要满足Hurwitz条件,即特征方程的解在负半平面,需要保证系统在滑模面上是稳定的,状态就会收敛至原点,因此需要满足 c > 0 c>0 c>0
在这里,当系统状态点在滑模面上时,联立方程(1)(2)可以得到
x
˙
1
+
c
x
1
=
0
(3)
\dot{x}_1+cx_1=0 \tag{3}
x˙1+cx1=0(3)
这是一个一阶齐次微分方程,可以看到这里没有扰动项的存在,可以求解得
{
x
1
=
x
1
(
0
)
e
−
c
t
x
2
=
−
c
x
1
(
0
)
e
−
c
t
(4)
\begin{cases}\begin{aligned} x_1&=x_1(0)e^{-ct} \\ x_2&=-cx_1(0)e^{-ct} \end{aligned}\end{cases} \tag{4}
{x1x2=x1(0)e−ct=−cx1(0)e−ct(4)
可以看得出来,
c
>
0
c>0
c>0 时系统状态
x
1
,
x
2
x_1,x_2
x1,x2 都是会随着时间收敛到原点的
3、趋近律设计
系统状态点一开始并不能直接就在滑模面上,这里就需要趋近律的设计,来使系统状态从其他状态驱动到滑模面上
在例子二维状态空间,每一个状态点必对应一个平行滑模面的平面
可以看得出来只有
s
=
0
s=0
s=0 的滑模面过原点,只有在
s
=
0
s=0
s=0 上系统状态才能一直沿着滑模面稳定收敛到原点;而在其他平行于滑模面的平面上(例如
s
=
5
s=5
s=5 ),系统并不会稳定,更不用谈收敛
因此,设计的趋近律
s
˙
\dot{s}
s˙ 要满足
{
s
˙
<
0
,
i
f
s
>
0
s
˙
>
0
,
i
f
s
<
0
(5)
\begin{cases}\begin{aligned} \dot{s}&<0\ \ \ , if\ \ s>0\\ \dot{s}&>0\ \ \ ,if\ \ s<0 \end{aligned}\end{cases} \tag{5}
{s˙s˙<0 ,if s>0>0 ,if s<0(5)
当系统状态点在
s
>
0
s>0
s>0 的平面上,此时状态点需要往
s
s
s 减小的方向移动,即
s
˙
<
0
\dot{s}<0
s˙<0
当系统状态点在
s
<
0
s<0
s<0 的平面上,此时状态点需要往
s
s
s 增大的方向移动,即
s
˙
>
0
\dot{s}>0
s˙>0
要通过趋近律的设计,来保障初始状态点能始终朝着滑模面 s = 0 s=0 s=0 前进,并到达滑模面。
值得说明的是,最开始设计的滑模面 s = x 2 + c x 1 = 0 s=x_2+cx_1=0 s=x2+cx1=0 与趋近律 s ˙ \dot{s} s˙ 的设计并不冲突。滑模面 s s s 的设计直接保障了系统状态稳定收敛,此时是定义系统状态已经在滑模面,而趋近律 s ˙ \dot{s} s˙ 需要满足的性质是通过设计控制率 u u u 来满足,因为趋近律 s ˙ = x ˙ 2 + c x ˙ 1 = u + f ( x 1 , x 2 , t ) + c x 2 (6) \dot{s}=\dot{x}_2+c\dot{x}_1=u+f(x_1,x_2,t)+cx_2 \tag{6} s˙=x˙2+cx˙1=u+f(x1,x2,t)+cx2(6)
通常,满足以上性质的最简单的趋近律设计为
s
˙
=
−
s
g
n
(
s
)
(7)
\dot{s}=-sgn(s) \tag{7}
s˙=−sgn(s)(7)
其中,
s
g
n
(
.
)
sgn(.)
sgn(.) 为符号函数
趋近律不同,趋近滑模面的方式也不同,常用的趋近律一般有
- 等速趋近律(Constant Rate) : s ˙ = − k s g n ( s ) , k > 0 \dot{s}=-k sgn(s)\ \ \ \ ,k>0 s˙=−ksgn(s) ,k>0
- 指数趋近律(Constant-Proportional Rate) : s ˙ = − k s g n ( s ) − q s , k > 0 , q > 0 \dot{s}=-ksgn(s)-qs\ \ \ \ ,k>0,q>0 s˙=−ksgn(s)−qs ,k>0,q>0
- 幂次趋近律(Power Rate) : s ˙ = − k ∣ s ∣ γ s g n ( s ) , k > 0 , 0 < γ < 1 \dot{s}=-k|s|^\gamma sgn(s) \ \ \ \ \ ,k>0,0<\gamma<1 s˙=−k∣s∣γsgn(s) ,k>0,0<γ<1
4、控制律设计
这里使用等速趋近律来设计控制律,对
s
s
s 求导得公式(6),两式相等得
s
˙
=
u
+
f
(
x
1
,
x
2
,
t
)
+
c
x
2
=
−
k
s
g
n
(
s
)
,
k
>
0
(8)
\dot{s}=u+f(x_1,x_2,t)+cx_2=-ksgn(s)\ \ \ ,k>0 \tag{8}
s˙=u+f(x1,x2,t)+cx2=−ksgn(s) ,k>0(8)
所以控制律设计为
u
=
−
k
s
g
n
(
s
)
−
c
x
2
−
f
(
x
1
,
x
2
,
t
)
(9)
u=-ksgn(s)-cx_2-f(x_1,x_2,t) \tag{9}
u=−ksgn(s)−cx2−f(x1,x2,t)(9)
由于扰动是有界的,这里
0
<
f
(
x
1
,
x
2
,
t
)
<
L
0<f(x_1,x_2,t)<L
0<f(x1,x2,t)<L ,则
u
=
−
k
s
g
n
(
s
)
−
c
x
2
−
L
(10)
u=-ksgn(s)-cx_2-L \tag{10}
u=−ksgn(s)−cx2−L(10)
5、滑模控制例子
将式(1)中分别赋具体的数值,系统模型表述为
{
x
˙
1
=
x
2
x
1
(
0
)
=
1
x
˙
2
=
u
+
f
(
x
1
,
x
2
,
t
)
x
2
(
0
)
=
−
2
(11)
\begin{cases}\begin{aligned} \dot{x}_1&=x_2 & & {x_1(0)=1}\\ \dot{x}_2&=u+f(x_1,x_2,t) & & {x_2(0)=-2} \end{aligned}\end{cases} \tag{11}
{x˙1x˙2=x2=u+f(x1,x2,t)x1(0)=1x2(0)=−2(11)
其中,
f
(
x
1
,
x
2
,
t
)
=
s
i
n
(
2
t
)
<
1
f(x_1,x_2,t)=sin(2t)<1
f(x1,x2,t)=sin(2t)<1
选取滑模面
s
=
x
2
+
1.5
x
1
=
0
(12)
s=x_2+1.5x_1=0 \tag{12}
s=x2+1.5x1=0(12)
选取趋近律
s
˙
=
−
2
s
g
n
(
s
)
(13)
\dot{s}=-2sgn(s) \tag{13}
s˙=−2sgn(s)(13)
对(12)求导再联立(11)(13)得
s
˙
=
u
+
s
i
n
(
2
t
)
+
1.5
x
2
=
−
2
s
g
n
(
s
)
(14)
\dot{s}=u+sin(2t)+1.5x_2=-2sgn(s) \tag{14}
s˙=u+sin(2t)+1.5x2=−2sgn(s)(14)
所以控制律设计为
u
=
−
2
s
g
n
(
s
)
−
1.5
x
2
−
1
u=-2sgn(s)-1.5x_2-1
u=−2sgn(s)−1.5x2−1
其中,正弦扰动项取其上界
Matlab数值实验仿真结果可得
实验结果可以看出,系统的状态确实逐渐收敛到原点,并且图2状态空间图可以清晰地看出,系统趋近有两个阶段,一个阶段是趋近滑模面,第二个阶段是在滑模面上,最终收敛至原点。
值得注意的是,在收敛过程中,放大看系统的状态轨迹是抖颤的(chattering),这在一些控制场景中是致命缺陷,关于缓解抖颤,也有一些方法,有机会再分享交流。