一种基于改进萤火虫算法的光伏MPPT控制方法
2020-08-26张鹏罗正华唐成达黄建刚
张鹏 罗正华 唐成达 黄建刚
摘 要:局部阴影条件下,光伏发电系统输出功率降低且P-U曲线存在多峰值,标准萤火虫算法易陷入局部极值且收敛后期易发生震荡现象。针对这一问题,提出一种基于模糊-萤火虫算法(FFA)的MPPT算法,利用模糊控制器自适应调整随机移动步长因子α。算法运行前期赋予较大α值,萤火虫能快速向最优值附近移动,后期快速减小α值,避免震荡现象,使算法能稳定收敛。通过在MATLAB/Simulink下对FFA算法建模、仿真,并对比了标准萤火虫算法(FA)仿真结果,实验证明萤火虫算法与模糊控制技术相结合,能快速、准确、稳定的收敛到最大功率点,实现光伏发电最大效益输出。
关键词:最大功率点跟踪;局部阴影;萤火虫算法;模糊控制
DOI:10.15938/j.jhust.2020.03.009
中图分类号: TM615
文献标志码: A
文章编号: 1007-2683(2020)03-0053-08
Abstract:Under partially shaded conditions, the power of the photovoltaic system becomes lower and the P-U characteristic curve has multiple peaks. The standard firefly algorithm will fail to work and is prone to oscillation during the final phase of convergence. To solve this problem, the MPPT algorithm based on fuzzy-firefly algorithm (FFA) is proposed, which uses fuzzy controller to adaptively adjust the factor of random moving step. In the early stage of the algorithm,the fuzzy controller output a large α so that firefly can quickly move to the vicinity of the optimal value. In the later stage of algorithm, the value of α decrease sharply to avoid oscillation, so that the algorithm can converge stably. By modeling and simulating in the MATLAB/Simulink and comparing the simulation results of FFA with the standard firefly algorithm (FA), the experiment proves that the FFA can quickly, accurately and stably converge to the MPP so that the PV system can output the maximum power.
Keywords:maximum power point tracking (MPPT); partial shading; firefly algorithm (FA); fuzzy control
0 引 言
隨着全球变暖以及能源危机的日益加重,人们对新型清洁能源的开发与利用越来越迫切。可再生能源被认为是产生清洁能源的技术选择。丰富的太阳能资源逐渐成为各国新能源开发和应用的主要选择[1]。为了获得光伏发电的最大功率输出,最大功率点跟踪(Maximum Power Point Tracking,MPPT)技术应运而生,并产生了众多成熟算法。如Buciarelli等人提出的扰动观察法(P&O)和Hussein等人提出的增量电导法(IncCond)。但上述算法均只适用于均匀光照条件下,即每个光伏板接受相同的光照强度。当周围环境出现阴影情况如光伏板表面有灰尘,树木遮挡等情况时,光伏系统输出P-U曲线会出现多个峰值,上述传统MPPT算法易陷入局部峰值而不能追踪到最大功率点,造成系统功率失配和功率浪费,甚至会影响光伏阵列的寿命[2-6]。因此,如何解决局部阴影下的MPPT显得至关重要。
为此,国内外研究人员进行了大量研究。文[7-9]利用蚁群算法对MPPT进行研究,该算法搜索精确度高,不易陷入局部最优,但搜索速度缓慢。文[10-11]利用遗传算法对MPPT进行研究,该算法常用于无遮挡情况,对多峰值问题解决效果一般。文[12-14]利用粒子群算法对MPPT进行研究,该算法是研究MPPT的主要方法之一,但该算法中粒子位置是随机产生的,容易产生丢失现象,最终会导致跟踪失败。文[15-18]采用神经网络算法进行阴影条件下的MPPT,运算速度快,效率高,但可能因训练数据的数量不足而陷入局部极值点。
針对这些问题,本文提出一种基于模糊-萤火虫(FFA)算法的MPPT算法。针对标准萤火虫算法易陷入局部极值以及后期易发生震荡的问题,引入模糊控制器来优化萤火虫算法中的随机移动步长因子α,在局部阴影以及光照强度发生突变时,能够实时调整α,使算法快速收敛到全局最大值。结果表明,在局部阴影情况下,FFA算法能够快速、准确的收敛到全局最大功率点,使得光伏系统输出功率得到最大化利用。本文利用MATLAB/Simulink仿真软件搭建光伏发电系统的MPPT仿真模型,并利用仿真结果验证了基于模糊-萤火虫算法的MPPT算法的可行性。
1 局部阴影下的光伏系统特性
1.1 光伏电池模块
光伏电池通过光电效应将太阳能转换为电能进行发电,其光生电流与光照强度成比例关系。单个光伏电池只能产生0.5~0.8V电压,故实际中通常将多个光伏电池进行串并联成光伏模块。单个光伏电池的等效电路图如图1所示[19]。
其输出特性方程如式(1)所示。
式中:Ipv为光生电流;Io为二极管反向饱和电流;q为单位电子电荷量;A为二极管特性拟合系数;K为玻尔兹曼常数;T为电池工作绝对温度值;Rs为串联电阻,其与表层电阻、电极接触电阻和材料体电阻等有关;Rsh为并联电阻,其与漏电流有关。
1.2 局部阴影下的光伏系统
在实际应用中,根据功率需求,常常需要将多个光伏模块进行串并联为光伏阵列以获得足够大的输出电压。此情况下,如果所有模块均接受相同的阳光辐射,则阵列输出最大功率为所有模块最大功率之和。但当出现局部阴影时,光伏阵列的P-U曲线表现为多峰值状,且最大功率也随之下降。本文将5个光伏电池串联,且每个电池均并联旁路二极管,以减小热斑效应,防止电流倒流。根据5个光伏电池的光照强度,分为4种情况研究其输出特性,模块光照强度分布如表1所示。输出特性P-U曲线和I-U曲线分别如图2和图3所示(温度均为25℃)。
从图2和图3可以看出,当光伏阵列接受均匀光照强度时(分布1),P-U曲线只有一个峰值,I-U曲线只有一个拐点;当出现局部阴影情况,即光伏阵列中各组件接受不同的光照强度时(分布2、分布3、分布4),P-U曲线会出现多峰值情况,I-U曲线呈现出几个拐点,且峰值个数和拐点个数与阵列中接受不同光照强度的组件数有关。这种情况下常规MPPT算法极易陷入局部峰值而不能追踪到最大功率点,需研究新的智能算法。
2 模糊-萤火虫算法分析
2.1 标准萤火虫算法(FA)
萤火虫算法是由剑桥学者Yang Xin.she[20] 在2008年提出,该算法受自然界中萤火虫的社会行为所启发,通过模拟自然界萤火虫的群体行为来实现优化。算法通过学习萤火虫相互之间沟通、求偶的方式,达到目标函数优化与求解的过程。在算法中,萤火虫通过比较相互之间的发光亮度来决定其位置移动,遵循亮度低的萤火虫向亮度高的移动,而亮度最高的则做随机移动,最终萤火虫将汇聚到全局亮度最高点,也即目标函数最大点,达到全局寻优的目的。
算法遵循以下规则:
1)所有萤火虫无性别之分。
2)发光亮度低的萤火虫被亮度高的萤火虫吸引。吸引力与发光亮度成正比,且随着距离增大而减小。亮度高的萤火虫做随机移动。
3)萤火虫的发光亮度由目标函数决定。
标准萤火虫算法步骤如下:
1)初始化阶段:输入待优化函数I=f(x),即目标函数,取输出功率P为目标函数,即P=f(D)。初始化萤火虫数目n,最大迭代次数maxGen,萤火虫位置xi(i=1,2,3,…,n),随机移动步长因子α,最大吸引度β0,光强吸收系数γ,并计算I0=f(x)。
2)更新阶段:在每一次迭代中,对于所有萤火虫n,计算各自发光亮度Ii,(i=1∶n),计算个体之间的距离d(i,j),计算之间相对吸引度β。若Ii 3)输出阶段:当迭代次数达到最大迭代次数时,萤火虫聚集在最优位置,此时输出目标函数最优值处的萤火虫位置,即为最优占空比D。 其中:α∈[0,1),β0为光源处(d(i,j)=0)萤火虫的吸引度,γ∈[0,∞),I0为萤火虫最大发光亮度,即自身(d(i,j)=0)的发光亮度,萤火虫i与j间的距离d(i,j)定义为: 2.2 萤火虫算法的改进 从式(4)中可以看出,萤火虫位置的移动包含两部分:基于历史信息的移动(前两项)与随机移动(后一项)方式。随机移动部分由参数α控制。在标准FA算法中,α为固定值,在迭代过程中始终保持初始化时的数值,其值根据经验或反复试验来确定。若α值初始设置较大,萤火虫具有较强的全局搜索能力,能以较大步长随机搜索周围空间。在迭代初期,萤火虫能快速向全局最优值移动;但在迭代后期,当萤火虫接近最优值并向其移动时,可能出现因移动步长过大而跳过了最优值的情况,此种情况若多次出现则会造成函数值在最优解附近震荡,影响算法的收敛精度。若α值初始设置较小,随机移动步长减小,萤火虫具有较强的局部搜索能力。因此在迭代后期当萤火虫向最优值移动时,较小的移动步长能避免发生震荡;但在迭代初期,因随机步长的减小,萤火虫随机搜索空间变小,且易陷入局部极值,全局搜索能力减弱,搜索时间增长,算法收敛速度降低。