MMC开环仿真入门:N=6模块化多电平换流器Simulink建模与参数计算
发布时间:2026/10/12 4:51:40 · 信平特种工考证网

很多人第一次碰模块化多电平换流器时习惯性想直接上个几十个子模块的闭环带载仿真结果被一堆问题淹没。我自己走过的路恰恰相反——先做一个N6的三相开环仿真把主电路参数、调制策略、Simulink里的开关模型和信号接口全部理顺再谈下一步。这个项目表面看只是搭个模型实际上它逼着你想清楚直流侧电压怎么分配到36个子模块、桥臂电抗按什么原则取、6路载波相位怎么错、上桥臂调制波和下桥臂为什么必须互补这些细节一旦漏掉开环波形根本调不出来。这篇文章就把N6开环MMC仿真从参数计算到Simulink整体实现完整拆一遍。适合正在做课程设计、毕业设计或者刚进入柔性直流、中压变频驱动方向想尽快建立MMC仿真环境的人。1. 为什么先做N6开环仿真项目定位与核心价值1.1 开环仿真解决的核心问题很多人会把“开环”理解成没有控制信号这是误区。开环MMC仿真仍然要有完整的PWM调制信号所谓开环指的是不给电容电压做闭环均衡、不给环流做闭环抑制、不引入任何反馈调节直接给一组固定的三相正弦调制波让主电路自己跑起来。这样做有一个非常实际的好处如果开环都跑不稳闭环问题就更难定位。电容电压均衡控制、环流抑制控制器一旦加上去波形异常时你可能得花大量时间判断到底是主电路参数错了还是控制器参数错了。而开环环境下调制波、载波、主电路参数三者之间的关系是确定的波形是否符合理论值一眼就能看出问题。我之所以强调这一点是因为很多初学者在开环阶段就直接把电容电压均衡和环流抑制全部搭进去最后电容电压还是发散了排查了半天发现是桥臂电抗太小、电容初始电压没设。所以开环仿真真正的使命是先用最简结构验证主电路参数设计和调制策略的正确性。这个阶段跑通了后面每加一层控制你都清楚它在你已经验证过的底子上做了什么改变。1.2 N6是入门的黄金配置N指的是每个桥臂串联的子模块数量。MMC一个相单元有上下两个桥臂三相一共6个桥臂所以N6时整机子模块总数是6×636个。这个规模在Simulink里属于“能跑得动、又足够看出规律”的状态。N取太小比如2或4子模块数太少输出电压电平数只有3到5个波形离正弦差得远调制策略的效果也不明显而且电容电压波动很大容易误导你对参数正确性的判断。N取太大比如20甚至40虽然波形更细腻但仿真速度会明显变慢调试周期拉长参数计算也繁琐不适合作为第一次搭建MMC模型的起点。N6时每个相单元相对直流母线中点能输出7种电平交流相电压呈现清晰的阶梯波已经能看出正弦轮廓。同时36个子模块在开关模型下也还扛得住我的经验是载波频率2kHz、仿真0.6秒普通台式机几分钟内能跑完调试效率高。这个配置在很多教材、课程设计和论文里都作为典型算例资料容易参考非常适合作入门起点。2. 主电路参数计算从直流侧到桥臂的定量推导2.1 电压分配与子模块电容参考电压MMC的子模块电容参考电压理论上就是直流母线电压除以每个桥臂的子模块数。以我仿真时常用的直流母线电压Vdc400V为例N6时Vc_ref Vdc / N 400 / 6 ≈ 66.7V这个公式是整个主电路参数设计的锚点。为什么电容电压基本被Vdc/N锁定因为稳态下一个桥臂投入的子模块数在0到N之间变化当全部投入时串联电容总电压必须顶得住直流母线电压所以理想情况下每个电容电压就是Vdc/N。这个值直接决定器件选型和电容容量设计。如果你用的IGBT耐压只有100V而你把直流母线电压调到800V单个子模块电容电压就是133V接近甚至超过器件耐压极限。仿真中不一定立刻报错但波形容易出现振荡。很多初学者忽略这个基本关系把Vdc设置得很高、N又小导致电容电压波动率巨大这就是典型的参数设计错误。另外直流母线建议用两个Vdc/2的电源串联并把中点引出作为参考地。这样后续观察交流侧相电压对中点电平时可以直观看到±3Vc_ref之间共7个电平的阶梯波和理论推导能对上。2.2 桥臂电抗怎么取两条原则一次讲清桥臂电抗是MMC里非常关键的无源元件它同时承担两个职责一是抑制桥臂内部的环流和开关纹波二是限制故障时的电流上升率。工程上一般按标幺值0.1到0.15来选取指的是工频下桥臂电抗的阻抗值占系统基值阻抗的10%到15%。具体计算流程我以一个设计功率10kVA、交流线电压有效值200V的三相系统为例。每相电压基值V_base 200 / √3 ≈ 115.5V相电流基值I_base 10000 / (√3 × 200) ≈ 28.9A基值阻抗Z_base V_base / I_base ≈ 4Ω取0.1p.u.时桥臂电抗的工频阻抗X_arm约为0.4Ω对应电感L_arm X_arm / (2π×50) ≈ 0.4 / 314 ≈ 1.27mH如果取0.15p.u.X_arm约0.6Ω对应电感约1.91mH。所以理论计算范围大概在1.3到1.9mH之间。我的实际习惯是仿真里取偏大一点的值比如2到3mH。原因很现实开环仿真没有环流抑制桥臂电抗稍微大一些可以有效压低二倍频环流让波形更干净。代价是系统的动态响应变慢但开环验证阶段我们更关心稳态波形。另外桥臂电抗的压降会影响实际输出电压幅值调制比留一点裕量就能补偿掉这部分的压降影响。需要注意桥臂电抗在模型中的连接位置建议按工程惯例上桥臂电抗串联在直流母线上端与交流输出节点之间下桥臂电抗串联在交流输出节点与直流母线负极之间。这样的好处是环流和纹波同时被两个电抗抑制而且交流输出点的参考关系很清晰。2.3 子模块电容容量从储能常数算到毫法子模块电容的取值直接决定电容电压纹波。电容越大纹波越小但大电容意味着成本和体积都上去所以工程上有一种常用的估算方法——按储能常数来选。储能常数的含义是整个换流器所有子模块电容储存的总能量与系统额定功率之比。MMC工程上一般取30到40kJ/MVA也就是每1kVA额定功率对应30到40焦耳储能。对10kVA、40kJ/MVA的配置总储能 40 J/kVA × 10 kVA 400J而总储能又可以由电容参数表示。整机有36个子模块每个子模块储能是0.5×C×Vc_ref²所以总储能 36 × 0.5 × C × Vc_ref² 18 × C × 66.7²把400J代入C 400 / (18 × 4448.9) ≈ 0.005F 5mF这个结果和文献中类似容量MMC的子模块电容值很接近。仿真里取4.7mF到5mF都可以我个人习惯先取5mF跑起来如果电容电压纹波低于预期再往小了调如果纹波超过5%就往大了调。记住一个方向纹波偏大就加大电容别一上来就怀疑调制策略。系统主电路参数可以汇总成下面这张表后面所有仿真设置都以它为准参数数值说明直流母线电压Vdc400V两个200V电源串联子模块数N6每桥臂子模块电容参考电压66.7VVdc/N子模块电容Csm5mF按40kJ/MVA估算桥臂电抗Larm3mH取略大于理论下限载波频率fc2kHz初学可从1kHz开始调制比m0.85输出相电压峰值约170V负载电阻R4Ω三相星形对称负载负载电感L2mH平滑电流纹波3. 调制策略选择与Simulink实现方案3.1 为什么N6优先选载波移相PWMMMC的调制方式有好几种最近电平逼近、载波层叠PWM、载波移相PWM。N6这个场景我最推荐载波移相PWM。最近电平逼近的原理是把正弦调制波量化成离散电平子模块数越多电平越细腻。但N6时只有7个电平量化误差非常大输出波形谐波含量高看起来阶梯感特别强。它适合N达到几十甚至上百的场合比如柔性直流输电里单桥臂子模块数动辄200个以上那时用NLM很合适。放在N6的小模型里波形丑且调试参考意义不大。载波移相PWM的思路是N个子模块各用一路三角载波把这N路载波在相位上均匀错开360/N度再用同一路正弦调制波去和每一路载波比较生成各子模块的开关脉冲。这样做的直接效果是各子模块的开关动作在时间上均匀错开桥臂等效开关频率变成N×fc。对N6、fc2kHz来说等效开关频率就是12kHz输出波形谐波显著降低。有一点必须提醒等效开关频率高并不代表IGBT真的在按12kHz工作每个子模块的功率器件实际开关频率仍然是2kHz。这个区别在做损耗评估时很容易搞错但在数字仿真里一般不影响波形结果。载波移相PWM在中等子模块数场合的波形质量和实现复杂度之间取得了很好的平衡所以N6用它最合适。3.2 载波相位差与上下桥臂互补的关系载波移相PWM的实现细节中最容易出错的就是载波相位排列和上下桥臂调制波的关系。我先把最核心的数学关系说清楚。同一个相单元里上桥臂和下桥臂的投入子模块总数必须恒等于N这是MMC能正常工作的前提。为什么会这样因为在理想情况下直流母线电压VdcN×Vc_ref如果某时刻上桥臂投入k个子模块、输出电压为k×Vc_ref那么为了保证直流母线不被短路下桥臂必须正好投入N-k个子模块两端电压总和才刚好是Vdc。想让上下桥臂互补最直接的做法是对调制波做对称处理。上桥臂调制波取m_up 0.5 - 0.5×m×sin(ωt)下桥臂调制波取m_low 0.5 0.5×m×sin(ωt)这两个量都落在0到1之间和载波幅值0到1匹配。无论sin(ωt)取什么值m_up m_low始终等于1这意味着任意时刻上桥臂投入子模块数加下桥臂投入子模块数正好等于N交流输出电压就能连续跟踪参考。载波相位差的计算也简单。N6、载波频率fc2kHz时六路三角载波依次错开的相位是60度对应时间差T_shift 1 / (N × fc) 1 / (6 × 2000) ≈ 83.3μs在Simulink里如果用Transport Delay模块给某一路载波做延迟延时就是k×83.3μsk从0到5。如果用自带PWM发生器只需要在参数里设置每路子模块的载波相位角度0、60、120、180、240、300度即可。很多人的模型输出电平数不对十有八九是这里出了问题要么六路载波相位没有均匀错开要么上下桥臂调制波不是互补关系。我调试时习惯先单独观察一个桥臂的6路调制信号和载波信号确认每个比较器输出的脉冲周期和占空比正确再去连主电路。3.3 开关信号的生成与子模块封装思路在Simulink里实现载波移相PWM有两条路线。第一条是用Simscape Electrical自带的PWM Generator模块它内部可以直接设置载波频率、载波相位偏移、调制波和载波幅值输出脉冲宽度调制波。这条路线省事适合快速验证。缺点是你对内部细节的控制能力弱而且要理解它的输出逻辑否则调参时容易一头雾水。第二条是手动搭建虽然麻烦但对理解原理帮助很大。我建议至少第一次做的时候用这种方式。具体做法是用Repeating Sequence模块生成频率为fc的三角载波输出序列设置为0到1再到0六路载波用六个Repeating Sequence实例或者一个模块配合多个Transport Delay实现不同相位延时调制波用Sine Wave模块加0.5偏置得到m_up和m_low然后用Relational Operator模块做比较当调制波大于载波时输出1否则输出0。子模块本身建议封装成Subsystem好处是主电路图不会变成蜘蛛网。一个半桥子模块内部包含两个带反并联二极管的IGBT和一个直流电容。两个IGBT的驱动信号设计为互补逻辑投入时上管开通下管关断电容接入旁路时上管关断下管开通电容被短接。封装时注意子模块的进出线是Simscape Electrical物理端子不能用普通Simulink端口代替否则会报电气网络连接错误。4. Simulink建模实操主电路、控制与求解器配置4.1 开关模型还是平均模型先想清楚再动手MMC建模有两种基本路线开关模型和平均模型。开关模型把所有IGBT和二极管都搭出来能精确反映PWM开关动态仿真结果有真实的电压电流纹波但计算量大36个子模块意味着72个功率器件同时参与仿真步长设置不合适很容易变慢甚至发散。平均模型则用受控电压源代替整个桥臂把36个电容的储能行为等效成集中状态变量仿真速度快很多适合长时间动态过程研究比如有功功率阶跃、直流故障穿越。但平均模型看不到每个子模块的电容电压差异也看不到PWM纹波。对于N6开环验证这个目标我的建议是直接上开关模型。原因很简单N6的全开关模型在2kHz载波频率下仿真速度还能接受而且开环仿真的核心目的之一就是观察真实调制波和PWM的效果平均模型反而丢了这部分信息。等你把主电路和开环调制全部验证完再考虑做一个平均模型用于后续长时仿真两条路线互补。4.2 主电路搭建三十六个子模块的级联方案主电路的搭建顺序我建议按“先单桥臂、后三相、再负载”的模块化方式推进避免一次性搭完无从下手。第一步在Simulink里拖出IGBT、二极管、电容搭成一个半桥子模块。输入信号保留一路门极控制信号输出用Simscape Electrical端子引出子模块的P端和N端封装成名为SM的子系统。设置电容初始电压为66.7V这一步非常关键如果初始电压为0开环启动瞬间会产生很大的充电冲击电流模型很容易发散。第二步复制这个SM子系统组成一个桥臂。每个桥臂串联6个SM方向一致从上到下依次是SM1到SM6。注意串联时前一个SM的N端接后一个SM的P端不能接反。然后把一个3mH的电感串联在桥臂末端作为桥臂电抗。第三步把6个桥臂组合成三相。每相的上桥臂电抗末端接交流输出节点A下桥臂也从同一节点开始向直流母线负极方向连接。三相输出节点分别命名为A、B、C接星形三相负载。第四步直流侧用两个200V电压源串联中点接地或接参考节点。这里建议给电压源加一个较小的内阻比如0.01Ω可以避免纯电压源直接接电容带来的数值振荡。第五步加一个Powergui模块并设置为离散仿真模式。这个模块是Simscape电力电子系统仿真的必备组件没有它很多电气网络的分析模式无法正确启动。4.3 控制器信号生成与接口转换调制波和载波比较产生的PWM信号是Simulink的布尔量或double量而Simscape Electrical里的IGBT门极输入是物理信号端口两者之间需要信号转换。在新版Simulink里很多PWM模块可以直接输出Simulink兼容信号但在手动建模时最好在门极驱动前加一个Simulink-PS Converter模块把0/1逻辑转成门极电压信号避免版本差异带来的类型不匹配报错。信号连接上我的做法是用Goto和From标签代替长线连接。比如上桥臂A相的6个SM分别对应6路PWM信号标签命名成PA_SM1到PA_SM6这样在子模块内部通过From模块取对应的标签主电路图保持干净排查信号时也能直观看到哪个子模块接收哪一路脉冲。调制波生成部分三相正弦波相位依次相差120度角频率2π×50每相分别生成m_up和m_low两路调制波。比较器的输出端如果直接连Goto标签注意把输出数据类型转成double避免布尔量在传递过程中出现类型不兼容。我调试中发现很多人用了Repeating Sequence生成三角载波但忘记把载波初始相位设置为0或按错位顺序排结果脉冲波形完全对不上。4.4 求解器、仿真步长与初始条件仿真配置是整个模型能否稳定运行的最后一道关卡。我的推荐设置是固定步长离散求解器步长5e-6秒仿真时间0.6秒。如果发现电流波形毛刺明显把步长缩到1e-6秒如果仿真速度太慢可以先把载波频率降到1kHz再调。核心原则是每个载波周期内至少要有几十个采样点2kHz载波对应500μs周期5e-6步长就是100个点足够覆盖PWM边沿。Powergui里把仿真类型设置为Discrete采样时间与Simulink步长保持一致。电容初始电压、桥臂电抗、调制波相位这些初始条件在仿真开始时的顺序也很重要。如果直接用0.6秒作为仿真时长前0.1秒会看到明显的启动暂态后半段才是稳态波形。为了节省时间可以先把仿真时长设为0.15秒观察启动确认没有发散后再拉到0.6秒看完整稳态。另外子模块电容最好加一个很小的等效串联电阻比如0.01Ω。这个电阻在原理图上可有可无但在数字仿真里能有效抑制电容电压的数值振荡尤其当你用固定步长离散求解器时这个小电阻能明显减少模型在开关瞬间出现高频数值振荡的风险。5. 开环结果怎么判断波形验证与常见问题排查5.1 开环结果应该长什么样三组关键波形开环仿真跑完先别急着调参数按顺序看三组波形。第一组是交流侧相电压对直流母线中点的波形。理论上N6时应该看到7个电平的阶梯波电平间隔约66.7V从约-200V到约200V。正弦调制波通过载波比较后映射到这7个电平上波形整体轮廓是正弦。如果电平数明显少于7或者某个电平长时间不出现首先检查载波相位差和上下桥臂调制波互补性这是最可能出错的两个点。第二组是交流侧负载电流。带10kVA负载时相电流峰值大约28.9×√2≈41A波形应接近正弦。稍微有一点开关纹波是正常的但如果纹波像锯齿一样大检查桥臂电抗和负载电感是否偏小或者载波频率太低。如果电流有明显的直流偏置重点关注上桥臂和下桥臂调制波是否完全对称很小的直流分量会导致电流偏置。第三组是任意一个子模块的电容电压。理想情况下应该在66.7V附近小幅波动纹波幅度与电容容值、输出功率成反比。5mF电容在10kVA负载下纹波峰峰值大约3到5V占比5%左右。如果纹波远大于这个值说明电容容量偏小如果看到某几个子模块电压明显偏离其他子模块检查这路PWM信号是否接错位置或者载波相位是否有误。5.2 环流、二倍频波动与启动暂态开环仿真中还有一个容易被误判为故障的现象桥臂电流中含有明显的二倍频环流分量。这是MMC的固有特性不是模型错误。由于上、下桥臂的瞬时功率不完全平衡桥臂电流会在上、下桥臂之间形成环流频率以二倍基波为主。开环不采取环流抑制时这个分量会比闭环时明显桥臂电流波形看起来像正弦上叠加了一个二倍频波动。判断方法是看同一相上桥臂电流和下桥臂电流之和。如果两者之和是一个在0附近波动的交流分量说明环流确实存在如果这个和还有明显的直流分量那反而是模型出了问题比如直流母线电压或调制波存在不对称。环流的存在会让IGBT电流峰值略大但对开环验证来说不必过度担心合理范围的桥臂电抗就能把它控制在可接受水平。启动暂态也要留意。开环启动瞬间电容电压从初始的66.7V开始经过几个工频周期后会稳定到平衡状态。这个过程中电流会有一定冲击如果冲击大到数值发散多半是电容初始电压设置被忽略了。正常启动时前0.1秒电流幅值会有轻微振荡然后迅速收敛。如果你发现电流振荡一直不衰减甚至越来越大优先检查桥臂电抗是否太小其次检查负载是否过重、调制比是否过高这几项是开环稳定性的主要影响因素。5.3 常见问题速查表与调试顺序仿真中遇到问题先别急下面这张表基本覆盖了N6开环MMC仿真最常见的坑现象常见原因解决思路仿真几步就发散电容未设初始电压、桥臂电抗偏小电容初始电压设为66.7VLarm取2到3mH相电压电平数少于7载波相位差不对、上下桥臂不互补检查六路载波相位0/60/120/180/240/300度电容电压整体漂移调制波直流分量不为0上桥臂0.5-0.5m×sin下桥臂0.50.5m×sin电流毛刺特别多求解步长过大步长缩到5e-6秒甚至1e-6秒开关管报错或仿真很慢门极信号类型不匹配、器件数多加Simulink-PS信号转换必要时降载波频率输出电压幅值偏低桥臂电抗压降、调制比裕量不足调制比从0.8起步观察后再调到0.85以上调试顺序上我的经验是四个步骤逐步推进。第一步空载或带很小负载确认相电压的7电平阶梯波和幅值正确第二步加额定负载观察电流波形和电容电压纹波第三步改变调制比例如从0.7到0.9看电压幅值是否按比例变化这一步是验证调制关系是否正确的关键第四步提高载波频率看波形纹波是否改善。我自己每次调试只改动一个变量并且记录下来。比如想验证载波频率的影响先把其他参数全部固定只改fc跑完存下波形再改下一个。很多人喜欢同时调三个参数结果波形变了都不知道是哪个参数引起的这种试错方式在MMC仿真里效率极低。用这种“单变量对比”的调试方式通常一两个小时内就能把开环模型调到满意的稳态状态。最后再分享一个小习惯把每次仿真得到的电容电压纹波、相电压THD、环流峰值这几个数记在一个表格里。N6这个规模改一个参数这些指标的变化都很直观做几组对比之后你就能建立对MMC参数设计的直接手感。这套底子打好了后面加上电容电压均衡和环流抑制控制你会发现调试节奏顺畅很多。开环看似简单它其实是整个MMC仿真链条里最值得先做扎实的一环。
拿不准这条消息跟你有没有关系?
工种不同、批次不同,要求可能差很多。打电话把你的情况说清楚,我们按信阳、平顶山本地的口径给你捋一遍。