这里写自定义目录标题
1.什么是滑模变结构控制
在开始介绍滑模变结构控制之前,最好先学习一些线性控制的基础,知道什么是李亚普诺夫函数,怎么判断系统稳定性,有一点相轨迹的基础。有了这些基础知识才可以理解这篇文章。好了,废话不多说了,让我们开始滑模变结构控制之旅吧。
我们先从一个例子开始吧,假设有一个二阶系统如下:
{
x
1
˙
=
x
2
x
2
˙
=
2
x
2
−
x
1
+
u
\left\{\begin{matrix} \dot{x_{1}}=x_{2}\\ \dot{x_{2}}=2x_{2}-x_{1}+u \end{matrix}\right.
{x1˙=x2x2˙=2x2−x1+u
假设我们令
u
=
−
k
x
1
u=-kx_{1}
u=−kx1,其中k的值取4和-4。
当
k
=
4
k=4
k=4时,上式可以改写如下
{
x
1
˙
=
x
2
x
2
˙
=
2
x
2
−
5
x
1
\left\{\begin{matrix} \dot{x_{1}}=x_{2}\\ \dot{x_{2}}=2x_{2}-5x_{1} \end{matrix}\right.
{x1˙=x2x2˙=2x2−5x1
令
y
=
x
1
,
y
˙
=
x
2
y=x_{1},\dot{y}=x_{2}
y=x1,y˙=x2,则上式可以改写为
y
¨
−
2
y
˙
+
5
y
=
0
\ddot{y}-2\dot{y}+5y=0
y¨−2y˙+5y=0该微分方程有一对共轭复根
λ
1
,
2
=
1
±
2
i
\lambda _{1,2}=1\pm 2i
λ1,2=1±2i,它的实部为正,是一个不稳定系统,其相轨迹图如下
k=4
k=-4
从图中可以看出,不管k=4还是-4,系统都无法稳定,此时过相坐标系原点做一条直线,直线方程如下:
s
=
y
˙
+
y
=
0
s=\dot{y}+y=0
s=y˙+y=0其中s直线上方s>0,s直线下方s<0,如上图所示。打阴影的部分是ys<0的部分,其余部分ys>0,ys表示y乘以s。此时我们按下面的方程取k:当ys>0时,k=4;ys<0时,k=-4。
k
=
{
4
,
y
s
>
0
−
4
,
y
s
<
0
k=\left\{\begin{matrix} 4 ,& ys>0 & \\ -4, & ys<0 & \end{matrix}\right.
k={4,−4,ys>0ys<0此时相轨迹图变换如下:
直线s=0与y=0(即
y
˙
\dot{y}
y˙轴)将坐标系分为四个区域,ys>0时,k=4;ys<0时,k=-4。你会发现系统的相轨迹最终会运动到s=0这条直线上,而
s
=
y
˙
+
y
=
0
s=\dot{y}+y=0
s=y˙+y=0,它具有负的特征根
λ
=
−
1
\lambda =-1
λ=−1,因此在s=0这条直线上的点最终会收敛到
y
=
0
,
y
˙
=
0
y=0,\dot{y}=0
y=0,y˙=0,即坐标原点。此时系统就可以稳定,这个控制方法就是滑模变结构控制。
变结构指的是控制u在4x与-4x之间的切换,滑模指在s=0这条直线上滑动到原点。因此滑模变结构控制器设计也包括两部分,一是能从状态空间的任何位置有限时间到达滑模面s=0,二是在滑模面上可以收敛到原点(平衡点)。
2.滑模变结构的一些基本知识
由上例的图形可知,s=0两侧的相轨线都吸引向切换线 s=0。因此状态轨线一旦到达直线s=0上,就沿此直线收敛到原点。
这种沿s=0滑动至原点的特殊运动称为滑动模态运动,直线s=0称为切换线(切换面)或切换流形(switching manifold),相应函数称为切换函数。
考虑一般情况,系统表述如下:
x
˙
=
f
(
x
)
,
x
∈
R
n
\dot{x}=f(x),x\in R^{n}
x˙=f(x),x∈Rn在系统状态空间存在超曲面
s
(
x
)
=
s
(
x
1
,
x
2
,
⋅
⋅
⋅
x
n
)
=
0
s(x)=s(x_{1},x_{2},\cdot \cdot \cdot x_{n})=0
s(x)=s(x1,x2,⋅⋅⋅xn)=0,如下图所示:
它将状态空间分为上下两个部分:s>0与s<0,在切换面上的运动点有三种情况:
1.常点,即图中A点。系统运动点运动到切换面s=0时,并不停留在切换面上,而是穿越此点,在A点旁边,满足以下关系:
s
˙
>
0
,
s
>
0
\dot{s}>0,s>0
s˙>0,s>0
s
˙
>
0
,
s
<
0
\dot{s}>0,s<0
s˙>0,s<0当处于s=0上方即s>0时,s不断变大,远离s=0;当处于s=0下方即s<0时,s不断变大,接近s=0。(也可以从s>0穿越到s<0,方向与A处箭头反向)
2.起点,如图中B点。系统运动点到达切换面s=0附近时,从切换面的两边离开该点,在B点附近,满足以下关系:
s
˙
>
0
,
s
>
0
\dot{s}>0,s>0
s˙>0,s>0
s
˙
<
0
,
s
<
0
\dot{s}<0,s<0
s˙<0,s<0
3.止点,如图中C点。系统运动点到达切换面s=0附近时,从切换面的两边趋向于止点,并停留在切换面上。在C点附近满足以下关系:
s
˙
>
0
,
s
<
0
\dot{s}>0,s<0
s˙>0,s<0
s
˙
<
0
,
s
>
0
\dot{s}<0,s>0
s˙<0,s>0
由第一节可知,我们在设计滑模变结构控制器时,需要让状态空间中的点有限时间到达滑模面s=0,即图中C点,所以我们在设计控制器时得满足C点条件,在s>0时,
s
˙
<
0
\dot{s}<0
s˙<0;s<0时,
s
˙
>
0
\dot{s}>0
s˙>0。
3.滑模控制器设计
通过前两章的介绍,我们理清了要设计滑模控制器需要满足以下条件:
1.稳定性条件:在s=0的滑模面上,状态是收敛的,即滑动模态存在;
2.可达性条件:在切换面s=0以外的运动点将于有限时间内到达切换面;
3.保证滑模运动的稳定性;
4.达到控制系统运动品质要求。
接下来开始根据这四个条件来叙述如何设计滑模变结构控制器,首先是滑动模态存在
针对线性系统
x
˙
=
A
x
+
b
u
\dot{x}=Ax+bu
x˙=Ax+bu可以设计如下的滑模面
s
(
x
)
=
∑
i
=
1
n
−
1
c
i
x
i
+
x
n
s(x)=\sum_{i=1}^{n-1}c_{i}x_{i}+x_{n}
s(x)=i=1∑n−1cixi+xn在滑模控制中,要保证多项式
p
n
−
1
+
c
n
p
n
−
2
+
.
.
.
+
c
2
p
+
c
1
p^{n-1}+c_{n}p^{n-2}+...+c_{2}p+c1
pn−1+cnpn−2+...+c2p+c1为Hurwitz(简单来说这条条件是为了满足状态在s=0的滑模面上可以收敛)什么是Hurwitz,即上述多项式的特征值的实数部分在左半平面,即为负,下面举例说明:
当n=2时,
s
(
x
)
=
c
1
x
1
+
x
2
s(x)=c_{1}x_{1}+x_{2}
s(x)=c1x1+x2,为了保证多项式p+c1为Hurwitz,需要多项式p+c1=0的特征值实数部分为负,即c1>0.
接下来介绍可达性条件,即状态x从状态空间中任意一点出发,可以在有限时间到达s=0的滑模面上,此时我们可以采用李雅普诺夫间接法来分析,从前面可知,切换函数s是状态变量x的函数,取以下的李雅普诺夫函数
V
=
1
2
s
2
V=\frac{1}{2}s^{2}
V=21s2对时间求导可得
V
˙
=
s
s
˙
\dot{V}=s\dot{s}
V˙=ss˙为了使系统稳定,我们需要使
V
˙
<
0
\dot{V}<0
V˙<0,即
s
s
˙
<
0
s\dot{s}<0
ss˙<0,此时系统对于s而言是渐进稳定,不能保证其有限时间到达s=0的滑模面上(渐进稳定是当t趋于无穷时,状态变量x趋于0,即无限时间到达),因此需要
s
s
˙
<
−
σ
s\dot{s}<-\sigma
ss˙<−σ,
σ
\sigma
σ是一个极小的正数。
但是每次设计总不能都用李雅普诺夫函数判断,于是人们就提出了趋近律这一概念,常用的趋近律有如下几种:
1.等速趋近律:
s
˙
=
−
ε
s
g
n
(
s
)
\dot{s}=-\varepsilon sgn(s)
s˙=−εsgn(s),
ε
>
0
\varepsilon>0
ε>0。sgn(s)是符号函数,s>0时,sgn(s)=1;s<0时,sgn(s)=-1;s=0,sgn(s)=0。
2.指数趋近律:
s
˙
=
−
ε
s
g
n
(
s
)
−
k
s
\dot{s}=-\varepsilon sgn(s)-ks
s˙=−εsgn(s)−ks,
ε
>
0
,
k
>
0
\varepsilon>0,k>0
ε>0,k>0。
3.幂次趋近律:
s
˙
=
−
k
∣
s
∣
α
s
g
n
(
s
)
−
k
s
\dot{s}=-k |s|^{\alpha }sgn(s)-ks
s˙=−k∣s∣αsgn(s)−ks,
k
>
0
,
1
>
α
>
0
k>0,1>\alpha>0
k>0,1>α>0。至于趋近律怎么使用,看第四节的例子,毕竟理论毕竟没有实操刺激)
4.滑模控制器例子
随意举一个简单例子如下:
{
x
1
˙
=
x
2
x
2
˙
=
x
3
x
3
˙
=
x
1
+
x
2
x
3
+
u
\left\{\begin{matrix} \dot{x_{1}}=&x_{2}& \\ \dot{x_{2}}=&x_{3}& \\ \dot{x_{3}}=&x_{1}&+&x_{2}x_{3}+u \end{matrix}\right.
⎩⎨⎧x1˙=x2˙=x3˙=x2x3x1+x2x3+u设计一个镇定控制器,使系统稳定
设计步骤如下:
Step1.先设计切换函数s,其中切换函数s为Hurwitz,s设计如下:
s
=
x
3
+
2
x
2
+
x
1
s=x_{3}+2x_{2}+x_{1}
s=x3+2x2+x1其中
c
1
=
1
,
c
2
=
2
c_{1}=1,c_{2}=2
c1=1,c2=2,多项式可以写为
p
2
+
2
p
+
1
p^{2}+2p+1
p2+2p+1,该多项式具有两个相同的特征根-1,满足Hurwitz条件,s设计完毕。
Step2.设计切换函数的导数,使系统满足可达性条件,即有限时间到达滑模面。对切换函数s求导
s
˙
=
x
3
˙
+
2
x
2
˙
+
x
1
˙
\dot{s}=\dot{x_{3}}+2\dot{x_{2}}+\dot{x_{1}}
s˙=x3˙+2x2˙+x1˙将系统方程代入,替换掉
x
3
˙
,
x
2
˙
,
x
1
˙
\dot{x_{3}},\dot{x_{2}},\dot{x_{1}}
x3˙,x2˙,x1˙,可得
s
˙
=
x
1
+
x
2
+
2
x
3
+
x
2
x
3
+
u
\dot{s}=x_{1}+x_{2}+2x_{3}+x_{2}x_{3}+u
s˙=x1+x2+2x3+x2x3+u我们可以看到,
s
˙
\dot{s}
s˙中出现我们想要设计的控制u,但此时我们无法得到u,因为我们不知道
s
˙
\dot{s}
s˙是多少。这时我们前面提到的趋近律就起了作用,我们令
s
˙
\dot{s}
s˙=趋近律,就可以算出u,这个u就是滑模控制器的控制律。例如,取指数趋近律
−
s
g
n
(
s
)
−
s
-sgn(s)-s
−sgn(s)−s,那么
u
=
−
s
−
s
g
n
(
s
)
−
x
1
−
x
2
−
2
x
3
−
x
2
x
3
u=-s-sgn(s)-x_{1}-x_{2}-2x_{3}-x_{2}x_{3}
u=−s−sgn(s)−x1−x2−2x3−x2x3
s
˙
=
−
s
g
n
(
s
)
−
s
\dot{s}=-sgn(s)-s
s˙=−sgn(s)−s
Step3.稳定性证明,取李雅普诺夫函数
V
=
1
2
s
2
V=\frac{1}{2}s^{2}
V=21s2对李亚普诺夫函数求导
V
˙
=
s
s
˙
\dot{V}=s\dot{s}
V˙=ss˙
V
˙
=
−
∣
s
∣
−
s
2
\dot{V}=-|s|-s^{2}
V˙=−∣s∣−s2李亚普诺夫函数的导数是严格负定的,因此系统渐进稳定,即s会趋于0,又因为
s
=
x
3
+
2
x
2
+
x
1
s=x_{3}+2x_{2}+x_{1}
s=x3+2x2+x1因此
x
3
,
x
2
,
x
1
x_{3},x_{2},x_{1}
x3,x2,x1都趋于0,达到了使系统镇定的目的,控制器设计完成,控制律如下
u
=
−
s
−
s
g
n
(
s
)
−
x
1
−
x
2
−
2
x
3
−
x
2
x
3
u=-s-sgn(s)-x_{1}-x_{2}-2x_{3}-x_{2}x_{3}
u=−s−sgn(s)−x1−x2−2x3−x2x3
接下来我会用Matlab simulink来验证控制器设计的正确性(下一章)