改进量子粒子算法在光伏最大功率点中应用
朱娟娟;王伟;乔焰;王月康;周海鹏;李旸
【摘 要】光伏阵列的P-U特性曲线在局部遮阴环境(如树木遮挡、云层变化等)下呈现多个极值点,这会导致传统的最大功率点跟踪(maximum power point tracking,MPPT)算法失效.基于此提出了一种改进量子粒子算法的最大功率点跟踪控制方法.该算法采用量子δ势阱模型,同时引入锦标赛选择机制和随机加权平均最好位置操作,提高搜索效率的同时保持了种多样性.在MATLAB中建立基本粒子、量子粒子、改进量子粒子三种算法仿真研究.结果表明,对比其他两种粒子算法,该算法能更为精准的跟踪光伏阵列最大功率点,有效地提高了光伏阵列的输出效率.
【期刊名称】《电子世界》
【年(卷),期】2016(000)018
【总页数】3页(P69-71)
【关键词】光伏系统;局部遮阴;最大功率点跟踪;粒子优化算法
【作 者】朱娟娟;王伟;乔焰;王月康;周海鹏;李旸
【作者单位】安徽农业大学信息与计算机学院 农业部农业物联网技术集成与应用重点实验室;安徽农业大学信息与计算机学院 农业部农业物联网技术集成与应用重点实验室;安徽农业大学信息与计算机学院 农业部农业物联网技术集成与应用重点实验室;安徽农业大学信息与计算机学院 农业部农业物联网技术集成与应用重点实验室;安徽农业大学信息与计算机学院 农业部农业物联网技术集成与应用重点实验室;安徽农业大学信息与计算机学院 农业部农业物联网技术集成与应用重点实验室
【正文语种】中 文
随着全球能源危机的加剧以及人们对低碳环保生活理念的渴求,可再生能源的开拓与探索早已成为研究的重点领域。在所有可再生能源中,太阳能具有取之不尽、用之不竭、能量巨大、安全无污染等诸多优点,堪称理想能源。作为太阳能利用的主要形式,光伏发电的开发与设计一直是全世界的热门方向[1]。由于单体光伏组件发电容量有限,在实际应用中都是由多个单体光伏组件串联形成光伏阵列。当光伏阵列中各单体组件均匀接收太阳能辐射时,其输出功率呈单峰状曲线。然而,受现实客观因素诸如树木遮挡、云层变化等影响,光
伏阵列各个部分接收光照强度不均等时,整个光伏阵列的输出功率会呈现多个峰值点。传统的最大功率点跟踪算法在解决这类多峰极值点时会失效[2],不能快速准确的跟踪到最大功率点,造成太阳能发电系统输出功率的损耗。针对光伏阵列的MPPT优化问题,体智能算法在这方面的研究越来越普及。而其中,粒子算法以其实现容易、参数少、收敛快等优点尤其受到广泛重视。文献[3]采用粒子及其改进算法搜索局部遮阴情况下的最大功率点,均取得了不错的效果。但粒子算法本身存在着“早熟”收敛、常仅获得局部最优解[4]等缺点。
为了更快速准确的获得局部遮阴情况下的光伏阵列最大功率点,提高光伏阵列输出效率,并克服标准粒子算法体智能程度低,协同搜索能力差[5]等缺陷,本文提出一种改进的量子粒子(MQPSO)算法,并同基本粒子(PSO)、量子粒子(QPSO)两种算法在MPPT中的应用进行对比仿真实验,验证本算法的有效性。
1.1 基于MATLAB的光伏电池通用数学模型
本文中,光伏电池采用工程模型[6],光伏电池I-V 方程简化如下式:
其中,是电池生产商提供的标准电气参数,分别是光伏电池的短路电流、开路电压、额定电流及额定电压。I、V为光伏电池的输出电流和电压。
在实际应用环境中,这些标准参数需要根据光照强度和温度进行补偿修正,令:
其中,为标准条件下光照强度和温度,S、T为实际测量条件下的光照强度和温度。
电流修正值为:
电压修正值为:
式中,分别是实际测量条件下的短路电流、最大功率电流、开路电压、最大功率电压的修正值[7]。修正系数,,e为自然对数的底数。
那么,光伏阵列(由K块单体光伏电池串联)的MPPT问题目标函数为:
1.2 量子粒子算法描述
以孙俊博士等代表的国内学者从量子力学的角度出发,利用量子侧不转原理来描述粒子的运
动状态,建立了一种新的PSO(Particle Swarm Optimization, PSO)算法模型,该模型是以δ势阱为基础,认为粒子具有量子的行为,并据此提出了量子粒子算法[8]。在量子空间中,粒子的聚集性通过在粒子运动中心存在的Pi点吸引势产生的束缚态来描述,而处于量子束缚态的粒子可以以一定的概率密度出现在可行解的任何点[9],因此搜索过程中的粒子每个迭代步的搜索空间可以覆盖整个可行解空间,算法的全局搜索性能优于标准PSO算法,且体智能化程度高,协同搜索能力强[5]。
设搜索空间为j维,则基于δ势阱模型的粒子位置更新公式如式(8)-(11)所示:
其中:为第t+1代种的第i个粒子位置的第j维分量;γ为收缩扩张系数,采用线性递减策略;为第t代种的第i个粒子局部吸引子的第j维分量;为第t代种平均最好位置的第j维分量;t是当前迭代次数,是最大迭代次数;i,j分别为粒子序号和维数序号,N是种规模;D是粒子维数;rand,u均为服从(0,1)均匀分布的随机数。
QPSO 算法详细描述如下:
Initialize X; % 在可行解空间中初始化种粒子位置
for t = 1: t_max % 循环开始
γ= (1.0 - 0.5)*(t_max - t)/t_max + 0.5% 收缩-扩张系数γ从1.0到0.5线性递减
mbest=mean(X) % 计算粒子种的平均最好位置
for i = 1 to 种规模 N
if f (Xi) > f (Pi) then Pi= Xi% P保存种个体最优值
Pg= max (Pi) % Pg保存体最优值
for j = 1 to 粒子维度 D
最漂亮的av
u = rand (0, 1) v= rand (0, 1)
p = u*Pid+(1-u) * Pg% 局部吸引子坐标公式
if v >= 0.5 % 根据位置更新公式计算粒子新位置
Xid= p+β*abs(mbest-Xid)*ln(1/v)
else
Xid= p-β*abs(mbest-Xid)*ln(1/v)
将更新后的粒子位置限制在搜索范围中;
如果达到指定的迭代次数或满足结束条件则算法结束,否则进入下一次迭代循环。
2.1 算法基本思想
QPSO算法的思想来源于量子力学和基本PSO模型。它具有较强的全局收敛性,控制参数更少,寻优能力更强。但是,与其他进化算法一样,也会遇到局部极值的问题,算法后期种多样性减少。
为此,本文将从两个方面对QPSO算法进行改进,避免QPSO算法后期陷入局部最优值和多样性减少的问题。一是从式(9)中的Pg入手,采用锦标赛选择法[10]来决定Pg的取值;二是修改式(11)中的mbestt取种粒子平均位置的做法,利用随机性原理,为每个粒子产生一个随机贡献率,得到随机加权平均最优位置,记为avgmbestt[11]。
2.2 改进部分概述
2.2.1 QPSO算法中引入锦标赛选择操作
在锦标赛选择法中,首先随机产生一定数目的个体,称为竞赛规模;其次将最优个体选做父个体。重复前面两步,直至完成个体的选择。在本文中,竞赛规模设为1,每次随机的从种中挑选出一个个体k,根据目标函数计算其值,并与当前粒子的目标函数值相比较。如果好于当前粒子的目标函数值,则吸引子Pi由Pi和Pk共同决定;否则,Pi由Pi和Pg决定。其伪代码如下:
Selection_T:
k=ceil×(N,1); % 从种N个粒子随机产生一个
if f (Pk) > f (Pi) then T= Pk% 选择操作
else T=Pg
end if % 选择操作结束
Return T
通过选择操作选出T后,式(9)变为:
2.2.2 QPSO算法中引入随机加权平均最优位置
QPSO算法中的平均最优位置mbestt是对当前体的每个粒子位置均值得到,即每个粒子的位置对mbestt的贡献全部一致。这里将对mbestt进行修改,利用随机性原理,为粒子种产生一个随机贡献度序列,与当前粒子的位置共同得到随机加权平均最优位置avgmbestt。具体做法如下:
R(t)是在[0,1]区间上产生的随机数列,贡献度向量是R(t)经过归一化处理得到的随机数列。随机加权平均最优位置avgmbestt由贡献度和当前粒子位置相乘后相加得到。那么式(8)变为:
2.3 算法流程
1) 设置光伏阵列的MPPT模型参数,利用算法初始化产生Vm附近的D维电压粒子,并根据输入S、T及目标函数式(7)计算对应粒子的输出功率;
2) 初始化每个粒子的个体最优Pbest、体最优Pg以及Pk;
3) 收缩扩张系数γ随迭代次数从1.0到0.5线性减小;
4) 根据式(15)计算种的随机加权平均最好位置avgmbestt,并利用式(16)更新每个粒子的位置(须限制在(0,Voc)位置范围内),并根据目标函数计算每个粒子更新后的输出值;
5) 将每个粒子更新位置后的覆盖率与Pbest对应的覆盖率相比较,如果前者较大,则更新Pbest;
6) 将种中的每个粒子的个体最优Pbest对应的覆盖率与Pg对应的覆盖率相比较,如果前者较大,则更新Pg;
7) 如果循环未达到预设最大迭代次数,则返回2);否则算法结束,并返回体最优分布。
3.1 MATLAB仿真及结果
根据1.1节光伏电池的数学模型,电池板的固有参数如下: