
做无功补偿仿真这些年SVG静止无功发生器一直是我觉得最值得研究的装置之一。这次分享的项目就是基于MATLAB/Simulink的三相静止无功发生器仿真模型主电路采用电压型桥式结构除了完整的Simulink源文件还配套万字设计报告和讲解文档。如果你正在做电力电子、无功补偿相关的课程设计、毕业设计或者刚接触SVG想搞明白控制原理这套模型可以直接当参考模板省去大量查资料和调试的时间。我最早入门SVG时看了不少教材理论都懂但一到Simulink搭建就卡壳坐标变换方向搞错、直流侧电压起不来、PI参数怎么调都不对劲。后来经过反复试验把整套模型跑通也总结出一套从主电路参数到控制环路的搭建顺序。这篇文章就把这些经验全部摊开包括模型架构设计、关键公式推导、实操细节和排错过程希望能帮你少走弯路。1. SVG仿真模型的整体设计思路1.1 为什么选电压型桥式电路做SVG主电路SVG的本质是一个可控的电压源通过改变输出电压幅值和相位与电网之间交换无功功率。目前工程上主流有两类拓扑电压型桥式电路VSC和电流型桥式电路CSC。仿真模型中大多数选用电压型原因是直流侧用电容储能损耗小、效率高而且和实际工程装置结构一致。电压型SVG的简化结构是电网通过连接电抗器接到三相PWM变流器变流器直流侧并联大电容。工作时控制IGBT的通断让变流器交流侧输出一个与电网同频、幅值和相位可调的正弦电压。只要输出电压略高于电网电压电流就超前电压装置吸收感性无功等效为电容反之输出电压略低于电网电压电流滞后装置吸收容性无功等效为电感。这就是SVG单方向四象限运行的基本原理。选型时还有一个细节需要注意连接电抗器的位置。模型里电抗器放在电网和变流器之间它不仅有滤波作用更关键的是决定了装置输出无功的调节范围。电抗值越大同样电压差下能交换的无功越小但滤波效果好取值太小开关纹波会直接冲击电网。这个在参数设计时要权衡。1.2 控制目标与整体闭环架构SVG的终极控制目标是让并网电流实时跟踪无功指令。要实现这个目标通常采用双闭环结构外环是直流电压控制维持直流侧电容电压稳定内环是电流控制让有功和无功电流分量分别跟踪给定值。整体架构可以拆成四层采样层采集电网三相电压、SVG三相电流、直流侧电压。变换层通过锁相环获取电网电压相位将三相静止坐标系下的量变换到两相同步旋转dq坐标系。控制层直流电压外环输出有功电流参考无功电流参考由无功指令决定内环PI调节器输出dq轴电压指令。调制层将dq轴电压指令反变换到abc坐标系送入PWM发生器生成IGBT驱动脉冲。这套架构本身不复杂但每一步都有坑。比如锁相环输出相位不对后面所有控制全错坐标变换矩阵系数不同PI参数整个需要重新标定。所以搭建模型前最好先在纸上把数学关系写清楚。2. 核心技术点解析从瞬时无功理论到双闭环控制2.1 瞬时无功功率理论SVG控制的理论地基SVG需要快速动态响应传统的平均功率理论基于积分不适合实时控制所以要用赤木泰文提出的瞬时无功功率理论。核心思想是把三相电压和电流从abc坐标系转换到αβ坐标系然后定义瞬时有功p和无功q[ \begin{bmatrix} p \ q \end{bmatrix} \begin{bmatrix} e_\alpha e_\beta \ -e_\beta e_\alpha \end{bmatrix} \begin{bmatrix} i_\alpha \ i_\beta \end{bmatrix} ]这里的p和q都包含直流分量和交流分量。对于无功补偿我们只关心q的直流分量也就是基波无功。所以控制策略里要做的第一件事是通过坐标变换将基波正序分量变成直流量然后就能用PI调节器做到无静差跟踪。实际搭建模型时更常用的是dq坐标系下的方式。电网电压定向于d轴即 ( e_d E_m, e_q 0 )。此时瞬时有功 ( p 1.5 e_d i_d )无功 ( q 1.5 e_d i_q )。也就是说i_d是电流的有功分量i_q是电流的无功分量。这种解耦关系让控制变得非常直观。2.2 锁相环与坐标变换的实现要点锁相环是整个控制系统的“指南针”。Simulink中常用同步参考坐标系锁相环SRF-PLL思路是把三相电压变换到dq系用PI控制让q轴电压为零此时d轴电压就对准了电网电压矢量PI输出即为电网角频率积分得到的角度θ。搭建PLL时有几个经验PLL的PI参数不宜太快否则在电网畸变时容易锁相出错。典型带宽设在300~500Hz。仿真中要特别注意初始角度否则启动瞬间电流会很冲。坐标变换模块内部自带角度偏移需要根据PLL输出的角度减去电抗器压降造成的功角不过多数简化模型可以忽略。坐标变换矩阵有等幅值变换和等功率变换两种。在Simulink的PLL模块和Clarke变换模块里可能默认的系数不一样。如果混用电流内环指令到实际值的标幺关系就会错乱。我的习惯是统一采用等幅值变换在电流内环补偿系数里做相应标定。2.3 电流内环与电压外环的PI控制器设计电流内环一般设计成典型I型系统要求电流响应快、超调小。被控对象包含变流器惯性环节PWM延迟和电抗器传递函数 ( 1/(LsR) )。采用PI控制器时按零极点对消法整定控制器零点对消电抗器极点即 ( \tau_i L/R )。开环增益决定电流环带宽。通常取开关频率的1/10~1/5按这个计算可得 ( K_p L / (K_{pwm} \cdot T_s) ) 量级的初始值。实际仿真中直接套公式会有误差因为还有数字延迟需要微调。直流电压外环用于控制有功功率平衡。当电网电压突变或有功指令变化时直流电压会波动外环要把它拉回给定值。外环带宽应比电流环低5~10倍否则两个环会互相干扰。我常用带宽比1/5甚至1/10牺牲一点电压响应速度换整体稳定。3. 仿真模型搭建与参数设计实操3.1 主电路参数计算电容、电抗器与开关频率以380V/50Hz电网、额定容量10kvar的SVG为例按工程经验估算主要参数。直流侧电压参考值电压型SVG要可靠输出与电网同幅值的交流电压直流电压至少需要高于电网线电压峰值一般取[ U_{dc} \frac{2\sqrt{2} U_{ll}}{\sqrt{3} m} ]其中U_ll是线电压有效值m是调制深度三相SPWM时m≤1。380V电网时( U_{dc} ) 取700V左右比较稳妥留出调节余量。连接电抗器电感值电感决定电流纹波和无功调节范围。经验公式是[ L \frac{U_{dc}}{6 \sqrt{3} f_{sw} \Delta i_{max}} ]其中f_sw是开关频率Δi_max是允许的纹波电流。若开关频率取10kHz纹波取额定电流的15%计算大约1mH左右。如果开关频率降到5kHz电感要翻倍。实际仿真里可以先用大电感保证波形再逐渐减小观察裕度。直流侧电容电容大小影响电压波动。SVG在阶跃无功指令时直流电压会有一个动态波动。按[ C \frac{2 S_N \Delta t}{U_{dc}^2 \cdot \delta} ]粗略估算δ是允许电压波动比例取5%时10kvar装置约需要几千微法仿真中也可以用更小的电容加快动态过程但启动冲击会变大。3.2 控制子系统搭建步骤与关键模块配置在Simulink中我把模型分成三块主电路、测量与坐标变换、控制器。搭建顺序建议按下面一步步来每一步都先检查波形再往下。第一步搭建主电路。用Three-Phase Source、Three-Phase Series RLC Branch做电抗器、Universal Bridge选IGBT/Diodes三相桥、DC Capacitor和负载。电网电压设为380V/50Hz电抗器R0.01ΩL1mH电容4700μF。第二步添加测量模块。用Three-Phase V-I Measurement测电压电流DC Voltage Measurement测直流电压。第三步搭建PLL。可以用Simscape Electrical专门PLL模块也可以自己搭SRF-PLL。完成后把角度连到Park变换模块。第四步搭建电流内环。将三相电流变换到dq后分别与参考值比较两个PI输出经过解耦补偿加上 ( -\omega L i_q ) 和 ( \omega L i_d )得到dq电压指令。第五步反变换回abc送入PWM发生器如Discrete PWM Generator载波频率10kHz输出脉冲给Universal Bridge。第六步电压外环。将直流电压测量值与700V给定比较PI后输出有功电流参考 ( i_d^* )。无功电流参考 ( i_q^* ) 由外部指令给比如需要感性无功时给负值。搭建时有个容易忽略的点电流互感器极性。Universal Bridge自带测量端口常见但用V-I Measurement时要注意电流方向。如果电流方向反了控制会变成正反馈一运行就发散。建议从负流向桥的电流定义为正与电抗器压降方向对应。3.3 启动过程与给定值斜坡处理SVG启动时直流电容需要充电。如果直接给定700V参考在初始阶段PWM满占空比冲击很大。我通常做两个处理直流电压参考值用斜坡或一阶惯性从0逐渐升到700V时长为1秒左右。无功指令同样加斜坡避免电流突变。也可以用闭锁PWM、不控整流预充电的方式但仿真中简化即可。实测下来斜坡时间太短小于0.2s还是会有较大冲击电流推荐用0.5~1s。4. 仿真运行与结果分析要点4.1 稳态补偿效果怎么看跑完仿真主要看三个指标并网电流是否与电网电压同频、可调相位。电流波形正弦度THD是否低于5%。无功功率跟踪是否准确稳态误差是否为零。我在模型中设置了一个阶跃无功指令0.5s前 iq* -50A感性0.5s后跳到 50A容性。观察dq电流波形可以看到实际iq在大约两个工频周期内就跟随指令说明电流环响应正常。再看直流电压会在无功阶跃瞬间有小的凸起随后被电压外环拉回700V。电网侧电流和电压的相位关系要单独看。用Scope同时显示A相电压和A相电流感性工况下电流滞后电压90°容性工况下超前90°。这个波形很容易判断补偿性质是否正确。如果相位反了说明q轴电流符号定义反了。4.2 动态响应过程与波形解读动态响应是SVG优于传统SVC的关键。通过阶跃仿真可以提取出电流环上升时间、超调量和电压环调节时间。我在工程实践中电流环上升时间3~5ms电压环调节时间100~200ms比较合理。如果电流上升时间超过10ms一是PI带宽太低二是电感太大导致系统时间常数大。如果超调过大通常内环PI的Kp偏大或者解耦补偿里L值不准。此时可以查看电流波形的振铃现象。直流电压波形也有讲究。我在测试不同电容值时发现电容变小动态电压波动从几十伏变成上百伏但恢复时间变短。实际选型时需要看允许的电压波动范围。仿真中为了演示效果不少同学会把电容取很小让波动很明显——这其实是错误的演示因为电容太小会导致桥臂输出电压畸变电流谐波增大。4.3 谐波分析与FFT检查Simulink里的Powergui模块可以设置仿真类型和做FFT分析。在稳态后截取10个周期用FFT工具看并网电流的频谱。正常情况下只有基波和少量开关次谐波簇。如果出现大量低次谐波3、5、7次说明控制环路有问题3次谐波大常见于dq轴电流存在直流偏移可能是因为坐标变换的相位不准或传感器采样偏移。5、7次谐波大多是电网电压有背景谐波时PLL滤波不足导致控制角度有纹波。开关频率附近谐波突出则该调整电感或载波频率。我遇到过一例PLL带宽设得很高电网电压含2%的5次谐波于是dq轴电流出现了明显的300Hz纹波这个纹波反变换到abc就变成了5、7次谐波THD直接到8%。把PLL带宽降低后电流谐波降到3%。所以PLL的滤波能力不容忽视。5. 调试过程中最常见的坑与排查方法5.1 启动发散、直流电压失控这是新手最常见的问题往往一两秒运行就报错或者波形飞掉。原因通常是电流反馈极性接反形成正反馈。PI输出限幅没设导致调制指令过大过调制后系统失控。PWM调制方式不对三角载波幅值与调制波幅值不匹配。我的排查顺序是先断开电压外环只给固定id和iq看电流内环能否稳定跟踪。如果能再加电压环。这样可以把问题隔离。另外给PI输出加限幅非常关键电压指令不能超过调制比上限一般限幅在±800V左右对700V直流超过会导致过调制波形畸变。5.2 无功方向不对、电流相位反了如果你观察到电压和电流的相位关系与指令相反比如给了感性指令却看到电流超前大概率是q轴定义符号问题。检查Park变换中sin/cos的角度代数符号。不同书籍对dq轴方向定义不同有的用 ( \theta - \pi/2 )有的直接用 ( \theta )。最简单的方法是在0.5s时给一个无功正跳变观察A相电流相位是否从滞后变为超前。确定符号后统一改q轴指令符号即可。5.3 PI参数整定的实用技巧很多同学问PI参数怎么调。我的经验是先调内环、再调外环。电流内环给一个微小阶跃观察响应用试凑法先设Ki0Kp从零逐渐增大直到电流出现明显振荡记录临界值然后Kp取临界值的0.5~0.6倍。再加Ki保持Kp不变逐渐增大Ki到稳态无静差且响应恰当。电压外环类似但带宽要低。还有一种快捷方法按之前说的零极点对消算出初值再手动微调。仿真比硬件调试宽容得多可以大胆试。5.4 运行速度慢与步长设置SVG仿真开关频率10kHz用固定步长离散求解器步长一般设为开关周期的1/20也就是5e-6s。仿真1s需要20万步跑起来比较慢。如果只是看稳态波形可以降低开关频率到5kHz步长1e-5s速度能快4倍控制效果差异不大。也可以把PWM调制器和控制器都设成离散模块用Powergui离散仿真速度比连续快很多。我推荐仿真时间设0.5~1s就够观察启动到稳态。6. 配套报告文档的写法与演示思路6.1 万字报告的结构拆解这套模型附带的万字报告写法上完全可以作为模板。我看了很多学生的设计报告结构大多包括绪论无功补偿背景、SVG与SVC对比研究意义。工作原理电压型桥式电路分析、无功交换机理。控制策略瞬时无功理论、dq变换、双闭环PI控制。主电路参数设计直流电压、电抗器、电容、开关频率的计算。仿真模型介绍各部分模块的作用参数设置表。仿真结果分析稳态、动态、谐波波形及说明。总结与展望。报告的核心不是堆字而是要让参数的每个选择都有依据。比如“电感取1mH是因为开关频率10kHz纹波限制在15%”这种说法才有说服力。6.2 如何用模型快速生成论文图表写报告时最麻烦的是规范化波形图。Simulink中可以用Scope直接截图但更专业的方式是把数据输出到工作区统一用MATLAB脚本绘图。在Scope参数里勾选“Save data to workspace”变量名改成time、idata等然后写个plot脚本生成统一格式的图片。这样颜色、字体、时间范围都可以控制。我还习惯把dq轴电流、直流电压、并网电流放在同一张图的不同子图里这样能直观展示双闭环的动态过程。论文对图的要求是清晰能说明问题不需要花哨。7. 把这套模型用起来的扩展思路7.1 从固定无功补偿到动态负荷补偿当前模型给的是固定的无功指令。实际应用中SVG需要响应负载无功变化。你可以把负载侧加一个变化的无功负荷比如异步电机启动然后用它的无功测量值作为iq*的指令来源。这就是闭环补偿系统的雏形。扩展方法在负载侧加功率测量模块PQ Measurement测出负载的瞬时无功Q_L把 ( i_q^* -Q_L / (1.5 e_d) ) 作为指令。仿真中会看到电网侧无功功率被补偿到接近零这是目前工业现场最普遍的应用模式。7.2 从两电平SVG扩展到三电平NPC两电平桥式结构是基础如果要做更高端的课题可以换成三电平中性点钳位NPC拓扑。控制算法上多了中点电位平衡控制调制策略改成SVPWM或载波层叠PWM。我在做三电平时发现中点电位波动是个麻烦问题需要在小矢量选择上做调整。但先把两电平模型弄得明明白白再扩展三电平会轻松很多。坐标变换、双闭环控制逻辑完全一样变的只是桥臂和调制部分。7.3 从仿真走向半实物实验仿真跑通之后如果条件允许可以用RT-LAB或dSPACE做硬件在环实验把控制算法烧进控制器连接真实或模拟的主电路。这个过程能发现很多仿真中不会出现的问题比如信号延迟、采样保持时间、I/O饱和等。至少把仿真控制器里的离散采样周期与实际DSP一致如10kHz电流环你会感受到控制效果的变化这是深入理解SVG控制的重要一步。最后分享一个我自己反复用过的小技巧调试SVG模型时别一上来就把所有模块全连好再运行那样子一出问题根本不知道错在哪。我是把模型分成几个里程碑节点每完成一个就停下来看波形节点一主电路单独运行不控整流看直流电压能不能充起来三相电流是否对称。节点二PLL运行对比PLL输出角度和电网电压过零点的关系确保相位正确。节点三开环给固定调制波看变流器输出波形是否正常。节点四闭合电流内环只测阶跃跟踪。节点五闭合电压外环完成整个系统。这个流程下来遇到问题基本能第一时间定位。很多同学仿真失败不是控制理论不会而是把不确定因素堆在一起跑结果一步错步步错。把这个检查清单保留下来你以后搭任何整流器、逆变器甚至APF仿真都能用上。我用这个方法还快速搭过有源电力滤波器APF的模型控制框架几乎同源改一下指令计算和补偿目标就能迁移。这也是我为什么一直强调SVG模型值得认真吃透——它不仅是无功补偿装置本身更是理解PWM变流器控制的万能钥匙。