☰
MMC两种调制策略仿真详解:交流3000V直流5000V整流与20子模块实现
2026/10/21 9:25:25 网站建设 项目流程

先说点实际的。看到“模块化多电平变换器MMC两种调制策略实现(交流3000V-直流5000V整流)仿真,单桥臂二十子模块”这个标题,我第一反应是:这又是一个典型的“看着简单、做起来满是细节”的高压电力电子仿真题。交流3000V、直流5000V,单桥臂20个子模块,意味着三相总共要搭120个半桥子模块,随便一个控制环节写错,仿真都要跑半天还看不到正确波形。

这篇文章我就围绕这套系统完整过一遍:为什么选这个电压和模块数、参数怎么算出来、两种调制策略分别怎么实现、整流控制环怎么搭、最后仿真结果怎么对比。我尽量用能直接抄作业的方式写,所有参数都按同一个算例给出来,你拿到手能复现。

1. 系统拓扑与设计逻辑:先搞懂为什么是3000V/5000V和20个子模块

1.1 MMC的基本拓扑结构和工作机理

MMC全称是模块化多电平变换器(Modular Multilevel Converter),三相结构,每相分上、下两个桥臂,每臂一串子模块。每个子模块最常见的是半桥结构,一个直流电容加两个开关器件,通过开关组合让子模块输出端要么等于电容电压(投入),要么等于0V(旁路)。

以我们这套系统为例,每相有两个桥臂,每臂20个子模块,三相一共3x2x20=120个子模块。直流母线电压5000V,交流侧线电压有效值3000V。整流模式下,交流电源通过MMC把有功功率送到直流侧负载,同时保持直流母线电压稳定在5000V。

理解MMC的关键是:每个桥臂的子模块并不是固定投入的,而是根据指令不断变化投入数量。上桥臂和下桥臂投入的总数决定了当前时刻接入直流母线的电压。正常工作时,上、下桥臂投入子模块数之和基本恒定,等于单臂子模块总数20,这样才能维持直流母线电压不塌。

1.2 为什么选20个子模块这个数量

子模块数量N直接决定了输出电平数和波形的精细程度。N太小,比如N=5,输出阶梯波阶数少,谐波含量高,需要很大的滤波电感;N太大,比如N=100,控制周期内要处理上百个子模块的排序和投切,仿真时间会成倍增加,控制器计算压力也大。

20这个数量是典型的中压大功率折中方案。在这个配置下,每个子模块平均承担250V直流电压,用600V或900V耐压的开关器件就有足够的安全裕量。从波形质量看,线电压能达到41电平,已经属于中高水平,配合桥臂电感滤波,交流侧电流谐波完全可以控制在要求范围内。

提示:设计时不要只看额定电压。MMC子模块电容电压是有纹波的,仿真和实际中波动一般在5%到10%之间,加上启动冲击和故障暂态,器件耐压至少要留1.5倍冗余,250V额定对应450V以上器件才踏实。

1.3 这次仿真想验证的核心问题

标题把重点放在“两种调制策略对比”,说明这个项目不是单纯把模型跑通,而是要比较不同调制方式对波形质量、开关损耗、子模块电容电压均衡效果的影响。我在实际做这个仿真时,最想搞清楚三件事:

  • 在20个子模块的配置下,最近电平逼近(NLM)和载波移相PWM(CPS-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 = 200kJ

MMC总储能又可以表示为:

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比较器堆积木,否则模型连线会乱成一团。

实际步骤:

  1. 用一个6x20的向量或矩阵存储所有子模块电容电压,便于批量排序;
  2. 根据当前上下桥臂参考电压计算目标投入数N_up和N_down;
  3. 对上桥臂20个电压排序,根据增投/减投方向选出要动作的子模块;
  4. 生成20路PWM脉冲送给上桥臂子模块;
  5. 下桥臂同样处理,注意方向逻辑相反。

注意:排序不用每个仿真步都执行。我测试过,每次投入数变化时才进行一次排序,也就是开关动作时刻才更新选中的子模块索引,能大幅降低控制计算量,电压均衡效果几乎不受影响。毕竟电容电压的惯性很大,微秒级的变化可以忽略。

3.4 NLM的波形特点与损耗优势

NLM在一个工频周期内的开关次数相对有限。20个子模块的桥臂,一个周期内电平变化也就几十次,平均到每个IGBT的开关频率通常在几百赫兹到两千赫兹量级,远低于载波PWM的几千赫兹。

这就带来明显好处:开关损耗低,器件发热小,甚至可以进一步降低散热要求,对大功率系统非常友好。代价是输出电压波形谐波略高。我实测这个配置下NLM的交流电流THD大概在4%到6%,具体数值取决于滤波电感和控制参数。

从仿真经验看,NLM在N=20这套参数下的边沿台阶大约250V一级,波形基本连续,已经看不到明显的毛刺感。如果N小于10,NLM的阶梯感就会很强,那就是另一个故事了。

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的参考方向要统一。我习惯定义整流器流向电网为正,则整流时id<0。调试时容易在这里栽跟头,几行代码的极性反了,整个仿真就跑飞。

电流环的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的波形质量确实明显优于NLM,THD下降了将近一个数量级,直流电压纹波也更小。这是因为它把开关动作均匀分布在20个子模块上,等效PWM频率高达40kHz,谐波都被推到高频段去了。

代价也很直观,NLM每个模块平均开关频率只有1.2kHz,CPS-PWM直接干到2kHz,开关损耗高出60%以上。在大功率系统里,这个损耗差异意味着散热成本、器件寿命和效率都有了显著差距。

6.2 动态响应差异

加载试验中,直流侧从5MW满载阶跃到7MW,两种策略的直流电压跌落都在150V左右,恢复时间NLM约80ms,CPS-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几乎是不二选择,因为开关损耗省下来的收益远超波形上的些许短板。

如果和我这套系统一样,N=20、5MVA、50Hz,那么两种都可行。我的判断是:

  • 做产品、追求电压电流质量:CPS-PWM更合适;
  • 做实验平台、关注损耗和长时间运行可靠性:NLM更合适;
  • 如果控制芯片性能有限,比如用普通DSP而非FPGA,建议NLM。

我这些年做中压变换器仿真的体会是,NLM和CPS-PWM没有绝对优劣,关键在于你愿不愿意为波形质量付出损耗和计算量的成本,以及你手头硬件平台能扛住多少控制负载。先用这套仿真参数跑出对比数据,比在网上看一百篇文章结论都有效。

最后分享一个细节:做两种策略对比时,别忘了把桥臂电感和电容参数完全固定,否则你对比出来的是两套不同物理系统,而不是两种调制策略的差异。这个坑我一开始就踩过,换了电感参数后NLM的THD明显变差,差点得出错误结论。仿真规范一点,后面的工程决策才有意义。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询