ADRC学习笔记(二)

ADRC学习笔记(二)1.最速跟踪微分器TD它的离散表达式为:参数中:V(t)是目标值h、h0为积分步长,一般来说h可以等于h0,但是为了减少超调和减少震荡,才把他们分开,一般h0比h大,比如大20倍。当h0较大时,能够明显减少震荡,所以也叫滤波因子。减小h可以抑制噪声放大作用。r为速度因子,值越大,逼近速度越快,但是最好根据实际被控对象的可承受能力而定。表达式中:其中fhan函数第一种表达式为:fhan函…

大家好,又见面了,我是你们的朋友全栈君。

添加链接描述源码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调整有着它无可比拟的有点,在抵抗干扰方面更为出色。最后附上仿真的代码,各位大佬可以调调参数。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
仿真源码

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/144649.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • uuid生成唯一数字_java组件有哪些

    uuid生成唯一数字_java组件有哪些UUID含义是通用唯一识别码(UniversallyUniqueIdentifier),这是一个软件建构的标准,也是被开源软件基金会(OpenSoftwareFoundation,OSF)的组织在分布式计算环境(DistributedComputingEnvironment,DCE)领域的一部份。UUID的目的,是让分布式系统中的所有元素,都能有唯一的辨识资讯,而不需

    2022年9月22日
    0
  • aarch64 poky linux,aarch64pokylinuxgcc:错误::没有这样的文件或目录

    aarch64 poky linux,aarch64pokylinuxgcc:错误::没有这样的文件或目录我正在尝试将mlpack包含到我的yocto构建中。如果不启用python绑定,我的配方烘焙成功。但是在构建python绑定时,我得到了以下错误:aarch64-poky-linux-gcc-march=armv8-a-mtune=cortex-a57.cortex-a53–sysroot=/builds/build-h3/tmp/sysroots/h3ulcb-DNDEBUG-g-O…

    2022年8月31日
    0
  • python解压bz2文件命令_解压缩bz2文件

    python解压bz2文件命令_解压缩bz2文件bz2.compress/decompress使用二进制数据:>>>importbz2>>>compressed=bz2.compress(b’test_string’)>>>compressedb’BZh91AY&SYJ|i\x05\x00\x00\x04\x83\x80\x00\x00\x82\xa1\x1c\x00\…

    2022年6月5日
    70
  • 修改MySQL表名

    修改MySQL表名一、使用SQLALTERTABLE原表名RENAMETO目标表名;二、使用Navicat如果你使用的是Navicat的话就可以直接点击表名后按F2就可以修改表名修改后保存即可…

    2022年5月22日
    30
  • idea 最新激活码(注册激活)「建议收藏」

    (idea 最新激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~KU…

    2022年3月22日
    79
  • MyBatis中SqlSessionFactory和SqlSession简解

    MyBatis中SqlSessionFactory和SqlSession简解1.SqlSessionFactoryBuilder这个类可以被初始、使用和丢弃,如果你已经创建好了一个SqlSessionFactory后就不用再保留它。因此,SqlSessionFactoryBuilder的最好作用域是方法体内比如说定义一个方法变量。你可以重复使用SqlSessionFactoryBuilder生成多个SqlSessionFactory实例,但是最好不要强

    2022年6月9日
    39

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号