ADRC算法Auto Disturbances Rejection control

ADRC算法Auto Disturbances Rejection control 自抗扰控制 其中,e=v(t)-y(t)是控制系统参考输入量v(t)与被控对象输出量y(t)之间的差值,kp比例系数,ki积分系数,,kd微分系数优点:1.仅由误差来决定控制2.运算量低,可以以极高的速率运行缺点:1.误差的取法e=v-y,使得初始时刻误差较大,容易造成控制系统快速性和超调的矛盾,比如输入为阶跃信号的时候,会导致误差函数也是一个阶跃信号,对…

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

 

自抗扰控制

ADRC算法Auto Disturbances Rejection control

 

ADRC算法Auto Disturbances Rejection control

其中,e=v(t)-y(t)是控制系统参考输入量v(t)与被控对象输出量y(t)之间的差值,kp比例系数,ki积分系数,,kd微分系数

优点:

1.仅由误差来决定控制

2.运算量低,可以以极高的速率运行

缺点:

1.误差的取法e=v-y,使得初始时刻误差较大,容易造成控制系统快速性和超调的矛盾,比如输入为阶跃信号的时候,会导致误差函数也是一个阶跃信号,对控制系统的稳定性有影响。

2.实际中,参考输入量v(t)一般不可导,甚至不连续,并且y(t)中又常常存在噪声干扰,因而e(t)=v(t)-y(t)通常是不可导的,其微分信号难以利用,因而限制了PID控制器的应用。

3.经典pid的比列,误差,积分项是线性组合输出最后的控制量的,线性组合并不是一个最优的组合方案,常会引起系统快速性和超调量之间的矛盾

4.严格上说,积分项虽然消除了静态固有误差,但是会大大影响控制的稳定性能,积分反馈有许多副作用

 

针对上面的4个缺点,ADRC提出了改进方法

1.为了防止跳变信号,对信号作如下处理,就是用下面的微分跟踪器

 

u=−rsign(x1−v+x2|x2|2r)

如下图所示,使用这种变换实际上是模仿最短时间到达一个点的概念,在到达平衡处前恒定加速运动,过平衡位置后恒定减速运动,使目标点在规定的加速度下以最短的时间到达目标点,并且到达速度为0,其中v是当前位置

ADRC算法Auto Disturbances Rejection control

2. 微分器的改进

借助于高等数学有

ADRC算法Auto Disturbances Rejection control

或者由拉氏变换

 

ADRC算法Auto Disturbances Rejection control

ADRC算法Auto Disturbances Rejection control

即:采样周期越短,噪声被放大越大,因此采用如下改进:

ADRC算法Auto Disturbances Rejection control

问题:这里怎么证明噪声不被放大呢?

ADRC算法Auto Disturbances Rejection control

3. 非线性加权平均

è¿éåå¾çæè¿°

其中v0为输入信号,目的是实现v1跟踪v0, v2跟踪到v1的导数,即间接实现v2跟踪到输入v0的导数,举例如下

有一个系统,其中输入信号为v0(t),

ADRC算法Auto Disturbances Rejection control

ADRC算法Auto Disturbances Rejection control

ADRC算法Auto Disturbances Rejection control

ADRC算法Auto Disturbances Rejection control 

ADRC算法Auto Disturbances Rejection control 

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

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

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


相关推荐

  • prototype.js学习(1)

    prototype.js学习(1) 1、关于javascript的apply和call函数prototype.js中用了大量的apply和call函数,不注意会造成理解偏差。官方解释:应用某一对象的一个方法,用另一个对象替换当前对象。apply与call的区别是第二个参数不同。apply是 数组或者arguments对象。而call是逗号隔开的任何类型。apply,call方法最让人混淆的地方也是apply,call的

    2022年7月22日
    12
  • python语言中的多行注释符是_Pyhton 单行、多行注释符号使用方法及规范「建议收藏」

    python语言中的多行注释符是_Pyhton 单行、多行注释符号使用方法及规范「建议收藏」python中的注释有多种,有单行注释,多行注释,批量注释,中文注释也是常用的。python注释也有自己的规范,在文章中会介绍到。注释可以起到一个备注的作用,团队合作的时候,个人编写的代码经常会被多人调用,为了让别人能更容易理解代码的通途,使用注释是非常有效的。# 在学习python的朋友们,强烈推荐加入PythonQQ群。一、python单行注释符号(#)井号(#)常被用作单行注释符号,在代码…

    2025年5月24日
    2
  • k8s中存在很多为Evicted状态的Pod

    k8s中存在很多为Evicted状态的Pod背景在查看k8s的环境的时候,突然发现存在n多个pod状态为Evicted。差不多得有几百个。解决同事愉快的丢了个链接给我,让我自己看一波:Whatwillhappentoevictedpodsinkubernetes?查看了一下pod的信息。结果发现是磁盘满了。kubectldescribepod{pode_name}-n{namespace}但是得手动删除Evicted状态的podkubectlgetpods–all-namespaces-ojson

    2022年5月16日
    50
  • 电脑弹出当前页面的脚本发生错误_360当前页面的脚本发生错误

    电脑弹出当前页面的脚本发生错误_360当前页面的脚本发生错误笔者Windows版本:Windows8Enterprise64位(DirectX11)Windows有一天忽然开始报“脚本错误当前页面的脚本发生错误”警告窗口:不管点“是”还是“否”,电脑使用一段时间以后还是会弹这个烦人的框。按照搜索来的解决办法,禁用IE的脚本调试选项:不起作用,还是会持续报以上警报。即便是重启电脑以后依然会如此。这…

    2022年10月21日
    2
  • <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”的作用「建议收藏」

    <!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.01 Transitional//EN”的作用「建议收藏」为页面添加正确的DOCTYPE很多设计师和开发者都不知道什么是DOCTYPE,DOCTYPE有什么用。DOCTYPE是documenttype的简写。主要用来说明你用的XHTML或者HTML是什么版本。浏览器根据你DOCTYPE定义的DTD(文档类型定义)来解释页面代码。所以,如果你不注意设置了错误的DOCTYPE,结果会让你大吃一惊。XHTML1.0提供了三种DOCTYPE可选择:(1)过渡…

    2022年7月14日
    17
  • java小型图书馆管理系统

    java小型图书馆管理系统根据需求,建立了一个BookMgr类,该类为实现小型图书馆的各个需求。为了和用户有一个良好的交互,根据需求且满足要求中的隐藏条件,先命名了交互的菜单函数printMenu1(),代码如下:publicvoidprintMenu1(){          System.out.println(“欢迎使用图书馆管理系统”);          Syst

    2022年7月8日
    24

发表回复

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

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