
1. 为什么要把MMC和VSG放在一起在新能源并网领域摸爬滚打这些年我越来越觉得有个趋势特别明显设备越来越像“发电机”但骨子里却越来越不像传统发电机。模块化多电平换流器MMC和虚拟同步发电机控制VSG的组合就是这一趋势下被反复研究、反复验证最终被推到台前的一套方案。先说MMC。它本质上是电压源型换流器的一种通过级联大量半桥子模块来逼近正弦波解决了传统两电平换流器在中高压、大容量场景下开关损耗大、谐波差、器件耐压不足的痛点。柔直输电是MMC的主战场但很多做微电网、分布式能源、储能并网的人也开始盯上它原因很简单MMC的电压、功率等级覆盖范围宽扩展性好子模块冗余带来的可靠性和波形质量远非传统方案可比。再说VSG。它的思想非常朴素——既然电网里同步发电机天然具备惯性和阻尼支撑系统频率稳定那电力电子换流器为什么不把同步发电机的摇摆方程“写进”控制代码里在控制器里虚拟出一台同步发电机定子侧的电压、电流、有功、无功外特性都按转子运动方程来推算。这样一来从电网侧看这台换流器不是一个“跟屁虫”而是一台能主动响应频率扰动、提供等效转动惯量的发电机。把MMC和VSG结合解决的是一类很实际的问题中高压并网场景下换流器不能“无感”地挂在电网上它必须参与系统的频率调节和电压支撑。而MMC的阶梯波调制、子模块均压、环流抑制这些低层控制又恰好需要一个更上位的、能够表征功率变化与外部响应的控制目标。VSG恰好填补了这个位置。这篇文章适合谁看两类人收获最大。一类是正在做MMC柔性直流工程或中高压电能路由器研究的工程师另一类是做新能源并网仿真、但受够了“PLL锁相同步”那一套传统跟网型控制的同学。我会把从控制架构、参数计算、仿真建模到调参踩坑的完整链路都梳理一遍尽量讲清楚每一步为什么这么做以及哪些地方最容易翻车。2. 整体系统架构与控制层级划分2.1 MMC的基本结构还是先说透MMC的拓扑大家都不陌生但为了后文展开我还是要简单复述一下关键点。每相有上下两个桥臂每个桥臂由若干个半桥子模块SM和桥臂电抗L串联组成。每个半桥子模块主要由IGBT、二极管、电容构成靠开关状态决定是“投入”还是“切除”。电容电压基本稳定在设定值附近通过阶梯波逼近正弦。这里有个容易忽略的细节MMC桥臂电流中含有直流分量、基波交流分量和2倍频环流分量。环流分量是导致桥臂电流畸变、增大损耗和器件应力的元凶控制上必须引入专门的环流抑制环CCSC来压掉它。没有这一步VSG做得多漂亮整体波形也不会好看。后面我会专门讲这个环的调试心得。2.2 VSG控制器的“内芯”是什么VSG控制的核心是那个经典的二阶摇摆方程[ J \frac{d\omega}{dt} T_m - T_e - D(\omega - \omega_0) ]其中Tm是机械转矩由有功功率参考换算而来Te是电磁转矩由输出有功计算得到J是虚拟转动惯量D是阻尼系数ω是虚拟角速度ω0是额定角速度。电磁功率与角速度通过积分一次得到虚拟相位相位再送给下层电压参考天然构成一个功率同步环。同时VSG还包含一个无功—电压下垂环节。通常采用[ E E_0 k_q(Q_{ref} - Q) ]或者更常见的 (E E_0 n(Q_{ref} - Q)) 形式。输出的E和θ送进电压生成环节合成三相电压参考值。这也解释了为什么VSG是“电压源型”控制——它给出的是一个幅值可调的三相电压源而不是一个注入电流源。2.3 MMC与VSG之间的控制层级如何衔接MMC本身层面有四个层次的控制外环功率控制、内环电流控制、环流抑制、调制与子模块均压。VSG加进来以后实际上是把最外层的功率外环替换掉——VSG生成相位和幅值再给到内环电流控制作参考。也就是说整条链路由上到下是VSG虚拟转子方程 → 生成电压幅值与相位 → dq坐标系下的电压外环/电流内环跟踪 → 环流抑制 → 子模块电容均压 → 最近电平逼近调制NLM → 开关脉冲。有个工程上的教训我提过很多次很多人喜欢给VSG层级的输出直接接外环PI但这样做会引入大量不必要的惰性环节削弱虚拟惯量带来的动态响应优势。正确做法是让VSG直接给出电压级参考下层用电流内环做限幅和保护中间不要堆PI。3. 关键参数计算与设计逻辑3.1 子模块电容、桥臂电抗的工程取值这部分最考基本功。子模块电容取值与桥臂每周期储存的能量波动有关工程上习惯用储能时间常数 (H_{SM}) 来估[ C_{SM} \frac{2 S_N T_{sys}}{3 N V_{dc}^2} \cdot H_{SM} ]其中S_N是系统额定功率N是每桥臂子模块数Vdc是直流母线电压。柔直工程中H_SM通常在30~50ms之间如果做微网仿真建议先从40ms起步。电容选大一些基频与二倍频电压波动会小一些但动态响应会变慢启动充电时间也会拉长。桥臂电抗的取值一般以限制环流幅值为目标设计时保证在基频下电抗压降约在5%~15%。经验公式可以用[ L_{arm} \frac{V_{dc}}{8 f_1 I_{cir_peak}} ]I_cir_peak是允许的环流峰值一般取额定功率下桥臂电流基波幅值的10%~20%。参数之间是耦合的我建议先定电容再算电抗最后校验并网电流的THD。3.2 虚拟转动惯量J和阻尼系数D到底怎么定这是VSG调参中最“玄学”的地方。很多人一上来就套同步机参数其实大可不必——虚拟参数不是真实物理参数它的取值由你要模拟的动态行为决定。先看阻尼系数D。稳态调差率决定了VSG在频率偏差下的稳态功率输出偏差设调差系数为σ%则[ D \frac{\Delta P}{\omega_0 \cdot \Delta \omega} ]比如系统额定功率10MVA期望频率偏移0.5Hz时满发功率调整10%那么D约为额定功率除以2π×0.5再乘调差系数对应的增益算下来大约在3.18×10^5 N·m·s/rad的量级。再看J。J影响着系统阻尼比和无阻尼自然振荡频率。机械振荡方程写成标准二阶形式可得[ \omega_n \sqrt{\frac{K_s}{J}},\quad \zeta \frac{D}{2}\sqrt{\frac{1}{J K_s}} ]K_s是同步转矩系数由额定电压、电抗和功角共同决定。工程上建议把ζ控制在0.707以上再反推J的取值。初调时可以用额定功率除以额定角频率再乘2作为J的初始量级然后逐步增大观察有功功率超调量和频率变化率。经验值是J越大频率变化率越小超调越大响应越“肉”D越大阻尼越强但稳态频率偏差越大。两者需要在仿真里来回调两三轮才能真正匹配好。3.3 低通滤波与惯量解耦的补充处理很多VSG实现会在功率计算后加一个低通滤波器滤掉电压电流中的开关纹波。但我提醒过几次低通滤波器的截止频率不能太低否则会严重削弱有功环的动态响应而且会和J、D产生耦合形成“相位滞后加大惯量”的假象。一般截止频率设在50~200Hz之间用二阶滤波而非一阶能有效兼顾纹波抑制和动态指标。更讲究的做法是加一个带前馈的功率观测器把滤波环节从控制环中“剥离”出去。4. 仿真建模与核心环节的实现过程4.1 模型平台选择与结构划分我建议直接在MATLAB/Simulink里搭用Simscape Electrical模块库做MMC主电路控制部分用离散S-Function或者纯Simulink模块实现。整体结构分为三块主电路MMC滤波电抗无穷大电网、控制电路VSG电流内环环流抑制、调制部分载波移相或最近电平逼近。如果做单个MMC并网仿真载波移相调制CPS-PWM更容易调通如果做大规模柔直NLM是更现实的选择。主电路一个常见的模型简化方案是每个子模块用电容加理想开关代替而不强行电力电子器件级建模。这样开关频率可以拉低仿真速度会快很多结果在控制层完全可信如果做器件损耗分析再个别模块换回详细器件模型即可。4.2 子模块均压与电容电压平衡的仿真实现子模块均压是MMC仿真里最容易被“忽略但后果立刻显现”的环节。均压策略最常用的是排序法在每个控制周期里对电容电压排序结合桥臂电流方向决定哪些模块投入。流程是采集所有子模块电容电压 → 排序 → 根据桥臂电流的正负决定“投入电压最低的N个模块”还是“投入电压最高的N个模块” → 结合最近电平逼近生成PWM脉冲。仿真时要注意一个细节排序不能每步都重新全排计算量太大且容易导致开关次数异常。通常做法是排序周期和控制周期解耦比如控制周期1kHz排序周期也是1kHz但利用“上一周期投入队列基本不变”的性质做增量排序。如果开关频率太敏感就加滞环防止子模块在电压相等的临界区域反复切换。4.3 环流抑制环的搭建细节环流抑制器是MMC控制里最“拿分”的部分。我在仿真中用的是基于二倍频负序旋转坐标系的抑制方法先将上下桥臂电流相加得到环流信号提取二倍频分量转换到2倍频负序dq坐标下用PI控制把d、q轴环流压到零。输出加在上下桥臂的调制电压上符号相反。这里有个调试要点环流抑制环的带宽要高于VSG外环但又不能太高否则噪声被急剧放大。PI参数我习惯先整定内环电流再整定环流抑制。桥臂电抗上的压降会直接影响环流抑制的稳态精度别把PI积分系数调到理论上能完全消除环流——那样系统容易振荡。实际环流控制在额定值的10%以内已经算合格。4.4 启动充电逻辑与预充电过程仿真启动阶段最容易一上来就崩。子模块电容从零到额定电压需要预充电过程这在MMC仿真里绝不能省。标准做法是先不触发脉冲让交流侧通过二极管整流把电容充到预期值附近等电容电压稳定后再闭锁解除并投入VSG控制。VSG切入时建议让相位先从当前PLL锁定的相位开始逐步逼近避免切换瞬间产生巨大的冲击电流。一个更稳妥的方法是采用斜坡软启动给定频率和幅值都做线性斜坡持续0.2~0.5s后再进入正常VSG控制。我测试过的具体参数预充电0.15s斜坡0.3s完全切入后0.2s加额定负载整个过程电流冲击率控制在2%以内。4.5 并网切换与离网切换的仿真验证VSG的另一个优越性体现在并离网无缝切换上。仿真里我专门搭建了“并网开关”逻辑并网时VSG跟踪电网相位离网时切到独立定频定压模式。这一块仿真模型的核心是并网切换前后虚拟转子的相位与电网相位保持差一个固定功角切换瞬间将所有控制器的状态量积分器输出、滤波状态做初始化对齐。如果切换瞬间出现较大冲击多半是相角未对齐或功率外环的积分器残留值太大。解决思路是切换前先把功率给定切到当前实际输出值打“功率清零”操作让外环积分器先归零再重新闭合。这一招在工程机上也同样有效。5. 仿真调试中的常见问题与排查实录5.1 电容电压发散这是MMC仿真里最常见、也最让人头大的问题。表象是子模块电容电压整体漂移或个别模块电压异常升高。排查顺序我总结为三步先看子模块电容参数是否一致很多发散问题只是因为仿真中设置了很小的电容容差再看排序算法是否在桥臂电流过零处失效最后查载波移相的角度初始值是否正确。有个我自己踩过的坑在CPS-PWM中各子模块载波初始相位差必须是 (2\pi / N) 均匀分布但我在某个版本里把角度写成了 (2\pi / (N1))结果从第5个子模块开始电压逐渐升高运行3s后直接发散。5.2 环流抑制控制量饱和导致波形畸变环流抑制环节输出幅值不是无限制的。如果计算出的抑制电压超过了调制比上限环路饱和后反而会引入新的谐波。典型现象是桥臂电流中出现明显的三倍频分量。排查方法很简单在环流抑制输出前加一个限幅模块限幅值取直流母线电压的5%~8%然后再观看波形。如果限幅前就频繁触及上限说明桥臂电抗选小了需要回第3节重新核算。5.3 VSG虚拟转子与PLL打架的问题VSG是不需要PLL的它的相位是自己积分出来的。但在并网调试和模式切换过程中仍然需要PLL作为启动辅助和相位监视。问题就出在两部分相位做差时初始对齐不正确。我这里的经验做法是PLL只用于启动同步和切换模式时的相位校正稳态运行时把校正量缓慢趋零做成一个只有微弱作用的“软锁相”。频率偏差小于0.1Hz时校正量为零不影响VSG的惯量响应。5.4 仿真步长与开关频率的匹配离散仿真中步长过大导致调制脉冲数与理论不符步长过小则运行一天仅算出几百毫秒。我给出的实用搭配是CPS-PWMMMC主电路用2~5微秒仿真步长控制部分用离散PWM载波只要把载波频率限制在1~2kHz不必仿真平台自动分配。如果做实时仿真则子模块用平均值模型加上实验验证比对误差控制在3%以内后再切换到详细模型做最终确认。5.5 负载突变下的功角振荡有功阶跃时虚拟功角可能会出现低频振荡。排查思路先按上文二阶方程调整J和D但还有两个容易被忽视的因素一个是VSG输出电压幅值下垂变化与电网电压幅值之间的角差耦合另一个是电流内环带宽过低导致的等效输出阻抗过大。前者建议加功角限制器让功角理论值不超过35°即进入阻尼优先模式后者提高电流内环PI整定的比例系数必要时加上前馈解耦。6. 从仿真走向工程的那些细节补充很多人以为仿真通过了就万事大吉但MMCVSG在实际工程中还有几关要过。第一关是通信延迟。MMC每个桥臂几十个子模块控制器与子模块之间光纤通信的延迟时间不可忽略。VSG这种“有惯性”的控制还好但均压算法对延迟非常敏感。通信延迟超过100微秒排序法的均压效果就会明显变差通常需要改用轮换载波周期的分散式均压策略。仿真阶段如果只建理想模型这一隐患根本看不到。第二关是故障穿越逻辑。电网电压跌落时VSG要求输出额外无功支撑但MMC的过流能力和电压比必须限制。工程上要加故障检测、限流控制两套逻辑还需要在故障清除后重新启动一次“相位对齐”过程否则虚拟转子的角度和电网实际角度会积累误差。第三关是子模块冗余设计。工程MMC往往有冗余子模块某个模块故障后自动旁路但电容数值的突变会影响桥臂能量均衡。VSG控制器对这种“突变”不敏感因为外环功率基本不变但内层均压逻辑要能在N与原N-1之间平滑切换。这个功能需要在软件里预留接口仿真做冗余切换验证时也别跳过。7. 性能对比验证有VSG和没VSG差异有多大为了直观说明VSG接入MMC的效果我用一个5端仿真模型做了对比测试。算例参数额定功率10MVA直流母线电压±20kV每桥臂10个子模块桥臂电抗45mH子模块电容4.2mF。分别测试了“传统PLL外环控制MMC”和“VSG控制MMC”两组对照。在频率扰动测试中电网频率在1s内下降0.3Hz传统PLL控制的MMC输出有功基本恒定为额定值的80%而VSG控制的MMC在扰动初期额外输出约15%的有功增量峰值响应时间约220ms随后恢复到额定值。这个15%就是我们常说的“惯性响应”的真实表现。在孤岛再并网测试中传统PLL方案在重合闸瞬间产生了接近1.5倍的过流峰值VSG方案通过相位预同步过流只有1.08倍且频率波动收敛时间缩短了近三分之一。电压扰动方面VSG方案在三相电压不对称跌落15%时额外输出了10%无功电流且没有出现传统PLL方案中常见的负序功率振荡。当然这么漂亮的结果背后是付出了参数调试代价的——我花了大约三四个下午在不停调整虚拟惯量和阻尼系数才把两组场景都调漂亮。8. 关键结论与经验复盘写了这么多把最重要的几条心得再拎出来第一MMC和VSG不是简单的“两个技术叠加”而是控制层级的相互适配。底层均压与环流抑制的稳定性上限决定了VSG动态性能能不能真的释放出来。从这个意义上说最先调通的一定是底层。第二VSG参数设计的核心是“以动态行为反推虚拟参数”。不要试图从物理电机参数里找答案应当从你希望系统呈现的频率响应和阻尼特性出发逐步反算J与D。这比盲目抄参数快得多也可靠得多。第三仿真的可信度取决于模型保真度与仿真效率的平衡。预充电、故障穿越、并离网切换这三个场景建议用详细模型严格验证而极寒工况、参数扫描、批量优化这类场景用平均值模型即可结果也足够定位趋势问题。第四遇到“理论对但仿真发散”的问题先自我排查硬件类参数电容容差、初始角度、通信延迟再怀疑控制逻辑最后才动虚拟参数。我本人不止一次栽在载波相位初始值上浪费了整整半天时间。这套MMCVSG的组合在中高压并网领域的价值是实打实的尤其是分布式能源规模化接入与孤立微网场景。调试过程中踩过的坑和积累的经验也远不是一项仿真任务能全面覆盖的后续扩展实验可以在无功支撑能力、弱电网适应性、容错运行等方向继续深入。对我个人而言在做这套仿真之前VSG只是模模糊糊的一个概念真正调完一遍并网与离网切换之后我对同步发电机和电力电子控制之间的本质差异才算有了切实的理解。