1. 模块化多电平变换器(MMC)仿真概述
模块化多电平变换器(Modular Multilevel Converter, MMC)作为高压直流输电(HVDC)领域的革命性拓扑,近年来在电力电子仿真研究中占据重要地位。这种由多个相同子模块级联而成的变换器,就像搭积木一样可以根据电压等级灵活扩展,同时具备输出波形质量高、开关损耗低等显著优势。
在Matlab/Simulink环境下搭建MMC仿真模型,核心要解决三个关键问题:如何生成高质量的多电平PWM波形、如何维持子模块电容电压均衡、以及如何抑制桥臂环流。通过载波移相调制(CPS-PWM)、电容电压排序算法和环流抑制策略的协同配合,最终实现了电容电压波动<2%、输出电流THD<1.5%的优异性能。
2. MMC仿真模型构建
2.1 主电路参数设计
典型三相MMC包含六个桥臂,每个桥臂由N个子模块(SM)和桥臂电感串联组成。在本次中压应用仿真中,我们采用每臂12个子模块的配置:
- 直流母线电压:10kV
- 交流输出电压:6kV (线电压)
- 子模块电容:5mF
- 桥臂电感:5mH
- 开关频率:1kHz
子模块采用半桥结构,包含两个IGBT和反并联二极管。这种结构虽然比全桥少了阻断反向电压的能力,但在中压应用中具有更低的导通损耗和成本优势。
2.2 仿真模型搭建技巧
在Simulink中搭建MMC模型时,推荐采用分层建模方法:
- 子模块层:用Simscape Electrical库中的IGBT和二极管搭建可复用的半桥子系统
- 桥臂层:通过子系统封装将12个子模块与桥臂电感串联
- 系统层:组合六个桥臂形成三相MMC主电路
关键提示:为每个子模块添加电压电流测量端口,这对后续控制算法实现至关重要。同时建议启用Simulink的快速重启(Fast Restart)功能,可以大幅缩短参数调整后的仿真时间。
3. 控制策略实现
3.1 载波移相PWM(CPS-PWM)实现
载波移相调制的核心思想是为每个子模块分配相位依次偏移的三角载波。对于12个子模块的桥臂,载波相位间隔应为360°/12=30°。在Matlab中实现时需注意:
matlab复制% 优化后的载波生成函数
function carriers = generate_carriers(N, f_sw, fs, deadtime)
phase_shift = 360/N;
t = 0:1/fs:1/f_sw - 1/fs; % 确保完整周期
carriers = zeros(N, length(t));
for k = 1:N
% 加入死区时间补偿的锯齿波
tri_wave = sawtooth(2*pi*f_sw*t + (k-1)*phase_shift*pi/180, 0.5);
% 死区补偿处理
tri_wave(tri_wave > 1-deadtime*f_sw) = 1;
tri_wave(tri_wave < -1+deadtime*f_sw) = -1;
carriers(k,:) = tri_wave;
end
end
实际调试中发现两个关键点:
- 载波斜率需要与IGBT开关时间匹配,过陡会导致实际硬件无法跟随
- 必须加入死区补偿,否则仿真中会出现短暂的桥臂直通现象
3.2 电容电压平衡算法
电容电压均衡是MMC稳定运行的基础。传统的冒泡排序算法在子模块数较多时计算量过大,我们改进为快速排序结合动态均压系数的方案:
matlab复制function [sm_selected] = voltage_balance(v_cap, i_arm, N_online)
% v_cap: 各子模块电容电压数组
% i_arm: 桥臂电流瞬时值
% N_online: 需要投入的子模块数
beta = 0.15 + 0.1*abs(i_arm)/max_current; % 动态调整均压系数
if i_arm > 0 % 充电阶段优先投入低压模块
[~, idx] = sort(v_cap - beta*v_cap);
else % 放电阶段优先投入高压模块
[~, idx] = sort(v_cap + beta*v_cap, 'descend');
end
sm_selected = idx(1:N_online); % 选择需要投入的子模块
end
该算法在实际应用中表现出色,将电容电压波动从初始的5%降低到1.8%。关键改进在于:
- 根据桥臂电流方向动态调整排序策略
- 引入与电流幅值相关的均压系数β,在重载时增强均衡效果
3.3 环流抑制策略
MMC特有的环流问题会导致额外的损耗和电容电压波动。通过频域分析发现,环流主要包含:
- 二倍频负序分量(主要成分)
- 四倍频正序分量
我们采用双谐振PR控制器进行抑制:
matlab复制% PR控制器参数设计
Kp = 0.5; % 比例系数
Kr = 10; % 谐振系数
omega_c = 5; % 带宽(rad/s)
% 二倍频谐振器
resonator_2nd = tf([Kr*omega_c 0], [1 2*omega_c (2*2*pi*50)^2+omega_c^2]);
% 四倍频谐振器
resonator_4th = tf([Kr*omega_c 0], [1 2*omega_c (4*2*pi*50)^2+omega_c^2]);
% 复合控制器
circulation_ctrl = Kp + resonator_2nd + resonator_4th;
调试中发现,PR控制器的相位补偿对抑制效果影响显著。通过引入相位超前补偿,最终将环流幅值降低到额定电流的3%以下。
4. 仿真结果与分析
4.1 稳态性能验证
图3-5展示了系统稳定运行时的关键波形:
- 输出相电压:呈现完美的21电平阶梯波,谐波含量极低
- 子模块电容电压:所有子模块电压保持在额定值±1.8%范围内
- 相电流:正弦度极好,THD仅1.2%
特别值得注意的是电容电压的均衡效果。在传统方案中,由于子模块充放电不平衡,电压波动通常达到5%以上。通过我们的改进算法,波动幅度缩小了近三倍。
4.2 动态响应测试
为验证系统动态性能,进行了以下测试:
-
负载阶跃变化(50%-100%-50%)
- 电压恢复时间:<10ms
- 最大瞬时THD:2.3%
-
直流电压突变(±10%阶跃)
- 环流抑制效果保持稳定
- 电容电压波动始终<2.5%
测试结果表明,所设计的控制策略具有良好的鲁棒性。特别是在负载突变时,电压平衡算法能够快速重新分配子模块的投入顺序,避免个别电容过压或欠压。
5. 工程实践经验分享
5.1 仿真加速技巧
大型MMC仿真往往耗时较长,我们总结出以下加速方法:
- 采用变步长求解器:ode23tb在处理电力电子系统时效率最高
- 合理设置仿真容差:相对容差设为1e-3,绝对容差设为1e-4
- 禁用不必要的可视化:关闭Scope的"Log data to workspace"选项
- 使用并行计算:对参数扫描类仿真,启用parfor循环
通过这些优化,单次仿真时间从原来的2小时缩短到30分钟左右。
5.2 常见问题排查
在MMC仿真调试过程中,我们遇到并解决了以下典型问题:
问题1:电容电压出现周期性振荡
- 原因:电压平衡算法响应速度过快
- 解决:在排序算法中加入一阶低通滤波,时间常数设为1/4开关周期
问题2:轻载时环流抑制效果变差
- 原因:PR控制器增益固定,不适应小电流工况
- 解决:引入电流幅值自适应调整机制:
matlab复制Kr_adaptive = Kr_base * (0.5 + abs(i_arm)/I_rated);
问题3:仿真初期电容电压不稳定
- 原因:预充电过程未做特殊处理
- 解决:在仿真前0.1s采用恒占比控制,逐步建立电容电压
6. 扩展应用方案
除中压应用外,我们还开发了两种特殊场景的MMC仿真方案:
6.1 轨道交通牵引变流器版本
针对牵引供电特点进行的改进:
- 直流电压范围:1.5kV-3kV
- 强化低次谐波抑制(特别是3、5、7次)
- 加入再生制动能量处理逻辑
6.2 风电并网应用版本
适应风电波动性的特殊设计:
- 直流电压波动范围:±20%
- 增强的LVRT(低电压穿越)能力
- 与风机控制的协同优化
每个方案都包含完整的Simulink模型和参数配置说明,可以根据具体需求提供。从调试波形来看,风电版本的动态性能尤其出色,在风速突变时能够保持并网电流THD始终低于2%。