1. 项目背景与核心问题
在电力电子系统中,谐波污染一直是影响电能质量的关键问题。非线性负载(如整流器、变频器等)的广泛应用导致电网电流波形严重畸变,传统无源滤波器难以满足动态补偿需求。有源电力滤波器(APF)因其灵活性和高效性成为解决这一问题的首选方案,但其控制策略的设计直接决定了谐波抑制效果。
我最近在实验室完成了一个基于PI+重复控制的APF仿真项目,通过Simulink实现了总谐波畸变率(THD)小于1%的性能指标。这个方案最大的创新点在于将PI控制的快速响应特性与重复控制的精准周期跟踪能力相结合,解决了单一控制策略的局限性。下面我将详细拆解这个项目的技术实现细节。
2. 控制策略设计与原理分析
2.1 PI与重复控制的协同机制
互补性原理
在实际电力系统中,谐波抑制需要同时满足动态响应速度和稳态精度两个看似矛盾的需求:
-
PI控制的优势在于其快速响应能力。比例环节(P)提供即时误差修正,积分环节(I)逐步消除稳态误差。在APF中,PI控制器主要负责:
- 直流侧电压稳定(外环控制)
- 补偿电流幅值的快速跟踪(内环控制)
但PI控制对周期性谐波的抑制存在固有局限:积分环节仅对直流误差有效,对交流谐波信号的跟踪能力有限。
-
重复控制基于内模原理,通过在控制回路中嵌入周期信号模型(z⁻ᴺ延迟环节,N=fs/f1),能够实现:
- 对基波整数倍频率谐波的精准跟踪
- 周期性误差的逐周期累积修正
其核心优势体现在幅频特性上:在50Hz基波及其整数倍频率处,重复控制器增益理论上趋于无穷大,因此能实现对这些特定频率成分的完全抑制。
并联复合控制结构
我们采用的并联结构如下图所示:
code复制误差信号 → [PI控制器] → 输出叠加 → PWM驱动
↗
误差信号 → [重复控制器] ↗
数学表达式为:
u_total = Kp·e(t) + Ki∫e(t)dt + Σ[k=0→N] e(t-kT)
这种结构的优势在于:
- PI控制器快速响应负载突变(如电动机启动时的电流冲击)
- 重复控制器滞后一个基波周期(20ms@50Hz)后开始工作,逐步消除PI无法完全滤除的周期性谐波残余
- 两者输出叠加后通过空间矢量PWM(SVPWM)驱动三相逆变器
实操经验:在实际调试中发现,当Kr(重复控制增益)超过0.98时系统容易振荡。建议初始设置为0.95,再根据THD测试结果微调。
2.2 内模原理的工程实现
重复控制的核心是构建周期性内模。理论推导如下:
连续域内模:
G_IM(s) = 1/(1 - e^(-sT))
离散化后(采用Tustin变换):
G_IM(z) = 1/(1 - z⁻ᴺ) ,其中N=fs/f1
但在实际工程中,直接实现纯延迟环节会导致:
- 高频段增益过大引发噪声放大
- 相位滞后影响稳定性
因此需要加入:
- 低通滤波器Q(z):通常取常数0.95-0.98,用于限制高频增益
- 相位补偿器S(z):超前k拍(k=2~4)补偿数字控制延迟
最终实现的重复控制器结构:
code复制 Kr·z⁻ᴺ·S(z)
G_RC(z) = ------------
1 - Q(z)z⁻ᴺ
参数选择技巧:相位补偿的k值可通过Bode图确定 - 找到使开环系统相位裕度达到45°的超前拍数。我们实测在10kHz采样率下k=4最优。
3. 仿真模型构建与实现
3.1 主电路建模
LCL滤波器设计
相比传统L滤波器,LCL滤波器在高频段具有更好的衰减特性。关键参数计算:
-
逆变侧电感L1:
L1 = Vdc/(6·fsw·ΔI)
其中Vdc=700V, fsw=10kHz, ΔI=20%额定电流→ L1=2.5mH -
网侧电感L2:
取L2=0.5L1=1.25mH(降低对电网阻抗的敏感性) -
滤波电容Cf:
fr=1/(2π√(L1L2/(L1+L2)Cf))
设谐振频率fr=1.5kHz → Cf=15μF
避坑指南:LCL滤波器可能引发谐振,我们通过在电容支路串联电阻(Rd=5Ω)实现被动阻尼,也可采用电容电流反馈的有源阻尼。
直流侧电压控制
外环PI参数设计:
- 电压环带宽取1/10电流环(约100Hz)
- Kp = C·ωc = 0.01F×628rad/s ≈ 6.3
- Ki = Kp·ωc/5 ≈ 80
3.2 控制模块实现
PI+重复控制器Simulink实现
关键子系统包括:
-
坐标变换模块:
- abc→dq0变换(Park变换)
- 锁相环(PLL)获取电网相位θ
-
重复控制延迟链:
matlab复制% N=fs/f1=10000/50=200 persistent buffer; if isempty(buffer) buffer = zeros(1,N); end output = buffer(end); buffer = [input, buffer(1:end-1)]; -
相位补偿器:
采用FIR滤波器实现:matlab复制B = [0.2 0.5 0.3]; % 示例系数 S(z) = B(1) + B(2)z^1 + B(3)z^2
THD分析模块
使用Simulink的Powergui工具包:
matlab复制% 在回调函数中添加:
h = powergui;
set(h,'Waveform','THD');
thd = get(h,'THD');
3.3 参数整定流程
我们采用阶梯式调试法:
-
先调PI参数:
- 禁用重复控制(Kr=0)
- 逐步增大Kp直到系统开始振荡,然后回退30%
- 调整Ki使稳态误差在5个周期内消除
-
再调重复控制:
- 固定Q(z)=0.95
- 从Kr=0.5开始,每次增加0.1观察THD变化
- 当THD不再明显下降时停止(通常Kr=0.9~0.98)
-
最后优化相位补偿:
- 注入谐波扰动(如5次谐波)
- 调整k值使扰动抑制效果最佳
4. 仿真结果与分析
4.1 稳态性能对比
| 控制策略 | 空载THD | 整流负载THD |
|---|---|---|
| 纯PI控制 | 3.12% | 4.03% |
| PI+重复控制 | 0.89% | 1.02% |
| 理想情况目标 | <1% | <1.5% |
关键波形对比:
- 网侧电流:PI控制下仍有明显5次、7次谐波;复合控制后波形接近正弦
- 补偿电流:重复控制启动后(约1个周期延迟),谐波成分显著降低
4.2 动态响应测试
模拟负载突加(50%→100%):
- 仅PI控制:调节时间8ms,超调15%
- 复合控制:PI环节在10ms内初步稳定,重复控制随后20ms内消除残余误差
异常处理:当电网频率漂移±2Hz时,需动态调整N值。我们通过PLL实时检测f1,更新N=fs/f1。
5. 工程优化与扩展
5.1 常见问题解决方案
-
延迟导致的暂态响应差:
- 加入前馈控制:检测到负载突变时直接叠加预期补偿电流
- 采用分数延迟滤波器改善非整数N的情况
-
高频谐振问题:
matlab复制% 有源阻尼实现示例 idamp = Kdamp * ic; % ic为电容电流 u_ref = u_pi + u_rc - idamp; -
参数自适应:
matlab复制% BP神经网络在线调参 net = feedforwardnet(10); net = train(net, [THD; di/dt], [Kp; Ki]);
5.2 进阶改进方向
-
多采样率控制:
- 电流环高速采样(10kHz)
- 重复控制中速采样(5kHz)
- 电压环低速采样(1kHz)
-
谐波阻抗重塑:
通过在控制算法中嵌入虚拟阻抗项,主动塑造APF的输出阻抗特性,增强对电网阻抗变化的鲁棒性。 -
FPGA硬件加速:
将重复控制的延迟链模块用FPGA实现,利用其并行计算能力将处理延迟降低到1μs以内。
这个项目从理论设计到仿真实现共耗时约3个月,最大的收获是认识到控制算法的工程化需要兼顾理论严谨性和实践灵活性。比如重复控制中的Q(z)滤波器,理论上应设计为高阶低通,但实际采用常数0.95反而更易于调试且效果相当。建议初学者先从简化模型入手,逐步增加复杂度。