1. 项目背景与核心问题
在电力电子系统中,谐波污染一直是影响电能质量的关键问题。非线性负载(如整流器、变频器等)的广泛应用导致电网电流波形严重畸变,传统的无源滤波器难以满足动态谐波补偿需求。有源电力滤波器(APF)因其灵活性和高效性成为解决这一问题的首选方案,但其控制策略的设计直接决定了谐波抑制效果。
我在实际工程中发现,单一控制策略往往难以兼顾动态响应和稳态精度。例如传统PI控制器虽然响应速度快,但对周期性谐波的跟踪能力有限;而重复控制虽能实现周期性误差的渐进消除,却存在固有延迟问题。这促使我深入研究PI+重复控制的复合策略,通过Simulink仿真验证其在谐波抑制中的协同优势。
2. 控制策略原理与架构设计
2.1 重复控制的内模原理
重复控制的核心思想源自内模原理——要在闭环系统中实现对外部信号的精确跟踪,控制器必须包含该信号的动力学模型。对于周期性谐波,其内模可表示为延迟环节z⁻ᴺ的无限循环(N=fs/f1,即一个基波周期对应的采样点数)。数学推导如下:
-
连续域内模表达式:
$$G_{IM}(s) = \frac{1}{1-e^{-Ts}}$$
其中T为基波周期(20ms@50Hz) -
离散化后得到z域传递函数:
$$G_{IM}(z) = \frac{1}{1-z^{-N}}$$ -
实际实现时需加入低通滤波器Q(z)和补偿环节S(z):
$$G_{RC}(z) = \frac{K_r z^k S(z)}{1-Q(z)z^{-N}}$$
关键改进:在项目中采用二阶巴特沃斯低通作为Q(z)(截止频率1kHz),相位补偿S(z)设计为z⁴,补偿数字控制带来的4拍延迟。
2.2 PI控制器的动态补偿作用
PI控制器通过比例-积分作用提供快速误差校正:
$$G_{PI}(z) = K_p + K_i \frac{T_s}{1-z^{-1}}$$
参数整定遵循以下原则:
- Kp根据开环带宽需求确定(典型值30)
- Ki需保证积分时间常数大于谐波周期(取0.5)
实测案例:当负载电流突变时,单独PI控制可在5ms内响应,但稳态存在约3%的THD;而单独重复控制需20ms才能收敛。
2.3 复合控制结构设计
采用并联结构实现优势互补:
- 误差信号同时输入PI和重复控制器
- 输出叠加公式:
$$u_{total} = u_{PI} + u_{RC}$$ - 系统框图如下:

参数协同要点:
- PI负责高频段动态补偿
- 重复控制专注基波整数倍频点(50Hz, 100Hz...)
- 通过频带分配避免相互干扰
3. 仿真模型实现细节
3.1 主电路建模
在Simulink中搭建三相三线制APF模型:
- 电网侧:设置电压源为380V/50Hz,含5%背景谐波
- 非线性负载:采用三相不控整流桥+RL负载(R=10Ω, L=5mH)
- LCL滤波器参数:
- 逆变侧电感L1=2mH
- 网侧电感L2=1mH
- 滤波电容C=20μF(含5%ESR)
避坑提示:LCL谐振频率应满足:
$$f_{res} = \frac{1}{2π}\sqrt{\frac{L1+L2}{L1L2C}}$$
需远离主要谐波频段(通常设计在2kHz附近)
3.2 控制模块实现
3.2.1 谐波检测环节
采用基于瞬时无功理论的ip-iq法:
- 通过Park变换将abc坐标转换到dq旋转坐标系
- 使用50Hz陷波器提取谐波分量
- 反变换得到各相补偿电流指令
matlab复制% 示例代码片段
function [i_c_ref] = HarmonicDetection(ia, ib, ic, theta)
% Clarke变换
i_alpha = sqrt(2/3)*(ia - 0.5*ib - 0.5*ic);
i_beta = sqrt(2/3)*(sqrt(3)/2*ib - sqrt(3)/2*ic);
% Park变换
i_d = i_alpha.*cos(theta) + i_beta.*sin(theta);
i_q = -i_alpha.*sin(theta) + i_beta.*cos(theta);
% 50Hz陷波
[B,A] = butter(2, [48 52]/(fs/2), 'stop');
i_d_h = filtfilt(B, A, i_d);
i_q_h = filtfilt(B, A, i_q);
% 反变换
i_alpha_h = i_d_h.*cos(theta) - i_q_h.*sin(theta);
i_beta_h = i_d_h.*sin(theta) + i_q_h.*cos(theta);
i_c_ref = [sqrt(2/3)*i_alpha_h;
-sqrt(1/6)*i_alpha_h + sqrt(1/2)*i_beta_h;
-sqrt(1/6)*i_alpha_h - sqrt(1/2)*i_beta_h];
end
3.2.2 重复控制模块
关键实现步骤:
- 建立周期延迟环节:使用N=200的Memory模块(fs=10kHz时)
- 相位补偿:通过超前环节z⁴补偿计算延迟
- 稳定性增强:添加0.95增益的低通滤波器

3.3 参数整定流程
-
PI参数初选:
- 根据逆变器等效模型Gp(s)=1/(Ls+R),取Kp=L/2Td(Td为期望响应时间)
- 本例中L=2mH,目标Td=1ms → Kp=30
- Ki=Kp/Ti,取Ti=5ms → Ki=0.5
-
重复控制调参:
- Kr从0.5开始逐步增加至0.95(接近1时需观察稳定性)
- Q(z)截止频率设为开关频率的1/5(本例2kHz)
- 相位补偿k通过Bode图确定,使开环相位裕度>45°
-
联合调试:
- 先单独调PI至动态响应达标
- 再启用重复控制微调Kr和Q(z)
4. 仿真结果与分析
4.1 稳态性能对比
| 控制策略 | 空载THD | 整流负载THD |
|---|---|---|
| 无补偿 | 8.72% | 23.15% |
| 单独PI控制 | 3.12% | 4.03% |
| PI+重复控制 | 0.89% | 1.02% |
关键波形对比:

4.2 动态响应测试
模拟负载突加场景(t=0.1s时投入整流负载):
- PI控制部分在5ms内快速响应
- 重复控制约需1个周期(20ms)完全收敛
- 超调量<5%,无振荡现象
4.3 鲁棒性验证
- 电网频率波动:±2Hz变化时THD仍<1.5%
- 参数失配:L值偏差±20%时系统保持稳定
- 非整数次谐波:对55Hz间谐波的抑制率约60%
5. 工程实践中的挑战与解决方案
5.1 延迟问题优化
现象:重复控制的固有延迟导致负载突变时补偿滞后
解决方案:
- 并联前馈通道:检测到负载变化时直接注入预估补偿量
- 变周期调整:实时检测电网频率并动态更新N值
matlab复制% 动态调整N值示例 function N = update_N(f_grid, f_s) N = round(f_s / f_grid); if mod(N,2) == 1 N = N + 1; % 确保N为偶数 end end
5.2 谐振抑制技巧
LCL滤波器易在特定频率引发谐振,通过以下措施抑制:
- 有源阻尼法:引入电容电流反馈
$$H_{ad}(s) = \frac{k_d s}{s^2 + ω_r^2}$$ - 参数优化:使谐振频率远离主要谐波频段
5.3 数字实现要点
- 定点化处理:为适应DSP实现,需对算法做Q格式量化
- 电流信号采用Q12格式(精度0.000244)
- 控制器系数用Q15表示
- 时序控制:
- ADC采样与PWM更新严格同步
- 重复控制的历史数据存储在循环缓冲区
6. 模型使用指南
6.1 版本适配说明
提供的Simulink模型包含两个版本:
- 2015b版本:使用传统模块实现,兼容性最好
- 2017a版本:采用面向对象编程,支持参数批量修改
注意:高版本模型在低版本MATLAB中打开时,需运行以下命令转换:
matlab复制save_system('APF_2017.slx', 'APF_2015.slx', 'ExportToVersion', 'R2015b')
6.2 关键模块参数修改
- 电网参数:
- 电压幅值:Powergui → Electrical Parameters
- 频率:Sources模块中的Frequency参数
- 控制器参数:
- PI增益:PID Controller模块中的Proportional/Integral
- 重复控制:RC_Module子系统中Kr、Q、k等参数
6.3 典型测试场景
- 稳态测试:
- 运行sim('APF_Model.slx')
- 观察Scope中的THD分析结果
- 动态测试:
- 在t=0.3s时触发Load_Step模块
- 记录电流恢复时间和超调量
7. 扩展应用与未来方向
在实际项目中,该控制策略还可应用于:
- 光伏逆变器:抑制并网电流谐波
- UPS系统:提高输出电压质量
- 电机驱动:减小转矩脉动
未来可探索的改进方向包括:
- 智能参数整定:采用强化学习在线优化Kp、Ki、Kr
- 多速率控制:电流环高速运行(10kHz)+重复控制低速运行(1kHz)
- 硬件加速:基于FPGA实现并行计算,缩短控制延迟
通过这个项目,我深刻体会到复合控制策略在电力电子系统中的价值。PI+重复控制不仅解决了谐波抑制的难题,其设计思路也可推广到其他周期性信号处理领域。对于想深入研究的同行,建议从理解内模原理入手,再逐步扩展到参数整定和稳定性分析。