21电平MMC整流站、MMC逆变站、两端柔性互联的MATLAB/Simulink仿真
江湖传言MMC这玩意儿能把电力电子玩出花来,今天咱们就拿21电平MMC开刀,整点MATLAB/Simulink的骚操作。整流站和逆变站搞对象,中间用柔直线路牵红线,这场面想想都刺激。
先甩个主电路框架镇楼(直接在Simulink里搭的):
% MMC相单元参数设定
submodule.Cap = 2000e-6; % 子模块电容
submodule.Ron = 1e-3; % IGBT导通电阻
submodule.Vc_init = 2000; % 电容初始电压
arm.NSM = 10; % 单臂子模块数(21电平需要20个SM/arm)
重点看这个子模块数量——每个桥臂塞10个模块,上下桥臂加起来刚好凑出21个电平台阶。这可不是拍脑袋定的数,最近电平逼近调制(NLM)的玄机就藏在这里。当我们需要生成特定电平时,系统会自动选择最接近的可用电平数,比如想输出15.3kV,实际就取15kV或16kV,误差控制在合理范围。
整流站的控制核心是定直流电压,上段代码实现的是电容电压均衡:
function [gateSignals] = voltageBalance(v_cap, v_ref)
% 电容电压排序算法
[~, sortedIndex] = sort(abs(v_cap - v_ref), 'descend');
activeSMs = sortedIndex(1:ceil(v_ref*0.1)); % 动态投入数量
% 生成门极信号
gateSignals = zeros(1, length(v_cap));
gateSignals(activeSMs) = 1;
end
这骚操作的关键在于实时把电容电压和参考值比对,电压高的模块优先投入放电,电压低的先歇着充电。注意那个动态投入数量的计算,0.1的系数不是固定值,得根据实际工况调整,搞不好就会翻车。
逆变站那边玩的是PQ控制,核心是这家伙:
% dq解耦控制器参数
Kp_id = 0.5; Ki_id = 20;
Kp_iq = 0.5; Ki_iq = 20;
看起来平平无奇?重点在参数整定。我踩过的坑:当Kp超过0.8系统直接振荡上天,Ki超过30响应速度反而变慢。建议先用粒子群算法跑个大概范围,再手动微调。
柔性互联的关键在协调控制,这段通信代码得盯紧了:
function syncSignals = interlinkComm(rectifier, inverter)
% 跨站数据交换
persistent buffer;
if isempty(buffer)
buffer = zeros(100,2);
end
buffer = [buffer(2:end,:); [rectifier.dcVoltage, inverter.acFreq]];
% 延时补偿(约50ms通信延迟)
syncSignals = mean(buffer(1:80,:));
end
搞过工业现场的都懂,通信延迟能要命。这里用了个滑动窗口均值滤波,虽然土但管用。注意缓冲区大小要和实际通信延迟匹配,仿真时建议先故意设错参数,观察系统崩溃的临界点。
最后来个仿真结果镇场:启动瞬间直流侧电压波动跟过山车似的,但0.3秒后稳稳锁定在±50kV。交流侧THD刚开始飙到8%,等电容均压算法完全生效后直接压到1.2%以下。重点观察桥臂环流,要是发现某个子模块电流持续偏高,赶紧检查均压算法是不是漏了温度补偿项。
折腾完这整套模型的最大感悟:MMC就是个精密的电子芭蕾,参数像高跟鞋——差一码都能摔得鼻青脸肿。下次试试把电平数堆到31级,不过估计又得掉几根头发...

707

被折叠的 条评论
为什么被折叠?



