ADRC学习笔记(二)

2023-05-16

添加链接描述源码1.最速跟踪微分器TD
它的离散表达式为:
在这里插入图片描述
参数中:V(t)是目标值h、h0为积分步长,一般来说h可以等于h0,但是为了减少超调和减少震荡,才把他们分开,一般h0比h大,比如大20倍。当h0较大时,能够明显减少震荡,所以也叫滤波因子。减小h可以抑制噪声放大作用。r为速度因子,值越大,逼近速度越快,但是最好根据实际被控对象的可承受能力而定。
表达式中:其中fhan函数第一种表达式为:
在这里插入图片描述
fhan函数第二种表达式为:
在这里插入图片描述
其中fsg函数表达式为:
在这里插入图片描述
两种fhan函数是等价的。最速跟踪微分器的作用是起到一个缓冲作用,比如输入一个阶跃信号,它会让信号有一定斜率,让执行机构不会一启动就进入最大马力,从而导致第一次及后面几次逼近设定值时出现超调。它的可调参数与实际系统
2.扩张状态观测器
在这里插入图片描述
其中函数fal的表达式为:
在这里插入图片描述
它的另一种表达式为
在这里插入图片描述
在这里插入图片描述
3.状态误差反馈律
3.1线性反馈率
在这里插入图片描述
其中e1=x1-z1,e2=x2-z2,e0为e1的积分。
3.2非线性反馈率
然而这种线性组合不一定最好。大量仿真研究表明, 采用 e 0,e 1,e 2 的适当非线性组合效果更好, 我们通常采用的非
线性组合有如下两种形式:
在这里插入图片描述
完成的二阶自抗扰控制器算法如下
在这里插入图片描述
这里 r0,β01,β02,β03,r,c,h1,b0 是控制器的参数, 其中 r0是根据过渡 过 程 快 慢 的 需 要 和 系 统 的 承 受 能 力 来 决 定的 ; 参 数 β01,β02,β03 是 由 系 统 所 用 采 样 步 长 来 决定 的 ( 不 管 什 么 样 的 对 象 , 采 样 步 长 一 样 , 都 可 以 用相 同 的 β01, β02, β03) 。 这 样 , 系 统 中 真 正 需 要 调 整的参数为控制量增益 r、阻尼系数 c、精度因子 h1 和补偿 因 子 b0 四 个 了 。 在 一 般 情 况 下 , 控 制 量 增 益 r 是 大到 一 定 程 度 就 可 以 , 再 大 也 几 乎 没 有 影 响 。 因 此 只 需三 个 参 数 c,h1,b0 需 要 进 行 调 整 , 这 与 PID 的 三 个 增 益差不多: l/h1 相当于 PID 的比例增益; 阻尼因子 c 相当于 PID 的微分增益; 补偿因子 b0 有 点 像 PID 的 积 分 增益, 但也不很像。这里三个参数与 PID 的三个参数有很 多 相 似 之 处 , 但 也 有 很 大 的 差 别 。(韩老师原话)

其框图为:
在这里插入图片描述//分割线/

以上均为理论的上的学习,在其他博客都能找到相似的东西,但是很少能够看到仿真的实例,因此在学习的自抗扰技术后,立马做了一个仿真。ADRC作为改造的PID,其吸收其根据误差存在进行调整的思想,同时也不依赖具体的控制对象模型,通过将干扰扩张成为系统的状态变量,进行干扰补偿,进而降低干扰的影响,另外通过添加微分跟踪器,使输入端不连续的信号,变成连续的变化的信号,避免了控制系统的超调,如此看来ADRC确实NB。
实验步骤:
(1)以二阶控制对象为例,阶跃信号作为输入信号,其输出信号与输入信号如下图:
在这里插入图片描述
从仿真的结果可以看出无超调,而传统的PID调节的图像为下图:(采用统一控制对象)在这里插入图片描述
貌似没有什么对比性,可能是我参数调的不好(假装是这个原因)。
(2)添加干扰信号,测试ADRC抗干扰能力,每隔10个信号发送一个干扰信号,得到仿真的图像为:
在这里插入图片描述
图像上方的红点为原始信号叠加了一个干扰信号,从仿真的图像上可以看出输出信号几乎不受干扰的信号的影响,可能是我的参数调的太好(假装是这个原因)。

总结来说,ADRC相比于传统的PID调整有着它无可比拟的有点,在抵抗干扰方面更为出色。最后附上仿真的代码,各位大佬可以调调参数。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
仿真源码

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

ADRC学习笔记(二) 的相关文章

  • 人脸识别概述[L-softmax | 人脸验证 | DeepFace | FaceNet | Triplet loss]

    文章目录 思维导图疑问用softmax分类做人脸识别 xff0c 怎么应用呀 概念区分主流方法损失函数Softmax loss基于欧式距离的损失函数对比损失 xff08 Contrastive Loss xff09 三元组损失 xff08
  • HDFS API常用的方法及使用

    文章目录 POM依赖HDFS API上传本地数据到HDFS系统删除指定路径下的文件创建文件夹及文件 xff0c 并向文件中写入数据获取指定文件的日期重命名目录获取指定路径所有的文件 POM依赖 span class token tag sp
  • Ubuntu 14.04 16.04 18.04 安装Docker(Docker CE)

    Ubuntu 14 04 16 04 18 04 使用apt get进行安装 自17年开始 xff0c docker分为docker ce xff08 社区版 xff09 docker ee xff08 企业版 xff09 xff0c 另外
  • PHP实现跨域的解决方法

    PHP实现跨域解决方法 如果要实现跨域通过设置Access Control Allow Origin来实现跨域 例如 xff1a 客户端的域名是client runoob com xff0c 而请求的域名是server runoob com
  • SLAM后端——滤波与优化对比

    滤波与优化 xff1a 摘自 xff1a https www cnblogs com zengcv p 5994587 html 因为基于滤波的理论 xff0c 滤波器稳度增长太快 xff0c 这对于需要频繁求逆的EKF xff08 扩展卡
  • realsense t265测试

    roslaunch realsense2 camera rs t265 launch rosrun rviz rviz roslaunch vins estimator euroc launch 将加计和陀螺仪主题放在一起 修改rs cam
  • Intel Realsense t265获取相机参数

    rs sensor control
  • VINS-MONO需要修改的参数

    相机参数修改 xff1a 加速度和角速度发表在两个话题 xff0c 用上述方法将其发表在一个话题上 修改VINS MONO包 xff1a
  • MSCKF

    https github com TurtleZhong msckf mono
  • ROS毕设坑3:在ROS下用视觉方法求取R和t,然后将其发布

    今天莫名遇到两个问题 xff1a 之前调好的代码硬生生的跑不通 xff0c 就会出现下面这个问题 xff1a 大概意思就是说我还没得到图片呢就让他去计算 xff0c opencv就出错了 xff0c 我不信这个邪 xff0c 自己去调试了一
  • Linux网卡驱动pcnet32.c的注释(AM79C9*系列网卡的驱动)

    很久之前读的网卡驱动源码 xff0c 很多东西已经忘记了 xff0c 最近面试被问道了网卡收数据包的全过程 xff0c 只能答出一个很简单的过程 xff0c NAPI这种非常优秀的机制都没有想起来 xff0c 很惭愧 xff0c 重新复习了
  • ADRC算法Auto Disturbances Rejection control

    自抗扰控制 其中 xff0c e 61 v t y t 是控制系统参考输入量v t 与被控对象输出量y t 之间的差值 xff0c kp比例系数 ki积分系数 xff0c xff0c kd微分系数 优点 xff1a 1 仅由误差来决定控制
  • python 下运行ros

    1 建立l两个文件夹python ros scr 2 执行下述命令后 xff0c 将会在在src中 xff0c 建立一个包daodao 并且在文件夹daodao里生成了两个空文件夹 xff0c 有include daodao scr 和 C
  • tensor 与 array 的相互转化

    import tensorflow as tf import numpy as np a 61 np array 1 2 3 4 5 6 7 8 9 print a 1 2 3 4 5 6 7 8 9 b 61 tf constant a
  • keras.layers.UpSampling2D与tf.image.resize_nearest_neighbor

    参考https www bookstack cn read keras docs zh sources layers convolutional md keras layers UpSampling2D size 61 2 2 data f
  • Linux安装elasticsearch7.x(踩坑分享)

    安装并启动 首先下载elasticsearch压缩文件 xff0c 下载地址 我这里选择的是elasticsearch 7 17 1版本 xff1a https www elastic co cn downloads elasticsear
  • VNC 登录显示too many security failures的解决方法

    原因 xff1a 黑客试图登录 解决方法 xff1a 在putty上登录 xff0c 然后输入命令vncserver kill 5 杀掉vnc进程 之后输入su 你的用户名 使用su权限 输入命令 vnc 重启vnc 成功之后就可以再次登录
  • MapReduce案例运行及分词

    首先查询进程 xff0c 发现hadoop并没有启动 如何配置hadoop xff0c 参考我的另外一篇博文 Hadoop环境准备 接下来 xff0c 启动hadoop start all sh 或者 start dfs sh start
  • main函数是主线程吗

    1 线程的概念 xff1a 线程是程序最基本的运行单位 xff0c 而进程不能运行 xff0c 所以能运行的 xff0c 是进程中的线程 2 线程是如何创建起来的 xff1a 进程仅仅是一个容器 xff0c 包含了线程运行中所需要的数据结构
  • C#类型的转换:Converter<TInput, TOutput> 委托的使用

    Converter lt TInput TOutput gt 委托 表示将对象从一种类型转换为另一种类型的方法 此委托由 Array 类的 ConvertAll lt TInput TOutput gt 方法和 List lt T gt 类

随机推荐

  • 收藏一些不错的国外网站

    设备树 xff1a https www devicetree org LINUX xff1a https www arm linux org uk USB xff1a https github com pyusb pyusb PYTHON
  • 近红外跨模态行人重识别(RGB-IR Cross-Modality Re-id)(一)

    1 写在前面 本文是我阅读近红外的跨模态行人重识别 xff08 RGB IR Cross Modality Re id xff09 文献的笔记 xff0c 由于网上对该方面介绍的博客很少 xff0c 所以这里我记录下阅读文章的一些要点和我自
  • ESKF的相关理解

    ESKF相关总结 对随机噪声和干扰的积分ESKF中的处理手段 xff1a 预积分中的处理手段 ESKF中IMU GPS不同解算坐标系的处理全局坐标系的初始化GPS坐标系的转换重力加速度引出的ENU IMU坐标系转换的初始化 状态量的初始化关
  • T265相关使用

    0 查看相机配置信息 rs enumerate devices 1 读取相机内外参信息 rs enumerate devices c 图像数据发布的Topic 图像数据30Hz camera fisheye1 camera info cam
  • vins-fusion中的GPS和VO融合

    https blog csdn net hltt3838 article details 109725845 这个帖子还蛮有价值的 GPS进行更新的时候 xff0c 需要寻找与VIO时间戳相对应的GPS消息 根据 43 10ms的时间偏差找
  • 玩转NVIDIA Jetson AGX Xavier

    最近项目应用需要部署到边缘模块 xff0c 所以就玩起了Xavier 感觉网上的资料不多 xff0c 所以从头记录一下笔记 xff0c 方便大家一起学习应用 玩转NVIDIA Jetson AGX Xavier 1 刷机 xff08 安装s
  • 素数伴侣 java

    span class token keyword package span span class token namespace com span class token punctuation span patience span cla
  • 分布式系统概念和设计-分布式文件系统服务体系结构和实践经验

    分布式系统概念和设计 文件系统的特点 负责文件的组织 xff0c 存储 xff0c 检索 xff0c 命名 xff0c 共享和保护 文件包含数据和属性 数据 xff1a 包含一系列数据项 8比特的字节 xff0c 读写操作可访问任何一部分数
  • ROS(C++)中的subscribe使用

    subscribe函数用于订阅topic并添加回调函数 比如 xff1a cloud subs span class token operator 61 span nh span class token punctuation span s
  • 基于人工标识的机器人定位方法

    基于人工标识的机器人定位方法 qquad 在机器人视觉导航任务中 xff0c 常常需要通过识别人工标识获得机器人在世界坐标系中的位姿 它的原理是通过匹配人工标识中特征点的世界坐标和图像坐标 xff0c 从而估算机器人坐标系与世界坐标系 之间
  • Momenta电话面试笔记

  • Snipaste贴图软件使用方法及快捷键

    文章目录 snipaste介绍1 截图2 标注3 贴图 snipaste是一款专业的免费截图软件 它帮助用户轻松解决截图 拼图 图像编辑等多种问题 xff0c 是最受用户喜欢的截图工具之一 snipaste介绍 Snipaste是一款免费安
  • kubernetes 如何发音?

    原文链接地址 xff1a 阳明的博客 有很多人不知道kubernetes应该怎么发音 xff0c 包括我之前也读错了 xff0c 正确的发音是 kub netis xff0c 重音在第三个音节 xff0c 读音 xff1a 库伯耐踢死 xf
  • sonic如何写ACL

    一 目前ACL配置需要用到openconfig json格式去操作 xff1b ACL full update an ACL rule definition file will be provided in openconfig json
  • 最近学习的德雷福斯模型

    德雷福斯模型 技术领域来讲 xff1a 个人对某种技能的掌握程度分为5个阶段 阶段一 xff1a 新手 新手在使用某种技能的人群中占比小于10 他们没有或只有很少的经验 xff0c 不知道自己的行为是对是错 xff0c 需要有人指导或者参考
  • 串级PID

    文章来源 xff1a 到底什么是串级PID xff1f 什么是串级PID 什么是串级PID xff1f 顾名思义就是两个串起来的PID xff0c 下面是一个双闭环的例子 xff0c 外环是位置环 xff0c 内环是速度环 xff0c 最终
  • 嵌入式工程师应对中年危机的上中下策

    文章来源 xff1a 电子通信 xff0c 嵌入式工程师应对中年危机的上中下策 之前火哥有一篇为什么电子通信 xff0c 嵌入式工程师会有中年危机的文章 xff0c 给出了一些中年危机的原因分析 xff0c 但是并没有给意见 这篇文章我们继
  • Action 详解

    回到首页 Action 是用于处理请求操作的 xff0c 它是由 StrutsPrepareAndExecuteFilter 分发过来的 在 Struts2 框架中 xff0c Action 是框架的核心类 xff0c 被称为业务逻辑控制器
  • ADRC学习笔记( 一)

    近期正在自学自抗扰技术 xff0c 不得不感叹韩老师乃神人也 xff01 话不多说先把这两天的学习成果与大家分享 xff0c 后续在做详细的介绍 欢迎大家批评指正 xff08 1 xff09 过渡过程 输入一个阶跃信号 xff0c 其跟踪效
  • ADRC学习笔记(二)

    添加链接描述源码1 最速跟踪微分器TD 它的离散表达式为 xff1a 参数中 xff1a V t 是目标值h h0为积分步长 xff0c 一般来说h可以等于h0 xff0c 但是为了减少超调和减少震荡 xff0c 才把他们分开 xff0c