1. 混合型模块化多电平(MMC)系统概述
混合型模块化多电平变换器(Modular Multilevel Converter, MMC)作为中高压电力电子系统的核心拓扑结构,其独特的多电平特性与模块化设计使其在柔性直流输电、新能源并网等领域展现出显著优势。本次我们聚焦一个典型应用场景:直流母线电压12kV的双端MMC系统,采用半桥结构,每臂包含10个子模块(N=10)。这种配置在工程实践中具有代表性,既能满足中高压需求,又保持了合理的器件数量与控制复杂度。
关键设计参数:
- 直流侧电压:12000V
- 子模块数量:10个/半桥臂
- 控制策略:双闭环(外环电压/功率控制+内环电容电压均衡控制)
MMC的核心价值在于其输出电压波形质量优异(THD<1%),无需笨重的工频变压器即可直接接入中高压电网。以本案例的12kV系统为例,单个子模块电容电压理论值为1200V(12000V/10),采用IGBT模块(如Infineon FZ1200R33HE3)即可构建可靠系统,相比传统两电平拓扑降低器件耐压要求50%以上。
2. 系统建模与参数设计
2.1 主电路拓扑构建
双端MMC系统包含整流侧(电源端)与逆变侧(负载端),通过直流母线连接。每个桥臂由N个子模块串联构成,形成模块化多电平结构。具体参数计算如下:
-
子模块电容选型:
- 额定电压:V_cap = V_dc/N = 12000V/10 = 1200V
- 容值计算:C = (2E)/(N*V_cap²)
其中E为桥臂储能要求(通常取5-10kJ/MVA),假设系统容量为5MVA:math复制实际选用1.1mF/1200V薄膜电容(如EPCOS B25674A7118K)C = (2×7.5×10³)/(10×1200²) ≈ 1.04mF
-
IGBT选型:
- 电压等级:1.2×1200V = 1440V → 选用1700V器件
- 电流计算:I_arm = P_dc/(3V_dc) = 5MW/(3×12kV) ≈ 139A
考虑2倍过载,选择300A/1700V模块(如前述FZ1200R33HE3)
2.2 控制系统架构设计
双闭环控制系统采用分层结构:
-
外环(功率控制层):
- 整流侧:直流电压控制(维持V_dc=12kV)
- 逆变侧:有功功率/交流电压控制
- 采样周期:100μs(10kHz)
-
内环(电容电压均衡层):
- 子模块电压排序与投切控制
- 载波移相PWM调制(CPS-SPWM)
- 采样周期:10μs(100kHz)
matlab复制% 外环PI控制器参数整定示例(整流侧电压环)
Kp_vdc = 0.5; % 比例系数
Ki_vdc = 50; % 积分系数
Ts_vdc = 100e-6; % 控制周期
3. 核心控制算法实现
3.1 电容电压均衡控制
均压控制是MMC稳定运行的关键,本方案采用"电压排序+最近电平逼近"策略:
-
实时电压监测:
- 每个控制周期(10μs)采样所有子模块电容电压
- 计算平均电压:V_avg = ΣV_cap_i / N
-
投切决策逻辑:
- 升压需求时:投入电压最低的k个子模块
- 降压需求时:切除电压最高的k个子模块
- k值由调制波与当前电平数决定
matlab复制function [SM_on] = voltage_balancing(V_cap, I_arm, N, n_on)
[V_sorted, idx] = sort(V_cap);
if I_arm > 0 % 充电阶段
SM_on = idx(1:n_on); % 投入电压最低的n_on个模块
else % 放电阶段
SM_on = idx(end-n_on+1:end); % 投入电压最高的n_on个模块
end
end
注意事项:
- 需设置±5%的死区防止频繁投切
- 排序算法建议使用快速排序(O(nlogn)复杂度)
- 实际工程中需加入冗余模块切换逻辑
3.2 双闭环协调控制
外环与内环的协调通过以下机制实现:
-
外环输出处理:
- 外环PI控制器输出调制波信号m(t)
- 电平数计算:n_on = round(m(t)*N)
-
内环执行流程:
- 接收n_on指令
- 执行电压排序与模块选择
- 生成PWM驱动信号
matlab复制% 双闭环协调控制示例
function [gate_signals] = control_loop(V_dc_ref, V_dc_meas, V_cap, I_arm)
% 外环计算
error = V_dc_ref - V_dc_meas;
m = pi_controller(error, Kp_vdc, Ki_vdc, Ts_vdc);
% 内环执行
n_on = round(m * N);
SM_on = voltage_balancing(V_cap, I_arm, N, n_on);
% 生成门极信号
gate_signals = generate_pwm(SM_on, N);
end
4. MATLAB仿真实现技巧
4.1 模型搭建要点
在Simulink中构建MMC模型时,推荐采用以下结构:
-
主电路层:
- 使用Simscape Electrical库构建功率电路
- 子模块封装为Masked Subsystem
- 配置IGBT/diode参数时需设置:
- Ron=1mΩ, Lon=10nH(考虑实际导通特性)
- 开关损耗模型启用(参数参考器件手册)
-
控制层:
- 采用Level-2 M S-function实现控制算法
- 使用MATLAB Function块实现排序逻辑
- 配置多速率处理(外环100kHz,内环1MHz)
matlab复制% 子模块Simulink模型初始化示例
function sm_init()
set_param([bdroot '/IGBT1'], 'Ron', '1e-3');
set_param([bdroot '/Diode1'], 'Ron', '1e-3');
set_param([bdroot '/Capacitor'], 'Capacitance', '1.1e-3');
end
4.2 仿真参数配置
确保仿真收敛的关键参数设置:
| 参数项 | 推荐值 | 说明 |
|---|---|---|
| Solver | ode23tb | 适用于电力电子系统 |
| Max step size | 1e-6 | 匹配控制周期 |
| Relative tol | 1e-4 | 精度与速度平衡 |
| Voltage source | 1e-3 Ω内阻 | 避免理想源数值振荡 |
调试技巧:
- 先以固定步长(1μs)验证控制逻辑
- 再切换为变步长优化仿真速度
- 使用Simulink Data Inspector实时监测关键信号
5. 典型问题排查指南
5.1 电容电压振荡问题
现象:子模块电压周期性波动超过±10%
- 检查清单:
- 均压控制周期是否匹配PWM频率(应≥10倍关系)
- 电容值是否准确(实测容差应<5%)
- 电流传感器相位补偿是否正确
解决方案:
matlab复制% 增加电压滤波的改进算法
function V_filt = lowpass_filter(V_raw)
persistent V_prev;
if isempty(V_prev)
V_prev = V_raw;
end
alpha = 0.1; % 滤波系数
V_filt = alpha*V_raw + (1-alpha)*V_prev;
V_prev = V_filt;
end
5.2 直流电压稳态误差
现象:V_dc始终低于设定值(如11.8kV vs 12kV)
- 根本原因:
- 器件导通压降未补偿
- 线路阻抗导致的分压
补偿方法:
- 在外环PI输出增加前馈项:
matlab复制V_ff = V_dc_ref + 0.02*abs(I_dc); % 2%补偿系数 - 在线路模型中添加寄生参数(如1mΩ/m电阻)
6. 工程实践中的经验总结
-
电磁兼容设计:
- 每个子模块并联10nF/2kV陶瓷电容抑制高频振荡
- 桥臂电抗器采用同轴绕制降低杂散电感
-
热管理要点:
- IGBT基板温度建议控制在≤80℃
- 电容温度梯度应<15℃(通过风道设计实现)
-
控制参数整定:
- 先整定外环(响应时间约10ms)
- 再整定内环(响应时间约1ms)
- 最终进行协调优化
在实际项目中,我们发现在启动阶段采用预充电电阻(约50Ω/kW)可有效抑制浪涌电流。一个实用的启动序列是:
- 闭合预充电接触器,直流母线缓慢充电至80%
- 闭锁MMC,子模块电容通过二极管充电
- 当V_cap达到90%额定值时,切入正常运行模式
