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

朴素NDOB观测器

假设非线性系统方程为
x ˙ = f ( x ) + g 1 ( x ) u + g 2 ( x ) d y = 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)​
其中 d d d 为扰动, u u u 为控制量,我们期望对扰动进行估计,不妨假设扰动为 d ^ \hat d d^ ,那么扰动的估计误差为
d ~ = d − d ^ \tilde d = d - \hat d d~=d−d^
对扰动误差 d ~ \tilde d d~ 求导,可得(这里注意,我们对真实扰动没有一点先验知识,这里最不失一般性的假设就是,她的导数为0):
d ~ ˙ = d ˙ − d ^ ˙ = − d ^ ˙ \dot {\tilde d} = \dot d - \dot {\hat d} = - \dot {\hat d} d~˙=d˙−d^˙=−d^˙
为了让 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~ 的趋近律,也就是我们希望扰动的估计误差如何趋近于0,我们可以任意选择 l ( x ) l(x) l(x) ,只要保证上面的误差估计趋近于0即可。

基于上述的趋近律,我们带入到非线性系统方程可以得到:
d ^ ˙ = l ( x ) g 2 ( x ) d ~ = l ( x ) g 2 ( x ) ( d − d ^ ) = l ( x ) ( g 2 ( x ) d − g 2 ( x ) d ^ ) = l ( x ) ( x ˙ − f ( x ) − g 1 ( x ) u − g 2 ( x ) d ^ ) = l ( x ) ( x ˙ − f ( x ) − g 1 ( x ) u ) − l ( x ) g 2 ( 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)(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^​
上面我们就推导了最为朴素的非线性扰动观测器,但是我们发现,这个扰动观测器需要用到 x ˙ \dot x x˙ 这一项,很明显,大多数系统都不可能得到这项的观测,所以这个观测器需要做一些改进。

改进NDOB观测器

最朴素的把 x ˙ \dot x x˙ 消掉的思路就是,在观测器的左右两遍同时减去 l ( x ) x ˙ l(x)\dot x l(x)x˙:
d ^ ˙ − l ( x ) x ˙ = l ( x ) ( − f ( x ) − g 1 ( x ) u ) − l ( x ) g 2 ( 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 x x˙ 这一项了,我们对等式的左右两边进行积分:
p ( x ) = ∫ l ( x ) x ˙ d x d ^ − p ( x ) = ∫ l ( x ) ( − f ( x ) − g 1 ( x ) u ) − l ( x ) g 2 ( x ) d ^ d x \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) ,那么对 z z z 进行求导可以得到:
z ˙ = l ( x ) ( − f ( x ) − g 1 ( x ) u ) − l ( x ) g 2 ( x ) d ^ = l ( x ) ( − f ( x ) − g 1 ( x ) u ) − l ( x ) g 2 ( x ) ( z + p ( x ) ) = l ( x ) [ − f ( x ) − g 1 ( x ) u + g 2 ( x ) p ( x ) ] − l ( x ) g 2 ( 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​​
上面是一个针对中间变量 z z z 的观测器,有了 z z z 以后,扰动估计量 d ^ \hat d d^ 也可以很容易得到:
d ^ = z + p ( x ) \hat d = z + p(x) d^=z+p(x)
这里我们实现了扰动的观测,还遗留了一个最重要的问题, p ( x ) p(x) p(x) 是什么,刚才我们假设了 p ( x ) = ∫ l ( x ) x ˙ d t p(x) = \int l(x)\dot x \ \text d t p(x)=∫l(x)x˙ dt,所以也存在了如下的关系:
l ( x ) = ∂ p ( x ) ∂ x → d p ( x ) d t = 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)=∂x∂p(x)​→dtdp(x)​=l(x)x˙
如何确定 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) 则必须满足上述关系。

李雅普诺夫证明稳定性

假设李雅普诺夫函数
V = 1 2 d ~ 2 V=\frac {1} {2} \tilde d ^ 2 V=21​d~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 ) − g 1 ( x ) u + g 2 ( x ) p ( x ) ] − l ( x ) g 2 ( x ) z + l ( x ) x ˙ = 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 ) = l ( x ) g 2 ( x ) p ( x ) − l ( x ) g 2 ( x ) z + l ( x ) g 2 ( x ) d = l ( x ) g 2 ( x ) ( p ( x ) − z + d ) = l ( x ) g 2 ( 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 ) g 2 ( x ) d ~ = − l ( x ) g 2 ( x ) d ~ 2 = − 2 l ( x ) g 2 ( 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 ˙ ≤ − K V λ ; K , λ > 0 \dot V \le -KV^{\lambda} \ ;K,\lambda > 0 V˙≤−KVλ ;K,λ>0
所以系统稳定

实际的控制例子

一个二阶系统如下
x ˙ 1 = x 2 x ˙ 2 = − k ∣ x 2 ∣ x 2 + b u + d \begin{align} \dot x_1 &= x_2\nonumber \\ \dot x_2 &= -k|x_2|x_2+bu+d\nonumber \\ \end{align} x˙1​x˙2​​=x2​=−k∣x2​∣x2​+bu+d​​
其中 x 1 x_1 x1​ 代表位置, x 2 x_2 x2​ 代表速度, u u u 是控制量, d d d 代表扰动。
{ f ( x ) = − k ∣ x 2 ∣ x 2 g 1 ( x ) = b g 2 ( 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)=−k∣x2​∣x2​g1​(x)=bg2​(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{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)z−l(x)[f(x)+g1​(x)u+g2​(x)p(x)]=−cz−c(−k∣x2​∣x2​+bu+cx2​)=z+p(x)=z+cx2​​

注意

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

非线性扰动观测器(NDOB)相关推荐

  1. 基于扰动观测器的非线性系统控制

    基于干扰观测器的控制(NDOBC,nonlinear disturbance observer based control) 模型的建立:--将非线性系统描述为: 其中,x.u.d分别为状态向量.输入 ...

  2. 电子科技大学计算机导师李珂,李珂-控制科学与工程学院

    李珂,博士,教授,中国自动化学会车辆控制与智能化专委会委员兼副秘书长,中国电工技术学会电控系统与装置专业委员会.中国自动化学会电气自动化专业委员会委员."新能源发电与高效节能系统优化控制理论 ...

  3. 线性矩阵不等式LMI的运用与Lipschitz非线性系统观测器的设计

    线性矩阵不等式(LMI)是有如下形式的一种约束描述:(1) 其中:是m个实数变量,称为线性矩阵不等式(1)的决策变量:是由决策变量构成的向量,称之为决策向量:是一组给定的实对称矩阵:(1)式中的不等号 ...

  4. matlab定子磁链观测器,一种基于二阶广义积分器的永磁同步电机定子磁链观测方法...

    2 仿真研究本文引用地址:http://www.eepw.com.cn/article/276359.htm 为了验证本文所提出的基于ISOGI的定子磁链观测器的优越性,进行了基于MATLAB/Sim ...

  5. 【控制】滑动模式观测器 sliding mode observer

    滑动模式观测器 sliding mode observer 滑动模式观测器(Sliding mode observer)是应用滑动模式控制的状态观测器,应用滑动模式控制的技术,使观测器的状态可以接近受 ...

  6. 全阶滑模观测器程序_基于全阶状态滑模观测器的异步电机转子磁链观测_杨淑英...

    摘要 : 矢量控制的关键在于转子磁链定向.针对异步电机矢量控制中磁链观测问题, 设计了一种基于全 阶状态滑模观测器的增强型转子磁链观测方案.该方案将全阶磁链观测器和滑模观测器结合起来对异步电 机定子电 ...

  7. 三相pmsm矢量控制仿真模型_学术|基于新型滑模观测器的永磁同步电机无传感器矢量控制系统...

    北京交通大学电气工程学院的研究人员张立伟.李行.宋佩佩.张鹏.云蓝斯,在2019年<电工技术学报>增刊1上撰文指出,现代永磁同步电机矢量控制系统中多采用机械式速度传感器检测转子位置和转速信 ...

  8. 滑膜观测器物理意义_电机控制中的滑模控制(滑模观测器设计)

    本文小结一下,电机无位置控制中的一种--滑模观测器的设计,还有自适应观测器的设计等其他内容,等有时间之后再来总结.现代永磁同步电机控制原理及MATLAB仿真 永磁同步电机无位置传感器控制系统的研究与设 ...

  9. 全阶滑模观测器程序_滑模观测器转子估算程序

    // 建立电流滑模观测器 EpreIaf = _IQmpy(Fsmo,EpreIaf) + _IQmpy(Gsmo,(Vaf-Eaf-Zaf)); EpreIbt= _IQmpy(Fsmo,EpreI ...

最新文章

  1. postman测试上传文件
  2. Hacker's Browser
  3. 孝感职称计算机考试时间,孝感2017年职称计算机考试报名3月中下旬
  4. POJ1265(Pick定理的应用)
  5. 亮剑:PHP,我的未来不是梦(11)
  6. leecode62 不同路径
  7. Java并发编程实战~Happens-Before 规则
  8. 几个重要库函数的实现
  9. Ndarry 拉伸为一个list
  10. 学地球物理的如何搞好软件开发
  11. GetPrivateProfileString的问题,获得的CString结构有问题,高手指点
  12. python内置max()、min()函数与Numpy自带的max()、min()函数性能对比分析
  13. bilibili开源弹幕库UML类图
  14. window电脑H265(HEVC)编码的mp4不显示缩略图解决办法
  15. QT creator安装教程
  16. LG手机无法连接adb
  17. 寻找生态位置,中小险企破局生态建设——保险生态建设...
  18. 公共IPV6 dns大全
  19. SpringBoot实现OA办公管理系统
  20. liferay portal 中文安装指南

热门文章

  1. HDU-1207 汉诺塔II
  2. 【Python】类与对象
  3. 2台博能传动伺服驱动器使用105报文(DSC)实现绝对齿轮同步
  4. 微信小程序使用echarts雷达图遇到的坑
  5. Linux-hexdump命令调试event驱动
  6. ushort mysql,Mysql的CodeFirst:不支持ushort、uint、ulong的字段提示不足
  7. Joins – NLJ
  8. Java 字符串数组转化为对象
  9. 钉钉小程序实现富文本编辑
  10. 超越Spark,大数据集群计算的生产实践