非线性扰动观测器NDOB的推导与实例

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~=dd^
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)(dd^)=l(x)(x˙f(x)g1(x)ug2(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)zl(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)=xp(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=kx2x2+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=kx2x2+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)=kx2x2,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)zl(x)[f(x)+g1(x)u+g2(x)p(x)]=czc(kx2x2+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

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值