改进神经网络模型在光伏发电预测中的应用①

2019-12-20 02:31胡克用李云龙胡则辉
计算机系统应用 2019年12期
关键词:输出功率发电神经网络

胡克用,李云龙,江 霞,李 静,胡则辉

(杭州师范大学钱江学院,杭州 310018)

现如今随着社会的建设和人口的增长,环境恶化、资源减少的问题愈发严重,世界各国努力寻求开发新型能源,对太阳能的利用成了解决人类可持续发展问题的曙光.光伏发电是将太阳能直接转变成电能的一种发电方式,其具有转化率高且安装灵活、便于维护的优势.但研究表明,光伏发电系统不同于常规能源发电方式具有连续可调控的特点,会跟随太阳辐射强度和温度的变化而具有波动性和间歇性,大规模光伏发电系统的并网运行会对传统电网的安全、稳定造成较大影响[1-4].因此,对光伏系统的输出功率进行准确预测就显得非常重要,首先可以降低发电系统接入电网的负面影响,保证电网的安全性和稳定性,同时可以充分利用太阳能资源,达到经济效益最大化的目标;其次,精准的预测能为电力系统调度部门实施合理的调度计划提供参考意见.

目前对于光伏系统发电的预测方法主要有直接预测和间接预测2种.直接预测法本质上都是统计方法,是将气象因素或历史数据作为输入量建立模型从而对数据算法进行训练,最终通过模型计算出预测结果[5];间接预测是先根据天气状况对太阳辐射强度进行预测,然后根据发电站的电功率模型进一步预测输出功率.发电系统输出功率的预测是电力行业持续不断研究的重点,它是电网安全运行和技术进步的基础条件.国内外许多研究者都针对不同负荷类型的电力系统进行探究和应用.主要的预测方法有:线性回归法、人工神经网络法、卡尔曼滤波法、时间序列法等.

文献[6]通过对温度、风向、云量、温度等气象因素对光伏发电系统影响的分析,利用BP神经网络建立预测模型,实现对其光伏输出功率的预测.缺点是算法容易陷入局部极小值,造成结果准确率低.

文献[7]是基于马尔科夫链的光伏发电功率预测模型,先收集统计光伏发电系统历史输出功率数据,然后采用其搭建的模型,直接输出预测光伏发电功率,然而不太适宜用于系统的中长期预测.

文献[8]是结合了近邻传播聚类和回声状态网络2种算法的优点,先采用近邻传播算法对光伏发电分类,然后基于预测日所属的类别建立回声网络状态方程来预测光伏发电功率,然而回声网络中随机生成的储备池与具体问题关联性低,并且参数较难以确定.

文献[9]提出一种自适应的光伏超短期出力预测模型,利用光伏发电历史数据的小波分析以及特征分析结果来训练支持向量机分类器,从而预测发电数据,然而小波基的选取要求高,加大了实验的难度.

文献[10]是利用支持向量机和神经网络,同时结合天气种类以及历史气象数据,基于各类天气状况分别建模或引入日类型指数来进行预测,然而支持向量机在解决多分类问题上存在困难.

文献[11]采用前向反馈神经网络(FFNN)、径向基神经网络(RBFNN)和回归神经网络(RNN)3种神经网络算法对辐射强度进行预测.经过数据分析对比,最后选择了RNN对光伏出力进行间接预测.

文献[12]先分析了影响光伏发电系统输出功率的各项因素,并加入天气信息利用人工神经网络法对其输出功率进行预测.结果能够一定程度上解决光伏发电系统随机性问题,表明了模型的可行性,然而在训练中容易陷入局部极小值而得不到最优解.

经过对比分析,间接预测的结果精度较高,但需要建立复杂的预测模型和太阳辐射强度测量装置,其中光伏阵列的安装角度以及转换效率也是必要的考虑因素.而直接预测的过程就较为简便,但若要达到较高精度的预测结果,需要对历史输出功率以及相关气象数据进行科学地选取,同时要对算法模型进行改进优化.经过探究和对比,本文提出一种改进型的BP神经网络短期预测模型,以光伏发电历史数据和相关气象因素作为模型输入量,并且对传统BP神经网络进行了优化,通过增加动量项和自动选取最优隐含层数目使模型避免陷入极小值并且加快了训练速率.经过算例对比验证,该模型具有较高的预测精度以及收敛速度,具有一定的参考意义.

1 光伏发电输出功率影响分析

1.1 相关性分析理论

相关性分析就是指对两个及以上具备相关性的变量元素进行分析,来衡量两个变量因素之间的相关密切程度[13].

用来衡量两个变量之间的相互关系,最常用的是皮尔逊积矩相关系数(pearson product-moment correlation coefficient),定义是两个变量协方差除以两个变量的标准差(方差的平方根).

两个变量之间的皮尔逊相关系数计算如下:

式中,cov(X,Y)是变量X,Y的协方差;σX是变量X的标准差;σY是变量Y的标准差;结果r(corr)范围在[-1,1]之间.

(1)若r>0,表明两个变量是正相关,即当一个变量值增大的同时另一个变量值也会越大;

(2)若r<0,表明两个变量是负相关,即当一个变量值减小的同时另一个变量值也会越小;

(3)若r=0,表明两个变量间不是线性相关.

r的绝对数值反映了相关性的大小,通常情况下:当r的范围在 0.00~±0.30之间时,两变量微相关;当r的范围在±0.30~±0.50 之间时,两变量实相关;当r的范围在±0.50~±0.80 之间时,两变量显著相关;当r范围在±0.80~±1.00之间时,两变量高度相关.

在本文的研究中我们基于以上相关理论使用Matlab中的corr(X,Y)函数,来计算皮尔逊相关系数.

1.2 气象因素与光伏系统输出功率的相关性分析

影响光伏系统输出功率的因素众多,如逆变转换效率、太阳辐射强度、气压、太阳能电池板安装角度、温度、风速、湿度等[14,15],并且这些因素与光伏发电输出功率之间也有着复杂的关联.如果将所有因素都作为神经网络预测模型的输入,光伏发电系统历史数据的收集整理步骤难度必定增加,且一定程度上影响了预测的准确度.其中气象因素主要包括温度、湿度、风速、云量、气压等,它们都具有明显的不连续性和不确定性,而且与光伏发电系统输出功率都有着紧密的联系.为了选择相对合适的输入模型,我们需要运用到相关性分析来甄别气象因素中对光伏发电系统输出功率的影响程度.

本文选取澳大利亚的Desert Knowledge Australia Solar Center(DKASC,纬度:-23.76,经度:133.87)的一处10.5 KW太阳能光伏发电系统作为研究对象,采集其2015年1月、4月、7月、10月的日发电量与数个气象因素历史数据分别进行相关性分析.DKASC地理位置如图1所示.

图1 DKASC地理位置

1.2.1 太阳辐射强度和光伏发电功率的相关性分析

由于单位面积光伏面板的输出功率,由式(2)[16]表示:

其中,Ps是光伏面板的输出功率;η是光伏面板的转换效率;S是光伏阵列的面积;I是光伏面板斜面上的太阳辐射强度;φ是环境温度.

由上式可以看出,光伏面板斜面上的太阳辐射强度与输出功率成正比,也就是说每日光伏面板斜面上所吸收的辐射量越大,发电量就越多.为了验证太阳日辐射强度总量与光伏发电功率两个变量有着较强的相关性,本文对二者做了相关性分析,如表1所示.

表1 太阳日辐射强度总量与光伏发电功率的相关性分析

由表1中4个月的太阳日辐射强度总量与光伏发电输出功率的相关性分析数据可知,2015年1月与10月的相关性系数均在0.95以上,由于4月与7月澳大利亚正值秋冬季,太阳辐射强度略低于1月和10月,但也都达到了显著相关的标准,由此证明了二者之间有着很强的相关性.

1.2.2 湿度与光伏发电功率的相关性分析

湿度是衡量空气中水蒸汽含量的指标,水蒸汽会对太阳辐射有着反射和吸收的作用,间接影响了光伏系统所接收到的太阳辐射值,最终关联着光伏系统的输出功率,文中所收集到的数据来源于澳大利亚天气预报网站中的相对湿度.

表2反映了最大湿度、最小湿度、平均湿度与光伏系统输出功率的相关系数.

表2 湿度与光伏发电功率的相关性分析

由表2中的4个月的相对湿度与光伏发电输出功率的相关性分析数据可知,两个变量之间成负相关,说明湿度越大则输出功率越小;同时最小湿度Hmin与平均湿度Havg的相关系数值较高,基本上都呈显著相关状态,但与最大湿度Hmax的相关系数就较弱.

1.2.3 温度与光伏发电功率的相关性分析

通常温度的上升会使光伏发电系统的转换效率下降,从而导致其输出功率也呈现减小的趋势.

表3反映了最高温度、最低温度、平均温度与光伏系统输出功率的相关系数.

表3 温度与光伏发电功率的相关性分析

由表3中4个月的温度与光伏发电输出功率的相关性分析数据可知,两个变量出现负相关的情况主要在冬季,这是因为太阳辐射量对发电功率的影响效果要远大于温度,阴雨天的太阳辐射量较晴天要少,一般情况下冬季太阳辐射总量偏低,温度对光伏发电功率的影响效果才得以显著.2015年1月对于澳大利亚来说,在当地处于夏季,太阳辐射量较大,才使得两变量成正相关.

1.2.4 平均风速与光伏发电功率的相关性分析

风速大小的产生原因相对复杂,与很多气象因素相关联,且一般情况下风速会影响到太阳能光伏发电系统散热.

表4反映了平均风速与光伏发电功率的相关系数.

表4 平均风速与光伏发电功率的相关性分析

由表4中4个月的平均风速与光伏发电输出功率的相关性分析数据可知,两变量在春、夏季相关度相对较高,秋、冬季则均呈微相关,且在7月呈负相关.由此可见,两者之间仍然是有相关性的,为了保证预测模型的准确性,我们仍需将其作为参考量输入预测模型.

1.2.5 气压与光伏发电功率的相关性分析

气压是指在单位面积上作用的大气压力.通常来说,气压基本不会对光伏发电输出功率造成影响.表5反映了气压与光伏系统输出功率的相关系数.

由表5中4个月的气压与光伏发电输出功率的相关性分析数据可知,两变量间的相关系数都在0.1以下,全部处于微相关.由此可见,气压与光伏发电输出功率的密切程度很弱,因而没有将其作为参考量输入预测模型.

表5 气压与光伏发电功率的相关性分析

1.2.6 影响光伏发电输出功率的因素小结

经过以上多种主要气象因素与光伏日发电量的相关性分析,我们了解到影响光伏系统输出功率的因素众多且影响趋势较复杂.与之关系最密切的是温度、相对湿度、和太阳辐射强度,而风速则取决于季节因素.数据显示,我们的光伏发电系统数据采样地,澳大利亚的Desert Knowledge Australia Solar Center在每年12月、1月和2月风速影响较强,其它月份相对较低.因此,选取每日太阳日辐射总量,最大、最小以及平均湿度,最大、最小以及平均温度和平均风速,共8种气象因素作为光伏发电系统功率预测模型的输入量.

2 BP神经网络的预测模型设计

2.1 BP神经网络模型结构

神经网络是一种分布式并行信息处理的算法数学模型,现在已广泛应用与模式识别、自动控制、数据挖掘、人工智能等领域[17].BP(Back Propagation)神经网络作为众多人工神经网络实现方法之一,是迄今为止研究最成熟、应用最广泛的人工神经网络模型之一[18],它的拓扑结构包括输入层、隐含层及输出层,典型的三层神经网络结构如图2所示.

图2 BP神经网络结构图

工作信号在正向传递过程中,各层节点输入与输出的数学表达如下:

隐含层第i个节点输入值为:

隐含层第i个节点输出值为:

输出层第k个节点输入值为:

输出层第k个节点输出值为:

式中,wij是隐含层中的第i个节点到输入层中的第j个节点之间的权值;xj是输入层第j个节点的输入值,其中j=1,2,3,…,m;θi是隐含层第i个节点的阈值;φ(x)表示隐含层的激励函数;αk表示输出层第k个节点的阈值,k=1,2,…,l;wki表示输出层中的第k个节点到隐含层中的第i个节点之间的权值,i=1,2,…,q;ψ(x)表示输出层的激励函数.

2.2 传统BP神经网络算法存在的问题

由于传统BP神经网络算法主要利用梯度下降的原理,按负梯度方向调整权值.所以一般会存在以下问题:

(1)网络模型训练中容易陷入局部极小值而得不到最优值,原因在于BP神经网络计算非线性问题时,权值是通过局部改善并逐渐调整的,这样就容易导致算法陷入局部极值,同时权值也会收敛至局部极小点.因此,当初始网络权重不同时,每次训练网络都会收敛于不同的局部极小值,并且网络训练得到的结果也有较大差异.

(2)训练次数较多,收敛速度慢,造成学习效率的降低.这是因为神经网络需要优化的目标函数较复杂,训练过程中当神经元输出接近0或1的情况下,权值误差的波动较小,所以此时训练速度非常缓慢甚至几乎停顿.

(3)隐含层节点数量选取缺乏一定的理论指导.

2.3 改进BP神经网络算法的方法

针对传统BP神经网络算法存在的问题,本文主要从3个方面加以改进:

(1)增加动量项

针对网络模型训练中容易陷入局部极小值而得不到最优值的问题,提出一种增加动量项的方法,采用动量因子来传递最后一次的权值变化量.当动量因子为0时,由梯度下降法产生最后一次的权值;当动量因子为1时,采用动量因子方法而产生的新权值为最后一次的权值变化量.增加动量法实质上等同于在训练过程中加入阻尼项,降低网络对于误差曲面局部细节的敏感性,减小学习过程的振荡趋势,从而避免网络陷于局部极小点,改善了收敛性.

动量项的修正公式如下:

其中,wij是隐含层中的第i个节点到输入层中的第j个节点之间的权值;k是训练次数;m是动量因子,一般m∈(0,1);η是学习步长;δi为在输出层和隐含层中的局部误差信号;pj为输入信号在隐含层的传递;bi是隐含层学习速率.这样操作的优点在于可以有效防止Δwij(k)=0,帮助网络优化从误差曲面局部极小值中脱离出来.

(2)自适应调节学习步长

学习步长 η在BP神经网络算法中是一个常数,但在算法模型中学习步长是常数不一定都合适.例如在误差曲面处于较为平坦的范围时,学习步长太小会引起学习次数的增多,这样就要求适当增大 η;然而在极小值附近时,学习步长大了则会引起振荡,这样又会要求减小 η.

鉴于此,文中设置自适应学习步长的规则为:设η(n)为第n次的学习步长,若第n+1次学习中得到的误差E(n+1)>E(n),则忽略修正,并使得η(n+1)=λη(n)(λ <1),一般情况下λ设为0.95;若第n+1次学习中得到的误差E(n+1)

(3)最佳隐含层的选取

针对隐含层节点的数量选取缺乏理论指导的问题,文中根据相关经验公式选取合适的节点个数,再由算法计算出范围内误差最小的节点个数最终参与神经网络的预测模型.

经验公式设置如下:

式中,h是隐含层节点数目;m是输入层节点数目;n是输出层节点数目;a是1-10之间的常数进行调节.在训练中利用以上公式反复试验,根据输入和输出神经元个数确定在5-10个之间,并编写相应代码在其范围内自动选择误差最小的节点数作为隐含层神经元个数.

改进后的BP神经网络算法流程,如图3所示.

图3 改进后的BP神经网络算法流程

2.4 预测模型的建立

2.4.1 训练样本的预处理

根据之前描述的基于皮尔逊积矩相关系数的相关性分析可知,输入层选取太阳日辐射总量、最大湿度、最低湿度、平均湿度、最高温度、最低温度、平均温度、平均风速共8个相关程度较大的气象因素.由于不同变量的数值差异非常大,为了确保各因子之间处于同等地位而不会引起神经元的过饱和,所以对原始数据进行归一化处理.

归一化是使所有输入样本在[0,1]的范围内,相关公式如下:

在Matlab中神经网络工具箱中,归一化函数有premnmx、prestd、mapminmax3种方法,它们都具有将数据归一化并分布在[0,1]之间的作用.相比之下,mapminmax函数可以使收敛速度更快,结果更精确,所以在预测模型中我们选取了mapminmax函数来对数据归一化,Matlab语法设置如下:

2.4.2 网络结构的建立

由于一个三层结构的神经网络基本可以逼近任何非线性连续函数,因此这里采用基于三层BP神经网络对光伏发电输出功率进行预测.

(1)输入层作用是接受外部输入数据,起到了缓冲存储器的作用,所以神经元个数由输入矢量的维数决定.研究中输入层到隐含层的传递函数使用S型曲线来完成,利用的是正切函数(tansig).

(2)隐含层的作用是为了从训练样本中将映射规律提取出来并加以存储.由于输入层和输出层都是可以先行确定,然而隐含层节点的个数却不能预先设定.如果隐含层的节点个数太多,就会将训练样本中的非规律误差进行学习并且存储起来,同时也延长了训练时间,降低了神经网络的泛化能力和预测准确率;但是如果隐含层节点的个数太少,从样本中获取信息的能力就差,不能更好的反应映射规律,故而也降低了预测准确率.至今隐含层的节点数量选取仍没有统一标准,只能通过一些经验公式来大概确定数目.

(3)输出层的值为预测当日7点到19点之间每小时的平均功率,因此输出层神经元数共13个.研究中采用了purelin型传递函数(purelin transfer function),该函数特点在于输入等于输出,不用做任何附加处理.当隐含层数目较多时,网络可以采用任意精度来逼近一个有限间断点的非线性函数.训练函数使用的是带有动量项的梯度下降函数(traingdm).

模型的输入与输出变量结构,如图4所示.

图4 网络结构

2.4.3 预测模型的评估

文中通过计算平均绝对百分比误差(Mean Absolute Percentage Error,MAPE)的方法来对预测模型进行精度评估.

式中,N为数据总个数;为第i个样本中第f个输出神经元的预测值;为第i个样本中第f个输出神经元的目标值.

3 预测结果及分析

为了验证本文所提出的改进BP神经网络模型的可行性,选取了澳大利亚的Desert Knowledge Australia Solar Center(DKASC,纬度:-23.76,经度:133.87)的一处10.5 KW光伏发电系统作为测试对象,采用2015年1月、4月、7月、10月中的各一天数据,分别来测试模型在春、夏、秋、冬 4个季节的预测情况,同时并将数据分为两组,一组为训练样本,用于训练光伏发电系统的预测模型;另一组为测试样本,用于验证预测模型的有效性和准确性,并利用Matlab编写算法实现BP神经网络的学习训练和迭代过程.

3.1 夏季算例

传统BP神经网络模型与改进后模型对2015年1月30日7:00-19:00光伏发电系统输出功率预测结果,如图5与表6所示.

图5 1月30日光伏输出功率预测结果

表6 1月30日光伏输出功率预测误差

为了更直观显示模型的训练速度和精确度,分别比较了2种预测模型的迭代次数以及MAPE指标,如表7所示.

表7 预测模型的迭代次数和MAPE

由预测结果图5和误差表6以及表7来看,模型对于夏季的输出功率预测准确率较高,改进后BP模型预测值的MAPE为2.41%,相对于传统BP预测值,精度得到了大幅度的提升.主要原因是夏季天气以晴朗为主,太阳辐射量大,温度较高,预测日的输出功率随时间变化规律和训练样本十分相似,复杂气候因素较少.因此,神经网络的训练误差小,预测能力提升较大,同时训练速度也提升了68%.

3.2 秋季算例

传统BP神经网络模型与改进后模型对2015年4月30日7:00-19:00光伏发电系统输出功率预测结果,如图6与表8所示.

图6 4月30日光伏输出功率预测结果

表8 4月30日光伏输出功率预测误差

这2种预测模型的迭代次数以及MAPE指标,如表9所示.

表9 预测模型的迭代次数和MAPE

由预测结果图6、表8和表9数据来看,秋季的光伏系统输出功率预测误差较夏季有所增大,原因是秋季平均温度有所降低,在22°C左右.预测日天气类型为晴转多云,湿度较小,随机分量较大,使得预测日的输出功率与实际变化规律和训练样本有着一定的差距.

3.3 冬季算例

传统BP神经网络模型与改进后模型对2015年7月12日7:00-19:00光伏发电系统输出功率预测结果,如图7与表10所示.

图7 7月12日光伏输出功率预测结果

表10 7月12日光伏输出功率预测误差

这2种预测模型的迭代次数以及MAPE指标,如表11所示.

表11 预测模型的迭代次数和MAPE

由预测结果图7、表10与表11数据来看,冬季因为气温偏低,太阳辐射量减少,且多云天气占比大等原因造成预测误差相比夏季有所升高.预测日天气类型为多云,除了气温、太阳辐射量外,湿度、风速也都偏低.但总体上,经过改进后的模型预测,将误差从55.95%进一步缩小至19.07%,收敛速度提升了73%,可见改进之后的预测结果仍具有较高参考意义.

3.4 春季算例

传统BP神经网络模型与改进后模型对2015年10月12日7:00-19:00光伏发电系统输出功率预测结果,如图8和表12所示.

图8 10月12日光伏输出功率预测结果

表12 10月12日光伏输出功率预测误差

这2种预测模型的迭代次数以及MAPE指标,如表13所示.

表13 预测模型的迭代次数和MAPE

由预测结果图8、表12和表13数据来看,春季气温回暖,预测日天气类型为阵雨.根据当地气象数据报告显示当天14:00和16:00雨量偏大,对光伏发电输出功率预测的准确性有一定的影响.另外误差较大的时刻还出现在早晨,无论传统BP模型还是改进后模型的相对误差都大于其他时刻,但此时输出功率较小,不会因此造成绝对误差增大从而影响电力系统.

综上述,总体来看BP神经网络预测模型在夏季时的预测准确度最高,而在秋季时的预测准确度最低,经以上分析可见,气象环境的随机因素对预测模型影响仍然较大;同时通过4个季节的预测结果,验证了改进后的BP模型比传统BP模型在预测精度和收敛速度上均有大幅提升,充分证明了此方法在在工程应用上具有一定的可行性和参考价值.

4 结论

神经网络能够很好反映出输入与输出之间的非线性映射关系,相对于人工建模的预测方法,其方法更简便、准确.本文建立了一种基于改进BP神经网络的光伏发电预测模型,在模型构建时充分考虑了多种气象因素的影响,经过相关性分析,说明了这些影响因素对于光伏发电的紧密关系.针对传统BP学习训练中容易陷入局部极小值而得不到最优值、收敛速度慢等问题,文中使用了增加动量项、自动选取最佳隐含层的方法对其进行改进.最后,通过澳大利亚一处光伏发电站的运行数据对预测模型进行比较验证,针对春、夏、秋、冬4个季节的预测数据进行分析,其结果在预测精度和收敛速度方面均有明显提升.

猜你喜欢
输出功率发电神经网络
基于神经网络的船舶电力系统故障诊断方法
“发电”
MIV-PSO-BP神经网络用户热负荷预测
工程应用中的光伏组件输出功率衰减率评估
基于改进Hopfield神经网络的对地攻击型无人机自主能力评价
含风光发电的互联电力系统自动发电控制论述
三次样条和二次删除相辅助的WASD神经网络与日本人口预测
感应加热电源的调频调功研究
找只老鼠来发电