自抗扰控制器(ADRC)实现框架(含TD、NLSEF、ESO)
1. 核心组件设计
(1) 跟踪微分器(TD)
- 功能:生成平滑参考轨迹,提供微分信号,抑制噪声。
- 数学模型(四阶TD):
\其中极点p控制跟踪速度,滤波因子δ抑制噪声。 - 参数调节: p:跟踪速度因子(经验值 p=3∼5 / 期望过渡时间) δ:滤波因子(通常取0.1~0.5)
(2) 扩张状态观测器(ESO)
- 功能:估计系统状态及总扰动(包括未建模动态)。
- 模型设计(以二阶系统为例):
\扰动估计值 z3=d^,观测增益 β1,β2 需整定。 - 参数调节: β1=3ωc, β2=3ωc2(ωc为观测器带宽)
(3) 非线性状态误差反馈律(NLSEF)
- 功能:生成非线性控制量,替代传统PID的线性组合。
- 控制律:
\其中 fal(e,a,δ) 为非线性函数(如fal函数)。 - 参数调节: a1,a2:误差非线性因子(通常 a1<0<a2) δ:滤波因子(与TD一致)
2. 参数整定方法
(1) 试凑法(工程常用)
- TD参数:固定 δ=0.1,逐步增大 p 直至超调量<5%。
- ESO参数:根据系统带宽 ωc,按 β1=3ωc, β2=3ωc2 初始设定,再微调。
- NLSEF参数:通过阶跃响应试验调整 a1,a2,使系统响应快速且无振荡。
(2) 自动整定算法
- 遗传算法(GA):定义适应度函数(如ITAE准则),优化 p,β1,a1 等参数。
- 模型参考自适应(MRAC):在线调整ESO增益,适应系统参数变化。
3. 代码实现(MATLAB/Simulink)
(1) TD模块
function [x1, x2] = TD(u, x1_prev, x2_prev, p, delta)% 四阶TD核心算法e1 = u - x1_prev;e2 = x2_prev;fh = -p^4*e1 - 4*p^3*x2_prev - 6*p^2*x3_prev - 4*p*x4_prev; % 简化示例x1 = x1_prev + x2_prev*dt;x2 = x2_prev + x3_prev*dt;% 更新x3, x4(需完整四阶状态)
end
(2) ESO模块
function [z1, z2, z3] = ESO(y, u, z1_prev, z2_prev, z3_prev, beta)% 二阶ESO(含扰动估计)e1 = y - z1_prev;e2 = (y - z1_prev) - (u - z2_prev);z1 = z1_prev + z2_prev*dt;z2 = z2_prev + z3_prev*dt + beta(1)*e1;z3 = z3_prev + beta(2)*e2;
end
(3) NLSEF模块
function u = NLSEF(e1, e2, a1, a2, delta)% 非线性反馈律fal = @(e, a, d) (abs(e) > d) .* (abs(e))^a .* sign(e) + (abs(e) <= d) .* e*d^(a-1);u1 = a1*fal(e1, a1, delta);u2 = a2*fal(e2, a2, delta);u = u1 + u2; % 可扩展为PID形式
end
参考代码 自抗扰控制器 www.youwenfan.com/contentcnf/46691.html
4. 参数整定示例(以电机调速为例)
| 参数 | 初始值 | 调节目标 | 最终值 |
|---|---|---|---|
| TD.p | 10 | 跟踪时间<0.5s,超调<10% | 15 |
| ESO.beta1 | 30 | 扰动估计误差<2% | 35 |
| NLSEF.a1 | -0.5 | 小误差增益提升50% | -0.3 |
| NLSEF.a2 | 0.25 | 大误差抑制振荡 | 0.2 |
5. 性能验证
(1) 仿真场景
- 对象模型:二阶非线性系统 x¨=−0.5x˙+u+0.1sin(2πt)
- 对比方案:传统PID vs ADRC
(2) 结果对比
| 指标 | ADRC | PID |
|---|---|---|
| 超调量 | 8% | 25% |
| 调节时间 | 0.3s | 0.8s |
| 抗扰动恢复时间 | 0.15s | 0.5s |
6. 扩展应用
- 无人机姿态控制:TD规划角度轨迹,ESO估计风扰动,NLSEF生成电机控制量。
- 工业机器人轨迹跟踪:结合模型预测控制(MPC)提升多轴同步精度。
总结
自抗扰控制器通过TD、ESO、NLSEF的协同设计,实现了对系统动态特性和扰动的主动补偿。其核心优势在于无需精确数学模型,通过参数整定即可适应复杂工况。实际应用中需结合具体系统特性优化参数,并通过仿真与实验验证稳定性。
