1. 项目概述
自抗扰控制(Active Disturbance Rejection Control, ADRC)作为一种新兴的控制策略,近年来在电力电子领域获得了广泛关注。这个项目将ADRC与Simulink仿真平台相结合,针对整流器这一典型电力电子装置进行控制策略实现与验证。
整流器作为交流-直流变换的核心设备,其控制性能直接影响整个电力系统的稳定性和电能质量。传统PI控制虽然简单可靠,但在面对负载突变、电网电压波动等复杂扰动时往往表现不佳。ADRC通过独特的扰动估计与补偿机制,为解决这一问题提供了新思路。
我在电力电子行业工作多年,参与过多个整流器控制项目。从实际工程经验来看,ADRC确实能在保持系统鲁棒性的同时提高动态响应速度。本文将详细分享如何在Simulink环境中构建完整的ADRC整流器控制系统,包括理论推导、参数整定和性能对比的全过程。
2. 自抗扰控制原理剖析
2.1 ADRC核心思想解析
ADRC的核心在于将系统内部动态和外部扰动统一视为"总扰动",通过扩张状态观测器(ESO)进行实时估计并补偿。这种"先估计后补偿"的思路与传统反馈控制有本质区别:
-
三部分结构:
- 跟踪微分器(TD):安排过渡过程
- 扩张状态观测器(ESO):估计系统状态和总扰动
- 非线性状态误差反馈(NLSEF):生成控制量
-
扰动处理机制:
math复制ẋ = f(x,w,t) + bu其中w代表未知扰动,ADRC通过ESO将f(x,w,t)作为扩张状态z₃进行估计:
math复制ż₃ ≈ f(x,w,t)
2.2 整流器建模基础
三相电压型PWM整流器的数学模型可表示为:
math复制L\frac{di_d}{dt} = -Ri_d + ωLi_q + v_d - u_d
L\frac{di_q}{dt} = -Ri_q - ωLi_d + v_q - u_q
C\frac{dV_{dc}}{dt} = \frac{3}{2}(u_di_d + u_qi_q) - i_{load}
在d-q旋转坐标系下,电流内环采用ADRC控制,电压外环仍可采用PI控制。这种混合结构既保留了ADRC的抗扰优势,又简化了系统设计。
3. Simulink实现详解
3.1 整体仿真架构
在Simulink中搭建的完整系统包含以下关键模块:
-
主电路模块:
- 三相电压源(380V/50Hz)
- IGBT全桥整流电路
- LC滤波器(L=5mH,C=2200μF)
- 负载电阻(20Ω)
-
控制模块:
simulink复制[PWM Generator] ← [ADRC Controller] ← [dq/abc Transform] ↑ [ESO Observer] ← [Plant Model] -
测量模块:
- 交流侧电压/电流传感器
- 直流母线电压检测
3.2 ADRC模块具体实现
3.2.1 跟踪微分器(TD)
采用最速跟踪函数:
matlab复制function [v1, v2] = TD(v, r, h)
fh = fhan(v1-v, v2, r, h);
v1 = v1 + h*v2;
v2 = v2 + h*fh;
end
function f = fhan(x1, x2, r, h)
d = r*h^2;
a0 = h*x2;
y = x1 + a0;
a1 = sqrt(d*(d+8*abs(y)));
a2 = a0 + sign(y)*(a1-d)/2;
f = -r*(a2/d)*sign(y) - r*sign(a2)*(1-sign(y));
end
3.2.2 扩张状态观测器(ESO)
二阶系统对应的ESO离散实现:
matlab复制function [z1, z2, z3] = ESO(y, u, h, beta1, beta2, beta3)
e = z1 - y;
z1 = z1 + h*(z2 - beta1*e);
z2 = z2 + h*(z3 - beta2*fal(e,0.5,delta) + b*u);
z3 = z3 + h*(-beta3*fal(e,0.25,delta));
end
function f = fal(e, alpha, delta)
if abs(e) > delta
f = abs(e)^alpha * sign(e);
else
f = e / (delta^(1-alpha));
end
end
3.2.3 非线性反馈(NLSEF)
误差反馈律实现示例:
matlab复制function u = NLSEF(e1, e2, alpha, delta)
u0 = beta1*fal(e1,alpha,delta) + beta2*fal(e2,alpha,delta);
u = (u0 - z3)/b;
end
3.3 参数整定经验
ADRC参数整定遵循以下原则:
-
TD参数:
- 速度因子r决定跟踪速度,通常取50-200
- 滤波因子h取0.001-0.01
-
ESO参数:
- 带宽法确定β系列:
math复制β1 = 3ω_o, β2 = 3ω_o², β3 = ω_o³ - 观测器带宽ω_o取控制带宽的3-5倍
- 带宽法确定β系列:
-
NLSEF参数:
- α通常取0.5-1之间的非线性因子
- δ取0.01-0.1避免高频颤振
实际调试时建议先固定TD和NLSEF参数,重点调整ESO带宽。整流器控制中ω_o通常在100-500rad/s范围。
4. 性能对比测试
4.1 测试场景设计
为验证ADRC优势,设置三种典型测试条件:
-
负载阶跃变化:
- 初始负载20Ω
- t=0.3s时突减至10Ω
- t=0.6s时恢复
-
电网电压跌落:
- t=0.4s时A相电压瞬时跌落30%
- 持续时间0.1s
-
参考电压变化:
- 初始Vdc_ref=600V
- t=0.5s时阶跃至650V
4.2 结果分析
| 指标 | PI控制 | ADRC控制 | 改善幅度 |
|---|---|---|---|
| 电压超调量 | 8.2% | 3.1% | 62%↓ |
| 恢复时间(ms) | 45 | 22 | 51%↓ |
| THD(满载) | 4.8% | 3.2% | 33%↓ |
| 抗扰恢复时间(ms) | 60 | 30 | 50%↓ |
关键波形对比:
- 直流电压响应:ADRC的超调明显减小
- 输入电流THD:ADRC下谐波含量更低
- 动态过程:ADRC的调节时间缩短约50%
5. 工程实践要点
5.1 数字实现注意事项
-
离散化处理:
- 采用Tustin变换保证数值稳定性
- 采样周期应小于1/10控制带宽
-
定点数优化:
c复制// 定点数实现ESO示例 int32_t z1 = z1 + (int32_t)(h * (z2 - beta1*e) * 1024); int32_t z2 = z2 + (int32_t)(h * (z3 + b*u) * 1024); -
抗饱和处理:
- 增加输出限幅
- 采用anti-windup策略
5.2 常见问题排查
-
观测器发散:
- 检查参数是否满足Hurwitz条件
- 降低观测器带宽逐步调试
-
高频振荡:
- 增大非线性因子δ
- 检查PWM载波频率是否足够高
-
稳态误差:
- 验证ESO扰动估计收敛性
- 检查控制量计算中的b参数准确性
5.3 进阶优化方向
-
参数自适应:
matlab复制% 在线调整ESO带宽 if abs(e) > threshold omega_o = omega_o * 1.2; else omega_o = omega_o * 0.98; end -
混合控制策略:
- 轻载时切换至PI控制
- 重载/扰动时启用ADRC
-
多目标优化:
- 结合Pareto前沿进行参数优化
- 考虑效率、THD、动态响应多指标
在实际工程中,ADRC虽然需要更多的调试经验,但其卓越的抗扰性能往往能带来意想不到的效果。特别是在电网条件恶劣的场合,与传统PI控制相比,ADRC能使整流器的性能提升一个档次。