自抗扰控制的入门学习(一)—— 前言

2023-05-16

自抗扰控制的入门学习(一)——前言

与很多人一样,接触这个算法之后心态也经历过,从一开始的‘不明觉厉’,中途的‘不以为然’,到最后的‘辩证看待’的演变过程。借用别人的话,自抗扰的学习也可以本着这样的求学心态,以及一点点的建立起相应的框架。从研二上开始接触自抗扰控制,到仿真demo的搭建与学习,再到实际应用与参数整定这块。有必要重新温习旧知,并系统带入式学习下自抗扰,这也是本博客的前序。

1了解自抗扰?

自抗扰(ADRC)核心是其独特的总扰动理念,即系统内部和外部不确定性等效在输入端的总和效应。自抗扰开创性地把包括未知动态的总扰动定义为另一个状态,即扩张状态,目的是通过输入和输出信号实时地提取这个总扰动信息,再用控制力抵消这个系统整体上的不确定性,实现了“指南车”的效果。

1.1简单了解

自抗扰控制01:为何ADRC会成为百年PID算法的继承者?

自抗扰控制01:为何ADRC会成为百年PID算法的继承者?
http://news.eeworld.com.cn/mp/ZLG/a23516.jspx

自抗扰控制02: ADRC如何避免执行错误命令?

自抗扰控制02: ADRC如何避免执行错误命令?
http://news.eeworld.com.cn/mp/ZLG/a23513.jspx

自抗扰控制03: ADRC对快速控制有何奇招?

自抗扰控制03: ADRC对快速控制有何奇招?
http://news.eeworld.com.cn/mp/ZLG/a23511.jspx

也可以看下最近郭宝玲博士所写的《ADRC一点入门经验分享》以及含所做的仿真与实验研究,参考文献资料
ADRC入门的学习资料包

或者可以看下高志强教授在暑假培训这个阶段讲授的自抗扰培训班资料及仿真应用等,其中之一如下:

何谓自抗扰?

1.2直观感受

可以看下这个b站上的视频,感受下ADRC与PID控制效果输出,如下:

ADRC vsPID 抗扰实验

L1自适应控制和ADRC控制比较

ADRC vs PID 弹簧负载实验对比

ADRC vs PID 四轴控制

1.3博主理解

之前读文献讲到ADRC“小误差大增益,大误差小增益”不太理解,也不能明白为什么就可以缓解了超调和快速控制的矛盾。现在重看资料发现,PID控制器如果针对是固定增益下,有扰动工况下或者内部参数摄动,系统特性变了,那么固定增益下自然而然也就不适用了。**那么,ADRC自抗扰控制则是将输入输出直接建立误差联系,把影响/干扰输出的“等效总输出量”视为总扰动。以转速环自抗扰控制为例,ADRC不管电压和转速的真实物理关系是什么样的,它只按设定好的b0去控制,它认为当前电压是u,反馈转速应该是ub0,但凡如果实际转速有不同,产生偏差都认为是扰动(观测出总扰动),当然这个总扰动可能是外部阻力变化引起的,也可能是电机内部参数估计不准引起的。***接着,将所观测总扰动除以b0后,直接补偿到u输出。这样比起PID控制需要产生误差后,还要进行比例积分微分产生控制量,往往会缩短作用路径与时间。

其实就是在小误差范围内快速响应控制,然而在大误差下较强的控制量往往会带来系统的超调甚至不稳定,或者是可能外部内部的因素已经导致了系统的不稳定,由此便有了下图:

在这里插入图片描述
图1 增益曲线

如图1所示,工作时,误差一般控制在“+阀值”和“-阀值”之间,这一段曲线的斜率很大,也就是说增益很大,只要出现一点点的误差,就输出很大的控制量,具有很强的跟踪能力。但是如果误差超过“+阀值”或“-阀值”,增益还是如此大,系统就可能出现超调、震动等不良现象。所以超过“+阀值”或“-阀值”后,要降低增益,即斜率要减少,避免超调和震动。这种“小误差大增益,大误差小增益”的做法调和了超调和快速控制的矛盾,但是这需要复杂的指数运算,实际工程中的单片机运算速度有限,未必是最好的。

2学习自抗扰?

2.1可利用的资源

在这里插入图片描述
B站的讲座:https://space.bilibili.com/408884199 B站的讲座:

在这里插入图片描述
弄懂 ADRC 需要哪些基础知识?弄懂 ADRC 需要哪些基础知识?
https://www.zhihu.com/question/308600280/answer/1270674417

自抗扰控制基础

控制算法手记-自抗扰控制的几点思考
https://zhuanlan.zhihu.com/p/260480454

控制算法手记-自抗扰控制的几点思考

关于ADRC的一些粗鄙之语
https://zhuanlan.zhihu.com/p/156228260

关于ADRC的一些粗鄙之语

https://www.zhihu.com/question/64738752/answer/1033150032

整理并输出如下:
在这里插入图片描述

2.2关注大佬动态

自抗扰控制理论(一)ADRC的原理

待续…

2.3文献和书籍

1.韩京清.自抗扰控制技术——估计补偿不确定因素的控制技术[M].国防工业出版社:北京,2008:1-end.
2.朱斌.自抗扰控制入门[M].北京航空航天大学出版社:北京,2017:36-42.
3.韩京清, 控制理论——模型论还是控制论. 系统科学与数学, 1989, 9(4): 328-325.

3总结

ADRC的基本思路是(标准型+总扰动观测补偿),从而达到简化‘被控对象系统特性’目的,将以往高度依赖模型的控制器设计问题转化为系统抗扰(总扰动补偿)问题。后续博主开始自抗扰控制的总结与学习,欢迎大家交流与学习!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自抗扰控制的入门学习(一)—— 前言 的相关文章

随机推荐

  • px4室内飞行通过SLAM发送位置消息

    先按照官方的教程设置好飞控参数 http docs px4 io master zh computer vision visual inertial odometry html 下载源码学习 xff1a https github com A
  • MCUXpresso调试FreeRTOS时显示多线程

    多线程程序调试起来确实麻烦 xff0c 在调试过程中默认只能看到当前线程 按照以下配置即可在程序暂停时查看多线程的状态 xff1a 在debug配置中选中下图所示 xff1a 配置完成后再调试程序即可显示多线程
  • px4 编译生成msg消息机制及将其移植方法

    目录 一 在px4中添加新的Topic 二 px4生成msg生成的结构体优势 三 msg生成工具及移植方法 一 在px4中添加新的Topic 在px4中是通过uorb进行消息的传递 xff0c 通过根目录下的msg文件可以添加自定义的消息
  • px4传感器数据sensor模块整理

    涉及传感器数据的流程 xff0c 大致整理如下图 传感器的数据从drivers中调用lib中dirvers对应的对象更新数据并发布出去 xff0c sensor模块通过订阅原始数据和校准参数 xff0c 对数据滤波并更正 xff0c 然后再
  • C#实现程序一次打开两个窗口,两个窗口分别放置在两个屏幕

    这是本人在编程中碰到的一个问题 xff0c 寻找了其他案例 xff0c 都只是同时打开两窗口 xff0c 但不能实现在拥有两块显示屏时候 xff0c 分别将两个不同的窗口显示在两个单独的屏幕 源代码https download csdn n
  • 探寻C#事件本质

    我最先在学习C 事件的时候 xff0c 阅读了许多书籍 xff0c 但总是不能对事件建立起一个比较清晰的概念 xff0c 对其内部机制和原理也是似是而非 xff0c 因为这些书籍在描述事件的时候总是夹杂许多其他不能理解的抽象术语 xff0c
  • C#chart绘折线图动态添加数据

    C 入门基础 xff0c 实现chart控件动态添加数据 源程序https download csdn net download qq 42237381 10742048 目录 一 效果示意 二 原理说明 三 代码参考 一 效果示意 最终程
  • C#Winform程序制作仿真地平仪,磁罗盘飞行仪表盘

    因为项目需要做一个电子飞行仪表盘包括地平仪和磁罗盘 xff0c 网上找了很久 xff0c 没有找到一个合适的控件 xff0c 就学习了一些图形处理的开源代码做一个简陋的仪表盘来使用 xff0c 希望对其他人有帮助 xff0c 如果有好的建议
  • pixhawk学习

    原文转载至https blog csdn net u013181595 article details 80976610 1硬件架构分析 Pixhawk是一款基于ARM芯片的32位开源飞控 xff0c 由ETH的computer visio
  • 由浅入深对卡尔曼滤波的学习

    原文来自http shequ dimianzhan com articles 337 extended kalman filter course from shallow to deep 搬运过来好好学习 本篇译文翻译自 The Exten
  • px4中mixer_multirotor.cpp混控程序解读

    目录 一 函数说明 二 具体步骤 1 简单混控无边界 无边界输出 不混合偏航 2 限幅 3 加入比例缩放和偏航 使输出范围限制在 0 1 4 融合怠速处理 一 函数说明 混控函数在MIX函数 MultirotorMixer mix floa
  • pixhawk飞控板基于px4程序中串口调试打印数据的方法

    px4程序模块化非常的清晰 但程序也是非常的庞大 不同于一般程序员的编程惯例 所谓程序入参出参直白明显 px4的程序大多采用全局变量 而且使用UORB的通讯 使程序调用非常方便 但是使程序的可读性降低了很多 没有花一定的时间去研读很难看懂程
  • 安装win10和Ubuntu双系统开机启动项问题总结

    补充一下 xff0c 前面这是几年前刚开始用双系统的写的博客 xff0c 经验少 xff0c 但也适用于新电脑安装快 xff0c 在老电脑上装ubuntu不用这么麻烦了直接看后面的 目录 新电脑 xff08 系统没啥东西 xff09 自动分
  • pixhawk飞控板添加额外pwm输出通道控制开伞或舵机转动实现功能

    学习大佬的文章 xff0c 贴图来用 https blog csdn net dai93 article details 89852241 这是输出流的大致示意 如果在飞控需要控制单独的舵机 xff0c 可以自定义一个pwm通道输出 xff
  • px4 实现发送自定义mavlink协议消息解锁飞控板以及切换飞行模式

    原理 xff1a 通过mavlink控制台可以执行命令 xff0c 在循环中调用控制台指令的函数就行了 查阅commander文件下 所有模式切换都在commder main函数 int commander main int argc ch
  • pixhawk配置垂直起降无人机

    我使用的版本里面没有找到 43 型尾座式垂直起降无人机 就先用x型无人机了 查看代码 发现在init d目录下id号为13003 待续
  • 关于def __init__(self)

    首先说明一下 xff0c def init self 是用于初始化类 但是我们实际程序阅读过程中会发现 xff0c 这部分经常有两种状况 1 def init self xff0c 不带参数 xff0c 此处借鉴另一位博主的程序做一下分析
  • 《机器学习》周志华 集成学习

    8 1个体集成 个体学习器可以由 C4 5决策树算法 BP神经网络等 来训练 个体学习器 同质 gt 叫基学习器 也叫弱学习器 指泛化性能略优于随机猜测的学习器 xff0c 如二分类问题上精度略高于50 的分类器 相应的算法叫做 基学习算法
  • 【Windows内核编程】Win10/Win11通过PspCidTable取得EProcess

    温馨提示 本文的内容均在Windows 11 Enterprise 22000 466 版本下测试 不同版本的部分内容可能存在差异 xff0c 但万变不离其中 Upadate 20220803 经测试 xff0c 本文内容目前向下兼容 正文
  • 自抗扰控制的入门学习(一)—— 前言

    自抗扰控制的入门学习 xff08 一 xff09 前言 与很多人一样 xff0c 接触这个算法之后心态也经历过 xff0c 从一开始的 不明觉厉 xff0c 中途的 不以为然 xff0c 到最后的 辩证看待 的演变过程 借用别人的话 xff