BP神经网络在风力发电机风向预测中的应用
2015-01-01新疆农业大学机械交通学院张东东
新疆农业大学机械交通学院 ■ 张东东
北京三力新能科技有限公司 ■ 崔新维
0 引言
1986年,Rumelhart D E和McClland J L提出了一种利用误差反向传播训练算法的神经网络,简称BP(Back Propagation)网络[1]。在人工神经网络的实际应用中,BP神经网络包含了神经网络理论中最精华的部分,由于其结构简单、可塑性强,故广泛应用于模式识别、函数逼近、信息分类和数据压缩等,80%~90%的人工神经网络模型采用BP网络或其变形,它是前馈型神经网络的核心部分[2]。由于它的数学意义明确,学习算法步骤分明,使其应用背景更加广泛。然而,依靠操作人员的经验建立合理的神经网络算法,编写程序仿真再分析结果需很长时间的试探,并且网络结构、训练参数及训练方法的改变往往会引起程序的更改,为设计和仿真带来诸多不便[3]。
Matlab神经网络工具箱以神经网络理论为基础,用Matlab 的语言构造出各种神经网络激活函数、训练函数及各种网络集成块等。设计者通过对激活函数、网络函数等的调用,仅需写很少的源代码,即可完成必需的科学计算。根据各种典型修正网络权值规则,配合网络训练过程,用Matlab编写出各种网络设计与训练的子程序,网络的设计者可根据所需调用工具箱中有关神经网络的设计训练程序,使自己能从繁琐的编程中解放出来,集中精力去思考问题和解决问题[4,5]。
1 BP神经网络设计的基本方法
BP网络,即误差反向传播网络,是一种前馈型网络,由1个输入层、若干隐含层和1个输出层构成。图1为常用BP网络结构[6]。
图1 BP神经网络模型
如果输入层、隐含层和输出层的节点个数分别为n、q、m,则该3层网络可表示为BP(n, q, m),利用该网络可实现n维输入向量Xn=(x1, x2,…, xn)T到m维的输出向量Ym=(y1, y2,…, ym)T的非线性映射。输入层和输出层的节点数根据具体问题而定,隐含层的节点数q常根据式(1)进行设计。
式中,q为隐含层节点数;n为输入层节点数;m为输出层节点数;a为1~10之间的常数。
激活函数f(u)常采用Sigmoid型激活函数:
式中,参数δ1表示偏值,正的δ1使激活函数水平向左移动;δ0的作用是调节Sigmoid函数的形状,较小δ0使Sigmoid函数逼近一个阶跃限幅函数,而较大δ0将使Sigmoid函数变得较为平坦。
选用Sigmoid型的激活函数时,数据要进行归一化处理,归一化公式为:
隐含层将信息传到输出层,最终得到的输出结果为:
以上所述是信息在神经网络中信息正向的传播过程。BP网络特有的是误差反向传播,当网络的输出与期望输出存在误差时,误差反向传播,进而修正网络权值和阀值。网络权值和阀值的修正公式为:
BP网络会不断修正网络权值和阀值,直到达到预先设定的训练次数时停止。如果在训练过程中全局误差提前达到设定值,则停止训练,此网络收敛;如果在所设定的训练次数结束时系统的全局误差还未达到设定值,则此网络无法收敛。
2 BP神经网络在风力发电机风向预测上的实例分析
本文根据2012年6月12日新疆达坂城风电场中某台风力发电机每秒所测的相关风向数据,从中随机选出两段连续的风向数据,经过相关修正得到的数据如图2和图3所示。
图2 10:00:00~10:12:00期间每秒的风向数据
图3 12:00:00~12:08:00期间每秒的风向数据
2.1 设定输入向量和输出向量
将图2的风向数据作为训练集使用,按每连续15 s的风向数据为一个训练的组织样本,根据图1中的风向数据可得到700组数据,即BP网络训练集的输入向量是一个15维矩阵,设为P;将每个15 s后第5 s的风向数据作为输出因子,则BP网络训练集的输出向量是一个1维矩阵,设为T。将图3的风向数据作为测试集,同样将每连续15 s的风向数据作为一个测试的输入向量,设为P_Test;将每个15 s后第5 s的风向数据作为测试的输出向量,设为T_Test。在对这些数据进行训练前要进行归一化处理,可按式(1)进行。Matlab神经网络工具箱中有专门进行数据归一化处理的工具,在对数据进行训练前插入归一化处理程序即可,这样省去了繁琐的数据归一化处理工作。
2.2 创建BP网络
本研究采用3层BP网络,输入向量是15维的数据,那么输入层节点数为15;输出向量是1维的数据,则输出层节点数为1;根据隐含层节点的计算式(1),设隐含层的节点数为9;训练次数为1000;训练目标为0.001;学习率为0.1;由于本次风向的训练数据较多,而实际应用中要求BP网络要有较快的训练速率来解决风向较快的随机波动性问题,BP网络训练的算法中LM(levenberg-marquardt)算法是为了训练中等规模的前馈型神经网络而提出的最快速算法,它对Matlab实现也相当有效,因此本次研究选用LM算法。
2.3 训练BP网络并进行预测仿真
编写Matlab程序,将图2的数据按上述要求进行训练,训练的误差性能曲线如图4所示。由图4可知,经过6次训练,系统的误差性可达到训练的目标要求。
图4 训练过程的误差性能曲线
预测的误差曲线如图5所示。由图5可知,BP网络预测的风向与实际风向的误差中有24次误差在5°~10°之间,风向误差超过10°的情况只有4次,剩余93%的风向误差在5°内。
图5 预测风向与实际风向的测试误差曲线
2.4 结果分析
本次BP网络的训练算法中使用LM算法仅6次就达到了目标要求,这与BP网络其他普通训练中达上百次的训练算法相比速度快很多,也反映出LM训练算法在中等规模前馈网络的训练中所具有的优越性。仿真所得预测风向的误差93%都在5°内,预测精确性较高。误差在5°内属于BP网络泛化精度范围内;而大于5°的28次误差是由训练的样本集较少引起的,若增大此训练集,大于5°的误差次数可有效减少。
3 结论
BP神经网络训练速度较快、学习速率快、泛化能力强,虽然用BP网络预测的风向与实际风向还有一定误差,但该误差与风力发电机上偏航执行动作的±15°风向误差相比精度较高;这里预测的风向用在风力发电机的偏航系统中不是为了取代实际风向,而是作为风力发电机偏航执行动作前的一个预判,因此BP网络预测风向应用在实际的风力发电机上具有更大的可行性。
[1] 魏海坤. 神经网络结构设计的理论与方法[M]. 北京: 国防工业出版社, 2005.
[2] 张立明. 人工神经网络的模型及其应用[M]. 上海:复旦大学出版社, 1993.
[3] 汪定伟. 智能优化方法[M]. 北京: 高等教育出版社, 2007.
[4] 阮晓钢. 神经计算科学[M]. 北京: 国防工业出版社, 2006.
[5] 李明. 基于遗传算法改进的BP网络的城市人居环境质量评价研究[D]. 沈阳: 辽宁师范大学, 2007.
[6]林香, 姜青山, 熊腾科. 一种基于BP网络的预测模型[D].厦门: 厦门大学软件学院, 2006.