高压大容量MMC(模块化多电平换流器)的降损控制方法,以及子模块拓扑优化设计,这两个词放在一起,本身就是工程现实逼出来的课题。前两年我参与一套换流阀级损耗评估时,业主方开口就问整站效率能做到多少,冷却系统容量怎么定。这一问,损耗就不再只是学术论文里的一个指标,而是要落到IGBT选型、散热器尺寸、阀塔占地甚至长期运行电费上的硬约束。说白了,损耗每降低0.1个百分点,对几百兆瓦级的换流站来说就是几十千瓦的持续发热,折成电费和冷却投资都非常可观。
这篇文章想把MMC损耗从哪来、降损控制策略怎么选、子模块拓扑怎么优化,以及日常仿真调试中怎么把子模块信号抓出来看,完整串一条线。适合正在做柔性直流输电、大容量电机驱动、电能质量治理方向的工程师和研究员,也适合刚入门、被各种缩写搞晕的硕士博士当一份技术索引。我会尽量把公式和工程实践放在一起讲,不搞教科书式的罗列。
1. 项目背景:为什么高压大容量MMC离不开“降损”和“拓扑优化”这两件事
1.1 损耗是高压大容量场景下的“隐性成本”
MMC的单个子模块看起来只是一个功率单元,但桥臂中子模块数量一旦上了几十个甚至上百个,整台换流器的器件总数就会达到数百只。这些器件在正常导通时会产生通态压降损耗,在每次开关动作时产生开通、关断损耗,二极管的反向恢复也会贡献一部分能量损失。在低压小功率场合,这些损耗可能只是散热片上的一点温度;但在高压大容量场景下,几百只器件一起发热,就需要设计庞大的水冷或风冷系统。冷却系统本身要占地、要耗电,还把整体可靠性拉低了一个档次。
我在实际项目里算过一笔账:一个典型的大容量换流站,如果阀损耗从1.5%降到1.2%,每年省下的电量折成费用是相当可观的。降损虽然听起来是“电气效率优化”,实际上直接影响的是冷却系统容量、阀厅空调负荷、器件结温裕度和检修周期。这就是为什么标题里要把“降损控制方法”和“子模块拓扑优化”放在一起研究,两个方向最终都指向同一个目标:在保证故障穿越能力的前提下,用最小的功率器件损耗完成能量变换。
1.2 降损控制和拓扑优化是互为犄角的两条腿
控制层面的降损思路,主要是通过优化调制策略、环流抑制和均压排序,减少不必要的开关动作,降低桥臂电流的有效值,从而减少开关损耗和导通损耗。拓扑层面的优化思路,则是从子模块的电路结构入手,减少正常功率传输路径上串联的器件数量,或者用更聪明的结构代替全桥,让同样一个电平输出消耗更少的能量。
这两条腿缺一不可。只做控制优化,不改拓扑,损耗的下限受限于器件数量和导通路径;只改拓扑,不优化控制,开关损耗和环流带来的额外损耗又会把器件省下的那点效率吃掉。真正可行的做法,是先确定拓扑方案,再用控制策略在给定拓扑下把效率榨到极致。后面我会按这个逻辑完整展开。
2. MMC损耗到底从哪来:构成分解与工程量化方法
2.1 先掰清楚四大损耗分量
做损耗优化之前,必须先把损耗构成拆开。MMC的损耗并不是一个单一物理量,而是由几个性质完全不同的部分叠加在一起的。
第一个是导通损耗。IGBT导通时存在饱和压降,二极管导通时存在正向压降,这些压降乘以流过的电流,就是导通损耗。导通损耗和器件的通态电阻、门槛电压有关,也和工作电流的波形密切相关。桥臂电流里既有基波分量,又有环流分量,环流增大会直接抬高电流有效值,导通损耗也随之上升。
第二个是开关损耗。每次IGBT开通和关断,都需要经历电压电流重叠区,期间消耗的能量被定义为Eon和Eoff。二极管的反向恢复也会消耗Erec。这部分损耗和开关频率成正比,频率越高损耗越大。MMC相比两电平变流器的优势之一就是等效开关频率可以很低,但“低”不是自动实现的,需要调制策略配合。
第三个是电容和辅助回路损耗。子模块电容在充放电过程中,高频纹波电流流过电容内部的等效串联电阻会产生损耗;子模块的取电电源、驱动板、均压电阻、传感器也会消耗功率。电容损耗占比不大,但在追求极致效率时不能忽略,尤其是均压电阻这种常驻损耗项,设计时经常需要平衡耐压和功耗。
第四个是直流母线、连接母排和电抗器损耗。母排接触电阻、电抗器绕组电阻在通过大电流时都会产生焦耳热。这类损耗不属于功率器件,却在总损耗中占据一席之地。做损耗分析时如果只盯着IGBT数据手册,往往会漏掉这一块。
我把这四类损耗对比如下:
| 损耗类型 | 主要来源 | 与什么参数强相关 | 工程占比 |
|---|---|---|---|
| 导通损耗 | IGBT饱和压降、二极管正向压降 | 桥臂电流有效值、器件通态特性 | 通常最大,负载率越高越突出 |
| 开关损耗 | IGBT开通过程、关断过程、二极管反向恢复 | 开关频率、电压电流交叠区、门极电阻 | 次之,轻载时占比更明显 |
| 电容与辅助损耗 | 电容ESR、驱动电源、均压电阻 | 纹波电流、子模块数量、待机功耗 | 较小但常被忽略 |
| 母排与电抗器损耗 | 导线电阻、接触电阻、电感绕组 | 电流大小、母排设计、电抗器参数 | 视设计质量,占几个百分点 |
2.2 工程上怎么把损耗算出来
损耗计算最常用的方法是“波形查表法”,也叫统计法。先跑一遍电磁暂态仿真,得到每个功率器件上的电流波形和电压波形,再根据IGBT和二极管的数据手册,把导通压降、开关能量按电流和结温查表,最后逐周期累加。
导通损耗的近似表达式可以写成:
P_CON = V_CE0 × I_C_avg + r_CE × I_C_rms²
这里V_CE0是IGBT输出特性曲线外推得到的门槛电压,r_CE是通态等效电阻,I_C_avg和I_C_rms分别是器件平均电流和有效值电流。二极管侧同理,用V_F0和r_F替换。这个公式虽然简化,但已经能覆盖大部分导通损耗。
开关损耗的表达式更依赖手册曲线:
P_SW = f_sw × (Eon + Eoff + Erec)
实际计算时必须注意,手册里的Eon、Eoff是在特定母线电压和结温下测出来的。仿真得到的直流电压如果和测试条件不一致,需要做线性修正。通常做法是乘以一个电压系数,把手册测试电压归一化到实际工作电压。结温的影响同样不可忽略,数据手册有热态和冷态曲线,统一按冷态查表会把损耗算小,工程上必须按预期结温修正。
我踩过的最大的坑,是把二极管反向恢复损耗漏算。早期用厂家提供的简化IGBT损耗模型时,只统计了IGBT本身的Eon和Eoff,结果实测阀塔温升比仿真偏高,补上二极管反向恢复损耗后两者才对上。高压大容量MMC的电流周期里,二极管导通时间很长,这项损耗必须单独建模型。
2.3 哪些电路参数最能撬动损耗
从电路设计的角度看,有几个参数对损耗的影响是决定性的。第一个是直流母线电压等级。电压升高后,每个子模块的电容电压相应提高,器件开关瞬间的电压电流交叠面积变大,开关损耗近似随直流电压线性上升。第二个是桥臂电抗器的取值。电抗偏小,环流抑制难度加大,电流纹波变大;电抗偏大,电抗器自身铜损增加,动态响应变差。第三个是子模块电容电压波动率。波动率放宽,电容可以减小,但每个子模块的电压变化范围增大,会影响排序均压策略和器件电压应力,间接影响开关损耗。
还有一个很容易被忽略的参数是冗余子模块数量。冗余数增加,投入运行的子模块总数变多,辅助电源和均压电阻的损耗线性增加,但每个子模块的平均电流应力降低,导通损耗会下降。冗余度和损耗之间有一个最优平衡点,要在可靠性约束下找出来,不能一味加冗余。
3. 降损控制方法:从环流到开关动作层面逐一剖析
3.1 环流抑制为什么能直接降低器件损耗
MMC的桥臂之间存在环流通道,主要表现是二倍频负序环流。环流本身不参与基波功率传输,却会叠加到桥臂电流上,提高电流峰值和有效值。电流有效值一高,导通损耗跟着涨;电流峰值一高,器件开关瞬间的电流应力也涨,部分开关损耗随之增加。所以抑制环流本质上是在降低器件电流应力,是降损控制里最直接的手段。
工程中常用的方法是比例谐振控制器或者准PR控制器,把二倍频分量作为控制对象,给定环流参考为零,实现对环流的闭环抑制。也可以在两相静止坐标系或同步旋转坐标系下设计PI控制器。更讲究一点的做法,是在环流抑制的同时注入优化的二倍频环流,故意让环流携带适当的能量去平抑子模块电容电压波动。这种方法能降低电容电压波动率,从而在同样波动率要求下减小电容容量。但是主动注入环流会推高电流有效值,损耗未必下降,必须在特定目标下权衡。
我的建议是先把环流抑制做扎实,再考虑主动利用。实测下来,一台机里如果环流控制器的带宽在二倍频附近增益不足,桥臂电流里会出现明显的100Hz纹波,阀损耗仿真值和理论计算值差得就很明显。把PR控制器的谐振项放在100Hz,并留足相位裕度,波形会干净很多。
3.2 调制策略与排序均压中的“省开关动作”技巧
调制策略对损耗的影响,主要体现在开关频率和开关动作次数上。大容量MMC普遍采用最近电平逼近调制NLM,因为子模块数量足够多时,NLM可以以基波频率附近的低开关频率逼近正弦波,开关损耗非常低。子模块数量少的场合则适用载波移相PWM,但开关频率较高,损耗相对偏大。
同样使用NLM,排序均压策略是损耗优化的重要战场。传统全排序算法在每个控制周期都对所有子模块电容电压排序,然后根据桥臂电流方向决定投入哪些子模块,这种做法在电平变化不频繁时也会产生大量无谓的开关动作。我在实际代码里采用过带保持因子的排序方法:只有当电容电压偏差超过设定阈值,或者当前投入组合与目标组合不一致到一定程度时才重新排序,否则保持上一周期的投入状态。这样可以显著降低开关次数,损耗实测能下降一截。
还有一类技巧是利用桥臂电流自然换向的窗口切换子模块状态。桥臂电流过零附近器件电流很小,在这个窗口内执行开关动作,开关损耗的电流分量低,效果比在电流峰值附近切换好很多。当然这增加了控制时序复杂度,需要在FPGA里精确计算换向时刻,但降损收益明显。
必须提醒的是,排序均压和降损是一对矛盾。减少开关动作省了损耗,但子模块电容电压均衡度会恶化。我在调参数时见过为了降低开关频率把保持因子调得过大,结果某个子模块电压持续偏高,最终触发过压保护的情况。保持因子要根据电容容差、控制周期和负载率实测定标,不要照抄文献里的常数。
3.3 从系统参数和调制比上找降损红利
降损并不只在控制环内部做文章。系统参数层面,提高调制比,也就是让输出电压基波幅值尽量接近直流电压允许的理论上限,可以降低相同功率下的桥臂电流,直接减小导通损耗。为此可注入三次谐波或零序电压,提高直流电压利用率。这个方法在电机驱动里很成熟,在MMC里同样适用,只是要额外考虑对共模电压和绝缘的影响。
冗余子模块数量的选择也是一个系统级优化点。冗余数少,可靠性不足;冗余数多,辅助损耗上升。我习惯的做法是建立可靠性约束下的年能量损耗模型,把冗余数作为变量扫描一遍,结合故障率数据选最优点,而不是拍脑袋定冗余。低温工况、轻载工况也得纳入评估,因为MMC在轻载下开关损耗占比更高,优化策略需要跟着负载率变化。
4. 子模块拓扑优化设计:从半桥到混合方案
4.1 半桥与全桥的损耗天平
子模块拓扑决定了正常功率传输路径上要串联多少个功率器件。半桥子模块HBSM在投入状态时,电流只经过一个IGBT或一个二极管,导通损耗在各类拓扑中最低;缺点是直流侧发生故障时,半桥无法输出负电平,不能主动清除故障电流。全桥子模块FBSM可以输出正、负、零三种电平,具备直流故障自清除能力,但正常功率传输时电流要经过两个串联器件,导通损耗几乎是半桥的两倍,器件数量也翻倍。
选择全桥还是半桥,本质是在“故障清除能力”和“运行损耗、成本”之间做取舍。对不需要直流故障穿越的场合,半桥是效率最优解;对必须快速清除直流故障的场合,全桥虽然贵,但控制简单可靠。我在评估时会先画出所有候选拓扑的导通路径,数清楚路径上的器件数量。这个“数管子”的动作虽然粗,却是快速筛选拓扑最有效的办法。
4.2 钳位双子模块等“中间方案”的定位
介于半桥和全桥之间,钳位双子模块CDSM是一个值得重点关注的方案。CDSM由两个半桥单元加一个钳位IGBT组成,正常运行时钳位管持续导通,两个半桥单元独立工作;直流故障时关断钳位管,让子模块电容以相反极性串入桥臂,输出负压清除故障电流。CDSM的器件总数比两个半桥多,但比两个全桥少很多,正常导通路径上的器件数也比全桥方案有优势。
另一个方向是串联双子模块SDSM以及T型子模块。这类结构的共同思路是用更少的器件实现必要的负压能力,或者在某些工作状态下让电流只经过单管路径。拓扑优化的核心逻辑并不是“越新越好”,而是在故障清除能力约束下,尽量让“最常工作的工作状态”的损耗最小化。工程上做拓扑筛选,我会同时把电压应力、均压复杂度、驱动供电方式和器件选型难度列进评分表,因为一个拓扑的损耗再低,如果控制复杂度导致可靠性下降,也没法落地。
4.3 混合MMC:用局部“昂贵”换整体“低损”
混合MMC是目前工程上很有吸引力的妥协方案。它把半桥和全桥子模块按一定比例配置在同一座换流站里,正常运行时半桥承担大部分功率传输,损耗保持低水平;直流故障时依靠全桥子模块输出负压,把故障电流压下去。全桥比例不需要100%,只要满足故障期间的电压能力要求即可,通常按直流电压和故障清除策略反推。
我在项目里做过几次比例扫描,发现全桥比例从0提高到20%左右,损耗上升还能接受,但如果继续往上加,换流器效率和成本都会明显恶化。混合方案的另一个好处是控制策略相对成熟,半桥和全桥子模块可以共用部分均压逻辑,只需在故障工况下区分对待。对于既要效率又要故障穿越能力的项目,混合MMC往往比纯全桥更容易被业主接受。
拓扑优化还需要考虑器件选型的联动。半桥子模块因为导通路径短,可以选用压降稍低的IGBT;全桥子模块因为器件多,开关损耗占比更大,更值得选用开关特性好的器件,哪怕饱和压降略高。器件和拓扑一起优化,才能做到整机层面的损耗最优,而非单个器件最优。
5. 仿真与调试中的子模块信号拉取技术
5.1 电磁暂态仿真里怎么把子模块内部信号导出来
做MMC研究,仿真永远是第一步。但很多人卡在“模型搭出来了,却不知道怎么看某个子模块的电容电压或门极信号”。在MATLAB/Simulink环境里,如果用的是Simscape Electrical的MMC模型,子模块内部信号默认不对外暴露,需要手动打开信号选择器。右键点击MMC模块,进入模块参数里的Signal Selector,把想要观测的电容电压、IGBT电流或门极脉冲信号勾选出来,再连到示波器或数据记录模块。
如果模型是自己搭建的子模块封装,建议从一开始就把关键信号引到封装的输出端口上。不要把所有信号都引出来,信号线太多会让模型混乱。我习惯只引出子模块电容电压、桥臂电流和门极控制信号三组,其余的驱动细节留在封装内部,需要的时候临时挂探头。此外,PSCAD里可以用Channel和Probe配合观测子模块信号,但需要注意信号名称的排序,多子模块批量导出时命名很容易对错号。
5.2 FPGA控制器调试中如何用Vivado拉取子模块信号
当MMC控制算法跑到FPGA上时,仿真场景就换成了HDL仿真或在线调试。很多控制板用Xilinx芯片,调试工具就是Vivado。这时说的“拉取子模块信号”,通常是指在I/O层或算法层抓取某个子模块的电容电压采样、排序使能信号、PWM脉冲和故障标志。
Vivado里最常用的是集成逻辑分析仪ILA。在Block Design中插入ILA核,把需要观测的内部信号连到ILA的输入端口;为了防止综合器把这些信号优化掉,要对关键信号添加(* MARK_DEBUG = "TRUE" *)综合属性,确保它们在netlist中保留。采样深度一般设1024到4096,采样时钟用系统时钟,触发条件可以选择PWM脉冲的上升沿或特定子模块电压越限事件。
实际调试中我遇到最多的问题是信号命名在综合后改变,导致ILA里看到的波形无法和源码对应。解决办法是在编写RTL时把关键信号统一加上有意义的前缀,比如sm_cap_v_0、sm_gate_0,并在XDC约束里不要把这些信号设置为don't touch,而是通过MARK_DEBUG显式保留。另外,ILA的资源占用不可忽视,观测信号数量过大时综合面积会显著增加,建议分批次拉信号,而不是一次全拉。
5.3 信号拉取后的数据整理与正确性验证
仿真或ILA抓到的原始信号往往是庞大的时间序列,直接对着波形看很难发现规律。我处理数据的流程是:先把波形导出成CSV,再用Python或MATLAB做统计。重点看几项指标:子模块电容电压的最大值、最小值和波动率;每个IGBT在一个工频周期内的开关次数;桥臂电流的二倍频分量幅值。这些统计数据可以直接用来和各模块损耗计算公式对接。
需要特别提醒的是,电磁暂态仿真里拉取子模块信号时,要留意仿真步长对开关损耗统计的影响。如果仿真步长太大,开关时刻的电压电流交叠区就体现不准,损耗计算结果会偏低。一般做损耗仿真时步长要压到微秒级甚至更小,而稳定性仿真可以用百微秒级步长,两种仿真的信号分析目的不同,不要混用。
6. 专业术语统计与同名概念辨析
6.1 电力电子MMC与存储MMC:同名异物的坑
在技术搜索时,MMC这个词会带来非常多的干扰。电力电子领域的MMC是Modular Multilevel Converter,模块化多电平换流器;而存储领域的MMC是MultiMediaCard,多媒体存储卡标准。搜索“MMC控制策略”得到的多数结果是换流器控制,但搜索“MMC无法创建管理单元”则会指向Windows的Microsoft Management Console管理控制台,和本文完全无关。
如果对MMC不熟悉,很容易被这类同名信息带偏。我在整理术语时会把搜索关键词限定为“MMC换流器”“模块化多电平”或者“柔直阀”,避免混入存储卡和操作系统的内容。反过来,如果你在搜存储卡相关技术时看到了大篇幅的IGBT和子模块拓扑,别怀疑自己,那大概率是因为两个领域共用了一个缩写。
6.2 高压大容量MMC研究高频术语速查表
| 缩写 | 全称 | 含义与使用场景 |
|---|---|---|
| MMC | Modular Multilevel Converter | 模块化多电平换流器,本文核心对象 |
| SM | Sub-Module | 子模块,MMC的基本功率单元 |
| HBSM | Half-Bridge Sub-Module | 半桥子模块,损耗最低,不具备直流故障清除能力 |
| FBSM | Full-Bridge Sub-Module | 全桥子模块,具备负电平输出能力,损耗较高 |
| CDSM | Clamp Double Sub-Module | 钳位双子模块,兼顾故障清除与损耗的折中拓扑 |
| IGBT | Insulated Gate Bipolar Transistor | 绝缘栅双极晶体管,MMC的主力功率器件 |
| NLM | Nearest Level Modulation | 最近电平逼近调制,大容量MMC常用调制策略 |
| CPS-PWM | Carrier Phase-Shifted PWM | 载波移相脉宽调制,子模块数较少时更适用 |
| PR | Proportional-Resonant Controller | 比例谐振控制器,常用于环流抑制 |
| THD | Total Harmonic Distortion | 总谐波畸变率,衡量输出电压波形质量 |
| DC fault ride-through | - | 直流故障穿越,拓扑选型的重要约束条件 |
| 冗余度 | - | 系统额外配置的子模块比例,影响可靠性与损耗 |
整理术语表这件事看起来琐碎,但对团队协作和文档沉淀很有价值。项目里如果每个人对SM、FBSM、NLM这些词的理解都有细微差异,评审和调试时就会反复解释,浪费大量时间。把术语统一成一张表放在设计文档开头,是我强推的团队习惯。
回到项目本身,我做这套研究时最大的体会是:降损控制永远要和器件应力、可靠性一起看,不能单纯追求效率曲线漂亮。曾经为了降低开关频率把均压排序的保持因子调得很大,仿真效率确实好看了,但一个子模块电容电压在负载突变时出现了明显偏置,差点触发过压保护。后来在保持因子中加入了电压偏差前馈,才把均衡性和开关次数同时兼顾住。
另外一个小技巧:做子模块拓扑对比时,不要只看满载效率,要跑一个负载率从10%到110%的扫描。很多拓扑在满载时损耗差距不大,但轻载时开关损耗占比完全不同,控制策略的适配性也不一样。把全负载段的损耗曲线拉出来,才能看到真正适合项目工况的方案。