ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

单级式三相光伏并网Simulink仿真:LCL滤波与MPPT/SVPWM全解析

单级式三相光伏并网Simulink仿真:LCL滤波与MPPT/SVPWM全解析 开篇先交代一下背景。我接手这个仿真项目的时候手上只有一句话的需求“搭一个单级式三相光伏并网系统要用LCL滤波器MPPT和SVPWM都不能少。”听起来是个很标准的课题但真正动起手来才发现单级式拓扑的每一个环节都是牵一发动全身MPPT扰动直接影响直流母线电压直流母线电压又直接影响逆变器调制比调制比不够SVPWM就进不了线性区然后并网电流就开始畸变。这三者互相耦合调试的复杂度和两级式完全不在一个量级。这篇博文把我从零搭建、参数计算到最终波形收敛的完整过程记录下来重点讲清楚LCL滤波器参数怎么算、MPPT和SVPWM怎么配合、以及我在调试中踩过的几个隐蔽的坑。适合正在做光伏并网仿真、做毕业设计或者想搞清楚单级式拓扑控制逻辑的同行参考。1. 单级式拓扑的取舍为什么我最终选了它1.1 单级式与两级式的本质区别光伏并网逆变器最常见的两种拓扑是单级式和两级式。两级式前面多了一个Boost升压电路光伏阵列先升压再逆变控制上相对解耦前级Boost负责MPPT后级逆变器专心做并网电流控制两个控制环互不干扰调试起来非常友好。单级式则把光伏阵列直接接在逆变器直流侧MPPT和并网控制全部压在逆变器一个环节上。单级式的优势在于器件少、损耗低、成本低尤其在大功率场景下少一级变换意味着效率能提升一两个百分点这在工程上是非常可观的收益。但代价就是控制复杂度和参数耦合明显增加直流母线电压不再是恒定值而是跟随MPPT工作点变化调制比必须始终留有裕量否则SVPWM过调制会导致并网电流畸变。我在仿真实测中也确实体会到如果按照两级式的思路去调试单级式很容易出现“MPPT在找最大功率点、但逆变器调制比不够导致电流波形发散”这种互相打架的情况。1.2 系统整体架构与功率流我搭建的系统额定功率10kW三相380V并网开关频率10kHz。整体架构分成光伏阵列、直流母线电容、三相全桥逆变器、LCL滤波器、电网五个部分。光伏阵列输出直接接到直流母线母线电容承担稳压和功率平衡的作用逆变器通过SVPWM将直流电转换为三相交流LCL滤波器滤除高频开关纹波后并网。从控制结构上看系统分为三个层次外环是MPPT控制器输出直流电压参考值中间是直流电压环维持母线电压稳定内环是并网电流环在dq坐标系下实现有功无功解耦控制。三者时间尺度不同——MPPT一般是毫秒级甚至百毫秒级电压环几十毫秒级电流环是毫秒级以内——调试时要从内往外一层层调先固定外环把电流环调稳再逐层放开这个顺序非常重要。2. 光伏电池模型与MPPT别小看这两个“前置环节”2.1 光伏电池的等效电路与Simulink建模光伏电池的等效电路本质上是一个电流源并联一个二极管再串联一个等效电阻。工程上常用的数学模型由五个参数决定光生电流、二极管反向饱和电流、二极管理想因子、串联电阻、并联电阻。Simulink里我直接用了Simscape Electrical的PV Array模块它可以配置组件参数和串并联数量输出I-V曲线和P-V曲线。这里要特别提醒一个细节PV Array模块的“Maximum Power”参数如果不和你设定的光照、温度条件匹配MPPT一开始可能在错误的功率点附近搜索。我在调试时设置了1000W/m²、25°C标准工况组件参数用默认的1Soltech 1STH-215-P总共24块串联、2路并联组成了约10kW的光伏阵列。正确配置PV Array之后可以先用模块自带的I-V曲线图检查一下最大功率点是否在预期位置再进行后续控制设计。2.2 扰动观察法的实现与参数整定MPPT算法我选了扰动观察法PO原因很直白它对模型精度不敏感工程上用得最广也最容易在Simulink里用S-Function或MATLAB Function实现。算法的核心逻辑是给光伏阵列电压加一个小的扰动比较扰动前后的输出功率如果功率增加就继续沿相同方向扰动如果功率减小就反向扰动。用MATLAB Function写PO算法时我把状态变量用persistent变量保存避免了零阶保持器引发的代数环问题。扰动步长是关键参数步长太大稳态功率振荡明显并网电流波动也大步长太小动态响应慢光照突变时追踪速度跟不上。我的经验是以开路电压的1%为初始步长比如开路电压约440V步长取4~5V等到功率变化量小于阈值时自动减小步长形成两档变步长策略兼顾动态和稳态。这个变步长逻辑在Simulink里实现并不复杂效果却非常直观稳态时直流母线电压波动从原来的±8V降到±2V以内。不过在单级式拓扑中有一点要明确MPPT直接输出的电压参考值就是直流母线电压参考值它不能突变。因此在MPPT输出和电压环给定之间我加了一个一阶惯性环节时间常数取50ms左右相当于让母线电压参考值平缓爬升。否则MPPT每个周期跳变4V电压环会反复超调电流波形会一直处于动态调整状态根本稳不下来。3. LCL滤波器参数计算最容易翻车的一步3.1 为什么用LCL而不是单个L三相并网逆变器如果只用单个L滤波器要满足并网电流谐波要求比如THD小于5%电感量会非常大体积和成本都不可接受。LCL滤波器利用电容支路对高频纹波的低阻抗分流作用在同等滤波效果下总电感量可以大幅缩小高频衰减能力是40dB/dec而单L只有20dB/dec。代价是LCL是三阶系统存在谐振尖峰控制环路设计不当容易引发振荡。3.2 参数计算步骤LCL参数计算是我在整个项目中花时间最多、也最容易出错的地方。我用的是工程上比较成熟的按基波无功约束和纹波约束两步走的思路额定功率(P_n10kW)电网线电压(V_{LL}380V)直流母线电压约700V开关频率(f_{sw}10kHz)电网频率(f_g50Hz)。先算逆变器侧电感(L_1)。电感电流纹波的最大值出现在调制比为0.5附近经验上取额定电流峰值的15%~20%。额定电流峰值约为(\sqrt{2}\cdot P_n/(\sqrt{3}\cdot V_{LL})\approx21.4A)按20%取纹波电流(\Delta I_L\approx4.3A)。逆变器侧电感纹波计算式为[ L_1 \frac{V_{dc}}{6 \cdot f_{sw} \cdot \Delta I_L} ]代入数值(V_{dc}700V)(f_{sw}10kHz)(\Delta I_L4.3A)得到(L_1\approx2.7mH)。考虑裕量我取(L_13mH)。网侧电感(L_2)取(L_1)的20%左右即(L_20.6mH)。这里不建议(L_2)取得太大否则无功损耗和电压降都会增加。滤波电容(C_f)的约束是基波无功功率不超过额定功率的5%[ C_f \le \frac{5% \cdot P_n}{3 \cdot 2\pi f_g \cdot V_{ph}^2} ]相电压有效值(V_{ph}220V)代入得(C_f\le10.9\mu F)。取(C_f8\mu F)左右留出足够裕量。电容串联阻尼电阻(R_d)取值约为谐振频率处电容容抗的三分之一后续在谐振阻尼部分细说。最后校验谐振频率(f_{res})[ f_{res} \frac{1}{2\pi}\sqrt{\frac{L_1L_2}{L_1 L_2 C_f}} ]代入(L_13mH)、(L_20.6mH)、(C_f8\mu F)得到(f_{res}\approx1545Hz)。谐振频率必须在10倍电网频率与0.5倍开关频率之间即500Hz到5000Hz之间1545Hz满足要求且离两端都有足够距离。3.3 谐振问题与有源阻尼策略LCL滤波器最棘手的就是谐振峰。如果不用阻尼系统在谐振频率处有180°的相位跳变闭环控制很可能在这个频率附近发散。最简单的办法是把寄生电阻等效成阻尼但在仿真中这个电阻往往不够更实用的方法是有源阻尼通过在电流环控制中引入电容电流反馈等效成虚拟电阻来抑制谐振。Simulink里实现电容电流反馈有源阻尼很容易把滤波电容电流采出来乘以一个反馈系数(k_{ad})叠加到调制波给定上即可。需要调试的是(k_{ad})的数值我从0开始每次增加0.5观察并网电流波形。实测下来(k_{ad})太小时谐振显现为电流波形上的高频毛刺太大时则会导致电流相位滞后明显。最终我的(k_{ad})取在2左右谐波明显被压住波形也干净了。在仿真阶段用有源阻尼而不是真实电阻也便于后续如果要做硬件在环或者代码生成时直接移植。4. SVPWM调制从扇区判断到马鞍波的完整逻辑4.1 为什么SVPWM优于SPWMSVPWM空间矢量脉宽调制本质上是把三相逆变器的八个开关状态映射到静止αβ坐标系下的电压空间矢量通过相邻基本矢量和零矢量的时间组合在一个开关周期内合成任意方向和幅值的电压矢量。相比SPWMSVPWM的直流电压利用率更高线性调制范围从SPWM的约0.5倍直流母线电压提升到约0.577倍等效于约15%的提升。另外SVPWM产生的线电压谐波含量更低在一个开关周期内开关次数也更平均。这也是三相并网逆变器普遍采用SVPWM的原因。4.2 扇区判断与矢量作用时间SVPWM算法的第一步是把三相电压给定(u_a,u_b,u_c)变换到αβ坐标系。扇区判断的经典方法是用(u_\alpha)和(u_\beta)的组合逻辑。更工程化的做法是计算三个中间变量[ u_{ref1}u_\beta,\quad u_{ref2}\sqrt{3}u_\alpha-u_\beta,\quad u_{ref3}-\sqrt{3}u_\alpha-u_\beta ]然后根据它们的正负组合确定扇区。作用时间计算通过(X,Y,Z)中间变量实现[ X \frac{\sqrt{3}u_\beta T_s}{V_{dc}},\quad Y \frac{3u_\alpha\sqrt{3}u_\beta}{2V_{dc}}T_s,\quad Z \frac{-3u_\alpha\sqrt{3}u_\beta}{2V_{dc}}T_s ]不同扇区下的作用时间组合可以参考下表其中(T_1,T_2)分别是两个相邻非零矢量的作用时间(T_0)是零矢量作用时间扇区T1T2T0I-ZXTs-T1-T2IIZYTs-T1-T2IIIX-YTs-T1-T2IV-XZTs-T1-T2V-Y-ZTs-T1-T2VIY-XTs-T1-T2每相邻两个非零矢量夹60°六个扇区覆盖整个360°平面。零矢量的分配方式也影响调制效果我采用七段式对称调制零矢量在起始、中间、结束各出现一次这样在一个开关周期内是中心对称的谐波主要集中在开关频率及其倍数附近低频谐波更少。4.3 Simulink实现要点在Simulink里实现SVPWM我用的是MATLAB Function模块输入为αβ轴电压参考、直流母线电压、开关周期输出为三相占空比。整个流程是计算扇区→计算X/Y/Z→查表确定T1/T2→加上零矢量时间得到三相占空比→限幅到0到1之间。代码本身不长但要注意开关周期(T_s)和仿真步长的关系如果仿真步长取1e-6秒而开关周期是1e-4秒则每个PWM周期内SVPWM模块会被调用100次调制波的更新频率远高于开关频率这在实际中是不可能的。仿真中这么设置问题不大但如果目标是生成嵌入式代码就要求SVPWM的调用周期必须等于开关周期。我在这部分用了变步长求解器时踩过坑后来改成定步长2e-6秒才解决了波形在局部抖动的问题。另外补充一个物理层面的理解SVPWM输出的马鞍波并不是“坏波形”这正是三次谐波注入的结果。在相电压中包含一定比例的三次谐波可以让调制波峰值降低、同时不产生线电压谐波。SVPWM的实现过程中天然包含这个效果所以看调制波时看到马鞍形是对的不需要担心。5. 并网控制环路的搭建dq解耦与锁相环的配合5.1 为什么要在dq坐标系下做控制三相并网电流是50Hz交流量如果直接在abc坐标系下用PI控制器跟踪存在稳态误差。Park变换把三相电流变换到与电网电压同步旋转的dq坐标系后基波分量变成直流量PI控制器就能实现无静差跟踪。有功电流(i_d)和无功电流(i_q)也可以独立控制这正是光伏并网系统需要的——正常情况下(i_q)给定为0单位功率因数并网。5.2 锁相环电网电压相位跟踪Park变换需要电网电压的相位角这个角通过锁相环PLL获得。我在Simulink里直接用Simscape Electrical的PLL模块也可以自己搭一个基于αβ到dq变换的同步坐标系锁相环SRF-PLL。核心结构是把三相电网电压变换到dq坐标系调节(v_q)到0PI调节器的输出就是电网角频率的修正量积分得到相位角。实际调试中PLL最常遇到的是初始相位问题。仿真启动时电网电压的初始相位如果不是0而PLL从0开始追踪前几个周期电流会有一个大的冲击。解决方法是把电网电源模块的相位初始值设为0并让PLL在启动时快速锁相或者给电流环使能信号加一个延时等PLL锁定后再投入电流控制。我两种方法都试过延时使能更稳妥启动冲击电流可以控制在额定电流的1.2倍以内。5.3 电压外环与电流内环的配合控制环设计遵循经典的内外环结构电压环给定来自MPPT电流环给定来自电压环输出。电流环带宽要远高于电压环带宽以保证两个环时间尺度分离、互不干扰。我的设计经验是电流环PI参数基于逆变器数学模型直接推导由(L_1L_2)的总电感、开关周期和期望带宽计算PI增益然后手动微调电压环带宽取电流环的1/10到1/5电压环输出通常是电流的d轴给定。这里有一个关键的限幅器设置电压环输出给到电流环d轴参考时必须限制在有功电流的最大允许值内否则启动瞬间电压环饱和会让电流参考值过大电流环跟着饱和系统进入非线性状态后恢复很慢。我设置电压环输出限幅为0到1.2倍额定电流同时电流环输出即调制波参考限幅到0.9倍最大调制比保证SVPWM始终工作在线性调制区。说到这里我要特别强调一下dq轴解耦。如果不做解耦d轴和q轴电流会在动态过程中互相干扰最直观的表现是电网电压突然波动时无功电流会跟着有功电流一起跳。在Simulink中实现解耦很简单把耦合项(-\omega L i_q)和(\omega L i_d)分别前馈到d轴和q轴控制器输出即可。加上解耦后d轴和q轴的独立性明显改善这也是实际工程中必备的手段。6. Simulink建模全流程从空模型到波形正常6.1 模块选型与关键参数设置整个模型我用的模块清单大概是这样的模块选型关键参数光伏阵列Simscape Electrical PV Array24串2并约10kW逆变器Universal Bridge三相全桥IGBT/Diode直流母线电容Series RLC Branch4000μFESR取0.01ΩLCL滤波器Series RLC Branch/ Mutual InductanceL13mHL20.6mHCf8μFPLL3-Phase PLL带宽约20Hz控制器MATLAB Function / PI控制器按5.3节设计SVPWMMATLAB Function输出三相占空比直流母线电容的取值也是有讲究的。母线电容要在逆变器与光伏阵列之间承担瞬时功率平衡太小则母线电压波动大太大则电压环响应慢。工程经验是母线电容按每千瓦1000~2000μF选取我这里10kW取了4000μF实测母线电压波动约±3V无论是MPPT还是电流环都能正常稳定工作。还有一个容易忽略的点是电网侧参数的设置。Three-Phase Source模块要设置三相电压的幅值、频率、相位我用的是380Vrms线电压、50Hz、初始相位0。电网阻抗不能设成0我取了0.1Ω电阻和0.5mH电感否则仿真会出现数值病态问题。6.2 仿真步长与求解器设置仿真步长是这类电力电子仿真最容易出问题的地方。我建议用定步长求解器步长取2e-6秒固定步长开关频率10kHz对应100个步长足够用于PWM波形的生成同时也能保证电流环在2kHz以内信号不出现明显的离散化误差。相比之下变步长求解器虽然在某些场景下速度快但在PWM逆变器模型里会因为开关动作频繁触发步长收缩仿真速度反而更慢。使用定步长时还要注意一个细节所有连续积分器如PI控制器、电压环积分器必须设置合理的初始条件和积分限幅。尤其是电压环积分器启动时如果初始值太大会让电流参考值瞬间饱和系统很难进入正常工作点。我把电压环积分器初始值设为0积分限幅设为±50实测启动过程很平滑。6.3 运行与观测模型搭好后先分阶段验证第一步只跑光伏阵列导出I-V/P-V曲线第二步接入逆变器和SVPWM不给并网控制只检查直流侧到交流侧的开环波形第三步加电流环给定一个固定的电流参考最后才把MPPT和电压环全部闭合。每步都在Scope里观察波形确认无误后再进入下一层。波形观测上我习惯同时看直流母线电压、三相并网电流、MPPT功率、调制波四组信号。并网电流要看是否与电网电压同频同相这可以通过把电网电压除以一个增益后再和电流叠加显示在同一个Scope中判断MPPT功率要看是否平滑收敛到最大功率点附近稳态振荡幅度要在允许范围内。实测下来系统能在0.15s左右进入稳态MPPT追踪时间约0.3s并网电流THD约2.8%满足并网要求。7. 调试中遇到的那些“幽灵问题”及排查思路7.1 LCL谐振尖峰波形上的高频毛刺第一次给系统加LCL滤波器后并网电流波形上出现了明显的高频振荡毛刺频率大约在1.5kHz和设计谐振频率非常接近。这个现象很典型就是LCL谐振没有被阻尼住。我先尝试在电容支路串电阻取谐振频率处容抗的1/3即(R_d\approx1.4\Omega)毛刺明显减轻但电容支路损耗增大。改用电容电流有源阻尼后(k_{ad}2)的效果和串电阻接近而且不增加损耗。调试时可以从0开始逐步增大(k_{ad})观察毛刺何时消失同时注意不要调过头导致电流相位滞后。7.2 启动冲击电流与PLL锁定时间仿真启动时并网电流出现了一个很大的冲击尖峰接近额定电流的3倍。排查后发现是PLL锁定过程中Park变换的相位角还没跟上实际电网相位电流环错误地输出一个很大的调制波。我的处理方法是给电流内环的使能信号加0.05s的延时等PLL锁定后再放开。另一个辅助措施是把PLL的PI参数初值设置得更接近理论值加快锁相过程。7.3 MPPT振荡导致的母线电压波动MPPT启用之后直流母线电压出现了低频振荡频率大约几个赫兹功率曲线在最大功率点附近来回摆动。原因是PO算法的固定步长太大系统在最大功率点两侧来回跳。我改成变步长策略后问题解决当相邻两次功率变化小于2%时步长减半最小步长设为1V。这样一来动态响应和稳态精度都得到了保证。7.4 代数环与仿真发散在早期模型中我把MPPT的输出直接连接到电压环的参考端形成了一个代数环。Simulink会提示存在代数环仿真速度急剧下降严重时直接发散。解决办法是让MPPT模块变成状态保持型用persistent变量保存上一时刻的电压和功率值。该方案在离散求解器下不会产生代数环并且每一个MPPT周期只更新一次输出电压参考值这也和实际数字控制器的行为一致。7.5 C代码生成时的离散化陷阱如果这个模型后续要生成嵌入式C代码需要注意两点。第一必须使用离散PI控制器不能使用连续PI控制器否则代码生成会报错。第二SVPWM的占空比输出必须用零阶保持器锁存确保每个开关周期内占空比恒定。我最初没有加零阶保持器生成的代码占空比毛刺很大并网电流异常。加上零阶保持器并设置采样时间为开关周期后代码运行结果和仿真几乎一致。最后再分享一个调试技巧。遇到波形异常时我习惯把系统拆开看中间量调制波是否马鞍形、PLL角度是否线性上升、dq电流是否平滑。只要这些中间量正常问题一定出在某个具体的环节如果一上来就盯着并网电流看往往会被复合出来的异常波形带偏方向。单级式三相光伏并网系统的Simulink仿真搭起来工作量不小但只要把每个环节的原理吃透调试其实就是一个按图索骥的过程。
返回列表