拓冰建站拓冰建站
首页 / 资讯中心 / 正文

基于MATLAB Simulink的SVG无功补偿仿真与双闭环PI控制详解

最近手头在做一个厂区供电改造的预研项目朋友工厂那边的龙门吊一动作低压侧母线电压明显往下掉车间几十台变频器群启的时候功率因数表指针摆得厉害。翻遍原有电容柜的方案怎么算都觉得投切冲击和响应时间跟不上最后把目光放到SVG上——想先用MATLAB Simulink做一套无功补偿SVG仿真把控制思路、主电路参数和动态响应验证清楚再谈工程落地。整个过程走下来踩了几个坑也摸出了一些调PI的心得这里完整记录下来给同样在做SVG仿真和电力电子控制的朋友参考。这篇内容适合电力电子方向的在校学生、刚开始接触SVG研发的工程师、做配电成套方案的人阅读。我会从SVG的基本原理讲起然后把Simulink里主电路搭建、双闭环控制、PWM调制、参数整定和结果分析一条线讲透最后把实际仿真里容易发散的几个坑单独拎出来说。全程用一套具体的仿真算例参数来演示你可以直接照抄结构再按自己的电压等级和容量改参数就行。1. SVG到底比传统无功补偿强在哪1.1 无功补偿这个问题的本质先捋一下无功补偿的底层逻辑。感性负载在运行时要建立磁场这部分能量不对外做功但会在电源和负载之间来回交换占用了线路传输容量增大了线路压降和损耗。功率因数考核、变压器容量不够用、线损超标、末端电压偏低很多时候都是无功没有得到合理补偿带来的。传统做法是接触器分组投切电容器感应电机多或者变频器多的现场就根据电流和功率因数反馈一组一组往母线上并电容。这个方法便宜、可靠、用了很多年但痛点很明显——补偿量是阶梯式的一个步长至少几十千乏负载波动幅度小的时候要么过补要么欠补。另外电容投切瞬间会产生很猛的冲击电流对触头、电容本身、甚至整个母线上的其它设备都是考验。热轧产线、焊机群、龙门吊、提升机这类负载无功变化速率很快分级投切基本追不上。后来出现了SVC用晶闸管控制电抗器的导通角来连续调节吸收无功或者用晶闸管投切电容器组响应速度在几十毫秒级别比接触器快了一个数量级是无功补偿领域的重要升级。但SVC本身是阻抗型补偿存在几个顽固问题晶闸管触发角大时谐波明显系统阻抗和补偿回路之间可能发生谐振而且本质上它既要有电容器又要有电抗器占地面积大。这时候SVG走到台前。SVG全称Static Var Generator静态无功发生器核心是一个电压源型PWM变流器加直流侧电容再通过电抗器并联接入电网。它的本质是受控电流源通过控制变流器交流侧输出电压的幅值和相位让流过电抗器的电流连续可调逆变状态输出容性无功整流状态吸收感性无功从满载感性到满载容性都能平滑过渡。响应时间能做到几毫秒甚至更快动态性能甩开SVC一个身位。补偿方式响应速度补偿连续性谐波水平占地/体积控制复杂度接触器电容柜秒级阶梯式低大低SVC(TCRFC)20~50ms连续较高需滤波器很大中SVG毫秒级连续平滑低(PWM可优化)小高从这张对比表能明显看出SVG在响应速度上的代差优势。这也是为什么现在配电网、充电站、新能源场站这些对动态无功需求强的场景绝大多数都直接上SVG。吃透SVG的仿真其实就是吃透PWM整流器的建模和控制这个底层能力掌握之后再做有源滤波APF、光伏逆变器、储能变流器PCS的控制思路是通的。1.2 SVG补偿的物理过程直观理解要建好SVG的Simulink模型得先想明白它在电路层面到底干了什么事。SVG主电路就是三相桥式逆变器直流侧一个大电容交流侧经过电感L接入电网。电抗器L两端连着两个电压源一侧是电网电压Us另一侧是变流器输出电压Ui。电抗器上的电流I (Us - Ui) / (jωL)。也就是说只要改变变流器输出电压矢量的大小和方向就能控制流过电抗器的电流。在理想情况里SVG补偿无功时只交换无功功率直流侧电容电压基本不变。这时变流器输出电压Ui和电网电压Us幅值很接近两者夹角很小流过电抗器的电流近似为无功电流要是Ui幅值比Us高电流相位超前电压SVG输出容性无功相当于给母线上补了个可调节的电容反过来Ui幅值略低电流滞后电压SVG吸收感性无功行为像一个可调节的电感。幅值差越大无功电流就越大。实际工程中不能只靠幅值差控制因为变流器输出电压和电网电压之间还存在相位差相位差会伴随有功功率流动。仔细研究会发现稍微控制一点相位差能量就能从电网侧流入直流电容维持电容电压稳定。所以完整的控制策略必须双管齐下用幅值差控制无功电流用相位差控制有功分量补充直流损耗和维持直流电压。这个思想落到控制上就变成了后面要讲的dq坐标系下的电流解耦控制。交流量在三相静止坐标系里是正弦波PI控制器没法做到无静差跟踪但经过Park变换到与电网电压同步旋转的dq坐标系后基波正弦量变成了直流量用传统PI控制器就能精确控制无功分量和有功分量。这一步是所有三相VSC控制软件的核心基石。2. 双闭环控制的数学原理和PI参数初值2.1 dq坐标系下的SVG数学模型为了给Simulink建得有理有据数学模型必须先列清楚。取电网电压矢量方向为d轴q轴超前d轴90度经过Park变换后SVG交流侧的状态方程如下L·di_d/dt Us_d - Ui_d ω·L·i_qL·di_q/dt Us_q - Ui_q - ω·L·i_dUs_d和Us_q是电网电压的dq分量Ui_d和Ui_q是变流器输出侧电压的dq分量ω是电网角频率。从公式可以看出d轴和q轴之间通过ωL交叉耦合。电流控制器要同时控制i_d和i_q必须把耦合项和前馈电压补偿掉这叫前馈解耦控制。实际控制器输出的变流器参考电压为Ui_d_ref Us_d ω·L·i_q - (Kp_i Ki_i/s)·(i_d_ref - i_d)Ui_q_ref Us_q - ω·L·i_d - (Kp_i Ki_i/s)·(i_q_ref - i_q)前两项是解耦和前馈后面括号部分是PI调节器对电流误差的校正。这样设计之后i_d和i_q就可以独立控制d轴电流控制有功通道q轴电流控制无功通道。2.2 双闭环结构怎么安排SVG控制策略通常采用电压外环和电流内环双闭环。电流内环的作用是快速跟踪指令电流保证动态响应和限流能力带宽要求高。外环分两路第一路是直流电压外环。SVG工作时直流侧电容需要有功功率来维持电压如果把直流电压控制住相当于告诉有功通道从电网吸收多少有功来补充开关损耗、线路损耗和电容漏电。直流电压外环输出的是d轴电流指令i_d_ref整定原则是外环带宽大约为内环带宽的1/5到1/10保证两个环路不打架。第二路是无功/交流电压外环。对要补偿无功的SVG来说通常根据电网调度指令或本地母线电压目标计算出需要补偿的无功功率Qref然后换算成q轴电流指令i_q_ref。换算关系是Q ≈ 1.5·Us_d·i_q。注意i_q的方向定义不同会导致符号相反Simulink里搭模型前先把坐标变换约定写清楚不然后面看波形很容易怀疑人生。整个控制链路已经比较完整了电网电压通过PLL锁相后得到同步角度θ用θ做Park变换把采样到的三相电流转成i_d和i_q和指令值比较各自过PI调节器再加上前馈解耦量得到Ui_d_ref和Ui_q_ref反Park变换得到三相调制波和三角载波比较输出PWM波驱动IGBT。2.3 PI参数怎么给初值很多时候仿真发散不是模型不对而是PI参数瞎给的。这里我说一下我整定的基本步骤。电流内环对象近似为一阶惯性环节传递函数是1/(L·s R)。设电流环开环截止频率为ω_ci闭环带宽建议为载波频率的1/10到1/5。以我后面搭建的仿真为例开关频率10kHz电流环带宽取1000rad/s左右。调节器写为Kp_i Ki_i/s当零点被放置在对消掉被控对象极点位置时Kp_i约等于L·ω_ciKi_i约等于Kp_i·R/LR一般是电抗器寄生电阻加线路电阻。直流电压环的带宽取电流环的1/10约100rad/s。控制对象是直流电容的积分特性工程上先给一组初始参数然后在阶跃负载下观察直流电压的恢复时间和超调量按“先比例后积分”的次序迭代。我最终的参数范围如下供参考控制环Kp初值Ki初值备注电流内环d轴1.520根据电流超调微调电流内环q轴1.520与d轴对称直流电压外环0.13带宽远低于电流环无功/交流电压外环0.020.5动态响应最慢的一环这里的初值是以380V/10kVar等级、L3mH、直流电容3000μF为基准估算的。你换电压等级和容量时不要照抄数字要按比例重新估算。后面我会说怎么通过仿真波形反过来修正参数这也是实际工程中真正花时间的地方。3. Simulink建模实操从搭主电路到跑通第一次仿真3.1 模型的整体框架我用的模型结构是三相电网电源→线路阻抗→母线→带负载的馈线同时在母线处并联SVG支路。SVG支路由三相电抗器、三相全桥、直流电容组成。控制部分用Simulink Simscape Electrical里的模块配合普通Simulink模块实现。这套模型的参数按一个普通低压配电室的情况来设电网线电压380V、50Hz负载额定有功30kW功率因数0.75无功需求约26kvar左右。为了让仿真运行时间不至于太长SVG容量设计为30kvar这样在调节范围内能覆盖负载无功波动。具体主电路参数见下表参数数值说明电网线电压380V/50Hz三相线路阻抗R0.01ΩL0.1mH模拟配电电缆交流侧电抗器L3mH约0.06pu兼顾滤波和动态响应直流侧电容C3000μF支撑直流电压抑制纹波直流电压给定Vdc_ref750V高于电网电压峰值537V留足裕量IGBT开关频率10kHz工程常用范围载波三角波幅值1频率10kHz主回路模块选择需要注意电源用“Three-Phase Source”通过内部阻抗参数模拟线路压降断路器或者STEP阶跃负载用“Three-Phase Breaker”和RL串联负载实现变流器直接用“Universal Bridge”内部型号选IGBT/Diode导通压降、导通内阻可以按默认或按所选IGBT器件参数修改。直流侧用一个大容量的“Series RLC Branch”选电容模式。3.2 Simulink模型搭建顺序第一步搭电源和负载。把三相电源、线路阻抗、负载接到一起先在Simulink里跑一遍纯电路仿真确认没有SVG时母线电压和负载电流正常记录此时的功率因数和电压跌落值。这个基础波形非常重要后面所有SVG的效果都要和它对比。第二步在主母线处接SVG支路。把3mH电抗器和Universal Bridge串联桥的直流端口接3000μF电容和直流电压测量。电抗器的位置我建议放在变流器和母线之间而不是放在直流侧这样电抗器既有滤波作用又作为能量交换媒介。注意电抗器两端都有电压电流测量模块电流的方向要保证从电网流入SVG时为正值不然后面坐标变换出来q轴电流的正负全乱。第三步做控制子系统。我从Simulink库中拖出这几个关键模块Three-Phase PLL、abc_to_dq变换模块、dq_to_abc反变换模块、PID Controller、调制波饱和限幅、PWM发生模块以及几个直流电压、无功功率的计算模块。为了调试方便把整个控制部分封装成一个Subsystem输入是三相电压、三相电流、直流电压输出是六路PWM脉冲。第四步生成PWM波。最直接的方式是用“PWM Generator”模块三个桥臂各一个比较器三角载波和调制波比较产生带死区时间的两路互补脉冲。Simulink的“PWM Generator(MOSFET/IGBT)其实内部就已经带了死区逻辑直接用就行。死区时间设2μs左右模拟真实驱动保护的延时。3.3 求解器和仿真参数设置这一步很重要SVG这种功率电子电路变流器开关在微秒级变化如果求解器没选对不是仿真发散就是速度慢到让人崩溃。在powergui里我选了离散仿真模式采样时间设为2微秒。PWM载波频率10kHz理论上载波周期100微秒一个载波周期内至少要采50个点才比较准确2微秒采样满足这个条件。离散模式下不光功率电子器件被离散化控制环的采样也是和这个步长同步的整个系统稳定性更好。不要直接用连续模式加ode23tb硬跑连续模式下每两个开关事件之间都要做事件检测仿真速度会慢一个数量级而且稍微有点数值毛刺就容易发散。求解器选离散固定步长求解器类型选ode3或者ode4都行。仿真总时长我设为0.5秒算下来步数25万步在普通PC上大概几分钟能跑完。控制采样时间和功率电路采样时间可以分开但我建议一开始先用同一采样时间模型简单清晰后期优化性能时再解耦。运行模型之前把示波器挂好电网三相电压和电流、SVG输出三相电流、直流电压Vdc、无功功率Q、PLL角度、d轴和q轴电流、PI输出。一次仿真跑完后不要急着改参数把这几路波形先整体看一眼基本能判断出整个系统工作在什么状态。我为了验证模型结构第一次仿真通常先不加负载只给SVG一个很小的无功指令比如-2kvar看它能不启动、能不能稳定。SVG起动瞬间直流电压从电网经反并联二极管整流后变为约537V然后控制环会把它抬升到750V给定值。这步能过说明控制方向、PLL角度、PWM极性都没有问题再进入下一步带载实验。4. 典型工况的仿真结果和分析4.1 无SVG基线的惨状先看没有投入SVG的基准工况。三相电源通过线路阻抗带30kW负载功率因数0.75。仿真出来的母线电压虽然还在合格范围但已经比电源侧低了不少电压跌落大约在5%左右负载电流很大峰值接近80A而且电流和电压之间相位差明显电流滞后电压约41度。这时候去算功率因数是0.75线路上的无功电流占了大头端部电缆、上级变压器都在白白承担这部分容量。这个基线场景的作用是提醒我们一个事实无功补偿做得越好同样的有功功率下线路电流越小线损和电压跌落也都跟着改善。后面SVG投入后对比这个工况就能直接量化补偿效果。4.2 SVG投入后的稳态补偿效果把SVG在t0.1s时投入给定无功指令Qref20kvar配合负载无功需求。投切瞬间先看到一点冲击电流随后在20ms左右电源电流波形趋于正常电压电流相位差明显缩到很小的角度功率因数从0.75提升到0.97以上。母线电压的幅值也基本恢复到电源侧水平跌落从5%降到1%以内。直流母线电压的表现是整个系统是否健康的最直观信号。投入瞬间直流电容先被充电到约750V给定值这中间有一个小幅超调大约到770V然后很平滑地稳定下来纹波控制在±5V以内。这个750V的稳定性说明有功通道工作正常控制器在实时调整有功电流来平衡系统损耗。再细看SVG输出的电流波形三相正弦度很好总谐波畸变率THD大约在3%以内。这里多说一句电抗器L的取值对THD影响很大L太小开关纹波电流太大L太大动态响应变慢无功补偿反应迟钝。3mH这个值在380V/30kvar这个容量下是合理区间实际产品里还会加LCL滤波器进一步降纹波但在仿真验证阶段单L够用。4.3 负载突变下的动态响应工程中最关心的是动态响应所以我专门设了一个工况t0.25s时把负载从30kW切到45kW无功需求也随之增大t0.4s时再切回30kW。观察SVG能不能快速跟踪无功变化。从波形可以清楚看到负载突增瞬间母线电压出现了一次短时跌落因为无功功率瞬间出现缺口SVG检测到这个变化后q轴电流参考值快速升高输出无功电流增大大约经过半个到1个电网周期母线电压就恢复到接近原来的水平。整个过程响应时间在10ms量级这比电容柜投切的几百毫秒快了太多比SVC的几十毫秒也优势明显。直流电压在负载突增的瞬间出现了一个小幅下坠这是因为瞬间有功功率需求增加直流电容需要先放出一点能量来支撑变流器输出电压外环随后调整d轴电流从电网补充能量。下坠幅度大约15V左右在20ms以内恢复。这里你如果看到直流电压掉得特别深甚至跌到600V以下就要检查直流电压外环的带宽设置大概率是给得太低了外环跟不上负载变化。4.4 从波形反推参数怎么调仿真中反复看到几个典型的波形问题也一并说一下。电流内环整定过强时d轴或q轴电流跟踪波形会出现明显的超调和振荡稳态时电流振荡纹波加大。这种情况要把Kp_i降下来Ki_i也适当减小让电流响应更平稳。电流环太弱时电流跟踪会有较大静差加上前馈量不够波形上能看见电流指令和实际电流一直有固定偏差这就要加大Ki_i来提高低频增益。直流电压超调太大时优先降低Kp_vdc。直流电压波形发生等幅振荡时要检查电压环带宽是不是和电流环带宽太接近了带宽拉开到5倍以上就很少出现这种问题。无功环的输出如果出现稳态震荡我遇到最多的是PI输出没有做限幅导致i_q_ref饱和退出饱和时发生极限环振荡。这是个非常常见又隐蔽的坑所有PI输出都要加饱和限幅限幅值要根据SVG额定容量换算成最大电流值来设定。5. 仿真过程中踩过的坑和规避套路5.1 PLL锁相角度出错引发的连锁反应我第一次搭这套模型时PLL输出角度是逆时针旋转为正的dq坐标系而abc_to_dq变换模块默认的坐标变换符号约定不完全一致结果PLL给的角度和变换模块里期望的角度符号方向差了个负号导致i_d和i_q完全反了直流电压根本建不起来波形疯狂振荡。这个问题的排查过程很有代表性一看到直流电压稳不住先查PLL角度和电压采样A相信号的相位关系是否和坐标系定义一致。经验做法是先用一个理想电网电压信号加入PLL把PLL输出的角度和A相电压的相位放同一张示波器里看。如果角度波形在A相电压过零时刚好处于0或2π附近说明PLL跟踪正确如果错开一个固定角度或者方向反了马上调整坐标变换的符号。5.2 开关频率和仿真步长的数字稳定性问题仿真发散这个问题在SVG模型里出现频率极高。我的排查经验是从小步长开始试首先把powergui的采样时间从2e-6增大到1e-5如果波形只是变粗糙但还能稳定说明是采样步长精度不够如果波形直接爆炸再查PWM载波有没有和采样时间同步。另一个隐蔽点是离散PWM发生模块的载波频率应该和电路采样频率成整数倍关系。10kHz载波配2微秒采样步长载波周期100微秒正好50个采样点相位关系稳定万一用了非整数倍PWM波在数字离散下会产生时间抖动给控制环引入噪声。5.3 PI限幅和积分饱和积分饱和这个问题在SVG这种有大惯性直流电容的系统中特别容易犯。启动阶段直流电压离给定值很远电压环PI输出很快顶到限幅最大值如果积分项没有做抗饱和处理后面等电压靠近给定值时积分项里积了一大堆误差能量要花很长时间才能退出来表现就是直流电压大幅超调甚至冲得很高。解决办法有两种在Simulink里都可以做一个是PID模块内部勾选“anti-windup”模式设置合适的Back-calculation系数另一个是更工程化的做法用两个滞环比较器对PI输出限幅并把限幅状态反馈回积分项的输入端切断继续积分。我一般先试PID模块自带的抗积分饱和不够再手写。还有一个容易踩的是电流环PI输出的饱和限幅没有考虑电流极限。SVG允许的最大补偿电流是交流电抗器设计和开关器件容量的核心约束限幅值设得太大会让IGBT过流设得太小则输出无功能力不足导致补偿效果达不到目标。5.4 三相断路器谐波冲击和初始条件问题Simulink里用断路器投切负载时如果没有在断路器模块勾选“初始状态关断从t0时刻就开始仿真”断路器闭合瞬间可能产生数值冲击导致仿真波形出现莫名其妙的尖峰。解决方法是仿真开始时断路器处于打开状态需要合闸的时刻由外部Step信号切换给系统一个明确的初始稳态。同理SVG本身的投入时机也要靠断路器控制主断路器在t0.1s才闭合避免SVG启动冲击和电源初始瞬态耦合在一起。工程现场里SVG的并网投入也有复杂的预充电、软启流程仿真里简化成断路器操作但投入时机的概念是一致的。5.5 电抗器寄生电阻对结果的影响很多人仿真时把电抗器设成纯电感结果直流电压稳定得很“理想”但实际系统的损耗被忽略了。我在模型里给电抗器加了一个0.05Ω左右的寄生电阻模拟线圈铜损和磁芯损耗幅度不大但对系统稳定性和直流电压外环的PI参数都有影响。加了这个电阻后你会发现SVG在零无功输出时直流电压也要依靠一点有功电流维持这是真实SVG的工作特性。如果实际产品里没有这个损耗直流电容电压会缓慢上升因为开关器件的驱动能量损耗低于理论计算值电压外环需要吸收少量的多余有功。仿真把这个损耗建出来对后面做实验时的参数迁移有很大帮助。最后再分享一个调参习惯SVG仿真最容易出成就感但也是最容易走弯路的地方就是双环PI参数都还没调稳就上去追求完美波形。我现在的做法是分步验证——先把PLL跟踪、坐标变换方向、PWM极性这些“方向性”的东西确认到波形完全正确然后调电流环到跟踪正常再调电压环到直流电压可控最后才调无功环到补偿效果。每一步都用固定的仿真场景验证参数修改有记录回到工程现场调设备时也能按这套顺序排查问题。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门