基于SWOA优化BPNN的光伏电站发电量预测
2021-10-09戴宝赋谭建军孙先波易金桥
戴宝赋,胡 天,谭建军,孙先波,黄 勇,朱 黎,胡 涛,易金桥*
(1.湖北民族大学 信息工程学院,湖北 恩施 445000;2.国家电网湖北电力公司 宜昌供电公司,湖北 宜昌 443000)
2020年,中国光伏发电装机总容量累计253 GW,连续6年位居全球首位[1].但大型光伏电站本地用户的消纳能力有限,因此,准确预测光伏电站发电量,有助于实时调整调度计划.
反向传播神经网络(back propagation neural network,BPNN)是预测光伏电站发电量的主要方法之一,具有高度的自我学习能力和较强的非线性映射能力,但对初始权值和阈值较为敏感.为避免BPNN因初始权值和阈值选取不当而陷入局部最优解,龚波等[2]基于改进人工鱼群算法优化BPNN的初始权值和阈值,提高了系统的泛化能力.郑建鄂等[3]将天气类型进行量化处理,基于人工蜂群算法优化BPNN,提高了预测的准确性.杨书杰等[4]基于灰狼算法优化BPNN,增强全局搜索能力,提高收敛速度和精度.耿博等[5]基于GA优化BPNN,并引入相似日的概念提高了预测精度.
鲸鱼算法通过模拟鲸鱼的搜索行为、包围行为和泡网捕食行为,以到达寻找最优解的目的.鲸鱼算法具有结构简单、操作简便等优点,但收敛速度慢、易早熟.徐航等[6]引入Gauss映射产生种群,提高了算法跳出局部最优解的能力.刘琨等[7]使用精英反向学习的策略初始化种群,提高种群的质量及全局收敛速度.赵传武等[8]通过引入非线性权重优化鲸鱼的位置更新公式,提高了收敛速度和精度.冯文涛等[9]基于柯西反向学习和DE算法对鲸鱼算法的种群进行变异和选择,增加种群的多样性并提高算法的收敛速度.
本文采用Tent映射初始化种群并引入非线性系数,以弥补算法易早熟的缺点,引入选择策略对种群进行筛选,以加快算法的收敛速度,从而提出一种基于选择策略的鲸鱼优化算法(selection whale optimization algorithm,SWOA),并用于优化BPNN,避免BPNN陷入局部最优解,并提高预测精度.
1 鲸鱼优化算法
鲸鱼优化算法由Mirjalili等[10]于2016年首次提出,鲸鱼优化算法是模拟座头鲸捕食行为的新型智能优化算法,该算法的寻优过程主要由包围行为、搜索行为和泡网捕食行为组成.
(1)
(2)
(3)
其中b为定义对数螺旋形状的常数,一般设置为1.l是区间[-1,1]的一个随机数.
鲸鱼优化算法中需要产生一个随机数p,当p<0.5,且|A|<1时,执行包围猎物行为;当p<0.5,且|A|≥1时,执行搜索猎物行为.当p≥0.5时,执行泡网捕食行为.
2 选择鲸鱼优化算法
2.1 Tent映射
混沌运动具有随机性和遍历性特点,使用混沌映射生成初始种群能有效克服因使用随机数进行初始化导致种群单一性问题.常用的混沌映射有Logistic映射、Henon映射、Tent映射、Kent映射等[11-13].其中Tent映射的均匀性较强,其表示为:
(4)
其中,Xn表示初始值,Xn∈(0,1),Xn+1表示经过一次Tent映射后的值.
使用Tent映射生成初始种群的步骤为:
步骤1n=1,生成随机数Xn;
步骤2 将Xn代入Tent映射得到Xn+1;
步骤3 将生成的值按顺序组成数组x;
步骤4 如果n大于最大次数,则执行步骤6;否则,n=n+1;
步骤5 如果序列x落入不动点或5周期以内的循环,则重新生成一个随机数Xn,然后执行步骤2;否则,直接执行步骤2;
步骤6 输出序列x,将其作为Tent映射生成的种群.
2.2 非线性系数a
鲸鱼优化算法[10]中的系数a由2线性减小到0,协同系数A∈[-a,a].因为A是[-a,a]之间的随机数,|A|<1和|A|≥1的概率相当,即全局寻优的次数和局部寻优的次数相当.为了增强算法的全局寻优能力,本文采用非线性系数a,其表达式为:
(5)
非线性系数a的函数曲线如图1所示.由图1可知,增加a>1的次数,即增加|A|≥1的次数,提高了算法的全局寻优能力.
图1 a系数Fig.1 a coefficient
2.3 选择策略
选择策略是指在旧群体中以一定的概率选择个体到新群体中,该个体的适应度越好,被选中的概率越大.本文的选择策略使用遗传算法中的轮盘赌法,表达式为:
fi=k/Fi,
(6)
(7)
其中Fi表示第i个个体的适应度,k为系数,N为种群数,pi表示fi被选择的概率.
采用选择策略将种群中较差的个体舍去,保留适应度好的个体,以减小适应度差的个体对种群产生负面效果.
3 基于SWOA优化BPNN
SWOA算法的收敛速度快,优化BPNN可避免其陷入局部最优解.基于SWOA优化BPNN的流程图如图2所示.
图2 SWOA优化BPNN流程图Fig.2 Flow chart of SWOA optimized BP neural network
基于SWOA优化BPNN的步骤为:
步骤1 设置BPNN的输入层、隐含层、输出层的节点数和激活函数,输入层到隐含层、隐含层到输出层的传递函数;
步骤2 初始化鲸鱼算法的种群数、最大迭代次数、边界等参数,使用Tent映射生成种群;
步骤3 将迭代次数Iteration设置为1;
步骤4 计算种群中每条鲸鱼的适应度,并将适应度最好的一条鲸鱼设置为公告牌;
步骤5 生成随机数p,若p<0.5则执行步骤7;
步骤6 执行泡网捕食行为,执行步骤8;
步骤7 计算协同系数A的值,若|A|≥1,则执行搜索猎物行为;否则执行包围猎物行为;
步骤8 对种群使用轮盘赌法进行选择处理,保留种群中适应度好的鲸鱼;
步骤9 使用新位置取代旧的位置;
步骤10Iteration=Iteration+1;
步骤11 判断种群中的最优鲸鱼的适应度是否优于公告牌,如果优于公告牌则更新公告牌;
步骤12 若Iteration 步骤13 将公告牌中记录的最优鲸鱼的值赋给BPNN. 适应度计算方法:将鲸鱼的参数赋予BPNN,并进行训练和仿真,计算仿真结果与实际值之间的均方误差(mean squared error,MSE),MSE越小则说明该鲸鱼的适应度越好. BPNN中待定的权值和阈值多,维度高,运算量大.经过实验,本文确定鲸鱼的种群数为10,迭代的最大次数为100,轮盘赌法中的k为10. 输入层的神经元个数为5,隐含层的神经元个数为6,输出层的神经元个数为1.输入层到隐含层的传递函数为tansig,隐含层到输出层的传递函数为purelin,训练函数为traingdx.BPNN模型如图3所示. 图3 BPNN模型Fig.3 Model of BP neural network 3.3.1 数据集简介 数据来源于国能日新光伏功率预测大赛提供的数据.train_1数据记录了某光伏电站从2016年4月1日到2018年4月30日的历史数据,采样频率为15 min/次.本文使用文献[3]中的数据处理方式,选取2017年6月1日至2017年8月31日每天8:00-19:00的12个整点数据进行训练和仿真.数据如表1所示,该数据集的环境数据已进行脱敏处理. 表1 某光伏电站环境数据与发电量Tab.1 Environmental data and power generation of a photovoltaic station 3.3.2 数据归一化 当数据之间的数量级相差较大时,为了减小误差,对数据进行归一化处理. xnorm=2·(x-xmin)/(xmax-xmin)-1, (8) 其中,xnorm为归一化后的值,x为原始数据,xmin为数据集中的小值,xmax为数据集中的最大值. 表2 三种算法测试集的MSETab.2 MSE of three algorithm test sets 程序在Matlab R2018b的环境下运行.使用2017年8月最后3 d的数据作为测试集,其他数据作为训练集.使用SWOA、PSO和WOA算法分别优化BPNN.基于测试集数据的3种算法仿真结果的MSE如表2所示.3种算法的适应度曲线和仿真结果如图4和图5所示. 图4 适应度曲线图5 预测结果 Fig.4 Fitness curve Fig.5 Predicted results 由图4可知,在迭代初期,SWOA-BPNN的适应度起点最低,说明引入混沌映射提高了算法种群初始化的均一性.迭代前期,SWOA-BPNN的收敛速度优于WOA-BPNN,可见引入轮盘赌法有效剔除种群中较差的个体,保留较好的个体;PSO-BPNN的收敛速度略优于SWOA-BPNN,这是因为在迭代前期,鲸鱼主要进行全局寻优,其局部寻优能力不强.在迭代后期,SWOA-BPNN的收敛适应度是3种算法中最小的. 图5中有36组数据,12组为1 d,共3 d.由图5可知,3种算法的预测结果都比较接近实际值. 为了进一步比较3种算法的仿真结果,选取8月31日3种算法的仿真结果绝对误差进行比较,如图6所示,3种算法预测结果的绝对误差均在2.5 kW以下,其中SWOA-BPNN的绝对误差仅仅在9:00、10:00、14:00和15:00高于WOA-BPNN和PSO-BPNN的绝对误差.其他时刻SWOA-BPNN的绝对误差低于WOA-BPNN和PSO-BPNN的绝对误差.总体而言,SWOA-BPNN的预测结果优于WOA-BPNN和PSO-BPNN的预测结果. 图6 绝对误差Fig.6 Absolute error 本文提出SWOA算法优化BPNN,使用风速、压强、温度、湿度和辐照度5种数据建立光伏电站发电量的预测模型并预测发电量.采用SWOA算法优化BPNN的初始权值和阈值,由表2可知,SWOA-BPNN与PSO-BPNN相比,其MSE降低了0.077 2;SWOA-BPNN与WOA-BPNN相比,其MSE降低了0.032 8.3.1 SWOA初始化
3.2 BPNN模型
3.3 数据处理
4 实验结果与分析
5 结语