
做电力电子仿真这些年我最大的感受是MMC这种模块化多电平变流器看着结构简单——不就是一堆子模块串起来嘛可真要在Simulink里搭建一套完整的背对背高压直流系统从拓扑结构到控制参数整定每一步都能让人在工位前挠头。最近我刚把一套背靠背高压直流MMC作为电力质量调节系统的仿真完整跑通从原理梳理、参数设计到闭环调试踩了不少坑也攒了不少经验。这篇文章我把整套东西拆开讲清楚从为什么用MMC做电力质量调节到主回路参数怎么算再到Simulink里怎么分层搭建、控制器怎么调、仿真结果怎么读都过一遍。适合正在做柔性直流、电能质量治理、新能源并网仿真课题的同学参考也适合刚接触MMC想快速上手的初学者。1. 背靠背MMC系统的结构原理与质量调节优势1.1 子模块SM和“多电平”从哪来MMC的“多电平”完全来自子模块Sub-ModuleSM的串联堆叠。一个标准的半桥子模块内部就是一个电容加两个IGBT每只IGBT反并联一个二极管。两个管子交替导通子模块对外输出两种状态投入电容接入主回路或者切除电容被旁路。把一个桥臂里N个子模块串联起来通过改变每个子模块的投入/切除组合桥臂端口就能输出从0到N倍电容电压的离散电平台阶。举个例子每桥臂10个子模块相电压就能逼近20个电平波形已经是接近正弦的阶梯波。这也是MMC最吸引人的地方电平数越多输出波形越光滑交流侧几乎不需要额外的滤波装置。这一点在电力质量治理场景里尤其宝贵因为谐波是电能质量的核心指标之一而MMC天生就能把谐波压得很低。实际高压直流工程里一个桥臂的子模块可以到两百多个那种波形质量是传统两电平换流器完全没法比的。1.2 背靠背结构两个交流电网之间的“隔离门”“背对背”指的是两个MMC换流器在直流侧直接相连中间没有长距离直流输电线路本质上是一个AC-DC-AC变换器。两端的交流电网可以频率不同、电压等级不同、甚至初始相位不同功率方向也可以双向平滑切换。在电力质量调节这个场景里背靠背结构最大的价值就是“隔离”。一端电网发生电压暂降、闪变、谐波污染只要控制器处理得当另一端基本不受影响。为什么因为功率传递不是直接传导而是先整流成直流、再逆变成交流这个“直流重建”的过程把两侧电气量彻底解耦了。打个比方两个房间之间装了一台新风机空气还是要交换但粉尘、异味被过滤掉了新风进来是干净的。1.3 MMC到底能治理哪些电力质量问题把背靠背MMC作为电力质量调节系统具体能做四件事电压支撑与稳压控制。逆变侧可以快速吸收或发出无功功率维持接入点电压幅值抵御电压暂降、波动和闪变。谐波主动治理。MMC输出波形接近正弦配合有源滤波控制策略可以主动抵消负载产生的谐波电流治理效果比无源滤波器更精准。三相不平衡治理。通过负序电流控制在不平衡负载或不对称故障工况下维持接入点电压平衡。有功功率平滑与潮流控制。当一端接入风电、光伏这类波动性电源时背靠背系统可以控制送出功率的平滑度减少对电网的冲击。这里必须强调一点传统无功补偿设备比如固定电容器、SVC和调压变压器动态响应都在几十毫秒甚至秒级面对电压暂降这种暂态问题往往力不从心。而MMC由于是电力电子器件直接控制电压电流响应时间可以到毫秒级对付电能质量暂态事件才是它真正的核心优势。2. 主回路参数设计从系统指标到子模块级的换算2.1 仿真缩比模型的参数确定实际工程里柔性直流换流站的直流母线电压都是几十千伏到几百千伏子模块数量几百个在Simulink里做完整电磁暂态建模基本跑不动。所以做仿真研究要采用缩比模型电压等级和功率等级降下来但拓扑结构、控制架构、标幺值参数都保持和实际系统一致这样仿真结论才有工程参考价值。我这里给出一套可以直接用的参数交流系统线电压10kV额定功率5MVA直流母线电压20kV每桥臂子模块数量N10子模块电容额定电压2kV。这套参数下交流侧相电压峰值约等于直流母线一半乘以调制比0.9也就是9kV对应线电压有效值约11kV取10kV系统是合理的。2.2 子模块电容和桥臂电抗的计算子模块电容是整个MMC设计里最关键的参数之一。电容太大成本和体积都失控电容太小电压波动剧烈器件应力大输出波形也差。一个工程上常用的简化估算思路是每个子模块在一个基波周期内的能量波动大约是 P/(3×N×f)其中P是三相额定功率N是每桥臂子模块数f是电网频率。设电容电压额定值为Uc允许电压波动系数为ε电容容值就可以估算为C P / (3×N×f×ε×Uc²)代入P5MVAN10f50Hzε0.1Uc2kVC 5e6 / (3×10×50×0.1×4e6) 8.33e-3 F约8.33mF。我实际搭建模型时取了10mF留一点裕量仿真出来的电容电压波动通常在8%以内符合设计要求。这个公式是简化工程估算严谨的电容设计还要考虑无功交换和暂态过程但作为仿真起始参数完全够用。桥臂电抗按标幺值来选。系统基准阻抗Zb U²/S 10000²/5e6 20Ω。MMC的桥臂电抗一般取0.1~0.2 p.u.这里取0.15 p.u.实际电感值L 0.15×Zb/(2π×50) 3/314 ≈ 9.55mH取整为10mH。2.3 直流母线电压与调制比约束直流母线电压的选取受调制比约束。MMC正常运行时调制比m一般控制在0.85~0.95之间。调制比太高波形会削顶太低直流电压利用率差。对于上面的参数m (√2×10kV/√3)/(20kV/2) ≈ 0.816如果希望留出调制比裕量直流电压取20kV是偏保守但安全的选择。实际上直流母线电压一旦定了每桥臂子模块数量也就跟着定了。子模块数太少每个子模块承受的电压太高器件选型困难子模块数太多控制和均压算法太复杂仿真负担也重。10个子模块对于一套5MVA的缩比模型来说既能体现多电平的波形优势又不至于让模型慢到没法调。3. Simulink模型分层搭建从子模块到完整系统3.1 子模块的建模与封装在Simulink里搭建MMC我习惯用Simscape Electrical的Specialized Power Systems库。子模块内部逻辑很简单电容、两个IGBT桥臂、两个续流二极管。但数量一多模型图就会爆炸式膨胀。所以第一步一定不要偷懒要把子模块做成一个带封装Mask的子系统把电容容值、电容初始电压设置为封装参数。封装时记得做两件事一是从子模块内部引出电容电压测量端口后续均压控制要用二是把两个IGBT的门极信号合并成一个向量输入端子方便控制系统以向量形式批量下发PWM信号。调试阶段可以在封装内部临时挂一个Scope看单个电容电压方便定位均压问题。3.2 桥臂与三相MMC桥的搭建每相桥臂分上桥臂和下桥臂每个桥臂由N个子模块串联后再串一个桥臂电抗L。三个相单元再并联到直流正负极母线上。这里我建议用向量信号线连接N个子模块的门极输入——每个子模块的门极是一个N维向量的一个元素控制系统只输出一个向量主电路就接收一个向量整个模型清爽很多。三相MMC桥搭完之后先不要急着上闭环控制。做一个开环测试给定一个固定的投入子模块数观察桥臂输出电压有没有出现预期的电平台阶三相波形是否对称。这一步能提前暴露接线错误和封装逻辑问题省得后面闭环调试时面对一堆错误信号无从下手。3.3 整流侧、逆变侧与直流母线系统级连接背靠背完整回路由整流侧MMC、逆变侧MMC、直流母线以及两侧交流系统组成。直流母线在Simulink里直接就是一根导线但需要在母线上并联一组直流支撑电容并接一个电压测量模块把直流电压信号送给整流侧控制器。两侧交流系统用Three-Phase Source模块。如果要做电能质量场景逆变侧并一个三相不控整流桥带阻感负载作为谐波源如果要做电压暂降场景则用可编程三相电压源设定跌落深度、持续时间和恢复斜率。逆变侧与MMC之间一定要串接变压器或者耦合电抗否则控制器效果会很差这也是MMC并网的基本要求——通过电抗隔离并限制短路电流。3.4 测量、功率计算与数据记录仿真要出波形、出结论测量环节一定要做足。每个桥臂电流、桥臂所有子模块电容电压向量、直流母线电压、交流侧三相电压电流、有功无功功率都接到独立的outport输出到工作区。交流电压电流测量用Three-Phase V-I Measurement模块输出信号转dq坐标系时直接喂给Clarke/Park变换模块即可。这里有一个非常实用的建议把关键量输出到MATLAB工作区之后统一用MATLAB脚本画图不要在Simulink的Scope里截图。Scope的图不便于缩放和标注而且Scope开多了会严重拖慢仿真速度。我通常是每个Scope都不开只留outport仿真跑完直接用plot脚本出图。4. 控制系统实现功率外环、电流内环与子模块级控制4.1 整流侧定直流电压控制定位一个背靠背系统里必须有一侧负责维持直流母线电压稳定这个任务一般落在整流侧。整流侧控制采用经典的双闭环外环把直流电压测量值和给定值20kV做差经过PI调节器输出有功电流指令id_ref内环电流PI控制d轴电流跟踪id_ref输出电压调制信号的d轴分量。q轴电流指令可以独立设定例如维持交流侧单位功率因数或者补偿电网无功。直流电压外环的PI参数不能太快否则整个直流母线电压会振荡。通用规律是电流内环带宽取300~500Hz外环带宽取内环的1/5到1/10也就是50~100Hz左右。这个“内外环带宽拉开”的原则非常重要两个环路如果带宽接近系统极容易产生谐振。4.2 逆变侧定功率控制与电力质量调节模式逆变侧直接面对需要治理的电网所以“电力质量调节”主要靠逆变侧实现。常规运行时有功功率外环和无功功率外环分别输出id_ref和iq_ref给内环电流控制器。当需要治理电压跌落时逆变侧可以切到定交流电压控制模式用母线电压偏差生成无功电流指令快速抬升电压。当需要治理谐波时在逆变侧控制中加入谐波提取环节把负载电流中的5、7次谐波分离出来生成谐波补偿电流指令。这就是背靠背系统的灵活性所在整流侧管能量传输和安全逆变侧管质量指标两边通过直流母线电压这个中间量解耦调节策略可以独立设计和优化互不干扰。4.3 环流抑制MMC绕不开的百Hz问题三相MMC的桥臂之间存在环流主要成分是二倍频负序环流频率就是2×50100Hz。环流不会流到交流侧和直流侧的外部端子但会显著增大桥臂电流有效值增加损耗和器件应力还会恶化电容电压均衡。抑制环流的常见做法是加环流抑制控制器CCSC。工程上有两种实现一种是在负序二倍频旋转坐标系下加PI控制另一种是在静止坐标系下用谐振控制器PR控制器对100Hz分量做定点抑制。我在Simulink里用的就是PR控制器谐振频率设为628rad/s比例系数Kp取5左右谐振系数Kr取200~300调试起来比较直观。环流抑制器输出的补偿信号叠加到调制电压参考上桥臂电流的100Hz分量就能明显压下去。4.4 子模块电容电压均衡的排序算法MMC正常工作的大前提是所有子模块电容电压都维持在额定值附近不能有的高有的低。排序法是目前工程中最常用的均压策略思路很简单每个控制周期读取桥臂所有子模块电容电压并按大小排序再根据当前桥臂电流的方向决定投入哪些子模块。充电状态下桥臂电流流入电容优先投入电压最低的那批子模块让它们多充电放电状态下桥臂电流流出电容优先投入电压最高的那批子模块让它们多放电。这样每个周期都在动态平衡电容电压整体就能稳定在额定值附近。在Simulink里可以用一个MATLAB Function模块实现排序逻辑参考代码如下function gates sm_capacitor_sort(vc, iarm, N_on) % vc: N维电容电压向量, iarm: 桥臂电流, N_on: 需要投入的子模块数量 % gates: 输出的门极信号向量1表示投入0表示切除 [~, idx] sort(vc); gates zeros(size(vc)); if iarm 0 % 充电状态投入电压最低的N_on个子模块 chosen idx(1:N_on); else % 放电状态投入电压最高的N_on个子模块 chosen idx(end-N_on1:end); end gates(chosen) 1; end这里N_on是从调制策略模块实时算出来的。排序算法虽然简单但要注意控制周期不能太慢一般取0.1~1ms周期太长电容电压就会发散。4.5 调制策略选择最近电平逼近NLM子模块数量少的时候可以用载波移相PWM每桥臂每个子模块一路载波逻辑简单但子模块一多载波数量就爆炸开关频率也高。仿真中我强烈推荐使用最近电平逼近调制NLM它只需要根据调制波实时计算当前需要投入的子模块数量N_on round(N×(0.5 - m_ref/(2×Vc)))其中m_ref是换流器输出的调制波参考值Vc是子模块电容额定电压。NLM没有固定开关频率的概念每个工频周期内子模块只导通和关断不了几次开关损耗低仿真速度也快。这个方案在实际柔性直流工程里也是主流选择。5. 控制参数整定从物理模型到可用的PI数值5.1 电流内环PI参数怎么算出来电流内环控制的对象是桥臂电感和等效电阻构成的RL一阶环节。电流环带宽fc取300Hz时PI参数可以按下面两个公式粗略估算Kp L×(2π×fc) Ki R×(2π×fc)代入L10mHR0.15Ω含线路电阻和器件等效电阻fc300HzKp 0.01×1885 ≈ 18.85 Ki 0.15×1885 ≈ 282.7这个算法很粗但出来的数值可以作为初始值然后在Simulink里微调10%~30%就能稳定。电流内环的输出还需要加上解耦项d轴与q轴的耦合补偿和电网电压前馈项才构成最终的调制电压参考。5.2 直流电压外环和功率外环的整定顺序直流电压外环和功率外环整定逻辑相似。实际操作中我的习惯是先把电流内环调稳定再调外环。外环比例系数从零开始慢慢加大观察直流电压波形出现振荡立刻回调稳定后再一点点加积分项。这个“先P后I”的方法对双闭环调试百试不爽比直接套公式然后疯狂调参要高效得多。还有一个重要约束外环带宽必须低于内环带宽的1/5否则系统容易自激振荡。内环带宽300Hz外环带宽一般取50Hz左右对应的PI比例系数可以用直流侧等效电容和额定功率来估算。外环增益初值取内环的0.1倍左右再按响应速度微调。5.3 离散化与仿真步长选择Simulink里的电力电子仿真建议使用离散求解器固定步长。NLM调制模式下步长取10μs~50μs都能跑出较细腻的波形。步长太小仿真速度太慢步长太大电平切换时刻误差大波形毛刺多。如果整个平台子模块数量大仿真跑起来像蜗牛可以用两个办法一是把仿真模式切到加速器模式Accelerator在子模块很多时提速非常明显二是考虑用均值模型代替开关模型桥臂用受控电压源等效仿真速度能提升几个数量级但代价是看不到子模块电容电压波形和开关过程细节。6. 仿真验证场景设计电力质量调节效果怎么量化6.1 场景一有功功率阶跃响应验证动态性能首先做一个基本功测试逆变侧有功功率指令在0.5s时从1MW跳到4MW观察直流母线电压波形。正常情况下直流电压会在0.1~0.3s内恢复稳定超调不超过5%。如果直流电压振荡衰减很慢说明外环PI参数偏大或直流侧电容偏小如果直接发散基本可以断定内外环带宽没有拉开内环还没跟上外环就拼命输出指令。这里有一个判断细节动态响应看的是能量平衡能力。直流母线电容相当于一个储能缓冲池功率突变后直流电压必然有波动关键看波动幅度和恢复时间。波动太大说明直流电容容量偏小或者外环反应过猛恢复太慢则说明外环带宽偏低增益不够。6.2 场景二电网电压暂降穿越在逆变侧接入可编程三相电压源设置在1.0s时电压跌落到额定值的70%持续0.5s后恢复。这是最能体现“电力质量调节系统”价值的场景。没有背靠背MMC时电网电压暂降会直接传导到负载端有了背靠背系统后整流侧维持直流母线电压稳定逆变侧通过无功支撑把交流电压尽量维持在额定值附近。观察要点有三个暂降期间直流母线电压是否稳定逆变侧输出的交流电压是否被及时补偿以及暂降结束后系统能否平滑恢复。合格的系统负载端电压恢复时间应该控制在几个毫秒以内。6.3 场景三非线性负载谐波治理在逆变侧并联一个三相不控整流桥带阻感负载这种负载是典型的谐波源会产生5次、7次等特征次谐波电流。先不给背靠背系统加谐波补偿控制记录接入点电压的THD总谐波畸变率再启用谐波治理模式对比THD变化。在我的仿真模型里启用谐波治理后接入点电压THD通常能从8%~12%压到3%~5%以内效果非常直观。这里要强调一点谐波治理效果不仅看THD数值还要看补偿电流的实时跟随性如果补偿通道带宽不够高次谐波比如13次以上就会残留THD改善有限。6.4 波形判读的几个细节看仿真波形不能只看稳态值要关注三点暂态过程的阻尼情况。电压或功率波形如果出现反复振荡说明阻尼不足需要调PI参数。电容电压的周期纹波。电容电压曲线如果出现明显的周期性尖峰说明排序算法和调制策略的配合还不理想。桥臂电流的二次谐波包络。桥臂电流如果出现明显的100Hz波动就是环流抑制器没调好。仿真结果最好用MATLAB脚本做FFT分析、THD计算、电压偏差统计只用肉眼看Scope很难给出说服力强的量化结论。7. 常见问题与调试避坑实录7.1 仿真一开始就发散这是一个出现频率最高也最让人头疼的问题。排查顺序可以是先检查求解器是否设置为离散固定步长再查子模块电容初始电压是否设置成了额定值2kV最后查PI参数是否过激。我遇到的案例里很多发散不是模型结构错误而是初始状态设置太离谱导致启动瞬间过流。解决办法是给控制器加一个启动斜坡爬升指令让功率、电压在0.1~0.2s内逐步上升到目标值。7.2 子模块电容电压越差越大电容电压无法均衡通常有三个原因排序控制周期太长、未按桥臂电流方向正确选择投入子模块、调制指令和排序模块计算的N_on不匹配。建议先把排序周期压到0.2ms以下再用开环固定调制单独测试排序逻辑的正确性。如果开环排序是好的再检查闭环时N_on计算是否出现了截断和舍入错误。7.3 直流母线电压出现显著的100Hz脉动直流母线出现二倍频波动最常见的原因是两侧变流器的环流抑制都没有真正起作用。先把整流侧的环流抑制器调好再看逆变侧两侧都压住后直流电压波动会明显下降。需要注意直流支撑电容容量偏小也会加剧这个问题如果环流抑制调完脉动还明显就要检查支撑电容是不是太小了。7.4 仿真跑得太慢怎么办大量子模块的开关器件模型每一步仿真都要解算很多非线性元件计算量非常大。我建议按情况做降复杂度处理用均值模型替代开关模型每个桥臂等效为一个受控电压源仿真速度能提升5到10倍减少子模块数量到5~6个保留控制和均压逻辑的完整性少开Scope关键信号用outport输出跑完用脚本绘图。我实际操作时一套每桥臂10个子模块的背靠背系统模型在加速器模式下还能接受但要是把六个Scope全开仿真时间能翻好几倍。7.5 稳压外环、电流内环、环流抑制和电容排序同时出问题怎么排查这是MMC调试最容易陷入混乱的地方。当四个模块同时工作、同时出问题时状态之间互相干扰根本没法定位问题根源。我的建议是按“由内向外逐级闭环”的顺序启动先开环给固定调制信号确认主电路和测量环节没问题启动电容电压排序逻辑确认均压算法正确启动电流内环确认电流能跟踪指令启动环流抑制确认100Hz分量被压住最后再合上功率外环或直流电压外环。每一步都确认波形正常后再进行下一步。这个看似繁琐的流程实际上反而是最快找到问题的方法。跳过任何一步出问题时你都会面对一个“全是问题、无从下手”的模型。最后一个实用经验整套背靠背MMC系统从零搭到能复现电力质量调节效果我前后调试大概三周时间。最花时间的不是MMC拓扑本身而是分清“模型问题”和“控制问题”——模型接线错基本一仿真就炸控制参数不对通常表现为“能跑但波形不干净”。如果只让我给一条建议那就是别跳步先把NLM调制加排序逻辑在单个桥臂上验证干净再往整个背靠背系统上扩展。这套模型后续接风电、光伏或者做孤岛供电扩展都很有空间核心控制框架不用大改换的只是外环功率目标和保护策略。希望这篇记录能帮你少走几步弯路。