1. 为什么要在Simulink里研究光伏配电网电压波动
1.1 电压波动是个什么性质的问题
做光伏并网仿真的人多了,但真正盯着“配电网电压波动”这一块的,说实话不算多。很多人搭个三相光伏逆变器模型,把MPPT跑起来、并网电流调成单位功率因数,波形一出来觉得挺好,就收工了。但你要是把光伏接到真实的10kV配电网里看,事情远不是这么简单——光照稍微抖一下,并网点电压跟着抖;负载突然切掉一大块,电压立刻往上涨;多台光伏同时满发,甚至能把PCC(公共连接点)电压顶得越过国标上限。
这类问题的本质是功率不平衡引起的电压变化,不是咱们在实验室里拿电压源怼逆变器能看出来的。原因是配电网的阻抗不能忽略,线路上的压降公式是:
ΔU ≈ (PR + QX) / U
P是有功,Q是无功,R和X是线路阻抗。光伏往电网里灌有功P,这个有功分量流过线路阻抗,就会在系统侧和并网点之间产生压差。如果光伏发的有功还带走一部分本地负载,线路上的有功潮流会变小、方向甚至反转,并网点的电压就会飘。Simulink能把这个物理过程完整还原出来——从光伏阵列的直流特性,到逆变器开关行为,再到配电网的潮流分布,一整个链条都能看。
1.2 仿真到底帮我们省了什么
配电网电压波动这个问题,去现场实测成本高,还不好复现工况。晴天一片云飘过来,光照从1000W/m²掉到300W/m²只需要几秒,你总不能天天蹲在变电站等云吧。而且云遮蔽之后电压波动多剧烈、逆变器怎么响应、无功补偿能不能跟上,这些现象在现场只能录个波形,没办法做对照实验——同一时刻光伏、负载、电网状态完全一样,你只能测一次。
Simulink仿真给我们的是一个“可重复的沙盘”。光照曲线可以自定义,负载可以按设定的时间跳变,配电网参数可以随便改,想测母线长度对电压的影响,改一个阻抗参数就能跑一组对照。更关键的是,仿真能看到内部信号——逆变器直流母线电压怎么跌的、PLL锁相是否失锁、MPPT是不是误判了方向、无功控制的PI输出有没有饱和,这些在实测里基本只能猜,在Simulink里直接拖个Scope就看清楚了。
我个人的建议是:做光伏并网控制研究的,不要只盯着逆变器那一亩三分地,把目光往上抬一点,看到配电网的电压问题,你会发现很多新课题可以做。后面我会从模型搭建、波动成因、控制策略到实际调参,把整个流程完整走一遍。
2. 模型搭建思路:先搞懂架构再动手
2.1 整系统的拓扑结构长什么样
搭建一个“光伏并网+配电网电压波动”的仿真模型,首先要明确一件事:模型层次怎么划分。我推荐用三层结构。
第一层是源头侧,包含光伏阵列和Boost变换器。光伏阵列的建模要兼顾准确性和仿真速度,最简单实用的方案是用Simscape Electrical里的PV模块,或者直接用Simulink的PV阵列封装模块,把光照和温度作为输入,输出I-V特性曲线。Boost升压负责把光伏阵列的输出电压抬到直流母线电压的设定值,同时承担MPPT控制的任务——MPPT计算基准电压,送给Boost的控制器。
第二层是逆变器侧,典型结构是三相两电平电压源型逆变器(VSC)加LCL滤波器。逆变器用平均模型还是开关模型,这是仿真速度和质量的关键取舍。研究电压波动问题时,开关模型能看清电流纹波和谐波成分,但仿真步长被迫压到微秒级,跑一个几十秒的动态过程会非常痛苦。平均模型(例如Simscape里用受控电压源加上平均值方程)看不到开关纹波,但动态响应、功率传输、电压支撑行为和开关模型完全一致,跑几十秒毫无压力。我经常是先用平均模型把控制策略调通,再针对特定开关频率问题切到开关模型验证。
第三层是配电网侧,用一个电压源(等效无穷大电网)串联线路阻抗表示。需要模拟10kV配电网的时候,加一个10kV/380V的配电变压器,公共连接点设在变压器低压侧或馈线末端都可以。重点注意线路阻抗的取值,这是产生电压波动的根源。我之前做过对比实验:线路阻抗取0.1欧姆和取2欧姆,光照突变时并网点电压波动幅度能差出3到5倍。很多同学模型搭出来不波动,十有八九是线路阻抗取得太离谱。
2.2 光伏阵列建模要点
光伏阵列模型不是简单的电压源,它是一条I-V曲线,电压升高时电流会跌落,在最大功率点附近电流变化率最大。Simulink里的PV Array模块默认用的就是厂商参数化的模型,你需要设置开路电压Voc、短路电流Isc、最大功率点电压Vmp和电流Imp。温度影响也要注意——温度升高时电压下降,最大功率点跟着往左移。云层遮蔽时,光照强度剧烈变化,MPPT要快速跟踪新环境下最大功率点,如果跟踪速度跟不上,直流母线电压就会跌落,进而导致逆变器侧功率输出波动,最终反映到并网点电压上。
MPPT算法里最常用的是扰动观察法(P&O),我今天重点说一下它的坑。P&O的原理是给电压加一个小扰动,看功率往哪个方向变,功率增大了就继续往这个方向走,功率减小就反转方向。光照突变时,P&O经常会判断错方向——本来在追踪最大功率点的过程中,云层突然来了,功率下降,P&O以为是扰动方向错了,于是反向调整电压,结果越调越远。光照恢复时再反向纠正,这就导致直流母线电压出现大幅振荡。仿真的价值就在于你能把这个不合理的动态过程完整看到,然后换成INC(电导增量法)或者带前馈的P&O去改进。换成INC之后我实测光照突变下的电压波动幅度能减小百分之二三十。
2.3 逆变器边框与LCL滤波器
逆变器控制,目前工程上绝对主流就是双闭环dq解耦控制——电流内环、电压或功率外环,锁相环PLL负责同步电网相位。这个控制架构在Simulink里实现非常成熟,直接用PI控制器加park变换就可以搭。
关键点在LCL滤波器参数。LCL比单L多一个电容支路,对高频开关纹波的衰减效果更好,但多了一个谐振峰,控制不好会在谐振频率附近放大谐波。工程上有个经典约束:谐振频率要在电网频率的10倍以上、开关频率的二分之一以下。LCL谐振频率计算公式是:
f_res = (1/2π)·√((L1+L2)/(L1·L2·Cf))
例如开关频率10kHz,电网频率50Hz,L1取1.5mH,L2取0.8mH,Cf取10μF,算出来谐振频率大概是2.4kHz,电场频率50Hz的48倍,开关频率10kHz的约四分之一,比较合理。如果算出来谐振频率落在1000Hz附近,那跟PLL带宽、电流环带宽就容易打架,仿真时容易出问题。
阻尼策略也值得一提。最简单的是在电容支路串联电阻R_d,取值一般为谐振频率处电容阻抗的三分之一到三分之一左右。R_d选得太大,滤波效果被削弱;选得太小,谐振峰压不住。我在模型里会加上R_d,然后通过波特图观察LCL的幅频响应,确认谐振峰被压到0dB以下,这是一个容易被忽略但非常关键一步——很多人模型发散,并非控制参数不对,而是LCL阻尼没做好。
2.4 三相锁相环和坐标变换的细节
并网控制里最影响“仿真手感”的模块就是PLL了。PLL锁不好,dq坐标系的相位角都跟着错,电流环补偿过来补偿过去,波形肯定乱。Simulink里常见的锁相方式是同步旋转坐标系锁相环(SRF-PLL),即把三相电压做Clark、Park变换后,让q轴分量为零,用PI调节器修正相角。
电网电压波动剧烈时,PLL的性能瓶颈就显现出来了。三相电压不对称或谐波含量大,q轴里就不光是相位误差,还混了负序和谐波分量。简单的办法是在PLL的输出环节加入滤波环节(比如一个低通),但会牺牲响应速度。对电压波动仿真来说,PLL的动态响应速度会直接影响波动抑制的表现,处理不好就会出现“电压刚要恢复、PLL又过冲”的恶性循环。建议用Simulink的PLL模块时把带宽设在20~40Hz,兼顾速度和滤波。
3. 电压波动为什么会产生?从物理到仿真复现
3.1 光照突变场景:一片云带来的连锁反应
光伏电站最怕的就是云层快速移动。光照从1000W/m²瞬间掉到400W/m²,光伏阵列的输出电流急剧减小,Boost的MPPT还没反应过来,直流母线电压先跌了一大截。母线电压跌了,逆变器侧的功率输出就得变,本来并网点电压是98%左右的水平,光伏出力减少后本地负载要靠电网侧供给更多功率,线路压降变大,并网点电压继续往下跌。你把Scope里的光照曲线、直流母线电压、并网点电压放在同一时间轴上对比,就能看到光照突变后电压波动的完整传导链。
光照恢复的场景更容易出问题——云层过去,光照瞬间回到1000W/m²,光伏出力猛涨,逆变器把电流全注入电网,并网点电压被顶起来,短时间内能从95%直接干到105%。在小容量的配电网场景里,如果线路阻抗大、上级变压器容量又小,电压波动能严重到造成过压保护动作,光伏逆变器直接脱网。脱网之后光伏出力为零,电压又猛降,形成“波动—脱网—更大波动”的恶性循环。
仿真复现这个场景很简单:Signal Editor或Signal Builder里自定义一条光照曲线,设置在t=5s时突变,持续3秒钟再恢复。注意光照变化率也有影响——云的边界清晰时,光照变化几乎是阶跃;云层较薄时,变化率平缓。阶跃类光照变化更考验MPPT和逆变器控制的动态响应,建议两类都试,模型验证的覆盖度更全。
3.2 负载波动场景:配电网的重载跳变
除了光照波动,配电网本身的负载波动也占很大比重。工业园区场景最典型:早上工厂开机,大批电机同时起动,无功冲击很大,电压短暂跌落;到中午休息,大型设备停掉,负载突然轻了,光伏出力还在满发,电压又抬高了。傍晚光伏出力降了但负载还没到峰值,电压可能又跌一波。
这种场景很好仿真:在Simscape Electrical里用三相串联RLC负载,设置一个可变负载模块(Three-Phase Dynamic Load),在特定时刻改变有功和无功负载。关键看两点:一是负载波动方向上光伏出力是同向还是反向。负载减小与光伏出力峰值叠加,是电压抬升最恶劣的情形;负载增大叠加光照突降,则是电压跌落最恶劣的情形。二看动态过程——电机等负载起动瞬间无功冲击特别大,仿真的电压波形会在几十毫秒内出现一个很深的跌落,然后缓慢恢复,这个动态特的观察对你的控制策略设计非常关键。
3.3 电压越限的判据指标
咱们做仿真的,除了波形越看,还要有一个量化判断标准。中国的电能质量标准GB/T 12325规定,20kV及以下三相供电电压偏差为标称电压的±7%,也就是380V系统的电压范围是353.4V~406.6V。在仿真里可以直接观测PCC点的线电压有效值(RMS),接到一个比较器里,超过406V或低于353V就是“越限”了。仿真的时间轴上可以画出一个“电压合格带”,波形一旦越过这条带,就说明在当前光伏渗透率、线路参数和控制策略下,电压波动问题已经超出标准允许范围。
需要注意的是,RMS测出来的电压是滑动窗口值,窗口长度对检测灵敏度有影响。默认情况下Simulink的RMS模块会设置一个窗口,建议把窗口长度设为0.5~1个工频周期(即10ms到20ms),太长了会滤掉短时电压波动的细节,越限判定就失真了。
4. 抑制电压波动的控制策略:从无功补偿到储能协同
4.1 逆变器无功功率调节:PQ模式与PV模式的切换
光伏逆变器有一个容易被忽视的能力:它能发无功功率。在PQ模式下,逆变器按照设定值输出有功和无功,只管“发多少”;但在PV模式下,逆变器可以调节无功输出以维持并网点电压在设定值。国内很多光伏逆变器出厂默认PF=1(功率因数为1),也就是不参与调压。但实际上逆变器的容量是有限的,比如一个500kVA的逆变器,只发400kW有功时,容量还剩300kvar可以发无功,这部分资源不利用就白白浪费了。
在Simulink里实现电压调节有两种实用方案。第一种是定功率因数控制:检测并网点电压,电压偏高时让逆变器吸收无功、降低电压;电压偏低时发出感性无功、抬高电压。这种控制最简单,只需在逆变器的无功指令处叠加一个电压偏差信号即可。第二种是无功—电压下垂控制。Q-V下垂控制的好处是无需通信,每台逆变器只根据本地的电压偏差调整无功出力,分布式光伏的电压调节基本都靠这个逻辑。
我自己测试过效果:在一个10kV配电网50%光伏渗透率场景里,不控制时PCC电压最高冲到1.06p.u.,加上Q-V下垂控制后,电压被限制在1.03p.u.以内,效果立竿见影。还可以顺便绘制出无功出力曲线,确认逆变器没有到达无功容量极限。
4.2 有功削减:最后的防线
无功补偿有极限——当线路电阻占主导(R/X比值大)的时候,Q-V耦合力弱,调无功对电压作用不大。这时只能削有功了。有功削减策略很简单:当并网点电压超过设定阈值(比如1.05p.u.)时,主动降低光伏的有功出力,避免电压进一步升高。代价是发电量损失,所以这个策略算是一种“紧急措施”,不应该作为常态。
Simulink里的实现方式是:电压环输出一个限幅信号(0~1之间),乘到MPPT给定功率上。需要注意加入滞回特性——比如电压升到1.06p.u.时开始削减,降回1.03p.u.时才恢复,避免系统在阈值附近反复振荡。
用一个对比仿真看效果:60秒内光照逐步升高,PCC点电压在无控制、无功补偿、无功+有功削减三种策略下分别为1.065、1.03、1.015p.u.。这种“多方案横向对比”就非常直观,也适合写论文或做报告用。
4.3 储能系统协同:让波动从源头消失
储能设备本身就是平移功率波动的利器。光伏出力猛增时,储能充电,相当于本地多了一个负载,吸收掉多余的有功,电压就不会被顶高;光照突降时,储能放电,补充光伏出力,电压就不会跌落。这个思路在Simulink里实现起来也不难——在直流母线侧挂一个双向DC/DC变换器,接入蓄电池模型。
储能容量要按最恶劣工况配置:光照从1000W/m²骤降到400W/m²,持续时间30秒,光伏容量500kW,停掉的功率大概是300kW乘以30秒,就是2.5kWh左右的能量,考虑充放电效率和SOC限制,取5kWh就够应付。这里要注意协调逻辑:储能的出力指令取决于PCC电压偏差和光伏出力的组合信号,要避免储能和逆变器无功控制互相打架,否则电压波动抑制效果反而变差。
我曾经做过测试,光伏+储能协调控制下,5kW光伏在剧烈光照抖动场景里,PCC电压波动幅度从4%收窄到1.2%,效果非常明显。
5. 实操过程:从零搭一个电压波动仿真场景
5.1 基础参数设置
我建议用2019版本以上的Simulink,配Simscape Electrical,组件库齐全很多,直接拖模块就行。整个仿真时间建议设20秒,步长用变步长(Variable-step),求解器选ode23tb或ode15s。这类电力电子仿真往往是刚性系统,ode45跑得慢还容易发散。ode23tb在电流断续时表现更稳,ode15s适合大惯性系统。如果你发现自己在低压逆变器模型上反复发散,可以试试从ode45切到ode23tb,往往就顺了。
下面是关键参数的表格式整理,直接抄作业就行:
| 参数项 | 推荐值 | 说明 |
|---|---|---|
| 光伏阵列容量 | 500kW | 接入380V配电网比较合适 |
| Boost开关频率 | 5kHz | 兼顾效率和滤波 |
| 逆变器开关频率 | 10kHz | 平均值模型不需要,开关模型需要 |
| 直流母线电压 | 750V | 三相380V逆变需要的直流侧电压 |
| LCL滤波 | L1=150μH, L2=100μH, Cf=50μF | 需结合谐振频率校验 |
| 线路阻抗 | R=0.2Ω, L=1mH | 模拟1公里左右电缆线路 |
| 本地负载 | 300kW+100kvar | 模拟工业园区负载 |
| 光照变化 | 1000→300W/m²,t=5s | 阶跃型突变 |
| 负载变化 | -50%,t=10s | 模拟设备切除 |
5.2 仿真步骤详解
第一步:搭光伏直流侧。拖入PV Array模块,填好参数,输入光照和温度,输出接Boost变换器。Boost用MOSFET/IGBT加上二极管和电感电容构成,控制用MPPT计算出的电压参考值。
第二步:搭逆变器与滤波器。逆变器用Universal Bridge模块,桥臂数设为3,用IGBT/Diode。控制信号来自电流内环和功率外环输出的PWM波形,频率10kHz。
第三步:搭配电网。380V交流母线经过LCL滤波后接到配电网,配电网可以用Three-Phase Source等效,电压幅值400V,频率50Hz,串联一个阻抗模块。如果要做10kV仿真,中间加一台10kV/0.4kV变压器,短路阻抗4%,容量1MVA。
第四步:搭控制系统。电流内环dq轴两个PI控制器,有功外环给定参考功率P_ref(取自MPPT输出),无功外环用前面说的电压支撑策略。PLL负责把PCC三相电压转成dq坐标系。
第五步:搭测量与越限判断。把PCC线电压连到RMS模块,窗口设一个工频周期,换算到标幺值,然后用比较器判断是否超过±7%范围。
5.3 波形分析与参数调整技巧
仿真跑完,看波形时要把握三个优先级。第一个是并网点电压波形(最关心的结果):光照突变后,电压应该在几百毫秒内恢复稳定,如果波动持续两三秒,说明控制参数太慢。第二个是直流母线电压波形:光照突变时母线电压短暂跌落是正常的,正常范围在±5%以内,超过这个范围要检查MPPT响应和Boost控制带宽。第三个是逆变器输出电流波形:电流质量直接影响电压质量,电流波形畸变严重时,PCC电压波形必然难看。
参数调整顺序也有讲究:先调LCL滤波器确保稳定,再调电流内环PI,然后调PLL带宽,最后调外环功率、电压环。很多新手一上来就把PI参数往经验值填,电流内环发散时还找不到原因,其实大部分情况下问题出在滤波器或PLL,而不是PI。我自己调试时先用小幅阶跃输入测试电流内环,看是否有超调量过大,再逐步加大输入的幅值。
5.4 一个完整的典型场景对比案例
我用自己实测过的参数跑一组对比。场景设置为:500kW光伏接入380V配电网,光照在t=5s时从1000W/m²掉到400W/m²,t=8s恢复到1000W/m²,本地负载300kW,线路阻抗R=0.2Ω。
对照组1(PF=1,不调压):光照突变后,PCC电压从1.01p.u.跌到0.93p.u.,恢复瞬间冲到1.09p.u.,全程都在电压合格带之外,非常危险。
对照组2(Q-V下垂控制):电压最低点抬到0.97p.u.,最高点压到1.04p.u.,虽然没有完全消除波动,但已经落在GB/T 12325的允许范围内。
对照组3(Q-V下垂+储能协同):电压波动进一步收窄,最低0.99p.u.,最高1.02p.u.,波动幅度从原来的16%收窄到3%,效果显著。
这个对比的价值在于:你可以直观地看到控制策略每一步的增量收益,知道投入产出比。做工程报告的,建议按这个思路组织仿真结果。
6. 常见坑与排查记
6.1 仿真不收敛:先检查这五个位置
我前期搭模型时最常遇到的就是仿真发散。Simulink弹出一句“Simulation failed to converge”就把人打蒙,毫无提示性。经过反复排查,我把常见原因按概率顺序整理成表:
| 排查优先级 | 可能原因 | 检查方法 |
|---|---|---|
| 1 | 求解器不匹配 | 换用ode23tb或ode15s |
| 2 | LCL滤波器谐振峰未阻尼 | 检查电容阻尼电阻是否接入 |
| 3 | 母线电容值过小 | 增大直流母线电容,比如从1000μF提到5000μF |
| 4 | 电流环PI参数过大 | 逐步减小比例增益,观察振荡趋势 |
| 5 | PLL模块初始化不当 | 调整初始相位角为0,检查三相电压相序 |
还有一个隐藏很深的问题:当线路阻抗非常小(比如取0.01Ω)时,逆变器输出电流的响应会被放大,数值在求解器里产生高频抖动,进而引发不收敛。这不是控制算法的错,是模型数值病态。解决方法是把线路阻抗取到实际电缆的水平,别追求“理想电网”。在Simulink里做研究,往往现实阻抗取值反而能避免一堆数值问题。
6.2 波动波形不对:光照突变后电压纹丝不动
这个现象很容易让人困惑——明明光照设成阶跃变化了,电压波形却看不出任何波动。我遇到过,最后发现是光伏阵列模块的输入信号没有真正接到阶跃光照上,光照端口还连着常量模块。这种情况在Simulink接线时不注意就会出现。看波形时要留意三处:MPPT是否在跟踪新的功率点、直流母线电压是否等比例变化、逆变器有功输出是否改变。只要其中一环没动,说明那个环节接线或参数有问题。
还有一种可能性是负载电阻太大,电网容量足够大,即使光伏出力变化,配电网电压也被强电压源钳住了,波动量级太小。解决办法是把线路阻抗逐步调大(比如从0.1Ω调到1Ω),模拟真实的弱电网场景。在强电网里做电压波动研究是没意义的——电压被源钳住,所有动态都会不见。
6.3 逆变器脱网之后的“二次波动”问题
这是前面提过的恶性循环。在仿真里表现为:PCC电压超过保护阈值后跳闸,光伏出力变为零,电压猛降,但降到一个新的平衡点后,由于直流母线电容还在放电,逆变器可能重新启动,又注入功率,电压又升上去。如此反复,整个PCC电压呈现锯齿状振荡,且振荡频率取决于保护重启逻辑。
排查时一定不能用一根直通的跳闸信号,要有一个滞环逻辑——电压降到1.02p.u.以下持续200ms才允许重新并网,这能有效避免反复并网脱网的振荡。我在仿真里试过,带滞环的重启逻辑能在3秒内稳定系统,而不带滞环时系统能振荡到医院结束不收敛。
6.4 关于仿真时长和模型精细度的取舍
做这类动态仿真,一个说不出口但特别现实的问题:仿真速度。十个开关模型联合跑,步长微秒级,20秒仿真能跑上几个小时,折腾两次就让人崩溃。我的做法是:先用平均模型把控制策略、调参、场景模拟全部跑通,只剩最后验证阶段时,把逆变器切回开关模型跑一次,确认开关纹波和损耗没有引入新的异常即可。平均模型看着不够“高级”,但研究电压波动的动态特性,平均模型完全够用,而且能让你迭代更多方案,最终的质量反而比硬跑开关模型高得多。
6.5 个人体会与建议
踏实跑了一年多这类仿真之后,我最深的体会是:做光伏配电网仿真,不要太追求模型细节的堆砌,而要在“模型可信度”和“多工况覆盖”之间找平衡。一个参数可信、能跑通二十组工况的平均模型,比一个参数可疑、只能跑通一组的开关模型,对工程决策的参考价值高得多。
另外一个实用建议是,仿真结果出来先别急着调控制参数,先把波动场景按照“什么扰动→什么响应→电压何时越限”的顺序梳理清楚,逻辑顺了再动手调PI。很多时候问题的根源在于场景设计不合理,而不是控制参数不好,不梳理场景就调参数,只能越调越乱。
电压波动这个课题后续还能往哪延展?一个是跟储能容量配置结合,做经济性评估——加多少储能能把电压波动压到合格线以下,又能比扩建线路省多少钱;另一个是跟机器学习结合,用历史光照和负载预测数据,提前预判电压越限风险,把控制从“反应式”变成“预判式”。当然这些是基于我自己的使用体验给出的思路,具体怎么做,你在Simulink里多跑几组数据,自然就知道该往哪个方向使劲了。