电子说
一、PID的历史
在讲述ADRC算法前,我们先回顾它的前辈:PID算法。
1932年出生在瑞典后来移民美国的H•Nyquist发表了论文,采用图形的方法来判断系统的稳定性。在其基础上H•W•Bode等人建立了一套在频域范围设计反馈放大器的方法。这套方法,后来也用于自动控制系统的分析与设计。
与此同时,反馈控制原理开始应用于工业过程中。1936年英国的考伦德(A•Callender)和斯蒂文森(A•Stevenson)等人给出了PID控制器的方法,自此PID算法正式形成了。PID控制是在自动控制技术中占有非常重要地位的控制方法。几十年前的PID控制器还是机械式的,如图1的气压控制器。
图1 机械式PID气压控制器
时至今天,凡是有“自动控制”能力的产品,几乎无一不采用到PID算法,大至武器、飞机、轮船,小至家电、IOT设备、玩具等等。例如我们日常使用的空调,它是使用着PID算法将温度控制在我们期望值上;手机导航靠PID算法准确分析运动状态;无人机靠PID算法稳定飞行姿态。 PID在我们周围无处不在,尽心尽力地帮助人类实现“自动控制”。但和几十年前不同,随着计算机技术的发展,现在的PID大多是“软控制”的,即在处理器里面运行软件控制,结构大为简化。
二、 PID的原理与不足
图2是直流电机的PID调速系统。No(t)是期望得到的电机目标速度,N(t)是电机实际的速度,U(t)是PID控制器的输出电压。No(t)与N(t)相比较,得出的偏差值E(t)=No(t)-N(t),经PID控制器计算后输出控制电压U(t),驱动电机改变速度。当实际速度偏小时,即No(t)> N(t),E(t)>0,PID控制器加大U(t)输出,电机实际速度将提高;当实际速度偏大时,即No(t)
图2 直流电机PID调速系统
PID控制器使用公式1进行计算。公式的右边有三项,分别是比例(Proportion)、积分(Integration)和微分(Differential)。
公式 1
比例环节的作用是对偏差作出快速响应,KP越大,控制能力越强,但过大的KP会增大超调量(超过给定值的量)。另外比例环节可以减少静态误差(稳定时与给定值比较的偏差),但不能完全消除。图3使用比例环节把电机的转速从零提升到2500r/min,提升过程比较快,但出现了超调,且存在静态误差。
图3 比例环节的作用
积分环节的作用是消除积累下来的偏差(静态误差)。在控制过程中,只要有偏差存在,积分环节的输出就不断增大,直到偏差E(t)=0,输出才可能稳定在某一值上。但积分环节会降低响应速度,增加超调量。TI越大,积分作用越弱。图4是在比例环节的基础上加上积分环节,先前的静态误差得到消除,电机趋于2500 r/min,但增加了另外一段超调量。
图4 比例环节+积分环节的作用
图5使用了PID的所用环节控制电机。每个环节各尽其职,比例环节P快速提升速度,积分环节 I 消除静态误差,微分环节D压制超调量。
图5 比例环节+积分环节+微分环节的作用
PID虽然应用广泛,但有明显的不足。PID反应慢,它是要等到误差发生后,才去补偿控制,如果控制力太大(比例系数KP),就有超调,如果过小,就反应慢。PID对环境变化敏感,例如无人机的螺旋桨在高速旋转时,受到很强的压缩空气阻力,PID的作用力要很大才能维持稳定的速度,但是当低速时,空气阻力非常小,在强大的PID作用力下,螺旋桨会震动、不稳定,所以这时需要另外一套较弱的PID。
三、ADRC的诞生
干扰,或者称扰动,是指系统外部的环境出现变化,或者系统内部特性改变,最终影响了系统的性能。例如上面提到的无人机的螺旋桨,空气阻力随转速变化,影响电机速度的稳定性,这个是外部扰动;当电机长时间运行后,温度明显上升,铜线圈的电阻值升高,原来预估的给多少V电压就得到多少A电流的关系不存在了,这是内部扰动。
来个假设吧,如果世界一切美好、没有任何内外扰动,那么对于任何系统,只要调整好一次PID参数,就可在任何情况下都达到理想效果。但事与愿违,扰动无处不在,如何实现“他强由他强,清风拂山岗;他横由他横,明月照大江”的抗扰动效果,一直是自控工程中最核心的研究工作。
自抗扰控制(ADRC)技术是已故韩京清研究员借鉴经典PID控制理论,在1999年正式系统地提出来的。他的灵感来源于指南车(又称司南车),是中国古代用来指示方向的一种装置。它与指南针利用地磁效应不同,它不用磁性,它是利用机械传动系统来指明方向的一种机械装置。
其原理是:靠人力来带动两轮的指南车行走,依靠车内的机械传动系统来传递转向时两车轮的差动来带动车上的指向木人与车转向的方向相反角度,使车上的木人指示方向,不论车子转向何方,木人的手始终指向指南车出发时设置的方向。“车虽回运而手常指南”这种思想在ADRC算法中得到了升华。
图6 指南车
四、 ADRC的原理
图7是直流有刷电机ADRC调速控制框图。ADRC的核心有三大模块:跟踪微分器、扩张状态观测器和状态误差反馈控制律。
对于电机速度控制,跟踪微分器的输入是目标速度;输出是跟踪速度和跟踪加速度,跟踪速度等于目标速度,跟踪加速度就是目标加速度。
扩张状态观测器的输入分别是:实际速度、输出电压u和系数b0的乘积;输出分别是观测速度、观测加速度和观测扰动,其中观测速度等于实际速度,观测加速度等于实际加速度,观测扰动是系统内部和外部的总扰动,它除以b0后,减去状态误差反馈控制律输出的电压u0,即得到给电机的电压u。
状态误差反馈控制律根据速度误差(跟踪速度-观测速度)、加速度误差(跟踪加速度-观测加速度),输出电压u0,如果两个误差都为零,那么u0为零。系数b0是大致设定的参数,在这里它表示多少V电压对应多少转速RPM。ADRC不管电压和速度的真实关系,它只按自己设定的b0去控制,它认为当前电压是u,速度应该是u*b0,如果实际速度有不同,偏差都认为是扰动(观测扰动),可能是外部阻力变化引起的,也可能是电机内部参数估计不准引起的。观测扰动除以b0后,直接补偿到u输出。所以ADRC就是任性,它无需专门测量扰动,“他自狠来他自恶,我自一口真气足”。
另外,如果系统同时明确:目标速度和目标加速度,那么可以省去跟踪微分器,直接输入这两个量。
图7 ADRC速度控制
五、ADRC的特点
1、 几乎和模型无关
ADRC适用于从对对象模型一无所知到完全掌握对象模型的任何情况,如图7,大致设定电压和速度的关系b0即可。当然如果能准确捕捉到这个关系,ADRC工作强度将减轻,效果更佳。例如我们正在研究,当电机正在运行、发热严重时,电机内部的电阻、电感、反向电动势等参数都明显变化,在不注入额外测量信号下(尽量不影响电机运行),如何利用AI人工智能神经元技术,准确估算电机参数、重构电机模型b0,这样ADRC的性能将更经一步提升。
2、反应敏捷
传统PID控制都要等到误差发生后,才能去补偿控制,而ADRC将观察到的扰动第一时间补偿到输出端。而且PID中的微分项D,虽然说有预测功能,但是它仅仅是将本次的误差减去上一次的误差,得到很粗劣的微分结果,而ADRC使用跟踪微分器,准确跟踪目标值的微分(图7的跟踪加速度),以及用扩张状态观测器得出实际值的微分(图7的观测加速度),两个相减即为准确的误差微分。
图8是在京东热卖的某产品的电机速度图。它采用基于PID的FOC技术,电机要不停地加减速运动,黄线是目标速度,红线是实际速度。实际的加减速还是很快的、跟踪效果还可以,这个效果已经是行业领先了。曾几何时我们想,如果不换电机,这个效果已经无法再好了。
图8 基于PID的FOC
但某一天,如图9,我们将FOC里面的PID代码直接换成了ADRC,出现了惊人的一幕。目标速度和实际速度两条线几乎重合,几乎没有超调、没震动、没静态误差,而且加减速提高了30%以上、噪声降低2db、能效提高5%!
图9 基于ADRC的FOC
3、 易用性
ADRC在最初推出时虽然性能惊人,但是要调试的参数非常多,不容易使用。但是随着Scaling and Bandwidth-Parameterization等理论的提出,ADRC参数调整变得简单多了,例如周立功的ADRC库,只要分步调整扩张状态观测器的带宽、状态误差反馈控制律的带宽2个参数,系统即可大致调好。
4、 灵活性
ADRC是在PID的启发下发展出来的,一般的只要有PID的地方,都可以直接用ADRC替换。
六、ADRC的应用
目前ADRC已在多个领域使用,如高超音速飞行器、磁悬浮、超导粒子加速器、大型射电望远镜、坦克火控系统、核电站冷却系统等等,又如工业机器人、伺服电机驱动器、无人机飞控系统、扫地机器人,甚至网站搜索引擎等等。
图10 高超音速飞行器
还有周立功的无人机电调、工业电机驱动器、汽车水泵电调、汽车风机电调、无刷电机专用控制芯片、基于NXP i.MXRT的多电机FOC方案等等,都内置了自行研发的高效ADRC算法。
图11 内置ADRC算法的S32K FOC汽车电调
全部0条评论
快来发表一下你的评论吧 !