先讲一个我仿真时亲历的“翻车现场”。模型搭的是两级式光伏并网系统稳态跑得干干净净直流母线稳稳压在750V并网功率100kW。结果把电网电压一降到0.2pu不到两个周波直流母线直接飙到900V以上逆变器保护动作示波器整屏飘红。这种场景做过低电压穿越研究的朋友应该都不陌生。低电压穿越LVRT是光伏并网系统绕不开的硬指标。电网短路、雷击、重负载启动都会造成并网点电压短时跌落如果光伏逆变器一遇低压就脱网故障期间大量电站同时停摆电网恢复难度会成倍增加。所以现在并网导则对LVRT有明确要求电压跌落时逆变器要保持并网运行一段时间还要向电网注入无功电流支撑电压恢复。这也让“低电压穿越控制策略”成了光伏并网仿真研究里最热门的方向之一。我这篇文章就围绕“基于改进型低电压穿越控制策略的两级式光伏并网系统仿真研究”这个题目把整套东西掰开揉碎讲清楚。包括两级式拓扑为什么比单级式更难做LVRT、直流母线电容怎么算、改进控制策略到底改在哪里、Simulink里怎么搭模型、跌落后波形怎么解读还有我在仿真里踩过的一堆坑。适合正在做光伏并网仿真的学生、准备写论文的小伙伴以及做并网逆变器工程预研的工程师参考。1. 整体思路拆解为什么两级式光伏必须做LVRT1.1 低电压穿越到底是什么低电压穿越简单说就是“电网电压掉下去了你不能拍拍屁股就跑”。当并网点电压因为短路故障而跌落时光伏电站需要像火电、水电一样具备故障穿越能力在电压跌落到一定深度的情况下继续保持并网并按照导则要求发出无功电流帮助电网把电压拉回来。具体到并网导则典型的LVRT要求是这样描述的当并网点电压跌落至额定电压的20%时光伏逆变器应保证不脱网连续运行625ms电压跌落在额定电压的20%到90%区间内时逆变器要持续并网运行并且根据跌落深度动态注入无功电流。电压恢复后逆变器还要能自动恢复到正常发电状态不能出现严重的功率振荡和过冲。这个要求对仿真设定非常关键。我后来所有跌落工况都按照“1s时刻发生故障电压跌落到0.2pu维持0.625s后在1.625s恢复”来设置这样既贴近导则考核工况又能清晰观察控制策略在“故障发生—故障持续—故障恢复”三个阶段的表现。1.2 两级式拓扑比单级式“麻烦”在哪光伏并网系统有两种常见拓扑单级式和两级式。单级式结构简单光伏阵列直接接逆变器MPPT和并网控制都在逆变器级完成效率和成本都有优势。但它有一个麻烦直流侧电压必须被限制在一个比较窄的范围内而且故障时光伏阵列和电网之间没有缓冲功率平衡全靠逆变器硬扛。两级式光伏并网系统前面多了一级Boost DC/DC变换器。前级Boost负责把光伏阵列的低电压升压同时承担MPPT最大功率点跟踪功能后级逆变器专职做DC/AC变换和并网电流控制。这种结构的好处很明显MPPT电压范围宽系统设计灵活光伏阵列和电网之间还能通过直流母线实现一定程度的“解耦”。但问题也出在这个“解耦”上。正常工作时前级Boost输入功率和后级逆变器输出功率大致相等直流母线电压稳定。可一旦电网电压跌落后级逆变器的输出能力瞬间下降前级Boost却还在以最大功率往直流母线上送能量。多余的功率没有地方去只能涌进直流母线电容母线电压就会迅速升高。我在仿真里看到的就是这个现象从0.2pu跌落到母线电压冲到900V只花了几十个毫秒。所以说两级式系统的LVRT控制难点本质上是一个“功率失衡下的直流母线电压稳定问题”外加一个“电网电压跌落时的无功支撑和过流抑制”问题。这两条线就是整个改进型控制策略的主攻方向。1.3 改进型控制策略的总体设计框架我最后采用的改进型控制策略不是简单调一两个PI参数而是围绕直流侧和交流侧同时做文章的组合拳。整体框架可以拆成三条线直流侧母线电压动态补偿。引入前级输入功率前馈让逆变器电流指令在故障瞬间就能跟随功率变化同时配置卸荷电路直流Chopper当母线电压超过阈值时把多余能量耗散在电阻上给母线电压上一道“保险”。交流侧正负序分离与电流限幅。故障期间电压不平衡会产生负序分量如果不处理负序电流会让逆变器局部过流严重时触发硬件保护。通过正负序分离算法把控制目标限定在正序分量上同时给电流环指令加上模长限制确保IGBT不过流。并网友好性无功功率动态支撑。根据跌落深度实时计算无功电流参考值在总电流受限的前提下执行“无功优先”策略让系统在LVRT期间真正起到支撑电网的作用。这三条线相互配合才算是把两级式光伏系统的低电压穿越问题完整解决掉。接下来我会把系统建模、参数计算、控制实现和仿真验证一步步展开讲。2. 系统建模与参数设计仿真模型怎么搭才靠得住2.1 光伏阵列与Boost升压级建模要点仿真第一步先把系统容量和电压等级定下来。我参考实际工程习惯选了一个100kW的典型系统。光伏阵列参数设置时要注意Simulink里的PV Array模块虽然可以自动生成I-V和P-V曲线但组件参数一定要和你假定的工程场景匹配否则后面MPPT和LVRT的结论都不具备参考价值。我用的光伏阵列配置是每串20块组件串联开路电压880V18串并联短路电流约160A。MPPT电压范围大约在600V到800V之间额定工作点选在720V、139A左右对应输出功率100kW。这样设置的目的是保证Boost在正常工作时能把电压升到750V直流母线留出足够的调节余量。Boost升压级建模没那么复杂IGBT加二极管开关频率取10kHz。MPPT算法我建议用经典的扰动观察法实现简单、闭环稳定仿真里也够用。采样频率和开关频率保持一致或者略微低一点比如5kHz电压扰动步长取2V左右太大会导致稳态功率波动大太小则动态响应慢需要折中。这里特别提醒一下做LVRT仿真时故障期间如果MPPT还在满负荷追踪最大功率那前级功率根本压不下来母线电压一定失控。所以改进策略里我给MPPT加了一个“限功率模式”的切换开关检测到电压跌落后暂时冻结MPPT的参考电压或者直接把参考电压拉低让光伏阵列工作点偏离最大功率点从源头上减少前级输入功率。这个细节很关键后面还会再提到。2.2 直流母线电容和逆变器参数怎么算直流母线电容的选择是两级式系统设计里最容易拍脑袋、又最能体现功底的地方。很多新手直接仿照别人文献里的值填一个结果要不就是纹波太大要不就是故障时母线电压压不住。母线电容的容量首先取决于允许的电压纹波。按经验公式Cdc Pdc / (2 × ω × Vdc × ΔVdc)其中Pdc是流过母线的功率ω是电网角频率2πff50HzVdc是母线电压额定值ΔVdc是允许的纹波电压。代入我的系统参数Pdc100kWVdc750VΔVdc按1%取7.5V那么Cdc 100000 / (2 × 314 × 750 × 7.5) ≈ 28300μF取整为30mF。这个值算出来之后还要再做一个“故障暂态校核”。假设电网跌落到0.2pu时逆变器输出能力只剩0.3pu而光伏阵列仍以1pu输入功率功率差额就是0.7pu相当于70kW。如果故障持续0.625s多余能量就是70kW×0.625s≈43.75kJ。如果这些能量全部靠电容吸收母线电压从750V升到800V需要的电容量是C 2 × 43750 / (800² - 750²) ≈ 1.13F这个值比正常纹波要求的30mF大了将近40倍现实中根本不可能用这么大电容。所以结论非常明确只靠加大母线电容来解决LVRT问题是走不通的路。必须靠前级限功率和卸荷电路来协助消耗多余能量。这个计算过程我建议所有做两级式系统的人都自己算一遍算完你对为什么LVRT需要“组合拳”会理解得更深。逆变器交流侧滤波电感按标幺值估算。100kW、380V系统基准阻抗Zbase 380² / 100000 ≈ 1.444Ω。滤波电感取0.1~0.2pu比较常见按0.1pu计算L 0.1 × 1.444 / (2π × 50) ≈ 0.46mH我最后取0.8mH稍微偏大一点对电流谐波抑制更好但要注意动态响应会慢一些。直流母线电压取750V也讲得通380V电网的相电压峰值是311VSPWM满调制时母线电压至少需要622V再留出15%到20%的裕量750V是比较合理的工程选择。2.3 锁相环与故障检测环节的实现锁相环PLL在LVRT仿真里是个容易被低估的环节。很多人只会在理想电网条件下用SRF-PLL结果一遇到不对称故障锁相角剧烈脉动电流控制直接乱掉。我的做法是采用DSOGI-PLL也就是基于二阶广义积分器的正交信号发生器先把三相电压转换到静止坐标系提取正序分量再做同步旋转坐标系锁相。相比SRF-PLLDSOGI-PLL在电网不平衡和畸变条件下有明显优势锁相角更平稳故障恢复时的暂态也更短。Simulink里有现成的二阶广义积分器模块可以搭也可以直接用离散传递函数实现不复杂。故障检测环节说白了就是识别“什么时候进入LVRT模式”。我的判据很简单并网点正序电压幅值低于额定值的0.9pu就进入LVRT模式连续监测10ms以上确认避免单周波瞬时扰动误触发。退出时加一个滞环比如电压恢复超过0.85pu并稳定50ms后才退出LVRT模式防止在临界点来回切换导致控制模式振荡。这个“进入快、退出慢”的滞环设计是实际调模型时最容易忽略但影响很大的细节。3. 改进型低电压穿越控制策略实现3.1 传统电压外环控制到底哪里不行先看看传统的两级式控制架构前级Boost只管MPPT后级逆变器采用双闭环控制外环是直流母线电压环内环是dq轴电流环。电压环给定750V输出作为有功电流指令id_ref无功电流指令iq_ref正常时设为0。这套架构在稳态下没有问题但故障时立刻暴露短板。电网电压跌落到0.2pu逆变器输出电流如果不变输出功率就只剩0.2pu左右而有功电流指令还按稳态值给电流控制器就算拼尽全力往电网送电流功率也送不出去。此时母线电压被迫上升电压外环检测到电压升高后会下调id_ref但这个过程是有滞后的而且如果电压环PI参数偏快还会和电流环产生耦合振荡。我在仿真里看到的典型现象是母线电压过冲加上电流环饱和故障瞬间出现一个超过额定电流1.8倍的尖峰这就是传统控制的核心毛病。所以改进型策略的第一步不是把PI参数调来调去而是要让控制架构本身适应LVRT场景。核心思路是故障期间不能指望电压环单打独斗必须用功率前馈和卸荷电路分担能量平衡压力用无功指令接管电流环的优先级。3.2 改进一功率前馈与直流母线电压动态补偿功率前馈的出发点很朴素既然母线电压飙升是因为前级还在送功率那就把“前级送了多少功率”这个信息直接告诉后级电流环别等着电压偏差出来以后再慢慢调。具体实现上我在Boost输出侧检测直流母线电流idc和母线电压Vdc计算前级瞬时输入功率Pdc Vdc × idc然后折算成有功电流前馈项叠加到电压环输出的id_ref上。这样故障发生瞬间前级功率变化能立刻反映到逆变器电流指令里响应速度远快于电压环PI。但光有前馈还不够。前馈能改善动态却不能解决“电网能接纳的功率就是不够”这个物理现实。这时候就需要卸荷电路出场。我的方案是在直流母线上并联一个IGBT加卸荷电阻的支路母线电压超过785V时开通低于775V时关断用滞环控制抑制开关抖动。卸荷电阻的阻值按最恶劣工况算假设需要耗散70kW多余功率母线电压750VR 750² / 70000 ≈ 8Ω。这样一算整个母线的暂态电压就能被稳稳限制在790V以内。有朋友可能会问卸荷电路会不会太“笨”、太传统确实从学术角度讲卸荷电阻确实不够“先进”但它可靠、容易实现而且和功率前馈配合后效果非常好。我做仿真对比时光靠前馈不加卸荷母线电压还是能冲到850V加上卸荷以后峰值被压到782V。这让我意识到LVRT控制策略里“聪明”和“可靠”并不矛盾关键是让合适的工具出现在合适的场景里。3.3 改进二正负序分离与过流抑制三相短路是最严酷的工况但实际电网故障更多是不对称故障比如单相接地短路。在这种情况下并网点电压除了正序分量还会出现负序分量。负序电压会在逆变器里产生负序电流如果不做处理可能导致某一相电流特别大而另外两相却不大这种“局部过流”最容易触发硬件保护。解决思路是在电流环前端加入正负序分离。常用的方法有两种陷波滤波器法在dq同步旋转坐标系下对100Hz2倍工频分量进行陷波简单但会损失一定动态性能延迟信号消除法DSC在静止坐标系下用四分之一工频周期的延迟运算分离正负序动态响应更快。我仿真里用的是DSC方案代价是要多缓存几个采样周期但对LVRT这种暂态场景来说动态性能更重要。正负序分离之后控制策略就清晰了正序dq轴用来控制有功功率和无功功率负序分量的电流给定直接设为0。同时我给电流环指令加了一个幅度限幅器把id_ref和iq_ref的合成模长限制在1.1pu以内。就是用这种限幅策略把故障瞬间的电流尖峰从1.8pu压到了1.15pu左右。别小看这个限幅它在实际设备上对应的就是IGBT的过流保护阈值仿真里提前把这个问题处理掉后面工程化时能少很多麻烦。3.4 改进三无功功率动态支撑LVRT不只是“别脱网”就行导则还要求故障期间注入无功电流支撑电压。这个要求用公式表达大约是这样当并网点电压Ut跌落到0.2pu到0.9pu之间时无功电流参考值按Ir_ref 1.5 × (0.9 - Ut) × In来给定。以额定电流In为基准电压跌落到0.2pu时Ir_ref 1.5 × 0.7 1.05pu。也就是理论上需要发105%额定电流的无功。但在实际设备里总电流还受IGBT容量限制不可能同时发1pu有功和1.05pu无功。所以我在策略里设置了明确优先级无功优先有功让路。具体算法是先根据跌落深度计算Ir_ref然后按总电流限幅Imax反推有功电流最大值id_max sqrt(Imax² - Ir_ref²)如果Ir_ref已经超过Imax那有功电流直接置0所有容量都给无功支撑。同时无功电流指令的变化率也要限幅一般限制在每秒不超过0.5pu防止跌落瞬间无功电流阶跃过大造成二次冲击。这套策略的好处是无论跌落多深逆变器都能在安全电流范围内优先支撑电网而且恢复时不会因为无功突然撤掉引发电压波动。4. 仿真验证与结果分析4.1 Simulink模型搭建与关键模块配置搭建环境我用的是MATLAB/Simulink加Simscape Electrical早期叫SimPowerSystems。整套模型分几个模块PV Array、Boost变换器、直流母线电容、三相两电平逆变器、RL滤波、可编程三相电压源、控制逻辑和PWM发生器。PV Array模块在Simulink库里有现成模块按2.1节参数设置即可。Boost和逆变器的开关管用Universal Bridge模块分别是DC-DC和DC-AC结构。这里有个小技巧Universal Bridge的开关器件要选择“IGBT/Diode”Snubber电阻设置成默认值如果后面仿真不收敛或者波形异常先把Snubber电容调大试试很多数值振荡问题都能用这招压下去。控制部分我建议把MPPT、电压电流双闭环、正负序分离、LVRT逻辑分别封装成独立子系统。这样做的好处是方便单独调试也容易对比不同控制策略的效果。PWM发生器用Simulink自带的PWM Generator模块Boost载波10kHz逆变器载波5kHz。求解器选择是个容易踩坑的点。我直接给结论用变步长ode23tb最大步长限制在1e-5。为什么不建议用离散求解器因为逆变器开关动作频繁固定步长离散化要么精度不够要么速度慢到你怀疑人生。ode23tb对电力电子这种刚性系统非常友好基本不会出现奇怪的数值振荡。4.2 电压跌落工况设置方法Simulink里模拟电网电压跌落最直接的工具是Three-Phase Programmable Voltage Source也就是可编程三相电压源。它支持在指定时刻改变电压幅值、相位和频率非常适合做LVRT工况注入。我的具体设置是三相电压源线电压380V频率50Hz。在“Time variation of amplitude”里选择“Step”模式第一个阶跃设置在大约1s时刻下拉幅值Magnitude of step设为-0.8pu也就是电压从1.0pu跌到0.2pu第二个阶跃设置在1.625s时刻幅值0.8pu让电压恢复到1.0pu。两个阶跃合起来就构成了“0.2pu维持625ms”的标称LVRT工况。除了三相平衡跌落我还建议你搭一个非对称跌落来验证正负序分离策略。方法更简单用Three-Phase Fault模块把故障相选成单相接地设置一个很小的接地电阻模拟金属性短路。这样并网点电压就会出现明显的负序分量正好能检验DSOGI-PLL和DSC分离算法是不是真的起作用。波形记录方面别直接在示波器里截图交差。我习惯用To Workspace模块把母线电压Vdc、并网三相电流、正序有功/无功功率、无功电流参考值等关键信号存到MATLAB工作区然后用脚本统一绘图。这样不仅图面干净还能批量化比较不同策略、不同跌落深度下的响应效率完全不是一个量级。4.3 改进前后仿真波形与性能对比仿真跑完两类控制策略的差异非常直观。下面这张表是我在0.2pu三相平衡跌落工况下的实测数据整理对比项传统双闭环控制改进型LVRT控制直流母线电压峰值约920V约782V故障瞬间电流冲击倍数约1.8pu约1.15pu无功支撑响应时间约80ms约15ms故障恢复时间电压回稳大于200ms约60ms恢复阶段功率振荡明显持续多个周波轻微一个周波内衰减先说母线电压。传统控制在跌落瞬间几乎没有抵抗能力母线直接冲上920V这个电压对750V母线的器件来说已经严重过压。改进型控制因为有功率前馈和卸荷电路双重作用峰值被限制在782V离器件耐压还有不小的安全空间。电压波形在故障期间基本被压在790V以内只有轻微纹波。再看电流冲击。传统控制在故障瞬间出现一个很尖的过流脉冲接近1.8倍额定电流这在真实设备上大概率直接触发保护。改进型控制通过电流指令限幅和正负序分离把冲击压到1.15倍这个幅度在IGBT的短时过流能力范围内理论上不会误保护。无功支撑的响应速度差异也很明显。传统控制因为缺少直接的无功给定机制电流环完全被电压环牵着走无功电流爬起来很慢80ms之后才勉强达到目标值。改进型控制在检测到跌落后15ms内就把无功电流顶到目标值附近而且整个故障期间始终保持无功优先对电网电压的支撑作用更及时。恢复阶段的对比更有意思。传统控制在电压恢复瞬间因为之前电压环已经饱和电流环还在努力追一个过高的有功指令导致功率剧烈振荡要过200ms以上才稳定。改进型控制因为有滞环退出机制和电流指令斜坡限幅恢复过程平稳很多约60ms就重新进入正常发电状态几乎看不到功率过冲。把波形摆在一起看最深的感受是改进型控制的价值不只是把母线电压压住了更重要的是让系统在故障发生、故障持续、故障恢复三个阶段都能保持可控这才能叫真正的“故障穿越”。5. 仿真中踩过的坑常见问题与排查技巧5.1 仿真发散、报错与步长问题“仿真发散”这四个字是做电力电子仿真的共同噩梦论坛里问得最多的问题几乎都跟它有关。我这次做LVRT仿真也踩了不少总结下来最常见的原因有三个。第一个是求解器选择不合适。Simulink默认的ode45对带电力电子开关的模型极不友好开关动作时会引发数值刚性问题。解决办法是换成ode23tb或者ode15s同时把最大步长限制在1e-5以内。如果你发现仿真在某个开关动作瞬间崩掉多半就是这里的问题。第二个是代数环。控制回路里如果存在直接反馈而没有经过状态变量比如电流反馈直接参与PWM计算而没有任何积分或延迟环节Simulink会报代数环错误。我的排查经验是在控制回路里加一个单位延迟Unit Delay往往能直接破掉代数环。从物理角度看这个延迟也对应了实际控制器里的采样计算延时反而更接近真实情况。第三个是器件初始条件问题。变压器、电感这类储能元件在仿真开始瞬间如果有初始电流容易产生巨大的突变。最简单有效的办法是把仿真时间往前推比如从0s开始先让系统完成启动和稳态运行到1s再注入故障。这样器件都工作在正常状态故障响应才是可信的。5.2 直流母线电压崩溃或过压的排查母线电压失控是两级式系统LVRT仿真里最常见也是最致命的问题。出现这个现象时我的排查顺序基本是固定的。先查前级MPPT是不是还在满功率追踪。故障期间如果MPPT还正常扰动光伏阵列就会持续输出最大功率母线电压不爆才怪。正确的做法是LVRT模式下让MPPT进入限功率状态把参考电压抬高或直接冻结扰动。再查卸荷电路有没有正确动作。判断依据很简单看故障期间卸荷IGBT的触发脉冲是不是正常输出、卸荷电阻电流有没有起来。如果触发正常但母线电压还高多半是卸荷电阻阻值偏大耗散功率不够重新按最恶劣工况计算一下阻值。最后查电压环PI。LVRT期间电压环的输出很容易饱和如果PI参数没配合好限幅会造成恢复阶段的反向超调。我的经验是LVRT期间直接让电压环退居“二线”把母线电压控制权交给卸荷滞环和前馈通道电压环只做慢速修正。这个思路在工程样机上同样适用。5.3 跌落瞬间冲击电流与保护误动作故障瞬间的电流冲击如果不处理轻则波形难看重则仿真模型里各种保护模块乱跳根本分不清是策略问题还是保护逻辑问题。这个问题我总结下来有三个主要来源。第一个是锁相环动态响应太慢。故障瞬间电压相位可能跳变PLL要花好几个毫秒去追赶这段时间电流控制器收到的坐标变换角度是错的自然会产生冲击电流。解决办法就是前面说的DSOGI-PLL它的正序提取能力保证锁相角在不对称故障下也能平稳过渡。第二个是电流指令突变。LVRT模式一旦使能无功电流指令瞬间从0跳到1pu这样的级别如果没有任何限制电流环肯定打出一个尖峰。我的做法是给电流指令加斜坡限幅让无功电流缓慢爬升而不是阶跃突变保护了开关管也让系统响应更平滑。第三个是负序分量没有滤干净。在不对称故障下如果不做正负序分离电流控制器会把负序分量也当成控制目标去追结果就出现某一相电流特别大的情况。加了DSC或者陷波滤波器之后这个问题基本就消失了。5.4 数据记录与结果整理的建议最后聊一个经常被忽略但非常影响效率的点仿真数据的记录与整理。很多同学做对比实验时习惯对着示波器截图然后在Word里贴一堆风格不一的图最后写论文的时候找不到关键数据。我强烈建议从一开始就用To Workspace记录数据再用MATLAB脚本统一绘制波形。我的做法是这样的在模型里把母线电压、三相电流、有功功率、无功功率、无功电流给定值等关键信号全部存到工作区然后写一个简单的绘图脚本设置好坐标轴范围、图例、线型一键生成所有对比图。这样改参数重跑仿真后的数据整理工作量很小而且图的风格统一放进论文里不用再二次处理。还有一个我后来才学到的技巧把跌落深度做成一个变量在脚本里用for循环批量跑0.2pu、0.35pu、0.5pu、0.7pu几种工况自动记录对应的母线电压峰值和电流冲击倍数。这样一次能拿到一整组LVRT性能曲线做参数敏感性分析或者给导师汇报时特别有说服力。整个项目做下来我最大的体会是LVRT控制策略不能只盯着交流侧或直流侧某一条控制环路它本质上是一个全系统的能量平衡问题。你真花两天把故障暂态能量算清楚把母线电容、闸荷电阻、前馈通道这些基础参数设计到位后面的控制策略会顺很多。另外再补一句仿真不收敛的时候先冷静查模型结构和求解器配置往往比盲目调PI参数高效得多。这个项目做完以后我也把模型里所有参数都整理成了表格后面无论是换电压等级还是换容量等级改动起来都非常方便。