首页 / 资讯中心 / 文章详情

光伏三相并网仿真模型搭建与调试实战

光伏三相并网仿真模型搭建与调试实战 ★ FEATURED ARTICLE
1. 光伏三相并网仿真到底在仿什么先说说我为什么会碰这个东西。年初有个做光伏储能的朋友找我他们硬件样机已经打出来了但控制器参数一直调不稳定并网瞬间母线电压直接冲高把IGBT模块烧了两块一块几千块烧得他们心疼。我说你们没先做一轮系统性仿真吗他说做过但都是网上东拼西凑的Demo模型要么是纯光伏电池模型不带并网要么是并网逆变器模型不带MPPT真正要验证的“光照变了、电网电压抖了一下控制器怎么响应”根本看不出来。这就是光伏控制器与光伏三相并网仿真这类模型的核心价值它把光伏阵列、DC-DC变换器、MPPT控制、三相逆变器、滤波器和电网放在同一个闭环里跑让光伏侧的慢动态和电网侧的快动态在同一个时间尺度下被观察。仿真的目的不是“仿真本身”而是回答三个问题控制器参数能不能让系统稳定、光照或温度突变时系统能不能重新找到最大功率点、并网电流能不能满足电网质量要求。这个内容适合谁三类人最需要。一类是做光伏逆变器、储能变流器的硬件工程师在动电烙铁之前先把控制参数定下来一类是电力电子方向的学生需要一个能把课本里的MPPT、dq变换、PLL串起来的完整案例还有一类是做系统集成的开发者需要快速验证不同光伏板配置、不同电网工况下的系统行为。工具方面我长期用MATLAB/Simulink搭这类模型Simulink自带的Specialized Power Systems库里有光伏阵列、IGBT桥、变压器、电网Source等现成模块Simulink的Powergui还能直接做FFT分析谐波。PLECS和PSCAD也可以但PLECS偏器件级热分析PSCAD偏电磁暂态日常做控制器开发我还是觉得Simulink最顺手。2. 模型整体拓扑从光伏阵列到电网的每一段信号流2.1 五级链路与建模粒度选择一个完整的光伏三相并网仿真模型主电路拓扑是固定的五级链路光伏阵列根据光照和温度输出直流电压电流这是整个系统的功率来源。Boost DC-DC变换器把光伏阵列的工作点提升到直流母线电压水平同时作为MPPT的执行机构。直流母线电容稳定母线电压缓冲前后级功率差。三相两电平逆变器把直流电转换成三相交流电IGBT桥是主干。LCL滤波器滤除开关次谐波然后接入三相电网。建模粒度是个很关键的选择直接决定仿真速度和可信度。我习惯分两档如果重点是验证MPPT算法和母线电压动态光伏阵列用Simulink的PV Array物理模型Boost用详细开关模型逆变器用平均值模型如果重点是验证并网电流谐波、死区影响、电网故障穿越那逆变器就必须用带 PWM 发生器的详细开关模型。平均值模型跑得快但看不到THD详细开关模型看得细但步长得压到微秒级。我的建议是两套模型都建逻辑层共用一套初始化脚本省得重复调参。2.2 光伏阵列模型的工程化方案光伏阵列建模最容易犯的错是拿单个光伏板直接放大到阵列规模。真正的工程做法是用Simulink的PV Array模块关键参数是开路电压Voc、短路电流Isc、最大功率点电压Vmp和电流Imp这些都是光伏板datasheet上现成的值然后用Nser串联数和Npar并联数定义阵列规模。我常用的一个典型阵列配置是单块板Voc约44V、Vmp约36V12块串联得到阵列开路电压约528V、最大功率点电压约432V再并联2路最大功率大约10kW出头。这个电压范围配合后面的Boost电路可以让MPPT在200V到450V之间正常搜索覆盖一天中光照变化导致的最大功率点电压漂移。温度系数也要设置默认的温度系数其实已经比较接近实际单晶硅组件不需要刻意去改除非你用的是薄膜组件。这里提醒一个细节PV Array模块的输出端一定要并联一个小的稳压电容哪怕是几微法都能显著减少求解器因为光伏阵列内阻突变带来的收敛困难。原理不复杂——光伏阵列本质是电流源特性开关器件动作时电压突变会让数值积分器吃不消小电容相当于给求解器一个缓冲。2.3 三相逆变器与电网接口三相逆变器模型我会用Universal Bridge模块配IGBT/DiodePWM信号从控制侧给到门极。直流侧接到母线电容交流侧接LCL滤波器滤波器后面是Three-Phase Programmable Voltage Source模拟电网。Programmable Source这个模块很推荐它支持设置电压幅值、频率和相位跳变后面做电网跌落测试全靠它不需要大改模型就能模拟低电压穿越工况。电网参数以三相380V/50Hz为例相电压峰值约537V所以直流母线电压必须大于这个值考虑到调制裕量和死区影响母线电压取700V是工程上很常见的设定。母线电容一般取1500uF到3000uF之间容量太小母线电压在功率突变时容易过冲容量太大直流电压环响应迟钝、电容成本也上去了这个权衡在后面调试环节还会重点展开。3. 光伏控制器核心MPPT算法、Boost电路与参数整定3.1 MPPT的两种主流算法与选型MPPT是光伏控制器的大脑也是整个模型里逻辑最容易被低估的部分。光伏阵列的P-U曲线是一个单峰曲线最大功率点大约在0.75到0.82倍开路电压的位置MPPT的任务就是不管光照、温度怎么变都要把工作点压在这个峰值附近。工程上用得最多的是扰动观察法PO和电导增量法INC。PO的思路最简单给工作点电压加一个小扰动如果功率变大就继续往同方向扰动功率变小就反向。INC则是利用最大功率点处 dP/dV 0 的条件代入P I·V得到 dI/dV -I/V 这个判据根据当前工作点在最大功率点左侧还是右侧来决定电压调节方向。我的选型经验光照变化快的场景比如光伏板旁边有云飘过、屋顶有遮挡物影子用INC抗误判能力强一些环境相对稳定的场景PO完全够用实现简单、参数少。你在仿真里对比这两种算法的跟踪轨迹就能看出来PO在最大功率点附近会持续小幅振荡INC稳态时几乎能停在最优工作点附近。这个振荡差异在仿真里不明显但在实物上会反映为直流侧电压纹波进而影响母线电压质量。3.2 Boost电感、电容与开关频率的匹配Boost电路是MPPT的执行器它的参数必须和MPPT步长匹配否则算法算得再准也执行不到位。开关频率我习惯取10kHz到20kHz这个区间PWM死区效应、开关损耗和滤波器尺寸都能接受。电感值按电流纹波约束设计。Boost电感电流纹波公式是ΔI_L V_in · D / (f_sw · L)取输入电压350V、占空比0.5、开关频率10kHz如果希望纹波系数控制在10%10kW系统对应电流约28A纹波2.8A需要的电感值约为L 350 × 0.5 / (10000 × 2.8) ≈ 6.25mH实际选6mH到8mH比较合适。电感太小纹波大会影响MPPT的功率计算准确度电感太大电流响应变慢光照突变时光伏工作点跟踪不及时。输出侧电容按电压纹波约束设计。母线电容两端电压纹波主要由负载突变引起经验值是让母线电压纹波控制在1%以内对于700V母线就是7V。Boost输出电容的经验公式可以按 C ≈ I_out · D / (f_sw · ΔV_out) 估算10kW系统在700V母线电流约14.3A算下来需要约1000uF到1500uF配合我前面说的工程经验值是一致的。3.3 为什么母线电压必须留足裕量母线电压的选择不是拍脑袋。三相380V电网的相电压峰值为380×1.414≈537V逆变器采用SVPWM调制时直流电压利用率理论上最高可以到1但实际受死区、管压降和调制方式限制母线电压至少要留10%到15%的裕量。700V母线对应约30%裕量看起来偏大但考虑到电网电压允许上下波动10%也就是到418V)还要给低电压穿越工况留出boost能力700V是工程上稳的选择。如果你模型里母线电压设得刚刚高于537V比如550V光照突变时MPPT为了追最大功率点动态改变占空比母线电压很容易被顶到过压保护值仿真会直接报错。这个坑我建议你在模型里刻意试一次印象会非常深刻。4. 三相并网逆变器控制链路锁相环、dq解耦与双闭环4.1 SRF-PLL同步的必要性与初始化问题并网的第一前提是相位同步逆变器输出电流和电网电压相位对不上功率方向就会乱严重时相当于短路。最主流的方法是同步旋转坐标系锁相环SRF-PLL思路是把三相电网电压做Clark变换得到αβ再做Park变换得到dq让q轴电压的参考值为0用PI调节器调节PLL输出角频率稳态时PLL输出的角度就和电网电压矢量完全同步。PLL在仿真里最大的坑是初始化。很多模型直接给PLL初始角频率50Hz、初始相位0然后并网瞬间电流会有一个很大的冲击因为PLL还没锁定真实相位。工程做法是先让逆变器离网运行、只让PLL追踪电网相位等到dq轴的q分量稳定在0附近、PLL输出角度连续稳定若干个电网周期后再闭合并网开关。我一般在模型里用一个Timer模块控制并网接触器0.1秒前只同步0.1秒后闭合这样看到的并网波形就是干净的。4.2 电流内环PI参数计算电流内环是整个控制系统的核心内环它决定了并网电流能不能快速、准确地跟踪指令值。在dq旋转坐标系下三相逆变器的数学模型可以解耦成d轴和q轴两个独立的一阶惯性环节传递函数近似为G(s) 1 / (L·s R)其中L是LCL滤波器在控制频率段的等效电感通常按L1L2估算R是等效电阻。按典型I型系统整定PI参数可以按期望带宽计算Kp L · ωc Ki R · ωc以L1L2共4mH、R为0.1Ω、期望带宽取1000rad/s为例Kp 0.004 × 1000 4Ki 0.1 × 1000 100这个参数组的调节速度大约是1毫秒级别对50Hz并网系统来说响应足够快。实际仿真中你会发现直接套公式算出的PI增益往往偏激进因为模型里还有采样延迟和PWM延迟加了延迟环节后相位裕量下降。我的做法是先用公式算出基准值然后把Kp下调20%到30%再跑阶跃测试观察电流是否有超调振荡微调一两次就稳定了。4.3 电网电压前馈与解耦补偿dq坐标系下d轴和q轴电流之间存在交叉耦合如果不做补偿d轴电流指令变化会引起q轴电流波动。标准解法是在电流环输出加解耦项d轴控制输出加上ωL·iq的补偿量q轴控制输出减去ωL·id的补偿量。这个解耦项同时也是一个前馈信息源能显著改善电流环的动态性能。我还建议加上电网电压前馈就是把电网电压的dq分量直接加到电流环输出上。原因是逆变器输出端电压等于控制器输出减去电网电压电网电压本身对电流环来说是个大的扰动输入前馈之后扰动可以被提前抵消电流环对电网电压波动的敏感度大幅下降。仿真里验证方法是在电网电压中加入一个5%的谐波或跌落对比有无前馈的并网电流波形有前馈的电流畸变明显更小。5. LCL滤波设计参数约束、谐振陷阱与阻尼方案5.1 为什么单L不够用只用单个电感做并网滤波当然也能跑出正弦电流但代价是抑制开关次谐波需要很大的电感量。大电感带来两个问题一是体积重量成本都上去二是电感上的电压降增大限制了有功功率传输能力。LCL用两个小电感和一个电容组成三阶滤波网络对开关次谐波的衰减能力是单L的十几倍电抗总量却可以做到较小。代价是LCL存在一个谐振峰如果谐振频率落在控制带宽附近或激励源频率附近系统会不稳定甚至啸叫。这个谐振峰是LCL最大的坑下面细说。5.2 一组可复用的LCL参数推导设计LCL时有三个硬约束谐振频率要远离电网频率和开关频率、电容产生的基波无功不能太大、电感总量不能太大导致电压降超标。以10kW、三相380V、开关频率10kHz的系统为例推荐流程如下第一步定电容。电容产生的基波无功一般限制在额定功率的5%以内公式是C_f ≤ 5% × P_n / (3 × 2π × f_g × V_ph²)代入V_ph 220V、P_n 10000W、f_g 50Hz算出来C_f ≤ 10.9uF取10uF。第二步定电感总量。电感电压降一般控制在额定相电压的5%到10%10kW系统相电流约15.2A取5%压降即11V总电感按L_total ≤ 11 / (2π × 50 × 15.2) ≈ 2.3mH电感总量2.3mH逆变器侧L1取1.5mH网侧L2取0.8mH比例约2:1。第三步校验谐振频率。LCL谐振频率公式f_res (1 / 2π) × sqrt((L1 L2) / (L1 × L2 × C_f))代入数值得到 f_res ≈ 2120Hz。约束是10倍电网频率500Hz以上、0.5倍开关频率5000Hz以下2120Hz正好落在区间中间偏安全位置。这个位置很理想既不会和50Hz工频纠缠也不会和10kHz开关频率邻近。5.3 三种阻尼方式实测感受LCL谐振峰必须有阻尼我实测过三种方式。最直观的是在电容支路串电阻实现简单但电阻上有持续损耗10uF电容在50Hz下容抗约318Ω串10Ω电阻损耗还算可以接受但谐波抑制能力会打折。第二种是电容支路并联电阻再串联一个小电容损耗更小但多一个元件。第三种是有源阻尼通过算法在控制里模拟一个虚拟电阻不增加任何损耗效果最好但需要额外的状态观测器或高阶控制算法。工程上第一版模型我都是先用电容支路串电阻跑通验证完控制逻辑后再把阻尼方式优化成有源方案避免一开始就陷入算法调参的泥潭。6. 仿真结果怎么看稳态指标、动态响应与波形细节6.1 稳态波形与THD验证仿真跑稳态后最先看的波形有三个直流母线电压、光伏阵列输出功率、并网电流与电网电压的相位关系。母线电压应该平直地稳定在参考值700V附近纹波峰峰值不超过1%光伏输出功率应该稳定在MPPT设定的最大功率点附近没有周期性振荡并网电流应该和电网电压同相功率因数为1波形接近标准正弦。THD是并网质量的硬指标国内并网标准要求谐波总畸变率一般低于5%。Simulink里用Powergui的FFT分析工具选择稳态后的一个完整周期数据基波设为50Hz可以看到各次谐波的分布。LCL设计正确时并网电流THD通常在2%到3%之间如果THD超过5%优先检查三处MPPT步长是否导致光伏侧功率抖动、PLL相位是否有稳态误差、LCL阻尼电阻是否取值偏小导致谐振峰没有被压住。6.2 光照突变与电网跌落的动态测试稳态合格只能说明参数没调错真正考验控制器的是动态工况。我每次做完稳态仿真必做的两个测试一是光照突变测试二是电网电压跌落测试。光照突变测试的做法在仿真跑到1.5秒时把光照从1000W/m²突降到600W/m²观察MPPT重新搜索最大功率点的过程。合格的响应是光伏阵列输出功率在几十毫秒到一百毫秒内重新稳定在新的最大功率点期间母线电压波动不超过5%并网电流平滑过渡、无明显过冲。如果你看到母线电压大幅度上下摆动多半是MPPT步长太大和母线电容容量不匹配此时减小步长或加大母线电容就能改善。电网跌落测试的做法用Programmable Source把三相电压在2秒时跌落到额定值的90%、持续0.2秒再恢复。这个工况下逆变器输出电流应该自动增大以维持输出功率PLL应该依然能锁定相位恢复后电流回到原值且不产生冲击。如果跌落期间母线电压冲到750V以上说明直流电压外环动态不够快需要适当加大直流电压环PI比例系数。6.3 直流母线电压的波动规律直流母线电压的动态行为是整个系统健康状况的晴雨表我建议单独开一个Scope盯它。母线电压有两个典型波动来源一是光伏侧MPPT扰动引起的低频波动频率和MPPT步长成正比二是并网功率突变引起的高频波动频率在几十赫兹量级。两种波动在波形上很好区分低频波动周期长、幅值小高频波动短促且幅值明显更大。一份可以留档的合格仿真结果应该包含稳态运行三相电压电流波形、FFT谐波分析报告、光照突变工况下母线电压和功率波形、电网跌落工况下电流响应波形再加上两组关键数据——MPPT最大功率跟踪误差一般应小于3%、电流THD应小于5%。这些波形和数据可以直接作为控制器代码评审和硬件测试的交接依据。7. 调试阶段最常踩的五个坑与处理顺序7.1 代数环与采样时间错位模型里最容易冒出来的仿真错误是代数环。原因是控制模块的输出直接又反馈到同一模块的输入Simulink解算这个隐式方程时会提示代数环警告严重时直接报错。处理办法简单粗暴在反馈回路上加一个Memory模块或Unit Delay把一步延迟隔离进控制环。这个延迟在10kHz采样频率下只相当于0.1毫秒对控制性能影响可以忽略。采样时间错位是另一个隐蔽问题。MPPT控制器通常30ms更新一次占空比指令电流内环却是10kHz在跑如果你把两个不同采样频率的信号直接连到一起Simulink会强制用较快的采样率导致MPPT数值运算不那么干净。我的做法是每一个控制模块都显示采样时间颜色Simulink里有这个选项所有信号连接处的采样率必须一致或经过Zero-Order Hold转换。7.2 解算器选择影响很大电力电子这种开关电路对数值求解器很挑剔。我实测下来ode23tb是硬开关功率电路最稳的选择能处理开关动作带来的数值刚性ode15s也可以但偏慢ode45这类变步长非刚性求解器在IGBT开关瞬间经常因为收敛问题报错。最多步长也要设我习惯设最大步长1e-5秒10微秒这样PWM波形的开关边沿能被充分采样不会出现开关事件被漏掉导致的功率计算错误。7.3 仿真速度太慢的加速办法详细开关模型的仿真速度确实让人着急仿真5秒可能要跑20分钟。我的加速策略从效果大到小排序一是把非关键部分比如MPPT的功率计算显示换成离散化模块避免连续求解器频繁重算二是把电网和逆变器之间的LCL以外区域用平均值Source代替保留LCL和电流环的细节三是把示波器数据的采样率从系统采样率降到100kHz示波器数据记录本身很耗资源。实在需要跑长时程就用前面说的平均值模型把开关器件等效成受控源仿真速度至少快5倍。7.4 模型参数不自洽导致的发散去检查顺序仿真发散时不要慌按顺序排查基本都能找到。我的检查顺序第一步看初始条件光伏阵列的初始输出电流是不是和Boost电路初始工作点匹配不匹配就先从零负载启动第二步看PLL和并网时序有没有相位未锁定就闭合并网开关第三步看LCL谐振频率和控制带宽谐振峰是否落在电流环带宽内如果是系统必然振荡第四步看PI参数把Kp先降一半看是否稳定能稳定说明原参数裕量不足第五步看解算器把最大步长从1e-4改到1e-5再跑。一次把五步走完大概90%的发散问题能解决。7.5 把仿真与实物对标仿真调到波形全绿只完成了一半工作另一半是把仿真结果和实物参数对齐。我常吃的亏是仿真里用理想开关管实际IGBT有大约2V的导通压降和死区时间这两者会造成并网电流的低频谐波和电压损失。要对标就在仿真里也把死区时间设成和实物一致比如2微秒并在IGBT模块里勾选导通压降选项。做过这一步后仿真电流波形里会出现和实物一样的细节特征这样的模型才真正配叫“可用”而不是只活在仿真报告里。最后分享一个我从这个项目里沉淀下来的习惯仿真初期就建一套配置脚本把光伏阵列参数、MPPT步长、滤波器参数、PI参数全部写在脚本头部用clear变量再跑模型。这样每次调参都有记录可回溯再也不会有“上一版效果那么好但忘了改了什么”的情况。这个习惯帮我省了大量重复调试时间也让我更有底气把仿真结果直接带到硬件联调现场。
阅读完成 · 觉得有帮助?
咨询建站