非线性扰动观测器(NDOB)

文章介绍了非线性干扰观测器(NDOB)的基本概念,通过数学推导展示了一个朴素的NDOB设计过程,以及如何通过李雅普诺夫稳定性理论来优化和证明其性能。文章还提供了一个二阶系统的实例,展示了NDOB如何应用于实际控制系统中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

干扰观测器是控制中非常常见的一种方法,本节推导的是一种简单的非线性干扰观测器NDOB

朴素NDOB观测器

假设非线性系统方程为
x˙=f(x)+g1(x)u+g2(x)dy=h(x) \begin{align} \dot x &= f(x) + g_1(x)u + g_2(x)d \nonumber\\ y &= h(x) \nonumber \end{align} x˙y=f(x)+g1(x)u+g2(x)d=h(x)
其中 ddd 为扰动,uuu 为控制量,我们期望对扰动进行估计,不妨假设扰动为 d^\hat dd^ ,那么扰动的估计误差为
d~=d−d^ \tilde d = d - \hat d d~=dd^
对扰动误差 d~\tilde dd~ 求导,可得(这里注意,我们对真实扰动没有一点先验知识,这里最不失一般性的假设就是,她的导数为0):
d~˙=d˙−d^˙=−d^˙ \dot {\tilde d} = \dot d - \dot {\hat d} = - \dot {\hat d} d~˙=d˙d^˙=d^˙
为了让 d~\tilde dd~ 尽快收敛,我们可以命令其等于如下形式
d~˙=−d^˙=−l(x)g2(x)d~ \dot {\tilde d} = - \dot {\hat d} =-l(x)g_2(x){\tilde d} d~˙=d^˙=l(x)g2(x)d~
上面这个等式是我们人为设计的一种 d~\tilde dd~ 的趋近律,也就是我们希望扰动的估计误差如何趋近于0,我们可以任意选择 l(x)l(x)l(x) ,只要保证上面的误差估计趋近于0即可。

基于上述的趋近律,我们带入到非线性系统方程可以得到:
d^˙=l(x)g2(x)d~=l(x)g2(x)(d−d^)=l(x)(g2(x)d−g2(x)d^)=l(x)(x˙−f(x)−g1(x)u−g2(x)d^)=l(x)(x˙−f(x)−g1(x)u)−l(x)g2(x)d^ \begin{split} \dot {\hat d} &= l(x)g_2(x){\tilde d} \\ &= l(x) g_2(x) (d - {\hat d}) \\ &= l(x) (g_2(x)d - g_2(x){\hat d}) \\ &= l(x) (\dot x - f(x) - g_1(x)u - g_2(x){\hat d}) \\ &= l(x) (\dot x - f(x) - g_1(x)u) - l(x)g_2(x){\hat d} \end{split} d^˙=l(x)g2(x)d~=l(x)g2(x)(dd^)=l(x)(g2(x)dg2(x)d^)=l(x)(x˙f(x)g1(x)ug2(x)d^)=l(x)(x˙f(x)g1(x)u)l(x)g2(x)d^
上面我们就推导了最为朴素的非线性扰动观测器,但是我们发现,这个扰动观测器需要用到 x˙\dot xx˙ 这一项,很明显,大多数系统都不可能得到这项的观测,所以这个观测器需要做一些改进。

改进NDOB观测器

最朴素的把 x˙\dot xx˙ 消掉的思路就是,在观测器的左右两遍同时减去 l(x)x˙l(x)\dot xl(x)x˙:
d^˙−l(x)x˙=l(x)(−f(x)−g1(x)u)−l(x)g2(x)d^ \dot {\hat d} - l(x)\dot x = l(x) (- f(x) - g_1(x)u) - l(x)g_2(x){\hat d} d^˙l(x)x˙=l(x)(f(x)g1(x)u)l(x)g2(x)d^
这样公式的右侧就没有 x˙\dot xx˙ 这一项了,我们对等式的左右两边进行积分:
p(x)=∫l(x)x˙ dxd^−p(x)=∫l(x)(−f(x)−g1(x)u)−l(x)g2(x)d^ dx \begin{align} p(x) &= \int l(x)\dot x \ \text d x\nonumber\\ \hat d - p(x) &= \int {l(x) (- f(x) - g_1(x)u) - l(x)g_2(x){\hat d}} \ \text d x\nonumber \end{align} p(x)d^p(x)=l(x)x˙ dx=l(x)(f(x)g1(x)u)l(x)g2(x)d^ dx
设置一个中间变量 z=d^−p(x)z=\hat d - p(x)z=d^p(x) ,那么对 zzz 进行求导可以得到:
z˙=l(x)(−f(x)−g1(x)u)−l(x)g2(x)d^=l(x)(−f(x)−g1(x)u)−l(x)g2(x)(z+p(x))=l(x)[−f(x)−g1(x)u+g2(x)p(x)]−l(x)g2(x)z \begin{align} \dot z &= l(x) (- f(x) - g_1(x)u) - l(x)g_2(x){\hat d}\nonumber \\ &= l(x) (- f(x) - g_1(x)u) - l(x)g_2(x)(z + p(x))\nonumber \\ &= l(x) [- f(x) - g_1(x)u + g_2(x)p(x)] - l(x)g_2(x)z\nonumber \\ \end{align} z˙=l(x)(f(x)g1(x)u)l(x)g2(x)d^=l(x)(f(x)g1(x)u)l(x)g2(x)(z+p(x))=l(x)[f(x)g1(x)u+g2(x)p(x)]l(x)g2(x)z
上面是一个针对中间变量 zzz 的观测器,有了 zzz 以后,扰动估计量 d^\hat dd^ 也可以很容易得到:
d^=z+p(x) \hat d = z + p(x) d^=z+p(x)
这里我们实现了扰动的观测,还遗留了一个最重要的问题, p(x)p(x)p(x) 是什么,刚才我们假设了 p(x)=∫l(x)x˙ dtp(x) = \int l(x)\dot x \ \text d tp(x)=l(x)x˙ dt,所以也存在了如下的关系:
l(x)=∂p(x)∂x→dp(x)dt=l(x)x˙ l(x) = {\frac {\partial p(x)} {\partial x}} \to {\frac {\text d p(x)} {\text d t}} = l(x)\dot x l(x)=xp(x)dtdp(x)=l(x)x˙
如何确定 p(x)p(x)p(x) 呢?有两种方式,一种是先选定 l(x)l(x)l(x) ,然后对 xxx 积分,求 p(x)p(x)p(x) 。另一种方式则是,先自由选定 p(x)p(x)p(x) ,但是 l(x)l(x)l(x) 则必须满足上述关系。

李雅普诺夫证明稳定性

假设李雅普诺夫函数
V=12d~2 V=\frac {1} {2} \tilde d ^ 2 V=21d~2
对其求导,之前我们就假设了扰动的导数为0,即这个扰动是一个常数,反正波动不会很大
V˙=d~d~˙=d~(d˙−d^˙)=−d~d^˙ \dot V = \tilde d \dot {\tilde d} = \tilde d (\dot d - \dot {\hat d}) = - \tilde d \dot {\hat d} V˙=d~d~˙=d~(d˙d^˙)=d~d^˙
其中
d^˙=z˙+p˙(x)=z˙+l(x)x˙=l(x)[−f(x)−g1(x)u+g2(x)p(x)]−l(x)g2(x)z+l(x)x˙=l(x)[−f(x)−g1(x)u+g2(x)p(x)]−l(x)g2(x)z+l(x)(f(x)+g1(x)u+g2(x)d)=l(x)g2(x)p(x)−l(x)g2(x)z+l(x)g2(x)d=l(x)g2(x)(p(x)−z+d)=l(x)g2(x)d~ \begin {align} \dot {\hat d} &= \dot z + \dot p(x) \nonumber\\ &= \dot z + l(x){\dot x} \nonumber\\ &= l(x) [- f(x) - g_1(x)u + g_2(x)p(x)] - l(x)g_2(x)z + l(x){\dot x} \nonumber\\ &= l(x) [- f(x) - g_1(x)u + g_2(x)p(x)] - l(x)g_2(x)z + l(x)(f(x) + g_1(x)u + g_2(x)d )\nonumber \\ &= l(x)g_2(x)p(x) - l(x)g_2(x)z + l(x)g_2(x)d \nonumber\\ &= l(x)g_2(x)(p(x) - z + d) \nonumber\\ &= l(x)g_2(x){\tilde d}\nonumber \end {align} d^˙=z˙+p˙(x)=z˙+l(x)x˙=l(x)[f(x)g1(x)u+g2(x)p(x)]l(x)g2(x)z+l(x)x˙=l(x)[f(x)g1(x)u+g2(x)p(x)]l(x)g2(x)z+l(x)(f(x)+g1(x)u+g2(x)d)=l(x)g2(x)p(x)l(x)g2(x)z+l(x)g2(x)d=l(x)g2(x)(p(x)z+d)=l(x)g2(x)d~
所以
V˙=−d~d^˙=−d~l(x)g2(x)d~=−l(x)g2(x)d~2=−2l(x)g2(x)d~2 \begin {align} \dot V &= - \tilde d \dot {\hat d}\nonumber \\ &= -{\tilde d} l(x)g_2(x){\tilde d}\nonumber \\ &= -l(x)g_2(x){\tilde d}^2\nonumber \\ &= -2l(x)g_2(x){\tilde d}^2\nonumber \\ \end {align} V˙=d~d^˙=d~l(x)g2(x)d~=l(x)g2(x)d~2=2l(x)g2(x)d~2
**定理1:**若李雅普诺夫满足以下等式,则系统稳定
V˙≤−KVλ ;K,λ>0 \dot V \le -KV^{\lambda} \ ;K,\lambda > 0 V˙KVλ ;K,λ>0
所以系统稳定

实际的控制例子

一个二阶系统如下
x˙1=x2x˙2=−k∣x2∣x2+bu+d \begin{align} \dot x_1 &= x_2\nonumber \\ \dot x_2 &= -k|x_2|x_2+bu+d\nonumber \\ \end{align} x˙1x˙2=x2=kx2x2+bu+d
其中 x1x_1x1 代表位置,x2x_2x2 代表速度,uuu 是控制量, ddd 代表扰动。
{f(x)=−k∣x2∣x2g1(x)=bg2(x)=1 \begin{cases} f(x) = -k|x_2|x_2 \nonumber\\ g_1(x) = b\nonumber \\ g_2(x) = 1 \end{cases} f(x)=kx2x2g1(x)=bg2(x)=1

设计l(x)=cl(x) = cl(x)=c ,则有
p(x)=cx2 p(x) = cx_2 p(x)=cx2
定义中间变量为z=d^−p(x)z=\hat d-p(x)z=d^p(x) ,于是扰动观测器的形式为
z˙=−l(x)g2(x)z−l(x)[f(x)+g1(x)u+g2(x)p(x)]=−cz−c(−k∣x2∣x2+bu+cx2)d^=z+p(x)=z+cx2 \begin{align} \dot z &= -l(x)g_2(x)z-l(x)[f(x)+g_1(x)u+g_2(x)p(x)]\nonumber\\ &=-cz-c(-k|x_2|x_2 + bu + cx_2) \nonumber\\ \hat d &= z+p(x)=z+cx_2\nonumber \end{align} 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

注意

干扰必须是有界的,否则定理1将不成立,如果只参考结论的话,可以只看最后一个结论

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LyaJpunov

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值