ADRC个人感觉就是,对目标信号进行最速跟踪+不确定量观测补偿+低通滤波信号微分+pid
举例说明:
输入:Sr 目标电机速度 ,
输出:u 电机pwm
被控量,反馈量 :y 电机实际速度输出
一,最速跟踪微分器TD
1,表达式
1,sign函数表达式
2,fsg函数表达式
3,fnan表达式:中这里选用第二种表达式
最速跟踪微分器的作用是起到一个缓冲作用,比如输入一个阶跃信号,它会让信号有一定斜率,让执行机构不会一启动就进入最大马力,从而导致第一次及后面几次逼近设定值时出现超调。它的可调参数与实际系统
- 输入输出:
1,输入:
V(t): 是输出目标值 (比如目标位置)
参数中:
1, V(t)是目标值
2, h、h0为积分步长(也叫滤波因子),一般来说h可以等于h0,
但是为了减少超调和减少震荡,才把他们分开,
一般h0比h大,比如大20倍。
当h0较大时,能够明显减少震荡,
所以也叫滤波因子。减小h可以抑制噪声放大作用。
3, r为速度因子,值越大,逼近速度越快,
但是最好根据实际被控对象的可承受能力而定。
二,扩张状态观测器
1,sign函数表达式
2,函数fal表达式
三,状态误差反馈律
最近做的项目用到了自抗扰,尝试联系一些相关领域的老师,无奈似乎有所保留,只得自己从头研究起。讲道理,无论是复杂的系统,还是超过9个参数的调节,整个调程序和调参的过程都不是特别顺利。不过结果还好,粗调后整个系统虽然在冷启动时期的表现跟PI控制相差不多,但是对抗突变干扰时的稳定时间却碾压了PI控制。 在这里记录一下大体调节的心路历程,祭奠这俩周逝去的青春(雾):
跟踪微分器参数TD:r,d
非线性反馈参数NLSEF:Kp,Kd,b,d,a
扩张观测器ESO:b1,b2,b3,d
首先,调参的原则肯定是控制变量。ESO中的b1,b2,b3参数,据说是跟系统带宽有关,在关于ADRC算法以及参数整定(调参)的一些心得体会中说:根据高志强老师的研究结论(参考论文《Scaling and bandwidth-parameterizatiocontroller tuning》),可以依据观测器带宽的概念来设计参数,即b1=3ω0, b2=3ω0方, b3=ω0三方。其中,ω0是观测器带宽。即可以理解为:b1b2=9b3。可以固定一组B参数进行调节,即需要调节的参数为:
跟踪微分器参数TD:r,d
非线性反馈参数NLSEF:Kp,Kd,b,d,a
扩张观测器ESO:d