目录

  • 感想
  • 复现书上的仿真图像
    • 第一章:剖析经典PID调节器
    • 第二章:跟踪微分器
    • 第三章:非光滑反馈的功能和效率
    • 第四章:扩张状态观测器
    • 第五章:自抗扰控制器
    • 第六章:自抗扰控制器的应用
  • 小结
  • 参考文献

感想

第一遍阅读看的稀里糊涂的,只能努力记住一些醒目的结论。
第二遍的时候,把书上大部分的仿真图像复现了一下,大概知道怎么用了(果然是看一遍不如抄一遍啊),也更加直观地体会到ADRC各个部分的功能和威力!( 其实也不太确定搭的模型是否正确,至少大部分仿真的图线跟书上的差不多吧…)

PS:MATLAB(2015b)的模型放在最后,正在研究韩京清教授ADRC算法的朋友可以拿去参考,希望大家多提意见,分享调试经验!

复现书上的仿真图像

第一章:剖析经典PID调节器

P19 考察如下二阶系统,

输入单位阶跃信号v0=1时的响应。参数a1,a2取成a1 = r.r,a2 = 2.r时(r>0)时,过渡过程没有超调,且r越大,过渡时间越短!


PID调节中的P和D的增益k1和k2,相当于把上面的a1,a2改成了新的参数a1’ = a1+k1,a2’ = a2 + k2。

PS:下面两种建模方式的结果应该是一样的,对于线性系统,可以通过传递函数的方式建模,简单高效;但对于非线性的系统,视乎就只能通过微分方程的形式建模了。

为什么要引入“过渡过程”?
直接取目标值与实际值之间的误差并不完全合理。比如起始阶段的控制(如阶跃响应),会产生很大的初始冲击,导致超调。而引入“过渡过程”,能够使“快速性和超调不再对立”!

\P22:如下定义是一个合适的过渡过程

这个函数trns是在T0时间内,从0单调上升到1并保持不变的曲线

现在看看有无过渡过程的对比,控制方面只是采用P控制,当kp=6时,发现增加过渡过程还不如原来的;正如书上说的“由于安排的过渡过程和系统输出之间的误差始终都很小,要有足够的推动力启动系统,必须增益k1要足够大”,当k1取到几百,如600时,效果就出来了。


再看看控制对象变化的情况,同样取k1=600,改变传递函数的a2,分别为2, 50,0.5:

这就很能说明问题了,正如书上对安排过渡过程意义的小结:
①解决超调与快速性矛盾的一种很有效的方法
②使误差反馈增益(k1)和误差微分反馈增益的选取范围大为扩大(几百)
③使给定反馈增益所能适应的对象参数范围大为扩大(0.5-50)

P24:过渡过程的函数并不止一种,针对控制对象的不同阶,也有相应阶的过渡函数,针对二阶系统,实现PD反馈控制,再对比一、二、三阶过渡函数(按P26-27的公式一步步积分)的效果

将1阶、2阶、3阶“方波”型过渡函数,分别应用到2阶对象模型上,直观上的结果:二阶的比一阶好,并且与trns_sin的非常接近!三阶的效果更好!

第二章:跟踪微分器

当输入被噪音污染时([-1,1]均匀分布的白噪声),经典微分环节的“噪声放大效应”


而换成另一种微分近似公式,用两个惯性环节并联来获取,则可以减低噪声放大效应(二阶传递函数具有较好的微分功能)


P56:用惯性环节来尽可能快地(取小的时间常数)跟踪输入信号的动态特性,通过求解微分方程(即通过积分)来获取近似微分信号。因此可以把这个动态结构称为跟踪微分器(TD)
红色部分是x2(t)与微分信号;绿色部分是x1(t)【x2的积分】与输入信号v0(t),r = 50时的情况如下图

适当加大r,能够得到更好的跟踪微分效果,那能否用最快地跟踪输入信号的动态环节来获取微分信号呢?这就引出了“以圆点为终点的快速最优控制综合函数u(x1,x2)”【涉及到最优控制理论,还没学习过】

用它则可以构建如下非线性跟踪微分器,仿真的结果,确实x1与输入信号之间看不出延迟,即“最快地跟踪输入信号”


上述最速跟踪微分器有许多很好的性能,然而直接把它离散化来进行数值计算,那么系统进入稳态后会参数不能令人满意的高频颠振,将上面模型输入的正弦信号改为阶跃信号后,能够看出问题,即微分信号不理想。如果减小r,则无法实现无超调的控制;增大r,颠振会更强烈。即“固有的高频颠振”。

为了解决这个问题,韩教授设计出了“最速控制综合函数fhan(x1,x2,r,h)”,在书上第2.7小节有详细的推导,我目前还没有能力去推导和理解,只能记下来先用

进而得到了“最速离散跟踪微分器”,

P71用它去获取上面系统的信号,r = 0.1时,不再出现高频颠振;增大r(缩小过渡时间),如r = 1时,也还是会有一些振荡;继续增大,如r=20,貌似也会出现高频颠振。所以说选择合适的r,能够使振荡被控制在一定的可接受范围内,同时实现无超调的控制。


用自己的一组实验数据去作为模型的信号源输入,调整合适的r和h0,x1则能够完美的跟踪输入信号;由于没有实际微分信号的数据,所以不好对比,但看上去也是很棒的

第三章:非光滑反馈的功能和效率

\P112:先用非线性状态反馈把非线性控制系统变成纯积分器型串联线性控制系统,然后再实施状态反馈。是“直接反馈线性化”的基本思想!

那么用什么样的非线性反馈呢?P121-123:

什么是状态反馈呢?以状态变量x1,x2作为输入的反馈控制。
那么u = fhan(x1-v,cx2,r,h1)属于状态反馈,又因为计算过程中是开方运算(<1),所以为非光滑的。
P126:非光滑的误差反馈率,具有小误差大增益,大误差小增益的特点,是控制工程界追求多年的误差反馈率。

PS:第二章的fhan函数用于跟踪输入信号和微分信号,应对的是输入信号的变化以及噪声;这里fhan函数用于反馈控制,应对的是系统扰动。

P146,控制目标为v0 = 2,扰动为三部分的求和,模型中蓝色sum模块连接处,从仿真结果来看,fhan反馈控制能够很好的抑制扰动的影响,将输出稳定地控制在目标值!

对于已知或可测量的扰动,可以按上面的方案来解决,那如果无法表示出扰动呢?这就是下一章的内容了。

第四章:扩张状态观测器

\P184:根据这种外部变量的观测来确定系统内部状态变量的装置叫做状态观测器。主要目标是去完成对状态变量X的估计,即下面公式里的f(x1,x2)

P188 :只要适当选取参数 β 0 1, β 0 2 和非线性函数 g 1 (e), g 2 (e) ,状态观测器( 1.6 )对很大范围的系统( 1.5 )都能很好地估计其状态变量。
其中非线性函数多采用fal

P189 按上面的公式建立观测器的模型,这个例子没有反馈的作用,所以u=0,其中g2(e) = fal(e,0.5,0.01)。

P190:改变被测系统的参数和结构,继续使用上面的状态观测器(参数结构都一样),也能够很好的观测结构,这说明“状态观测器(4.1.12)对一定范围的对象来说是完全通用的,其效率之高是由于采用了合适的非光滑函数”
PS:仿真出来的图跟书本上的不一样,没找出来问题在哪?但是拟合程度还是一样的好。

PS:这里用状态观测器(State Observer,SO)去获取原系统的输入及其微分信号,跟第二章的跟踪微分器(TD)的作用好像有点像,那么又有什么区别呢?
TD针对的是信号源(或目标值v0),侧重的是过滤噪声,获取稳定可靠的输入及其微分信号
SO针对的是控制对象,根据控制量输入u和对象的输出信号y,估计出被控对象的信息,类似于描述对象传递关系的函数 ;

P197 :我们把作用与开环系统的加速度 f(x 1 (t), x 2 (t)) 的实时作用量扩充成新的状态变量 x 3,记作 x 3 (t) = f(x 1 (t), x 2 (t)) , 建立扩张状态观测器(ESO),目标是去测量扰动w(t)。

上下两个系统相减可以得到误差方程,只要β03足够大于w,则估计误差都会足够小,那么ESO就能提炼出f(x1(t),x2(t),t,w(t)),有了扩张状态x3的估计值z3,就可以对控制量进行修改,即完成关于扰动的补偿。

看下面的图会跟直观一点

进而无论对象怎样,均可以把系统化成下图所示形式的积分器串联型控制系统,即“动态补偿线性化过程”。只要将u0设计为合适的误差反馈,则系统将很好地被控制在目标值处。而实际的控制量u,则会根据z3进行修正。
P203的例子可以更好的体会上面估计扰动的逻辑,黄色曲线是实际的f(x1(t),x2(t),t,w(t)),而蓝色的曲线是状态变量z3对其的估计值,两者几乎一样!

P205:模型中控制量放大系数b未知时,把b近似估计为b0,当作ESO的可调参数也是完全可以的。模型中δ取为5h。

小结:
\P183:借用状态观测器的思想,把能够影响被控输出的扰动作用扩张成新的状态变量,用特殊的反馈机制来建立能够观测被扩张的状态——扰动作用的扩张状态观测,是通用而实用的扰动观测器
\P239:估计补偿对象总和扰动来使对象变成纯积分器串联型对象的过程叫做动态补偿线性化过程,是ADRC中最关键,最核心的技术。剩下的问题就是如何对纯积分串联型对象设计好误差反馈的问题了。

这一章的内容解决了对扰动的观测,下面就是把上面所有章节汇总起来,组成ADRC的时候了!

第五章:自抗扰控制器

\P243:(1)保留经典PID的基本框架而改进其局部功能

(2)具有扰动估计、补偿能力的ADRC

P264:标准的自抗扰控制器(ADRC)算法:

上述算法对应的模型分别为:
(1)安排过渡过程

(2)估计状态和扰动

(3)误差反馈和扰动补偿

最后u作用到控制对象f(x1,x2,t)上,即使有扰动w(t),也能够实现很好的控制!第一个scope是控制目标与实际被控结果;第二个scope是u0和u;第三个scope是实际f(x1,x2,t)+w(t)和对它们的估计值z3!

\P280:分离性原理:自抗扰控制器的设计可以分成三个独立的组成部分进行设计。

第六章:自抗扰控制器的应用

\P347:技术要点
(1)搞清控输出y和控制输入u
(2)分析u的作用至少经过几个“积分器”的作用才能影响被控输出y?即所谓系统的“相对阶数”
(3)如何把作用于被控对象的各种不确定因素和扰动作用归结于为能够被估计补偿的总和扰动作用中
(4)灵活运用虚拟控制量
PS:ADRC可以应用到很多经典的控制问题上,由于我都没接触过,就暂时没有复现了…

小结

韩教授的这本书每一章节都在解决一类问题,第五章开始就是合并前四章的内容,慢慢看下来会有一种很爽的感觉!
目前电脑上仿真的结果都是非常完美的,不知道在实际应用中的表现会怎么样,要把模型转化成c代码塞到单片机里,还要一个个地调参数,实在是担心又期待!

参考文献

韩京清 . 自抗扰控制技术 : 估计补偿不确定因素的控制技术 [M]. 国防工业出版社 , 2008.

模型下载
提取码:ddcc

《自抗扰控制技术》——第二遍(仿真)相关推荐

  1. PMSM 控制技术探究与仿真1:三相PMSM的数学建模与坐标变换

    PMSM 控制技术探究与仿真1:三相PMSM的数学建模与坐标变换 1,三相PMSM的基本数学模型   1.1 三相PMSM 的结构   1.2 基本数学模型 2,三相PMSM的坐标变换   2.1 d ...

  2. 《JavaScript高级程序设计》红宝书第二遍阅读(动手实践)

    <JavaScript高级程序设计>红宝书第二遍阅读(动手实践) 第1章--什么是JavaScript 第2章--HTML中的JavaScript 第3章--语言基础 第4章--变量.作用 ...

  3. 永磁同步电机自抗扰无位置传感器控制仿真,同时实现自抗扰和基于eso扩张状态观测器的无位置控制仿真

    永磁同步电机自抗扰无位置传感器控制仿真,同时实现自抗扰和基于eso扩张状态观测器的无位置控制仿真. ID:6950670038985136

  4. Rosetta Stone的第二遍学习总结

    一.第二遍的学习意义 为什么要学习第二遍,或者把一个材料学习多遍,熟悉到像老师讲课,大神演讲一样呢!对了,这就是学习第二遍的一个重要的意义!尽管是进行第二遍学习,思维学习的方式让不能用母语思维!要在短 ...

  5. 计算机控制z反变换公式,计算机控制技术第二章Z变换及Z传递函数.ppt

    计算机控制技术第二章Z变换及Z传递函数 第2章 Z变换及Z传递函数 2.1 Z变换定义与常用函数Z变换 2.1.1 Z变换的定义 已知连续信号f(t)经过来样周期为T的采样开关后,变成离散的脉冲序列函 ...

  6. uniapp播放本地视频,循环播放第二遍会显示加载图标

    uniapp播放本地视频,循环播放第二遍会显示加载图标 解决:将加载图标替换成一张纯透明的图片(我感觉这个方法有点捞,有更好的方法可以留言)本方法适用离线打包,因为替换图片要修改uniapp的依赖包 ...

  7. 第二遍罗塞塔学习总结

    罗塞塔学习这已是第二遍,此次历时近两个月,文档计划是两周,这个差距真的是不小,这两个月的时间里80%的时间给了机房,其次是毕业设计,再其次是自考,最后是一些零零散散的事情. 第二遍罗塞塔的学习是建立在 ...

  8. 关于韩京清学者的《直线型倒立摆的自抗扰控制设计方案》仿真

    任何系统都可以写成如下形式 其中w(t)表示外扰作用,自控扰控制技术的核心是采用合适的方法,用希望得到的输出信号r(t)和系统输出信号y(t)的差(即误差信号),以及控制输入量u(t)来估计系统运行过 ...

  9. SVPWM控制技术+Matlab/Simulink仿真详解

    文章目录 前言 一.SVPWM的控制原理 二.空间矢量的概念 三.电压与磁链空间矢量的关系 四.三相逆变器的基本电压空间矢量 五.SVPWM 算法的合成原理 六.SVPWM 算法推导 6.1.七段式S ...

  10. 《JS高级程序设计》第二遍读书笔记

    这一遍的重点还是在JS语言本身,后面的DOM和BOM部分看的比较快,因为现在实际上用的不多,掌握大致的原理,需要的时候再翻手册就可以了. 认为暂时没必要的知识点WebGL, 认为已经不需要.过时的知识 ...

最新文章

  1. 让Chrome成为你的pdf阅读器
  2. 探究:如何判断Delphi中的对象指针是否可用
  3. 在CDF可以插入特殊字符编码
  4. 如何按多个列对数据框进行排序
  5. 【MFC】1.Windows程序内部运行原理
  6. Linux设备驱动模型之platform总线
  7. java设计模式_备忘录模式
  8. 无人机小区上空盘一圈测体温,背后技术靠谱吗?
  9. Linux运维之路怎么走?
  10. CSDN没有C币如何下载文章?
  11. 三相全控tc787触发电路_典型定频空调器的电路识图方法,一看就懂
  12. 研发项目wbs分解简单案例_2013项目管理案例分析:工作分解结构(WBS)(精选五篇)...
  13. sublime text里面中文字体显示异常解决方案
  14. “Win7内部版本7600此Windows副本不是正版”解决方法
  15. ngx_shmtx_lock 分析
  16. BCD码和ASCII码的相互转换
  17. spin()和spinOnce()
  18. 基于Python回归模型的异方差性分析
  19. SAP BP最佳业务实践
  20. 百度网盘直链下载教程

热门文章

  1. 量产台电U盘 把USB变成USB-CDROM
  2. Openstack 虚拟机通讯
  3. 常用的两款 爱普生epson L801(L系列)清零软件 废墨重置软件 免分下载 内附清零软件使用方法
  4. 江苏省南京市谷歌高清卫星地图下载
  5. Linux驱动入门总结
  6. 多媒体计算机的扫描仪属于感觉媒体吗,多媒体计算机中的扫描仪属于感觉媒体...
  7. python写文件byte_如何将bytelist写入Python文件?
  8. mongodb 日期分组聚合_MongoDB基于时间段的聚合查询
  9. 网络安全界基于知识的识别和映射提出网络空间资源分类明细
  10. 【echarts柱状图最大高度】echarts柱状图限制柱子最大高度方法