ESO怎么计算扰抗

传统PID 的缺陷

ESO是自抗扰控制的核心,了解了ESO就了解了自抗扰控制的精髓。

自抗扰控制又名ADRC,相比传统的PID到底有什么优势呢?为啥高精度控制都在追求ADRC控制?
传统的PID:
P比例,I积分,D微分,了解过PID的都知道公式,这我们就不列举PID公式了。
P调节控制的反应,D调节物体控制的刹车,I修正静态误差。
I += err *KI;
err即控制的误差err=期望值-测量值;err为正则I正方向增加,err为负则I负方向增加。这样就很容易引起I值的震荡,err接近0时I值过大,导致控制输出值过冲。所以I控制的曲线大概如下:
在这里插入图片描述
引起控制不稳定。

ESO公式详解

ESO的公式也比较简单,但是方法很精妙,我们来看一下公式:
e(k) = z1(k) - y(k) ------------------------------------------------------------------1
z1(k+1) = z1(k) + h[z2(k) - b01 * e(k)] ----------------------------------------2
z2(k+1) = z2(k) + h[z3(k) - b02 * fal(e(k), 0.5,q) + b * u] -----------------3
z3(k+1) = z3(k) - h * b03 * fal(e(k), 0.25,q)----------------------------------4
各个变量的物理意义才是关键:
y(k) 为当前量测值
z1(k) 为当前计算出来的预估值
所以e(k)就是预估值与量测值的差,这个差值后面参与的运算很重要,作为预估值微分以及微微分都有参与运算。包括预估值的修正等。
z2(k)为z1的微分
h为计算步长
b02为误差值e(k)的修正增益
fal(e(k), 0.5,q) 为一个非线性函数,因为最优的控制曲线不一定是线性曲线
b为观测器增益
u为控制输出值
z3为计算出来的扰抗值

z3扰抗值

z3怎么就成了扰抗值了呢?这里有一个很重要的信息U,U作为控制器的输出,其理论上U输出越大量测值y(k)就越大,所以我们可以做一个假设:
假设物体有一个确定的线性模型,输出U与Z2成线性正比关系:
z2 = U * a---------------5;线性比例为a
在没有扰抗的情况下z1应该非常接近y的,此时假设扰抗为零。
在某一个时间段内外界给系统输出一个阻力,使得U与Z2不再适用于之前的公式5,此时z1因为经过z2积分,慢慢的偏离y,从而产生了数值比较大的e。
扰抗值z3因为是由e积分而得来,所以经过时间的积累z3慢慢趋近于扰抗值,当z3与扰抗值相近是e也会慢慢的收敛趋近0.从而达到动态平衡。
这个扰抗值加入到控制器可以达到消除静差的一个目的。

ADRC自抗扰控制的本质

ADRC分三个阶段:
微分-跟踪器(TD)、扩张状态观测器(ESO)、非线性控制
微分-跟踪器(TD)可以去看ACKFLY的一篇文章,我觉得写的非常详细:
https://blog.csdn.net/weixin_40767422/article/details/86709848
ESO其实本质上也存在滤波效果
相比于传统PID,ADRC控制的本质就是数据的滤波、传统PD控制和扰抗计算的控制。这套系统调的好的话控制效果是可以非常接近目标值的,关键就是扰抗的计算,扰抗的计算又设计到系统模型的搭建,模型搞对了控制效果才会有一个明显的提升

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值