目录
非线性鲁棒控制器
1、什么是鲁棒?
鲁棒对应的英文单词是Robust,显然这是直译过来的。
在维基百科上有这样一句话来解释它的含义:To achieve robust performance and/or stability in presence of bounded modeling error.
这里面需要注意的就是“存在有界的”误差。
2、一个简单的例子
(解释为什么采用鲁棒控制器,适用范围是什么)
一个系统
x
˙
=
a
x
2
+
u
\dot{x}=ax^2+u
x˙=ax2+u
其中
a
a
a是常数(或者变化速率非常慢,可以被看作是常数),但是未知。
x
d
x_d
xd是预期轨迹,误差定义为预期和实际的偏差。
控制目标:
e
=
x
d
−
x
e=x_d-x
e=xd−x,
e
→
0
e\rightarrow0
e→0
采用自适应控制进行设计,
得到自适应控制器:
u
=
x
˙
d
+
x
2
∫
0
t
e
x
2
d
t
+
k
e
u=\dot{x}_d+x^2\int_0^tex^2dt+ke
u=x˙d+x2∫0tex2dt+ke
但是,如果
a
a
a不是常数,只是一个有界的数,用数学表达式写出来就是:
∣
a
∣
≤
∣
a
ˉ
∣
|a|\leq|\bar{a}|
∣a∣≤∣aˉ∣
这种情况下怎么设计控制器呢?
3、更加general(一般)的情况
(就要用到滑模控制了,也就是被控对象里面有一个未知函数项,只知道它有界这个条件)
一个系统
x
˙
=
f
(
x
)
+
u
\dot{x}=f(x)+u
x˙=f(x)+u,
∣
f
(
x
)
∣
<
ρ
(
x
)
|f(x)|<\rho(x)
∣f(x)∣<ρ(x) (这个式子说明了
f
(
x
)
f(x)
f(x)有界)
目标是令
x
→
x
d
x\rightarrow x _d
x→xd,即
e
=
x
d
−
x
e=x_d-x
e=xd−x,
e
→
0
e\rightarrow0
e→0
e
˙
=
x
˙
d
−
f
(
x
)
−
u
(
1
)
\dot e=\dot x_d-f(x)-u (1)
e˙=x˙d−f(x)−u(1)
令:
u
=
x
˙
d
+
k
e
+
ρ
∗
∣
e
∣
e
(
2
)
u=\dot x_d+ke+\rho*\frac{|e|}{e} (2)
u=x˙d+ke+ρ∗e∣e∣(2)
这里有一个非常关键的点:
∣
e
∣
e
=
s
g
n
(
s
)
\frac{|e|}{e}=sgn(s)
e∣e∣=sgn(s),这是符号函数的意思,当e>0时,表达式为1,当e<0的时候,表达式为-1,当e=0时,表达式为0。如下图所示,可以看到这是一个分段的不连续的函数,也为后面采用其他形式的函数来替代符号函数埋下了伏笔。
接下来证明,为什么设计控制器
u
=
x
˙
d
+
k
e
+
ρ
∗
∣
e
∣
e
u=\dot x_d+ke+\rho*\frac{|e|}{e}
u=x˙d+ke+ρ∗e∣e∣可以让系统稳定。
3.1 证明稳定性Proof:
定义李雅普诺夫函数
V
(
e
)
V_(e)
V(e):
V
(
e
)
=
1
2
e
2
(
3
)
V_(e)=\frac{1}{2}e^2 (3)
V(e)=21e2(3)
那么对V进行求导,可以得到
V
˙
(
e
)
\dot V_(e)
V˙(e):
V
˙
(
e
)
=
e
∗
e
˙
=
e
(
x
˙
d
−
f
(
x
)
−
u
)
(
4
)
\dot V_(e)=e*\dot e=e(\dot x_d-f(x)-u) (4)
V˙(e)=e∗e˙=e(x˙d−f(x)−u)(4)
把控制器u的表达式
u
=
x
˙
d
+
k
e
+
ρ
∗
∣
e
∣
e
u=\dot x_d+ke+\rho*\frac{|e|}{e}
u=x˙d+ke+ρ∗e∣e∣带进去,
V
˙
(
e
)
=
e
(
x
˙
d
−
f
(
x
)
−
x
˙
d
−
k
e
−
ρ
∗
∣
e
∣
e
)
\dot V_(e) =e(\dot x_d-f(x)-\dot x_d-ke-\rho*\frac{|e|}{e})
V˙(e)=e(x˙d−f(x)−x˙d−ke−ρ∗e∣e∣)
整理一下,得到
V
˙
(
e
)
=
e
(
−
f
(
x
)
−
k
e
−
ρ
∗
∣
e
∣
e
)
=
−
k
e
2
−
e
f
(
x
)
−
ρ
∣
e
∣
(
5
)
\dot V_(e) =e(-f(x)-ke-\rho*\frac{|e|}{e}) =-ke^2-ef(x)-\rho |e| (5)
V˙(e)=e(−f(x)−ke−ρ∗e∣e∣)=−ke2−ef(x)−ρ∣e∣(5)
这个时候,对式(5)进行观察,可以进行缩放了,目的就是为了找到 V ˙ ( e ) \dot V_(e) V˙(e)是负定的证据。
显然,
V
˙
(
e
)
=
−
k
e
2
−
e
f
(
x
)
−
ρ
∣
e
∣
≤
−
k
e
2
+
∣
e
∣
∣
f
(
x
)
∣
−
ρ
∣
e
∣
(
6
)
\dot V_(e) =-ke^2-ef(x)-\rho |e| \leq-ke^2+|e||f(x)|-\rho |e| (6)
V˙(e)=−ke2−ef(x)−ρ∣e∣≤−ke2+∣e∣∣f(x)∣−ρ∣e∣(6)
注意看,这里进行了第一次缩放。这个缩放是显而易见的。
继续往下推导,把
∣
f
(
x
)
∣
≤
ρ
(
x
)
|f(x)|\leq\rho(x)
∣f(x)∣≤ρ(x)带进去
V
˙
(
e
)
=
−
k
e
2
−
e
f
(
x
)
−
ρ
∣
e
∣
≤
−
k
e
2
+
∣
e
∣
∣
f
(
x
)
∣
−
ρ
∣
e
∣
≤
−
k
e
2
+
∣
e
∣
ρ
−
ρ
∣
e
∣
(
7
)
\dot V_(e) =-ke^2-ef(x)-\rho |e| \leq-ke^2+|e||f(x)|-\rho |e|\leq-ke^2+|e|\rho-\rho |e| (7)
V˙(e)=−ke2−ef(x)−ρ∣e∣≤−ke2+∣e∣∣f(x)∣−ρ∣e∣≤−ke2+∣e∣ρ−ρ∣e∣(7)
也就是说,
V
˙
(
e
)
≤
−
k
e
2
(
8
)
\dot V_(e) \leq-ke^2 (8)
V˙(e)≤−ke2(8)
到目前为止,经过一次缩放,我们得到了
V
˙
(
e
)
\dot V_(e)
V˙(e)负定了。
定义的李雅普诺夫函数正定,且其导数负定,已经证明了我们设计的控制器u是合理的,是可以让系统稳定。
3.2 继续证明指数收敛
接下来的内容,是继续证明不光收敛,还是指数收敛的。
往回看,根据
V
(
e
)
=
1
2
e
2
V_(e)=\frac{1}{2}e^2
V(e)=21e2,可以得到
2
V
(
e
)
=
e
2
2V_(e)=e^2
2V(e)=e2,也就是
V
˙
(
e
)
≤
−
2
k
V
(
e
)
(
9
)
\dot V_(e) \leq-2kV_(e) (9)
V˙(e)≤−2kV(e)(9)
V
˙
(
e
)
+
2
k
V
(
e
)
≤
0
\dot V_(e) +2kV_(e)\leq0
V˙(e)+2kV(e)≤0 ,这是一个微分方程不等式。
为了对这个微分方程不等式进行求解,这里引入一个函数
s
(
t
)
>
0
s(t)>0
s(t)>0,上面的微分不等式就变成了下面的微分方程。
V
˙
(
e
)
+
2
k
V
(
e
)
+
s
(
t
)
=
0
(
10
)
\dot V_(e) +2kV_(e)+s(t)=0 (10)
V˙(e)+2kV(e)+s(t)=0(10)
把s(t)移到等式右边,可以得到
V
˙
(
e
)
+
2
k
V
(
e
)
=
−
s
(
t
)
(
11
)
\dot V_(e) +2kV_(e)=-s(t) (11)
V˙(e)+2kV(e)=−s(t)(11)
解这个非齐次微分方程,可以得到它的通解:
V
(
t
)
=
V
(
0
)
e
x
p
(
−
2
k
t
)
−
e
x
p
(
−
2
k
t
)
∫
0
t
e
x
p
(
2
k
τ
)
s
(
τ
)
d
τ
(
12
)
V(t)=V(0)exp(-2kt)-exp(-2kt) \int_0^t exp(2k\tau)s(\tau)d\tau (12)
V(t)=V(0)exp(−2kt)−exp(−2kt)∫0texp(2kτ)s(τ)dτ(12)
其中,
e
x
p
(
−
2
k
t
)
=
e
−
2
k
t
exp(-2kt)=e^{-2kt}
exp(−2kt)=e−2kt,为了不和误差e搞混,所以指数项这么写。
对式(12)进行分析,
可以看到,
e
x
p
(
−
2
k
t
)
∫
0
t
e
x
p
(
2
k
τ
)
s
(
τ
)
d
τ
>
0
exp(-2kt) \int_0^t exp(2k\tau)s(\tau)d\tau>0
exp(−2kt)∫0texp(2kτ)s(τ)dτ>0
所以,
V
(
t
)
≤
V
(
0
)
e
x
p
(
−
2
k
t
)
(
13
)
V(t)\leq V(0)exp(-2kt) (13)
V(t)≤V(0)exp(−2kt)(13)
也就是,
1
2
e
2
(
t
)
≤
1
2
e
(
0
)
e
x
p
(
−
2
k
t
)
(
14
)
\frac{1}{2}e^2(t)\leq \frac{1}{2}e(0)exp(-2kt) (14)
21e2(t)≤21e(0)exp(−2kt)(14)
两边同时开方,可以得到
1
2
e
2
(
t
)
≤
1
2
e
(
0
)
e
x
p
(
−
2
k
t
)
(
15
)
\sqrt{ \frac{1}{2}e^2(t)}\leq \sqrt{ \frac{1}{2}e(0)exp(-2kt) } (15)
21e2(t)≤21e(0)exp(−2kt)(15)
即
∣
e
(
t
)
∣
≤
∣
e
(
0
)
∣
e
x
p
(
−
k
t
)
(
16
)
|e(t)|\leq |e(0)|exp(-kt) (16)
∣e(t)∣≤∣e(0)∣exp(−kt)(16)
通过(16)就可以发现,误差是指数渐进收敛的(exponentially stable)
阶段性总结
系统:
x
˙
=
f
(
x
)
+
u
\dot{x}=f(x)+u
x˙=f(x)+u,
∣
f
(
x
)
∣
<
ρ
(
x
)
|f(x)|<\rho(x)
∣f(x)∣<ρ(x)
令
u
=
x
˙
d
+
k
e
+
ρ
∗
∣
e
∣
e
u=\dot x_d+ke+\rho*\frac{|e|}{e}
u=x˙d+ke+ρ∗e∣e∣
这样设计控制器u,就可以实现
t
→
∞
t\rightarrow\infty
t→∞时,
e
=
x
d
−
x
e=x_d-x
e=xd−x,
e
→
0
e\rightarrow0
e→0。
e
˙
=
x
˙
d
−
f
(
x
)
−
u
\dot e=\dot x_d-f(x)-u
e˙=x˙d−f(x)−u
把u带进去:
e
˙
=
−
k
e
−
f
(
x
)
−
ρ
(
x
)
∣
e
∣
e
(
17
)
\dot e=-ke-f(x)-\rho(x) \frac{|e|}{e} (17)
e˙=−ke−f(x)−ρ(x)e∣e∣(17)
对(17)这个式子的分析,就出现了滑模控制这个词。
用滑模控制来解决前面那个简单的例子
系统
x
˙
=
a
x
2
+
u
\dot{x}=ax^2+u
x˙=ax2+u ,
∣
a
∣
≤
∣
a
ˉ
∣
|a|\leq|\bar{a}|
∣a∣≤∣aˉ∣
那么,
a
x
2
ax^2
ax2就是那个未知的
f
(
x
)
f(x)
f(x)
所以,有
∣
f
(
x
)
∣
=
∣
a
∣
x
2
<
∣
a
ˉ
∣
x
2
<
∣
a
ˉ
∣
(
x
2
+
0.1
)
|f(x)|=|a|x^2<|\bar{a}|x^2<|\bar{a}|(x^2+0.1)
∣f(x)∣=∣a∣x2<∣aˉ∣x2<∣aˉ∣(x2+0.1)
显然,
∣
a
ˉ
∣
(
x
2
+
0.1
)
|\bar{a}|(x^2+0.1)
∣aˉ∣(x2+0.1) 就是那个
ρ
(
x
)
\rho(x)
ρ(x)
现在就可以用前面推导过的结论了,这个时候就是直接给出控制器的表达式 u = x ˙ d + k e + ρ ∗ ∣ e ∣ e u=\dot x_d+ke+\rho*\frac{|e|}{e} u=x˙d+ke+ρ∗e∣e∣。
令
u
=
k
e
+
x
˙
d
+
∣
a
ˉ
∣
(
x
2
+
0.1
)
∣
e
∣
e
u=ke+\dot x_d+|\bar{a}|(x^2+0.1)\frac{|e|}{e}
u=ke+x˙d+∣aˉ∣(x2+0.1)e∣e∣
下面就可以打开simulink进行验证了。
也就是下一篇博客要写的内容啦~
【下一篇是几个控制器的稳定性证明,simulink验证放在再下一篇】
参考视频链接
Dr.Can视频链接: link.