1、理论基础

主要参考韩老的论文:《从PID技术到"自抗扰控制"技术》。

对于系统:

这是一个常见的二阶系统,适用于牛顿-欧拉方程中,位置/速度及角度(姿态)/角速度的控制。

上述皆可化成二阶系统(6)的形式。

对于(6)式中的,  通常为未知项:因为包含建模不准确性而引起的内部干扰和系统外部干扰,那么建立观测器的形式为:

 转化为离散形式(因为绝大多数实际控制系统为离散系统):

其中:h为采样时间。fal函数为:

其中fal函数类似于一个低通滤波和一个变参滤波器的叠加,用于逼近e。

理解以上的知识之后即可在simulink下搭建仿真模型了。

2、simulink

1、先搭建这样一个二阶系统:类似于m=1的位置控制系统(F=ma):

其中 f(.)  为系统扰动。

搭建模型如下(暂时没有加 f(.) )

x的状态反馈加了白噪。

2、搭建ESO

根据上面的离散公式,建立matlab func,代码如下(代码和上面的公式一一对应):

function [z1_hat,z2_hat,z3_hat] = fcn(y,u)h=0.001;
alpha1=0.5;
alpha2=0.3;beta01=8;
beta02=8;
beta03=12;delta=5.3;persistent z1 z2 z3
if isempty(z1)  z1=0;z2=0;z3=0.1;
endz1k=z1;
z2k=z2;
z3k=z3;e1=z1-y;z1=z1k+h*z2k-h*beta01*e1;
z2=z2k+h*z3k-h*beta02*fal(e1,alpha1,delta)+h*u;
z3=z3k-h*beta03*fal(e1,alpha2,delta);z1_hat=z1;
z2_hat=z2;
z3_hat=z3;
endfunction f=fal(e,alpha,delta)
if abs(e)>deltaf=abs(e)^alpha*sign(e);
elsef=e/(delta^(1-alpha));
end
end

采样时间为0.001s,注意将matlab仿真时长定为0.001s(定步长)。其余参数都是随便给的,没这么调。

模块写出来是这样的:

y为状态x的估计,u的输入F,输出为z1,z2,z3的估计。

3、将ESO加入控制系统中

参考韩老论文:

我们实现红色部分:

需要注意 接入ESO模块的u的位置以及扰动加入系统的位置。

memory模块避免代数环问题。

4、控制效果

首先是对x的控制,期望轨迹为一个sin曲线,跟踪效果较好(可以自行搭建不带ESO扰动补偿的控制系统进行对比)

其次是对扰动的估计:本次仿真扰动 f(.)=-1。

其估计效果也还可以。

最后是对x1和x1微分的估计。

上图是对x1微分的估计。如果直接使用微分模块的话,噪声引起的纹波很大,不能直接使用。

5、总结

  1. ESO的matlab代码可以直接用,适当调整参数即可。
  2. ESO是ADRC的核心,是自抗扰的核心,常将ESO和神经网络,自适应控制等结合。
  3. ESO的滤波效果和TD(微分跟踪器)差不多。
  4. 最后,对韩老在控制领域和ADRC技术等领域的贡献致敬!

ADRC——ESO扩张状态观测器simulink实现(含代码)相关推荐

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

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

  2. 【ADRC】扩张状态观测器(ESO)

    扩张状态观测器是自抗扰控制中非常重要的一个环节,在我学习这部分内容后,在写本篇文章时,大致可以按照三个步骤来做实验,推导,由这三个步骤来由浅入深地去理解扩张状态观测器(ESO),即:线性状态观测器,非 ...

  3. 2020-12-18 Simulink实现ESO(扩张状态观测器)

    Simulink实现ESO(扩张状态观测器) ADRC最核心的创新点在于ESO,与PID相比,不仅基于误差控制,还基于扰动进行控制量计算. 1.ADRC的控制框图如下:主要包括跟踪微分器(TD).非线 ...

  4. simulink实现ESO(扩张状态观测器)

    ADRC最核心的创新点在于ESO,与PID相比,不仅基于误差控制,还基于扰动进行控制量计算. 1.ADRC的控制框图如下:主要包括跟踪微分器(TD).非线性状态误差反馈(NLSEF).扩张状态观测器( ...

  5. ADRC,自抗扰控制器,扩张状态观测器,ESO,模型预测控制算法MPC

    ADRC,自抗扰控制器,扩张状态观测器,ESO,模型预测控制算法MPC,自适应模型预测控制算法,时变模型预测控制算法,H无穷算法,混合灵敏度,鲁棒控制算法,四旋翼,直升机,控制算法设计,仿真模型,算法 ...

  6. 基于扩张状态观测器eso扰动补偿和权重因子调节的电流预测控制,相比传统方法,增加了参数鲁棒性

    基于扩张状态观测器eso扰动补偿和权重因子调节的电流预测控制,相比传统方法,增加了参数鲁棒性. 降低电流脉动,和误差. 基于扩张状态观测器eso补偿的三矢量模型预测控制. ID:41123672941 ...

  7. 基于ESO的永磁同步电机无感FOC 采用线性扩张状态观测器(LESO)估计电机反电势,利用锁相环从反电势中提取位置和转速信息

    基于ESO的永磁同步电机无感FOC 1.采用线性扩张状态观测器(LESO)估计电机反电势,利用锁相环从反电势中提取位置和转速信息,从而实现无位置传感器控制: 2.提供算法对应的参考文献和仿真模型. 购 ...

  8. 扩张状态观测器matlab函数,基于Matlab的扩张状态观测器仿真及分析

    状态观测器是现代控制理论的重要组成部分[1-2],它是从系统状态空间方程出发,利用原系统的输入和输出信号获得原系统状态变量估值的方法,在传感器噪声处理.系统相移抑制以及高性能控制系统的设计中应用得非常 ...

  9. 物流信息管理系统MySQL设计,物流管理系统的SQL数据库设计(含代码)

    物流管理系统的SQL数据库设计(含代码) 物流管理信息系统的数据库设计班级xxx系统名称:物流管理信息系统一.需求分析物流管理系统是为制造商和零售商设计的管理系统数据库系统,目的是:1.实现上游制造商 ...

最新文章

  1. python学习框架图-从零搭建深度学习框架(二)用Python实现计算图和自动微分
  2. 【Android 逆向】ART 脱壳 ( InMemoryDexClassLoader 脱壳 | DexFile.java 对应的 dalvik_system_DexFile.cc 本地函数分析 )
  3. Spring boot容器导入组件
  4. WPF/Silverlight Undo/Redo框架
  5. python jpg 压缩因子_IOS图像2之jpg、png图片保存、互转、设置有损压缩因子
  6. java 协议这个概念_java网络协议概念是什么?
  7. Ubuntu su root提示输入密码 怎么输入都不对
  8. atitit. java跟php的比较..为什么大企业喜欢java 而不是php
  9. 小呆聚合支付系统免签约即时到账多商户支付系统v6.5+监控软件+教程
  10. Youtube更改视频原始语言
  11. 小红帽linux各功能中英,英文短剧lbrack;小红帽rsqb;剧本台词完整版---中英对照文本版...
  12. 将域控服务器添加到现有域,将域控制器添加到现有 Active Directory 域时无法选择 DNS 服务器角色...
  13. JAVA知识体系之分布式篇(七)——Redis
  14. 第三篇 第七章气体灭火系统(三)
  15. python编辑距离正则匹配_(C/C++学习)33.编辑距离和正则表达式匹配分析
  16. node-gyp编译失败
  17. 用Javascrip写出selelct下拉菜单效果
  18. 基于粒子群优化二维Otsu的肺CT图像分割算法
  19. Android 基于agora 视频会议开发
  20. 黑莓2013 年产品路线图曝光 将发布多款BlackBerry 10 产品

热门文章

  1. 邬贺铨院士:5G技术影响智联网的关键点
  2. 支付宝年度账单交互效果的实现
  3. DRUCK德鲁克压力校验仪维修DPI620G-IS
  4. 如何在linux系统中打开巨型帧
  5. TFN-F7系列光时域反射仪(OTDR)
  6. html分辨率与放大倍数,放大镜倍数 你怎样知道放大镜的放大倍数
  7. Java虚拟机参数配置
  8. Go语言如何捕获fatal致命错误并输出到日志
  9. S32DS实时查看变量的值
  10. android wifi布局,Android使用 WiFi 建立 P2P 连接