当前位置: 首页 > article >正文

非线性扰动观测器的基本设计

非线性扰动观测器的基本设计


目录

  • 非线性扰动观测器的基本设计
    • 前言
    • 问题描述
    • 扰动观测器设计
    • 小结
    • 参考资料

前言

因为看到论文中有扰动观测器的设计,但只是大概地明白设计的原理,实际上不明白扰动观测器是如何设计出来的。因此在查阅了相关文献和文章后,将学习到的基本的扰动观测器的设计记录如下。

问题描述

考虑如下这个一个系统
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\\ y&=h(x)\\ \end{aligned}\qquad(1) x˙y=f(x)+g1(x)u+g2(x)d=h(x)(1)
其中, f ( x ) 、 g 1 ( x ) 、 g 2 ( x ) 、 h ( x ) f(x)、g_1(x)、g2(x)、h(x) f(x)g1(x)g2(x)h(x)都是已知且光滑的连续函数, d d d是未知扰动,如何设计扰动观测器估计未知扰动 d d d

扰动观测器设计

按照之前学习的自适应控制的思想来看,设定扰动估计量 d ^ \hat d d^,扰动误差为 d ~ = d ^ − d \tilde d=\hat d -d d~=d^d

求取误差的动态方程: d ~ ˙ = d ^ ˙ − d ˙ \dot {\tilde d}=\dot {\hat d}-\dot d d~˙=d^˙d˙

在这里我们考虑慢时变的外部扰动,即 d ˙ = 0 \dot d=0 d˙=0,其实此时可以利用自适应控制率来实现对外部扰动的估计了,不过这里是学习基本的扰动观测器。

根据控制理论,如果我们希望 d ~ ˙ \dot {\tilde d} d~˙趋于0,我们可以设计其满足如下的控制率
d ~ ˙ = − l ( x ) g 2 ( x ) d ~ ( 2 ) \dot {\tilde d}=-l(x)g_2(x)\tilde d \qquad(2) d~˙=l(x)g2(x)d~(2)
很显然该控制率从李雅普诺夫稳定性理论来看, d ~ ˙ \dot {\tilde d} d~˙会收敛到0

将误差的动态方程带入到控制率中
d ~ ˙ = d ^ ˙ = − l ( x ) g 2 ( x ) d ~ = − l ( x ) g 2 ( x ) ( d ^ − d ) = − l ( x ) g 2 ( x ) d ^ + l ( x ) ( x ˙ − f ( x ) − g 1 ( x ) u ) ( 3 ) \begin{aligned} \dot {\tilde d}&=\dot {\hat d}\\ &=-l(x)g_2(x)\tilde d\\ &=-l(x)g_2(x)(\hat d -d)\\ &=-l(x)g_2(x)\hat d+l(x)(\dot x-f(x)-g_1(x)u) \end{aligned}\qquad(3) d~˙=d^˙=l(x)g2(x)d~=l(x)g2(x)(d^d)=l(x)g2(x)d^+l(x)(x˙f(x)g1(x)u)(3)
在公式(3)中我们带入了公式(1)的原系统,用以表示 g 2 ( x ) d g_2(x)d g2(x)d。但是上述公式中 x ˙ \dot x x˙是无法得到的变量,因此需要对上述公式进行变换,在两边分别减去 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 ) ( 4 ) \begin{aligned} \dot{\hat d}-l(x)\dot x&=-l(x)g_2(x)\hat d+l(x)(-f(x)-g_1(x)u)\qquad(4) \end{aligned} d^˙l(x)x˙=l(x)g2(x)d^+l(x)(f(x)g1(x)u)(4)
针对公式(4)进行积分
d ^ − p ( x ) = ∫ − l ( x ) g 2 ( x ) d ^ + l ( x ) ( − f ( x ) − g 1 ( x ) u ) d t ( 5 ) \hat d -p(x)=\int_{}^{}-l(x)g_2(x)\hat d+l(x)(-f(x)-g_1(x)u)dt \qquad(5) d^p(x)=l(x)g2(x)d^+l(x)(f(x)g1(x)u)dt(5)
其中 p ( x ) = ∫ l ( x ) x ˙ d t p(x)=\int_{}^{}l(x)\dot xdt p(x)=l(x)x˙dt,令 z = d ^ − p ( x ) z=\hat d-p(x) z=d^p(x),并对公式(5)进行求导,得到
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 − l ( x ) g 2 ( x ) p ( x ) ) d ^ = z + p ( x ) ( 6 ) \begin{aligned} \dot 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-l(x)g_2(x)p(x))\\ \hat d&=z+p(x) \end{aligned} \qquad(6) z˙d^=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)ul(x)g2(x)p(x))=z+p(x)(6)
这就是我们看到论文中的扰动观测器的基本原型了,很多都是从这个原型进行变化的,并且要注意到 l ( x ) l(x) l(x)的选择是有要求的。
p ( x ) = ∫ l ( x ) x ˙ d t d p ( x ) d t = l ( x ) d x d t l ( x ) = ∂ p ( x ) ∂ x p(x)=\int_{}^{}l(x)\dot xdt\\ \frac{dp(x)}{dt}=l(x)\frac{dx}{dt}\\ l(x) = \frac{\partial p(x)}{\partial x} p(x)=l(x)x˙dtdtdp(x)=l(x)dtdxl(x)=xp(x)
因此 l ( x ) l(x) l(x)需要满足 l ( x ) = ∂ p ( x ) ∂ x l(x) = \frac{\partial p(x)}{\partial x} l(x)=xp(x),参考别人的文章,确定 l ( x ) l(x) l(x) p ( x ) p(x) p(x)一般有两种方法,1.首先选定 l ( x ) l(x) l(x),再积分;2.选定 p ( x ) p(x) p(x),再求导得到 l ( x ) l(x) l(x)

小结

本文针对非线性扰动观测器的设计进行了基本的解释,我学习的还很浅显,遇到具体问题还需要具体分析,进行些许的变形。如果后续学习到新的东西再过来补充更新。

参考资料

  1. Do K D . Practical control of underactuated ships[J]. Ocean Engineering, 2010, 37( 13):1111-1119.
  2. Chen W H , Yang J , Guo L , et al. Disturbance-Observer-Based Control and Related Methods—An Overview[J]. IEEE Transactions on Industrial Electronics, 2016, 63(2):1083-1095.
  3. Chen W H , Ballance D J . A nonlinear disturbance observer for robotic manipulators[J]. Industrial Electronics IEEE Transactions on, 2000, 47(4):932-938.
  4. Chen W H . Disturbance observer based control for nonlinear systems[J]. IEEE/ASME Transactions on Mechatronics, 2004, 9(4):706-710.
  5. 非线性扰动观测器NDOB的推导与实例 - 知乎 (zhihu.com)

如果您觉得我写的不错,麻烦给我一个免费的赞!如果内容中有错误,也欢迎向我反馈。


http://www.kler.cn/a/15959.html

相关文章:

  • 坚果云·无法连接服务器(无法同步)
  • 鸿蒙学习生态应用开发能力全景图-开发者支持平台(5)
  • ubuntu 22.04 shell
  • 黑马嵌入式开发入门模电基础学习笔记
  • 直接映射缓存配置
  • 65 mysql 的 表元数据锁
  • WhatsApp CRM:通过 CRM WhatsApp 集成向客户发送消息
  • 【dp动态规划】拿金币问题
  • Anaconda安装nbextensions
  • DateFormat使用时需要注意:多线程下需要特殊处理
  • NTT入门 开拓者的卓识
  • Pycharm卡顿、反应慢、CPU占用高
  • 嘉明的数据结构学习Day5——作栈和队列以及它们的顺序存储与链式存储的实现
  • D触发器仿真实验
  • 【高危】泛微 e-cology <10.57 存在 SQL注入漏洞(POC)(MPS-ndqt-0im5)
  • SVG中line标签的使用以及其外观属性的运用
  • 小程序获取input的值,以及绑定输入事件
  • 使用物联网技术进行肥胖管理是可行的吗?
  • 第四十四章 管理镜像 - 传入日记传输率
  • 配置 RT-Thread 的工程目录
  • 【14.HTML-移动端适配】
  • 人工智能技术在建筑能源管理中的应用场景
  • AI绘画——Lora模型Niji-Expressive V2 launch(灵动优雅,张力尽显)
  • LabVIEW CompactRIO 开发指南 3 选择CompactRIO编程模式
  • 架构基本概念和架构本质
  • 这年头,谁还在「贩卖」生活方式?