1. 项目背景与核心价值
在工业电力系统中,非线性负载(如变频器、整流设备等)的广泛应用导致电网谐波污染日益严重。传统无源滤波器存在体积大、调谐困难、易与电网阻抗发生谐振等问题。我们团队开发的这套"基于PI+重复控制的有源滤波器谐波抑制策略",通过Simulink仿真验证,实现了对2~25次谐波的有效治理,总谐波畸变率(THD)从12.7%降至3.2%以下。
这种复合控制策略的创新点在于:将PI控制的快速动态响应与重复控制的高精度稳态跟踪相结合。PI控制器负责快速补偿突变的谐波分量,而重复控制器的内模原理则能精准消除周期性谐波。二者的并联结构既避免了纯重复控制存在的延迟问题,又克服了单一PI控制对周期性信号跟踪精度不足的缺陷。
2. 系统架构设计解析
2.1 主电路拓扑选择
采用三相三线制电压型PWM变流器作为有源滤波器的主拓扑结构,直流侧电容电压设定为800V。该拓扑具有以下优势:
- 开关损耗比三电平拓扑低约30%
- 器件数量仅为三电平结构的50%
- 控制算法复杂度适中,适合工程实现
关键参数计算公式:
直流侧电容值 $C_{dc} = \frac{3\sqrt{3}I_{peak}d}{2\omega V_{dc}\Delta V_{dc}}$
其中d为调制比,$\Delta V_{dc}$允许波动范围通常取5%~10%
2.2 控制系统的双环结构
-
外环(直流电压控制):
- 采用PI调节器维持直流侧电压稳定
- 采样周期设置为50μs
- 参数整定公式:$K_p = \frac{2ζω_nC}{3}$,$K_i = \frac{ω_n^2C}{3}$
-
内环(电流跟踪控制):
- 复合控制器由PI+重复控制并联构成
- 重复控制器的延迟环节长度N=Ts/T=600(对应50Hz基波)
- 补偿器设计采用零相位误差跟踪准则
关键技巧:在实际调试中发现,将重复控制器的增益设为0.85时,能在动态响应和稳态精度间取得最佳平衡。
3. 核心算法实现细节
3.1 谐波检测方法改进
采用基于瞬时无功功率理论的ip-iq法,但针对工程实际做了三点优化:
- 增加滑动平均滤波器(窗口宽度5ms)消除锁相环抖动
- 采用双二阶广义积分器(DSOGI)提升在电压畸变条件下的检测精度
- 引入幅值限幅环节防止暂态过冲
matlab复制% 改进的谐波检测MATLAB实现片段
function [i_h] = harmonic_detection(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);
% 滑动平均滤波
persistent buffer;
if isempty(buffer)
buffer = zeros(100,2);
end
buffer = [buffer(2:end,:); [i_alpha, i_beta]];
i_alpha_filt = mean(buffer(:,1));
i_beta_filt = mean(buffer(:,2));
% ip-iq计算
i_p = i_alpha_filt.*cos(theta) + i_beta_filt.*sin(theta);
i_q = -i_alpha_filt.*sin(theta) + i_beta_filt.*cos(theta);
% 通过低通滤波器提取直流分量
[i_p_dc, ~] = lpf(i_p, 20, 1e-4);
[i_q_dc, ~] = lpf(i_q, 20, 1e-4);
% 反变换得到谐波
i_alpha_h = i_p_dc.*cos(theta) - i_q_dc.*sin(theta);
i_beta_h = i_p_dc.*sin(theta) + i_q_dc.*cos(theta);
% 反Clarke变换
i_h = [sqrt(2/3)*i_alpha_h;
-1/sqrt(6)*i_alpha_h + 1/sqrt(2)*i_beta_h;
-1/sqrt(6)*i_alpha_h - 1/sqrt(2)*i_beta_h];
end
3.2 重复控制器设计要点
重复控制器的传递函数为:
$G_{rc}(z) = \frac{k_r z^{-N}}{1-Q(z)z^{-N}}S(z)$
关键设计参数:
- 周期延迟N=600(12kHz采样率)
- 补偿器S(z)采用相位超前结构:$S(z) = 1.85 - 0.85z^{-1}$
- 低通滤波器Q(z)截止频率设为1500Hz
4. Simulink仿真实现技巧
4.1 模型搭建注意事项
-
开关器件建模:
- 使用Simscape Electrical的IGBT模块
- 开启导通电阻(Ron=0.01Ω)和关断电阻(Roff=1e5Ω)
- 设置死区时间2μs
-
解耦控制实现:
matlab复制% 在MATLAB Function模块中的解耦计算
function [v_alpha_ref, v_beta_ref] = current_control(i_alpha_ref, i_alpha, i_beta_ref, i_beta)
persistent Kp Ki integral_alpha integral_beta;
if isempty(Kp)
Kp = 15; Ki = 2000;
integral_alpha = 0; integral_beta = 0;
end
% PI控制
error_alpha = i_alpha_ref - i_alpha;
error_beta = i_beta_ref - i_beta;
integral_alpha = integral_alpha + error_alpha*1e-4;
integral_beta = integral_beta + error_beta*1e-4;
% 解耦项
omega = 2*pi*50;
v_alpha_ref = Kp*error_alpha + Ki*integral_alpha - omega*0.05*i_beta;
v_beta_ref = Kp*error_beta + Ki*integral_beta + omega*0.05*i_alpha;
end
4.2 仿真参数配置建议
| 参数项 | 推荐值 | 说明 |
|---|---|---|
| Solver | ode23tb | 适合电力电子系统 |
| Max step | 1e-6 | 确保PWM精度 |
| Relative tolerance | 1e-4 | 平衡速度与精度 |
| PWM carrier freq | 10kHz | IGBT典型值 |
| Snubber resistance | 1e3 | 防止数值振荡 |
5. 实测问题与解决方案
5.1 高频振荡抑制
现象:在5kHz附近出现持续振荡
解决方法:
- 在重复控制器前增加陷波滤波器:
matlab复制function output = notch_filter(input) persistent x y b a; if isempty(b) fs = 12000; f0 = 5000; Q = 5; w0 = 2*pi*f0/fs; alpha = sin(w0)/(2*Q); b = [1, -2*cos(w0), 1]; a = [1+alpha, -2*cos(w0), 1-alpha]; x = zeros(3,1); y = zeros(3,1); end x = [input; x(1:2)]; y(1) = (b*x - a(2)*y(2) - a(3)*y(3))/a(1); output = y(1); y = [y(1:2); y(1)]; end - 调整PWM载波比为奇数倍(如改为9kHz)
5.2 动态响应优化
通过引入前馈补偿改善负载突变时的响应:
- 检测负载电流微分$\frac{di_L}{dt}$
- 前馈增益设为$K_{ff} = L_f \times 0.8$(Lf为输出电感)
- 限幅在±20%额定电流范围内
6. 性能评估与对比
在整流器负载(THD=28.5%)条件下测试:
| 控制策略 | THD(%) | 响应时间(ms) | 计算负荷(%) |
|---|---|---|---|
| 纯PI控制 | 4.8 | 8.2 | 12 |
| 纯重复控制 | 3.1 | 35 | 28 |
| PI+重复控制 | 2.9 | 9.5 | 18 |
实测波形对比显示:
- 5次谐波衰减率从纯PI的-25dB提升至-42dB
- 7次谐波抑制效果提升约60%
- 在负载阶跃变化时,电压恢复时间缩短40%
