尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

单相STATCOM仿真建模与无功谐波补偿控制参数设计

单相STATCOM仿真建模与无功谐波补偿控制参数设计 单相STATCOM做了差不多两个月从最开始只会搭三相的模型到能把单相系统的无功和谐波一块儿收拾干净中间踩了不少坑。这篇就把整个思路、模型搭建过程和控制参数设计一起捋一遍给同样在做单相无功补偿仿真或者准备入门STATCOM的朋友一个能直接参考的路径也把我调试时遇到的一些怪问题列出来。这里说的单相STATCOM指的是通过一个单相电压源型逆变器并联在电网上既能输出超前或滞后的无功电流来补偿系统无功又能在电流指令里叠加谐波分量让装置输出反向谐波电流去抵消负载产生的谐波。整套东西用Simulink验证下来效果很直观。1. 单相系统的功率因数困境与STATCOM的定位1.1 单相低压系统谐波电流的主要来源单相系统里最常见的非线性负载就是整流桥后面带一个大电容的直流负载比如家用空调、变频器、开关电源、LED驱动电源。这类负载从电网取电流的时候只有交流电压峰值附近那一小段才有导通电流波形是一组很窄的尖峰脉冲不是正弦波。从频域看这个尖峰电流里除了基波分量还带着大量的3次、5次、7次等奇次谐波。单相系统里3次谐波问题尤其突出因为三相系统的3次谐波在中性线上会叠加而单相系统的3次谐波直接就体现在相电流里。谐波电流在线路阻抗上会产生谐波压降导致供电电压畸变还会增加变压器和线路的铜损中性线过热。1.2 为什么选择STATCOM而不是并联电容器传统的无功补偿手段是并联电容器组或者接触器投切电容。电容器组只能补偿固定的容性无功负载变化的时候没法连续调节而且电容和系统电感在某些谐波频率下容易发生并联谐振反而把谐波放大。早期有人用“电容电抗”组成调谐滤波器来兼顾无功补偿和谐波吸收但滤波器参数受电网阻抗变化影响很大失谐之后效果衰减很明显。STATCOM用全控型器件IGBT、MOSFET构成电压源型逆变器通过调节输出电压的幅值和相位来控制注入电网的电流从而实现对无功功率的连续动态补偿。它的本质是一个可控的电流源既能输出超前无功也能输出滞后无功补偿范围是双向的。更重要的是电流指令可以由瞬时无功计算得到谐波分量也可以叠加进去这样STATCOM同时就具备了有源滤波器APF的功能——这是无源电容绝对做不到的。1.3 标题所描述的补偿无功减轻谐波到底是什么意思标题里补偿无功功率并减轻谐波这句话对应的控制目标是两件事第一让电网输出的电流和电网电压同相位也就是把系统的功率因数校正到接近1消除基波无功电流。表现在波形上补偿后电网电流是正弦的相位和电压对齐。第二让电网电流里不含有谐波分量。非线性负载产生的谐波电流由STATCOM本地提供电网只提供基波有功电流。表现在波形上补偿后电网电流的THD数值明显下降。这两个目标在控制上是可以合并处理的先把负载电流的基波无功分量和谐波分量都提取出来取反之后作为STATCOM的电流指令用电流跟踪控制让STATCOM输出相应的补偿电流即可。这也是我在这篇文章里采用的统一控制框架。2. 单相STATCOM主电路拓扑与控制原理拆解2.1 单相桥式VSC拓扑结构与器件选型单相STATCOM的主电路就是一个单相全桥电压源型逆变器VSC交流侧通过一个滤波电感L接入电网直流侧是一个支撑电容C。四个开关管可以选用IGBT加反并联二极管如果仿真电压等级不高比如220V系统用MOSFET也可以关键是反并联的续流二极管必须有因为在无功补偿的时候电流经常是反着流的。直流侧电容的作用是维持直流电压稳定同时为逆变器提供一个低阻抗的电压源。电容电压必须大于交流侧电压的峰值否则逆变器无法输出足够的补偿电流。对于220V有效值的系统交流峰值约为311V直流电压至少要给到360V以上实际工程里一般取380-400V。滤波电感L的作用有两个一是把逆变器输出的PWM电压波滤成比较平滑的交流电流二是限制电流的变化率让电流能跟上指令值。电感取值和开关频率有关后面会专门讲。2.2 单相系统无法直接套用三相dq坐标变换很多从三相STATCOM转过来做单相的人第一个反应就是把三相的dq变换直接拿来用。但单相系统只有一个交流量没有天然的αβ两相正交分量直接做Park变换是没有意义的。这里需要人为构造出一个正交的虚拟相量。常用的做法有两种一种是信号延迟法把当前采样值延迟1/4个工频周期5ms作为虚拟的β轴分量另一种是SOGI二阶广义积分器法通过一个自适应滤波器同时输出与输入同相和正交的两个分量。延迟法实现简单但动态响应慢半拍且在频率偏移时有误差。SOGI法响应快、抗频率偏移能力强我自己用的是SOGI配合一个简单的锁相环PLL实时跟踪电网频率在整个仿真过程中表现得非常稳定。构造出正交分量后就可以套用标准的dq变换公式[ \begin{bmatrix} i_d \ i_q \end{bmatrix} \begin{bmatrix} \sin\theta -\cos\theta \ \cos\theta \sin\theta \end{bmatrix} \begin{bmatrix} i_\alpha \ i_\beta \end{bmatrix} ]其中(\theta)是锁相环输出的电网电压相位。对于基波正序分量变换到dq同步旋转坐标系后是直流量用PI控制器可以实现无静差跟踪对于谐波分量在dq坐标系下则是特定频率的交流量。这个特性后面设计谐波补偿策略时很关键。2.3 谐波电流检测与指令电流生成逻辑单相STATCOM的指令电流怎么来我试过两种方案。第一种是直接检测负载电流做dq变换后取其中的无功分量和谐波分量作为补偿指令第二种是检测电网电流把电网电流控制在纯有功正弦STATCOM自动补上缺的那部分。我采用的是把负载电流作为检测对象、让STATCOM补偿负载电流中的无功与谐波部分这种方案。具体步骤如下采样负载电流(i_L)使用SOGI构造正交的αβ分量。通过dq变换提取有功电流(i_d)和无功电流(i_q)这里的(i_d)和(i_q)是包含直流分量和交流分量的复合信号。基波有功分量是(i_d)中的直流部分基波无功分量是(i_q)中的直流部分谐波分量就是两者中的交流部分。补偿指令电流(i_c^* i_q)的直流分量反号 (i_d)的交流分量反号 (i_q)的交流分量反号。为了分离直流和交流可以用一个低通滤波器或者陷波器滤波器带宽不能太低否则动态响应慢但带宽太高又滤不干净这个需要折中。我仿真中用一阶低通截止频率设在100Hz左右再配合一个10ms左右的响应时间效果还不错。整个控制框架就是外环是直流电压环维持直流侧电压稳定在400V内环是电流环跟踪指令电流调制环节用单极性SPWM把电流控制器输出的调制波变成驱动信号。3. 控制系统的设计与参数整定3.1 双闭环控制结构直流电压外环电流内环电流内环是整个人STATCOM控制的核心。电流环的输入是指令电流(i_c^*)和实际输出的补偿电流(i_c)两者做差后经过PI控制器得到逆变器输出电压的参考值再通过SPWM产生驱动信号。注意这里的电流环PI控制器和前馈解耦。单相系统的电压方程是[ u_{inv} u_s L\frac{di_c}{dt} ](u_{inv})是逆变器输出电压(u_s)是电网电压。如果只用PI控制器去跟踪指令电流PI环节需要自己去对付电网电压这个扰动动态响应差不说还可能饱和。所以我在PI输出前面加了电网电压的前馈项把(u_s)直接补偿掉这样电流环面对的被控对象就近似成一个纯积分环节PI参数设计起来就非常方便。直流电压外环的作用是维持电容电压稳定。因为STATCOM本身是有损耗的开关管的开关损耗、线路电阻损耗都会让直流电压慢慢掉下去需要外环提供一点有功电流来补充这个能量损失。外环PI输出的是有功电流指令的幅值和锁相环输出的单位正弦信号相乘后加到电流指令里。3.2 PI参数整定方法最早调PI参数的时候是经验试凑试来试去总有一个环节在振荡。后来用了基于对象模型的整定法一下清爽很多。电流环在加入电网电压前馈之后的等效对象是[ G_i(s) \frac{1}{Ls} ]这是一个纯积分环节按I型系统整定PI控制器的传递函数为(K_p K_i/s)开环传递函数为((K_p s K_i) / (L s^2))。如果取(K_i / K_p R/L)这里R是线路电阻通常很小可忽略那可以把开环传递函数化简为(K_p / (Ls))闭环带宽约等于(K_p/L)。我仿真里L4mH希望电流环带宽在1kHz左右那么(K_p L \times 2\pi \times 1000 \approx 25)(K_i K_p \times R / L \approx 5)R取0.8Ω时。实际调试中在这个基础上微调就很快收敛了。直流电压外环的带宽要远低于电流环一般设计在20-50Hz否则直流电压环的调节会和电流环互相干扰。外环PI参数同样可以用类似方法整定把电流环近似成单位增益(C)是电容值外环对象近似为(1/(sC))按带宽需求算即可。3.3 单极性SPWM与双极性SPWM的取舍单相全桥逆变器可以用双极性SPWM也可以用单极性SPWM。双极性SPWM四个开关管在每一个载波周期内都高频切换桥臂中点输出电压在(±U_{dc})之间跳变等效输出电压的谐波频谱差一些而且开关损耗大。单极性SPWM的特点是输出电压在(0)和(±U_{dc})之间切换等效开关频率翻倍同样的开关频率下谐波小很多。具体实现是左桥臂A相用高频三角波调制右桥臂B相用工频方波或者互补的调制信号使得桥臂输出电压只在正半周和负半周分别工作。我在Simulink里用两个比较器分别控制左桥臂和右桥臂左桥臂调制波电流环输出与高频三角载波比较输出A相上管驱动。右桥臂需要产生一个与调制波反相的基准或者更简单的做法——用正弦绝对值信号与载波比较后再根据调制波符号决定输出极性。用单极性SPWM之后电网电流的纹波明显减小THD进一步降低而且L可以取小一点。代价是控制逻辑比双极性复杂一点不过用Simulink的逻辑模块完全够用。4. Simulink建模与仿真实现细节4.1 模型整体搭建设计打开Simulink之后我先建了一个新的模型把仿真类型设为离散定步长步长取10微秒对应100kHz采样率足够覆盖20kHz的PWM载波。模型分几个子系统电网与主电路子系统交流电压源、线路电感、整流桥非线性负载、STATCOM主电路。负载子系统一个单相不控整流桥接电阻负载用来产生谐波和无功需求。控制子系统PLL、SOGI正交分量构造、dq变换、直流电压环、电流环、SPWM生成。测量与显示电压电流波形采集、THD分析可以用Powergui的FFT工具也可以把数据导出用MATLAB的fft函数处理。这里必须提醒一点如果用了Simscape Electrical原SimPowerSystems的电力电子模块一定要额外放一个Powergui模块选择离散仿真模式采样时间设1e-6或2e-6否则仿真会非常慢或者直接报错。4.2 关键模块参数参考下面是我仿真里用的一组经过验证的参数直接照搬基本能跑通参数数值说明电网电压有效值220 V50 Hz单相线路阻抗0.5 Ω 2 mH模拟线路阻抗直流侧电容2200 μF支撑直流电压直流电压参考值400 V高于峰值311V滤波电感4 mH并网电感开关频率20 kHz单极性SPWM等效40kHz负载电阻10 Ω不控整流桥输出不控整流桥直流侧电容470 μF产生典型谐波电流电流环PIKp25, Ki5按带宽1kHz整定电压环PIKp0.5, Ki15带宽约30Hz4.3 仿真步长与求解器的选择很多初学者在搭电力电子仿真的时候会因为求解器选得不对而出现仿真发散或者仿真速度慢得离谱的情况。如果用的是Simscape Electrical元件库我建议仿真类型选择离散Powergui的采样时间设为1微秒。这样Simulink会用定步长离散求解器来处理整个模型虽然牺牲了一点精度但换来的是几十倍的仿真速度提升而且不会出现连续求解器在开关切换点处反复迭代导致的收敛失败问题。如果坚持用连续求解器推荐ode23tb相对容差设为1e-3最大步长限制在2e-6秒以内。连续仿真在开关动作频繁的情况下会很慢所以我在实际调参过程中都是先用离散模式跑通逻辑最后再切换到连续模式验证一遍。4.4 模型运行前需要检查的几处细节电感电流初始值在电路的初始状态里滤波电感的初始电流设成0直流电容的初始电压可以设成0或者400V。如果从0开始启动瞬间电流冲击会比较大但也能顺便观察控制器的动态调节过程。我一般设为0看完整的启动动态。PLL的初始相位PLL初始相位设为0仿真一开始有一个短暂的锁相过程。如果想要更快进入稳态可以把PLL输出的相位初值和电网电压的初始相位对齐。负载的连接位置非线性负载和STATCOM的公共耦合点必须一致否则补偿效果会打折扣。实际模型里我把两个都接在同一个母线上母线电压就是电网电压经过线路阻抗后的电压。测量模块采样率示波器或者To Workspace模块的采样时间别设太大否则FFT分析的时候分辨率和频带都不够。我的数据采集步长是1e-5秒FFT分析窗口取0.2秒10个周期。5. 仿真结果分析与性能评估5.1 补偿前的惨状固定步长仿真设置好之后先把STATCOM的驱动信号屏蔽掉比如把逆变器四个开关管的G极脉冲置零只让非线性负载跑起来这样得到的就是补偿前系统的原始状态。这时候看电网电流波形是非常典型的尖顶波峰值大约能到35A左右但波形很瘦每个工频周期只有两小段导通。用FFT分析THD测出来大概在60%-80%之间具体数值和负载电阻、电容大小有关。基波电流的相位也比电压稍微滞后一点功率因数大概只有0.85左右其中既有谐波导致的畸变功率也有基波无功的成分。5.2 投入STATCOM后的波形改善把STATCOM的驱动信号恢复运行到稳态之后再看波形效果非常直观电网电流从尖顶波变成接近正弦的波形电流峰值略降因为无功和谐波不再由电网提供总电流减小了同时电流和电压的相位完全对齐。从波形细节看补偿后的电网电流并不是完美正弦还残留着开关频率附近的纹波这是PWM的正常现象但工频段的谐波基本被消除干净了。THD从60%-80%降到5%以内功率因数从0.85提升到0.99以上效果符合预期。这里有个有意思的现象是STATCOM输出的补偿电流波形特别复杂既有基波无功分量又叠加了高频谐波分量看起来乱糟糟的但正是这个乱糟糟的电流把负载产生的谐波和无功电流顶掉了让电网只提供干净的有功电流。这正是STATCOM与单纯的无功补偿装置的核心区别。5.3 直流侧电压的动态响应直流侧电压从初始0V启动后会经历一个较长的动态过程。电压环刚开始的时候误差很大PI输出饱和STATCOM输出较大的有功电流给电容充电电压快速上升。接近400V的时候充电电流逐渐减小电压进入平稳状态整个建压过程大约耗时0.1-0.15秒和电容大小、电压环参数有关。当负载突变的时候比如把负载电阻从10Ω跳到5Ω直流电压会有短暂的跌落大约跌落10-20V随后在0.1秒内恢复到参考值。这个动态过程正好说明电压外环工作正常负载突然增大STATCOM损耗增加或者需要补偿的电流增大直流电压下降外环感知到误差后增加有功电流指令把电压拉回来。6. 参数设计原则与排坑实践6.1 直流侧电容怎么定直流电容的大小直接影响直流电压的纹波和系统的动态响应。电容太大电压纹波小但启动充电时间长动态响应慢电容太小电压纹波大可能会导致电流环的参考指令直接叠加较大的低频纹波让补偿效果变差。单相系统中有一个特殊问题——直流侧天然存在2倍频100Hz的功率脉动因为瞬时功率等于电压和电流的乘积单相系统瞬时功率的频率是100Hz。这个100Hz的脉动会在直流电压上产生2倍频纹波纹波大小[ \Delta U_{dc} \approx \frac{P}{2\omega C U_{dc}} ]假设系统容量是5kVA(U_{dc}400V)(C2200\mu F)那么(\Delta U_{dc} \approx 5000/(2\times 2\pi\times 50 \times 0.0022 \times 400) \approx 9V)大约是2.3%的纹波这个幅度可以接受。如果电容取太小纹波变大电流环指令里会混入明显的100Hz分量补偿效果会变差。6.2 滤波电感的取值逻辑电感的取值受两个约束。一是电流纹波的要求电感越小电流纹波越大二是电流跟踪速度的要求电感越大电流变化越慢动态响应差。单极性SPWM等效开关频率是40kHz假设允许10%的额定电流纹波那电感大约在3-5mH之间。如果开关频率降到10kHz电感就得相应增大到10mH以上否则纹波电流会很大。另外还要注意电感的直流电阻。仿真里我为了方便把电感设为纯感性但实际工程中电感总是有电阻的。电阻太大会在电感上产生较大的压降和有功损耗影响补偿精度这也是为什么实际STATCOM里的滤波电感要用高频低损磁芯。6.3 仿真发散与不收敛的排查链路我在调试中遇到过一次特别诡异的发散问题STATCOM一投入仿真没过多久就报Input voltage contains NaNs或者仿真步长不断减小。排查链路过了一遍最后定位到是SPWM生成模块的载波比较逻辑出了bug——调制波超过载波幅值范围导致比较器输出异常。遇到发散问题我的排查顺序是先把PWM开关频率降低比如从20kHz降到2kHz看是否还发散。如果不发散了基本是数值计算问题。检查Powergui的采样时间是否足够小要小于开关周期的1/10如果太大开关切换的瞬间电压电流跳变可能超过数值解算器的处理能力。检查控制算法里有没有代数环。Simulink在高频开关模型里出现代数环求解器很容易不收敛。我用电感电流作为状态量输出为电流源性质能有效避免代数环。最后检查PI控制器的输出限幅。没有限幅的话PI输出可能跑到几百伏调制波超出载波幅值必然出问题。6.4 仿真速度慢的提速建议电力电子仿真跑得慢是常态。我这边采取的措施仿真类型改为离散、Powergui采样时间取2微秒、把PWM载波频率降到10kHz牺牲一点波形质量换取速度、关闭不必要的示波器图形显示、把所有测量数据通过To Workspace导出到工作区最后统一用MATLAB脚本来画图。调整之后一个5秒的仿真包含动态过程大概只需要几分钟就能跑完相比连续求解器动辄半小时起步效率提升非常明显。6.5 一个容易被忽略的细节锁相环在谐波环境下的表现仿真环境里的电网是理想正弦但在实际系统中母线电压本身是有畸变的。如果把PLL的输入接在畸变严重的母线上锁相环输出的相位会有波动dq变换出来的量也就不干净。在仿真里我刻意做了一次对比测试把电网电压加了一些5次谐波畸变再用普通的单同步坐标系锁相环去锁相发现锁相输出有明显的100Hz纹波最终的THD补偿效果也变差了。解决办法是给PLL的电压测量信号加一个前置的低通滤波器或者用基于SOGI的正交信号发生器方案来锁相SOGI天然对谐波有衰减锁相会稳很多。这个细节在做实际工程或者复现论文里的结果时经常遇到值得留意。7. 从仿真到工程样机的差距与进阶优化方向7.1 仿真和实际装置之间隔着什么Simulink仿真把很多理想条件都隐藏了。开关管没有导通压降和死区时间电感是线性的没有饱和直流电容是理想电容没有ESR信号采样和PWM更新都在同一时刻完成没有延迟。这些理想化假设对控制逻辑验证没有影响但真要做一台样机下面几个问题立刻就会冒出来死区效应IGBT/MOSFET换流时必须插入死区时间一般在1-3微秒否则上下桥臂直通炸机。但死区会导致输出电压畸变产生低次谐波严重时直接把补偿效果毁掉。采样延迟数字控制器的采样计算和PWM更新之间存在一拍延迟这个延迟会降低相位裕度实际系统的电流环带宽会比仿真低很多。电感饱和大电流时电感量下降纹波变大控制参数跟着变不再是最优状态。7.2 谐波补偿策略的批量化处理前面讲的是最简单的全补偿策略——把负载电流里所有非基波有功分量全部补偿掉。实际工程里不一定需要做到全补偿尤其是低次谐波用较大的容量换来的收益并不高。所以很多STATCOMAPF功能会做成选择性补偿只补偿3、5、7次等主要的谐波次数每个频点单独设计谐振控制器或者重复控制器。在dq坐标系下谐波补偿可以这样实现负载电流做dq变换后(i_d)和(i_q)中的交流分量对应谐波取反后加进指令。如果要选择性补偿就对这些交流分量做带通滤波只提取特定频率的分量。这种做法的好处是容量利用率更高控制上也更灵活。7.3 用我实测数据验证的一个对比为了验证单极性SPWM和双极性SPWM的差异我做了一个直接对比。同样的主电路参数和控制参数双极性SPWM下电网电流THD大概在6.5%左右换成单极性SPWM之后THD降到了4.2%。纹波电流的峰峰值也明显减小。所以如果有条件我建议一律用单极性SPWM换取更好的补偿质量。7.4 控制算法层面还能怎么继续做如果目标是深入这个方向可以考虑把重复控制加进来。重复控制利用周期信号的周期性在一个周期内学习误差下一周期进行补偿对谐波的抑制能力非常强尤其适合稳态谐波占主导的单相系统。另一种值得关注的是比例谐振PR控制器。PR控制器在基波频率处提供无穷大增益在谐振点可以做到无静差跟踪正弦电流。不过PR控制器对频率偏移比较敏感频率一偏增益就下降实际系统里需要配合锁相环在线调整谐振频率或者在PR里增加频率自适应环节。我自己的下一步计划是尝试LCL滤波器的接入。L型滤波器的电感取大了必然放慢动态响应取小了高频纹波压不住。LCL在保证高频衰减的同时能用更小的总电感和更好的动态性能但LCL有谐振峰需要对谐振进行阻尼无源阻尼或有源阻尼控制设计比L型复杂不少。等LCL版本调通之后再回头对比L型和LCL型的THD和动态响应看看实际收益有多大。希望这套从原理到仿真实现的梳理能给正在做单相STATCOM仿真的朋友节省一点时间。仿真这种事最怕的不是模型复杂而是绕了一大圈发现是一个很小的地方出了错。如果照着本文的参数搭出来的模型在动态响应或者THD上有偏差优先检查锁相环的相位准确性、PI输出的限幅范围和调制波的幅值范围——这三个位置是我踩过最多坑的地方。
返回列表