MMC,级联H桥仿真图,电压电流双闭环。
最近在搞MMC(模块化多电平换流器)的仿真,发现这玩意儿真是电力电子界的乐高------全靠子模块堆叠。特别是级联H桥的结构,玩电压合成比搭积木刺激多了。今天咱们就着电压电流双闭环设计,聊聊怎么让仿真模型既跑得稳又打得准。
先看核心结构:每个H桥子模块相当于独立电池组,通过IGBT切换串联数量实现电平叠加。仿真时最怕电容电压失衡,这时候就得靠均压算法续命。用MATLAB写了个子模块逻辑,核心是电容电压排序触发:
matlab
function [gate_signals] = SubmoduleCtrl(cap_voltages, ref_volt)
[sorted_volt, idx] = sort(cap_voltages);
if mean(cap_voltages) > ref_volt*1.05
gate_signals(idx(1:floor(end/2))) = 1; % 低电压模块投入
else
gate_signals = ones(size(cap_voltages)); % 正常轮换模式
end
end
这段代码实现的是电压越限时的紧急均压策略。当检测到平均电压超标5%,优先让电压低的模块接入电路吃电流,比传统轮流触发更抗浪涌。但注意别把排序放在主循环里跑,实测在200个子模块时耗时暴涨300ms------得用并行计算优化。
双闭环控制才是灵魂操作。外环电压环负责维稳,内环电流环玩快速跟踪。调参时发现个反直觉现象:电压环带宽设得太高反而引发振荡。后来用扫频法测出系统谐振点,最终把交叉频率定在电网频率的1/8处才算稳了。
来看关键的环流抑制部分代码:
simulink
function i_circ = CirCurrentCancel(i_upper, i_lower)
persistent hpf;
if isempty(hpf)
hpf = designfilt('highpassiir', 'FilterOrder',2, 'HalfPowerFrequency',100);
end
i_diff = i_upper - i_lower;
i_circ = filtfilt(hpf, i_diff); % 二阶高通提取环流
k_p = 0.35 * sign(i_circ); % 变增益补偿
duty_comp = k_p .* abs(i_circ).^1.2;
end
这个环流补偿模型用了非线性增益,比传统PI调节快30%进入稳态。注意filtfilt函数实现了零相位滤波,防止控制延迟引发震荡。但别在FPGA里这么搞,会吃光逻辑资源的。
仿真波形出来那刻真刺激:上下桥臂电流像照镜子似的对称,电容电压波动控制在±2%以内。特别是载波移相PWM生成的阶梯波,17电平的波形THD直接干到0.8%以下。不过也翻过车------有次忘记限制动态过程中的最大dv/dt,IGBT模型直接报过热警告,吓得赶紧加了个斜率限制器。
玩MMC仿真就像走钢丝,参数调教要胆大心细。下次准备试试模型预测控制,看能不能把计算耗时压到现有方案的1/5。有同坑的兄弟欢迎交流翻车经验,毕竟仿真报错比真炸管划算多了不是?
