自抗扰控制ADRC之三种微分跟踪器TD仿真分析

2023-05-16

目录

前言

1 全程快速微分器

1.1仿真分析

1.2仿真模型

1.3仿真结果

1.4结论

2 Levant微分器

2.1仿真分析

2.2仿真模型

2.3仿真结果

3.非线性跟踪微分器——韩教授

3.1仿真分析

3.2小结

4.总结


前言

工程上信号的微分是难以得到的,所以本文采用微分器实现带有噪声的信号及其微分信号提取,从而实现无需测量速度信号的控制。并且结合控制对象简单的用PID进行控制,即TD微分器+PID控制。

1 全程快速微分器

其中:

①x1为带有噪音的信号,也是TD的第一个状态变量,同理x2为信号的微分;

②R>0;a0、a1、b0、b1≥0;m和n为大于0的奇数,且m<n;

③当a1=b1=0时,上述微分器为线性微分器。

1.1仿真分析

取R=1/0.05, a=0.1,b=0.1,已知输入信号为v(t)= sint,并且带有噪声信号,噪声的幅值为0.05,采用连续的全程快速微分器提取信号及信号的微分。

1.2仿真模型

1.3仿真结果

1.4结论

①可以看到虽然和实际信息有些偏差,但是估计的效果还算可以。

②对于a1、b1≠0的非线性微分器好像调节效果和线性差不多,即a1、b1、m、n调节没效果?

③位移信号可以调节的很好,但是会牺牲微分信号。

④仿真注意:(1)噪声模块的采样时间为继承采样时间;(2)simulink仿真求解步长为定步长0.001

2 Levant微分器

微分器需要对信号的测量误差和输入噪声具有鲁棒性,而Levant微分器是基于滑模奇数的非线性微分器,其二阶微分器表达形式为:

对于Lipschitz的定义部分可参考下面博客的3.1部分:

基于LMI的非线性混沌系统滑模控制_Mr. 邹的博客-CSDN博客

注:虽然这类微分器具有滑模控制的鲁棒性,但是对于Levant微分器,需要事先知道输入信号v(t)导数的Lipschitz常数上界,才能设计微分器参数,这就限制了输入信号的类型。而且,对于这种微分器,抖振现象不可避免。

2.1仿真分析

同样取上述的噪音信号及其微分进行估计,选取参数:

①Lipschitz的常数上界为1,即C = 1,所以α > 1,取α = 18;

②λ > 4*C*(α+C)/(α-C),得λ≥4.4706,所以取λ = 6。

2.2仿真模型

2.3仿真结果

3.非线性跟踪微分器——韩教授

韩京清教授利用二阶最速开关系统构造出跟踪不连续输入信号并提取近似微分信号的机构,提出了非线性跟踪-微分器的概念。韩京清所提出的一种离散形式的非线性微分跟踪器在一些运动控制系统中得到了应用。

二阶离散系统:

离散形式的非线性微分跟踪器为:

注:

①f代表的是最速综合函数

②朱老师书中称这类非线性的跟踪微分器为最速反馈系统,个人理解的是:是因为信号和信号的微分相当于等价于一个二阶系统,现在设计微分跟踪器去复刻这个二阶系统,可以理解为这个信号系统的观测器。(欢迎批评指正!)

③实现x1跟踪信号v,x2跟踪信号微分v'

这里参考刘老师和朱老师的书籍有两种最速综合函数(还有很多,读者自行阅读文献仿真比对):

(1)最速综合函数fst:

(2)最速综合函数fhan:

:最速函数中的x1实际上就是x1(k)-v(k),x2为x2(k).

3.1仿真分析

由于韩教授提出的非线性微分跟踪器是离散的,且被控对象常常使用simulink建模连续系统,所以这里介绍三种TD建模方式:①采用纯m语言建模(编写在Function模块种);②Function模块定义最速综合函数f+simulink结合unit delay建模;③s函数编写TD微分跟踪器。

①采用纯m语言建模(编写在Function模块种)

②Function模块定义最速综合函数f+simulink结合unit delay建模

③s函数编写TD微分跟踪器

3.2小结

可以看到两种方法仿真的结果都一致,读者也可以试试全部用m语言编写。

4.总结

①可以看到两种微分器都能将实现带噪声信号的估计,虽然有一定的误差

②信号的微分估计的稍差一些

③注意仿真时噪声模块的采样时间设定为继承采样时间:-1;且simulink设定为定步长0.001的求解器。

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

自抗扰控制ADRC之三种微分跟踪器TD仿真分析 的相关文章

  • 这篇很好地引入介绍了ADRC

    这篇很好地引入介绍了ADRC https zhuanlan zhihu com p 151342543 from voters page 61 true 从零开始搭建无人机控制系统 xff08 一 xff09 反馈与闭环 遥远的乌托邦 欢迎
  • 关于ADRC的一些粗鄙之语

    看这篇我感受到我控制理论方面的基础还掌握得不够 摘自 xff1a https zhuanlan zhihu com p 156228260 关于ADRC的一些粗鄙之语 隔壁uncle wang 机械工程Ph D amp 控制算法小萌新 ac
  • 自抗扰控制理论(一)ADRC的原理

    摘自 xff1a https zhuanlan zhihu com p 115283894 自抗扰控制理论 xff08 一 xff09 ADRC的原理 Chenglin Li 厦门大学 飞行器设计硕士在读 0 相关参考链接 Chenglin
  • (ADRC)自抗扰控制器学习总结(一)

    蓝色字体是我的评注 摘自 xff1a https blog csdn net qq 27270029 article details 78937854 ADRC自抗扰控制基本思想要点 xff1a 1 标准型与总扰动 xff0c 扩张状态与扰
  • 自抗扰控制理论(四)ADRC控制串级系统

    刚刚优酷里面看到一个用串级ADRC弄无人机的视频 https v youku com v show id XNDA5MTY5ODQxNg 61 61 html 摘自 xff1a https zhuanlan zhihu com p 1153
  • 这看到一个内环ADRC 外环PID的。

    这看到一个内环ADRC 外环PID的 https oversea cnki net Kcms detail detail aspx filename 61 1018818866 nh amp dbcode 61 CMFD amp dbnam
  • ADRC算法Auto Disturbances Rejection control

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

    ADRC 优化fhan 自抗扰控制入门 自抗扰死忠粉 ADRC H span class token macro property span class token directive keyword ifndef span ADRC H
  • 自抗扰(ADRC)控制原理及控制器设计

    自抗扰控制是在PID控制算法基础上进行改进的新型控制方法 xff0c 它具有不依赖于控制对象模型 不区分系统内外扰的结构特点 常用的自抗扰控制器主要由跟踪微分器 xff08 Tracking Differentiator xff0c TD
  • 【ADRC】跟踪微分器

    在上一篇文章中 xff0c 分析了PID算法的基本数学原理 xff0c 从PID算法的原理与实际应用 xff0c 是可以看出其PID的优点与缺点的 xff0c ADRC算法 自抗扰控制 也可以说是针对PID算法的一些缺点 xff0c 或者说
  • 【ADRC】扩张状态观测器(ESO)

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

    在根据前面四篇文章的自抗扰控制各个功能部分的分解介绍以及对于PID算法原理的分析之后 xff0c 具体可以查看我的主页 之后我们可以画出自抗扰控制的框图 xff0c 并作出自抗扰的仿真了 自抗扰的组成部分 ADRC说得更直白一些 xff0c
  • 20210824-ADRC数学和解释

    ADRC个人感觉就是 xff0c 对目标信号进行最速跟踪 43 不确定量观测补偿 43 低通滤波信号微分 43 pid 举例说明 xff1a 输入 xff1a Sr 目标电机速度 xff0c 输出 xff1a u 电机pwm 被控量 xff
  • ADRC/Matlab一步步实现跟踪微分器TD(附完整PLC测试代码链接)

    TD微分器的主要作用 就是安排过渡过程 产生跟踪信号和微分信号 滤除噪声 关于Adrc的理论分析不是本篇博客的重点 主要也是能力所限 相关理论大家可以看韩京清教授的论文 专栏有简单的学习笔记 感兴趣的同学可以看看 链接如下 ADRC自抗扰的
  • 自抗扰控制(ADRC)

    1 ADRC控制原理和结构 xff08 1 xff09 最速跟踪微分器 TD xff08 2 xff09 扩张状态观测器 ESO xff08 3 xff09 非线性状态误差反馈 NLSEF 2 ADRC控制仿真 xff08 1 xff09
  • ADRC Ardupilot代码分析

    记录一下自己对于Ardupilot ADRC控制代码的一些理解 GitHub链接 ADRC Active Disturbance Rejection Control by MichelleRos Pull Request 20243 Ard
  • (ADRC)自抗扰控制器学习总结(一)

    ADRC自抗扰控制基本思想要点 xff1a 1 标准型与总扰动 xff0c 扩张状态与扰动整体辨识 xff0c 微分信号生成与安排过渡过程以及扰动的消减与控制量产生 ADRC主要构成 xff1a 1 gt 跟踪微分器 xff08 TD xf
  • 基于simulink的svm-dtc-adrc控制建模与仿真

    目录 一 理论基础 二 核心程序 三 仿真结论 一 理论基础 永磁电机由于没有励磁绕组和励磁装置 xff0c 不消耗励磁功率 xff0c 对磁极设在转子的电机 如一般同步电机 还可省去滑环和电刷 随着永磁材料和控制技术的发展 xff0c 永
  • ADRC自抗扰控制学习

    入门 自抗扰控制01 xff1a 为何ADRC会成为百年PID算法的继承者 xff1f http news eeworld com cn mp ZLG a23516 jspx 自抗扰控制02 ADRC如何避免执行错误命令 http news
  • LADRC的学习——用simulink搭建仿真模型

    作者 墨心 时间 2019 7 25 用simulink搭建仿真模型 前面两篇博客主要讲了ADRC的相关概念和知识 并且尝试着搭建模型和仿真 之后学习了PID的相关知识 了解了Kp Ki Kd三个参数的意义 接下来 主要根据高志强教授的论文

随机推荐

  • python的列表list排序方法——sort、reverse用法及实例

    目录 1 sort方法的用法和实例 xff08 1 xff09 语法 xff1a list sort key reverse xff08 2 xff09 用法 用于对列表进行排序 xff08 3 xff09 实例 简单的用法实例 与lamb
  • python数据类型之间的互相转换

    目录 1 将元组转为列表 xff08 1 xff09 语法 xff1a list tuple xff08 2 xff09 实例 简单的用法实例 与for函数 if函数 split函数结合使用 2 将列表转为元组 xff08 1 xff09
  • excel的frequency函数的用法和实例

    目录 1 语法和用法 xff08 1 xff09 语法 xff1a frequency data array bins array xff08 2 xff09 用法 xff1a 用于统计指定分组区间的频率 xff0c 以已裂垂直数组返回一组
  • Linux系统下通过命令行获取bios等相关信息

    查看服务器型号 xff1a dmidecode grep 39 Product Name 39 查看主板的序列号 xff1a dmidecode grep 39 Serial Number dmidecode t 1 查看序列号及品牌型号
  • python如何获取时间和格式化时间和日期 ?

    目录 1 time time xff08 1 xff09 用法 xff1a 用于获取当前时间戳 xff08 2 xff09 实例 2 time localtime xff08 1 xff09 语法 xff1a time localtime
  • python的datetime模块常用的语法和实例

    目录 1 datetime类获取日期时间 xff08 1 xff09 datetime datetime now 用法 xff1a 获取系统当前时间 xff08 2 xff09 datetime datetime today 用法 xff1
  • python的自定义函数的用法和实例

    目录 1 自定义函数的语法和用法 xff08 1 xff09 引入 xff08 2 xff09 语法 xff08 3 xff09 用法 xff1a 用于自定义目标函数语法 xff08 4 xff09 调用函数 语法 解释 2 实例 xff0
  • python的字典dict实例

    1 获取目标字典 xff0c 将字典中的字键和值调换 xff0c 读取名字 dict 61 39 Zara 39 39 Name 39 7 39 Age 39 39 First 39 39 Class 39 dict items 以列表返回
  • python利用read()、readline()、readlines()读取文件

    目录 1 语法和用法 2 实例 1 语法和用法 with open file mode 61 39 r 39 encoding 61 None as f 读取所有文本 data1 61 f read 读取第一行数据 data2 61 f r
  • python的panda库读写文件

    目录 1 读取excel文件 xff08 1 xff09 语法 xff08 2 xff09 实例 2 读取cvs文件 xff08 1 xff09 语法 xff08 2 xff09 实例 3 读取txt文件 xff08 1 xff09 语法
  • frankmocap

    1 配置和报错 1 1 模块缺失 ModuleNotFoundError No module named detectors body pose estimator pose2d models 下载问题 xff0c 下载完之后该文件夹下面的
  • java的三种代码注释方式

    1 注释的作用 注释是对程序语言的说明 xff0c 有助于开发者之间的交流 xff0c 方便理解和维护程序 注释不是编程语句 xff0c 不会被编译器执行 一些代码量少较少的程序 xff0c 我们加不加注释对我们的理解和修改代码没有太大影响
  • UCOS的多任务

    初学UCOS多任务调度 xff0c 总是有这样一个疑惑 xff1a 为什么多使用多任务 xff0c 写多个函数不就可以了吗 xff1f 随着不断学习 xff0c 后面终于有了一个答案 多任务是并发执行 xff0c 每个任务都做一点 xff1
  • IAR编译成功,但烧录不进去

    把默认的Simulator改为ST LINK试试 xff1f
  • ipmitool使用

    BMC IPMI常用命令 BMC Baseboard Management Controler 提供了多种通道来和主机通信 xff0c 进而检测主机的温度 风扇转速 电压 电源和现场可替代器件 为了便于用户使用 xff0c 它提供了非常丰富
  • 基于LMI的等效滑模控制

    目录 前言 1 一阶欠驱动倒立摆系统 2 基于LMI的等效滑模控制器 3 simulink仿真 3 1 simulink模型 3 2 结果分析 3 2 结论 前言 关于LMI和滑模控制的结合上两篇文章已有介绍和仿真分析 xff0c 本篇文章
  • 基于扩张观测器(LESO)的滑模控制

    目录 前言 1 二阶系统LESO观测器设计 2 基于LESO的滑模控制器设计 3 仿真分析 普通高增益项 3 1仿真模型 3 2仿真结果 3 3 总结 4 仿真分析 优化后的高增益项 4 1 优化高增益项 4 2仿真结果 4 2 1 高增益
  • 基于遗传算法和粒子群算法的PID悬架控制、LQR悬架控制和滑模悬架控制

    目录 1 基于遗传算法和粒子群算法的的PID悬架控制 1 1 两种悬架系统 1 1 1 将路面激励整合到悬架系统 1 1 2 不将路面激励整合到悬架系统 1 1 3 总结 1 2 PID经典控制理论 1 3 优化PID参数的目标函数和约束条
  • 2自由度陀螺仪滑模控制和PID控制跟踪目标轨迹

    目录 前言 1 陀螺仪模型 2 滑模跟踪控制 3 PID控制 4 总结 1 陀螺仪模型 2 滑模跟踪控制 对于2自由度陀螺仪有两个方向x y跟踪 xff0c 所以需要分别为两个方向单独设计滑模面 xff0c 这里仍以简单的线性滑模面设计分析
  • 自抗扰控制ADRC之三种微分跟踪器TD仿真分析

    目录 前言 1 全程快速微分器 1 1仿真分析 1 2仿真模型 1 3仿真结果 1 4结论 2 Levant微分器 2 1仿真分析 2 2仿真模型 2 3仿真结果 3 非线性跟踪微分器 韩教授 3 1仿真分析 3 2小结 4 总结 前言 工