17th智能车NEUQ智能视觉组ADRC控制器介绍与调参经验

写在前面

       ADRC控制器,出现在智能车竞赛上其实已经有很多届了,我所知道最早的是十三还是十四届的成信的四轮组,然后是山威十五届四轮组,十六届的好几个组,我们也是抱着“一定要做点不一样的东西,全新的硬件与软件”的态度开始的,但说句实话,对于智能车竞赛而言,ADRC相对于PID的优势有,但没有那么明显,并且它的学习成本比较高,调参难度大(非线性ADRC十几个参数,PID三个(甚至很多时候是2个))我当时光看韩京清先生的《自抗扰控制技术》就看了两个月,需要自动控制原理,特别是现代控制理论的基础。从开始的matlab仿真调参,到实际上车实际调参,都出现了很多的问题,对于大部分队伍来说,是没有这个时间与精力的。虽然对于非线性ADRC来说,调参很困难,但线性ADRC还是相对比较好调的。拿出来分享也是今年发现不知道是什么原因,当时我们提交的技术报告并没有存在于当时卓大发出的汇总里,当时愿意写进技术报告本身就是为了分享,留下点东西,证明自己来过,就此补上吧,送给有缘人。
在这里插入图片描述

技术报告原文内容

6.3.2 ADRC控制

       PID虽然简单,并且也能达到不错的控制效果,但其也存在以下的一些问题:

       1) 尽管PID的稳定余度不小,但具有良好的动态品质的余度不大,当被控对象处于经常变化的环境中时,常需要变动PID增益
       2) 直接取目标与实际之间的误差并不是完全合理的(要求一个连续量去跟踪一个瞬变量),直接取这种误差,常常使初始控制量太大而导致超调,这也是PID控制的闭环系统中产生“快速性”与“超调”的矛盾的主要原因。
       3) 经典微分器对噪声十分敏感,且T越小,噪声放大越严重,完全可能淹没真正的微分信号,故常常只用PI控制。
       4) PID是误差的过去、现在、将来的线性组合,而在非线性领域,已经发现有很多效率更高、更好的组合方式。
       5) PID中的误差积分反馈,对常值扰动确实有效果,但无扰动作用时,常使闭环特性变差,而对于时变扰动,积分反馈抑制能力又不显著,使用误差积分反馈是值得商榷的。

       针对上面所述的一些问题,韩京清先生自20世纪80年代末开始,相继开发出非线性跟踪微分器、扩张状态观测器等对信号处理及控制具有独特功能和效率的新型非线性动态结构,也提出了具有特殊功能的非线性误差反馈机制,从而开发出非线性PID、最优非线性PID、自抗扰控制器、最优自抗扰控制器等一系列新型非线性实用控制器。在这些新型控制结构中,自抗扰控制器最具代表性,因而统称为“自抗扰控制技术”(Active Disturbance Rejection Control Technique,ADRC)。自抗扰控制器的整体结构如图6.5所示。

在这里插入图片描述

       根据其具体算法以及系统结构,我们通过Simulink搭建了相关模型,并通过系统辨识得到的实际电机系统模型进行仿真,并与PID进行对比,整体仿真图如图6.6所示。
在这里插入图片描述

6.3.2.1 跟踪微分器(TD)

       针对上述PID存在的“快速性”与超调的矛盾,韩老师通过理论加仿真的形式给出了其解决方案,具体的办法是:在对象能力所能承受的范围内,根据控制目标,事先安排一个合适的过渡过程,然后让系统的实际行为跟踪这个安排的过渡过程来最终达到控制目标。通过事先安排过渡过程,可以有效解决超调与快速性的矛盾,同时可以使误差反馈增益和微分增益选取范围更大,并且使反馈增益所适应的对象参数范围扩大,鲁棒性增强。

       具体地,韩老师通过其推导的最速控制综合函数fhan(x1,x2,r,h)给出了微分跟踪及过渡过程安排的跟踪微分器TD算法:

在这里插入图片描述

       实现了x1快速无超调地跟踪输入信号v,而x2作为v的近似微分,跟踪过程的微分信号,并且过渡过程即是在下的最优控制。跟踪微分器本质上是一个低通滤波器,可以有效地抑制噪声,从而解决了微分信号“不可用”问题。使用改进型跟踪微分器得到的过渡过程及其微分信号仿真如图6.7所示。

在这里插入图片描述

6.3.2.2扩张状态观测器(ESO)

       不同于PID采用输出反馈,ADRC采用状态观测器,从系统输入与输出提取出系统内部状态变量而进行状态反馈,而不同于常规状态观测器,由于ADRC将系统扰动扩张成为新的状态变量而将系统化为了积分器串联型的简单形式,故通过状态观测可以得到输出的位置信息,速度信息以及加速度信息(扰动大小),进而实现非线性状态误差反馈以及扰动的补偿。韩老师通过非线性函数fal(a,x,δ)给出了非线性ESO的离散形式:

在这里插入图片描述

       Z3能够跟踪扰动的根本原因在于只要系统满足能观性条件,那么只要加速度起作用,其作用必然会反映在系统输出上,仿真所得到的效果如图6.8所示(t=8加入常值扰动)。

在这里插入图片描述

6.3.2.3非线性误差反馈控制律(NLSEF)

       非线性状态反馈通过误差与误差微分的非线性函数幂次函数fal组成状态反馈。由于扰动可以得到估计和补偿,故不需要误差积分信号,相当于PID中的PD控制,并相当于拥有极大的Kp。而非线性函数fal:

在这里插入图片描述

       也有着很有意思的性质:对于α>1的光滑误差反馈,其具有小误差小增益,大误差大增益的性质,而对于α<1的非光滑误差反馈则是小误差大增益,大误差小增益。非光滑的误差反馈控制律是控制工程界追求多年的误差反馈律。

       非线性ADRC推荐采用以下两种形式的NLSEF:

在这里插入图片描述

在这里插入图片描述

6.3.2.4 扰动量补偿与控制量生成

       通过ESO,原对象中扩张出的代表扰动的状态变量x3被ESO的z3跟踪,通过消减x3(即z3),即可化为积分器串联型的形式,使控制变得简单,并直接抑制扰动,其扰动抑制能力是PID的I项无法比拟的,控制量根据b在系统结构的位置不同可取
在这里插入图片描述

       或
在这里插入图片描述

       通过Simulink仿真得到的电机响应如图6.9所示。

在这里插入图片描述

       虽然非线性ADRC的性能优良,但其参数繁多,理论依赖性较大,调参周期很长。考虑到线上国赛规则变化较大,重新改结构后调参时间较少,我们最终只使用了两个跟踪微分器TD用以安排过渡过程与提取输出微分信号,而并未加入扰动补偿,经过实际测试,也同样达到了非线性ADRC快速无超调的性能。事实上,智能车现在应用的ADRC也都没有加入扰动补偿,由于我们接触时间较短,相关理论性过强,我们更多地花时间在非线性ADRC的改进与调参摸索上,而并未在此方面做过多研究,而是采用全盘接纳的方式,使用完整形式ADRC进行研究。在合理选择参数后,我们调节出了能完全跟上过渡过程,快速且无超调的一组参数,我们最终调节出的ADRC实际阶跃响应如图6.10所示。

在这里插入图片描述

6.3.2.5 ADRC参数调节经验

       ADRC主要涉及安排过渡过程的设计、扩张状态观测器设计、误差反馈设计三个部分,虽然这三个部分组合成一个整体来起着作用,但ADRC参数的调参也可以分成三个独立的组成部分来进行设计,按各自的工程意义分别独立地设计出各个组成部分,然后组合起来。

       首先需要设定整个控制器的积分步长h,或者说是控制周期,我们选取的速度环控制周期为5ms。

        第二步,调节跟踪微分器TD。其主要有两个参数,分别是决定过渡过程快慢的参数r与滤波因子h0。对于r,需要根据系统实际最大作用力进行确定,可以暂时取一个稍微小一点的参数,后续再根据车模实际运行情况进行调节,也可以通过加速度与位置关系根据所需的过渡时间进行大致计算。h0在积分步长h确定后,可以影响TD的滤波能力,取h0=h,进入稳态时,速度曲线会有一点超调,常对其进行改进,取h0为适当大于步长h的参数(如整数倍)。

       第三步,调节扩张状态观测器ESO。β01,β02,β03与积分步长有关,可先根据LADRC给出其具体值,再进行细调。先通过参数辨识或理论计算等方法得到较为精确的b值。后给定一定的NLSEF初值,观察ESO输出z1与z2跟随系统输出的快速性,判断发生震荡现象,震荡调小,跟踪缓慢则增大。α1与α2可以直接分别取0.5与0.25也可进行细调。再微调δ,注意δ不可过大,否则线性成分过多,也就失去了非线性的意义了,一般可取5h≤δ≤10h。

       最后调节非线性状态误差反馈控制律NLSEF。先根据需要选用一种非线性形式,我们选择的形式是

在这里插入图片描述

       再确定a1与a2的值,根据fal函数的性质常取误差为小误差大增益,大误差小增益,而微分为小误差小增益,大误差大增益,即0<a1<1<a2,再根据类似PID调参的思路根据曲线调节β1与β2系数即可,ADRC鲁棒性极佳,以至于在调好的增益上变化五六倍影响也很小,这是PID所不能达到的。

       ADRC性能虽然相比PID虽有明显优势,但其均建立在理解了其内部思想及会调参数的基础上,若只是作为没有理论基础的门外汉强行引入ADRC,往往还达不到PID的控制效果,甚至只能振荡或者无法收敛。

比赛回忆

​       不知不觉间,距离我们的比赛结束已经过去快两年了。回味起当年的调车时光,总有说不出来的感觉。对于我们小组而言无疑是幸运与不幸的,也留下了一些遗憾。22年上半年因为疫情,我们连学校都去不了,只能在自己家里搭了个场地调了半年,中途就只有每周的会议交流与会议在线联调,开始的进度确实非常非常慢,在六月底返校前我们也没能按照规则完整完赛过。
在这里插入图片描述

在这里插入图片描述

       来到学校后,因为更换硬件,在七月九号才搭出来了车,开始调全向的方案,直到七月十七号燕大交流赛正式进行前十五分钟,才把我们的惯导定位问题bug解决,走点不再差的离谱,最后,4*5的场地12张图吧,跑了1分50,在那之后我们才慢慢好起来,不断地提速,优化视觉识别速度,甚至有一天提升了30s,到华北赛前,差不多是完赛65s的水平。不过有点可惜的是,因为我们当时A4纸识别纸不能太偏,我们赛前做了个放A4纸的垫子,原本想着是跟A4纸差不多大,然后顶着车子,放上去直接就能对准,就是在运输过程中出了点问题,等到了燕大赛前测试发现不好用了,临时又采用人手对着屏幕对齐再发车,多费了几秒钟,最后成绩70s,华北赛第四,这成绩是我们六月底来学校时不敢想象的。
在这里插入图片描述

       省赛过后,大家基本都在研究各种三分类一次性的搬运结构,虽然我们早早就布局了机械,但我们没有相关经验,并没有能力独立设计出比较好的结构,最后也是经过跟老师的交流,以及机器人那边学妹的帮忙,我们才最后拿出了我们的方案,刚把结构打印出来,线上赛又改成了五分类,没办法我们只能重新设计,但因为拖了很久,直到8月20号提交车检报告的最后一天,我们才把我们的车装好,还记得当时北科的兄弟一直来问我们现在跑的怎么样了,我说连车都还没装好,他是不信的,但事实确实是这样。而此时距离国赛只有4天,然后就是一直调车了,中途发现,我们的路径规划在15个点的情况下效果就不是很好了,有时候的路径是真差,但也没时间改了,最后只能硬上,拿次数来抵消随机性。
在这里插入图片描述
       到25号凌晨5点,我们跑出了一次45s(虽然有张图卡盒子里了),按照24号的成绩,这个成绩就是稳了,但第二天早上起来后发现,我们的电磁铁因为没做缓冲装置,频繁地碰撞导致舵机发生了虚位,而我们的机械结构注定容易识别对了也有可能放错格子,因为我们当时图省钱了,舵机没有买备用的,只能通过调节舵机角度试图拯救,救了一上午也没救下来,最后下午比赛,最好的一次也还是放错了一张图,最后只跑出了64s的成绩。比赛完本来以为完蛋了,提交完材料直接就睡觉去了,醒来才发现东大和天大比我们想象中的拉了,最后线上赛第六,压线国一(虽然比第七快了10多秒),也算是不幸中的万幸了。

在这里插入图片描述

       总的来说,无论是燕大交流赛,华北赛,国赛,我们都是在极短的时间内调出来的,确实难能可贵,是我们的幸运,但每一场比赛,我们也都出了很大的问题,国赛更是大翻车,从争二三变成了压线国一,这也是我们的不幸与遗憾,但说到底也还是太菜了,准备不周全。而对于我个人来说,从十六届做硬件,到十七届选择这个视觉组这个全新赛制又技术覆盖很广的组,做硬件与控制,没有传承,全部从头来,从开始研究新的硬件房间,RT-Thread到后面ADRC控制器,西安邮电的辅助轮,三分类,五分类的机械结构,每一步都走的不轻松,但也是收货满满,我们不仅收货了技术上的提高,还有坚实的友谊。
在这里插入图片描述

       最后送给同样做车的同学,一定要做好完全的准备,备好替代件;重视平时出现的问题,你得相信如果它平时会出现,那就一定会在比赛场上出现。最后祝所有热爱智能车的同学们都能取得理想的成绩。

参考资料

       《自抗扰控制技术——估计补偿不确定因素的控制技术》——韩京清

ADRC一些参考资料分享

       资料已上传至我的CSDN资源,需要自取。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

辣个蓝人QEX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值