做并网逆变器的朋友应该都有一种体会:在低压小功率应用里,两电平拓扑加一只LCL滤波器,几乎就是标准答案;但一旦把电压等级抬到中压、把容量做到兆瓦级,原来的那一套就开始拧巴。器件串联均压问题、开关损耗问题、滤波电感体积问题,每一个都够喝一壶的。这时候三相MMC并网逆变器就进入了视野——模块化多电平换流器,英文全称Modular Multilevel Converter,它不是什么新概念,但在中压大容量并网场景里,它确实是绕不开的一条技术路线。
三相MMC并网逆变器是什么?简单说,它把每个桥臂拆成了一串可以独立控制的子模块,用“数量换波形质量”的思路,从根本上绕开了高压大功率下直接串联器件带来的均压难题。它能解决什么?它能让你在10kV甚至35kV的电压等级上,不依赖工频变压器就能直接并网,还能输出接近正弦的电压波形,谐波小到离谱。适合谁看?如果你是做电力电子变流器开发的工程师、研究新能源并网方向的研究生,或者正在评估中压直挂变流器方案的产品经理,这篇内容值得你花十分钟读完。
这篇文章我会把三相MMC并网逆变器从拓扑选型、调制策略、控制设计到仿真与样机调试的完整链路拆开讲,重点不是堆公式,而是告诉你每一步为什么这么做、实际工程里会卡在哪个坑上。
1. 为什么做三相MMC并网逆变器
1.1 中压并网遇到的两电平瓶颈
先说说传统两电平拓扑在中压并网场景下有多难受。假定你要做一个6kV/2MW的并网逆变器,直流母线电压得超过10kV,这个电压等级下单个IGBT模块根本扛不住,只能走器件串联这条路。器件串联就要解决静态均压和动态均压,静态均压要并联大电阻,动态均压要设计吸收电路,IGBT的开关特性稍有差异,关断瞬间的电压分配就可能失衡,这是很头疼的事。
就算你咬牙把串联均压问题解决了,高频开关带来的损耗和电磁干扰也难以接受。两电平拓扑下,开关器件直接承受10kV母线电压,dv/dt很高,输出还要靠LCL滤波器来压谐波,中压LCL的磁芯体积大到令人绝望,铜耗也夸张。整个系统做下来又贵又大,效率还上不去。
MMC的思路完全不同。它不硬扛高压,而是把一个桥臂的10kV电压拆到N个子模块上,每个子模块只承受10kV/N的电压,用低压IGBT就能搭出中压系统。2MW的并网逆变器,桥臂用十几二十个子模块串联,每个子模块用1700V或者3300V的IGBT就行,避开了器件串联均压这个老大难。
1.2 MMC能带来哪些实质性收益
从结果上看,MMC至少带来四个层次的收益。第一是波形质量,每个桥臂几十个子模块轮流投切,输出电压的阶梯数非常多,等效开关频率远高于实际器件开关频率,THD可以做得很低,对滤波环节的依赖大幅减小。
第二是模块化带来的工程价值。子模块从结构到驱动板到控制板,全部标准化,坏了直接旁路掉,不用停机拆桥臂。工程人员维护起来很友好,而且扩容时只要增加子模块数量,不用重新设计整个功率柜。
第三是四象限运行能力。MMC天然是四象限变流器,有功无功双向流动,电网电压跌落时还能做无功支撑,这在中压并网和柔性输电场景里是硬指标。
第四是无需工频变压器。传统中压并网方案要先把逆变器输出升压到电网电压,工频变压器又重又贵。MMC可以在直流侧直接接中压直流母线,交流侧通过桥臂电感并网,省掉了变压器这个又大又娇气的环节,系统效率能提升好几个百分点。
当然,MMC也有它自己的烦恼:子模块电容电压波动、桥臂环流、上百个子模块的均压调度,这些是两电平拓扑没有的新问题。后面我会逐个展开。
2. MMC拓扑的工程化拆解
2.1 子模块拓扑:半桥还是全桥
MMC里有两种最常用的子模块类型,半桥子模块和全桥子模块。半桥子模块由一个IGBT半桥加一个直流电容组成,能输出两种电平:投入时输出电容电压,旁路时输出零。全桥子模块由四个IGBT加一个电容组成,能输出的电平更多,还能输出负电压,在直流故障穿越场景里有优势。
并网逆变器应用里,如果电网侧没有直流故障清除的硬性要求,半桥子模块是更经济的选择,器件少一半,成本低很多,控制也简单。我见过一些工程团队在评估阶段纠结要不要上全桥,最后因为直流侧是独立电源,没有双向短路风险,回到半桥方案。但如果你做的是柔性直流输电或者直流配电网这类系统,全桥子模块的直流故障清除能力就是刚需了,宁可多花器件成本,也要保证故障时能靠子模块自身来清掉短路电流。
选型之外还有一个细节容易被忽略:子模块里的电容,选用薄膜电容还是电解电容。中压MMC的子模块电容电压通常在2000V以下,薄膜电容的纹波电流能力远强于电解电容,寿命也长得多,我自己的实际使用体会是,哪怕价格贵一些,也尽量选薄膜电容。电解电容在高温和纹波电流叠加下,老化速度快得超出预期,后期运维换一批电容的成本其实不比当初多花的差价钱少。
2.2 子模块电容和桥臂电感的取值逻辑
子模块电容的取值直接影响电容电压波动率。波动率控制在一个合理范围内很重要,比如控制在5%到10%之间,太高会导致子模块IGBT电压应力过大,太低则电容容值巨大,成本和体积都受不了。
电容容值的工程估算可以利用能量守恒的概念去推。系统传递的功率越大、桥臂子模块数越少,单颗电容需要储存的能量就越多。另一个更实用的是电容储能常数法,定义在额定功率下电容储能与系统容量的比值,这个值在10kV MMC工程里通常取30ms到50ms。基于这个储能常数,你就能倒推出单颗电容的容值。
举个例子,一个10kV/5MW的系统,直流母线电压大概20kV,每桥臂20个子模块,单颗电容的额定电压大约1kV。按40ms储能常数算,总储能是200kJ,除以60个桥臂子模块,每个子模块储能约3.3kJ,再用0.5乘以电容容值乘以电压平方倒推,单颗电容容值差不多6600uF。实际选型会留一点裕量,取7000uF左右。
桥臂电感的作用是抑制环流、限制故障电流上升率,同时和电容构成滤波结构。工程上通常取0.1到0.15 p.u.的标幺值。以5MW/10kV系统为例,基波阻抗大约20欧姆,0.12p.u.就是2.4欧姆,对应的桥臂电感约15mH。这个取值不能说拍脑袋,太高会限制功率传输和响应速度,太低则环流压不住。
2.3 调制策略的选型对比
MMC的调制策略主要有两大类:载波移相PWM和最近电平逼近NLM。
载波移相SPWM是把N个子模块的三角载波错开固定相角,用同一个正弦调制波去比较,各子模块轮流高频动作。它的优点是等效开关频率很高,输出电压谐波小,适用于子模块数量不算特别多的场景。我做过一台每桥臂10个子模块的10kV样机,用的就是载波移相,效果确实能打,单模块的开关频率只要几百赫兹,等效输出频率却有几千赫兹。
NLM的思路则是根据参考电压的瞬时值,算出一个最接近的电平数,直接决定投多少个子模块,每个子模块在单个周期内只动作一两次,开关损耗极低。子模块数量越多,NLM的波形质量就越好。缺点是动态过程中电平数跳变时,电容电压波动会更明显,需要配合排序算法做均压。
从我实际调试的经验看,如果子模块数量在30个以下,载波移相SPWM配上电容排序平均算法,控制复杂度和波形质量更平衡;如果每桥臂子模块超过50个,比如柔性直流输电的场合,NLM就是绝对主流。做并网逆变器的话,子模块数量一般不会太多,载波移相会省去很多调NLM步进电平跳变的麻烦事。
3. 控制系统的设计与实现
3.1 锁相环与并网同步
三相MMC并网逆变器的控制核心,是让输出的电压与电网电压保持幅值、频率和相位的同步,锁相环就是这个同步环节的基石。工程里最常用的是基于同步旋转坐标系的SRF-PLL,把三相网压做Clark变换得到αβ分量,再做Park变换得到dq分量,用PI控制器把q轴分量压到零,输出就是电网角度。
实际调锁相环的时候,有几个坑值得说一下。第一,电网电压有背景谐波时,SRF-PLL的锁相角度会带上纹波,导致电流指令含有同频谐波。解决思路是在PLL的反馈路径上串联陷波器,滤掉主要谐波分量。第二,电网不平衡时,负序分量会让锁相角度抖得厉害,这时候要用双同步坐标系解耦锁相环,或者加陷波器滤除二倍频分量。我实际测过,电网单相跌落20%的情况下,普通SRF-PLL还能勉强锁住,但角度纹波明显变大,电流畸变得厉害,换成双同步坐标系PLL之后才稳定下来。
PLL带宽的整定常被忽视。带宽取得高,锁相快,但对电网畸变敏感;带宽取得低,抗扰好,但动态响应慢。工程上我一般取50到80Hz,再配合前馈补偿,兼顾动态和稳态。
3.2 电流内环与电压外环的整定
并网逆变器的控制架构,主流是电压外环加电流内环的双闭环。电压外环控制直流母线电压,输出作为有功电流的给定;电流内环调节网侧电流,输出作为调制波。两个环的时间尺度要拉开,电流内环带宽一般取200到500Hz,电压外环带宽取10到20Hz,保证内外环不发生交互振荡。
电流内环整定要用被控对象的数学模型来推导。在dq坐标系下,并网电感上有交叉耦合项,就是所谓的ωL项。如果不做解耦,d轴和q轴的电流指令会互相干扰,动态会变差。控制器里要做前馈解耦,把解耦项和电网电压前馈项一起加进去。电网电压前馈可以大幅提升抗电网扰动能力,这是我在调试中发现最直接有效的一招。
整定参数的时候,建议从仿真开始,把LC滤波器的谐振频率算准,再按典型PI整定公式初算Kp和Ki。实际调试时,Kp从小往大调,观察电流波形逐步逼近指令值的响应速度和超调,Ki则影响稳态误差,调过之后电流的稳态波形会更平直。一个常见问题是谐振峰没压住,电流波形出现振荡,这时候要用有源阻尼,修改电流内环的反馈路径,把谐振峰的增益压下去,这是MMC并网调试中我碰到最多的现象之一。
3.3 电容电压均衡与环流抑制
MMC的电容电压均衡问题,本质上是各个子模块的电容充放电时间不完全一样,导致电压发散。解决办法是靠调制环节重新分配各子模块的投入时间。
我实际最常用的方法是电容电压排序法,配合载波移相PWM使用。每个控制周期先把所有子模块的电容电压做排序,再根据桥臂电流方向决定投切策略。桥臂电流对电容充电时,优先投入电压较低的子模块;放电时,优先投入电压较高的子模块。这样电压高的多放电、电压低的多充电,形成负反馈,电容电压自然就收敛了。
排序算法虽然简单,但工程实现里有几个细节要处理好。排序周期太短则占用控制器算力太多,太长则均压效果变差,我一般取PWM周期的二分之一作为排序周期。另外,排序只能决定哪些子模块投入,具体哪个子模块对应的PWM脉冲还要做轮换,不然总让同一个子模块承担开关动作,IGBT损耗不均,个别模块过热。
环流是怎么回事?三相桥臂之间的电压差会在桥臂内部产生环流,这个环流只在三相换流器内部循环,不进电网,但是会额外增加桥臂电流有效值,带来附加损耗和子模块电容电压波动。环流的频率成分主要是二倍频负序。抑制环流的实用思路是在控制环里增加一个环流抑制内环,在旋转坐标系下把二倍频负序环流分量作为被控量,用PI控制器压回零。这个环流抑制环的带宽取几十赫兹就够了,不需要太快,带宽太高会跟主电流环发生耦合,反而是好心办坏事。
4. 从仿真到样机的实操路径
4.1 仿真模型搭建的主要环节
做MMC并网逆变器的仿真,很多团队直接用MATLAB/Simulink里的Simscape Electrical搭,还有用PSCAD的。我用得最熟的是Simulink,因为控制逻辑部分用C代码封装成S-Function,可以直接复用到DSP工程里,省去转写代码的麻烦。
仿真模型的搭建范围,我一般建议先搭单相MMC验证基本调制和均压逻辑,再扩展到三相。直接搭三相模型,一旦出问题很难排查是哪个环节的错。单相模型跑通之后再扩展三相,加上PLL和双闭环控制,再逐步加入环流抑制模块,每一步都验证一个功能点。仿真速度上,载波移相SPWM方式下,每个PWM周期仿真步长取1us,20个子模块跑三相模型,模型速度还是能接受的,比NLM方式的离散化仿真要快。
在仿真里要注意几个容易出问题的地方。桥臂电感要设成非理想模型,考虑一下饱和特性和寄生电阻,不然仿出来的环流抑制效果比实际样机好一大截,误导后续调试策略。子模块电容的等效串联电阻ESR也要设置,不然电容电压波动率仿得比实测小很多。仿真和样机的差异,最后必然要用实测数据来修正,仿真无法代替样机,但能大幅提高样机一次成功的概率。
4.2 硬件平台搭建与调试顺序
硬件平台的搭建,核心是功率柜、控制柜和采样系统的配合。功率柜里放子模块、桥臂电感和散热系统,控制柜放主控制器、调理板和光纤通信板。中压场景下,采样信号和功率回路之间必须用光纤隔离,这是安全红线,不能省。
调试顺序是我强烈建议严格遵循的。
第一步是单板测试,把每种子模块、采样调理板、光纤通信板单独上电,验证输出电压、采样通道和通信字节流都是对的。第二步是低压环流测试,把三相桥臂短接或者接到小电感上,不加直流母线电压,手动发脉冲,观察桥臂电流和子模块电容电压是否能维持稳定。第三步是低压并网试验,用调压器把直流母线电压降到安全范围,比如100V级别,做并网功能验证,这个阶段主要验证PLL锁相、电流环跟踪和环流抑制的逻辑是否工作。第四步才是逐步升压到额定值做额定功率试验。
我踩过最大的一个坑是在第二步低压环流测试阶段,发现有一个子模块的光纤通信误码率特别高,导致它的PWM脉冲信号偶尔缺失,电容电压比其他子模块明显低一截。排查下来是光纤头装配工艺问题,插芯端面被污染,清洁后重新装配就正常了。这种问题在仿真里永远不会出现,但实际工程里它往往才是决定项目进度的关键。
5. 常见问题与排查技巧实录
5.1 环流异常振荡
现象描述是:三相MMC并网运行正常,但桥臂电流波形明显出现中频振荡,振荡频率大概几百赫兹。排查时先确认是不是环流抑制环没起作用,把环流波形单独拉出来看,如果二倍频分量没有压到指定值以下,问题基本就锁定了。
我遇到过一种比较隐蔽的情况:环流抑制环的参数在仿真里调得挺好,但样机上就是不稳定。后来发现是采样延时和控制器计算延时导致的相位裕度不足。环流被控量的采样有一个拍或两拍的滞后,在高带宽的时候,这个滞后的负相位贡献会把原本的稳定裕度吃掉。解决方法是降低环流抑制带宽,同时用相位补偿环节,把滞后对应的相位补回来一些。这个需要用示波器逐点比对实测环流的极性和相位,配合控制器里的相位补偿系数来标定。
另外,桥臂电感饱和也会引起环流振荡。电感的磁芯截面积选小了,在大电流工况下电感量骤降,环流抑制能力锐减,表现为特定功率点以上才出现振荡。排查方法简单,用逐次增加输出功率的办法,记录环流幅值的变化趋势,如果功率到某个点之后环流突然变大,就要怀疑是电感饱和,用电流探头加电桥复查电感量随直流偏置的变化。
5.2 电容电压发散
电容电压发散的排查思路,先区分是单相问题还是三相问题。如果只是A相桥臂的电容电压发散,其他两相正常,优先怀疑A相的采样链路或驱动链路。具体操作时,我会把A相桥臂各子模块的电容电压和PWM脉冲录波对比,看是采样值乱跳还是PWM脉冲缺失导致子模块长投入或长旁路。
如果是三相都发散,问题大概率出在均压排序逻辑上。排序逻辑里最容易出错的是桥臂电流极性的判定时标错,导致充电时投入了高电压子模块,放电时投入了低电压子模块,成为正反馈,电压越拉越偏。这个逻辑在仿真里很容易验证,但样机上需要特别注意电流极性的采样方向,和我调试中用钳形电流表测到的实际方向保持一致,看起来简单的事,反了的话整个桥臂电压直接崩掉。
还有一种情况是排序周期设置得太长,导致均压响应跟不上电压波动。把排序周期缩小到PWM周期的二分之一甚至四分之一,基本都能改善。代价是控制器计算负担加重,我用的是主频不高的MCU,排序周期收到PWM周期的四分之一后,CPU占用率已经接近满载,后面不得不把冗余逻辑精简掉才跑得过来。这也是实际工程和纯学术方案最不一样的地方。
5.3 并网冲击与预充电设计
MMC并网和两电平逆变器不同,它的直流母线电压是由每个子模块的电容电压累加出来的。上电瞬间如果直接合闸,桥臂电流会对电容形成巨大的冲击电流,严重时直接把IGBT打穿。标准做法是配置预充电回路,先把子模块电容充到接近额定电压的水平,再切到正常运行模式。
预充电回路的设计思路一般是串限流电阻或电感,在电网侧合闸,利用不控整流原理给子模块电容充电。充电到大概额定电压的一半以上之后,再切换到高频控制,由正常控制环把电压拉满。限流电阻的阻值选择有个平衡:太大,充电时间拉得很长,一小时都充不满;太小,冲击电流照样大,失去限流意义。我实际项目里用的是按额定冲击电流不超过1.5倍额定电流来反推电阻值,充电时间控制在几十秒以内,效果比较理想。
调试预充电时还要注意一个实际问题:预充电完成后,切换到正常控制模式的那一瞬间,如果PLL还没完全锁定电网相位,合闸脉冲可能产生冲击电流。我的处理办法是:预充电一结束,先只发零电流指令,等PLL锁定后再把电流指令切到目标值,中间加一个软启动斜坡,斜坡时间大概几百毫秒。这样能把合闸冲击压到一个很低的水平。这套顺序我在样机上反复验证过,稳定可靠,值得作为标准流程固定下来。
5.4 通信与同步延时问题
MMC有几十上百个子模块,PWM脉冲的生成通常不在主控板上,而是由子模块的本地驱动板根据来自主控的命令来执行。这就引入了通信延时,而且不同子模块的通信延时不可能完全一致。
通信延时带来的直接后果是,各子模块的实际投切时刻和理论计算时刻有偏差,导致输出电压波形出现少量畸变,严重时还会加剧环流。我在调试后期遇到过这种情况:波形整体看着不错,但谐波分量比仿真预估高了一截,逐项排查下来,发现有个别子模块的通信延迟比其他子模块大出将近一个PWM周期。
解决思路分两层。一是在通信协议上做同步机制,每帧指令里携带序号字,接收端可以识别乱序和丢失的帧,丢帧超过阈值就强制上报故障。二是在控制器侧做延时补偿,把通信延时的平均值作为常数补偿进调制波的相位里,减小偏差。实测下来,配合光纤通信的同步采集技术,把子模块之间的触发时差缩小到1us以内,谐波指标就能恢复到仿真水平。
有一件事必须强调:子模块的故障保护逻辑一定要放在本地,不能依赖主控端来判断和响应,不然一两毫秒的通信往返时间足够让故障电流把子模块毁掉。每个子模块的驱动板都应该有过压、欠压、过流和过温的本地保护功能,触发后直接闭锁PWM,同时上报状态字。这套机制我是在一次子模块IGBT损坏事故之后才深刻体会到的,当时就是依赖主控端做保护判断,通信延时导致保护动作晚了那么一点点,IGBT就烧了。从那以后,所有项目我都坚持本地保护优先原则。
最后分享一点小经验
做了几年MMC之后,我的一个强烈体会是:仿真和样机之间隔着一条很宽的河,不下水永远不知道水有多深。仿真能帮你把拓扑、控制逻辑和参数整定的方向定下来,但EMC问题、通信可靠性、功率器件温升、工艺装配误差这些,只有在样机上才会露出真面目。做MMC项目一定要把调试时间预留足,特别是低压环流测试阶段,宁可多花两三个星期一步步验证每个子模块的通信和均压表现,也不要急着上高压。中压系统不像低压样机那样可以随便炸管子,一次炸管可能就是一个桥臂甚至整个功率柜的损失,时间成本和物料成本都伤不起。
下一阶段如果想扩展,建议在环流抑制策略上深入研究循环换流式的主动阻尼控制,或者结合机器学习做子模块故障预测,这两块都是目前学术界和工业界都很活跃的方向。不过这些都是后话,先把眼前这台样机调试稳,把每个子模块的脾气摸清楚,比什么先进算法都来得实在。