一种基于迁徙策略的自适应粒子群算法

2019-12-17 09:23张红民巴忠镭孙成胜
重庆理工大学学报(自然科学) 2019年11期
关键词:输出功率极值阴影

张红民,巴忠镭,王 艳,孙成胜

(重庆理工大学 a.电气与电子工程学院; b.计算机科学与工程学院, 重庆 400054)

室外光伏阵列系统经过一段时间运行后,其表面会逐渐积聚灰尘。灰尘的覆盖影响光伏组件前盖玻璃的透光率,使被遮挡的部分接收光照强度减弱,造成局部阴影问题[1]。此时,光伏阵列的P-U曲线会由单峰特性变为多峰特性。传统的最大功率点跟踪算法(MPPT)如扰动观察法、电导增量法此时容易陷入局部极值点,无法追踪到真正的最大功率点[2]。针对这一问题,国内外学者提出了一些多峰MPPT算法。文献[4]将模糊逻辑控制器与扰动观察法结合,该算法可以降低搜索过程中的功率波动,但存在求解精度不足等问题。文献[5]研究了粒子群算法(PSO)在MPPT中的应用,PSO作为一种仿生算法,虽拥有较好的全局搜索能力,但存在收敛速度慢、精度不高、搜索早期容易陷入局部最优区域特点。文献[6]提出了基于自适应权重的粒子群算法,在运算过程中引入非线性动态惯性权重系数,有效地改善了系统在最大功率点附近的振荡现象,具有较强的鲁棒性,但能否应用于复杂结构的光伏阵列还需进一步研究。为解决粒子群算法寻优的不稳定问题,本文提出一种基于迁徙策略的自适应粒子群算法,其核心思想是对标准粒子群算法进行改进,在迭代过程中引入自适应系数和迁徙策略。仿真分析表明:改进后的粒子群算法得到的结果波动小,追踪到的功率精度更高。

1 局部阴影下光伏阵列特性分析

一般情况下,实际运行的光伏阵列由多个光伏组件串联,输出功率为所有组件输出功率之和,输出电流相同。当某一块光伏组件表面有灰尘沉积时,其所带来的局部阴影会使光伏组件输出电流下降,输出功率不平衡且出现多个极值点。

为验证局部阴影对光伏阵列输出功率及电流的影响,以3个光伏组件串联的光伏阵列为例,单个光伏组件参数如下:开路电压Uoc=39.6 V,短路电流Isc=9.21 A,最大功率点电压Ump=31.7 V,最大功率点电流Imp=8.68 A,最大输出功率UMPP=275 W,参考温度为25 ℃,参考光照为1 000 W/m2。分别在不同光照强度下进行仿真,3种光照状态如表1所示,光伏阵列仿真输出结果如图1所示。

表1 光照状态

由图1(a)(b)可知:当光伏阵列接收的光照强度相同时,P-U特性曲线及I-U特性曲线均为单峰值状,仅存在1个最大功率点。在光照状态2和3时,光伏组件的输出功率和输出电流均会降低,且曲线呈多峰值状。状态2下的P-U曲线出现2个峰值,状态3下的P-U曲线出现3个峰值,造成输出功率出现3个极值点。由此可知,当出现n种不同程度的局部阴影时,光伏阵列的P-U曲线也会出现n个峰值。传统的MPPT算法面对多峰问题,难以追踪到全局最大功率点,时常陷入局部最优,因此需要新的MPPT方法进行寻优。

图1 光伏阵列仿真输出特性曲线

2 基于迁徙策略的自适应粒子群算法

2.1 标准粒子群算法(PSO)

PSO算法是由Kennedy和Eberhart通过观察鸟类觅食行为提出的一种全局搜索算法。算法随机初始化一群粒子,赋予每个粒子1个随机速度与随机位置,每个粒子代表1个随机解,经过迭代找出最优解。迭代过程中,每个粒子通过跟踪个体极值与全局极值来完成更新。标准粒子群算法描述如下:

(1)

(2)

式中:k为迭代次数;ω为惯性权重;v为粒子速度;c1、c2为学习因子;r1、r2为0,1之间的随机数;Pid为个体极值;Ggd为全局极值;X为粒子位置。

标准粒子群算法存在着很多缺陷,如对环境的变化不敏感,常常会受到个体极值和全局极值的影响而陷入非最优区域,算法经常会发生早熟收敛等现象。针对上述问题,本文对算法的权重系数和惯性因子进行了改进,同时引入迁徙策略,提升算法的全局搜索能力。

2.2 自适应粒子群算法

PSO算法的速度迭代公式中存在3个参数:惯性权重ω、学习因子c1、c2。惯性权重决定了粒子先前的飞行速度对当前飞行速度的影响,适当的惯性权重可以平衡全局搜索和局部搜索能力。迭代初期采取较大的惯性权重增强全局搜索能力,迭代末期采用较小的惯性权重增强局部搜索能力。递减权值可分为线性递减与非线性递减,线性递减策略由于简单直观、收敛速度快和易于实现,采用较多。因此本文采取的是线性递减权值策略,随着迭代次数的增加,惯性权重系数ω逐渐减小,其形式为

(3)

式中:ωstart为惯性权重初始值,也是最大值;ωend为迭代结束时的惯性权重值,也是最小值;k为当前迭代次数,为最大迭代次数。

在PSO算法中,学习因子c1、c2分别代表了粒子的自我认识和社会认知,使粒子具备了自我总结和向优秀个体学习的能力。设置较大或较小的c1、c2值都不利于粒子的搜索。搜索前期粒子应注重自我认知,搜索末期粒子需要更关注社会信息。c1值在迭代中应由大到小,c2值则与之相反。本文据此设置学习因子为:

c1=2-sin((t*pi)/tmax)

(4)

c2=1+sin((t*pi)/tmax)

(5)

式中:t为当前迭代次数;tmax为最大迭代次数。改进后的速度迭代公式为

(6)

与标准粒子群算法相比,自适应粒子群算法的速度公式做到了随迭代次数变化而变化,其全局搜索能力有所提高,但面对一些复杂的多峰值函数曲线寻优问题时(例如局部阴影造成的光伏阵列输出特性曲线上出现多个峰值时),IPSO算法仍存在一些瑕疵,算法的跟踪精度不足、收敛速度慢等。光伏阵列在局部阴影的影响下,其非线性输出曲线会更加复杂多变,多个峰值的出现加大了全局寻优的困难,PSO和IPSO算法都会出现粒子早熟现象,跟踪陷入局部最优造成功率损失。

2.3 基于迁徙策略的自适应粒子群算法

PSO和IPSO算法中粒子种群的多样性直接影响算法早熟收敛及陷入局部极值的风险。算法在每次迭代时粒子都会参考自身的历史最优位置与群体最优位置,这种影响会使种群多样性在早期过快下降,算法陷入非最优区域。为了提高早期种群多样性,本文改进的算法在初期将n个粒子随机划分成s个子群,每个子群独立演化过程中采用了自适应系数,同时用评价算子P来判断子种群的多样性。

迁徙操作评价算子为

P=fitness(tbest)-fitness((t-1)best)

(7)

式中:t为迭代次数;fitness(t)为第t代子种群中最优个体适应度值,t>1。P值与子种群多样性呈正相关性,P值越大,子种群中个体多样性越高,不需要进行迁徙操作。若连续5代评价算子均小于临界值,则认为粒子发生早熟收敛现象,需进行迁徙操作,从预先设定的最优个体缓冲区中随机选择最优个体替代已发生收敛早熟的粒子。

在迁徙策略中,粒子群的迁徙满足如下条件:① 互斥,每个子种群会被随机分派一个索引,索引的互斥可以保证迁徙发生在不同子种群之间;② 移动,在种群更新的过程中,一些粒子要离开子种群,另外一些粒子要加入子种群,每个子种群粒子的数目在迁徙过程中是固定不变的。

在对子种群的数量进行设置时,应保持每个子群中的粒子数量维持在6~15个。设置子种群数量过少会造成每个子种群中粒子数少,内部信息交流困难;设置子种群数量过多,会造成迁徙过程缓慢,影响算法的收敛速度。

基于迁徙策略的自适应粒子群算法的流程如图2所示,描述如下:

步骤1初始化粒子群,随机生成所有粒子的速度与位置,划分子种群,种群规模s=mn,m为划分的子种群的个数,n为子种群包含的粒子数量;

步骤2更新惯性权重系数ω和学习因子c1、c2;

步骤3评价每一个粒子,找出每个粒子的个体极值Pid和群体极值Gid;

步骤4更新粒子个体极值与全局极值;

步骤5判断评价算子P是否小于临界值,若大于临界值,则继续执行步骤2;若连续5代均小于临界值,则执行迁徙操作;

步骤6判断是否满足算法结束条件,若满足,输出最终结果;若不满足,转步骤2。

图2 迁徙策略粒子群算法流程

2.4 算法测试

为验证本文提出的MIPSO算法性能,将其与标准PSO算法、IPSO算法进行对比。以局部阴影下的光伏阵列输出功率为目标函数,进行寻优测试实验。光伏阵列由3块光伏组件串联组成,每块光伏组件上接收的光照不相同,得到其功率输出曲线如图3。图3曲线中存在1个全局极值点,2个局部极值点。

PSO参数设置如下:PSO算法的参数设置如下:惯性权重ω=0.9,学习因子c1=c2=1,粒子总数量num=40,最大迭代次数gen=100;IPSO算法参数设置如下:惯性权重0.9递减到0.4,学习因子c1由2递减到1,学习因子c2由1递增到2,粒子数量和迭代次数与PSO算法一致;MIPSO算法参数设置如下:子种群个数l=5,迁徙率r=0.3,评价算子临界值P=1,其余参数与IPSO算法一致。

图3 光伏阵列P-U输出特性

分别进行100次重复实验,统计3种算法寻找到极值点,算法结果统计与比较见表2。

观察表2发现:MIPSO算法找到的最优值为533.141 7,最劣值为533.100 8,两者的误差为0.040 9,找到全局极值点的成功率为100%,所有测试结果均成功跳出了局部极值点。IPSO算法找到的最优值为533.141 7,最劣值为460.616 2,该点为局部极值点,其找到全局极值点的成功率为90%,PSO算法找到的最优值和最劣值与IPSO算法测试结果一致,但PSO算法找到的结果有18%的几率会是局部极值点,是3种算法中跳出局部能力最弱的。以上结果表明:MIPSO算法在寻找全局极值的能力上优于其余两种算法,跳出局部极值能力强。

表2 算法结果统计与比较

3 仿真结果与分析

基于上述分析,在Matlab中搭建多峰MPPT仿真模型,仿真模型包括由3块光伏组件串联组成的光伏阵列模块,Boost电路,PWM模块,PI调节器。

图4 MPPT仿真模型

由图3可知,局部阴影下光伏组件的最大输出功率为533.1W。采用标准粒子群算法(PSO)和迁徙策略自适应粒子群算法(MIPSO)跟踪结果分别如图5、6所示。

图5 标准粒子群算法追踪结果

由图5可以看出:标准粒子群算法在0.6 s追踪到最大功率,系统最大输出功率为529.8 W,与理想的最大功率533.1 W相比,功率减少3.3 W,有轻微能量损失,且追踪过程中输出功率波动大。而采用迁徙策略自适应粒子群算法时,观察图6可知,算法在0.38 s时达到稳定状态,相比于标准粒子群算法,追踪时间提高了36.6%,而且追踪到的最大功率与理论最大功率无差别,功率追踪曲线振荡小,输出波形平稳。

图6 迁徙策略粒子群算法追踪结果

由于外界环境复杂多变,导致光伏系统日常运行中所受的阴影条件时刻发生着变化,因此十分有必要对动态阴影下的光伏MPPT进行研究。为此本文设置的动态局部阴影条件如下:在初始时刻,3块光伏阵列中PV1和PV2接收的光照强度均为1 000 W/m2,PV3为600 W/m2。1.5s时光照突变,PV2接收的光照强度由1 000 W/m2变为800 W/m2。系统检测到光照突变,算法重启。经过0.36 s后重新追踪到新的最大功率点为533.1 W,与理论分析的最大功率相差不大,可见改进后的粒子群算法在动态阴影下也具有良好的效果。图7为基于迁徙策略的粒子群算法面对阴影突变情况下的跟踪结果。

图7 动态阴影下的基于迁徙策略的粒子群算法

4 结论

本文首先分析了局部阴影下的光伏阵列输出功率特性,针对标准粒子群算法面对P-U曲线多峰特性问题容易发生早熟收敛现象,提出了一种基于迁徙策略的自适应粒子群算法。算法通过评价算子和随机迁徙解决了种群早期多样性不足的问题,提高了算法的搜索精度,有效地避免了粒子早熟现象,通过仿真实验分析得出如下结论:

1) 标准粒子群算法在早期容易发生收敛,无法做到全局最优,且搜索精度不高,搜索波动大;

2) 本文所提算法通过引入迁徙策略,增加了粒子早期种群的多样性,配合自适应系数,基本不会丢失最优解,搜索过程功率波动小,无论在静态阴影还是动态阴影条件下都能快速准确追踪到最大功率点,提高光伏发电效率。

猜你喜欢
输出功率极值阴影
工程应用中的光伏组件输出功率衰减率评估
极值点带你去“漂移”
极值点偏移拦路,三法可取
你来了,草就没有了阴影
极值点偏移问题的解法
一类“极值点偏移”问题的解法与反思
让光“驱走”阴影
阴影魔怪
基于马尔可夫链的光伏发电系统输出功率短期预测方法