基于遗传算法优化BP神经网络的光伏发电功率预测
2022-09-08刘帅瑶
刘帅瑶,高 阳
(沈阳工程学院,辽宁沈阳 110000)
BP 神经网络是一种由反向传播算法控制的人工神经网络,它适用于连续和离散自变量应用系统。它有输入和输出层,还有一个或多个隐藏层,每一层上的节点数是任意的,彼此独立。它的反向传播特性与所解决问题的性质和细节的选择密切相关。BP 神经网络由输入层、输出层和一个或多个隐藏层组成。在实践中,更多的隐藏层模型,准确预测结果将越少,但相应地,多层结构会使系统更复杂,算法更多的冗余,所以样品模型的训练时间将增加,收敛速度将减少。特别是各网络层权值的计算会非常复杂。
1 BP神经网络结构
BP 神经网络适用于多种自变量应用系统,主要是连续和离散自变量。它的构造有输入和输出层,还有一个或多个隐藏层。它的反向传播特性与所解决问题的性质和细节的选择密切相关。BP 神经网络主要由输入层、输出层和隐藏层组成。在多数实践中,拥有更多的隐藏层模型会使准确预测结果大幅减少,并且系统结构更复杂,所以样品模型的总体训练时间会上涨,随之收敛速度急剧下降。相比之下,单隐层网络的特点为:结构简单、学习速度快、网络相关权值计算准确。当有足量的隐含层节点数量时,网络就可以使所有非线性系统的基本特征变得清晰。考虑到上述原因,本文最终选择了精确度以及性价比高的3层结构。
2 建立BP神经网络功率预测模型
2.1 样本数据收集和归一化处理
本次预测的样本采用某光伏电站的某天发电和气象数据。由于日落后太阳光辐射的强度几乎为零,所以在此情境下,光伏系统的发电量也可以忽略不计。所以进行预测时忽略日落后18:30至次日6:30这段时间,将6:30至18:30设置成有效预测时间,并取预测时间间隔为1h。由于历史数据和具体数值相关气象因素的影响,不同日期和同一日期在不同时间下的输出功率值有或显著或细微的差异。随着这些数据的输入,不仅会使扩大搜索范围还会使预测精度大幅降低。为了消除上述影响,需要将采集到的数据按照固定标准,对其进行归一化处理后才可以使用。应用中一般使用premnmx 函数,通过此函数处理过后的数据会集中分布在[-1,+1]范围内,然后再将这些数据输入神经网络中。premnmx 函数转换公式如下:
其中,An是归一化之后的数据;A表示为原始数据。
在此步骤之后,BP 祌经网络需要在计算和学习完成后,将新的数据恢复到原来的初始数据量纲输出,此时一般选择用premnmx 函数来进行操作。
2.2 BP神经网络预测模型的建立
基于BP 神经网络算法,通过采用以下5个步骤建立光伏发电系统功率预测模型:
(1)确定网络结构。本文选择了由输入层、输出层和单隐层组成的3层BP 神经网络模型。
(2)进行输入层设计。根据实际情况,选择历史输出功率、温度和光照强度来作为输入数据。选择5个输入层节点:在预测时间下的温度、在预测时间前一天对应同一时刻的温度、在预测时间下的光强度、在预测时间前一天对应同一时刻的光强度,以及在预测时间前一天对应同一时刻的历史发电功率。
(3)进行输出层设计。由于训练最终目标是预测光伏系统的发电输出功率,因此输出层中的其中一个节点可以满足要求。
(4)进行隐藏层设计。对于隐层节点数的设置,并没有一个统一的标准,一般情况下符合强数定理:
式中,m为隐含层所含有的节点数目;i为输入层所含有节点数目;同理j对应输出层;1≤β≤10;P为样本数据总数。将每层所选取的节点数代入上述公式,隐层节点数选取最小值时训练结果的误差值最小。经计算,本文最终选择的是目标误差最小的4个节点来作为隐藏层中的节点数。
确定传输函数。确定tansig 非线性激励函数来当隐含层的传递函数。选取purelin 线性函数作为输出层的传递函数。
(5)计算输出预测值的误差。因MAPE以百分数形式出现,所以更加直观清楚。其公式如下:
式中,N为数据集总数;Wf为功率预测值;Wa为功率实测值,i为样本数据的序号。
3 BP神经网络模型预测结果分析
通过MATLAB 软件,建立本文需要使用的BP网络功率预测模型。样本数据来源于某一光伏电站的全天历史发电和天气数据,以及各类数据在预测日对应时间段的天气预报数值。输入历史数据和预测日的样本信息,经过BP 神经网络学习和训练后输出预测发电功率。
表1 为样本输入网络后,光伏发电预测值和实际值数据的详细数据对比情况,误差的绝对值在0~6 kW,平均绝对百分比误差为MAPE=5.178%。
单片机采用AT89C52,时钟晶体选择AT切型的11.059 2MHz,传感器SHT11温湿度传感器的DATA管脚接P1.1,SCK接P1.0。这两个管脚要接4.7kΩ的上拉电阻。仿真软件下不显示SHT11的电源和地端,实际接线时,在电源和地间接入100nF的去耦滤波电容。因为数据要上传到PC,为了实现单片机和PC间的电平转换,实际电路要采用RS232/RS485转换接口,但在仿真软件元件库中无此器件,仿真时采用RS485标准的器件MAX487的输出端接模拟PC串口的虚拟终端。电路连接如图4所示。
表1 实际功率和经过BP预测功率
图1为数据样本BP 神经网络输出误差曲线的实际值和估计值之间的关系。从图1可以看出,BP 神经网络算法虽然可以预测更加精确的系统发电功率,但针对特殊样本时,有些预测值与实际功率仍然存在较大偏差,有些误差值甚至超过10%,因此还需要对此算法进行进一步改进和提高,从而达到可以提高预测输出发电功率的精度,加快预测速度的目的。
图1 BP神经网络发电量预测值与实际值误差曲线
4 BP神经网络结合优化后的遗传算法功率预测模型
经过大量对比发现,在光伏功率预测中,BP 神经网络的自适应能力和容错能力非常突出,但其预测精度要依赖于大量的输入样本,如果数据不足,预测精度的收敛速度将极大降低,此外多重数据和扩展常数等系列参数不能同时进行计算,这也切断了算法的一致性。因此,本文还采纳了其他算法进行优化,最终选择了遗传算法和BP 神经网络的交叉混合算法。
4.1 遗传算法原理及改进
遗传算法是一种随机选择优秀个体并迭代求解停产生物个体遗传机制的搜索算法。遗传算法自出现以来,由于其优良的特性,在许多场景中得到了广泛的应用。遗传算法对向量化空间中的所有解进行重复选择、交换和变异操作,以概率方式执行优化步骤,并迭代获得全局最优解。
遗传算法是一种随机选择优秀个体并迭代求解停产生物个体遗传机制的搜索算法。遗传算法自出现以来,由于其优良的特性,在许多场景中得到了广泛的应用。遗传算法对向量化空间中的所有解进行重复选择、交换和变异操作,以概率方式执行优化步骤,并迭代获得全局最优解。遗传算法的结构如下。
(1)对染色体进行编码。将字符串类似于生物基因中的染色体,通过二进制编码等编码机制将样本转换为特定排列的数据字符串。
(2)构建适应度函数。反映在遗传算法中,并成为判断样本数据字符串优劣的基础。
(4)适当考虑其他影响因素。比如种群总数、交叉概率K。以及变异概率Km。
本文提出了一种新算法,该算法让交叉和变异概率进行自适应计算。可以达到根据适应度值来对交叉和变异概率进行进一步优算,并且在解空间中搜索最优解的时间最大程度进行缩小。改进后的计算方法如下:
公式中f为经算法后的适应度,f'为交叉操作后的适应度值;favg为适应度的平均值;fmax为种群的最大适应度值。
4.2 BP神经网络的优化过程
采用改进的遗传算法优化BP 神经网络预测模型。步骤如下。
(1)首先初始化网络参数并归一化训练样本。
(2)采用遗传算法对网络的权值、阈值和扩展常数进行编码。
(3)通过BP 神经网络的输入层输入样本数据,计算其适应度函数值。
(4)通过适应度值对种群中的个体进行评价。适应值越大,个体表现越好,繁殖机会越多;反之,表现差,遗传给后代的概率更小。
(5)生成新的种群个体并判断适应度。如果误差精度满足要求,可以直接输出网络的模型。如果误差范围在需求之外,继续下一步。
(6)判断算法是否达到设定的迭代次数或进化代数上限。如果结果为是,则也直接输出BP 神经网络的最终模型。如果结果为否,则对算子进行选择、交叉、变异等一系列操作,产生连接权值、阈值等更好的个体作为神经网络的输入。
5 结束语
综上可以得知,文章将遗传算法与BP 神经网络相结合,形成遗传神经网络对风电场输出功率进行预测,通过遗传算法的寻优能力优化神经网络的权值和阈值,取得了优于单一BP 神经网络的预测结果。