Hello,欢迎来到我的博客
干扰观测器是机器人控制中很重要的一种手段,今天要分享的是一种简单的非线性干扰观测器NDOB的推导,请享用吧
1 朴素NDOB观测器推导
假设非线性系统方程为:
x
˙
=
f
(
x
)
+
g
1
(
x
)
u
+
g
2
(
x
)
d
y
=
h
(
x
)
(1)
\begin{aligned} \dot{x}&=f(x)+g_1(x)u+g_2(x)d\tag{1}\\ y&=h(x) \end{aligned}
x˙y=f(x)+g1(x)u+g2(x)d=h(x)(1)
其中,
d
d
d为扰动,
u
u
u为控制量。
我们期望对扰动
d
d
d进行估计,不妨设扰动估计量为
d
^
\hat{d}
d^,那么扰动的估计误差则为:
d
~
=
d
−
d
^
\tilde{d}=d-\hat{d}
d~=d−d^
对
d
~
\tilde{d}
d~求导,可得:
d
~
˙
=
d
˙
−
d
^
˙
=
−
d
^
˙
\dot{\tilde{d}}=\dot{d}-\dot{\hat{d}}=-\dot{\hat{d}}
d~˙=d˙−d^˙=−d^˙
注意,由于我们对于真实扰动
d
d
d没有任何先验知识,这里最不失一般性的假设就是:它的导数等于0。
接下来,为了让
d
~
\tilde{d}
d~尽快收敛,我们可以令其等于如下形式:
d
~
˙
=
−
d
^
˙
=
−
l
(
x
)
g
2
(
x
)
d
~
\dot{\tilde{d}}=-\dot{\hat{d}}=-l(x)g_2(x)\tilde{d}
d~˙=−d^˙=−l(x)g2(x)d~
注意,上面这个等式是我们人为设计的一种
d
~
\tilde{d}
d~的趋近律,也就是我们希望
d
~
\tilde{d}
d~以何种方式趋近于0。我们可以任意选择
l
(
x
)
l(x)
l(x),只要保证以上关于
d
~
\tilde{d}
d~的这个动力学系统收敛即可。
基于以上趋近律,并且代入系统方程(1),我们可以得到:
d
^
˙
=
l
(
x
)
g
2
(
x
)
d
~
=
l
(
x
)
g
2
(
x
)
(
d
−
d
^
)
=
l
(
x
)
(
x
˙
−
f
(
x
)
−
g
1
(
x
)
u
−
g
2
(
x
)
d
^
)
=
−
l
(
x
)
g
2
(
x
)
d
^
+
l
(
x
)
(
x
˙
−
f
(
x
)
−
g
1
(
x
)
u
)
(2)
\begin{aligned} \dot{\hat{d}}&=l(x)g_2(x)\tilde{d}\\ &=l(x)g_2(x)(d-\hat{d})\\ &=l(x)(\dot{x}-f(x)-g_1(x)u-g_2(x)\hat{d})\\ &=-l(x)g_2(x)\hat{d}+l(x)(\dot{x}-f(x)-g_1(x)u)\tag{2} \end{aligned}
d^˙=l(x)g2(x)d~=l(x)g2(x)(d−d^)=l(x)(x˙−f(x)−g1(x)u−g2(x)d^)=−l(x)g2(x)d^+l(x)(x˙−f(x)−g1(x)u)(2)
以上就是一个最为朴素的非线性扰动观测器了。
当然,事情到这里还没有结束。仔细观察可以发现,这个扰动观测器需要用到
x
˙
\dot{x}
x˙这一项,很显然,大多数系统都不可能得到这项的观测,所以这个最朴素的扰动观测器需要一些小的改进。
2 改进NDOB观测器推导
最朴素的把
x
˙
\dot{x}
x˙消去的思路就是,在观测器(2)的左右两边同时减去
l
(
x
)
x
˙
l(x)\dot{x}
l(x)x˙,如下:
d
^
˙
−
l
(
x
)
x
˙
=
−
l
(
x
)
g
2
(
x
)
d
^
+
l
(
x
)
(
−
f
(
x
)
−
g
1
(
x
)
u
)
(3)
\dot{\hat{d}}-l(x)\dot{x}=-l(x)g_2(x)\hat{d}+l(x)(-f(x)-g_1(x)u)\tag{3}
d^˙−l(x)x˙=−l(x)g2(x)d^+l(x)(−f(x)−g1(x)u)(3)
这样公式右边就没有
x
˙
\dot{x}
x˙这一项了。进一步地,我们对等式(3)左右两边积分:
d
^
−
p
(
x
)
=
∫
−
l
(
x
)
g
2
(
x
)
d
^
+
l
(
x
)
(
−
f
(
x
)
−
g
1
(
x
)
u
)
dt
(4)
\hat{d}-p(x)=\int -l(x)g_2(x)\hat{d}+l(x)(-f(x)-g_1(x)u) \ \text{dt}\tag{4}
d^−p(x)=∫−l(x)g2(x)d^+l(x)(−f(x)−g1(x)u) dt(4)
其中,假设
p
(
x
)
=
∫
l
(
x
)
x
˙
dt
p(x)=\int l(x)\dot{x} \text{dt}
p(x)=∫l(x)x˙dt。同时,进一步设置一个中间变量
z
=
d
^
−
p
(
x
)
z=\hat{d}-p(x)
z=d^−p(x)。那么,再对公式(4)求导,就可以变形为:
z
˙
=
−
l
(
x
)
g
2
(
x
)
(
z
+
p
(
x
)
)
+
l
(
x
)
(
−
f
(
x
)
−
g
1
(
x
)
u
)
=
−
l
(
x
)
g
2
(
x
)
z
−
l
(
x
)
[
f
(
x
)
+
g
1
(
x
)
u
+
g
2
(
x
)
p
(
x
)
]
(5)
\begin{aligned} \dot{z}&=-l(x)g_2(x)(z+p(x))+l(x)(-f(x)-g_1(x)u) \tag{5}\\ &=-l(x)g_2(x)z-l(x)\left[f(x)+g_1(x)u+g_2(x)p(x)\right] \end{aligned}
z˙=−l(x)g2(x)(z+p(x))+l(x)(−f(x)−g1(x)u)=−l(x)g2(x)z−l(x)[f(x)+g1(x)u+g2(x)p(x)](5)
以上就是一个针对中间变量
z
z
z的观测器,有了
z
z
z以后,扰动估计量
d
^
\hat{d}
d^也可以很容易得到:
d
^
=
z
+
p
(
x
)
(6)
\hat{d}=z+p(x) \tag{6}
d^=z+p(x)(6)
推到这里,公式(5)(6)就可以实现扰动观测了。然而,还遗留了一个最重要的问题,
p
(
x
)
p(x)
p(x)是什么?
刚才我们假设了
p
(
x
)
=
∫
l
(
x
)
x
˙
dt
p(x)=\int l(x)\dot x \ \text{dt}
p(x)=∫l(x)x˙ dt,所以,也存在如下关系:
l
(
x
)
=
∂
p
(
x
)
∂
x
→
d
p
(
x
)
d
t
=
l
(
x
)
x
˙
(7)
l(x)=\frac{\partial p(x)}{\partial x} \ \ \rightarrow \ \ \frac{\text{d} p(x)}{\text{d}t}=l(x)\dot{x} \tag{7}
l(x)=∂x∂p(x) → dtdp(x)=l(x)x˙(7)
所以,如何确定
p
(
x
)
p(x)
p(x)呢?有两种方式,一种是先选定
l
(
x
)
l(x)
l(x),然后对
x
x
x积分,求
p
(
x
)
p(x)
p(x)。另一种方式则是,先自由选定
p
(
x
)
p(x)
p(x),但是
l
(
x
)
l(x)
l(x)则必须满足上述关系式(7)。
3 实际例子
下面以一个实际系统为例,演示NDOB的使用方法:
存在一个二阶非线性系统,如下:
x
˙
1
=
x
2
x
˙
2
=
−
k
∣
x
2
∣
x
2
+
b
u
+
d
\begin{aligned} \dot{x}_1&=x_2\\ \dot{x}_2&=-k|x_2|x_2+bu+d \end{aligned}
x˙1x˙2=x2=−k∣x2∣x2+bu+d
其中,
x
1
x_1
x1代表位置,
x
2
x_2
x2代表速度,
u
u
u代表控制,
d
d
d代表扰动。
针对第二个式子:
x
˙
2
=
−
k
∣
x
2
∣
x
2
+
b
u
+
d
\dot{x}_2=-k|x_2|x_2+bu+d
x˙2=−k∣x2∣x2+bu+d
其中:
f
(
x
)
=
−
k
∣
x
2
∣
x
2
,
g
1
(
x
)
=
b
,
g
2
(
x
)
=
1
f(x)=-k|x_2|x_2,g_1(x)=b,g_2(x)=1
f(x)=−k∣x2∣x2,g1(x)=b,g2(x)=1
设计
l
(
x
)
=
c
l(x)=c
l(x)=c,则有:
p
(
x
)
=
c
x
2
p(x)=cx_2
p(x)=cx2
定义中间变量
z
=
d
^
−
p
(
x
)
z=\hat{d}-p(x)
z=d^−p(x)
于是,扰动观测器的形式为:
z
˙
=
−
l
(
x
)
g
2
(
x
)
z
−
l
(
x
)
[
f
(
x
)
+
g
1
(
x
)
u
+
g
2
(
x
)
p
(
x
)
]
=
−
c
z
−
c
(
−
k
∣
x
2
∣
x
2
+
b
u
+
c
x
2
)
d
^
=
z
+
p
(
x
)
=
z
+
c
x
2
\begin{aligned} \dot{z}&=-l(x)g_2(x)z-l(x)\left[f(x)+g_1(x)u+g_2(x)p(x)\right]\\ &=-cz-c(-k|x_2|x_2+bu+cx_2)\\ \hat{d}&=z+p(x)=z+cx_2 \end{aligned}
z˙d^=−l(x)g2(x)z−l(x)[f(x)+g1(x)u+g2(x)p(x)]=−cz−c(−k∣x2∣x2+bu+cx2)=z+p(x)=z+cx2
4 参考文献
[1] Wen-Hua Chen et. al. A Nonlinear Disturbance Observer for Robotic Manipulators, 2000
[2] Wen-Hua Chen et. al. Disturbance-Observer-Based Control and Related Methods—An Overview, 2016