SVG静止无功发生器Simulink仿真:从SVC到SVG的完整建模与参数整定
发布时间:2026/10/27 18:12:44 锦皓数字建站

1. 项目缘起与整体设计思路1.1 为什么选择做SVG而不是继续用SVC做电力电子和电能质量方向的朋友绕不开无功补偿这个话题。早些年大家做无功补偿第一反应是TCR、TSC这类SVC方案结构简单、成本低但问题也很明显——响应速度慢、低电压条件下补偿能力急剧下降、自身还会产生谐波。我最初接触这个方向时也是从SVC仿真入手的调了半天触发角发现轻载时补偿精度怎么都上不去后来才转向SVGStatic Var Generator静止无功发生器。SVG的核心思路和SVC完全不同。SVC是靠改变电抗器或电容器的等效阻抗来调节无功本质上还是无源器件在起作用而SVG是电压源型逆变器VSI通过PWM调制输出一个与电网同频的电压控制这个电压的幅值和相位就能让变流器吸收或发出任意大小的无功功率。打个比方SVC像是用水龙头开关控制水流SVG则像是一台可以正反转的水泵想抽就抽、想灌就灌而且动作快得多。这个仿真模型要解决的核心问题有三个第一验证SVG在负载无功突变时能否快速跟踪补偿第二验证直流侧电压能否稳定维持第三验证在系统电压跌落时SVG是否仍具备足够的补偿能力。这三点恰好是SVG区别于SVC的关键优势所在也是做这个仿真最有价值的地方。1.2 仿真模型的整体架构拆解整个仿真模型在Matlab/Simulink环境下搭建采用离散化求解器步长设为5e-6秒。为什么用这么小的步长因为SVG的开关频率通常在10kHz左右一个开关周期100微秒5微秒的步长意味着每个开关周期有20个采样点对于PWM调制的精度来说刚好够用。如果步长放到1e-5波形会明显失真THD分析结果不可信。主电路拓扑采用三相桥式电压源逆变器直流侧接电容交流侧通过连接电抗器并入电网。连接电抗器的选择很关键——太大了动态响应慢太小了纹波电流大。我一般按额定电流的15%到20%来选取纹波电流然后反推电感值。具体公式是L Udc / (8 × fsw × ΔI)其中Udc是直流母线电压fsw是开关频率ΔI是允许的纹波电流峰峰值。控制部分采用dq旋转坐标系下的双闭环结构外环是直流电压环内环是电流环。为什么用dq坐标系而不是abc坐标系因为在dq坐标系下基波分量变成直流量PI控制器可以实现无静差跟踪这是abc坐标系下用PR控制器才能达到的效果而PI控制器的参数整定比PR简单得多。这个选择背后的逻辑是用坐标变换的复杂度换取控制器设计的简洁性对于工程实现来说更友好。注意连接电抗器电感的计算必须考虑电网频率和开关频率的比值一般要求开关频率至少是电网频率的100倍以上否则低次谐波会落在控制带宽内导致电流环震荡。1.3 仿真模型的适用人群与学习路径这个模型适合三类人一是电力电子专业的研究生需要做SVG相关的课题仿真二是电气工程师想从SVC转向SVG技术路线需要一个可运行的参考模型三是参加电气类竞赛的学生SVG是高频考点有一个能跑通的模型可以省去大量调试时间。学习路径建议这样安排先跑通开环模型观察PWM波形和输出电压电流的关系然后加入电流内环调好PI参数最后加入电压外环整定外环参数。不要一上来就跑闭环那样出了问题根本不知道是哪一层的问题。我自己当初就是急着跑闭环结果波形乱七八糟查了两天才发现是电流环的PI参数饱和了。2. 核心模块的数学原理与参数计算2.1 三相VSI的数学模型与坐标变换SVG的主电路是一个三相全桥逆变器每相由上下两个IGBT组成共六个开关管。在abc坐标系下每相的开关函数可以表示为Sxxa,b,c取值为1或0分别代表上管导通和下管导通。三相桥臂的输出电压相对于直流侧中点O的电压为vxO Sx × Udc - Udc/2这个表达式看起来简单但直接用它做控制很麻烦因为Sx是离散的开关量而且三相之间存在耦合。所以要做坐标变换先把三相静止坐标系变换到两相静止αβ坐标系再旋转到dq坐标系。abc到αβ的变换用的是Clarke变换αβ到dq用的是Park变换。变换矩阵在模型里用Simulink的Fcn模块实现也可以直接用abc_to_dq0模块。这里有个细节Park变换需要角度θ这个θ必须与电网电压的相位严格同步否则dq分量会存在二倍频波动。所以锁相环PLL的设计至关重要。我用的PLL是基于同步旋转坐标系的SRF-PLL结构简单、跟踪速度快。原理是把电网电压变换到dq坐标系然后控制q轴分量为零PI控制器的输出就是角频率偏差积分后得到相位。这个PLL在电网电压平衡时效果很好如果电网不平衡需要改用DSOGI-PLL或者DDSRF-PLL那是另一个话题了。2.2 直流侧电容的选型计算直流侧电容的作用是稳压和储能。电容选小了直流电压波动大影响补偿效果选大了体积和成本上去了而且动态响应变慢。工程上一般按能量平衡的原则来估算。假设SVG需要在一个工频周期内提供最大无功功率Qmax直流电压允许波动范围为ΔUdc则电容值可以估算为C Qmax / (ω × Udc × ΔUdc)以10kVar的SVG为例Udc取800V允许波动5%即40Vω314rad/s代入得C ≈ 10000 / (314 × 800 × 40) ≈ 1mF。实际选型时我会留1.5到2倍的裕量取2mF左右。这个裕量是为了应对负载突变时的瞬时功率需求因为电容的充放电需要时间如果容量刚好卡在临界值突加负载时直流电压会跌落到保护阈值以下。提示仿真时可以先按理论值设置电容然后观察直流电压波形。如果突加负载时电压跌落超过10%说明电容偏小如果电压恢复时间超过50ms说明电容偏大或者电压环参数太慢。2.3 连接电抗器的参数设计连接电抗器是SVG与电网之间的唯一阻抗它决定了电流环的控制对象特性。电感值的选择要平衡三个因素纹波电流、动态响应速度、基波压降。纹波电流方面前面已经给出了公式。动态响应方面电流环的带宽与电感成反比电感越大电流跟踪越慢。基波压降方面电感上的压降不能太大否则SVG的输出电压范围不够用。一般要求基波压降不超过电网电压的20%。综合这三个因素我通常先按纹波要求算出电感上限再按动态响应要求算出电感下限然后取中间值。以10kVar/380V的SVG为例额定电流约15A纹波电流取3A开关频率10kHzUdc800V则L 800 / (8 × 10000 × 3) ≈ 3.3mH。基波压降校验ωLI 314 × 0.0033 × 15 ≈ 15.5V占380V的4%完全没问题。实际仿真中电感的寄生电阻也要考虑一般取0.1Ω左右。这个电阻虽然小但对电流环的稳态误差有影响如果PI控制器的积分增益不够大电流会有静差。2.4 双闭环控制器的参数整定电流内环是SVG控制的核心。在dq坐标系下d轴和q轴的电流方程存在耦合项ωLiq和ωLid所以要做前馈解耦。解耦后的电流环等效为一个一阶惯性环节PI控制器的参数可以按典型I型系统来整定。电流环的闭环传递函数为G(s) Kp × s Ki / (L × s² (R Kp) × s Ki)按阻尼比0.707设计可以得到Kp L × ωcKi R × ωc其中ωc是电流环带宽一般取开关频率的1/10到1/5。10kHz开关频率对应ωc取2π×1000到2π×2000 rad/s。电压外环的带宽要远低于电流内环一般取电流环带宽的1/5到1/10。电压环的输出是d轴电流的参考值因为d轴对应有功分量控制直流电压本质上就是控制有功功率的平衡。这里有个容易搞混的地方SVG补偿的是无功为什么电压环控制的是有功电流因为直流电容的电压变化是由有功功率不平衡引起的SVG自身消耗的有功开关损耗、导通损耗需要从电网吸收所以d轴电流负责维持直流电压q轴电流负责补偿无功。注意电压环的PI参数不能太大否则会与电流环产生耦合振荡。我一般先把电流环调好确认电流跟踪误差小于5%然后再加电压环从很小的增益开始慢慢往上调。3. 仿真模型的搭建与实操步骤3.1 Simulink环境配置与求解器设置打开Matlab后第一步是设置仿真参数。在Model Configuration Parameters里Solver选择Fixed-stepSolver类型选discrete (no continuous states)Fixed-step size设为5e-6。为什么不用变步长因为电力电子开关事件是离散的变步长求解器会在开关时刻反复调整步长导致仿真速度极慢而且可能漏掉开关事件。定步长虽然计算量大一些但结果稳定可靠。Powergui模块要设置为Discrete模式Sample time与仿真步长一致。如果做THD分析还需要在Powergui里勾选Analyze harmonics选项设置基波频率为50Hz分析周期数至少10个。Simulink的数学库中三角函数、Park变换等模块要选择Use last computed value或者Use lookup table不要用Continuous模式否则会引入代数环。代数环是Simulink仿真中最常见的报错之一表现为仿真速度极慢或者直接报错。解决方法是加入单位延迟模块Unit Delay或者改用离散求解器。3.2 主电路搭建的详细步骤主电路搭建从三相电压源开始。用Three-Phase Source模块设置线电压380V、频率50Hz、内阻0.01Ω。然后接三相串联RLC支路作为线路阻抗电阻取0.1Ω电感取1mH模拟电网的短路容量。接下来是三相桥式逆变器。Simulink的Simscape Electrical库里有现成的Universal Bridge模块选择IGBT/Diode类型桥臂数设为3。IGBT的导通电阻设为1e-3Ω反并联二极管的正向压降设为0.8V。这些参数对仿真精度有影响但不用太精确因为SVG的损耗主要来自开关损耗而开关损耗在仿真中很难精确建模。直流侧电容用Series RLC Branch模块类型选C电容值按前面计算的2mF设置串联电阻取1e-3Ω。电容两端接电压测量模块输出到示波器和电压环。连接电抗器用Three-Phase Series RLC Branch类型选RL电阻0.1Ω电感3.3mH。电抗器与电网之间接三相电压电流测量模块用于采集并网点的电压和电流。负载部分用一个三相串联RLC支路模拟类型选RL电阻和电感根据需要的无功功率来定。比如要模拟10kVar的感性负载在380V下每相阻抗为Z U²/Q 380²/10000 ≈ 14.4Ω取电阻1Ω、电感45mH左右。3.3 控制系统的模块化实现控制部分我习惯分成几个子系统PLL子系统、坐标变换子系统、电流环子系统、电压环子系统、PWM生成子系统。这样分模块的好处是调试时可以单独屏蔽某个子系统快速定位问题。PLL子系统用SRF-PLL结构三相电压先做Clarke变换再做Park变换q轴分量经过PI控制器后得到角频率偏差加上前馈的314rad/s积分得到相位θ。PI参数取Kp50Ki1000这个参数在电网电压平衡时跟踪误差小于0.1度。坐标变换子系统用Simulink自带的abc_to_dq0模块输入是三相电流和PLL输出的θ输出是id和iq。注意模块的旋转方向要选Aligned with phase A axis否则变换结果会差一个负号。电流环子系统包含两个PI控制器分别控制id和iq。PI参数按前面计算的Kp20Ki500设置。输出经过前馈解耦和反Park变换后得到αβ坐标系下的调制波。电压环子系统只有一个PI控制器控制直流电压。参考值设为800V反馈值来自直流电容电压测量。PI参数取Kp0.5Ki20。输出是id的参考值iq的参考值根据无功需求直接给定。PWM生成子系统用PWM Generator (2-Level)模块输入是αβ坐标系下的调制波载波频率设为10kHz输出六路驱动信号给Universal Bridge。3.4 仿真参数汇总与运行调试把所有参数整理成一张表方便对照检查参数名称符号数值单位电网线电压Us380V电网频率f50Hz直流母线电压Udc800V直流电容C2mF连接电抗器电感L3.3mH连接电抗器电阻R0.1Ω开关频率fsw10kHz仿真步长Ts5μs电流环KpKp_i20-电流环KiKi_i500-电压环KpKp_v0.5-电压环KiKi_v20-运行仿真前先把仿真时间设为0.5秒求解器设为定步长。点击运行后观察示波器上的波形。如果电流波形是正弦且THD小于5%说明电流环工作正常。如果直流电压稳定在800V附近波动小于5%说明电压环工作正常。调试时如果遇到波形异常先检查PLL是否锁定。把PLL输出的θ和电网电压A相过零点对比如果相位差超过5度说明PLL参数需要调整。然后再检查电流环把iq参考值设为阶跃信号观察iq的跟踪速度上升时间应该在1ms以内。4. 仿真结果分析与典型问题排查4.1 稳态补偿效果的验证方法仿真跑通后第一步是验证稳态补偿效果。设置负载为感性功率因数0.7SVG投入前并网点电流滞后电压约45度。SVG投入后iq参考值设为负载无功电流的负值观察并网点电流是否变为与电压同相位。我通常用Powergui的FFT分析工具来量化补偿效果。补偿前电流THD可能在20%以上补偿后应该降到5%以内。功率因数从0.7提升到0.98以上。这些指标是SVG性能的直接体现也是论文和报告中必须给出的数据。提示做FFT分析时要等仿真进入稳态后再取数据一般取0.3秒之后的2到3个工频周期。如果取暂态数据THD会偏大不能反映真实性能。4.2 动态响应特性的测试与评估动态响应是SVG的核心优势测试方法是在0.2秒时突加负载观察并网点电流和直流电压的变化。理想的响应是并网点电流在1到2个工频周期内恢复到与电压同相位直流电压跌落不超过10%恢复时间不超过50ms。我实测下来按前面参数搭建的模型突加50%负载时直流电压从800V跌到760V恢复时间约30ms。并网点电流在1.5个周期后重新达到稳态。这个响应速度比SVC快了将近一个数量级SVC的响应时间通常在40到60ms。如果动态响应不达标优先检查电压环的PI参数。Kp太小会导致恢复慢Ki太大会导致超调。我一般先把Kp调到临界振荡点然后取一半再调Ki到刚好消除静差。4.3 常见问题速查表与排查思路问题现象可能原因排查方法解决方案仿真报错代数环控制回路存在直接馈通检查是否有模块输出直接反馈到输入加入Unit Delay或改用离散求解器电流波形畸变严重PLL未锁定或PI参数不当观察θ与电网电压相位差调整PLL参数或降低电流环带宽直流电压持续上升电压环极性接反检查电压环输出与id参考值的符号交换PI控制器输入端的正负补偿后功率因数仍低iq参考值计算错误检查无功电流的计算公式重新计算负载无功并取负值仿真速度极慢步长太小或存在代数环查看仿真时间与实时时间的比值增大步长或消除代数环THD分析结果异常分析周期数不足或数据含暂态检查FFT设置增加分析周期数取稳态数据4.4 独家避坑经验分享第一个坑是PLL的初始相位。Simulink的PLL模块默认初始相位为0但电网电压在t0时不一定从零相位开始。如果初始相位不匹配仿真刚开始时会有较大的暂态甚至导致电流环饱和。解决方法是在PLL的积分器初始条件里设置与电网电压初相角一致的值或者让仿真从电网电压过零点开始。第二个坑是PI控制器的限幅。电流环的PI输出必须限幅否则在启动或突加负载时会输出过大的电压参考值导致调制比超过1PWM进入过调制区波形严重失真。我一般把限幅设在直流电压的0.9倍左右留10%的裕量给动态调节。第三个坑是仿真数据的保存。Simulink默认只保存最后一段数据如果仿真时间较长前面的数据会被覆盖。要在Configuration Parameters里把Limit data points to last设为inf或者把数据输出到Workspace用To Workspace模块保存。我习惯把关键波形用To Workspace保存为Structure with time格式方便后续在Matlab里做FFT和绘图。第四个坑是负载突变的时刻。如果突变时刻正好在电网电压过零点附近电流的暂态过程会与电压过零点重合导致观察困难。我一般把突变时刻设在电压峰值附近这样暂态特征最明显便于分析。5. 模型扩展与进阶应用方向5.1 从两电平扩展到三电平拓扑两电平SVG适合低压小容量场合如果要做中高压大容量需要扩展到三电平甚至多电平拓扑。三电平NPC逆变器的每个桥臂有四个开关管和两个钳位二极管输出电压有三个电平Udc/2、0、-Udc/2。相比两电平三电平的谐波含量更低开关损耗更小但控制复杂度更高需要处理中点电位平衡问题。在仿真模型里扩展三电平主要改动在PWM生成部分。两电平用载波比较法三电平需要用载波层叠法或者空间矢量调制SVPWM。SVPWM的算法复杂度高但直流电压利用率比SPWM高15%。如果要做三电平仿真建议先用SPWM跑通再换SVPWM优化。5.2 不平衡负载下的补偿策略前面的模型假设负载是三相平衡的实际中不平衡负载很常见。不平衡负载会导致并网点电流出现负序分量传统的dq控制只能补偿正序无功对负序无能为力。要补偿负序需要采用双同步旋转坐标系DDSRF或者二阶广义积分器SOGI来提取负序分量然后分别控制正序和负序电流。这个扩展的难度较大但价值也高。我建议先把平衡负载的模型跑熟再尝试不平衡工况。不平衡补偿的核心是正负序分离分离精度直接影响补偿效果。SOGI的带宽和阻尼比需要仔细整定一般取带宽为电网频率的0.5倍阻尼比0.707。5.3 与新能源发电系统的联合仿真SVG在新能源场站中应用广泛比如光伏电站和风电场都需要SVG来稳定并网点电压。如果把SVG模型与光伏逆变器模型或风机模型联合仿真可以研究SVG对新能源场站电压稳定性的影响。联合仿真的接口在并网点SVG和新能源发电系统共享并网点电压和电流。Simulink支持子系统封装可以把SVG封装成一个模块与光伏模型通过电气端口连接。联合仿真时要注意两个系统的求解器步长要一致否则会出现数据不同步的问题。注意联合仿真时SVG的容量要与新能源场站的容量匹配。一般SVG容量取场站容量的10%到20%太小了补偿能力不足太大了经济性差。5.4 说明文档与参考文献的使用建议附带的说明文档里包含了模型的详细参数和操作步骤建议先通读一遍再动手搭建。参考文献部分列出了SVG领域的经典论文和教材其中我特别推荐两篇一篇是关于SRF-PLL设计的另一篇是关于电流环解耦控制的。这两篇论文把原理讲得很透配合仿真模型一起看理解会深很多。说明文档里的参数是基于10kVar/380V的SVG设计的如果要做其他容量的仿真参数需要按比例调整。调整的原则是电压等级不变时容量与电流成正比连接电抗器与容量成反比直流电容与容量成正比。比如做20kVar的SVG电流翻倍电抗器减半电容翻倍。我在实际使用这个模型的过程中发现最有价值的不是模型本身而是搭建模型过程中踩过的那些坑。每一个报错、每一次波形异常都逼着你去翻教材、查论文、做推导这个过程才是真正长本事的地方。模型只是一个起点真正的功夫在模型之外。
锦
锦皓数字建站
深耕本土企业品牌数字化升级,专注原创端正雅致商务官网,从视觉设计到稳定运维全程保驾护航。