Simulink背靠背MMC电能质量调节系统建模与仿真解析
把Scope窗口里的曲线放大我盯着屏幕上那两条波形的变化看了很久背靠背MMC投入之前负载侧母线电压还存在明显畸变电流波形里谐波分量清晰可见换流器解锁之后电压波形慢慢变成了一条平滑的正弦线电流里的毛刺也被压了下去。这是我在Simulink里把背靠背高压直流调制多电平变流器MMC作为电力质量调节系统跑通后的第一个直观感受。说不上多惊艳但看着从建模、控制到调试一步步走过来的模型终于输出理想波形还是挺有成就感的。这篇东西不是教科书复述是我自己从零搭建背靠背MMC仿真模型、并让它体现电能质量调节效果的完整过程包括主电路参数怎么定、控制环怎么设计、Simulink里哪些细节容易坑人以及最后怎么用波形和指标验证“电力质量调节”确实有效果。适合正在做MMC方向课程设计、毕业课题或者工作中需要评估MMC作为电能质量治理装置可行性的工程师参考。如果你已经用过Simulink做过简单逆变器仿真那这篇内容完全可以跟着落地。1. 为什么非要用背靠背MMC做电能质量调节1.1 单个换流器解决不了两侧解耦的问题很多人一听到电力质量调节第一反应是上SVG或者APF——静止无功发生器加上有源滤波确实能解决大部分电压波动和无功补偿问题。但这类装置有一个天然限制它只能接在电网的某一个节点上对电网侧和负载侧的交互影响基本没法隔离。比如负载侧某个大功率整流装置启动时产生的谐波和电压跌落会顺着母线直接传染给电网侧而电网侧发生电压闪变负载侧也会跟着抖。如果你要的是“两边互不污染”单个换流器做不到。我在做这个仿真前先花了不少时间想清楚一个问题背靠背MMC本质上不是“在电网节点上并联一个补偿装置”而是“把电网和负载从物理上解开再通过直流母线建立受控的能量通道”。整流侧MMC从电网吸收有功功率同时控制电网侧的无功功率和电压逆变侧MMC向负载输出工频交流电同时承担调压、补偿谐波、平衡三相负荷这些任务。两侧之间只有有功功率通过直流母线流动无功和谐波各管各的互相不影响。1.2 多电平换流器的“软”特性从哪来背靠背MMC里用的是模块化多电平换流器它不是传统两电平VSC那样靠PWM在高压直流和交流侧之间强行斩波而是每个桥臂由几十个半桥子模块SM串联而成。通过控制每个子模块的投入和切除数量交流输出电压能一步一个台阶地逼近正弦波台阶越多波形就越好。这个结构特点在电能质量调节场景里特别值钱。因为MMC每相有上下两个桥臂每个桥臂还有一堆子模块整个换流器就相当于一台可以精确调节的受控电压源。它输出的交流电压的幅值、相位、频率甚至波形形状都能通过控制指令改。换句话说它不只是把电网电压传递到负载侧而是“重新生成”了一个负载侧电压——电网侧的电压畸变、谐波、闪变只要不转化为有功功率波动负载侧基本感觉不到。1.3 这个仿真到底要回答哪几个问题在动手之前我把这次仿真要实现的目标收敛成了五条背靠背MMC两侧需要独立控制控制策略怎么分配才算合理逆变侧能不能在负载突加突卸时维持负载母线电压稳定电网侧电压波形谐波能不能被隔离不再传播到负载侧非线性负载或三相不平衡负载接入后MMC是否能主动补偿谐波和负序电流整个系统在Simulink里用多大步长、多少子模块数量才保证精度和速度的平衡。这几个问题不是凭空想的而是实际评估MMC用作电能质量调节系统时必须回答的核心问题。仿真模型就是回答这些问题的最好工具它比理论推导直观又比现场试验便宜得多。2. 动手搭建前先定主电路参数和控制方案2.1 一个能跑的中压配网背靠背MMC模型参数怎么选仿真不是越复杂越好关键是参数要自洽。我这个模型设定为中压配网场景额定容量5 MVA两侧交流系统都是10 kV/50 Hz直流母线电压设计为20 kV。为了让仿真时间和精度平衡每个桥臂的子模块数量选了8个这样单侧单相桥臂一共16个子模块背靠背整机加起来是96个半桥子模块。如果N取到几十个仿真速度会明显变慢而且对电能质量研究来说8电平的波形质量已经足够说明问题。子模块电容的选取我参考了工程上常用的能量存储约束。MMC子模块电容设计一般要求整个换流器的能量存储时间常数在30~40 kJ/MVA左右。按5 MVA算系统总储能大约在150 kJ到200 kJ之间。由于每个桥臂8个子模块直流电压20 kV每个子模块平均电压是2.5 kV。这一套参数算下来单电容取值在4 mF左右比较合适我用4 mF建模仿真时电容器电压纹波约在8%以内符合预期。桥臂电感的取值参考典型值0.1 pu。根据10 kV/5 MVA的基准值计算基准阻抗Z_base是20Ω0.1 pu对应的电感量大约是6 mH。这个电感的作用有两个一是限制环流二是作为换流器与交流系统之间的能量交换缓冲。我实际试过从3 mH到10 mH的区间电感太小环流抑制压力很大电感太大又会拖慢电流响应速度6 mH在这个系统里比较均衡。主要参数如下表参数数值说明额定容量5 MVA中压配网级别交流线电压10 kV / 50 Hz两侧相同直流母线电压20 kV背靠背公共直流母线每桥臂子模块数8兼顾波形质量与仿真速度子模块电容4 mF按30~40 kJ/MVA能量约束选取桥臂电抗6 mH约0.1 pu子模块平均电压2.5 kV由直流电压和N值决定2.2 三层控制嵌套外环给指令内环跟电流环流抑制兜底背靠背MMC的控制系统比普通两电平VSC要复杂一截因为它不仅要有交流电流控制还要管直流母线电压、子模块电容电压以及桥臂内部的二倍频环流。我这个模型里整流侧MMC的控制策略是“定直流电压定无功功率”。直流电压外环的PI输出作为有功电流内环的d轴参考值无功功率外环输出作为q轴电流参考值。这套逻辑很成熟和普通VSC的矢量控制差别不大只是底层执行对象从两电平桥臂变成了多电平桥臂。逆变侧MMC的控制策略是“定有功功率定交流电压幅值”同时兼顾负载侧电能质量。有功功率外环用于设定背靠背系统传输的有功大小交流电压外环用于稳定负载母线电压。对于谐波补偿功能我在逆变侧电流内环的参考值上叠加了通过陷波器提取的谐波电流分量让逆变侧MMC主动输出与负载谐波电流大小相等、方向相反的补偿电流。环流抑制是MMC控制的一个重要环节。由于上下桥臂电压之和存在二倍频波动会在桥臂内部产生二倍频环流这个环流不流到外部但会增大器件损耗和电容电压波动。我用的方法是在每相上下桥臂电流相加得到环流后提取其二倍频分量通过一个谐振控制器或负序坐标变换后的PI控制器来抑制。Simulink里直接搭谐振控制器要小心离散化后的频率偏移用负序dq变换加PI反而更稳。用生活类比来理解这三层控制外环就像公司管理层只定目标——直流电压稳在20 kV、负载电压稳在10 kV、要传输多少有功内环就是执行层负责让实际电流快速跟上管理层给的指令环流抑制则是后勤部门专门处理系统内部“自己跟自己较劲”的多余能量。2.3 调制策略为什么我选了载波移相PWM子模块数量到了8个调制策略的选择就有讲究了。常见的有最近电平逼近调制NLM和载波移相PWMCPS-PWM。对于几十上百个子模块的输电级MMCNLM是主流因为电平数量多每个子模块的开关频率可以压得很低但对于8个子模块的模型NLM的输出电平台阶只有9个在低调制比下谐波会比较明显而CPS-PWM通过8个相位错开的载波等效开关频率提高了8倍谐波分布更均匀滤波负担也小。CPS-PWM的实现逻辑不复杂每个子模块配一个三角载波载波频率2 kHz相位依次错开π/N。环流抑制和电压均衡之后产生的调制波和每个载波比较生成每个子模块的开关信号。在Simulink里我直接用比较器配合锯齿波/三角波发生器实现注意每相上桥臂和下桥臂的载波起始相位要在时间轴上对齐否则桥臂之间会出现不对称。除了调制策略还要解决子模块电容电压均衡的问题。简单可靠的策略是“排序法”——在每个控制周期里测量桥臂所有子模块的电容电压根据桥臂电流方向决定投入电压最高还是最低的子模块。排序法在Simulink里用MATLAB Function块写起来非常顺手一个周期跑完也就几行代码。虽然它不是最优算法但对于中等数量子模块的仿真模型来说计算量小均衡效果直观可见。2.4 模型精度和仿真代价怎么平衡仿真模型建到什么精度是Simulink用户经常纠结的问题。背靠背MMC整机96个子模块如果全部用IGBT和二极管的具体开关模型Simulink里会引入大量开关非线性仿真步长可能被迫压到亚微秒级跑一个0.5秒的工况耗时非常长。更现实的做法是先跑速度快的简化模型把控制逻辑调通再局部替代成详细模型做波形级验证。我给了自己三个档次的模型选择模型形式建模方法速度用途开关级详细模型IGBT二极管电容慢验证最终波形与损耗理想开关模型用理想开关替代IGBT中等观察电压电流波形细节平均模型受控电压源替代桥臂快调PI参数、验证控制逻辑我的实际策略是先用平均模型把背靠背系统的功率平衡关系、直流电压控制、两侧交流电流控制整体调通再把逆变侧换成理想开关级子模块模型做电能质量波形分析这样能把整个开发周期压缩一大半。3. Simulink里搭建背靠背MMC模型的关键步骤3.1 工具箱准备和版本选择这部分的硬件基础很简单MATLAB/Simulink加Simscape Electrical工具包就够了。我用的是R2021a版本后面如果你用更高版本模块库里部分名字会有变化但基本思路一致。Simulink里做MMC相关仿真有三种路径一是直接用Simscape Electrical里的“MMC Converter”现成模型二是自己搭子模块三是用受控源搭平均模型。我强烈建议如果你是第一次接触MMC不要直接用现成的MMC模块因为那个封装之后的模型黑盒感很强出了问题你根本不知道哪里错。自己搭子模块虽然前期费时间但对理解MMC工作原理、后面调试控制参数都有巨大帮助。等你自己搭的模型跑出来了再去对比官方模块的行为才会真正看懂背后的物理过程。3.2 半桥子模块和桥臂的建模一个半桥子模块在Simulink里能拆成两个理想开关或IGBT加二极管、一个直流电容、一个电压测量端。为了简化仿真我先用了Simscape Electrical里的Ideal Switch这样不用处理IGBT的导通压降和死区问题仿真速度更快。两个开关一组状态互补电容要么接入桥臂要么被旁路逻辑简单清晰。子模块封装的时候一定要把门控信号和电容电压反馈端子留好。门控信号来自CPS-PWM比较器电容电压反馈则送给排序算法。我在这个模型里还给每个子模块加了一个并联放电电阻用来模拟实际工程中的均压电阻这样仿真初期直流侧预充电阶段电容电压能自然均匀。桥臂我按“N个子模块串联后加桥臂电感”的方式搭建。上下两个桥臂在交流输出端相连形成MMC的单相桥臂对。这里有个容易忽略的细节桥臂电感必须放在子模块串和交流输出端口之间这样才对环流和短路电流有抑制作用。我一开始把它放在子模块串后面结果环流抑制效果完全不对波形里出现了很大的震荡分量查了半天才发现是电感位置摆错了。3.3 背靠背直流环节怎么接背靠背结构在Simulink里体现为两个MMC共用一条直流母线。我没有额外给直流侧加长线路因为既然叫“背靠背”中间就是极短的直流连接线路电感电容可以忽略。直流母线我加了一个平波电容和直流电压测量点用来给整流侧直流电压控制环提供反馈信号。整流侧MMC和逆变侧MMC在这个共享直流母线上必须满足功率平衡简单说就是整流侧送进来的有功功率要等于逆变侧送出去的有功功率加上系统损耗。如果失衡直流电压就会飙升或跌落。这个关系在控制设计时就要刻在脑子里整流侧保住直流电压逆变侧决定有功流动两边才能稳定运行。3.4 控制系统搭建和离散化处理控制系统的搭建建议全部放在离散域。Simulink里常规模拟PI控制器在连续域看起来调得不错但一接到PWM生成和开关逻辑这种离散环节就会出现意料之外的延迟控制器参数必须重新校正。我直接用了离散PI控制器控制频率选10 kHz也就是控制周期100微秒这样和CPS-PWM的等效开关频率匹配。坐标变换和锁相环这个环节Simulink里用“abc to dq0”模块和内置PLL即可。整流侧和逆变侧各需要一个PLL分别锁定各自交流母线的电压相位。这里有一个我踩过的坑背靠背两侧交流系统频率和相位不同PLL必须分别工作绝不能共用一个相位信号。我一开始想省事把整流侧PLL输出的相位直接给逆变侧用结果逆变侧电流控制完全跟不住参考值波形直接发散。pwm载波比较部分我用一个重复序列模块生成三角载波周期设为载波频率2 kHz的倒数相位控制通过一个初始相位参数设定。8个子模块的载波相位按π/8间隔排列这里可以通过一个计数器模块加比较器实现避免手动搭8份载波模块。3.5 仿真步长的选择直接影响结果可信度Simulink仿真步长是这种电力电子仿真最容易翻车的环节。系统里同时存在PWM开关动作、子模块电容充放电和控制器的离散采样任何一层的时间分辨率不够都会导致结果失真。我这里先跑了理想开关模型使用固定步长1微秒的离散求解器。1微秒对应2 kHz PWM一个开关周期有500个仿真点分辨率足够。如果把步长放到2微秒甚至5微秒电容电压波形和PWM脉宽细节会明显变形环流抑制效果也会被高估或低估结论就不可信了。如果你用平均模型做控制参数整定步长可以放宽到5微秒因为不存在开关事件数值刚性会小很多。但一旦切回详细开关模型建议立刻把步长压回1微秒。还有一个经验Simulink默认的变步长求解器在PWM仿真里容易在开关切换点不断缩小步长导致仿真速度异常慢。换固定步长配合离散求解器速度和稳定性反而更好。4. 结果分析从波形和指标看电能质量调节效果4.1 稳态波形怎么看看哪几个点模型搭完首先要看稳态波形是否正常。我习惯看四个关键波形整流侧交流电流、逆变侧交流电压、直流母线电压、子模块电容电压。逆变侧交流电压波形在CPS-PWM下呈现8电平台阶整体轮廓是干净的正弦波这个看一眼就知道调制逻辑对不对。如果台阶数不对或者有的台阶宽度不均匀通常是载波相位设置错误。直流母线电压在稳定工况下应维持在20 kV附近纹波峰峰值一般在2%到4%之间如果纹波明显偏大优先查环流抑制是否生效再看电容大小是否合理。子模块电容电压是我最关注的地方。正常状态下单个子模块电压应在2.5 kV附近小幅波动波动幅度在5%到10%之间符合预期。如果我发现某一相电容电压明显偏离平均值说明排序算法或环流抑制出了问题。这里多说一句排序算法在Simulink里如果用MATLAB Function块实现要注意把它设成离散采样模式采样时间取控制周期100微秒否则会引入代数环报错。4.2 用THD和功率因数给结果“打分”波形肉眼看着好还不够得用定量指标说话。我用Simulink里的Powergui FFT分析工具分别测了不投入背靠背MMC和投入后两种工况下的负载侧电压电流谐波。我在负载侧接了一个不可控整流桥加阻感负载这个负载典型且恶劣谐波含量高。没投背靠背MMC时负载侧电压THD在14%左右电流波形有明显的6k±1次谐波投入背靠背MMC并开启逆变侧谐波补偿后电压THD降到了3%以下电流THD也降到5%以内。这个数字虽然谈不上极限但已经满足大多数电能质量标准的低压侧要求。功率因数的变化也很有代表性。负载侧功率因数从原来的0.78提高到了0.98左右这里主要靠整流侧MMC提供无功支撑避免了电网侧额外加设电容器组。从这里能看出背靠背MMC作为电能质量调节系统的一个核心优势无功补偿是动态的、连续可调的不像机械投切电容器那样只能分级粗调。4.3 典型工况模拟用瞬态仿真验证动态补偿能力稳态指标合格了还要看动态性能。我在模型里设了三种瞬态工况。第一种是负载侧突加一个有功负载。在0.3秒前系统带轻载运行0.3秒时投入大功率负载。由于逆变侧MMC的交流电压外环响应负载侧电压跌落被控制在很小的范围内电压在20毫秒内恢复到额定值附近。整流侧直流电压在扰动瞬间有小幅跌落随后在直流电压PI控制器的调节下回升到20 kV。这个工况验证了背靠背结构对负载突变的“隔离”能力。第二种是模拟电网侧电压跌落。我把电网侧交流电源电压在0.4秒到0.6秒之间降低15%观察负载侧电压波形。由于两侧通过直流母线解耦电网侧电压跌落并不会直接传导到负载侧逆变侧只感受到直流母线电压的微小变化负载侧电压几乎维持不变。这在工程上相当于实现了动态电压恢复功能对敏感负载意义很大。第三种是不平衡负载补偿。我在负载侧加了一个单相大功率负载造成明显的三相不平衡和负序电流。逆变侧检测到输出电流中存在负序分量后通过负序电流控制策略主动输出补偿电流把负载侧三相电压的不平衡度从15%压到了4%以下。逆变换流器在dq坐标系下同时控制正序和负序分量这在Simulink里需要多一套负序旋转坐标系的控制环实现起来比想象中麻烦但波形投入后能看到明显的补偿效果。4.4 一次真实的调参踩坑记录环流抑制引起的恶性循环仿真并不是一路顺风的。中间有几个晚上我都在跟一个诡异的现象较劲系统启动后正常运行几十毫秒然后电容电压开始发散紧接着直流母线电压开始震荡最后直接把仿真“跑飞”。最开始我以为是PI参数问题把直流电压外环的增益压低了没用后来怀疑排序算法把电容电压均衡的优先级提到最高也没用。最后我把电容电压波形和桥臂环流波形叠加在一起看才发现环流分量在失控前已经出现了明显的负阻尼增长。问题出在环流抑制控制器的采样频率。我把环流抑制放进了一个控制频率只有2 kHz的子系统中而二倍频环流是100 Hz理论上2 kHz采样足够但实际环流抑制的闭环响应延迟太大导致控制器非但没抑制环流反而给环流引入了负阻尼形成恶性循环。把环流抑制控制器的采样频率提升到10 kHz后波形立刻稳定下来电容电压纹波也回到了正常水平。这个坑让我记住了MMC控制系统里的不同控制环采样频率不能一刀切。电流内环和环流抑制要对齐到较高频率外环可以适当降低但内部环路的频率必须高于被控对象的特征频率。5. 几点个人体会和后续扩展方向这次把背靠背MMC在Simulink里作为电力质量调节系统完整跑通我最大的体会是“分层推进先简后繁”。如果一上来就堆96个IGBT开关模型大概率还卡在仿真速度的泥潭里别说调控制了连模型能不能完整跑完都是问题。先做平均模型把整流侧定直流电压、逆变侧定交流电压的两侧功率平衡关系吃透再逐渐加入子模块开关细节这条路径对初学者是最友好的。另外我觉得MMC仿真和传统两电平VSC仿真在调试思路上有一个显著区别两电平只看外部输出波形基本就够而MMC还必须盯内部状态量比如桥臂环流、子模块电容电压、子模块之间的均衡程度。这些内部状态直接决定系统能不能稳定运行也直接影响输出电压波形质量。做MMC仿真时至少要把环流波形和电容电压示波器常驻在界面上随时观察。如果你后续想在这个基础上继续深挖我建议可以往三个方向走换流器控制策略升级。当前用的是经典矢量控制加环流抑制如果换成模型预测控制或虚拟同步机控制动态响应和弱网适应性会更好仿真模型的控制结构也要大改。故障穿越能力建模。给背靠背MMC加入交流侧对称和不对称故障工况研究直流母线过电压、过电流的抑制策略。这在实际工程选型时是电网公司必问的问题。实时化验证。Simulink建好的模型可以通过代码生成工具部署到RT-LAB或FPGA在环平台上做实时仿真这个模型的控制结构完全可以作为起点。如果你也想做类似方向建议先把自己的交流系统参数和控制目标写在一张纸上再开始建模。参数自洽的系统比盲目追求高N值的系统更能说明问题也更适合作为研究成果呈现。后面如果搭建过程中遇到什么奇怪的现象欢迎根据我上面列的几个排查方向自查一遍多半能找到原因。