
1. 项目概述与整体设计思路1.1 核心需求解析做三相静止无功发生器SVG的并网仿真模型是我在搭建实验室微电网平台时的一个必经环节。这个项目的直接目标是在MATLAB/Simulink里搭出一套能够动态补偿无功功率的SVG模型让它并到380V/50Hz的三相电网上验证无功阶跃响应、直流侧电压稳定性、电流谐波等关键指标。用一句话概括这套模型解决的实际问题当负载侧出现感性无功比如异步电机、变压器、整流设备功率因数下降电网电流增大这时候SVG通过逆变器输出一个与负载无功相反的电流把电网侧的功率因数拉回0.98以上。仿真模型的价值在于你不需要搭一套几十千瓦的物理样机就能先把控制算法、参数匹配、保护逻辑全部验证一遍。这套模型适合哪些人参考刚接触无功补偿和并网逆变器控制的研究生、做电能质量产品开发的硬件工程师、以及想理解SVG内部工作原理的运维人员。我不打算把文章写成教科书式的原理堆砌而是从一个实际搭过模型的人的角度把主电路参数怎么算、控制环怎么调、仿真踩过哪些坑这些问题一次说清楚。1.2 为什么选SVG而不是其他无功补偿方案很多人会问无功补偿有并联电容器、有SVC静止无功补偿器为什么非要上SVG这里需要把选型逻辑讲透。并联电容器是最廉价的方案但它只能补偿固定的容性无功而且补偿量随电压平方变化电压越低补偿越少负载波动时跟不上。SVC用晶闸管控制电抗器或电容器投切响应速度在几十毫秒级别但输出电流含有谐波而且需要大容量的电抗器和电容器组占地面积大。SVG的本质是一个电压型PWM变流器通过IGBT的高频开关让交流侧输出一个与电网电压同频、幅值和相位可控的电流。它的核心优势是响应速度快毫秒级甚至亚毫秒级、输出无功连续可调、谐波特性好、既可以输出容性无功也可以输出感性无功。正是这些特性让SVG在电弧炉、提升机、风力发电、光伏电站这类冲击性负载和新能源并网场景中成为主流选择。仿真模型选SVG还有一个实际原因它的控制结构跟光伏并网逆变器、储能变流器PCS、有源电力滤波器APF高度相似都是电压源型PWM变流器加双闭环控制学会了SVG的建模和调试换到其他并网变流器项目上基本可以直接迁移控制框架只是在功率外环上改一改。1.3 仿真模型的整体框架我的SVG并网仿真模型由六个核心模块组成三相电网电源模拟无限大电网线电压380V、频率50Hz短路容量足够大线路阻抗模拟并网连接电缆和变压器漏抗通常取毫欧级电阻加零点几毫亨电感负载模块用一组R-L串联负载模拟感性负载通过可控开关实现在0.3秒时投入第二组负载制造无功阶跃SVG主电路包括三相桥式IGBT模块、交流侧滤波电感、直流侧支撑电容控制系统包括PLL锁相环、dq坐标变换、电压外环PI、电流内环PI、SVPWM调制测量与显示模块用于观测三相电压电流波形、功率因数、有功无功功率、直流侧电压等。整体架构的逻辑是先通过PLL锁定电网电压的相位和频率把三相静止坐标系下的电流变换到dq旋转坐标系下然后让电流内环快速跟踪无功电流指令电压外环维持直流侧电压恒定。整个仿真在MATLAB/Simulink中完成步长设置为固定步长1e-5秒因为SVPWM需要等间隔触发。2. 主电路参数设计与仿真平台搭建2.1 交流侧滤波电感设计交流侧电感是SVG与电网之间能量交换的桥梁它直接影响电流纹波、控制响应速度和高频谐波抑制能力。电感选小了电流纹波大IGBT开关应力大电感选大了电流变化率受限动态响应变慢同时电感上的压降也大。工程上常用的电感取值思路是以额定输出无功对应的电流峰值为基准电感上的基波压降控制在电网相电压的10%到20%之间。在这个项目里SVG额定容量设计为20kvar电网线电压380V那么额定相电压有效值Uph是220V额定电流有效值I通过容量公式S √3 × U × I计算I约等于30.4A。按电感压降15%来估算电感上的压降UL为33V左右基波阻抗Z_L UL / I约等于1.09Ω除以角频率314rad/s得到电感值约3.5mH。综合考虑纹波电流抑制和动态响应我最终取L 3mH额定电流下电感压降约9.2%留有一定裕量。电感还需要校验一个关键指标电流纹波率。在SVPWM调制下开关频率设为10kHz直流母线电压设定为700V纹波电流的峰值大约按公式ΔI Ud / (8 × L × fsw)估算。代入参数纹波电流峰峰值约2.9A占额定电流峰值43A的比例约6.8%这个水平完全可接受。2.2 直流侧电容选取直流侧电容的作用是维持直流电压稳定、缓冲交流侧与直流侧之间的瞬时功率交换。SVG在工作过程中虽然整体上没有有功功率的持续流动但瞬时有功功率是脉动的频率为电网频率的2倍因此直流电容必须能够吸收释放这部分脉动能量把直流电压波动限制在允许范围内。电容值的估算依据是能量平衡关系在半个电网周期内瞬时有功功率脉动的最大能量变化量等于电容储能的变化量。按直流电压纹波允许2%、即14V来计算取电容C 2200uF时直流电压波动约10到15V符合要求。实际模型中我配置了两个2200uF电容串联再并联的结构等效电容也是2200uF但耐压和均压特性更好。这里要特别提醒一个仿真心得很多人在仿真里把直流电容取得很大比如上万微法发现仿真结果确实稳定但这掩盖了控制系统的真实动态。直流电容偏大时电压外环的响应会变慢SVG在负载突变时的动态补偿能力会被低估。建议在满足电压纹波要求的前提下把电容尽量取小这样仿真结果更接近实际工程样机的表现。2.3 Simulink模型搭建步骤我用的是MATLAB R2021a版本Simulink里的Simscape Electrical模块集以前叫SimPowerSystems来搭建主电路。具体步骤如下新建Simulink模型打开库浏览器从Simscape Electrical中拖出Three-Phase Source作为电网设置相电压220V、频率50Hz、三相内阻抗设为星形接法电网输出串联Three-Phase Series RLC Branch模拟线路阻抗参数设置为R 0.1ΩL 0.5mH负载模块用Three-Phase Series RLC Load初始设置为有功15kW、感性无功10kvar再并联一组相同的负载通过Breaker在0.3秒投入SVG主电路用Universal Bridge模块桥臂选三相桥、功率器件选IGBT/Diode导通压降用默认值交流侧电感用三个Three-Phase Series RLC Branch分别串在三相线上电感统一设3mH电阻设0.05Ω模拟电感线圈内阻直流侧用两个串联的Capacitor模块每个4400uF中点接地用于提供虚拟中性点控制电路通过电压电流测量模块采样用Three-Phase V-I Measurement同时测量电网侧电压电流另一组测SVG输出侧电流。搭建时最容易犯的错误是模块库混淆。早期版本的SimPowerSystems和Simscape Electrical的元件库不完全兼容同样是三相电源在不同库里参数设置界面完全不同最好统一用Simscape Electrical物理建模体系控制部分用普通Simulink信号连接即可两者之间通过电压电流测量模块作为信号转换接口。3. 双闭环控制系统核心实现3.1 dq旋转坐标系下的SVG数学模型SVG的控制核心建立在dq旋转坐标系下的数学模型上。将三相静止坐标系变换到以电网电压矢量定向的dq坐标系后SVG交流侧的电压方程可以表示为Ud R×Id L×dId/dt - ω×L×Iq Ed Uq R×Iq L×dIq/dt ω×L×Id Eq其中Ed、Eq是电网电压的d轴和q轴分量Ud、Uq是SVG交流侧输出电压的d轴和q轴分量Id、Iq是输出电流的d轴和q轴分量ω是电网角频率。这个方程的关键信息在于电流d轴和q轴之间存在耦合项ω×L×Iq和ω×L×Id如果不做解耦处理d轴电流调节会影响到q轴电流反之亦然控制系统会互相干扰。此外电网电压Ed、Eq对于电流环而言属于扰动项需要通过前馈来抵消。在电压定向控制下通常令d轴与电网电压矢量重合此时Ed等于电网电压幅值Eq 0。SVG输出的瞬时无功功率Q 1.5×Eq×Id - 1.5×Ed×Iq由于Eq 0所以Q -1.5×Ed×Iq也就是说q轴电流Iq的正负直接决定了无功功率的方向和大小。同理有功功率P 1.5×Ed×Id所以保持直流侧电压稳定的功率调节是通过Id来完成的。3.2 电流内环解耦控制电流内环的目标是快速跟踪Id和Iq的指令值。为了实现d轴和q轴的独立控制采用PI调节器加前馈解耦策略控制方程设计为Ud -(Kp Ki/s)×(Id_ref - Id) ω×L×Iq Ed Uq -(Kp Ki/s)×(Iq_ref - Iq) - ω×L×Id Eq可以看到PI调节器的输出分别加上耦合补偿项和电网电压前馈项这样就把原来耦合的数学模型变成了两个独立的一阶惯性系统d轴和q轴电流环可以分别整定参数。电流环PI参数的整定我采用了工程上常用的方法先把电流内环校正成典型I型系统。忽略电网电压前馈和耦合项后电流环的开环传递函数近似为G(s) Kp×(s Ki/Kp) / (s×L)让PI零点与系统极点对消即取Ti L/R此时系统简化为一阶惯性环其闭环带宽由Kp/L决定。根据实际调试经验电流环带宽取到开关频率的1/20到1/10比较合适。开关频率fsw 10kHz我取带宽约1000rad/s对应Kp L×带宽 3mH×1000 3ΩKi Kp×R/L 3×0.05/0.003 50。仿真实测下来电流环阶跃响应的调节时间约3ms超调量很小满足SVG的快速无功响应要求。3.3 电压外环与SVPWM调制电压外环负责维持直流侧电压恒定。当SVG输出容性无功时逆变器需要从直流侧吸收能量给交流侧充电直流电压会下降输出感性无功时则相反。电压外环通过调节d轴电流指令Id_ref来控制有功功率交换方向从而稳定直流电压。电压外环的带宽必须明显低于电流内环带宽这是多环控制系统的铁律。电流环带宽约1000rad/s电压环设计带宽约100rad/s左右这样内外环时间尺度分开了系统才不会产生震荡。电压外环PI参数我整定为Kp 0.5Ki 20实际仿真中直流电压从700V阶跃启动到稳态的调节时间约0.2秒超调控制在5%以内。SVPWM调制部分既可以自己搭调制模块也可以直接用Simulink里的SVPWM生成器。我的做法是在MATLAB Function里实现SVPWM的扇区判断、作用时间计算和比较值生成这样能看到完整的调制过程也方便后续做死区补偿和过调制研究。数学模型上SVPWM相比SPWM的直流电压利用率提升了约15%这是工程中普遍采用SVPWM的原因。由于SVPWM在每个开关周期内需要对IGBT发两次触发脉冲仿真步长必须足够小我设置为固定步长1e-5秒也就是10kHz开关周期内安排了20个仿真步保证了PWM分辨率不受步长限制。4. 仿真结果分析与参数调试要点4.1 稳态补偿效果验证模型搭建完成后先运行稳态工况负载设为有功15kW、感性无功10kvar投入SVG之前电网侧的功率因数大概在0.83左右。在0.1秒时投入SVG观察补偿后的波形和功率数据。从仿真波形可以看到几个关键现象电网侧电流在SVG投入后幅值明显减小这说明无功电流在电网和SVG之间循环电网只需要提供有功电流分量电网电压与电网电流的相位差几乎为零功率因数从0.83提升到0.99以上SVG输出电流超前电网电压约90度这正是容性无功电流的特征说明SVG正确输出了容性无功去抵消负载的感性无功。稳态电流谐波方面输出电流总谐波畸变率THD在满载工况下约为3.5%主要谐波次数在开关频率10kHz附近及其边带谐波低频谐波很小。如果对谐波指标有更严苛的要求比如小于5%这个结果完全满足如果要求更高可以加大交流电感或者提高开关频率但代价是损耗和成本上升。4.2 动态阶跃响应测试为了验证SVG的动态特性在0.3秒时通过Breaker投入第二组负载有功15kW、感性无功10kvar使总感性无功从10kvar阶跃到20kvar。观察SVG输出电流的q轴分量在阶跃发生的瞬间Iq_ref立即跳变到新的给定值电流内环在约3ms内跟踪完成SVG输出无功功率在5ms内达到新的稳态值。这个响应速度是SVC几十毫秒响应时间完全比不了的也正是SVG能用于电弧炉等快速冲击性负载补偿的根本原因。直流侧电压在阶跃过程中先有一个小幅跌落约-2.5%然后由电压外环在约0.15秒内调节回700V。这个过程的物理含义是负载突加时SVG需要瞬间输出更多容性无功这需要直流侧短暂提供一部分能量支撑直流电压跌落不可避免但通过电压外环的调节系统重新达到功率平衡。如果这个跌落幅值太大说明电容容量不足或者电压环带宽太低。4.3 核心参数调试经验表经过多轮仿真调试我把SVG模型中最关键的参数及其影响整理成了一张表方便直接对照参考。参数典型值增大后的影响减小后的影响交流侧电感L3mH纹波减小动态变慢电感压降增大纹波增大IGBT应力增大响应加快直流侧电容C2200uF电压纹波减小动态变慢电压纹波增大动态加快开关频率fsw10kHz纹波和谐波减小开关损耗增大纹波增大损耗减小电流环Kp3响应加快过大则震荡响应变慢电流环Ki50消除稳态误差过大则超调稳态误差增大电压环Kp0.5直流电压恢复加快过大则震荡恢复变慢电压环Ki20消除稳态误差过大则直流电压波动大稳态误差增大这里需要特别强调一个经验调参时一定先整定电流内环再整定电压外环不要颠倒。电流内环带宽至少是电压环带宽的5到10倍否则两个环路会在时间尺度上耦合表现为直流电压低频振荡、电流波形发虚无论怎么调参数都很难同时满足动态和稳态性能。5. 常见问题与排查技巧实录5.1 仿真发散或报错Simulink仿真最常见的问题是发散表现为仿真在某一时刻报错“Solver unable to determine this derivative”或者状态变量直接飞掉。我遇到过的原因主要有三类。第一类是代数环问题。当控制信号和主电路状态之间出现无延时直连环时Simulink的解算器无法收敛。解决办法是在控制信号通路中插入Memory模块或者把仿真步长调小但最根本的做法是检查采样环节是否通过零阶保持器确保控制信号在每个步长内是离散更新的。第二类是直流电容初始电压问题。电容初始电压默认是0SVG启动瞬间会有一个巨大的冲击电流很容易让仿真发散。我在仿真中把直流电容初始电压设为700V同时给SVG设置了软启动逻辑参考电流从0开始斜坡上升这样启动过程平滑得多。第三类是开关器件的缓冲电路问题。如果逆变器桥臂的杂散电感模型没处理好开关瞬间会产生很高的di/dt仿真步长不足时电压尖峰会冲爆。解决办法是给IGBT模块并联RC snubber或者合理设置结算器的最大步长限制。5.2 直流电压建立不起来刚搭好模型时我遇到一个典型问题SVG投运后直流侧电压始终停留在零附近无法正常建立到700V。排查下来发现是PLL的初始锁相相位问题。PLL在仿真开始初期需要一段时间锁定电网电压相位如果相位锁定错误SVG输出的电流方向就会错误直流电容不但不会被充电反而会被持续放电。解决办法有两个一是利用电网电压经过不控整流桥建立初始直流电压的物理特征在PLL锁定后先让IGBT封锁一段时间让电容通过反并联二极管自然充电到约537V然后再解锁IGBT由控制系统把电压拉升至700V二是在PLL控制器参数上增加一个初始相角补偿。这个问题的物理本质是SVG启动过程的时序问题在真实的工程设备里预充电回路和启动时序也是必不可少的仿真中提前验证这套启动策略对后续硬件调试非常有参考价值。5.3 电流谐波大或波形畸变当SVG输出电流波形出现明显畸变谐波含量超过8%时我通常按下面的顺序排查先看调制深度是否接近1。如果SVPWM的调制比过大进入过调制区输出电压波形会出现削顶电流畸变会明显增加。此时应提高直流侧电压设定值给调制留出裕量再看交流侧电感是否偏小。电感太小电流纹波会显著增大尤其是在轻载工况下纹波占比更高。可以用示波器看高频纹波的幅值结合纹波计算公式反推实际的等效电感检查开关频率与仿真步长的匹配关系。固定步长下一个开关周期内仿真步数少于10步时SVPWM比较值的更新会产生量化误差导致波形出现周期性抖动。我最后把步长设为1e-5秒仿真虽然慢了一些但波形质量明显改善。5.4 锁相环失锁与相位扰动最后一个值得单独拿出来说的坑是PLL在电网电压畸变或三相不平衡情况下的表现。仿真初期我使用的是简化的同步坐标系PLL在三相电压对称时工作得很好但一旦在电网侧叠加谐波电压或者让三相电压幅值不平衡PLL的锁相输出就会出现波动导致dq变换后的电流波形包含2倍频分量。解决办法是改用基于二阶广义积分器的SOGI-PLL或者带低通滤波器的同步参考坐标系PLL。SOGI-PLL通过构造正交信号来消除负序分量的影响在三相不平衡时依然能准确锁定正序电压的相位。我在仿真里实现了SOGI-PLL结构实测在三相电压不平衡度5%以内时PLL相位误差可以控制在2度以内。这个细节在实际工程中意义很大因为SVG在实际电网中面临的往往是弱电网、电压畸变、三相不平衡这些非理想工况仿真阶段就把PLL的抗扰动能力验证好能避免后续样机并网试验时出现“仿真可以、现场就崩”的尴尬。结尾一点个人体会这个SVG并网仿真模型从概念到完整跑通我前后花了大约两周时间其中一半时间花在参数调试和问题排查上。回头总结最有价值的不是模型本身而是调试过程中建立起来的那套“由物理本质推参数、由现象反推原因”的思路。模型跑通后我还顺手把控制框架改成了储能变流器的PQ控制模式只改了功率外环电流内环和调制部分几乎原封不动就能复用。这说明SVG、APF、光伏逆变器、储能PCS这些电力电子装备底层是共享一套控制基因的。建议你把模型跑通之后可以有意识地去改一改外环控制目标多做几次变体实验收获会比单纯复现一个模型大得多。最后分享一个小技巧在Simulink中把关键仿真数据直流电压、Iq指令、实际Iq、无功功率用To Workspace导出后用MATLAB脚本批量绘制并保存波形图这比直接截图清晰得多论文里用图也方便。我是把所有波形导出后统一处理节省了大量整理数据的时间。