本发明涉及一种局部阴影光伏阵列多峰MPPT控制方法,特别涉及一种基于随机蛙跳全局搜索算法的局部阴影光伏列阵多峰MPPT控制。
背景技术:
伴随太阳能发电的普及,光伏阵列的运行环境变的越来越复杂,局部遮荫导致光伏阵列输出特性曲线出现了多个极值点,影响了光伏阵列的输出效率,甚至出现热斑现象而损坏光伏电池。为了使光伏系统工作在最大功率点,提高系统效率,需采用有效的多峰最大功率点跟踪算法。
传统的最大功率点跟踪算法(如固定电压法、扰动观察法及增量电导法等)能较好地寻找均匀光照条件下最大功率点。但是在局部阴影光照条件下,光伏阵列的功率电压曲线出现多个峰值点,常规的最大功率点跟踪算法由于陷入局部极值点,不能准确跟踪到最大功率点。随着智能控制方法的兴起,以粒子群算法等为代表的智能控制方法已成为现代控制理论的典型代表,被用于局部阴影下光伏列阵多峰MPPT控制问题,但这些算法的随机参数多,收敛速度较慢,处理不好时可能陷入局部极值,最大功率点处会出现振荡。
技术实现要素:
本发明的目的:针对局部阴影下光伏列阵MPPT现有控制技术的问题,提出一种调节参数少、搜索速度快、寻优能力强且稳定的基于随机蛙跳全局搜索算法的局部阴影光伏阵列多峰MPPT控制方法。
本发明的目的通过以下技术方案实现的:
一种基于随机蛙跳全局搜索算法的局部阴影光伏列阵多峰MPPT控制,包括如下的步骤:
步骤101:实时采集光伏列阵的环境温度T和光照强度S;
步骤102:根据当前各个光伏列阵的环境温度T和光照强度S,采用随机蛙跳全局搜索算法迭代搜索出光伏列阵的总最大功率点;
步骤103:将随机蛙跳全局搜索算法迭代搜索出光伏列阵的总最大功率与光伏列阵实际输出的功率作差,其偏差值通过模糊PI控制算法得到PWM占空比控制量,用于产生PWM波;
步骤104:利用PWM模块产生的PWM波来控制Boost电路,使光伏列阵稳定工作在最大功率点上。
所述步骤102中采用随机蛙跳全局搜索算法迭代搜索出光伏列阵的总最大功率点的方法为:
全局搜索步骤
步骤2010:输入各个光伏列阵的环境温度T和光照强度S等数据,设置算法蛙群(控制变量I)的总数量H;
步骤2020:对SFLA算法进行初始化,随机产生初始蛙群个体的初始位置E和初始速度V;
步骤2030:对群体中的蛙个体,根据光伏列阵的功率计算适应函数得出各个种群蛙个体对应的功率P(适应值);
步骤2040:根据功率P(适应值)的大小进行降序排列,选出种群中的最优个体Pgbest(最大功率),并且将蛙群分成族群,把H个蛙分配到m个族群中去,每个族群包括n个蛙个体,例如当m=3时,第1,2,3只青蛙会被依次分配到第1,2,3个族群中,第4,5,6也会被依次分配到第1,2,3个族群中,依此类推;
步骤2050:局部搜索过程,即:根据随机蛙跳算法的算法公式,在每一个族群中进行进化;
步骤2051:计数器初始化。设族群的序号Im=0,用它来标记进化到了哪个族群并与族群总数m进行比较。设族群内部蛙个体独立进化次数的序号In=0,用它与局部族群内部蛙个体进化次数Is比较以判断独立进化是否结束。同时,寻找当前族群Y^Im中最佳蛙个体位置和最差蛙个体位置,分别记为Ebest和Ebad;
步骤2052:设Im=Im+1,进行下一个族群;
步骤2053:设In=In+1,进行下一次独立进化;
步骤2054:利用更新策略更新当前族群中最差青蛙的位置,更新策略为:根据蛙群随机蛙个体与最优蛙个体距离,判断其受力情况,计算蛙个体的引力加速度、斥力加速度和扰动加速度;
步骤2055:根据算法的速度更新公式更新种群蛙个体的速度,并根据算法的位置更新公式更新种群蛙个体的位置,如果蛙个体速度越过边界,则把边界值赋值给当前蛙个体速度,同理,如果蛙个体位置越过边界,则把边界值赋值给当前蛙个体位置;
步骤2056:如果步骤2055改进了最差蛙的位置,就用新产生的位置取代最差蛙的位置,否则就采用全局最好解Pgbest代替式中最差解Pbad,更新最差蛙的位置;
步骤2057:如果步骤2056还是没有改进最差蛙的位置,则随机产生一个处于湿地中任何位置的蛙来替代最差蛙,并重新计算其适应值;
步骤2058:更新Im族群的最优适应值Pbest与最差适应值Pbad;
步骤2059:如果In<Is,则跳到步骤2053,否则进行步骤2059,并让In=0;
步骤2060:如果Im<m,则跳到步骤2052,否则跳出局部搜索,进行步骤2060,回到全局搜索;
步骤2060:将各个种群进行混合,在每个族群多经过一轮进化过程以后,将各个族群中的蛙再次进行重新排列和族群划分,并再次记录全局最优解Pg;
步骤2070:检验计算停止条件,如果满足了算法收敛迭代条件,则停止算法的执行过程,否则跳转到步骤2040;
步骤2080:输出最优解,算法结束。
所述的步骤103中采用模糊PI控制算法得到PWM只能占空比控制量的步骤为:
步骤301:求解模糊控制输入量:根据公式e=Pgbest-Ppv和Δe=ek-e(k-1)计算获得偏差量e和偏差量增益Δe,定义模糊控制输出量:PI调节的参数变化量ΔKp和Δki:其中,Pgbest为随机蛙跳全局搜索算法得到的光伏阵列最大功率值;Ppv为光伏阵列实际输出功率;ek为第k时刻的偏差量;e(k-1)为第k-1时刻的偏差量;
步骤302:选取模糊控制隶属度函数并建立模糊规则,根据公式K*p=Kp+ΔKp和K*i=Ki+ΔKi得到模糊整定后PI调节的参数值K*p和K*i,其中,Kp和Ki为当前PI调节的参数值;
步骤303:将随机蛙跳全局搜索算法局部进化搜索出光伏列阵的总最大功率与光伏列阵实际输出的功率作差,其偏差值通过模糊PI控制算法得到PWM占空比控制量,将得到的偏差值与载波信号进行调制,输出PWM脉冲波(占空比信号),对后续的升压斩波(Boost)电路进行控制;
工作原理:本发明所用的基于随机蛙跳全局搜索算法的MPPT控制方法,在算法中,以光伏阵列的输出电流I作为算法的粒子,把光伏阵列局部阴影下输出功率的数学模型作为适应度函数,通过对光伏阵列中各组件的光照强度和环境温度的获取,算法能实时高效的迭代搜索出光伏列阵的总最大功率,配合模糊PI对Boost电路的控制,能使光伏阵列稳定运行在最大功率点出。本发明的算法概念简单,调节参数少,跟踪速度快且准确,电压输出和电流输出比较稳定,稳态振荡
几乎可忽略,能有效提高光伏系统的发电效率。
附图说明
图1:为本发明的原理图;
图2:为本发明的系统电路仿真模型;
图3:为本发明的算法流程图;
图4:为本发明的应用案例仿真结果与现有方法的仿真结果对比;
具体实施方式
为了简明本发明的特征和优点,下面结合附图,对本发明进行详细说明。
如图1所示,本发明基于随机蛙跳全局搜索算法实现局部阴影下光伏阵多峰MPPT控制。此时,光伏阵列的输出呈现多峰的U-P特性曲线,本发明以随机蛙跳全局搜索算法作为MPPT控制模块,光伏阵列的光照强度和环境温度信息传入SFLA-MPPT模块,得到优化的最大点功率,与光伏阵列实时测量功率比较得到偏差值,通过模糊PI结合PWM模块和Boost电路,实现光伏阵列的实时最大功率点跟踪。本实施例根据本发明的方法及工作原理在MATLAB 环境下搭建仿真模型。图2为本发明的系统电路仿真模型。
如图3所示,本发明操作步骤如下:
步骤1:随机蛙跳全局搜索算法初始化,设定蛙群数目H=50,设定光伏电流I为可控量,位置可控范围为minE=0.1,maxE=5.3。
步骤2:初始化蛙群的初始位置E与初始速度V。
步骤3:根据适应度(功率)函数,求得各个蛙个体的适应值(功率),进行降序排列,选出种群中的最优个体Pg(最大功率),并且将蛙群分成族群,把H个蛙分配到m个族群中去,每个族群包括n个蛙个体记录最优个体,定义全局变量族群m=10,族群内蛙个体n=5。
步骤2:定义Im=0,In=0。
步骤4:进入下一个族群,Im=Im+1。
步骤5:族群中进入下一个独立进化,In=In+1。
步骤6:定义各个族群内部独立进化次数Is=15,并同时判定族群内部青蛙之间关系的同时,也要寻找当前族群Y^Im中最佳个体位置和最差个体位置,分别记为Ebest和Ebad;。随机蛙跳全局寻优以蛙间存在的以下规律为基础:当时,蛙体所受合力(关系不好不坏)为0,该位置为平衡位置。当时,此时蛙体间关系为排斥,因为蛙体间关系排斥比其之间的吸引变化快。当时, 此时蛙体间关系为引力,同样因为其排斥比吸引变化快。针对蛙间的引斥力规则,提出了其受引力、斥力及不受力时所需满足的条件;对于合力为0的蛙,通过模拟分子热运动,使得蛙体能跳出局部解。
当时,即蛙体受引力。族群中其他个体向最优个体方向运动,其引力计算公式:
其中:G为引力常量,Mi、MBest分别为蛙个体Xi和最优蛙个体XBest的质量,Fi表示蛙个体Xi所受的引力。根据牛顿定理,由上式可知蛙个体Xi的引力加速度ai的计算公式:
当时,此时蛙合力表现为斥力。族群个体向最优蛙个体方向运动,斥力计算公式为式:
此时,斥力加速度 ai计算公式为:
当时,此时蛙所受合力为零,处于平衡位置。蛙个体的随机扰动加速度为,其中:aij为为个体Xi在j维的加速度,分别为解空间第j维的上界、下界。A为振动幅度,本文取A=(1-0.9*t/G),其中t为当前迭代次数,G 为总迭代次数;N(0,1)为服从正态分布的随机数。
族群中蛙个体Xi的速度更新公式:
蛙个体的Xi位置更新公式:
步骤7:进行判断族群内部最差蛙个体位置是否得到更新,没有则赋予最优个体的位置,有则进行判断In与Is的关系,In>Is时跳出独立进化,进行下一个族群的蛙个体的位置更新,否则继续返回步骤5进行位置更新。
步骤8:进行下一个族群的内部蛙个体位置的更新。判断Im与m之间的关系,如果Im>m,则跳出循坏。否则进行步骤4。
步骤9:进行适应值的计算,并进行降序排列同时判断迭代次数是否大于K=5,大于,则输出最优解Pgbest,否则,继续步骤3。
步骤10:。求解模糊控制输入量:根据公式e=Pgbest-Ppv和Δe=ek-e(k-1)计算获得偏差量e和偏差量增益Δe,定义模糊控制输出量:PI调节的参数变化量ΔKp和Δki:其中,Pgbest为随机蛙跳全局搜索算法得到的光伏阵列最大功率值;Ppv为光伏阵列实际输出功率;ek为第k时刻的偏差量;e(k-1)为第k-1时刻的偏差量;
步骤11:选取模糊控制隶属度函数并建立模糊规则,根据公式K*p=Kp+ΔKp和K*i=Ki+ΔKi得到模糊整定后PI调节的参数值K*p和K*i,其中,Kp和Ki为当前PI调节的参数值;
步骤12:将随机蛙跳全局搜索算法局部进化搜索出光伏列阵的总最大功率与光伏列阵实际输出的功率作差,其偏差值通过模糊PI控制算法得到PWM占空比控制量,将得到的偏差值与载波信号进行调制,输出PWM脉冲波(占空比信号),对后续的升压斩波(Boost)电路进行控制。