21电平MMC整流站与逆变站及两端柔性互联的MATLAB/Simulink仿真

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级,不过估计又得掉几根头发...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值