1. 混合型MMC多电平整流侧仿真概述
最近在电力电子实验室完成了一个混合型模块化多电平换流器(MMC)的整流侧仿真项目,这个拓扑结构结合了全桥和半桥子模块的混合配置,在高压直流输电领域具有重要应用价值。整个仿真系统包含了电压电流双闭环控制、环流抑制算法、子模块电容电压均衡控制等核心功能模块,采用载波移相调制(CPS-PWM)作为调制策略。
这个项目最大的挑战在于多个控制环之间的耦合效应——电压外环的动态响应必须与电流内环精确匹配,环流抑制器需要准确提取二倍频分量,而电容电压均衡算法则要实时处理数十个子模块的状态信息。当所有这些控制策略同时工作时,系统就像一台精密的瑞士钟表,任何一个环节的参数失调都会导致整个仿真崩溃。
2. 系统架构与核心控制策略
2.1 主电路拓扑设计
混合型MMC采用三相六桥臂结构,每个桥臂由N个子模块串联组成。在我们的仿真中,N=21(即每相包含42个子模块),其中全桥与半桥子模块的比例为1:2。这种混合配置既保留了全桥子模块的直流故障穿越能力,又通过半桥子模块降低了导通损耗和成本。
关键参数设计:
- 直流母线电压:±200kV
- 交流系统电压:220kV (L-L,rms)
- 子模块电容:8mF
- 桥臂电感:50mH
- 开关频率:1050Hz (21个子模块×50Hz)
提示:子模块电容值的选择需要权衡体积成本和电压纹波,一般按照能量波动量ΔW=1/2C(V_max² - V_min²)计算,保证纹波在±10%以内。
2.2 双闭环控制架构
电压外环和电流内环构成了经典的双闭环控制结构。外环通过调节d轴电流参考值来维持直流电压稳定,内环则快速跟踪电流指令。两个环路的带宽需要保持适当比例:
matlab复制% 电压外环PI参数设计示例
Kp_v = 0.5; % 比例系数
Ki_v = 0.001; % 积分系数
% 电流内环PI参数(响应速度需快3-5倍)
Kp_i = 1.2;
Ki_i = 0.1;
调试中发现,当电流环的响应速度不足电压环的3倍时,系统在负载突变时会出现明显的振荡。这可以通过波特图分析来验证:电流环的截止频率应该位于电压环截止频率的右侧足够远处。
3. 关键算法实现与优化
3.1 环流抑制策略
相间环流主要由二倍频分量组成,其幅值可达工作电流的15%。我们采用移动平均滤波结合50Hz陷波器的方法提取环流分量:
python复制def design_circulating_current_filter(f0, fs):
# 移动平均窗口取3个基波周期
window_size = int(3 * fs / f0)
# 设计100Hz陷波器(二倍频)
notch_freq = 2 * f0
quality_factor = 30 # 控制陷波带宽
b, a = signal.iirnotch(notch_freq, quality_factor, fs)
return {
'window_size': window_size,
'notch_b': b,
'notch_a': a
}
实际应用中需要注意:
- 移动平均会引入半个窗口的延迟,需要补偿
- 陷波器的相位非线性,建议使用零相位滤波(filtfilt)
- 环流控制增益不宜过大,否则会引入高频噪声
3.2 电容电压均衡控制
对于N=21的配置,每相有42个子模块需要实时均衡。我们采用改进的分组排序算法:
c复制#define GROUP_SIZE 7
void grouped_sort_balance(Submodule sm[], int total_sm) {
// 第一步:分组局部排序
for(int g=0; g<total_sm/GROUP_SIZE; g++){
quick_sort(&sm[g*GROUP_SIZE], GROUP_SIZE);
}
// 第二步:全局调整
float avg_voltage = calculate_average(sm, total_sm);
for(int i=0; i<total_sm; i++){
if(sm[i].v_cap > avg_voltage*1.05){
sm[i].duty_cycle *= 0.97; // 略降投入时间
} else if(sm[i].v_cap < avg_voltage*0.95){
sm[i].duty_cycle *= 1.03; // 略增投入时间
}
}
}
这种分组策略将O(NlogN)的复杂度降为O((N/G)logG),在保持精度的同时大幅减少计算量。实测表明,在200个子模块规模下,计算时间可减少60%。
4. 载波移相调制实现
载波移相调制是MMC多电平输出的核心技术。我们采用相位累加器法生成各桥臂的载波:
verilog复制module carrier_generator (
input clk, // 10MHz时钟
input [7:0] N_phase, // 相位间隔=360/N
output reg [15:0] carr_wave
);
reg [15:0] phase_acc;
always @(posedge clk) begin
phase_acc <= phase_acc + N_phase;
if(phase_acc >= 36000) phase_acc <= phase_acc - 36000; // 0.01°分辨率
carr_wave <= (phase_acc < 18000) ? phase_acc : phase_acc-36000;
end
endmodule
关键设计要点:
- 相位分辨率至少0.1°(建议0.01°)
- 各桥臂载波严格同步
- 死区时间需要单独补偿
5. 仿真结果与问题排查
5.1 典型波形分析
成功运行的仿真显示出以下特征:
- 直流电压纹波:<1%
- 交流电流THD:2.3%
- 电容电压不均衡度:±3%
- 环流分量:<5%
5.2 常见问题与解决方案
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 直流电压振荡 | 电流环响应过慢 | 增大电流环比例系数 |
| 电容电压发散 | 均衡算法执行周期过长 | 缩短控制周期或优化排序算法 |
| 环流抑制失效 | 陷波器中心频率偏移 | 重新校准滤波器参数 |
| THD超标 | 载波不同步 | 检查相位累加器溢出逻辑 |
调试过程中最耗时的环节是PI参数整定。建议采用以下步骤:
- 先单独调电流环(电压环开环)
- 然后固定电流环调电压环
- 最后微调环流抑制器增益
6. 工程实践建议
经过这个项目,总结出几点宝贵经验:
- 分阶段验证:先让单相系统工作,再扩展到三相
- 参数备份:每次成功调试后保存参数组合
- 可视化监控:实时显示关键变量变化趋势
- 过保护设计:在仿真中加入虚拟的过压/过流保护
对于想复现该仿真的同行,建议从简化模型入手:
- 先用6个子模块验证基本功能
- 逐步增加子模块数量
- 最后引入混合型配置
这个项目让我深刻体会到,电力电子系统仿真是理论与实践的结合艺术。每一个看似微小的参数背后,都藏着电磁能量转换的物理本质。掌握这种"系统级思维",比单纯会写控制代码重要得多。