本文主要是介绍我对ADRC的一些整理(很多来自其他博客),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
ADRC控制中包含三个主要的部分:
跟踪微分器,非线性状态反馈(非线性组合),扩张观测器。
https://blog.csdn.net/sinat_16643223/article/details/107857559
他这里让我很好理解了跟踪微分器
话说PID不是有微分先行的PID么,起到的作用是不是和这里的跟踪微分器类似?这是我在看一个硕士论文时发现的,当然之前智能车的书上也讲了微分先行PID
非线性PID(准确说是非线性PD,所以可以看到输入是两根线而不是三根线) 也就是说传统PID是线性的?但是不是那些系统是非线性的,比如无人机,平衡车,只是小幅度里近似为线性的。
下面这个来自于:https://zhuanlan.zhihu.com/p/115283894
他这里确实让我对ADRC的理解更进了一个层面。现在对ADRC有了比较清晰的认识,并不神秘并不高深,其实还好。还是很好理解的。
下面这个来自这篇https://zhuanlan.zhihu.com/p/115283894
扩张状态观测器(ESO)
(1)功能
估计系统内外扰动的实时作用值,并在反馈中给予补偿,用补偿的方法消除扰动的影响,从而具有抗干扰的作用。
所以它的输入是从被控对象的前后两个输入,这样也好理解。
扩张观测器里面就要列状态方程了,就信号与系统里面学到的东西,你很熟悉了吧,应该是这块需要建模。所以可以说ADRC把传统PID和现代的控制理论结合起来,而且把线性PID升级为非线性PID。
既然本质是一个PD控制器,那么需不需要进行PD的调参呢?
https://mp.csdn.net/console/editor/html/108805161
通过将干扰扩张成为系统的状态变量,进行干扰补偿,进而降低干扰的影响
https://blog.csdn.net/weixin_38291293/article/details/97100236
那个扩张的一维好像是又求了一次导,本身已经输出z ,z的导数,似乎第三个是z的导数的导数。
https://blog.csdn.net/sinat_16643223/article/details/108792926
无名的ADRC程序里面也是这样的,Z3确实就是加速度了。这么来看,ESO似乎也不复杂啊。
https://blog.csdn.net/sinat_16643223/article/details/108807280
无名的ADRC代码里对ADRC过程的注释说明
https://blog.csdn.net/sinat_16643223/article/details/108807280
所以你再看到下面这种就明白什么意思了,就是在说跟踪微分器
https://blog.csdn.net/sinat_16643223/article/details/108805757
https://blog.csdn.net/sinat_16643223/article/details/108807280
这篇关于我对ADRC的一些整理(很多来自其他博客)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!