这篇很好地引入介绍了ADRC

2023-05-16

这篇很好地引入介绍了ADRC

https://zhuanlan.zhihu.com/p/151342543?from_voters_page=true

从零开始搭建无人机控制系统(一)——反馈与闭环

遥远的乌托邦

遥远的乌托邦

欢迎关注公众号“遥远的乌托邦“。

前言

有人说控制是一门玄学,有时候,通过修改一个参数就能大幅提高控制性能,有时候又死活调不出理想的效果;也有人说控制是一门艺术,它的实现机理充斥着数学之美。它是一门将理论与工程完美结合的学科。

本专题将从零开始,带着各位读者,理一理无人机控制系统的那些事。

控制的本质是对信号的操纵,即在理解信号特性的基础上,对其进行一定的改造,使其达到人为设定的目标。这个目标可能是某种特定的数值,也可能是一定的数值范围或是一组约束条件等等。

这是我认为的广义上的控制。事实上,控制应该归属于信号处理领域的一个分支。控制领域对于系统的分析方法,大多数也可以用信号处理理论来解释。

闭环系统与开环系统

何为反馈?

在讨论开环与闭环系统之前,我们先来看看反馈的概念——将系统的输出信号返回至输入端,并以某种形式改变输入,它们之间存在因果关系的回路即为反馈回路,从输出返回至输入的信号即为反馈信号

这样描述可能有一点抽象,下面以简图来表示:

任意系统与外界交互的表现均可用上述图来简化,以电机为例,输入即输入信号,如转速指令;输出即输出信号,如实际转速;反馈即反馈信号,这里为实际转速的采样信号。

上图中的系统组成了最简单的反馈系统,而反馈又分为负反馈正反馈

负反馈使输出起到与输入相反的作用,使系统输出与系统目标的误差减小,系统趋于稳定;正反馈使输出起到与输入相似的作用,使系统偏差不断增大,使系统振荡。

很显然,我们希望被控对象的输出逐渐趋近于我们的设定目标,即误差逐渐缩小,而不是发散,因此,控制领域研究的反馈主要指的是负反馈

闭环与开环系统的区别

回过头来说说闭环与开环系统。

开环系统即输入信号不受输出信号影响的系统,也可以简单的理解成没有反馈的系统,如下图所示。

开环系统的输入信号直接影响系统的输出,不与输出信号的反馈组成因果回路,是最容易理解的控制系统。

反之,很容易理解,拥有反馈环节的系统即为闭环系统。

闭环与开环系统的优劣势及应用

开环系统的结构简单,通常用于被控对象扰动模型已知且可补偿的情况,或对控制系统的控制精度要求不高时使用。

在工程上,开环系统的性价比较高。它不需要复杂的反馈环节,这意味着不需要采用昂贵的传感器对输出信号进行测量,只需要确定输入输出信号的数学关系、确定扰动因素的补偿关系即可。

实际工程中,开环系统往往需要准确测量或估算扰动量(这里的扰动既包括系统工作时受到的外界干扰,如摩擦力;也包括系统内部的扰动,如系统未建模动态),对其进行前馈补偿,这样才能得到较高的控制精度与抗扰性能,而不至于外界扰动变化就使得系统发散(这里的系统包含执行器与被控对象,控制器的输出信号即为系统的输入信号,为避免引起歧义,这里特做说明,下文不再赘述)。

开环控制系统最经典的应用如Bang-Bang控制算法以及部分简单的温控系统。

闭环系统则相对复杂,换句话说,相对而言,它没有开环系统那么“经济”。首先,闭环系统相对开环系统多了反馈环节,我们需要采用传感器对输出信号进行测量,然后才能形成反馈回路。

其次,闭环系统需要在系统输入之前增加控制器部分。它根据系统的目标指令与反馈信号,根据预先设定的控制律,计算出一组使得目标与反馈信号误差逐渐缩小的输入信号,对系统进行闭环控制。最经典的PID控制算法即是下图的控制结构。

仅仅采用反馈控制器对系统进行闭环控制,能够在理想情况下达到预期的控制性能。然而,这样的控制结构忽略了扰动对于系统的影响,控制系统的抗扰性能无法保证,工程师们往往通过不断调整参数来使控制系统的性能与抗扰性取得一个折中值。

显然,这不是一个最优的控制结构。由此,工程师们又想出了另一种优化的控制结构。

这种控制结构在经典的开环控制系统基础上,将开环控制器替换为反馈控制器,如此,既能保证控制系统的控制精度,又能兼顾控制系统的抗扰性。

这种控制结构最经典的应用即ADRC(自抗扰控制算法)。然而,扰动观测器的设计是十分有难度的。对于工况复杂的对象而言(如无人机),设计一个全局最优的扰动观测器是一个非常有难度的课题。

复杂的业务指标如何兼顾?

实际工程中,我们往往会接到各种各样的控制指标需求。对于单一的业务指标而言,我们可以很容易对其进行数学描述。

这里还是以电机为例,假如我们想要让电机工作在某一个转速,那么他的目标指令就是转速指令,这是非常容易理解且易于工程实现的。

那么,如果我们想要让电机工作在某一转速的前提下,工作温度不超过50摄氏度,且工作电流不大于20安培呢?这样的目标指令该如何描述?控制器该如何设计?

这其实是一个比较现实且复杂的控制问题,它的目标指令并不是由单一的指标组成,而是一组目标指令的集合,且很可能涉及到多个反馈回路。

对于这一类问题,学者们又提出另一种控制结构。

对于复杂的业务目标,我们首先需要对其进行分解,根据被控对象的系统模型将其分解为可被解析表达的数学形式,这些表达式可能是等式约束(如上文提到的工作在某一转速),也可能是不等式约束(如上文提到的工作温度不超过50摄氏度,工作电流不超过20安培

其次,我们需要针对这些约束条件以及系统模型,设计对应的优化算法(常见的如线性规划、二次规划等)。通过优化算法得到一系列全局最优的系统输入,再次根据系统模型计算出对应的模型输出。

最后,将模型输出(即控制器的目标指令)输入反馈控制器进行闭环控制。

这种控制结构层次分明,对于复杂的业务指标,优化算法可以根据用户对于不同指标的倾向性(通常在不同约束条件之前施加一定的权值),结合系统模型,计算出全局最优的目标指令。

那么,在得到一系列目标指令后,每一层级的控制器(如转速有转速控制回路,温度有温度控制回路,电流有电流控制回路)只需要关心如何达到各自的目标指令即可。

很多现代控制算法均采用类似的控制结构,如自适应控制,LQR(线性二次型控制)等等。

这种控制结构实质上是一种控制控制器的控制结构(听起来有点拗口),它需要对被控对象的模型有准确的建模。

总结

本篇围绕反馈、闭环与开环系统展开,从感性的角度介绍了它们与控制之间的联系。对于无人机控制系统而言,大多数控制结构逃不出上述的范围,至于如何针对不同的状态设计对应控制器是实际的工程问题,也是一门艺术。

下一篇将从数学角度来详解控制系统及其常用数值分析方法与技巧。


作者简介: 一个被Coding耽误的无人机算法工程师,控制、导航略懂一二,热衷技术,喜欢乒乓、音乐、电影,欢迎交流。

知乎: @遥远的乌托邦

GitHub: https://github.com/DistantUtopia

微信公众号: @遥远的乌托邦

http://weixin.qq.com/r/Yh2FnSPExn65rWf_90hw (二维码自动识别)

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

这篇很好地引入介绍了ADRC 的相关文章

  • ADRC自抗扰控制自学笔记(包含simulink仿真)(转载)

    他这里让我很好理解了跟踪微分器 非线性PID 准确说是非线性PD xff0c 所以可以看到输入是两根线而不是三根线 xff09 也就是说传统PID是线性的 xff1f 但是不是那些系统是非线性的 xff0c 比如无人机 xff0c 平衡车
  • 关于ADRC的一些粗鄙之语

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

    分为ADRC h和ADRC c 确实看头文件有用 xff0c 有哪些变量都一目了然 和ACfly一样的是比如都有beta这个参数 ADRC c 本程序只供购买者学习使用 xff0c 版权著作权属于无名科创团队 xff0c 无名科创团队将飞控
  • 用c语言实现adrc算法

    ADRC Adaptive Dynamic Range Control 算法是一种用于自动调节动态范围的方法 在 C 语言中实现 ADRC 算法 xff0c 您需要首先了解 ADRC 算法的基本原理 xff0c 然后根据公式把算法按照 C
  • ADRC从入门到放弃0

    ADRC xff1a 自抗扰控制器 其中 xff0c 在对自抗扰理论的 研究中 xff0c 引入了带宽概念这一个崭新的思路 xff0c 极大的简化了自抗扰技术使用时参数整定 的问题 xff0c 同时时域分析的方法可以发现利用带宽的概念还有利
  • 自抗扰(ADRC)控制原理及控制器设计

    自抗扰控制是在PID控制算法基础上进行改进的新型控制方法 xff0c 它具有不依赖于控制对象模型 不区分系统内外扰的结构特点 常用的自抗扰控制器主要由跟踪微分器 xff08 Tracking Differentiator xff0c TD
  • 无传感器永磁同步电机电机自适应自抗扰ADRC控制策略

    提示 xff1a 无速度传感器永磁同步电机电机自适应自抗扰控制策略 xff0c 在2022年10月12日晚上23 xff1a 00写完的 人生的路真的很难走 xff0c 身边也发生了很多不好的事情 xff0c 关于一些研究成果和simuli
  • 自抗扰控制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 总结 前言 工
  • 自抗扰控制ADRC之扩张观测器

    目录 前言 1 被控对象 被观测对象 2 非线性观测器 2 1仿真分析 2 2仿真模型 2 3仿真结果 3 线性观测器 3 1仿真模型 3 2仿真结果 4 总结和学习问题 前言 什么叫观测器 xff1f 为什么该类观测称为扩张观测器 xff
  • 【ADRC】扩张状态观测器(ESO)

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

    ADRC个人感觉就是 xff0c 对目标信号进行最速跟踪 43 不确定量观测补偿 43 低通滤波信号微分 43 pid 举例说明 xff1a 输入 xff1a Sr 目标电机速度 xff0c 输出 xff1a u 电机pwm 被控量 xff
  • ADRC的simulink仿真实现与m代码实现

    本文章以最简单的二阶系统为例 xff0c 介绍其simulink仿真实现和m代码实现 案例中的二阶系统如下所示 经典ADRC的基本结构如下 xff1a 本案例中的simulink仿真整体结构 xff08 为便于理解 xff0c 结构图与上述
  • Matlab/simulink控制,遗传pid,模糊pid,滑模控制,自抗扰ADRC控制

    Matlab simulink控制 xff0c 遗传pid 模糊pid xff0c 滑模控制 xff0c 自抗扰ADRC控制 xff0c 鲁棒控制 xff0c LADRC控制等 xff0c 以上控制均已封装为simulink模块 xff0c
  • 2020-12-29 Matlab自动化控制-Adrc自抗扰控制参数调节

    Matlab自动化控制 Adrc自抗扰控制参数调节 上篇参看 xff1a https blog csdn net qingfengxd1 article details 111830762 以最简单的线性组合方法 xff08 1 xff09
  • ADRC控制算法在多旋翼飞行器上的应用

    基础理论知识 xff1a 程序中涉及的部分知识点参考如下链接 xff1a ADRC算法以及参数整定 xff1a 关于ADRC算法以及参数整定 xff08 调参 xff09 的一些心得体会 西涯先生的博客 CSDN博客 adrc控制算法 AD
  • ADRC Ardupilot代码分析

    记录一下自己对于Ardupilot ADRC控制代码的一些理解 GitHub链接 ADRC Active Disturbance Rejection Control by MichelleRos Pull Request 20243 Ard
  • ADRC最速综合函数fhan实现

    ADRC最优综合函数fhan函数测试 fhan函数是ADRC的跟踪微分控制器的核心函数 xff0c 使得状态变量可以快速跟踪上系统输入 本例中 xff0c 设理想输入v 61 sin t 用状态变量x1跟踪输入 xff0c x2跟踪输入的导
  • 基于simulink的svm-dtc-adrc控制建模与仿真

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

    自抗扰控制器 Auto Active Disturbances Rejec ion Controller ADRC 是韩京清学者提出的 xff0c 是一种继PID控制器后的一种新型的实用的控制技术 它不是一种独立的技术 xff0c 可以理解
  • ADRC自抗扰控制学习

    入门 自抗扰控制01 xff1a 为何ADRC会成为百年PID算法的继承者 xff1f http news eeworld com cn mp ZLG a23516 jspx 自抗扰控制02 ADRC如何避免执行错误命令 http news

随机推荐