一种基于粒子群优化的光伏最大功率点跟踪的控制方法及装置与流程

文档序号:12270343阅读:334来源:国知局
一种基于粒子群优化的光伏最大功率点跟踪的控制方法及装置与流程

本发明涉及太阳能光伏发电领域,尤其涉及一种基于粒子群优化的光伏最大功率点跟踪的控制方法及装置。



背景技术:

在局部阴影条件下,光伏阵列的P-U曲线由单峰值变为多峰值,传统的最大功率点跟踪方法只能追踪到其中一个局部极值点而失效。局部阴影随时可能发生,大大降低系统效率,因此,必须提出有效的多峰值情况下的全局MPPT方法。

针对该问题,现有技术中

1、采用采用并联功率补偿法,通过增加功率补偿单元消除多峰值现象,该方法简单可行,但系统结构复杂,成本较高。

2、采用复合MPPT算法,即先利用等效负载对最大功率点进行粗略定位,再利用传统单峰值MPPT方法进行精确跟踪。但等效负载法需要在线测量开路电压和短路电流,对光伏组件的参数依赖性较大,而传统单峰值MPPT方法稳态时功率振荡,增加功率损失。

3、采用斐波那契(Fibonacci)搜索法,该方法收敛速度较慢,实用性不强。近年来,PSO算法因算法简单,无需进行交叉和变异,在最大功率跟踪控制中得到应用,但传统算法搜索速度慢,随机参数多,存在陷入局部极值点的可能。



技术实现要素:

本发明提供一种基于粒子群优化的光伏最大功率点跟踪的控制方法及装置,解决现有技术中搜索速度慢,随机参数多,存在陷入局部极值点的可能的技术问题。

本发明的目的是通过以下技术方案实现的:

一种基于粒子群优化的光伏最大功率点跟踪的控制方法,包括:

根据光伏阵列的串联模块个数m、光伏组件开路电压Uoc_module,对粒子群参数进行初始化,其中,所述粒子群参数包括粒子个数、粒子初始位置、惯性权重ω的取值范围、自我认知因子c1的取值范围、社会认知因子c2的取值范围和最大迭代次数,粒子位置为占空比d,粒子速度为占空比变化量Δd;

根据各个粒子的位置,计算各个粒子的适应度值,适应度值为光伏阵列的输出功率;

根据输出功率,获取各个粒子的初始个体最优值和全局最优值;

根据个体最优值、全局最优值、惯性权重、自我认知因子和社会认知因子,更新各个粒子的位置和速度,更新各个粒子的位置和速度;

根据更新后的粒子位置,重新计算各个粒子的适应度值;

对比各个粒子的个体最优值对应的适应度值和重新计算的各个粒子的适应度值,更新各个粒子的个体最优值和全局最优值;

计算粒子位置的标准差,判断粒子位置的标准差是否小于预设阈值、迭代次数是否达到最大迭代次数;

当粒子位置的标准差小于预设阈值或迭代次数达到最大迭代次数时,根据当前的全局最优值,输出占空比控制信号,控制光伏阵列工作,使其稳定工作在最大功率点;当粒子位置的标准差不小于预设阈值且迭代次数小于最大迭代次数时,开始从根据个体最优值、全局最优值、惯性权重、自我认知因子和社会认知因子,更新各个粒子的位置和速度步骤执行。

一种基于粒子群优化的光伏最大功率点跟踪的控制装置,包括:

初始化模块,用于根据光伏阵列的串联模块个数m、光伏组件开路电压Uoc_module,对粒子群参数进行初始化,其中,所述粒子群参数包括粒子个数、粒子初始位置、惯性权重ω的取值范围、自我认知因子c1的取值范围、社会认知因子c2的取值范围和最大迭代次数,粒子位置为占空比d,粒子速度为占空比变化量Δd;

第一计算模块,用于根据各个粒子的位置,计算各个粒子的适应度值,适应度值为光伏阵列的输出功率;,计算各个粒子的适应度值,适应度值为光伏阵列的输出功率;

第二计算模块,根据输出功率,获取各个粒子的初始个体最优值和全局最优值;

第一更新计算模块,用于根据个体最优值、全局最优值、惯性权重、自我认知因子和社会认知因子,更新各个粒子的位置和速度;

第三计算模块,用于根据更新后的粒子位置,重新计算各个粒子的适应度值;

第二更新计算模块,用于对比各个粒子的个体最优值对应的适应度值和重新计算的各个粒子的适应度值,更新各个粒子的个体最优值和全局最优值;

标准差计算模块,用于计算粒子位置的标准差,判断粒子位置的标准差是否小于预设阈值、迭代次数是否达到最大迭代次数;

控制执行模块,用于当粒子位置的标准差小于预设阈值或迭代次数达到最大迭代次数时,根据当前的全局最优值,及输出占空比控制信号,控制光伏阵列工作,使其稳定工作在最大功率点;当粒子位置的标准差不小于预设阈值且迭代次数小于最大迭代次数时,还用于指示所述第一更新计算模块继续执行操作。

本发明实施例提供的一种基于粒子群优化的光伏最大功率点跟踪的控制方法,根据光伏阵列的串联模块个数、光伏组件开路电压,对粒子群参数进行初始化;根据各个粒子的位置,计算各个粒子的适应度值;根据输出功率,获取各个粒子的初始个体最优值和全局最优值;根据个体最优值、全局最优值、惯性权重、自我认知因子和社会认知因子,更新各个粒子的位置和速度,更新各个粒子的位置和速度;根据更新后的粒子位置,重新计算各个粒子的适应度值;对比各个粒子的个体最优值对应的适应度值和重新计算的各个粒子的适应度值,更新各个粒子的个体最优值和全局最优值;计算粒子位置的标准差,判断粒子位置的标准差是否小于预设阈值、迭代次数是否达到最大迭代次数;当粒子位置的标准差小于预设阈值或迭代次数达到最大迭代次数时,根据当前的全局最优值,即输出占空比控制信号,控制光伏阵列工作,使其稳定工作在最大功率点。本发明实施例以变换器的占空比为粒子,初始化将粒子均匀分散在可能的极值点处,线性调整惯性权重、学习因子,并通过引入反正切函数,对传统的粒子群速度更新进行修改,单独限制每个粒子的速度。提升了粒子群算法的收敛速度,减小了跟踪过程的振荡,使得阴影变化时能快速跟踪到新的最大功率点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可根据这些附图获得其他的附图。

图1为本发明实施例的光伏最大功率跟踪系统的电路结构示意图;

图2为本发明实施例的光伏阵列的结构示意图;

图3为本发明实施例的一种基于粒子群优化的光伏最大功率点跟踪的控制方法的流程图;

图4为本发明实施例的一种基于粒子群优化的光伏最大功率点跟踪的控制装置的结构示意图;

图5为本发明实施例的一种基于粒子群优化的光伏最大功率点跟踪的控制装置中初始化模块的结构示意图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

如图1所示,为光伏最大功率跟踪(Maximum Power Point Tracking,MPPT)系统的电路结构示意图,MPPT控制器通过采样光伏阵列的输出电流IPV和输出电压UPV,输出占空比控制信号,控制光伏阵列工作,使其稳定工作在最大功率点。由图1中的Boost变换器的输入输出关系可知:

Boost电路的等效电阳则占空比可表达为相应的,最大占空比最小占空比R为负载电阻,可见,通过调节占空比d可使Boost电路的等效电阻与光伏等效电阻相匹配,从而实现最大功率跟踪。下面将占空比直接作为粒子,并详细介绍本发明实施例提供的一种基于粒子群优化的光伏最大功率点跟踪的控制方法,如图3所示,包括:

步骤301、根据光伏阵列的串联模块个数、光伏组件开路电压,对粒子群参数进行初始化;

其中,所述粒子群参数包括粒子个数、粒子初始位置、惯性权重ω的取值范围、自我认知因子c1的取值范围、社会认知因子c2的取值范围和最大迭代次数,粒子位置di为占空比d,粒子速度vi为占空比变化量Δd;

步骤302、根据各个粒子的位置,计算各个粒子的适应度值,适应度值为光伏阵列的输出功率;

步骤303、根据输出功率,获取各个粒子的初始个体最优值和全局最优值;

步骤304、根据个体最优值、全局最优值、惯性权重、自我认知因子和社会认知因子,更新各个粒子的位置和速度;

步骤305、根据更新后的粒子位置,重新计算各个粒子的适应度值;

步骤306、对比各个粒子的个体最优值对应的适应度值和重新计算的各个粒子的适应度值,更新各个粒子的个体最优值和全局最优值;

步骤307、计算粒子位置的标准差,判断粒子位置的标准差是否小于预设阈值或迭代次数是否达到最大迭代次数;

步骤308、当粒子位置的标准差小于预设阈值或迭代次数达到最大迭代次数时,根据当前的全局最优值,即输出占空比控制信号,控制光伏阵列工作,使其稳定工作在最大功率点。

步骤308还存在另外一种情况为当粒子位置的标准差不小于预设阈值且迭代次数小于最大迭代次数时,跳转至步骤304继续执行。

最大功率点随着外界条件的变化而变化,当阴影状况发生变化时,终止的算法需要重新启动,以便追踪到新的最大功率点,因此,步骤308之后,还可以包括:

当判断出光伏阵列的实际输出功率Preal与所述最大功率点Pm之间的差值大于预设的输出功率变换量阈值ΔP时,跳转至步骤301继续执行。

步骤301还可以包括:

步骤301-1、确定粒子个数等于光伏阵列的串联模块个数m;

其中,在阴影条件下,对于m个串联模块的光伏阵列,最多存在m个最大功率峰值点,因此粒子的个数设置为光伏阵列的串联支路数m,如图2所示为光伏阵列结构示意图,图中光伏阵列的串联模块个数为3,相应地,粒子个数可设为3。

步骤301-2、将粒子初始位置随机均匀分布,或者,将粒子初始位置均匀分布在理论极值点处,所述理论极值点为数值等于0.8*Uoc_module整数倍的光伏阵列输出电压对应的占空比;

其中,按照理论仿真结论,光伏阵列的P-U曲线的多峰值发生在0.8倍的光伏组件开路电压的整数倍(即0.8*Uoc-module),因此,通过将粒子初始位置均匀分布在理论极值点处,将会大大缩短搜索时间(因为实际的极值点与理论极值点偏差不大)。

步骤301-3、惯性权重ω的取值范围为0.1至1;

步骤301-4、自我认知因子c1的取值范围为1至2;

步骤301-5、社会认知因子c2的取值范围为1至2;

步骤301-6、最大迭代次数为30。

本发明实施例中,惯性权重ω,自我认知因子c1,社会认知因子c2的选择对算法的计算过程影响很大,ω决定粒子继承飞行速度,影响算法的收敛,为加快算法收敛速度,ω应随着迭代的进行对速度的影响越来越小。在本发明的初始阶段,设置较大的惯性权重ω,使算法不容易陷入局部最优,随着迭代的进行,逐渐减小ω使算法具有较强精准搜索能力。自我认知因子c1和社会认知因子c2决定了粒子飞行的方向。当c1>c2时,向个体最优的方向靠近,而c1<c2时,向全局最优值的方向靠近。为此,本发明实施例中,对ω定义了线性递减函数,对c2、c2则分别定义了线性递减和线性递增的函数,相应地,步骤304之前,及步骤303之后,还可以包括:

步骤303-1、根据更新惯性权重ω,其中,ω(k)为更新后的惯性权重ω,K为当前迭代次数,Kmax为最大迭代次数,ωmax为最大惯性权重,ωmin为最小惯性权重;

步骤303-2、根据更新自我认知因子c1,其中,c1(k)为更新后的自我认知因子,K为当前迭代次数,Kmax为最大迭代次数,c1max为最大自我认知因子,c1min为最小自我认知因子;

步骤303-3、根据更新社会认知因子c2,其中,c2(k)为更新后的社会认知因子,K为当前迭代次数,Kmax为最大迭代次数,c2max为最大社会认知因子,c2min为最小社会认知因子。

为使粒子位置不超过占空比d范围[0 1],通常对粒子速度进行控制,而这种方法不能区分不同粒子,导致较长的跟踪时间。因此本发明实施例中采用反正切函数来保证粒子速度在安全阈值范围内,同时粒子具有更高的速度。相应地,步骤304还可以包括:

步骤304-1、通过公式

更新粒子速度,其中,为第k次迭代中第i个粒子的个体最优值,为第k次迭代中的全局最优值,为第k次迭代中第i个粒子的位置,即占空比数值,为k次迭代中第i个粒子的速度,为第i个粒子更新后的速度;

步骤304-2、粒子位置更新单元,用于通过公式更新粒子位置。

步骤306还可以包括:

通过更新各个粒子的个体最优值,其中,为第k次循环的第i个粒子的个体最优值,为第k+1次循环的第i个粒子的位置,f(x)为适应度函数,所述适应度函数为输出功率。

通过Pg=max{f(P1(k)),f(P2(k)),…,f(Pi(k))}更新全局最优值,其中,Pg为全局最优值。

本发明实施例提供的一种基于粒子群优化的光伏最大功率点跟踪的控制方法,根据光伏阵列的串联模块个数、光伏组件开路电压,对粒子群参数进行初始化;根据各个粒子的位置,计算各个粒子的适应度值,适应度值为光伏阵列的输出功率;根据输出功率,获取各个粒子的初始个体最优值和全局最优值;根据个体最优值、全局最优值、惯性权重、自我认知因子和社会认知因子,更新各个粒子的位置和速度;根据更新后的粒子位置,重新计算各个粒子的适应度值;对比各个粒子的个体最优值对应的适应度值和重新计算的各个粒子的适应度值值,更新各个粒子的个体最优值和全局最优值;计算粒子位置的标准差,判断粒子位置的标准差是否小于预设阈值、迭代次数是否达到最大迭代次数;当粒子位置的标准差小于预设阈值或迭代次数达到最大迭代次数时,根据当前的全局最优值,即输出占空比控制信号,控制光伏阵列工作,使其稳定工作在最大功率点。本发明实施例以变换器的占空比为粒子,初始化将粒子均匀分散在可能的极值点处,线性调整惯性权重、学习因子,并通过引入反正切函数,对传统的粒子群速度更新进行修改,单独限制每个粒子的速度。提升了粒子群算法的收敛速度,减小了跟踪过程的振荡,使得阴影变化时能快速跟踪到新的最大功率点。

本发明实施例中还提供了一种基于粒子群优化的光伏最大功率点跟踪的控制装置,如图4所示,包括:

初始化模块410,用于根据光伏阵列的串联模块个数m、光伏组件开路电压Uoc_module,对粒子群参数进行初始化,其中,所述粒子群参数包括粒子个数、粒子初始位置、惯性权重ω的取值范围、自我认知因子c1的取值范围、社会认知因子c2的取值范围和最大迭代次数,粒子位置为占空比d,粒子速度为占空比变化量Δd;

第一计算模块420,用于根据各个粒子的位置,计算各个粒子的适应度值,适应度值为光伏阵列的输出功率;

第二计算模块430,用于根据输出功率,获取各个粒子的初始个体最优值和全局最优值;

第一更新计算模块440,用于根据个体最优值、全局最优值、惯性权重、自我认知因子和社会认知因子,更新各个粒子的位置和速度,更新各个粒子的位置和速度;

第三计算模块450,用于根据更新后的粒子位置,重新计算各个粒子的适应度值;

第二更新计算模块460,对比各个粒子的个体最优值对应的适应度值和重新计算的各个粒子的适应度值,更新各个粒子的个体最优值和全局最优值;

标准差计算模块470,用于计算粒子位置的标准差,判断粒子位置的标准差是否小于预设阈值、迭代次数是否达到最大迭代次数;

控制执行模块480,用于当粒子位置的标准差小于预设阈值或迭代次数达到最大迭代次数时,根据当前的全局最优值,即输出占空比控制信号,控制光伏阵列工作,使其稳定工作在最大功率点;当粒子位置的标准差不小于预设阈值且迭代次数小于最大迭代次数时,还用于指示所述第一更新计算模块440继续执行操作。

本装置还可以包括重启模块490,用于所述控制执行模块根据当前的全局最优值,输出占空比控制信号,控制光伏阵列工作,使其稳定工作在最大功率点的之后,判断出光伏阵列的实际输出功率Preal与所述最大功率点Pm之间的差值大于预设的输出功率变换量阈值ΔP时,重新启动初始化模块410继续执行操作。

如图5所示,所述初始化模块410还可以包括:

粒子个数初始化单元411,用于确定粒子个数等于光伏阵列的串联模块个数m;

粒子位置初始化单元412,用于将粒子初始位置随机均匀分布,或者,将粒子初始位置均匀分布在理论极值点处,所述理论极值点为数值等于0.8*Uoc-module整数倍的光伏阵列输出电压对应的占空比;

惯性权重初始化单元413,用于惯性权重ω的取值范围为0.1至1;

自我认知因子初始化单元414,用于自我认知因子c1的取值范围为1至2;

社会认知因子初始化单元415,用于社会认知因子c2的取值范围为1至2;

迭代次数初始化单元416,用于最大迭代次数为30。

本装置还可以包括参数计算模块500,用于在所述第一计算模块420根据个体最优值、全局最优值、惯性权重、自我认知因子和社会认知因子,更新各个粒子的位置和速度之前,对惯性权重ω、自我认知因子c1、社会认知因子c2进行更新计算,所述参数计算模块500包括:

第一参数计算单元510,用于根据更新惯性权重ω,其中,ω(k)为更新后的惯性权重ω,K为当前迭代次数,Kmax为最大迭代次数,ωmax为最大惯性权重,ωmin为最小惯性权重;

第二参数计算单元520,用于根据更新自我认知因子c1,其中,c1(k)为更新后的自我认知因子,K为当前迭代次数,Kmax为最大迭代次数,c1max为最大自我认知因子,c1min为最小自我认知因子;

第三参数计算单元530,用于根据更新社会认知因子c2,其中,c2(k)为更新后的社会认知因子,K为当前迭代次数,Kmax为最大迭代次数,c2max为最大社会认知因子,c2min为最小社会认知因子。

第一更新计算模块440包括:

粒子速度更新单元441,用于通过公式

更新粒子速度,其中,为第k次迭代中各个粒子的个体最优值,为第k次迭代中的全局最优值,为第k次迭代中第i个粒子的位置,即占空比数值,为k次迭代中第i个粒子的速度,为第i个粒子更新后的速度;

粒子位置更新单元442,用于通过公式更新粒子位置,其中,为第k次迭代中第i个粒子更新后的位置,即更新后的占空比数值。

以上对本发明进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1