3. MMC子模块工作原理:半桥子模块、全桥子模块的工作原理与电容电压平衡

好,咱们今天聊聊MMC最核心的“积木”——子模块。你想想看,整个换流阀就是由成百上千个这样的子模块堆起来的。搞懂了它,MMC的控制策略就通了一半。

我个人习惯把子模块比作一个“微型电源”。它要么把电容电压怼到输出端,要么就旁路掉。就这么简单。但实际做项目时,这里面的门道可不少。

3.1 半桥子模块(HBSM)

半桥子模块,说白了就是两个IGBT加一个电容。结构最简单,成本也最低。我在早期的柔性直流项目里,用的全是它。

工作原理其实就两个状态:

  • 投入状态:上管T1导通,下管T2关断。电流从A点流进,经过T1,从B点流出。这时候输出端电压就是电容电压Uc。说白了,就是把电容“扔”到回路里。
  • 切除状态:上管T1关断,下管T2导通。电流从A点流进,经过T2,从B点流出。输出端电压是0。电容被旁路了。

嗯,这里要注意一点:电流方向不同,电容的充放电状态也不同。我见过不少新手画仿真,电流方向搞反了,电容电压越跑越偏。

核心要点:半桥子模块只能输出0和+Uc两种电平。它不能输出负电压。这意味着它不具备直流故障自清除能力。一旦直流侧短路,二极管会反向导通,电容直接短路放电,那电流大得吓人。

我的经验:做半桥MMC项目时,直流侧保护一定要快。我曾经在一个工程里,直流断路器动作慢了2毫秒,结果子模块电容直接炸了三个。从那以后,我对保护定时的要求苛刻到了极点。

3.2 全桥子模块(FBSM)

全桥子模块,就是四个IGBT加一个电容。结构比半桥复杂,但功能强大多了。

它能输出三种电平:

  • 正投入:T1和T4导通,T2和T3关断。输出+Uc。
  • 负投入:T2和T3导通,T1和T4关断。输出-Uc。
  • 切除:T1和T3导通,或者T2和T4导通。输出0。

你看,全桥能输出负电压,这就是它最大的优势。直流侧发生短路时,我可以让子模块输出负电压,把故障电流硬生生“顶”回去。说白了,它自己就能切断故障,不需要额外的直流断路器。

避坑指南:全桥子模块的损耗比半桥大。我曾经算过一个工程,全桥方案比半桥方案损耗高了约15%。所以选型时一定要权衡:你是更看重故障处理能力,还是更看重运行效率?

3.3 电容电压平衡控制

这是MMC控制里最让人头疼的问题之一。你想想看,几百个子模块的电容电压,如果不管它,高的高、低的低,那换流阀根本没法正常工作。

为什么会这样?因为每个子模块的充放电时间不一样。有的子模块投入时间长,电容一直放电,电压就低;有的投入时间短,电压就高。时间一长,电压就散开了。

我常用的平衡策略是这样的:

  1. 排序法:先把所有子模块的电容电压测出来,排个序。电压高的排前面,电压低的排后面。
  2. 判断电流方向:看看桥臂电流是给电容充电还是放电。
  3. 选择投入:
    • 如果电流是充电方向,那就优先投入电压低的子模块。让它们多充点电,把电压拉上来。
    • 如果电流是放电方向,那就优先投入电压高的子模块。让它们多放点电,把电压降下去。

说白了,就是“高的让它放,低的让它充”。这个逻辑听起来简单,但实际做起来,采样频率、排序算法、开关频率限制,这些都得考虑进去。

代码示例(排序法核心逻辑):

// 伪代码,展示核心思路
void capacitor_voltage_balance(float *Vc, int *SM_state, int N, float I_arm) {
    // 1. 排序:电压高的索引在前
    int idx[N];
    sort_descending(Vc, idx, N);
    
    // 2. 计算需要投入的子模块数
    int N_on = calculate_N_on();
    
    // 3. 根据电流方向选择
    if (I_arm > 0) {  // 充电电流
        // 优先投入电压低的子模块
        for (int i = N-1; i >= N-N_on; i--) {
            SM_state[idx[i]] = 1;  // 投入
        }
    } else {  // 放电电流
        // 优先投入电压高的子模块
        for (int i = 0; i < N_on; i++) {
            SM_state[idx[i]] = 1;  // 投入
        }
    }
}

我的建议:排序法虽然直观,但计算量大。如果子模块数量多(比如超过200个),建议用“分组排序”或者“冒泡排序优化版”。我在一个400个子模块的项目里,用分组排序把计算时间从200微秒降到了50微秒,效果很明显。

3.4 两种子模块的对比

特性 半桥子模块 全桥子模块
输出电平数 2种(0, +Uc) 3种(-Uc, 0, +Uc)
直流故障清除 不能
IGBT数量 2个 4个
损耗 高(约高15%)
成本
应用场景 陆上柔直、背靠背 海上风电送出、多端直流

嗯,这张表基本把两者的区别说清楚了。选型时,我个人习惯先看直流故障处理需求。如果系统对故障清除时间要求苛刻,那就别犹豫,上全桥。如果成本敏感,半桥加直流断路器也是可行的方案。

3.5 知识体系结构图

下面这张图,是我自己总结的MMC子模块知识体系。你把它记在脑子里,整个章节的脉络就清晰了。

MMC子模块知识体系 半桥子模块 (HBSM) 全桥子模块 (FBSM) 工作原理 投入状态:输出 +Uc 切除状态:输出 0 不能输出负电压 工作原理 正投入:+Uc 负投入:-Uc 能输出负电压 关键特性 损耗低、成本低 无直流故障自清除能力 关键特性 损耗高、成本高 具备直流故障自清除能力 电容电压平衡控制 排序法:高的放、低的充

这张图把半桥和全桥的对比、工作原理、关键特性,以及电容电压平衡的核心逻辑都串起来了。你多看几遍,心里就有谱了。


好了,这一章的内容就到这里。子模块是MMC的基石,搞懂了它,后面的调制策略、环流抑制、故障保护,你学起来会轻松很多。

专注资料整理