MMC两种调制策略仿真详解:交流3000V直流5000V整流与20子模块实现
先说点实际的。看到“模块化多电平变换器MMC两种调制策略实现交流3000V-直流5000V整流仿真单桥臂二十子模块”这个标题我第一反应是这又是一个典型的“看着简单、做起来满是细节”的高压电力电子仿真题。交流3000V、直流5000V单桥臂20个子模块意味着三相总共要搭120个半桥子模块随便一个控制环节写错仿真都要跑半天还看不到正确波形。这篇文章我就围绕这套系统完整过一遍为什么选这个电压和模块数、参数怎么算出来、两种调制策略分别怎么实现、整流控制环怎么搭、最后仿真结果怎么对比。我尽量用能直接抄作业的方式写所有参数都按同一个算例给出来你拿到手能复现。1. 系统拓扑与设计逻辑先搞懂为什么是3000V/5000V和20个子模块1.1 MMC的基本拓扑结构和工作机理MMC全称是模块化多电平变换器Modular Multilevel Converter三相结构每相分上、下两个桥臂每臂一串子模块。每个子模块最常见的是半桥结构一个直流电容加两个开关器件通过开关组合让子模块输出端要么等于电容电压投入要么等于0V旁路。以我们这套系统为例每相有两个桥臂每臂20个子模块三相一共3x2x20120个子模块。直流母线电压5000V交流侧线电压有效值3000V。整流模式下交流电源通过MMC把有功功率送到直流侧负载同时保持直流母线电压稳定在5000V。理解MMC的关键是每个桥臂的子模块并不是固定投入的而是根据指令不断变化投入数量。上桥臂和下桥臂投入的总数决定了当前时刻接入直流母线的电压。正常工作时上、下桥臂投入子模块数之和基本恒定等于单臂子模块总数20这样才能维持直流母线电压不塌。1.2 为什么选20个子模块这个数量子模块数量N直接决定了输出电平数和波形的精细程度。N太小比如N5输出阶梯波阶数少谐波含量高需要很大的滤波电感N太大比如N100控制周期内要处理上百个子模块的排序和投切仿真时间会成倍增加控制器计算压力也大。20这个数量是典型的中压大功率折中方案。在这个配置下每个子模块平均承担250V直流电压用600V或900V耐压的开关器件就有足够的安全裕量。从波形质量看线电压能达到41电平已经属于中高水平配合桥臂电感滤波交流侧电流谐波完全可以控制在要求范围内。提示设计时不要只看额定电压。MMC子模块电容电压是有纹波的仿真和实际中波动一般在5%到10%之间加上启动冲击和故障暂态器件耐压至少要留1.5倍冗余250V额定对应450V以上器件才踏实。1.3 这次仿真想验证的核心问题标题把重点放在“两种调制策略对比”说明这个项目不是单纯把模型跑通而是要比较不同调制方式对波形质量、开关损耗、子模块电容电压均衡效果的影响。我在实际做这个仿真时最想搞清楚三件事在20个子模块的配置下最近电平逼近NLM和载波移相PWMCPS-PWM哪个THD更优两种策略的等效开关频率和开关损耗差异到底有多大电容电压均衡在两种策略下谁更容易实现、谁控制量大。带着这三个问题搭模型思路会清晰很多。仿真不是目的回答设计问题才是目的。2. 关键参数计算电容、桥臂电感、调制比都要有据可依2.1 系统额定参数与电流初步计算先给一个贯穿全文的算例。额定功率我取5MVA这个量级对交流3000V、直流5000V系统很合理既不是实验室小功率也避开超大功率带来的绝缘设计复杂性。直流电流Idc P / Vdc 5000kW / 5000V 1000A交流侧线电流有效值Iac P / (√3 x VL) 5000kW / (1.732 x 3000V) ≈ 962A这两个数记住后面算桥臂电感、子模块电流应力和仿真电流PI参数都要用到。直流母线电压5000V单臂20个子模块那么每个子模块额定电容电压Vc Vdc / N 5000 / 20 250V再看调制比。交流相电压峰值Vp 3000 / 1.732 x 1.414 ≈ 2449V调制比m 交流相电压峰值 / (Vdc/2) 2449 / 2500 ≈ 0.98。调制比接近0.98说明这个系统的电压利用率压得很高。实际控制中如果直流电压出现跌落或交流电网电压波动很容易进入过调制区所以直流电压外环的控制带宽不能太慢仿真里也要盯着调制比波形防饱和。2.2 子模块电容值的工程算法子模块电容是MMC设计里最核心的参数。电容太大浪费成本电容太小电压纹波大、影响波形质量甚至可能让调制指令与实际投入电压严重失配。工程上常用储能常数H来估算。H代表整个MMC储能与额定功率之比典型值30到50kJ/MVA中压系统我取40kJ/MVA。系统总储能W H x S 40kJ/MVA x 5MVA 200kJMMC总储能又可以表示为W 3 x N x C x Vc²推导出来就是C W / (3 x N x Vc²) 200000 / (3 x 20 x 250²) ≈ 53.3mF所以每个子模块电容取53mF左右我仿真里实际取了55mF留一点裕量照顾非额定工况。你可能觉得这个电容值很大没错这就是中压大功率MMC的真实量级实验室小模型中常常见到的几百微法是缩小功率定标后的结果不能直接套用。单个电容储存能量0.5xCxVc² ≈ 0.5x0.055x250² ≈ 1719J全系统120个子模块差不多206kJ和估算一致。2.3 桥臂电感的选择依据桥臂电感的主要作用是限制二倍频环流、抑制故障电流上升率和参与交流侧滤波。电感太小环流压不住电感太大系统动态响应变慢、成本变高。按标幺值方法估算。交流侧基准阻抗Zbase VL² / S 3000² / 5e6 1.8Ω50Hz下基准电感Lbase Zbase / (2πf) 1.8 / 314 ≈ 5.73mH桥臂电感典型范围是0.1到0.15倍基准电感。取0.1倍Larm 0.1 x 5.73 ≈ 0.57mH实际仿真我取0.6mH兼顾环流抑制和动态性能。如果想重点观察环流抑制控制的作用可以加大到1mH但要注意此时系统响应会慢一点。2.4 桥臂电流应力的量化评估仿真前先估算桥臂电流这对后面验证电流波形是否合理很有帮助。MMC桥臂电流由两部分组成直流分流分量Idc/3 ≈ 333A交流电流分量相电流峰值的一半约 (962 x 1.414) / 2 ≈ 680A。这两部分相位相差90度左右所以桥臂峰值电流不会直接相加到1000A而是约等于Iarm_peak ≈ sqrt(333² 680²) ≈ 757A也就是说每个桥臂的IGBT和电容要承受约750A的峰值电流。我在仿真里测的桥臂电流峰值通常在730到780A之间波动和这个估算吻合。如果你仿真波形里桥臂峰值电流明显超过这个范围要怀疑环流抑制没起作用或交流电流环没调好。3. 调制策略一最近电平逼近调制的原理与仿真实现3.1 NLM的基本思想最近电平逼近调制英文缩写NLM原理上用一句话说要多少电平就给多少电平。MMC每个桥臂能投入的子模块数是0到N的整数所以桥臂输出电压是离散的阶梯值。控制周期开始时根据参考电压和子模块平均电容电压计算目标电平数Ninsert round(Vref / Vc)其中Vref是这个桥臂需要输出的参考电压Vc是子模块平均电容电压。比如某时刻上桥臂参考电压是4800V而当前子模块平均电容电压为250V则 Ninsert round(4800/250) ≈ 19也就是上桥臂投入19个子模块下桥臂投入1个子模块。上、下桥臂参考电压之和要始终等于Vdc。所以我的实现方式是对上、下桥臂分别计算电平数并且保证两者之和等于20而不是只算一边让另一边自动补齐这样更稳。3.2 电容电压均衡排序法NLM的核心NLM本身很简单难在电压均衡。20个电容电压不会天然一样如果固定投某几个子模块那被长期投入的电容电压会被逐步吸干旁路的则逐渐上浮。工业界和学术界最常用的办法就是排序法。实现逻辑不复杂每个控制周期测量该桥臂20个子模块电容电压电压排序得到索引序列如果需要增投子模块就从电压最低的几个里选取如果需要减投就从电压最高的几个里选取。为什么这样能均衡因为投入意味着对外放电电压低的先投入就会充电电压高的先旁路就会慢慢回落总体上电容电压会被拉向平均值。我的经验是这一招对NLM系统来说简单粗暴又有效不需要复杂的闭环。3.3 Simulink里的实现步骤我建议用Matlab/Simulink搭NLM控制时把比较繁琐的排序逻辑放到Fcn块或S-Function里而不是用一堆Simulink比较器堆积木否则模型连线会乱成一团。实际步骤用一个6x20的向量或矩阵存储所有子模块电容电压便于批量排序根据当前上下桥臂参考电压计算目标投入数N_up和N_down对上桥臂20个电压排序根据增投/减投方向选出要动作的子模块生成20路PWM脉冲送给上桥臂子模块下桥臂同样处理注意方向逻辑相反。注意排序不用每个仿真步都执行。我测试过每次投入数变化时才进行一次排序也就是开关动作时刻才更新选中的子模块索引能大幅降低控制计算量电压均衡效果几乎不受影响。毕竟电容电压的惯性很大微秒级的变化可以忽略。3.4 NLM的波形特点与损耗优势NLM在一个工频周期内的开关次数相对有限。20个子模块的桥臂一个周期内电平变化也就几十次平均到每个IGBT的开关频率通常在几百赫兹到两千赫兹量级远低于载波PWM的几千赫兹。这就带来明显好处开关损耗低器件发热小甚至可以进一步降低散热要求对大功率系统非常友好。代价是输出电压波形谐波略高。我实测这个配置下NLM的交流电流THD大概在4%到6%具体数值取决于滤波电感和控制参数。从仿真经验看NLM在N20这套参数下的边沿台阶大约250V一级波形基本连续已经看不到明显的毛刺感。如果N小于10NLM的阶梯感就会很强那就是另一个故事了。4. 调制策略二载波移相PWM的原理与仿真实现4.1 CPS-PWM的载波配置与驱动信号生成载波移相PWM的思路完全不同。它给每个子模块配一个独立的三角载波所有载波频率相同、相位均匀错开。20个子模块所以载波相位间隔为Δθ 360° / 20 18°每个子模块用同一路正弦参考波与自己的三角载波比较生成PWM信号。因为20个载波错开同一时刻各模块输出的脉宽序列相互弥补从桥臂整体看等效开关频率被抬高到了载波频率的20倍。比如三角载波频率为2kHz等效开关频率看起来就像40kHz输出滤波压力显著减轻交流电流THD能控制在2%到3%左右。4.2 CPS-PWM的电容电压平衡轮换策略CPS-PWM天然有一个问题如果每个子模块一直和自己编号的载波固定对应各模块的调制波幅值基本相同理论上PWM占空比也一致电容电压应该是自己平衡的。但实际中由于死区影响、电容初始电压偏差、器件导通压降不一致电压还是会慢慢发散。工程上常用轮换法解决。轮换法的思想是让每个子模块不是永久绑定某个载波而是定期轮换自己的载波序号。比如每0.02秒把子模块和载波的映射关系循环移位一次这样每个子模块在一段时间内的平均开关动作次数完全一致电容电压自然收敛到平均值。我在仿真实测中轮换周期取0.02s效果很好电容电压最大偏差控制在5V以内约2%。4.3 CPS-PWM的仿真实现细节实现CPS-PWM时最需要注意的是载波生成方式。Simulink里可以直接用PWM Generator模块组但20路载波还要各自独立控制我更习惯自己搭三角波发生器三角载波频率2kHz周期0.5ms。第j路子模块的载波相位延迟Tdelay j / 20 x Tcarrier j x 0.025ms将相位延迟加到一个共用载波相位累计量上再取余就能得到20路错开的三角载波。调制参考波就是第3章里控制环路算出的上、下桥臂参考电压除以Vc得到0到1之间的标幺值。每路子模块比较器输出结合前面说的轮换映射给到对应IGBT驱动。仿真步长我建议设为1e-6到2e-6秒。CPS-PWM在2kHz载波下开关边沿很密步长太大PWM波形会失真THD数据就不准了。4.4 两种策略的控制计算量对比这个章节做一个直观比较。NLM每个控制周期要做一次20个数据的排序然后只有投入数变化时才更新脉冲计算机只是偶尔忙一下。CPS-PWM则是每个仿真步都要比较、输出20路PWM连续高频动作控制器负担明显更重。我在这套系统里的实测数据对比项NLMCPS-PWM每模块平均开关频率约1.2kHz2kHz载波频率等效输出开关频率约1.2kHz40kHz控制计算量低排序只在电平变化时执行高每步实时输出PWM电容电压均衡方法排序法天然均衡载波轮换需额外设计初始实施难度逻辑清晰容易上手载波生成和轮换逻辑略繁琐从仿真的运行速度来说同样配置下CPS-PWM的模型运行时间大概是NLM的两到三倍。如果只是做概念验证建议先用NLM把控制逻辑调通再用CPS-PWM跑性能对比。5. 整流控制环路的搭建从直流电压闭环到环流抑制5.1 整体控制架构调制策略只能解决“怎么发脉冲”整流控制要解决“发多大占空比”。整体控制架构分三层最外层是直流电压环它的目标是维持Vdc稳定在5000V输出有功电流参考idref中间是交流电流环d轴跟踪有功电流q轴跟踪无功实现单位功率因数内层是调制环节把生成的参考电压交给NLM或CPS-PWM执行。还有一条并行的环流抑制支路它不参与有功传输专门处理桥臂之间的不平衡环流。5.2 dq坐标系下的电流内环设计MMC对外的数学模型和交流侧等效为一个受控电压源加滤波电感可以写标准VSC方程ud L x didt R x id ωL x iq ed uq L x diqt R x iq - ωL x id eq其中ed、eq是电网电压在dq轴的分量ω是基波角频率。两个电流环之间通过ωL交叉耦合工程上最常见的是前馈解耦ud_ref (Kp Ki/s) x (id_ref - id) - ωL x iq ed uq_ref (Kp Ki/s) x (iq_ref - iq) ωL x id eq注意符号MMC整流要保证能量从交流流向直流功率方向和逆变相反所以id的参考方向要统一。我习惯定义整流器流向电网为正则整流时id0。调试时容易在这里栽跟头几行代码的极性反了整个仿真就跑飞。电流环的PI参数按典型工程设计带宽取500Hz左右Kp取桥臂电感的阻抗值乘以带宽系数Ki根据时间常数配。我算例里电流环只用一组比例积分就稳住了若波形有较明显波动再微调。5.3 直流电压外环的参数整定直流电压环控制的是直流母线电压它输出的就是id_ref。PI公式id_ref (Kpd Kid/s) x (Vdc_ref - Vdc)直流侧动态比较慢外环带宽要远低于电流环一般取20到50Hz。带宽太高会导致交流电流指令波动剧烈桥臂电流畸变。启动时刻的直流电容充电过程也要处理。如果一上电就直接让电压环工作直流电流指令会瞬间拉满电容充电电流巨大仿真还可能过流保护。我通常的做法是先以开环方式给子模块逐渐充电让电容电压接近额定值再切入闭环控制直流电压参考给个斜坡比如0.1s内从0升到5000V最后切入满载负载。这套软启动逻辑做完仿真稳定性和真实性都大幅提高。5.4 环流抑制控制二倍频负序环流怎么压MMC内部天生存在二倍频环流它在上、下桥臂之间循环流动不进入交流侧也不流入直流母线但会增加桥臂电流有效值、提高损耗和器件应力。环流表达式可以写为iz (iu il) / 2 - Idc / 3理想情况下iz应该为0实际中二次分量为主要成分。最常用的抑制方法是准比例谐振控制在二倍频处加一个谐振项。也可以用两个旋转坐标系下的PI分别处理负序和正序分量。我在仿真里用了一个PR控制器中心频率100Hz增益不需要很大桥臂电流里的二倍频纹波就能从几十安培降到几安培。反过来桥臂电感Larm取0.6mH时不抑制环流的自然电流幅值大约几十安培不算致命但如果把桥臂电感减到0.2mH不抑制环流会让电容电压波动明显增大。环流控制始终打开稳妥。5.5 整流控制与调制策略的衔接电流环输出的ud_ref和uq_ref经过反Park变换得到三相参考电压再分别生成上、下桥臂参考电压Vup_ref Vdc/2 - e_phase_voltage - Vcc Vlow_ref Vdc/2 e_phase_voltage - Vcc其中Vcc是环流抑制输出修正项。两个调制策略都吃这组参考电压。NLM直接用Vup_ref除以Vc取整CPS-PWM用Vup_ref除以Vc作为标幺调制波。这样控制层完全解耦两种策略对比时不需要改动控制器只切换调制模块即可仿真效率更高。6. 两种调制策略的仿真结果对比与实操建议6.1 稳态波形比较我在同一套参数下跑完了两种调制策略的整流工况额定功率5MW满载运行。稳态结果汇总如下指标NLMCPS-PWM交流电流THD约5.2%约2.4%直流电压纹波约1%约0.8%子模块电容电压纹波约7.5%约5%每模块平均开关频率约1.2kHz2kHz电压均衡效果很好偏差2%好偏差3%桥臂电流峰值约780A约760A可以看到CPS-PWM的波形质量确实明显优于NLMTHD下降了将近一个数量级直流电压纹波也更小。这是因为它把开关动作均匀分布在20个子模块上等效PWM频率高达40kHz谐波都被推到高频段去了。代价也很直观NLM每个模块平均开关频率只有1.2kHzCPS-PWM直接干到2kHz开关损耗高出60%以上。在大功率系统里这个损耗差异意味着散热成本、器件寿命和效率都有了显著差距。6.2 动态响应差异加载试验中直流侧从5MW满载阶跃到7MW两种策略的直流电压跌落都在150V左右恢复时间NLM约80msCPS-PWM约70ms。差异主要来自CPS-PWM的等效带宽更高对电流指令响应更快。不过两者都满足工业中压系统的动态要求。另一个动态关注点是直流电压启动过程。用前面说的软启动逻辑CPS-PWM由于PWM频率高电压建立更平滑NLM则在启动初期阶梯电平切换更明显但总体不影响最终稳定。6.3 从仿真走向工程时容易踩的坑真实项目里比仿真更狠因为器件模型和寄生参数会让理想仿真看不出的问题全部冒出来。我列出几个最典型的坑第一死区时间影响。仿真可以设置理想开关忽略死区实际必须加。加了死区后NLM的电压均衡排序如果太频繁可能在一个控制步内发生同相上下桥臂直通的风险需保证投入数变化时死区逻辑与开关逻辑严格互锁。第二电容初始电荷不平衡。在真机或高保真仿真中如果不对120个电容做预充电启动瞬间可能直接触发过压保护。我用的是分组预充先让每相电容统一充到额定值再合闸。第三绝缘与电压等级。5000V直流母线已经不是低压系统可以随意摸的仿真层面无所谓真机方案里的绝缘、爬电距离、母线分布电容统统要重新评估。直流5000V对应常见的3kV交流系统放在中压电网里安全距离和绝缘配合都是大工程。6.4 到底应该选NLM还是CPS-PWM这个问题的答案取决于你的应用场合。如果系统子模块数量少比如10个以下NLM波形阶梯感太强THD难以达标优先选CPS-PWM。如果系统功率很大对效率要求高比如几十兆瓦的静止同步补偿器或柔性直流输电则NLM几乎是不二选择因为开关损耗省下来的收益远超波形上的些许短板。如果和我这套系统一样N20、5MVA、50Hz那么两种都可行。我的判断是做产品、追求电压电流质量CPS-PWM更合适做实验平台、关注损耗和长时间运行可靠性NLM更合适如果控制芯片性能有限比如用普通DSP而非FPGA建议NLM。我这些年做中压变换器仿真的体会是NLM和CPS-PWM没有绝对优劣关键在于你愿不愿意为波形质量付出损耗和计算量的成本以及你手头硬件平台能扛住多少控制负载。先用这套仿真参数跑出对比数据比在网上看一百篇文章结论都有效。最后分享一个细节做两种策略对比时别忘了把桥臂电感和电容参数完全固定否则你对比出来的是两套不同物理系统而不是两种调制策略的差异。这个坑我一开始就踩过换了电感参数后NLM的THD明显变差差点得出错误结论。仿真规范一点后面的工程决策才有意义。