一. 前言
上篇中详细阐述了几种经典的PID控制算法及其存在的问题以及改进思路了,本篇将围绕韩京清教授开创的自抗扰控制算法进行阐述,该算法为工业控制领域带来了一项可操性极强的自动控制技术。
二. ADRC的算法原理
现代控制理论虽然提出了许多性能卓越的控制算法与设计方法以及分析工具,然而,现代控制理论所设计的控制器往往高度依赖于所建模型的精度。而在实际工程中,精确的模型参数较难获得,甚至于所建立的数学模型也未必能够真实反映被控对象的所有特性。因此,其实际控制性能往往不如理论设计的那么优越。相对的,经典PID控制理论则不依赖于被控对象模型,仅仅依靠误差对被控对象进行反馈控制。但其控制器往往只适用于线性对象,当被控对象呈现出强耦合,非线性特性时,基于PID经典控制理论所设计的控制器性能容易出现不如人意的情况。
自抗扰控制算法是韩京清教授针对PID控制算法的不足,提出的一种非线性控制算法。其吸取了PID控制算法“基于误差来消除误差”的控制思想,在PID控制算法基本思想的基础上,增加了以下环节:
- 过渡过程
- 非线性反馈控制律
- 扩张状态观测器
- 更合理的微分信号生成器
以上几个环节的组合即为经典的非线性ADRC控制器,如图1所示,
![微信图片_20201226195638](https://www.guyuehome.com/Uploads/wp/2020/12/微信图片_20201226195638.jpg)
跟踪微分器的主要作用是提取微分信号的同时,尽可能地抑制运算中引入的噪声,从而得到精度较高的微分信号。
例如,输入信号
![[公式]](https://www.zhihu.com/equation?tex=v%28t%29)
,它将输出两个信号
![[公式]](https://www.zhihu.com/equation?tex=v_%7B1%7D%28t%29%2Cv_%7B2%7D%28t%29)
,其中
![[公式]](https://www.zhihu.com/equation?tex=v_%7B1%7D%28t%29)
跟踪输入信号
![[公式]](https://www.zhihu.com/equation?tex=v_%7B%7D%28t%29)
,
![[公式]](https://www.zhihu.com/equation?tex=v_%7B2%7D%28t%29)
跟踪输入信号的微分信号。
下式为最速跟踪微分器的离散形式(公式1):
![1608983845(1)](https://www.guyuehome.com/Uploads/wp/2020/12/16089838451.png)
由于直接将连续时间最速跟踪微分器进行离散化,系统进入稳态后会产生不能令人满意的高频震颤,因此,将函数
![[公式]](https://www.zhihu.com/equation?tex=f)
进行以下优化。
令(公式2)
![1608983956(1)](https://www.guyuehome.com/Uploads/wp/2020/12/16089839561.png)
则得到优化后的离散最速跟踪微分器如下:
![1608983987(1)](https://www.guyuehome.com/Uploads/wp/2020/12/16089839871.png)
现使用
![[公式]](https://www.zhihu.com/equation?tex=x_%7B1%7D%28k%29-v%28k%29)
代替式(4)中的
![[公式]](https://www.zhihu.com/equation?tex=x_%7B1%7D%28k%29)
,得到下式:
![1608984014(1)](https://www.guyuehome.com/Uploads/wp/2020/12/16089840141.png)
跟踪微分器的参数主要有两个:快速因子
![[公式]](https://www.zhihu.com/equation?tex=r)
和滤波因子
![[公式]](https://www.zhihu.com/equation?tex=h)
。其中,
![[公式]](https://www.zhihu.com/equation?tex=r)
与跟踪速度呈正相关,然而,随之带来的是噪声放大的副作用;
![[公式]](https://www.zhihu.com/equation?tex=h)
与滤波效果呈正相关,但当
![[公式]](https://www.zhihu.com/equation?tex=h)
增大时,跟踪信号的相位损失也会随之增加。
尽管跟踪微分器提取的微分信号比直接差分近似得到的微分信号噪声小,但由于传感器信号存在噪声,若直接输入跟踪微分器进行微分信号提取,则依然存在较大的噪声。
因此,本文对传感器原始信号进行低通滤波后,再输入跟踪微分器进行微分信号提取。图2、3为跟踪微分器滤波前后的曲线对比图,其中,输入参考信号为
![[公式]](https://www.zhihu.com/equation?tex=u%28t%29%3Dsin%284t%29)
,输入参考信号叠加了标准差为0.01的高斯白噪声。
图2、图3跟踪微分器参数为
![[公式]](https://www.zhihu.com/equation?tex=h%3D0.001%E3%80%81r%3D1000)
。根据下图中实验结果表明,滤波前跟踪微分器z1、z2与状态量x1、x2的残差的方差分别为0.000137与1.2577;滤波后跟踪微分器z1、z2与状态量x1、x2的残差的方差分别为0.000082与0.0038。由此可见,滤波后跟踪微分器的估计信号噪声大大下降。
![1608984034(1)](https://www.guyuehome.com/Uploads/wp/2020/12/16089840341.png)
已知非线性状态观测器:
![1608984057(1)](https://www.guyuehome.com/Uploads/wp/2020/12/16089840571.png)
将作用于开环系统的加速度
![[公式]](https://www.zhihu.com/equation?tex=f%28x_%7B1%7D%28t%29%2Cx_%7B2%7D%28t%29%29)
的实时作用量扩充成新的状态变量
![[公式]](https://www.zhihu.com/equation?tex=x_%7B3%7D)
,记作(公式8):
![1608984078(1)](https://www.guyuehome.com/Uploads/wp/2020/12/16089840781.png)
并记
![[公式]](https://www.zhihu.com/equation?tex=x_%7B3%7D%28t%29%3Dw%28t%29)
,那么系统(7)可扩张成新的系统
![1608984096(1)](https://www.guyuehome.com/Uploads/wp/2020/12/16089840961.png)
按式(6)对这个被扩张的系统建立状态观测器:
![1608984416(1)](https://www.guyuehome.com/Uploads/wp/2020/12/16089844161.png)
其中,
![1608984441(1)](https://www.guyuehome.com/Uploads/wp/2020/12/16089844411.png)
通过选取合适的参数
![[公式]](https://www.zhihu.com/equation?tex=%5Cbeta_%7B01%7D%2C%5Cbeta_%7B02%7D%2C%5Cbeta_%7B03%7D)
,该系统能够较好地估计系统(7)的状态变量
![[公式]](https://www.zhihu.com/equation?tex=+x_%7B1%7D%28t%29%2Cx_%7B2%7D%28t%29)
及被扩张的状态的实时作用量
![[公式]](https://www.zhihu.com/equation?tex=x_%7B3%7D%28t%29%3Df%28x_%7B1%7D%28t%29%2Cx_%7B2%7D%28t%29%29)
,即
![1608984475(1)](https://www.guyuehome.com/Uploads/wp/2020/12/16089844751.png)
则从观测器(10)同样可以得到状态变量
![[公式]](https://www.zhihu.com/equation?tex=x_%7B1%7D%28t%29%2Cx_%7B2%7D%28t%29)
的估计值
![[公式]](https://www.zhihu.com/equation?tex=z_%7B1%7D%28t%29%2Cz_%7B2%7D%28t%29)
,同时还能估计出被扩张的状态变量作用于系统的加速度的实时作用量
![1608984499(1)](https://www.guyuehome.com/Uploads/wp/2020/12/16089844991.png)
因此,把被扩张的系统的状态观测器称为系统的扩张状态观测器,而变量
![[公式]](https://www.zhihu.com/equation?tex=x_%7B3%7D%28t%29)
称为被扩张的状态。
扩张状态观测器共有
![[公式]](https://www.zhihu.com/equation?tex=%5Calpha_%7B1%7D%2C%5Calpha_%7B2%7D%2C%5Cdelta%2C%5Cbeta_%7B01%7D%2C%5Cbeta_%7B02%7D%2C%5Cbeta_%7B03%7D)
六个参数。其中,
![[公式]](https://www.zhihu.com/equation?tex=%5Calpha_%7B1%7D)
取0.5,
![[公式]](https://www.zhihu.com/equation?tex=%5Calpha_%7B2%7D)
取0.25。
![[公式]](https://www.zhihu.com/equation?tex=%5Cdelta)
为
![[公式]](https://www.zhihu.com/equation?tex=fal%28e%2C%5Calpha%2C%5Cdelta%29)
函数的线性区间宽度。
![[公式]](https://www.zhihu.com/equation?tex=%5Cbeta_%7B01%7D%2C%5Cbeta_%7B02%7D%2C%5Cbeta_%7B03%7D)
三个参数为扩张状态观测器的反馈增益。当控制周期
![[公式]](https://www.zhihu.com/equation?tex=h)
确定时,适当地选取
![[公式]](https://www.zhihu.com/equation?tex=%5Cdelta%2C%5Cbeta_%7B01%7D%2C%5Cbeta_%7B02%7D%2C%5Cbeta_%7B03%7D)
的组合,则ESO可以很好地估计总扰动。
传统的PID控制器采用线性的组合形成误差反馈控制律,为了使误差反馈更有效率,故采用不同的非线性函数组合来生成不同的误差反馈控制律,常用的非线性状态误差反馈控制律如下所示:
![1608984529(1)](https://www.guyuehome.com/Uploads/wp/2020/12/16089845291.png)
事实上,实际工程中也常用类似的非线性误差反馈律来生成对应的非线性PID控制器,以提高控制系统的性能。
三. 总结
本篇详细阐述了自抗扰控制算法的原理,下篇中将详细阐述两种典型的自抗扰控制器的参数整定方法以及多旋翼飞行器控制系统中的自抗扰控制器设计方案。
作者简介: 一个被Coding耽误的无人机算法工程师,控制、导航略懂一二,热衷技术,喜欢乒乓、音乐、电影,欢迎交流。
知乎:@遥远的乌托邦
GitHub: https://github.com/DistantUtopia
微信公众号:@遥远的乌托邦
评论(1)
您还未登录,请登录后发表或查看评论