1. 从两电平到模块化多电平:储能变流器为何必须换赛道
大概五年前做储能PCS项目时,我还在和两电平IGBT并联死磕:单机容量要往上走,器件并联均流、母线杂散电感、开关损耗这些问题一个比一个头疼。后来接触了MMC储能(模块化多电平变换器储能)方案,才意识到储能变换器的路线竞争,本质上不是"谁的管子更结实",而是拓扑结构能不能顺应大容量、中高压直挂、电池精细管理这几个趋势。今天这篇就围绕MMC储能、多电平储能、SOC均衡控制、两级式MMC这几个方向,梳理我这些年在样机调试和工程落地中积累的东西,希望能给正在做储能变流器选型或控制算法的人一些参考。
先解释一下MMC的基本长相:每一相有上下两个桥臂,每个桥臂由若干个结构完全相同的子模块串联而成,再串一个桥臂电抗器。绝大多数储能MMC的子模块是半桥结构,由两个IGBT、一个电容、一个旁路开关组成;如果要做故障穿越,也可以换成全桥结构,但成本基本翻倍。这样一串下来,交流侧输出电压的电平数等于单桥臂子模块数的两倍再加一,所以它天然是"多电平储能"的形态,谐波含量极低。更关键的是,每个子模块背后都可以挂一组电池——这才是储能专用MMC和高压直流输电用MMC最大的不同。
为什么储能这个场景特别适合MMC?最直观的理由是省变压器。常规储能电站走的是"低压PCS+升压变压器+中高压并网"的路线,变压器不仅要吃效率,还要占地、要维护,变压器偏磁和励磁涌流也是运维痛点。而MMC储能可以把子模块数量堆上去,让交流侧直接输出10kV甚至35kV电压,实现"高压直挂",整个电站可以省掉变压器环节。另一个被很多人低估的好处是模块化冗余:两电平变流器坏一个IGBT,整套系统就得停机;MMC储能坏一个子模块,旁路掉之后系统还能降额继续跑,检修窗口灵活得多。
但MMC也不是没有代价。子模块数量多,控制系统复杂度随之上升;电容电压均衡、环流抑制、SOC均衡控制这些问题都是两电平时代完全不用考虑的;电池直接挂在子模块电容上时,电容电压的二倍频纹波会直接影响电池寿命。所以做MMC储能,关键不在于"能不能把拓扑搭出来",而在于怎么控制好这几十上百个子模块,让它们既保持电压均衡,又能按SOC合理分配功率。下面我按自己的踩坑顺序,把架构选型、SOC均衡、调制与环流这三块分别展开说。
2. 单级式直挂与两级式构型:到底哪个更适合储能电池
MMC储能现在的工程实现有两种主流架构:单级式(电池直接并联在子模块电容上)和两级式(电池先经过DC/DC变换器,再接入子模块电容母线)。标题里提到的"两级式MMC",指的正是后者。这个选择不是拍脑袋,而是直接决定了系统效率、成本和SOC均衡控制的复杂度。
2.1 单级式MMC储能的优缺点
单级式MMC储能是先把HVDC那套MMC结构搬过来,然后把电池簇直接接到每个子模块的直流电容两端。这样做的好处是结构最简单、器件最少、效率最高——能量从电池到交流电网只经过一级变换,不考虑损耗的理想极限下效率可以做到99%左右。
但问题也随之而来:电池电压和电容电压必须匹配。以10kV/2MW的储能系统为例,相电压峰值约8.16kV,假设子模块额定电压取800V,一个桥臂大概需要16到18个子模块(具体计算后面会详细说)。如果你用单级式,那么每一簇电池的端电压就必须被约束在800V附近,电池串联节数基本被卡死,Pack设计自由度很低。更麻烦的是,电池电流等于电容电流叠加,而电容电流里含有二倍频纹波分量,这部分纹波会直接灌进电池,对电芯寿命很不利。为了抑制纹波,你得额外加大电容或者设计谐振支路,成本和体积又上去了。
2.2 两级式MMC储能的结构设计与选型逻辑
两级式MMC储能就是在电池和子模块电容之间插入一个双向DC/DC变换器。常见的前级拓扑是非隔离双向Buck/Boost,或者隔离型DAB(双有源桥)。用"两级式"命名,是因为能量从电池到电网经历了DC/DC和DC/AC两级变换,既然每一级都有损耗,整机效率肯定不如单级式高。
既然效率低,为什么还要用两级式?因为它给了你三个实实在在的好处:
- 电压解耦:电池电压不再被电容电压锁死,比如电芯串到400V,DC/DC就可以升到800V给电容侧供电,Pack设计回归到纯电池视角,不用凑变流器电压等级。
- 纹波隔离:DC/DC本身可以控制输入电流纹波,电池侧电流比较干净,这对电芯循环寿命是实打实的保护。
- SOC均衡下放:每个子模块的DC/DC可以独立调节输出功率,SOC均衡从"变流器调制层"下放到"DC/DC控制层",控制逻辑清晰很多。这种架构下,MMC那一级只需要稳住电容电压,SOC均衡交给前级就好;而在单级式方案里,SOC均衡必须靠调制和排序算法硬做。
结合我自己做项目的经验,两级式MMC特别适合电池容量衰减不一致、运维要求高的场景。你想想看,大电站几百簇电池,每簇老化速度不可能完全一致,单级式系统为了平衡这些差异,调制策略会变得极其复杂;而两级式只需要各DC/DC按SOC偏差微调电流指令,概念简单,调试也直观得多。
2.3 一个关于子模块数量的具体计算
做MMC储能,最先要回答的问题是"一个桥臂到底串几个子模块"。我拿10kV系统举例说明整个推导过程:
- 线电压有效值10kV,对应线电压峰值 (10\sqrt{2} \approx 14.14\text{kV}),换算成相电压峰值是 (14.14/\sqrt{3} \approx 8.16\text{kV})。
- 如果选定子模块电容额定电压为800V,那么理论上的最小模块数 (N_{min} = 8160 / 800 \approx 10.2),取整为11。
- 还要考虑IGBT开关过程的电压过冲、电容纹波、故障瞬间母线电压抬升等因素,通常留出1.25到1.4倍的电压裕度,于是模块数变成 (11 \times 1.3 \approx 15)。
- 再加上1到2个冗余模块,用于单模块故障旁路后系统不降额,最终取N=16或17是比较合理的。输出电平数就是 (2N+1 = 33) 或35个,交流侧谐波非常小,往往只需要很小的滤波电抗就能满足并网要求。
这个计算过程每个参数都有实际意义,不是拍脑袋。电压裕度取太大,模块数多、成本高、损耗大;取太小,故障时电容会过压,IGBT有炸管风险。我见过有人为了省成本把N取到12,结果预充电过程中电容过压,IGBT直接击穿,教训相当深刻。
下面是两类架构的对比,方便快速选型:
| 维度 | 单级式MMC储能 | 两级式MMC储能 |
|---|---|---|
| 系统效率 | 高(一级变换) | 约低1~2%(两级变换累积) |
| 硬件复杂度 | 低 | 高(多一套DC/DC及其控制) |
| 电池Pack设计自由度 | 低(电压被电容母线锁定) | 高(电压等级解耦) |
| 电池纹波 | 二倍频纹波直接进入电池 | 纹波由DC/DC吸收,电池电流干净 |
| SOC均衡控制难度 | 高(依赖调制层算法) | 低(前级DC/DC按SOC独立调功率) |
| 单模块故障影响 | 旁路后可继续运行,但均衡压力变大 | 旁路后DC/DC闭锁,系统可能需降额 |
| 典型适用场景 | 追求效率、电池一致性极好的项目 | 电池容量离散大、长寿命优先的项目 |
3. SOC均衡控制:从"电容均压"到"电池能量公平"的跨越
MMC储能最核心、也最容易翻车的地方就是SOC均衡控制。很多刚接触MMC的同学会把电容电压均衡和电池SOC均衡混为一谈,实际上两回事:电容电压均衡是毫秒到秒级的电气量控制,SOC均衡是分钟到小时级的能量管理。前者控制不好会炸模块,后者控制不好会让整簇电池加速老化。两条时间尺度相差悬殊的控制目标,在同一个拓扑里同时实现,这才是MMC储能算法最难的地方。
3.1 SOC不一致的来源
先看SOC失配从哪里来。电池出厂时容量分布在天然有差异,同一个电池簇内电芯温度场不均匀导致自放电率不同,再加上服役期充放电次数不同,内阻和容量衰减速度也不同。这些因素叠加起来,各子模块所带电池簇的SOC会随着循环次数不断发散。如果不做任何干预,就会出现一个经典场面:整站由于某几个低SOC模块触底而停止放电,其余模块明明还有电却放不出来——电站实际可用容量被"木桶效应"砍掉了一截。
在单级式MMC里,电池簇直接挂在子模块电容上,子模块的功率基本由调制层决定。想要改变某个子模块的充放电功率,就只能从调制层下手,要么调整参考电压幅值,要么在排序选择时做文章。而在两级式架构里,问题被解耦了:DC/DC负责把电池功率"泵"到电容母线,MMC只需要维持电容电压,SOC均衡完全可以通过DC/DC的电流指令闭环完成,直观得多。
3.2 单级式架构下的SOC均衡策略
单级式MMC的SOC均衡一般分三层来做:
- 相间均衡:三相之间SOC不一致时,通过注入零序电压,把能量从高SOC相转移到低SOC相。零序电压在三相系统里不产生负序电流,只改变各相功率分配,是相间均衡最常用的手段。
- 上下桥臂均衡:对于同一相上下桥臂的SOC差异,可以在桥臂电流中注入直流偏置(也就是直流环流分量)。上下桥臂功率本来就是互补的,注入直流环流之后,一个桥臂多出力,另一个桥臂少出力,就能慢慢把SOC拉齐。
- 桥臂内子模块级均衡:这部分通常靠排序法实现,也是大家最熟悉的。核心策略很简单:充电时优先投入SOC最低的子模块,放电时优先投入SOC最高的子模块。要排序就要有SOC数据来源,一般由电池管理系统通过CAN上报,或者本地估算后经光纤上送主控。
做子模块级SOC均衡时必须注意开关损耗和均衡速度的平衡。每两个控制周期就重新排序一次,IGBT开关频率会高到吓人;排序间隔拉太长,均衡速度又跟不上。我常用的做法是引入滞回窗口,只有SOC偏差超过一定阈值(比如2%~3%)才触发重新排序,正常运行时保持上一次的投切状态,这样既能保证均衡效果,又把平均开关频率压低了。下面给一段简化的排序选择伪代码,供参考:
// 每个桥臂子模块数:N // 桥臂电流方向:i_arm > 0 表示向交流侧放电 // soc[i]:第i个子模块的SOC,0~1 // cap[i]:第i个子模块电容电压 for each control period: if (need_reorder) { // SOC偏差超过阈值或定期触发 indices = [0..N-1] sort by soc ascending // 默认按SOC升序 if (i_arm > 0) { // 放电工况 // 优先投入SOC高的模块 则选择sort后SOC最大的M个投入 select top_M_by_soc(indices, M) } else { // 充电工况 // 优先投入SOC低的模块 则选择SOC最小的M个投入 select bottom_M_by_soc(indices, M) } 输出子模块投切指令及电容器(SOC)均衡修正量 }这段代码背后还有一个隐含问题:排序依据如果只用SOC,电容电压均衡就没人管了。工程上更稳妥的做法是给排序权重加权,比如 (w_1 \cdot (soc_i - soc_{avg}) + w_2 \cdot (v_{ci} - v_{c_avg})),两个目标一起排,再依靠桥臂电流方向和权重符号来判断谁先投入。权重要根据工况动态调整:在电池浅充浅放时SOC变化慢,电容电压权重可以大一些;在电池大电流充放时SOC权重相应提升。这些细节决定了系统在极端工况下会不会抖。
3.3 两级式架构下的SOC均衡思路
两级式MMC储能做SOC均衡就舒服多了。因为每个DC/DC都是一个独立可控功率源,SOC高的模块就让它的DC/DC多放电、少充电,SOC低的模块反过来。控制回路从上到下分别是:
- 主控制器计算系统总功率指令,下发给各相/各桥臂;
- 各DC/DC根据本簇SOC相对桥臂平均SOC的偏差,在总功率指令基础上叠加一个修正量 (\Delta P_i = k_p (soc_i - soc_{avg}))。
- 修正量经过限幅后转换为DC/DC的电流参考值,电流内环闭环控制。
这里有个实用技巧:修正系数(k_p)不能太大,否则SOC低的模块在放电时会主动减少出力,导致它对应的子模块电容电压下跌,MMC侧为了稳住电容电压又不得不从电网拉功率,造成系统内部功率倒灌。实际调试中我会把SOC修正环路的带宽压到极低,大约0.01~0.05Hz,只让它做"长时间尺度微调",而把瞬态功率平衡完全交给DC/DC电流内环和MMC功率环去处理。带宽低一点,动态响应慢一点,但系统稳定,不折腾。
4. 调制策略、环流抑制与电容电压均衡的三角关系
MMC储能不是把SOC均衡做好就能交货的。调制策略、环流抑制、电容电压均衡这三件事在单个控制周期内相互耦合,处理不好就是连环翻车。我在样机调试阶段最崩溃的一次,就是SOC均衡参数没调好,结果环流波形先乱了,电容电压波动随之放大,最后整机过流保护跳掉。所以这一节把这三个问题放在一起讲,重点说清楚它们之间的因果关系。
4.1 载波移相PWM和最近电平逼近怎么选
MMC储能主流的调制策略有两种:载波移相PWM(CPS-PWM)和最近电平逼近(NLM)。
CPS-PWM的思路是把每个桥臂的N个子模块当成N路并联的PWM支路,每路载波相位错开 (2\pi/N),叠加后等效开关频率变成原来的N倍,所以可以用较低的IGBT开关频率获得很好的谐波性能。它的优势是各子模块开关频率一致,损耗均匀,电容电压波动小,适合子模块数N在4到20之间的储能系统。
NLM的思路则完全不同:它把目标正弦波按照电容电压量化成若干台阶,每个瞬间只计算"该投入多少个模块",并不关心具体投入哪几个。N=16时,NLM的模块平均开关频率可能只有几十赫兹甚至更低,开关损耗极小;但谐波质量在低载波比下不如CPS-PWM,往往需要增大桥臂电抗来平抑。一般来说,N超过20的高压大容量场景更偏向NLM,而储能系统模块数没有高压直流输电那么多,我见到的工程样机普遍选CPS-PWM。
4.2 环流从哪来,怎么压下去
环流是MMC绕不开的东西。三相桥臂电压如果完全对称,理论上不会产生环流;但只要有一点点不对称,就会有二倍频负序环流在三个桥臂内部流动。它不经过负载,只增加桥臂电流有效值和器件损耗,还会让电容电压波动更大。储能场景下,因为电池SOC差异会导致各相输出功率不平衡,环流问题往往比普通MMC更明显。
我常用的环流抑制方案是准比例谐振控制,谐振点设在 (2f_1)(两倍基波频率)。在旋转坐标系下做的话,需要提取 (i_{2d}) 和 (i_{2q}),用PI调节器分别压到0;静止坐标系下用PR控制器更直接,调一个参数就能压住二倍频。关键在参数整定:谐振控制器的带宽要覆盖电网频率偏移范围,否则电网频率稍微漂一点,抑制效果就大打折扣。
有个容易被忽视的点:桥臂电抗器的感值选择直接影响环流抑制器的负担。电抗太小,环流幅值大,控制器容易饱和;电抗太大,成本、体积和电压降都上去了。工程上桥臂电抗的取值通常在0.05~0.15p.u.之间,具体要结合子模块电容容值和开关频率一起优化。环流抑制做完之后,你去看桥臂电流波形,应该看不到明显的二倍频包络,这是验收的基本标准。
4.3 电容电压均衡和调制策略的联动
CPS-PWM本身有一套天然的电容器电压均衡逻辑:因为每个子模块都会均匀地承担PWM开关,从长平均来看电容电压有自平衡趋势。但这只是"缓慢的趋势",实际运行中由于IGBT参数差异、模块损耗不一致、上下桥臂功率不对称,电容电压仍然会慢慢漂移。所以在CPS-PWM基础上,我还会额外加一级排序微调,或者叠加一个电容电压偏差修正量到调制波上,让偏高的模块少充点电。
这里必须提醒一个坑:排序微调如果做得太频繁,子模块投切逻辑会和CPS-PWM的载波相位发生错位,导致交流侧波形出现额外的跳变,谐波反而恶化。所以排序用的触发周期最好和控制周期同步,并且在同一个时间基准点更新投切指令,不要在控制周期中途动态换模块。通信链路足够快的前提下,我会把排序周期固定在5~10个控制周期一次,既稳得住电容电压,又不会干扰调制波形的连续性。
还有一件事和NLM有关:如果选NLM,投入模块数 (N_{up} = round(v_{ref}/v_c)) 必须和电容电压实时跟随。电容电压一旦波动,台阶就会抖动,产生低频谐波。所以NLM必须有独立且快速的电容电压均衡环,常见手段是先按电容电压排序,再根据桥臂电流方向决定投入模块,这和SOC排序逻辑非常相似,只是时间尺度更短。
5. 从仿真到样机的工程细节清单:那些容易翻车的环节
控制算法原理说完了,最后一个部分写给准备做样机或做系统设计的朋友。很多问题在仿真里根本看不见,一上硬件就原形毕露。我把这些年踩过的坑整理成一份工程细节清单,按时间顺序讲,基本就是一台样机从合闸到满载的必然流程。
5.1 预充电和启动时序
MMC储能系统合闸最怕的事情就是电容瞬间充电电流过大。系统刚上电时,所有子模块电容电压都是零,如果直接合交流侧断路器,相当于短路,冲击电流能炸熔断器。常规做法是带限流电阻预充电:交流侧先通过限流电阻和二极管不控整流路径给电容充电,等电容电压升到接近线电压峰值后再闭合旁路接触器,把限流电阻短接掉,让变流器进入可控状态。两级式结构还要记得:DC/DC侧也要做软启动,防止电池簇突然接入时电容再次冲击。启动时序一定要写清楚状态机,每个状态要判据完备——最常见的事故就是旁路接触器还没完全闭合,PWM就解锁了,接触器触点之间拉弧,整套功率单元报废。
5.2 通信架构与同步
MMC储能的一个子模块就是一个独立的功率单元,主控和几十个子模块之间的通信必须有严格的时间同步机制。工程主流是用光纤通信,一个模块一根光纤,上行传状态、下行传指令。这里我要特别强调"同步"不是一句空话:如果各个子模块收到PWM指令的绝对时间不一致,哪怕只差几十微秒,交流侧波形也会出现小的台阶毛刺,均压效果和环流抑制都会变差。我见过一个项目,换了非指定型号的光模块,光纤收发延时多了约5微秒,结果环流增加了一倍多,查了半天才定位到是光模块批次问题。所以通信链路的延时测试一定要做全温域测试,不能只看常温数据。
5.3 均压电阻和电容参数
子模块直流电容两端必须并联均压电阻,否则由于IGBT断态漏电流差异和电容自身绝缘电阻不一致,电压会缓慢漂移。均压电阻的阻值选择是个平衡:阻值太小,损耗大,白白浪费电能;阻值太大,均压效果差。工程上通常按每个子模块电容的电压纹波电流和耐压,把均压电阻的总损耗控制在系统额定功率的千分之几以内。同时,电容容值的选择要结合电容电压波动率的约束来算,一般要求电容电压波动在±5%以内,再依据桥臂电流积分算所需电容量,别忘了留温度老化裕量。
5.4 一个真实排错过程:某相电流尖峰定位
最后分享一个我印象很深的排错案例,帮助大家理解这类系统的调试思路。样机调试时,A相交流侧电流总是固定位置出现尖峰,载波频率越高尖峰越明显。按排查链路走:
- 先看三相电流波形和环流波形,确认尖峰只在A相桥臂内部出现,排除电网侧干扰;
- 检查A相所有子模块电容电压,发现其中第7个模块的电容电压比其他模块低了约15%,怀疑这个模块存在异常;
- 回看第7模块的上行状态字,发现它的旁路继电器状态反馈一直为"闭合",但实际指令根本没有下发过旁路指令;
- 进一步追溯,发现是子模块控制板的旁路继电器逻辑在启动自检阶段被误触发,光纤通信复位后状态没有恢复,导致该模块半旁路运行,交流侧输出台阶畸变。
这个案例说明MMC储能的调试,不能只看着顶层控制算法,也要把子模块底层的状态机、继电器逻辑、通信协议全部纳入联调范畴。仿真里永远仿不出一个自检误触发,只能靠现场一项项排查。
还有一个常被忽略的细节是SOC估算精度。MMC储能的SOC均衡效果上限取决于SOC估算的一致性,如果各模块SOC估算误差在5%以上,均衡算法再好也是白搭。所以电池管理系统上送的SOC必须经过统一校准,建议定期用开路电压法离线修正一次安时积分累积误差。我在项目里会让BMS在上电静置后做一次OCV修正,将估算误差压到2%以内,再交给上层均衡算法去处理,效果比单纯加大均衡系数好得多。
写在后面的一点体会
做了几年MMC储能,我的核心体会是:这个方向真正难的从来不是某个单一算法,而是把拓扑、调制、通信、电池管理串成一个能稳定运行的系统。两级式架构之所以在工程上受欢迎,本质就是因为DC/DC把控制解耦了,让SOC均衡和MMC电容电压均衡各司其职。如果你刚开始接触,我建议先在仿真里把单级式的SOC排序逻辑吃透,再过渡到两级式的解耦控制,一步一步来,比直接上全场联调要稳得多。等到样机点亮那一刻,你会觉得前面所有的坑都值得。