一种基于收缩粒子群的光伏发电最大功率点跟踪算法的制作方法

    专利2022-07-08  81


    本发明属于光伏发电技术领域,涉及一种基于收缩粒子群的光伏发电最大功率点跟踪算法。



    背景技术:

    光伏发电作为利用太阳能的主要形式,具有环保、无污染、一次投资可用年限长等优点,但发电量随天气变化而变化,具有很强的随机性。在光伏发电系统输出功率发生较大波动时,传统最大功率点跟踪算法会出现跟踪失败情况,导致发电效率降低。因此如何在复杂情况下准确的跟踪到最大功率点,对提高发电效率具有重要意义。

    光伏阵列在因天气或树木杂草等原因被部分遮挡时,系统输出功率曲线会由均匀光照情况下的单个峰值情况改变为多峰值情况。功率曲线多峰值状态为搜寻最大功率点带来了困难,传统的最大功率跟踪算法,在光伏阵列输出功率曲线呈现多峰值状态时,有时会陷入仅搜索到局部最大功率点的情况。

    近年来,随着智能算法的提出与发展,其出色的性能被越来越多的人们认可。智能算法打破传统算法的局限性,在非线性问题寻优方面有着独特的优势。随着芯片制造技术的进步与造价的降低,芯片处理能力的升级为智能算法在工业中的应用提供了可能。粒子群算法自从20世纪90年代被jameskeenedy博士等人提出以来,由于其在多极值寻优方面具有独特的优势,受到人们的广泛重视。粒子群算法与传统算法相比,打破了传统算法每次搜索数量的限制,建立多个粒子在n维空间进行并行搜索,且每个粒子搜索过程带有记忆功能,将每次迭代后得到的最优点传递给其他粒子,并进行下一次迭代,能够快速的搜索到最优点。但是由于粒子群算法的粒子数目较多,在面对含有局部最优解问题时,容易陷入局部最优点,且在搜索后期,所有粒子都聚集在小范围内重复搜索,影响寻优速度。



    技术实现要素:

    本发明的目的在于克服上述现有技术中,粒子群算法在寻求局部最优解时速度较慢的缺点,提供一种基于收缩粒子群的光伏发电最大功率点跟踪算法。

    为了达到上述目的,本发明采用以下技术方案予以实现:

    一种基于粒子群算法的光伏发电最大功率点跟踪方法,包括以下步骤:

    (1)初始化算法,设定粒子的个数、位置、速度、惯性权重和迭代次数;

    (2)进行迭代运行,计算每个粒子的适应度值;

    (3)每迭代完成一次,计算更新粒子的历史最优值、全体最优值及粒子的速度和位置;

    (4)判断粒子是否发生重复搜索现象和震荡搜索现象;

    (5)更新粒子权重,判断结束条件;当粒子个数为1或迭代次数达到最大值,输出全体最优粒子,结束跟踪;否则返回步骤(2)继续迭代运行。

    优选地,步骤1)所述的粒子位置在0~1内均匀分布。

    优选地,步骤1)中粒子的适应度值是通过对光伏发电系统进行建模分析得到的适应度函数计算得到的。

    优选地,步骤4)所述的具体过程如下:

    判断粒子是否发生重复搜索现象,若发生重复搜索现象,则对该重复搜索区域的粒子进行收缩处理,粒子总数减少一个。

    若未发生重复搜索,则继续判断是否发生震荡搜索现象且震荡搜索时个体的历史最优值小于全体最优值;

    若是则粒子总数减少一个。

    进一步优选地,当震荡搜索时历史最优值等于全体最优值时,则返回步骤(2)继续迭代运行。

    优选地,更新粒子权重具体是:增加惯性权重调节参数,使算法的惯性权重随着算法迭代次数的增加以指数形式递减,提高算法搜索速度避免粒子陷入局部最优点。

    一种光伏发电最大功率点跟踪系统,包括:

    初始化模块,用于对粒子的位置、速度进行初始化;

    模型建立模块,与初始化模块相交互,通过在matlab中建立光伏电池模块、直流升压电路模块、pwm脉冲控制模块、控制器s-function模块,构建光伏发电系统仿真模型;

    更新模块,与模型建立模块相交互,用于根据控制器中适应度函数计算得到每个粒子的适应度值,比较每次迭代后各个粒子适应度值的大小,并更新粒子的历史最优值、全体最优值及迭代粒子的速度和位置;

    数据处理和最优值输出模块,与更新模块相交互,用于判断粒子是否发生重复搜索和震荡搜索,并对未发生重复搜索和震荡搜索的粒子进行权重更新,直到找到全局最优值,即最大功率点,终止迭代,并输出全局最优值。

    一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述最大功率点跟踪方法。

    一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现所述最大功率点跟踪方法。

    与现有技术相比,本发明具有以下有益效果:

    本发明公开了一种基于收缩粒子群的光伏发电最大功率点跟踪算法,对搜寻其他粒子已搜索过区域的粒子执行重复收缩机制,粒子继承被收缩的粒子全部搜索信息,粒子种群个数减少1个。对在峰值点附近震荡搜索的粒子,通过比较粒子的历史最优值和全体最优值的大小来判断是否陷入局部峰值点,对陷入局部峰值点的粒子执行震荡收缩机制,粒子种群个数减少1个。当粒子种群个数仅剩为1个时,说明算法已搜索到最优点,输出全局最优值。

    通过在matlab中搭建光伏系统仿真模型,模拟改变光伏阵列的光照强度,在静态和动态条件下下对传统粒子群算法(pso)和本发明的收缩粒子群算法(spso)进行仿真分析。通过仿真结果可以表明,本发明方法在不同条件下均能实现对最大功率点的快速跟踪,且由于算法加入收缩机制,算法收敛时间明显缩短,输出功率波动也大幅降低。该结果表明,本发明通过对传统粒子群算法进行改进,改变粒子搜索方式,通过建立重复收缩机制和震荡收缩机制,对在算法运行过程中重复无效搜索的粒子进行收缩处理,使粒子退出算法运行避免无意义搜索计算,即在算法计算过程中出现重复搜索和震荡搜索现象时,缩减粒子种群个数,能有效减少算法收敛时间,避免重复、震荡搜索造成的功率损耗和输出电压波动。解决在外界环境突变情况下光伏发电系统输出功率发生大幅变化时,传统最大功率点跟踪算法跟踪性能不稳定导致发电效率降低的问题。

    本发明还公开了一种光伏发电最大功率点跟踪系统,上述方法基于该系统进行,通过建立重复收缩机制和震荡收缩机制,该系统能有效减少传统粒子群算法中重复迭代搜索次数过多,搜索曲线过于复杂,算法搜索时间过长的问题,使算法能在外界环境突变的情况下快速准确的跟踪到最大功率点,减小功率损失。本发明系统改变了算法在运行中大量粒子重复迭代运行的现象,使算法适应光伏系统多变的输出特性,通过仿真验证算法的搜索速度和精度都有效提高。

    附图说明

    图1为光伏发电最大功率点控制结构图;

    图2为本发明收缩粒子群算法流程图;

    图3为粒子重复搜索示意图;

    图4为粒子在远局部峰值点lp1震荡搜索示意图;

    图5为粒子在近局部峰值点lp2震荡搜索示意图;

    图6为光伏发电系统在静态情况下使用传统粒子群算法仿真输出波形图;

    图7为光伏发电系统在静态情况下使用本发明算法仿真输出波形图;

    图8为光伏发电系统在动态情况下输出功率变化曲线;

    图9为光伏发电系统在动态情况下使用传统粒子群算法仿真输出波形图;

    图10为光伏发电系统在动态情况下使用本发明算法仿真输出波形图。

    具体实施方式

    为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

    下面结合附图对本发明做进一步详细描述:

    实施例1

    光伏系统输出特性受光照、温度和负载电阻的影响,存在非线性化问题,输出功率曲线呈现多峰特性。因此,光伏阵列与负载之间必须搭建一个中间能量转换电路,使得光伏阵列输出电压和电流满足瞬时的光伏最大功率点。光伏发电系统mppt控制结构图,如图1所示。当光伏发电系统外部环境发生变化时,如果使光伏发电系统的输出功率达到最大值,只需要通过控制boost电路的占空比d,来控制boost电路的导通和关断,就可以调节系统内阻与负载阻抗的关系,使系统时刻处在输出最大功率的状态。

    一种基于收缩粒子群的光伏发电最大功率点跟踪算法,如图2所示,包括以下几个步骤:

    1)初始化算法。粒子种群的粒子个数i=5,迭代次数kmax=50,惯性权重wmax=0.9、wmin=0.1,粒子最大速度vmax=0.02,粒子位置在0~1内均匀分布。

    2)计算每个粒子适应度值。根据实际问题要求建模分析,得出适应度函数,并计算出每个粒子的适应度值。

    3)每次迭代后更新pbest.、gbest、vi和xi。

    根据式(1)计算出每个粒子的历史最优粒子pbest.,

    式中,f(.)为目标函数;n为粒子总数。

    根据式(2)计算出全体最优粒子gbest。

    根据式(3)计算本次迭代中粒子的速度,并与设定最大粒子速度进行比较,若超出最大粒子速度则更新为最大速度。

    式中,上标k表示迭代次数;w为惯性权重系数;vi(k)和xi(k)分别表示第i次迭代粒子的位置和速度;c1和c2分别为自身学习因子和社会学习因子,其中c1对优化准确性具有更高的影响,c2负责向全局区域收敛,一般取c1,c2∈[0,2];r1、r2为服从(0,1)上均匀分布的随机数;pkbest.i为第i个粒子搜索到的最优位置;gkbest为全部粒子搜索过程中的全体最优位置。

    4)判断是否发生重复搜索现象。若是则粒子总数减少一个。

    重复收缩机制:粒子经过3次迭代后飞行轨迹如图3所示,此时粒子q1和q2,q4和q5距离很近。在传统粒子群算法进行第4次搜索时q1便会进入q2搜索过的区域,q5便会进入q4搜索过的区域继续进行迭代搜索。这种重复搜索的现象会导致迭代时间增加,输出电压波动变大。针对这种现象,在收缩粒子群算法中对入侵其他粒子已搜索过区域的粒子进行合并处理。即粒子中仅剩q2,且q2继承q1全部搜索信息,并对q1和q2的pbest与gbest进行比较,更新pbest与gbest,此时粒子个数变为4。

    5)判断是否发生震荡搜索现象且pbest<gbest,若是则粒子总数减少一个。

    震荡收缩机制:如图4所示,传统的粒子群算法经过第3次迭代后粒子q1寻找到局部最优点,由于算法参数设置不当且局部最优点lp1距离全局最优点lp2较远,q1个体最优pbest不再改变,此后的迭代中粒子一直在局部最优点附近重复震荡搜索。另一种震荡搜索情况如图5所示,粒子q3在迭代后搜索到最优点附近,之后由于粒子的pbest与gbest都不再改变,粒子q3在lp2点附近重复震荡搜索。在粒子群算法中这种重复搜索的现象比较常见,为避免无意义搜索浪费算法收敛时间,spso算法对在峰值点(包含局部峰值点)附近且pbest不再改变情况下重复震荡搜索的粒子,进行收缩处理。具体处理机制如下:当算法检测到粒子处于重复震荡搜索,即pbestt不在改变的情况下,继续检测gbest并对pbest与gbest进行比较。

    ①若pbest<gbest,说明此时粒子处于局部最优点附近震荡搜索,为避免无意义搜索,对该粒子执行收缩处理,此后不参与算法迭代。粒子种群个数缩减一个。

    ②若pbest=gbest,说明此时粒子可能处于全局最优点附近震荡搜索或者所有粒子均未搜寻到全局最优点。如图5所示算法前期粒子对整个空间探索太少,在未搜索到全局最优点lp3的情况下便发生在局部峰值点lp2重复震荡搜索。若此时对粒子执行收缩机制,则可能导致算法最终仅找到局部最优点而失去了向全局最优点继续探索的可能性。因此在pbext=gbest情况下粒子发生震荡搜索现象,算法不执行震荡收缩机制,算法继续迭代运行。

    6)更新粒子权重。通过增加惯性权重调节参数,使算法的惯性权重随着算法迭代次数的增加以指数形式递减,提高算法搜索速度避免粒子陷入局部最优点。

    式中,wmax和wmin分别为惯性权重最大值和最小值;β为惯性调节参数且β为0.6;k为粒子迭代次数。

    7)判断结束条件。若粒子个数为1,说明粒子种群个数收缩为1个,算法已搜索到最优点,输出gbest。若算法迭代次数k已达到最大值,说明算法搜索完毕,输出gbest。若不满足结束条件,则返回步骤(3)继续迭代运行。

    为了验证算法有效性,本文采用matlab/simulink进行系统仿真。系统包括光伏阵列、boost电路、pwm脉冲控制器和s-function控制模块。主电路结构采用boost电路。为了节省模型仿真时间,本次测试使用4×1光伏阵列。

    为了验证算法在遮阴情况下的动态跟踪性能,对静态情况光伏阵列光照强度不变和动态情况光照强度升高时两种情况进行仿真测试。

    在静态情况下,光伏阵列光照条件均为1000w/m2,输出功率为单峰值情况,光伏阵列输出功率仅在235w处有一个峰值。如图6和图7所示,传统粒子群算法和本发明所提算法均能搜索到最大功率点,且由于本算法加入收缩机制,输出波形波动较小且搜索速度较快。

    在动态情况下,光伏阵列输出特性曲线如图8所示,在0.3秒时最大功率由160w增大为235w。从图9和图10中可以看出,传统粒子群算法分别在0.26秒和0.57秒时搜索到最大功率点,且输出功率波形波动较大。本发明所提算法分别在0.13和0.45秒时搜索完毕,能较快的搜索到最大功率点附近并继续进行精确搜索,输出功率波形较为稳定。

    实施例2

    一种光伏发电最大功率点跟踪系统,包括:

    初始化模块,用于对粒子的位置进行初始化;

    模型建立模块,与初始化模块相交互,通过在matlab中建立光伏电池模块、直流升压电路模块、pwm脉冲控制模块、控制器s-function模块,构建光伏发电系统仿真模型。

    更新模块,与模型建立模块相交互,用于根据控制器中适应度函数计算得到每个粒子的适应度值,比较每次迭代后各个粒子适应度值的大小,并更新历史最优值、全体最优值及迭代粒子的速度和位置;

    数据处理和最优值输出模块,与更新模块相交互,用于判断粒子是否发生重复搜索和震荡搜索,并对未发生重复搜索和震荡搜索的粒子进行权重更新,直到找到全局最优值,即最大功率点,终止迭代,并输出全局最优值。

    实施例3

    本实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时,可以实现实施例1中任一实施方式。

    本发明方法如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读存储介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。其中,所述计算机存储介质可以是计算机能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(mo)等)、光学存储器(例如cd、dvd、bd、hvd等)、以及半导体存储器(例如rom、eprom、eeprom、非易失性存储器(nandflash)、固态硬盘(ssd))等。

    实施例4

    本实施例提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时,可以实现实施例一中任一实施方式。

    在示例性实施例中,还提供计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明方法的步骤。处理器可能是中央处理单元(centralprocessingunit,cpu),还可以是其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。

    综上所述,本发明针对粒子群算法在粒子搜索过程中,发生粒子重复搜索其他粒子已搜索过区域和在粒子已找到峰值点且pbest不再改变的情况下发生在峰值点附近进行重复震荡搜索现象,提出重复收缩机制和震荡收缩机制。通过对传统粒子群算法进行改进,改变粒子搜索方式,通过建立重复收缩机制和震荡收缩机制,对在算法运行过程中重复无效搜索的粒子进行收缩处理,无效粒子退出算法运行,避免无意义搜索计算,使算法适应光伏系统多变的输出特性。

    以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。


    技术特征:

    1.一种基于收缩粒子群的光伏发电最大功率点跟踪算法,其特征在于,包括以下步骤:

    (1)初始化算法,设定粒子的个数、位置、速度、惯性权重和迭代次数;

    (2)进行迭代运行,计算每个粒子的适应度值;

    (3)每迭代完成一次,计算更新粒子的历史最优值、全体最优值及粒子的速度和位置;

    (4)判断粒子是否发生重复搜索现象和震荡搜索现象;

    (5)更新粒子权重,判断结束条件;当粒子个数为1或迭代次数达到最大值,输出全体最优粒子,结束跟踪;否则返回步骤(2)继续迭代运行。

    2.根据权利要求1所述的最大功率点跟踪算法,其特征在于,步骤1)所述的粒子位置在0~1内均匀分布。

    3.根据权利要求1所述的最大功率点跟踪算法,其特征在于,步骤1)中粒子的适应度值是通过对光伏发电系统进行建模分析得到的适应度函数计算得到的。

    4.根据权利要求1所述的最大功率点跟踪算法,其特征在于,步骤4)所述的具体过程如下:

    判断粒子是否发生重复搜索现象,若发生重复搜索现象,则对该重复搜索区域的粒子进行收缩处理,粒子总数减少一个;

    若未发生重复搜索,则继续判断是否发生震荡搜索现象且震荡搜索时个体的历史最优值小于全体最优值;

    若是则粒子总数减少一个。

    5.根据权利要求4所述的最大功率点跟踪算法,其特征在于,当震荡搜索时历史最优值等于全体最优值时,则返回步骤(2)继续迭代运行。

    6.根据权利要求1所述的最大功率点跟踪算法,其特征在于,更新粒子权重具体是:增加惯性权重调节参数,使算法的惯性权重随着算法迭代次数的增加以指数形式递减,提高算法搜索速度避免粒子陷入局部最优点。

    7.一种光伏发电最大功率点跟踪系统,其特征在于,包括:

    初始化模块,用于对粒子的位置进行初始化;

    模型建立模块,与初始化模块相交互,通过在matlab中建立光伏电池模块、直流升压电路模块、pwm脉冲控制模块、控制器s-function模块,构建光伏发电系统仿真模型;

    更新模块,与模型建立模块相交互,用于根据控制器中适应度函数计算得到每个粒子的适应度值,比较每次迭代后各个粒子适应度值的大小,并更新粒子的历史最优值、全体最优值及迭代粒子的速度和位置;

    数据处理和最优值输出模块,与更新模块相交互,用于判断粒子是否发生重复搜索和震荡搜索,并对未发生重复搜索和震荡搜索的粒子进行权重更新,直到找到全局最优值,即最大功率点,终止迭代,并输出全局最优值。

    8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述的最大功率点跟踪算法。

    9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至6任一项所述的最大功率点跟踪算法。

    技术总结
    本发明公开了一种基于收缩粒子群的光伏发电最大功率点跟踪算法,属于光伏发电技术领域。通过对传统粒子群算法进行改进,改变粒子搜索方式,建立重复收缩机制和震荡收缩机制,对在算法运行过程中重复无效搜索的粒子进行收缩处理,使粒子退出算法运行避免无意义搜索计算,即在算法计算过程中出现重复搜索和震荡搜索现象时,缩减粒子种群个数,能有效减少算法收敛时间,避免重复、震荡搜索造成的功率损耗和输出电压波动。以解决在外界环境突变情况下光伏发电系统输出功率发生大幅变化时,传统最大功率点跟踪算法跟踪性能不稳定导致发电效率降低的问题。

    技术研发人员:吴繁言;马德亮;徐亚南
    受保护的技术使用者:华能国际电力股份有限公司日照电厂
    技术研发日:2020.12.15
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-24042.html

    最新回复(0)