自抗扰控制(Active Disturbance Rejection Control, ADRC)是一种以其卓越的鲁棒性和对模型不确定性的低依赖性而闻名的先进控制策略。它不同于传统的PID控制器,通过主动地估计并抵消系统内外存在的“不确定性总和”,从而实现对复杂系统的精确控制。本文将围绕ADRC控制算法的核心问题,包括其“是什么”、“为什么”、“如何”、“哪里”以及“多少”,进行详细而深入的探讨。
ADRC控制算法的“是什么”:核心机制解析
ADRC的核心理念与构成
ADRC算法的核心在于将系统内部未建模动态、参数摄动以及外部扰动等所有不确定性,统一视为一个可估计的“总和扰动”或“扩张状态”,并通过一个特殊的观测器实时估计这一扩张状态,进而在控制律中进行主动补偿。这种“以扰治扰”的思路,使得ADRC在面对复杂多变的工作环境时,展现出强大的适应性。
核心组件:
-
跟踪微分器(TD – Tracking Differentiator):
TD的主要作用是生成被控对象期望的平滑过渡过程以及其对应的微分信号。它能够有效避免传统微分器对噪声的放大作用,同时解决控制系统中快速性与超调之间的矛盾。通过TD,给定信号能够以预设的速度和加速度跟踪,从而为控制器提供一个既平滑又具备良好动态特性的参考轨迹。常见的TD实现包括最速跟踪微分器,其通过非线性函数(如fal函数)来生成平滑的输入及其微分,例如,对于输入信号v,TD生成v1(跟踪信号)和v2(v1的微分)。
数学描述示例:对于一个二阶TD,其核心是一个非线性微分方程组:
fh = fal(v1 – v, alpha, delta)
v1_dot = v2
v2_dot = -R * fh
其中,R是跟踪速度因子,alpha和delta是fal函数的参数。 -
扩张状态观测器(ESO – Extended State Observer):
ESO是ADRC的精髓所在。它不仅能够实时估计系统的状态变量,更关键的是能够估计出那个“看不见、摸不着”的“总和扰动”。这个“总和扰动”被视为系统的一个额外状态,即“扩张状态”。ESO通过实时观测系统的输入和输出,利用观测器增益不断修正状态估计值,从而准确捕捉系统的动态特性和各种不确定性。
例如,对于一个名义二阶系统,如果其受到未知扰动d,ADRC会将其“扩张”为一个三阶系统,其中第三个状态就是那个“总和扰动”f。ESO的输出包括对原始系统状态(如位置、速度)的估计,以及对这个扩张状态(总和扰动)的估计。
数学描述示例:对于一个二阶系统,其ESO通常是一个三阶观测器:
e = z1 – y (输出估计误差)
z1_dot = z2 – beta1 * e + b0 * u
z2_dot = z3 – beta2 * e
z3_dot = -beta3 * e
其中,z1, z2是对系统状态的估计,z3是对总和扰动f的估计,u是控制量,y是系统输出,b0是控制器对系统作用的等效增益,beta1, beta2, beta3是观测器增益。 -
非线性状态误差反馈控制律(NLSEF – Nonlinear State Error Feedback):
NLSEF的作用是基于ESO估计出的系统状态和总和扰动,计算出最终的控制输出。它采用非线性组合的方式,将跟踪误差及其微分(由TD或ESO提供)转化为控制量。通过对扩张状态(总和扰动)的实时补偿,使得控制量能够主动消除不确定性对系统的影响,从而极大地提高了系统的控制精度和响应速度。
控制律通常表示为:u = u0 – z3 / b0,其中u0是由状态误差反馈生成的线性或非线性控制量,z3是ESO估计出的总和扰动,b0是前馈补偿系数,用于抵消总和扰动对系统的影响。非线性函数(如fal函数)的应用,使得控制器在误差较小时具有较高的灵敏度以确保精度,在误差较大时又能够提供较小的控制力,以避免过冲或震荡,从而提升了系统的鲁棒性和动态性能。
ADRC控制算法的“为什么”:为何选择自抗扰?
ADRC相对于传统控制方法的优势
在面对复杂工业系统、机器人控制、航空航天等领域时,传统的PID控制器往往难以满足高精度、强鲁棒性的控制需求,这主要是因为PID控制器通常需要一个相对精确的系统模型,且其抗扰能力是被动的。ADRC的出现,恰好弥补了这些不足。
突出优点:
-
对模型依赖性极低:
这是ADRC最显著的优势之一。与需要精确数学模型的H无穷控制或模型预测控制不同,ADRC仅需知道被控对象的相对阶次和大致的输入增益信息。所有的未知参数、非线性环节和外部扰动都被ESO统一视为“总和扰动”进行估计和补偿,这大大简化了系统建模的复杂性。
-
强大的抗扰能力与鲁棒性:
ADRC的核心在于其“主动抗扰”的特性。ESO能够实时、动态地估计总和扰动,并在控制律中即时进行抵消。这种机制使得ADRC在面对参数摄动(如电机负载变化)、未知外部扰动(如风力、摩擦)、传感器噪声甚至未建模动态时,都能保持优异的控制性能和稳态精度。系统能够“自适应”地处理各种不确定性,而无需人工干预或重新整定参数。
-
优异的动态响应与稳态精度:
通过TD的平滑过渡和NLSEF的非线性反馈,ADRC通常能够实现比PID更快的响应速度和更小的超调,同时在稳态时保持更高的精度。其对扰动的快速抑制能力,使得系统能够迅速恢复到期望状态。
-
简化调参过程(带宽法):
尽管ADRC内部结构看似复杂,但韩京清教授提出的“带宽法”极大地简化了其工程应用中的参数整定。通过将多个观测器增益和控制器增益与物理意义明确的“观测器带宽”(ω_o)和“控制器带宽”(ω_c)关联起来,使得工程师只需调整少数几个关键参数,就能实现性能优化,这比PID的Z-N法更具系统性和可重复性。
ADRC控制算法的“如何”:实施与调参策略
ADRC的实现步骤与工程调优
ADRC的成功应用,不仅依赖于对其理论的理解,更离不开合理的工程实现和参数整定。以下是其典型的实现与调参流程。
实施步骤:
-
确定系统阶次与b0:
首先,需要根据被控对象的物理特性,确定其近似的相对阶次(如二阶系统)。同时,估算或通过实验确定系统的控制增益b0,它代表控制量对系统最直接的影响。若无法精确获得,可先设定一个估测值,后续通过调整或在线辨识进行优化。
-
TD参数配置:
确定TD的跟踪速度因子R,它决定了TD跟踪给定信号的快慢。通常R越大,跟踪越快,但可能引入更多抖动。对于fal函数中的alpha(非线性度)和delta(线性区间),一般alpha取0.01~1(接近0时非线性强),delta取一个较小的正数(决定非线性作用的阈值)。
-
ESO参数整定(带宽法为主):
这是ADRC调参的关键。采用带宽法,将ESO的所有增益参数(beta1, beta2, beta3, …)集中到观测器带宽ω_o这一个参数上。一般通过公式beta_i = C_i * ω_o^(i)来确定,其中C_i是基于奥本海姆或伯德图等方法得到的系数。增大ω_o可以提高ESO的观测速度和精度,但同时也可能放大噪声,导致系统抖振。
-
NLSEF参数整定(控制器带宽法):
类似ESO,控制器增益(kp, kd, …)也可以通过控制器带宽ω_c来统一整定。如对于二阶系统,u0 = kp * e + kd * de,其中kp = ω_c^2,kd = 2 * ω_c。增大ω_c可以加快系统响应,但可能导致超调和稳定性下降。在实际应用中,常常有经验法则:ω_o = (3 \sim 5) * ω_c,确保观测器能足够快地估计扰动,以供控制器补偿。
-
离散化与实现:
在数字控制器中,ADRC算法需要进行离散化。常见的离散化方法包括欧拉法、四阶龙格-库塔法等。离散化后,算法在微控制器或DSP上进行实时计算和执行。采样周期应足够小,以保证观测器和控制器的性能。
-
仿真与实际系统调试:
在将ADRC应用于实际系统前,通常会进行仿真验证。在仿真阶段,可以方便地调整参数,观察系统响应。随后,在硬件在环(HIL)仿真或实际系统上进行细致的调试和优化,包括对fal函数参数(alpha, delta)的微调,以平衡鲁棒性与平滑性。
参数调优要点:
- 首先关注观测器带宽ω_o:
逐步增大ω_o,观察ESO的估计效果。理想情况下,ESO的扩张状态z3应该能够快速准确地跟踪实际的总和扰动。如果z3估计不准确或存在剧烈抖动,说明ω_o可能过大或过小,或系统存在其他未考虑的因素。
- 其次调整控制器带宽ω_c:
在确保ESO工作正常的前提下,调整ω_c以达到期望的响应速度和控制精度。通常先设定一个较低的ω_c,然后逐渐增加,直到满足性能要求且系统保持稳定。当ω_c增大到一定程度时,应检查系统是否出现超调、振荡等不稳定现象。
- fal函数参数的微调:
alpha值越小(如0.5以下),fal函数非线性特性越强,在小误差时作用越明显,有助于提高精度;值越大(接近1),越接近线性,可能导致抖动。delta值决定了fal函数从线性到非线性的转换点,越小转换越早,平滑区间越窄。
ADRC控制算法的“哪里”:典型应用场景
ADRC的广泛应用领域
由于ADRC算法对模型不确定性的强大处理能力,它在各种需要高精度、高鲁棒性控制的领域得到了广泛应用,并取得了显著成效。
主要应用领域:
-
工业过程控制:
在化工、冶金、电力等流程工业中,温度、压力、流量、液位等物理量的控制常常面临着复杂的非线性、大滞后和外部扰动。ADRC能够有效地处理这些挑战,例如在加热炉的温度控制、精馏塔的组分控制、pH中和过程的酸碱度控制中,ADRC表现出超越传统PID的控制效果,尤其是在工作点频繁变化或存在未知反应过程时。
-
电机与电力电子:
ADRC在高性能电机伺服系统(如永磁同步电机PMSM、直流电机、感应电机)的速度、位置和电流控制中应用广泛。它能够有效抑制电机参数变化(如电阻、电感变化)、负载突变、摩擦力矩等扰动,实现高精度、快速响应的驱动控制。在逆变器、变流器等电力电子设备中,ADRC也被用于稳定输出电压、电流,应对电网波动和非线性负载。
-
机器人与自动化:
工业机器人关节的轨迹跟踪和力控制、并联机器人、移动机器人等,都受益于ADRC对非线性、耦合和外部干扰的处理能力。它能够补偿关节摩擦、重力变化和负载扰动,提高机器人的运动精度和轨迹跟踪性能。在无人机飞行控制中,ADRC能够有效抑制风扰、载荷变化等对姿态和位置的影响,确保飞行稳定性和路径跟踪精度。
-
航空航天:
飞行器姿态控制、发动机推力矢量控制、卫星姿态控制等,这些系统通常具有高度的非线性、强耦合和外部复杂环境扰动。ADRC能够提供强大的鲁棒性,应对气动力的不确定性、燃料消耗引起的质量变化等,确保飞行器的稳定性和控制精度。
-
车辆控制:
在电动汽车的扭矩控制、车身姿态控制(如横摆角速度控制)、线控转向和线控制动系统中,ADRC可以有效补偿轮胎特性变化、路面条件变化、驱动/制动系统非线性等因素,提升车辆的操控性和安全性。
总而言之,ADRC特别适用于那些模型难以精确建立、工作环境复杂多变、对控制精度和鲁棒性要求极高的应用场景。
ADRC控制算法的“多少”:性能与代价评估
ADRC的效能与资源消耗
选择任何一种控制算法,都需要权衡其带来的性能提升与所需的计算资源和调参复杂度。ADRC在提供卓越性能的同时,也带来了一定的计算量和学习曲线。
性能提升:
-
控制精度:
由于对总和扰动的实时估计和补偿,ADRC能够将稳态误差降低到非常小的水平,甚至接近零,显著提升控制精度。
-
动态响应:
通过TD的平滑过渡和对扰动的快速抑制,系统能够以更快的速度响应给定信号或恢复到稳定状态,同时保持更小的超调。
-
系统鲁棒性:
这是ADRC的核心竞争力。无论是内部参数摄动、未建模动态还是外部未知扰动,ADRC都能表现出强大的抵抗能力,使得控制器在各种工况下都能稳定运行,且性能下降不明显。
-
适应性:
能够适应更广泛的工作范围,甚至在系统特性发生较大变化时,也无需频繁重新整定。
计算复杂度与资源消耗:
-
计算量:
与传统的PID控制器相比,ADRC的计算量有所增加。一个标准的二阶ADRC(控制一个二阶系统)通常需要一个二阶TD和一个三阶ESO。这意味着在每个采样周期内,需要进行额外的微分方程求解(数值积分)和矩阵运算(观测器增益计算)。然而,在现代高性能微控制器(MCU)或数字信号处理器(DSP)上,这些计算通常是可承受的,对于几kHz甚至几十kHz的采样频率,一般都能满足实时性要求。例如,对于一个ARM Cortex-M系列微控制器,完成二阶ADRC的计算通常在几十微秒到几百微秒之间。
-
内存占用:
ADRC需要存储TD和ESO的状态变量以及增益参数,相对于PID控制器,其内存占用略有增加,但这对于现代控制器来说通常不是问题。
参数数量与调参难度:
-
参数数量:
尽管ADRC内部包含多个增益和非线性函数参数,但通过带宽法,其核心可调参数可以有效简化为少数几个,主要是观测器带宽ω_o、控制器带宽ω_c,以及fal函数的alpha和delta。这比某些多变量控制或自适应控制算法的参数数量要少,且物理意义更明确。
-
调参难度:
相对PID,ADRC的调参可能需要对ESO的工作原理有更深入的理解,但带宽法的出现大大降低了工程实践中的门槛。掌握了带宽法的基本原则和调参顺序,工程师可以相对快速地找到一组满足性能要求的参数。
总结
ADRC控制算法是一种功能强大、鲁棒性高且对模型依赖性低的先进控制技术。它通过独特的“扩张状态观测器”主动估计并补偿系统内外所有不确定性,从而在各种复杂工况下实现优异的控制性能。尽管其计算量略高于传统PID,但其在控制精度、动态响应和鲁棒性方面的显著提升,以及带宽法带来的调参便利性,使得ADRC在工业过程、电机驱动、机器人、航空航天等多个领域都成为解决复杂控制问题的有力工具。随着计算能力的不断提升和理论研究的深入,ADRC的应用前景将更加广阔。