您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 基于BP神经网络的光伏系统发电量物理预测模型设计
基于BP神经网络的光伏系统发电量物理预测模型设计1.前言光伏系统发电量预测是指估计出未来一天或几天的光伏发电量数据,它是光伏监控系统能量调度的一项重要日常工作,是制定输配电方案的主要依据。发电量预测作用的大小主要取决于预测精度,所以如何提高预测精度是目前研究发电量预测理论与方法的重点。本文对光伏阵列的输出特性进行分析,根据光伏系统发电量的历史数据以及气象资料以及影响光伏发电的因素,建立BP神经网络的光伏系统发电物理预测模型,它不受前一天或者前一个发电状况的影响,只要有未来某一天或某一个时间段的气象资料(预测)就可以预测未来某一天或某一个时间点的光伏发电量。2.BP神经网络介绍1985年,David.Rumelhart和J.McClelland提出了BP神经网络的误差反向后传BP(BackPropagation)学习算法。其基本原理是利用输出后的误差来估计输出层的直接前导层的误差,再用这个误差估计更前一层的误差,如此一层一层的反传下去,就获得了所有其他各层的误差估计。神经网络在外界输入样本的刺激下不断改变网络的连接权值,对各连接权值的动态调整以使网络的输出不断地接近期望的输出。BP神经网络的学习类型为有导师学习,利用样本对网络进行学习训练,将输出误差以分摊给各层所有单元的形式,通过隐层向输入层逐层反传,学习过程是信号的正向传播,误差的反向传播。输入样本--输入层--隐层--输出层。它的学习规则是使用最速下降法,通过反向传播来不断调整网络的权值和阈值,使网络的误差平方和最小。因此,BP神经网络模型的建立需要用到激活函数。由于其学习规则为最速下降法,所以激活函数必须收敛,即在其定义域内处处可导。本文用到的激活函数为S函数,即:-1(x)=1+xfe。BP神经网络3层结构模型如图1所示。1x2x1Nx1y2y2Ny1z2z3Nz123N1T2Tihwhjw---隐含层输出层输入层3NT图1BP神经网络3层模型结构图若输出层的实际输出与期望的输出(教师信号)不符,则误差以分摊给各层所有单元的形式在各层表示,从而修正各层单元的权值。如果网络输出的误差减少到可接受的程度,训练结束,模型训练成功。如果训练次数进行到预先设定的学习次数,而网络输出的误差并没有减少到可接受的程度,训练结束,则模型训练失败。3层BP神经网络学习算法假设输入层有n个神经元,隐含层有p个神经元,输出层有q个神经元。定义变量:输入向量12n=(x,x,,x)x;隐含层输入向量12piii=(h,h,,h)ih;隐含层输出向量12po=(h,h,,h)oooh;输出层输入向量12=(y,y,,y)qiiiiy;输出层输出向量12o=(y,y,,y)qoooy;期望输出向量12q=(d,d,,d)od;首先要对输入的样本进行归一化处理。基本的数学公式是minmaxmin(-)/(-)PPPPP实测,这个公式计算的结果在(0-1)之间,也就是把样本数据归“1”。由于BP网络的激活函数输出在0-1,归一化也是归一到0-1之间,因此归一化的目的是为了能够适应BP网络的输出,同时也可以减小权值调整幅度。其次、能够使数据具有可参照性,而且数据之间的相对大小不至于差别很大。接下来给各连接权值分别赋一个区间(-1,1)内的随机数,设定误差函数e,给定计算精度值u和最大学习次数为M。随机选取第k个输入样本及对应期望输出,即12n()=(x(k),x(k),,x(k))xk,o12d()=(d(k),d(k),,d(k))qk。使用S型激活函数时BP网络输入与输出关系:1122nnnet=x+x++x(2-1)-net1=(net)=1+yfe(2-2)--211(net)=-=y(1-y)1+(1+)netnetfee(2-3)则隐含层各神经元的输入和输出:n=1(k)=(k)-bnhihiihix=1,2,,hp(2-4)h(k)=f(i(k))hhoh=1,2,,hp(2-5)o=1(k)=(k)-bpohohhyiho=1,2,,oq(2-6)o(k)=f(yi(k))oyo=1,2,,oq(2-7)利用网络期望输出和实际输出,计算误差函数对输出层的各神经元的偏导数()ok。ohoohoyieewyiw,(())()()phohoohhhohowhokbyikhokww(2-8)211((()()))2(()())()(()())f(())()qoooooooooooodkyokedkyokyokyiyidkyokyikk(2-9)利用隐含层到输出层的连接权值、输出层的()ok和隐含层的输出计算误差函数对隐含层各神经元的偏导数()hk。()()oohhoohoyieekhokwyiw(2-10)1()()(())()()hihhihnihihhiiihihhikeewhikwwxkbhikxkww(2-11)21212111((()()))()2()()()1((()f(())))()2()()1(((()f(())))()2()()qooohhhhqooohhhqpohohoohhhhdkyokhokehikhokhikdkyikhokhokhikdkwhokbhokhokhik(2-12)11()(()())f(())()(())f(())()qhooohoohqohohhohokdkyokyikwhikkwhikk利用输出层各神经元的()ok和隐含层各神经元的输出来修正连接权值。按照梯度下降原则,使连接权()howk的调整量()howk与hoe的负值成比例变化,所以可得1()()()()()hoohhoNNhohoohewkkhok(2-13)利用隐含层各神经元的()hk和输入层各神经元的输入修正连接权。1()()()()()()()hihhiihhihNNihihhihikeewkkxkwhik(2-14)计算全局误差2111(()())2qmookoEdkykm(2-15)判断网络误差是否满足要求。当误差达到预设精度或学习次数大于设定的最大次数,则结束算法。否则,选取下一个学习样本及对应的期望输出,返回到计算隐含层各神经元的输入和输出,进入下一轮学习。3.利用MATLAB建立基于BP神经网络光伏发电物理预测模型3.1.输入层神经节点的确定根据所给历史数据样本,通过对样本数据的筛选最终选定了2012年6月23日到2012年6月26日的有效数据作为仿真训练样本。根据训练样本确定了仿真模型采用5个输入变量,即平均温度、平均风速、平均光照强度、时段(零点到24点平均分为96个点,零点为0)、太阳入射角(以太阳入射角的余弦值体现)。其中输入按照光伏电池发电序列录入(从06:00——20:00,每15分钟一个发电序列点)。目前的模型没有将太阳入射角考虑到其中,用时段代替。3.2输出层神经节点的确定根据预测要求,发电量模型物理模型可以预测的是未来一天任意发电时间点(发电序列点)的发电量,发电时间在06:00——20:00之间的发电时间点单独预测,因此输出采用1个输出结点。3.3隐层结点的确定本仿真采用的是3层的BP网络。由于输入层结点为4个点,输出层为1个点。一般情况下根据求隐层结点公式来确定隐层结点数。公式:=++,(1a10)nmla,其中n为隐层结点个数;m为输入层结点个数;l为输出层结点个数。但是具体的隐层结点数根据具体仿真实验得到,由于样本数据较多因此为了达到训练的精度需要适当提高隐层结点的个数,本次仿真最终确定的隐层结点个数为5。4.仿真实验首先对样本进行归一化处理,调用“newff”建立BP前馈网络,根据样本数据特点选择传递函数“logsig”和“purelin”,训练函数选择“trainbr”。然后设置3层BP网络参数,调用训练函数“[net,tr]=train(net,p,t)”对样本进行训练,训练结束后并调用“a=sim(net,p)”函数对样本进行BP网络仿真。最后对样本进行测试,再次调用“a=sim(net,p)”函数对样本进行单点以及不同多点预测,同时计算误差,均方差以确定该仿真模型是否达到要求。图1图1为光伏预测物理模型样本训练及仿真结果。‘o’为预测值,‘+’是期望值即实际输出值。由图1可以看出本次仿真建立的光伏预测物理模型符合预测的精度要求。图2图2为利用训练好的物理模型对第三天的样本数据进行单独预测,‘*’为预测值,‘o’为期望值即实际输出值。因此可以看出本次仿真建立的伏预测物理模型达到了单独预测的目的,其精度也符合要求。
本文标题:基于BP神经网络的光伏系统发电量物理预测模型设计
链接地址:https://www.777doc.com/doc-2568694 .html