1. 先从一次电网电压跌落说起:LVRT到底在解决什么问题
做光伏并网逆变器仿真这几年,我最大的体会是:很多同学对"低电压穿越"的理解停留在"电网电压跌了别跳闸就行"这个层面。等真拿到一个LVRT仿真模型要求,面对改进MPPT、改进电流环、DSOGI锁相环、电流前馈控制这一堆关键词时,往往不知道该从哪下手。
这篇文章想把我自己做两级式光伏并网逆变器LVRT仿真模型的全过程拆开来讲:拓扑为什么选两级式、DSOGI锁相环在电压跌落时到底干了什么、改进MPPT的"改进"改在哪里、电流环和电压前馈怎么配合,以及仿真模型调试时最容易出错的地方。
先说LVRT本身。所谓低电压穿越,核心要求可以用三句话概括:电网电压跌落期间逆变器不能脱网、要按标准向电网注入无功功率支撑电压恢复、故障清除后要快速恢复到正常发电状态。不同国家地区对穿越曲线的要求不完全一样,但逻辑是相通的——把逆变器当成一个"有骨气的发电单元",电网出问题的时候它得留下来帮忙,而不是第一时间跑路。
两级式拓扑为什么在光伏并网里这么流行?因为它把MPPT(最大功率点跟踪)和并网控制这两个任务解耦了。前级Boost电路负责把光伏组件的输出电压抬升到直流母线电压,同时完成最大功率点跟踪;后级逆变桥负责把直流电转换成与电网同步的交流电,并控制并网电流的幅值和相位。这种"前级追功率、后级控并网"的分工,让低电压穿越的控制策略有了很大操作空间——穿越期间前级可以调整输出,后级可以切换控制模式,互不干扰,这在单级拓扑里是做不到的。
我用的仿真平台是MATLAB/Simulink,版本无所谓,R2018以后都行。整个模型分为光伏阵列、Boost电路、逆变桥、LCL滤波器、电网、控制算法几个部分。接下来我会按控制链路一条一条往深里讲。
2. DSOGI锁相环:电网电压不对称跌落时,靠什么稳住同步信号
2.1 传统锁相环在电压跌落时的"眩晕"问题
锁相环的作用是实时锁定电网电压的相位,给逆变器提供一个同步基准。正常情况下用SRF-PLL(同步旋转坐标系锁相环)就够了,结构简单、稳态性能好。但只要电网发生不对称故障——比如单相接地短路,电压幅值和相位都会发生畸变,这时候SRF-PLL就出问题了。
问题出在哪?SRF-PLL基于一个隐含假设:三相电压是对称的。不对称跌落时电压里会出现负序分量。负序分量在同步旋转坐标系下会变成2倍频的交流扰动,锁相环的输出相位会跟着波动。相位波动直接导致并网电流波形畸变,更严重的会让逆变器误判电网频率方向,极端情况下锁相环失锁,整个穿越就失败了。
我用一个具体仿真例子说明。三相电压正常幅值311V,模拟A相跌落到0.5pu。传统SRF-PLL的锁相输出角度里出现了明显的100Hz波动,并网电流THD从2%左右飙到8%以上,电流波形明显扭曲。这个结果基本宣告了传统方案在不对称工况下不可用。
2.2 DSOGI的核心逻辑:先把正负序拆开再锁相
DSOGI-SOGI的全称是Dual Second Order Generalized Integrator,双二阶广义积分器。它的核心思想是:先把静止坐标系下的电压信号分别通过两个SOGI滤波器,得到αβ轴上的正序分量和负序分量,然后再把正序分量送到SRF-PLL里去锁相。负序分量被提前滤掉了,锁相环看到的始终是"干净"的正序电压,自然就不会被带偏了。
如果用公式表达,正序电压提取可以写成:
[ v_{\alpha\beta}^{+} = \frac{1}{2} \begin{bmatrix} 1 & -q \ q & 1 \end{bmatrix} v_{\alpha\beta} ]
其中 ( q ) 是90度相位延迟算子,在DSOGI结构里由SOGI滤波器实现。负序分量则是:
[ v_{\alpha\beta}^{-} = \frac{1}{2} \begin{bmatrix} 1 & q \ -q & 1 \end{bmatrix} v_{\alpha\beta} ]
这部分我在仿真里是用Simulink的"SOGI"子系统搭的,每个SOGI包含两个积分器和一个比例系数k。SOGI的带宽由k决定,k越大,动态响应越快,但对谐波的抑制能力越差;k越小,滤波效果越好,但响应会变慢。折中的取值一般是 ( k = \sqrt{2} ) 左右,对应约1.414的阻尼比,这个值在工程上用得最广,我在模型里也用的这个参数。
2.3 锁相环的PI参数整定与穿越响应平衡
DSOGI把正负序分离了,但SRF-PLL本身的PI参数还是会限制动态性能。锁相环带宽越高,故障后重新锁定相位越快,但带宽过高会让噪声放大,稳态时相位抖动增加。
我个人的整定经验是:锁相环带宽设置在100~200Hz之间比较合适。以200Hz为例,对应的PI参数可以按以下方法估算。先把带宽换算成角频率 ( \omega_n = 2\pi \times 200 \approx 1256 ) rad/s,PI参数取 ( k_p = \sqrt{2} \cdot \omega_n ),( k_i = \omega_n^2 ),算出来大约 ( k_p \approx 1776 ),( k_i \approx 1.58 \times 10^{6} )。这个数值只是初值,进仿真以后还要微调,实际模型里我用的是 ( k_p = 1800 ),( k_i = 1.5 \times 10^{6} ),效果不错。
调试时有一个很重要的观察点:故障发生瞬间,DSOGI的输出会出现一个暂态过程,锁相角会有短暂波动,但只要在这段时间里电流环的指令还能正常跟踪,这个波动是可以接受的。我试过把锁相环带宽降到50Hz,波形确实更光滑了,但故障后相位恢复时间延长到了将近三个电网周期,无功功率响应变慢,这会让穿越期间的无功支撑效果打折扣。
3. 改进MPPT:低电压穿越期间,"最大功率"不再是第一目标
3.1 传统MPPT在LVRT场景下的尴尬
常规MPPT算法,不管是扰动观察法还是电导增量法,目标只有一个:让光伏阵列始终工作在最大功率点。但LVRT期间事情变复杂了。
电网电压跌落以后,逆变器向电网输送的有功功率能力大幅下降。比如电网电压跌到0.2pu,并网电流幅值受器件限流约束,能送出去的有功功率可能连正常工况的一半都不到。如果此时MPPT还在拼命追最大功率,前级把大量功率抬到直流母线上,而后级又送不出去,结果就是直流母线电压飙升。
直流母线电压一旦超过电容耐压值,轻则触发过压保护导致逆变器脱网——这直接违背LVRT要求,重则炸毁母线电容和功率器件。换句话说,LVRT期间MPPT如果不变通,它勤勤恳恳追来的功率反而成了破坏系统的隐患。
3.2 改进思路:从"追最大功率"切换到"限功率跟踪"
改进MPPT的核心思路是:LVRT期间不再追最大功率点,而是根据后级实际能消纳的功率,反过来限制前级输出。实现方式可以分两个层次。
第一层是简单的限制模式。检测到电网电压跌落(通过前面DSOGI算出的正序电压幅值判断),就把MPPT的目标功率强制限制到某个安全值以下。这个安全值取决于并网电流限幅和当前电网电压的乘积,可以用公式估算:
[ P_{limit} = 1.5 \cdot U_{gc} \cdot I_{limit} ]
其中 ( U_{gc} ) 是电网电压跌落后的正序幅值,( I_{limit} ) 是允许的最大并网电流幅值。比如电压跌到0.3pu(正序幅值约93V),电流限幅设为1.2倍额定电流(约20A),那么 ( P_{limit} = 1.5 \times 93 \times 20 \approx 2790W ),这时候必须限制直流母线功率在2.8kW以下,不然母线电压就会失控。
第二层是闭环稳压。光靠限制功率还不够稳,更可靠的做法是加一个直流母线电压外环。当检测到母线电压超过设定值时,通过一个PI调节器输出功率限制系数,这个系数直接缩窄Boost变换器的占空比调整范围,让前级输出功率与后级消纳能力动态匹配。这个环路在故障恢复阶段尤其重要:电压恢复瞬间,后级有功指令快速回升,如果前级功率恢复滞后,母线电压会瞬间跌落,反而造成电流冲击。
3.3 改进MPPT的切换逻辑与平滑过渡
切换逻辑要注意避免频繁振荡。我采用滞环判断:正序电压幅值低于0.85pu进入LVRT限功率模式,高于0.92pu恢复MPPT模式,中间的回差区域维持当前模式。这样在临界电压波动时不会来回切换。
还有一个小细节:从限功率模式恢复到正常MPPT时,Boost占空比不能瞬间跳回MPPT对应的值,否则直流母线会出现很大的电压阶跃。我在切换路径上加了一个斜坡限幅器,恢复时功率指令以每秒约0.5倍额定功率的速率回升,母线电压过渡就平滑很多。这个细节在仿真里看起来好像影响不大,但控制器移植到实际硬件时,没有这个斜坡限制几乎一定会引起过压报警。
仿真里我还对比过传统MPPT和改进MPPT在电压跌落时的直流母线波形。传统方案在跌落瞬间母线电压冲到了约1.35倍额定值,触发过压保护,逆变器在故障后50ms内就脱网了——这显然不合格。改进方案下母线电压峰值控制在1.15倍以内,系统全程保持并网,无功功率也按设定输出。这一组对比足以说明MPPT改进的必要性。
4. 改进电流环与电网电压前馈:穿越控制落地的关键一脚
4.1 电流环改进:从"追准时序"到"优先保命"
正常并网时,电流环的任务是让并网电流精确跟踪正弦指令。但LVRT期间电流环有两个额外压力:第一,电压跌落导致电网电压和逆变器输出电压的矢量差变大,电流控制难度上升;第二,为保证逆变器不因过流损坏,必须有可靠的限幅策略。
传统电流环用的是PI控制器,在旋转坐标系下控制dq轴电流。但LVRT期间有两个问题需要考虑。一是PI参数在故障前后可能需要切换,故障时加大比例系数可以提升动态响应,但可能引发振荡;二是积分饱和问题,电压跌落时电流指令受限,积分项容易快速饱和,导致故障恢复后电流超调。
我的处理方式是把电流环PI的积分项做成分段结构:正常工况用完整的PI控制;检测到电压跌落后,积分限幅值缩小到正常值的30%,比例增益调到正常值的1.2倍。这样既保证了故障期间的快速响应,又避免了恢复时的积分饱和。当然,这两个系数切换的时间点要和前面MPPT的滞环判断错开,避免两个控制环路同时切换引发振荡。
4.2 电压前馈:把"扰动"直接提前消除
电流环如果只靠PI控制器,电网电压本身就是个很大的扰动。正常工况电压稳定,PI有足够的增益去抵消它;但跌落时电压突变,PI控制器要花时间"反应"——这会导致电流环动态变差。
电网电压前馈的原理很直接:电流环的输出叠加一个电网电压的补偿项,把电压扰动"提前算出来",直接加到调制波上。这样PI只需要处理剩下的误差部分,负担大大减轻。
实现时最常用的公式是:
[ v_{gd,ff} = v_{gd} - \omega L i_q ] [ v_{gq,ff} = v_{gq} + \omega L i_d ]
也就是把电网电压的dq分量直接前馈到调制电压指令上,再用滤波电感的耦合项做补偿。这里 ( L ) 是LCL滤波器的电感值,仿真里我取的是3mH,( \omega ) 是电网角频率。
关键点在于:前馈用的电压必须是经过DSOGI提取的正序电压,而不能直接用采样得到的原始电压。原因很简单,不对称跌落时原始电压里含有负序分量,如果直接前馈,负序分量会映射到电流指令里,导致并网电流不对称。我把DSOGI输出的正序电压dq分量接进前馈通路,波形就干净了。
4.3 正负序电流指令分配与限幅策略
LVRT标准通常要求向电网注入无功功率,支撑电网电压恢复。这就涉及有功电流和无功电流的指令分配。我采用的方法是:故障期间优先保证无功输出,剩余电流容量分配给有功。
设最大允许电流幅值为 ( I_{max} ),电压跌落后需要满足的无功电流为:
[ i_q = K \cdot (0.9 - V_{pu}) \cdot I_{rated} ]
其中 ( V_{pu} ) 是正序电压标幺值,( K ) 是标准规定的系数(一般取2,即电压跌落10%需要注入20%额定无功电流),( I_{rated} ) 是额定电流幅值。有功电流幅值按限制取:
[ i_d = \min \left( \frac{P_{limit}}{1.5U_{gc}}, ; \sqrt{I_{max}^2 - i_q^2} \right) ]
这个表达式体现了一个重要逻辑:有功电流不是"想给多少给多少",而是"在保无功的前提下,把剩下的容量给有功"。我在仿真里把极限电流设为1.3倍额定值,无功电流指令按系数2计算,留出的余量给有功。最终并网电流的dq分量指令都以斜坡形式更新,防止指令突变引发电流尖峰。
5. 仿真实测:搭建完整模型并解读三种典型工况波形
5.1 模型结构与关键参数清单
整个模型的控制链路我总结成一张表,可以直接对着搭:
| 模块 | 关键参数 | 取值 |
|---|---|---|
| 光伏阵列 | 开路电压/短路电流/MPP电压/MPP电流 | 400V/14A/320V/12.5A |
| 前级Boost | 电感/频率/占空比范围 | 1.5mH/20kHz/0.2~0.85 |
| 直流母线 | 电容/参考电压 | 2200μF/700V |
| 逆变桥 | 开关频率/死区时间 | 10kHz/2μs |
| LCL滤波器 | 逆变侧电感/网侧电感/滤波电容 | 2mH/1mH/10μF |
| 锁相环 | SOGI系数k / PLL带宽 | ( \sqrt{2} ) / 150Hz |
| 电流环 | d轴PI / q轴PI | 0.5/50 与 0.5/50 |
| 电网 | 相电压/频率/短路比 | 220V/50Hz/SCR=10 |
仿真时长我设置为2s,故障从0.8s开始,持续0.625s(标准中常见的故障持续时间),1.425s后恢复。
5.2 工况一:对称跌落到0.2pu
对称三相电压跌落到0.2pu时,系统表现相对简单。DSOGI不需要处理正负序分离的问题(对称跌落不产生负序分量),锁相环能维持锁定。这个工况考察的是无功支撑能力和直流母线稳定能力。
仿真结果:故障期间无功电流输出约为1.0pu(按标准公式计算),有功电流被限制在约0.66pu,并网电流幅值始终不超过1.2pu的限幅值。直流母线电压在故障初期有个约40V的过冲(从700V冲到约740V),随后回落,恢复阶段没有明显的二次过冲。整体穿越过程顺利。
5.3 工况二:A相跌落0.15pu(不对称故障)
这个工况最能体现DSOGI和正负序分离的价值。故障发生后,A相电压幅值跌到约33V,B、C相基本不变。
首先检查锁相环输出:DSOGI方案下锁相角波动幅度在3度以内,而如果用传统SRF-PLL,波动会超过20度。这个差距直接决定了电流控制能否正常执行。
再观察电流波形:由于负序分量仍然存在(DSOGI只用于锁相,并不代表并网电流里完全没有负序),并网电流三相幅值出现了约30%的不平衡,这是符合相关标准要求的表现——允许一定程度的电流不平衡,优先保证注入无功。整体来看波形无畸变、无常振荡,逆变器没有脱网。
5.4 工况三:连续两次跌落(考验恢复能力)
我额外加了一个工况:故障恢复后50ms内再次发生跌落。这种情况下,第一次故障刚结束时,有功指令还在斜坡恢复过程中,母线电压也尚未完全稳定,第二次故障叠加会放大控制难度。
实测发现,正是因为我在MPPT限功率模式用了滞环判断,并且有功电流指令恢复时带了斜坡限幅,第二次故障时系统没有出现失控。如果切换逻辑没有回差,系统在临界电压附近反复切换,母线电压会出现等幅振荡——这是非常危险的状态。实测波形显示,第二次故障期间无功电流响应比第一次更快,说明经过第一次故障后,DSOGI和电流环的分序状态已经建立,第二次故障几乎不存在再次收敛的过程。
6. 调试踩坑记录:那些让仿真"看起来正常但其实错了"的细节
做这个模型的过程中,我前前后后踩了不少坑,挑几个最有代表性的说说。
6.1 DSOGI输出噪声导致电流静差
第一次把DSOGI接入电流环前馈通路时,并网电流dq分量稳态时始终有约2A的静差。排查了很久,最后发现是DSOGI的SOGI滤波器对高频开关噪声抑制不足,导致提取的正序电压里带有毛刺,前馈补偿不准。
解决办法是在DSOGI输出后面加一个截止频率约500Hz的一阶低通滤波器,滤掉开关频率附近的噪声。要注意的是这个低通不能加在锁相环通路里,否则会增加相位延迟,降低锁相环带宽。只加在前馈通路上,影响很小。
6.2 电流限幅指令突变引发过流尖峰
早期版本里,我直接在检测到故障的瞬间把无功电流指令阶跃到目标值。结果无功电流响应是快了,但有功电流因为让路,瞬间被压得很低,母线电压跟着猛跳,最终导致恢复阶段电流尖峰超过了限幅值。
后来我参考了实际工程的做法:所有的电流指令变化都走斜坡限幅器,斜坡时间设为2ms。用斜坡指令后,故障瞬间的dq电流变化率被限制住了,母线电压的波动幅度明显减小,恢复阶段也没有出现过流尖峰。
6.3 LCL滤波器的谐振问题在LVRT时被激发
正常情况下LCL滤波器设计好以后,控制参数稳定一般不会出问题。但LVRT期间电流指令变化快,谐波含量多,LCL滤波器在谐振频率附近容易出现振荡。我在仿真里明显看到了并网电流以约2kHz频率振荡的情况。
处理方式有几种:最常见的是加无源阻尼电阻,但会带来额外损耗;或者用有源阻尼算法,CAP方法的实现也不复杂。我在模型里采用的是在滤波电容支路串联阻尼电阻的方案,电阻取3Ω。实测振荡明显抑制,THD从8%降到2.5%以下。这个改动是所有细节里对波形影响最直观的一个。
6.4 参考文献和设计文档的组织方式
这个小项目最终交付物里除了仿真模型本身,还有一份设计说明文档和参考文献列表。我的文档组织思路是按控制链路展开:先写总体拓扑与参数设计依据,再分章节写MPPT、锁相环、电流环各自的原理、参数整定过程以及仿真验证结果。每个章节都配了对应的仿真波形图和关键参数表,页码控制在30页左右,避免变成流水账。
参考文献方面,我建议优先选取近五年的期刊文献,特别是有实验验证的文献。经典教材作为理论基础引用1~2篇即可。引用格式按IEEE风格统一。我在整理时发现,DSOGI锁相环相关的高质量文献较多,但针对"LVRT期间MPPT改进策略"的文献相对零散,这部分需要从相似的光伏并网标准讨论和故障穿越综合评述中去提取,别指望找到一篇完全对口的文献直接照抄。
7. 最后再分享两点实际体会
整个项目做下来,如果让我浓缩成两条经验,我会说:第一,LVRT仿真模型最容易出问题的地方往往不是控制理论本身,而是模块间的切换逻辑和信号延迟匹配——MPPT的限功率切换、电流指令斜坡、DSOGI的滤波延迟,这三个细节如果处理好了,模型就成功了一大半;第二,所有参数都应该先按理论公式算出初值,再通过仿真微调,而不是直接靠试凑法在仿真里乱试,否则换个工况就可能失控。
补充一个工具上的建议:调试这类模型时,尽量把每个控制环节的中间量都引出来看波形,比如SOGI输出的正序分量、前馈补偿值、电流环积分项、MPPT限功率系数。这些信号和最终并网电流对照着看,能快速定位问题出在哪个环节。靠"黑盒式"的调试方法在LVRT这种多环节联动场景里基本行不通。