本文主要介绍我们在人工神经网络(Artificial Neural Network)ANN在电力系统短期负荷预测中进行的研究工作。
电力系统短期负荷预测的电力调度中十分重要的一个环节,其结果将对发电机生产计划的制定、水火发电的合理配置、燃料配置和安全分析设备的短期维修及电网能量的传播等产生很大的影响。在信息化建设蓬勃发展的今天,传统的人工预测已经越来越不能满足电力工业发展的需要,而以ANN为代表的预测方法则越来越显示出其巨大的优越性。准确的负荷预测有助于提高系统的安全性和经济性,能够减少发电成本。因此,寻求合适的负荷预测方法以最大限度的提高预测精度具有重要的应用价值。
本文在进行短期负荷预测的过程中,主要进行以下的工作:介绍和分析国内外现有的负荷预测技术现状;简要说明ANN;几种流行BP网络算法的理论介绍和算法的选取;根据负荷组成成分的分析及主要成分的变化规律,决定神经网络的输入以及训练样本数量的选取和处理;比较不同隐含层神经元数量对预测结果的影响,然后选取最优值;检验新的预测模型在实际的使用效果;根据实际应用情况提出存在的问题和后续的研究的见解。
关键词:短期负荷预测,人工神经网络,BP算法
Abstract
This paper mainly presents our work on the research of short term load forecasting by using Artificial Neural Network(ANN).
The short-term electric load forecasting is a very important link in the electric power dispatch ,resulted in a great improvement in the establishment of the production plan of generators,the reasonable deployment of fire and water generate electricity and fuel ,the short-term maintenance of safe analysis equipments and the spread of the energy of electrical network.Nowadays informatization construction is developing so vigorously that traditional artificial forecast can not yet satisfy the needs of electric power industrial development more and more.However,the forecast method for representative ,which is ANN,shows its huge superiority.Accurate load forecasting is advantageous to improveing the security and economic effect of power system and can reduce the cost of generating electricity.Finding an appropriate load forecasting method to improve the accuracy of precision has important applicationg value.
This paper mainly introduced the topic as the following in the short-term load forecasting:The introduciong of and analysis of existing short-term load forecast technology both domestic and overseas.The brief introduction on ANN.The main popular BP(Error Back Propagation Network)training function and the choice in this function.According to the annlysis of composition of the load and the change rule of the main factor,decide the input of the arrificial neural network as well as the choice and manipulantion of the tiaining samples.Some formulas on choice of the number of hidden layer,the comparison on different code number of hidden layer and their influence on the forecast result after that get the best choice.Test the new module through a sample .The improvement to further study and the solution according to the problem appeared in the pratice.
Key words: short-term load forecasting, artificial neural network,BP training function
目 录
1 绪论 ........................................................................................................................... 1
1.1负荷预测的背景 .............................................................................................. 1 1.2 负荷预测概述 ................................................................................................. 1
1.2.1 负荷预测的特点 ................................................................................... 1 1.2.2 负荷预测的基本原理 ........................................................................... 2 1.2.3 负荷预测的意义 ................................................................................... 3 1.3 国内外负荷预测的研究现状 ......................................................................... 4 2 负荷预测方法综述 ................................................................................................... 6
2.1 传统的预测方法 ............................................................................................. 6
2.1.1 时间序列法 ........................................................................................... 6 2.1.2 回归预测法 ........................................................................................... 7 2.1.3 趋势外推法 ........................................................................................... 7 2.2 负荷预测技术的新进展 ................................................................................. 8
2.2.1 模糊控制法 ........................................................................................... 8 2.2.2 人工神经网络预测法 ........................................................................... 8 2.2.3 优选组合预测技术 ............................................................................... 8 2.3 本章小结 ......................................................................................................... 9 3 人工神经网络介绍 ............................................................................................... 10
3.1 人工神经网络综述 ....................................................................................... 10
3.1.1 人工神经网络的基本模型 ................................................................. 10 3.1.2 人工神经网络的特征 ......................................................................... 14 3.1.3 人工神经网络的分类 ......................................................................... 14 3.1.4 神经网络的发展概况 ......................................................................... 15 3.2 BP神经网络 .................................................................................................. 16
3.2.1 BP网络模型与结构 ............................................................................ 17 3.2.2 BP神经网络的学习规则 .................................................................... 18 3.2.3 BP网络的局限性及改进 .................................................................... 22 3.3 本章小结 ....................................................................................................... 24
4 基于BP网络负荷预测建模及其仿真研究 ........................................................... 25
4.1 仿真工具MATLAB的简介 ......................................................................... 25 4.2负荷预测建模的一般步骤 ............................................................................ 26 4.3负荷预测神经网络结构模型的分析 ............................................................ 27 4.4 短期负荷预测的BP网络建模及仿真 ........................................................ 27 结论 ............................................................................................................................. 35 参考文献 ..................................................................................................................... 36 致谢 ............................................................................................................................. 38 附录 本文仿真程序 ................................................................................................... 39
1 绪论
1.1负荷预测的背景
电力系统的作用是为各类用户尽可能经济地提供可靠而合乎标准要求的电能,随时满足各类用户的要求,也就是满足负荷要求。由于电力的生产和使用具有特殊性,即电能是不能储存的,这样就要求系统发电出力随时和系统负荷的变化动态平衡,否则,就会影响供用电的质量,重则危及系统的安全与稳定。电力系统负荷预测因此而发展起来,电力系统负荷预测是实现电力系统安全、经济运行的基础,尤其是在电力市场条件下,负荷预测不仅对电力系统操作人员、电力市场规划者、供电者有着重要的作用,而且对其他的电力市场参与者也很重要。当负荷预测的差额造成大量运行成本和利润损失时,高精度和快速的负荷预测就成为电力系统可靠运行和电力市场供求平衡的保证, 因此对先进的智能预测方法进行研究是很有必要的。近几年,我国极其严重的电力紧张,说明了电力建设必须具有前瞻性,而对符合的预测就是其中一个关键环节。目前电力系统负荷预测已成为工程科学中重要的研究领域,是电力系统自动化中一项重要内容。
短期负荷预测在电网运行实时控制和发电规划中具有重要地位, 提高负荷预测精度
对于合理安排电网运方式、制定机组检修和进行电力需求管理意义重大。且随着电力系统的逐步发展和完善,负荷预测己成为能量管理系统((EMS)中一项独立的内容⋯。而且,在当前电力系统市场化的必然趋势下,负荷预测己成为电力市场交易管理系统中必不可少的一部分。 1.2 负荷预测概述 1.2.1 负荷预测的特点
由于负荷预测是根据电力负荷的过去推测它的未来数值,所以负荷预测工作所研究的对象是不确定事件。只有不确定事件、随机事件,才需要人们采用适当的预测技术,推知负荷的发展趋势和可能达到的状况。这就是负荷预测具有以下明显的特点12:
1、准确性:因为电力负荷未来的发展是不确定的,它要受到多种多样复杂因素的影响,而且各种影响因素也是发展变化的。人们对于这些发展变化有些能够预先估计,有些却很难事先预见到,加上一些临时变化的影响,因此就决定了预测结果的不准确性或不完全准确性;
2、条件性:各种负荷预测都是在一定的条件下做出的,对于条件而言,又可分为
1
必然条件和假设条件两种;
3、时间性:各种负荷预测都有一定的时间范围,因为负荷预测属于科学预测的范畴,因此,要求有比较确切的数量概念,往往需要指明预测的时间;
4、多方案性:由于预测的不准确性和条件性,所以有时要对负荷在各种可能的发展情况下进行预测,就会得到各种条件下不同的负荷预测方案。 1.2.2 负荷预测的基本原理
电力负荷预测是根据现在和过去时刻的用电负荷情况,估计未来时刻用电负荷的大小。因此它的研究对象是不确定事件、随机事件。而电力负荷预测要预知负荷的发展趋势和可能达到的状况,以下介绍负荷预测的一些基本原理,用于指导负荷预测工作1。
1、可知性原理
也就是说预测对象的发展规律、其未来的发展趋势和状况是可以为人们所知道的,这是人们在进行预测活动的基本依据。
2、可能性原理
因为事物的发展变化是在内因和外因共同作用下进行的,内因的变化及外因作用大小不同,因此事物的发展变化会有很多种可能。对某一具体指标的预测,往往是按照某发展变化的多种可能性,进行多方案预测的。
3、连续性原理
又称惯性原理,连续性原理是指预测对象的发展是一个连续统一的过程,其未来发展是这个过程的继续。该原理认为事物发展变化过程中会将某些原有的特征保持下来,延续下去。电力系统负荷的发展变化同样存在着惯性,这种惯性正是进行负荷预测的主要依据。
4、相似性原理
在很多情况下,作为预测对象的一个事物,其现在的发展过程和发展状况可能与过去一定阶段的发展过程和发展状况相类似,因此可以根据已知发展过程和状况来预测所预测对象的未来发展过程和状况,这就是相似性原理。目前,预测技术中使用的类推法或类比法,就是这个原理的预测方法。
5、反馈性原理
反馈就是利用输出返回都输入端,再调节输出结果。人们在预测活动实践中发现,当预测的结果和经过一段实践所得到的实际值存在差异时,可利用这个差距,对远期预
2
测值进行反馈调节,以提高预测的准确性。在进行反馈调节时,实质上就是将预测的理论值也实际相结合,首先认真分析预测值和实际值之间的差距及产生差距的原因。然后根据查明的原因,适当改变输入数据及参数,进行反馈调整,使预测质量进一步提高。
6、系统性原理
系统性原理认为预测对象是一个完整的系统,它本身有内在的系统,又因与外界事物的联系形成它的外在系统。预测对象的未来发展是系统整体的动态发展,而整个系统的动态发展与它的各个组成部分和影响因素之间的相互作用相互影响密切相关。系统性原理强调整体最佳,只有系统整体最佳的预测,才是高质量的预测,才能为决策者提供最佳的预测方案。 1.2.3 负荷预测的意义
随着电力市场化改革的深入,各电力公司作为电力市场的主体,一切经济活动都以经济效益为中心,都要立足于电力市场,深入研究电力市场的供需形势及其发展是公司经营活动的基础,而电力负荷预测工作是准确把握市场脉搏、分析未来电力需求走势的必要工具。短期负荷预测的重要意义可以归纳如下:
(1)短期负荷预测是电力系统优化调度(如机组最优组合、经济调度、最优潮流计算等)的基础工具,是电力企业日常经营管理工作的重要组成部分,准确的短期负荷预测是电网调度机构制定供电计划和做电网供需平衡的关键,它有助于系统运行人员的高效地预估电能的生产、输送、分配以及消费情况,制定出经济、合理的发电方案。对一个大电网,根据短期负荷预测提供的信息,即可以实现发电容量的合理调度,对运行中的发电厂的出力要求提出预告,从而可以对发电机组出力变化的情况先得以估计,又可以经济合理地安排本网内各发电机组的启停机,从而可以使系统在安全范围内,保持必要的旋转储备容量的耗费为最小,使发电机成本为最小,确保电网安全、稳定、优质、经济地运行。
(2)随着我国电力市场的进一步发展,短期负荷预测在电力系统的经济运行方面的影响越来越明显,对于发电公司,短期负荷预测是制定发电计划和报价的依据;对于供电公司,短期负荷预测为供电方制定订购计划提供依据;对于输电公司,短期负荷预测也是制定发电计划及安全、可靠、经济运行的基础。
(3)电价是电力市场的杠杆和核心内容3,体现了电力市场的竞争性和开放性,而电价的制定是在未来给定电价计算期的负荷预测的基础上完成的。因此,发电企业要
3
保证其电价的竞争能力并且盈利,就必须获得精确的短期负荷预测值,才能定出既有竞争力又保证盈利的电价。
(4)提供转运业务是电力市场中的一项基本功能,是电力市场平等竞争的必要条件,可以给电网带来巨大效益。而电网在执行转运业务时是根据短期负荷预测的数据及各发电机的运行参数来制定发电计划和调度计划,所以准确的短期负荷预测才能有效地促进供、运、用电三方的协调。
(5)系统充裕性评估(Projected Assessment of System Adequacy)PASA由电力调度中心负责,主要内容是分析预测中短期系统供需平衡和系统安全情况,目的是让市场成员正确了解信息。PASA4是发电市场得以顺利进行的基础。这也体现了准确的短期负荷预测对系统及发电市场的重要影响和作用。
因此,电力负荷预测工作的水平已成为衡量一个电力企业的管理是否走向现代化的显著标志之一,尤其在我国电力事业空前发展的今天,电力负荷预测问题的解决已经成为面临的重要而艰巨的任务。如何提高预测精度是目前研究短期负荷预测理论与方法的中心和重点,准确的短期负荷预测已成为实现电力系统管理现代化的重要内容之一。 1.3 国内外负荷预测的研究现状
长期以来,国内外对电力的预测工作进行了长期研究。产生了许多电力负荷预测的理论和方法。一类是电力弹性系数、综合电耗法、产值单耗法和增长速度法。另一类是一元相关法、多元相关法、回归分析法和灰色系统法等。如果使用前一类方法,则需要先预测出产值、产量和增长速度等数据。目前我国经济正处于转型时期,很多数据无法测出或无法侧准。而且已有的用电系数、用电定额等如今也会发生变化,用两种准确度不高的数据来计算,得到的预测值也不会很准确。如果使用后一类方法,首先要用统计分析方法找出用电量、负荷与时间、各行业总产值、国内生产总值等数值之间的关系和变化的规律,从而建立数学模型,然后用数学模型来进行预测。整个预测的过程也是对数学模型不断的进行校验和调整的过程。这个过程一般来说也不是短时间就可以完成的。
有些学者已开始将各种智能化算法,如遗传算法、最小绝对值滤波算法等用于在受到诸如气息变化、经济变化等随机因素干扰情况下的电力系统负荷准确预测。由于电力系统的负荷受众多不确定因素的影响,是典型的灰色系统,运用灰色系统来分析众多不确定因素与电力负荷预测的关联度已经运用广泛,但如何准确定量描述,以何种准则来
4
进行不确定因素的人工修正仍是较为困难。
同时,科学家们正在研究新的预测方法,最有代表性的方法有:模糊预测技术和利用人工神经网络的预测方法。国内外关于 发表的论文很多。但对这些方法人们还尚未获得统一认识,还没形成公认的预测数学模型,所以,在生产实际中推广应用还有一定的距离。然而,它们的发展前景却是不可估量的.
5
2 负荷预测方法综述
由于电力负荷预测的重要性和自身的特点,人们在理论和实践上展开了广泛的研究,希望找到使用方便、精度高、计算快的预测方法。目前,国内外发表的电力系统负荷预测的文献很多,所采用的预测方法和预测精度各有不同,应用于工程实际的预测方法也很多。按负荷预测方法的参考体系来看,预测方法可分为确定性和非确定性预测法两类。前者把电量和电力负荷用一个或一组方程来描述,电力和电力负荷与影响其变化的因素之间有着明确的对应关系。这类方法采用的模型多达几十种,如弹性系数法、时间序列法、回归分析法等。所谓非确定性预测法是认为电力负荷的变化受众多模糊的、不确定的因素影响,它不可能用精确的是数学方程来描述。近年研究的并已使用于实际工程的不确定性预测有灰色预测法、模糊预测法(如模糊聚类分析法、模糊贴近度法等)、专家系统预测法。人工神经网络方法等5. 2.1 传统的预测方法 2.1.1 时间序列法
所谓时间序列法,就是根据目前为止的历史资料数据,即时间序列所呈现出来的发展趋势和规律,用数学的方法进行延伸、外推,估计出今后各时期的指标值。时间序列中的预测变量是受许许多多。大大小小的因素影响、决定的,但时间序列的分析和预测方法只是从这些因素的综合影响的最终结果,即指标值本身分析、研究其发展变化趋势和规律,而不去追究其发展变化的内在原因及指标与各影响因素之间的因果关系。其主要数学模型有AR模型、MA模型和ARMA模型等,其通用表达式为:
Y(ti)ii0i0Pqja(tj) (2.1)
式中:i为自回归数;P为自回归阶数;j为滑动平均系数;q为滑动平均阶数;
Y(ti)为ti时刻的负荷值;a(ti)为ti时刻的白噪声。
该方法原理成熟应用简便,主要根据过去的负荷值及干扰值来推算未来负荷,不需要相关因素的资料,因此在一些相关因素的预测值、某些常数难以得到时比较适用6。另一方面这个方法要求的历史数据少,但由于是基于统计的模型,所以预测精度不高。由于中长期电力负荷受多种因素的影响,所以此方法对电力负荷的预测存在着局限性;
6
2.1.2 回归预测法
回归分析法是电力负荷预测的一种常用方法。一个地区电力需求与该地区的国内生产总值。人口数量等多个因素相关。电力负荷回归模型预测67就是根据负荷过去的历史资料,建立可以进行数学分析的数学模型,对未来的负荷进行预测。从数学上看,就是用数理统计中的回归分析法,即通过对变量的观察数据进行统计分析,确定变量之间的相关关系,从而实现预测的目的。回归预测包括线性回归和非线性回归,两者都包括一元线性回归和多元线性回归两种形式。主要采用多元非线性回归模型建立负荷与影响因素之间的关系,预测值可写为:
Y(t)abixi(t) (2.2)
i0n式中:Y(t)为t时刻的预测负荷值;xi(t)为第i个影响负荷变化的因素在t时刻的取值;
a,bi为回归系数。
影响电力系统负荷的因素很多,如气象因素(如温度、气候)、时间因素(如日夜、工作日等)、季节因素以及一些随机因素等。实际负荷预测时应根据客观条件选择合适的因素建立模型。回归分析法的主要优点在于它能够通过模型来解释各变量之间的关系,它对因果关系的处理是十分有效的。同时,它也有缺点,一是要收集较多的观测值,它的预测准确度与样本含量有关,所以付出的代价一般比较大;二是计算量大;三是要经常评审模型。 2.1.3 趋势外推法
当电力负荷依时间变化呈现某种上升或下降的趋势,并且无明显的季节波动,又能找到一条适合的函数曲线反映这种变化趋势时,就可以用时间t为自变量,时序数值y为因变量,建立趋势模型yf(t)。当有理由相信这种趋势能够延伸到未来时,赋予变量所需要的值,可以得到相应时刻的时间序列未来值,这就是趋势外推法。外推法有线性趋势外推法、对数趋势外推法、二次曲线趋势外推法、指数曲线趋势外推法,生长曲线趋势外推法1。
应用趋势外推法有两个假设条件:(1)假设负荷没有跳跃式变化;(2)假设负荷的发展因素也决定未来的发展,其条件是不变或变化不大。选择合适的趋势模型是应用趋势外推法的重要环节,图像识别法和差分法是选择趋势模型的两种基本方法。
7
趋势外推法的优点是只需要历史数据、所需的数据量较少。缺点是如果负荷出现变动,会引起较大的误差。 2.2 负荷预测技术的新进展
近年来,预测理论技术取得了很大的进展,新的预测方法不断出现,这些方法为电力负荷预测问题的研究提供了有力的工具,主要包括:模糊控制法、灰色系统法、专家系统预测法、人工神经网络预测法、小波分析法、优选组合预测法等。下面对其中几种作简要介绍。 2.2.1 模糊控制法
模糊控制法首先将负荷预测的输入、输出空间划分为不等的模糊集合,如高、中、低等,然后用一组模糊规则来表示负荷预测输入、输出间的关系。每一条模糊规则是一个模糊IF-THEN关系,关系前件是对各个输入变量不同模糊集合,关系后件是输出变量表达式,输出变量表示为各输入变量的线性组合,第i条规则可表示为:
i Ri:IF xi is A1i AND x1 is A2 ……AND xm is
iAm
iiip1ix1p2x2pmxm THEN fip0xj,j1,2,,m为输入变量。其中,Aij,j1,2,,m为输入变量xj的第i个模糊集合,
相应隶属于子函数可采用高斯子函数或三角形子函数等。fi是第i条规则的输出部分,
pij,j1,2,,m为规则的输出部分中输入变量的相应系数,为常数项。对于一组输入变量xj,j1,2,,m,模糊控制的最终输出为各规则输出的加权模糊值。 2.2.2 人工神经网络预测法
负荷预测是人工神经网络(ANN)在电力系统中的主要应用部分。由于其具有高度非线性泛化和并行处理能力,不依赖于人工的经验,通过学习获得系统输入和输出之间的子函数连接关系。神经网络不是首先确定一个子函数形式,而是通过训练历史数据,得出天气变量和预测负荷的关系。它具有信息记忆、自主学习、知识推理和优化计算的特点,其自学习和自适应功能是常规算法和专家系统所不具备的。用于负荷预测的人工神经网络主要有反向传播(BP)网络、径向基函数(RBF)网络、反馈性神经(Elma)网络等8。在第三章将对ANN作详细介绍。 2.2.3 优选组合预测技术
优选组合预测910有两类概念,一指将几种预测方法得到的预测结果,选取适当的
8
权重进行加权平均的一种预测方法;二是指在集中预测方法中比较,选择拟合度最佳或差标准最小的预测模型作为最优模型进行预测。组合预测方法是建立在最大信息利用的基础上,它集结了多种单一模型所包含的信息,进行最优组合。因此,在大多数情况下,通过组合预测可以达到改善预测结果的目的。
组合预测是在单个预测模型不能完全正确地描述预测量的变化规律时发挥其作用。一个能够完全反映实际发展规律的模型进行预测完全可能比用组合预测效果好。如果可以找到一个能够很好地反映经济发展过程规律的模型,则用这个模型预测是很合适的,如果这个模型不易找到,或者把握不大,则采用不同预测角度建立多种模型进行组合预测是一种有效的补偿方法,特别是简单平均组合预测更是一种较为简便、稳健的实用方法。组合预测理论认为:对同一预测问题而言,多个不同预测模型的线性组合在一定条件下能够有效地改善模型的拟合能力和提高预测的精度因此,应用优化组合预测方法进行电力负荷预测,能将各个模型有机地组合在一起,综合各个模型的优点,获得更为准确的预测结果,优化组合预测方法从理论上可以求得最佳的组合权系数。如果这个权系数能保持稳定,应用优化组合预测方法将取得很好的效果。但实际上优化组合预测方法得出权值常常不稳定,从而影响预测结果精度。其优点是预测精度较高,确定性较好11.缺点是受到两方面的限制:一个是不可能将所有在未来起作用的因素全包含在模型中;另一个是很难确定众多参数之间的精确关系在各个部门间转换模型。 2.3 本章小结
本章只是介绍了电力系统负荷预测的传统方法中的几种,还有其他方法,这里就不
作介绍,如最小二乘拟合方法、卡尔曼滤波法、专家系统法等。传统的短期负荷预测方法存在一些缺陷,如数值不稳定,未能考虑温度和气象因素,在预测精度和速度上未能取得满意的效果,这也就是为什么在人工神经网络方法出现后,人工神经网络首先在电力系统负荷预测上取得成功的原因。
9
3 人工神经网络介绍
人工神经网络(Artificial Neural Networks, ANN),一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。人工神经网络具有自学习和自适应的能力,可以通过预先提供的一批相互对应的输入-输出数据,分析掌握两者之间潜在的规律,最终根据这些规律,用新的输入数据来推算输出结果。神经网络技术作为智能科学的领头羊,是今年来发展起来的一门十分活跃的交叉学科。它涉及生物、电子、计算机、数学、物理等学科,有着广泛的应用前景。 3.1 人工神经网络综述 3.1.1 人工神经网络的基本模型
美国神经网络学家 Hecht Nielsen 给出的定义是:神经网络是由多个非常简单的处理单元彼此按某种方式相互连接而形成的计算机系统,该系统是靠其状态对外部输入信息的动态响应来处理信息。人工神经网元的研究源于脑神经元学说19世纪末,在生物、生理学领域,Waldeger等人创建了神经元学说。人们开始认识到,复杂的神经系统是由数目繁多的神经元组合而成。大脑皮层神经元的类型有多种,它的基本结构如图3.1所示。
图3.1 神经元结构示意图
对于这样一种多输入、单输出的基本单元可以进一步从生物化学、电生物学、数学等方面给出描述其功能的模型。从信息处理观点考察,为神经元构造了各种形式的数学
10
模型。下面介绍经典的McCulloch-Pitts模型,图3.2给出这种模型的示意结构图12。对于第j个神经元,接受多个其他神经元的输入信号xi。各突触强度以实系数wij表示,这是第i个神经元对第j个神经元作用的加权值。利用某种运算把输入信号的作用结合起来,给出它们的总效果,称为“净输入”,以Neij或Ij表示。净输入表达式有多种类型,其中最简单的一种形式是线性加权求和,即:
Neijwijxi (3.1) 此作用引起神经元j的状态变化,而神经元j的输出yj是其当前状态的函数。
x1 w1jw2jx2
f yj
wnj xn
j
图3.2 McCulloch-Pitts模型结构示意图 McCulloch-Pitts模型的数学表达式为:
yjsgnwijxij (3.2)
i式中,j为阈值,sgn是符号函数,当净输入超过阈值时,yj取+1输出,反之为-1输出。如果考虑输出与输入的延时作用,表达式可修正为:
yjt1sgnwijxitj (3.3)
i利用大量神经元相互连接组成的ANN将显示出人脑的若干特征,ANN也具有初步的自适应与自组织能力。在学习或训练过程中改变突触权重wij值,以适应周围环境的要求。同一网络因学习方式及内容不同可具有不同的功能。ANN是一个具有学习能力的
11
系统,可以发展知识,以至超过设计者原有的知识水平。通常,它的学习(或训练)方式可分两种,一种是有监督或称有导师的学习,这时利用给定的样本标准进行分类或模仿;另一种是无监督学习或无导师学习,这时,只规定学习方式或某些规则,而具体的学习内容随系统所处的环境(即输入信号情况)而异,系统可以自动发展环境特征和规律性,具有更近似人脑的功能。
ANN的模型13主要有反向传播网络,径向基函数(RBF,Radial Basis Function)神经网络,PID(比例,积分,微分)神经网络,连续型Hopfield网络等等。其中,基于误差反向传播理论的前馈网络方法(BP模型)是一种比较成熟又比较简单和有效的方法。BP算法概念简单,形式对称,理论基础坚实,所得网络误差曲线较平滑,用BP算法进行负荷预测,应用最为广泛,本文就是用BP算法进行负荷预测的。
这里重点讨论一下激活函数,因为它是神经网络及神经元的核心。激活函数的基本作用是:
(1)控制输入对输出的激活作用; (2)对输入、输出进行函数转换;
(3)将可能无限域的输入变换成指定的有限范围内的输出。 下面是几种常见的激活函数14: 1、阈值型
这种函数将任意输入转化成0或1的输出,函数为单位阶跃函数。如图3.3,图3.4所示,具有此函数的神经元的输入、输出关系为:
1WPb0 AfWPb (3.4)
0WPb0
f 1 0 f 1 b 0 1 1
图3.3 不带偏差的阈值型激活函数 图3.4 带偏差阈值型激活函数
12
2、线性型
线性激活函数使网络的输出等于加权输入与偏差之和,如图3.5,图3.6所示,此函数的输入输出关系为:
AfWPbWPb (3.5)
f f 1 0 b 1 0 1 1
图3.5 不带偏差的线性激活函数 图3.6 带偏差的线性激活函数 3、Sigmoid型
Sigmoid型激活函数将任意输入值压缩到(-1,1)的范围内,如图3.7,图3.8所示,此种激活函数常用对数或双曲线正切等一类S开头的曲线来表示,如对数S型函数关系为: f1 (3.6)
1enb而双正切S型曲线的输入输出函数关系为:
1e2nb f (3.7)
1e2nb
f f 1 0 -1 A 1 0 -1 A
图3.7 对数S型激活函数 图3.8 双曲线正切S型激活函数
13
3.1.2 人工神经网络的特征
ANN吸取了生物神经网络的许多优点,因而有其固有的特点15: (1)高度的并行性
ANN是由许多相同的简单处理单元并联组合而成,虽然每个单元的功能简单,但大量简单处理单元的并行活动,使其对信息的处理能力与效果惊人。
(2)高度的非线性全局作用
ANN每个神经元接受大量其他神经元的输入,并通过并行网络产生输出,影响其他神经元。网络之间的这种相互制约和相互影响,实现了从输入状态到输出状态空间的非线性映射。从全局的观点看,网络整体性能不是网络局部性能的简单迭加,而表现出某种集体性的行为。
(3)良好的容错性与联想记忆功能
ANN通过自身的网络结构能够实现对信息的记忆。而所记忆的信息是存储在神经元之间的权值中。从单个权值中看不出所储存的信息内容,因而是分布式的存储方式。这使得网络具有良好的容错性,并能进行聚类分析、特征提取、缺损模式复原等模式信息处理工作;又宜于模式分类、模式联想等识别工作。
(4)十分强的自适应、自学习功能
ANN可以通过训练和学习来获得网络的权值与结构,呈现出很强的学习能力和对环境的自适应能力。 3.1.3 人工神经网络的分类
经过多年的发展,目前的神经网络模型已经有40多种。这些模型按照网络拓扑结构可以分为两类:前向网络和反馈网络16。
输入
输入
输出
输出
14
图3.9 前向神经网络 图3.10 反馈神经网络
前向神经网络中,网络中各个神经元接受前一级的输入,并输出到下一级,网络中没有反馈,可以用一个有向无环路图表示,如图3.9所示。这种网络实现信号从输入空间到输出空间的变换,它的信息处理能力来自于简单非线性函数的多次复合。网络结构简单,易于实现。反馈网络中,输出信号通过与输入连接而返回到输入端,从而形成一个回路,如图3.10所示。这种神经网络的信息处理是状态的变换,可以用动力学系统理论处理。系统的稳定性与联想记忆功能有密切关系。在前向网络中,有单层感知器、自适应线性网络和BP网络。在反馈网络中,有离散型和连续型霍普菲尔德网络。在实际的应用中,BP网络应用最为广泛,本文中将采用的也是这种网络模型。 3.1.4 神经网络的发展概况
神经网络的研究始于20世纪40年代,半个世纪以来,它经历了一条又兴起到衰退,又由衰退到兴盛的曲折发展历程,这一过程大致可以分为以下阶段17:
1、起步阶段
1943年,心理学家W.S.McCulloch和数学家W.Paitts在研究生物神经元的基础上提出了“M—P模型”,虽然该模型过于简单,且只能完成一些简单的逻辑运算,但它的出现开创了神经网络研究的先河,并为以后的研究提供了依据。
1949年,心理学家D. O. Hebb发表了论著《行为自组织》,首先提出了一种调整神经网络连接权值的规则——著名的Hebb学习律。直到现在,Hebb学习律仍然是神经网络中一个极为重要的学习规则。
1957年,F.Rosenblant提出了著名的感知器(Perceptron)模型20,这是第一个真正的人工神经网络。这个模型由简单的阈值神经元构成,初步具备了诸如并行处理、分布存储和学习等神经网络的一些基本特性,从而确立了从系统角度研究神经网络的基础。
1960年,B.Widrow和M.E.Hoff提出恶浪自适应线性单元(Adaline)网络,不仅在计算机上对该网络进行了模拟,而且还做成了硬件。同时,他们还提出了B.Widrow学习算法,改进了网络公值的学习速度和精度,后来这个算法被称为LMS算法,即数学上的最速下降法,这种算法在以后的BP神经网络及其他信号处理系统中得到了广泛的应用。
2、低潮阶段
15
1969年,美国麻省理工学院著名的人工智能专家M.Minsky和S.Papert共同出版了名为《感知器》的专著,指出单层的感知器网络只能用于线性问题的求解,而对于像XOR(异或)这样简单的线性问题却无法求解。他们还指出,能够求解非线性问题的网络,应该是具有隐层的多层神经网络,而将感知器模型扩展到多层网络是否有意义,还不能从理论上得到有力的证明。Minsky的悲观结论对当时神经网络的研究是一个沉重的打击。由于当时计算机技术还不够发达,VLSI尚未出现,神经网络的应用还没有展开,而人工智能和专家系统正处于发展的高潮,因而很多人放弃了对神经网络的研究,致使在这以后的十年中,神经网络的研究进入一个缓慢发展的低潮时期
3、快速发展阶段
美国加州理工学院生物物理学家John.J.Hopfield博士在1982年和1984年先后发表了两篇十分重要的论文,在他所提出的Hopfield网络模型中首次引入了网络能量的概念,并给出了网络稳定性判据。Hopfield网络引起了许多科学家的理解和重视,也引起了半导体工业界的重视。1984年,AT&T Bell实验室宣布利用Hopfield理论研究成功了第一个硬件神经网络芯片。尽管早期的Hopfield的研究才点亮了神经网络复兴的火把,从而掀起了神经网络研究的热潮。
倘若说Hopfield的研究成果打破了神经网络理论10年徘徊的局面,那么1986年D.E.Rumelhart和J.L.McCelland及其研究小组提出的PDP(Parallel Distributed Processing)网络思想,则为神经网络研究新高潮的到来起到推波助澜的作用。尤其是他们提出的误差反向传播算法,即BP算法,已成为至今影响最大、应用最广的一种网络学习算法。
4、发展高潮阶段
20世纪80年代中期以来,神经网络的应用研究取得了很大的成绩,涉及面非常广泛。为了适应ANN的发展1987年成立了国际神经网络学会,并于同年在美国圣地亚哥召开了第一届国际神经网络会议。此后,神经网络技术的研究始终呈现出蓬勃活跃的局面,理论研究不断深入,应用范围不断扩大。尤其是进入20世纪90年代,随着IEEE神经网络会刊的问世,各种论文专著逐年增加,在全世界范围内逐步形成了研究神经网络前所未有的新高潮。 3.2 BP神经网络
BP神经网络是目前应用最为广泛和成功的神经网络之一,在本文要用到BP神经网
16
络进行仿真研究,所以在这作详细介绍。BP神经网络是在1986年由Rumelhant和McCelland提出的,是一种多层网络的“逆推”学习算法。其基本思想是,学习过程由信号的正向传播与误差的反向传播两个过程组成。正向传播时,输入样本从输入层传入,经隐层逐层处理后传向输出层。若输出层的实际输出与期望输出(教师信号)不符,则转向误差的反向传播阶段。误差的反向传播是将输出误差以某种形式通过隐层向输入逐层反传,并将误差分摊给各层的所有单元,从而获得各层单元的误差信号,此误差信号即作为修正各单元权值的依据。这种信号正向传播与误差反向传播的各层权值调整过程是周而复始地进行。权值不断调整的过程,也就是网络的学习训练过程。此过程一直进行到网络输出的误差减少到可以接受的程度,或进行到预先设定的学习次数为止。
BP网络主要用于18:
(1)函数逼近:用输入矢量和相应的输出矢量训练一个网络逼近一个函数; (2)模式识别:用一个特定的输出矢量将它与输入矢量联系起来; (3)分类:把输入矢量以所定义的合适方式进行分类; (4)数据压缩:减少输出矢量维数以便于传输或存储。 BP网络的特点:
(1)输入和输出是并行的模拟量;
(2)网络的输入输出关系是各层连接的权因子决定,没有固定的算法; (3)权因子是通过学习信号调节的,这样学习越多,网络越聪明;
(4)隐含层越多,网络输出精度越高,且个别权因子的损坏不会对网络输出产生大的影响
3.2.1 BP网络模型与结构
一个具有r个输入和一个隐含层的神经网络模型结构如图3.11所示。
j
P
rxq
slxr
W1 i F1 1 s2xsl A1 slxq W2 B2 k F2 A2 s2xq 1
B1 slxl
其中:is2xl
1,2,,s1;k1,2,,s2;j1,2,,r
图3.11 具有r输入和一个隐含层的神经网络模型结构
17
感知器和自适应线性元件的主要差别在激活函数上:前者是二值型的,后者是线性的。BP网络具有一层或多层隐含层,其主要差别也表现在激活函数上。BP网络的激活函数必须是处处可微的,所以它不能采用二值型的阀值函数(0,1)或者符号函数(-1,1),BP网络经常使用的是S型的对数或正切激活函数和线性函数。
图3.12所示的是S型激活函数的图形。可以看到 f 是一个连续可微的 函数,其一阶导数存在。对于多层网络,这种激活函数所划分的区域不再是线性划分,而是由一个非线性的超平面组成的区域。它是比较柔和、光滑的任意界面,因而它的分类比线性划分精确、合理,这种网络的容错性比较好。另外一个重要的特点是由于激活函数是连续可微的,它可以严格利用梯度法进行推算,它的权值修正的解析式十分明确,其算法被称为误差反向传播法,也简称BP算法,这种网络也称为BP网络。
f f 1 0 -1 A 1 0 -1 A a 对数S型激活函数 b 双曲正切S型激活函数
图3.12 BP网络S型激活子函数
因为S型函数具有非线性放大系数功能,它可以把输入从负无穷大到正无穷大的信号,变换成-1到l之间输出,对较大的输入信号,放大系数较小;而对较小的输入信号,放大系数则较大,所以采用S型激活函数可以去处理和逼近非线性的输入/输出关系。
只有当希望对网络的输出进行限制,如限制在0和1之间,那么在输出层应当包含S型激活函数,在一般情况下,均是在隐含层采用S型激活函数,而输出层采用线性激活函数
3.2.2 BP神经网络的学习规则
BP算法属于δ算法,是一种监督式的学习算法
19。其主要思想为:对于q个输入学
习样本:p1,p2,...,pq,已知与其对应的输出样本为:T1,T2,...,Tq。学习的目的是用网络
18
的实际输出A1,A2,...,Aq,与目标矢量T1,T2,...Tq,之间的误差来修改其权值,使A1,(l=l,2…,q)与期望的T1尽可能地接近;即:使网络输出层的误差平方和达到最小。它是通过连续不断地在相对于误差函数斜率下降的方向上计算机网络权值和偏差的变化而逐渐逼近目标的。每一次权值和偏差的变化都与网络误差的影响成正比,并以反向传播的方式递到每一层的。
BP算法是由两部分组成:信息的正向传递与误差的反向传播。在正向传播过程中,输入信息从输入经隐含层逐层计算传向输出层,每一层神经元的状态只影响下一层神经元的状态。如果在输出层没有得到期望的输出,则计算输出层的误差变化值,然后转向反向传播,通过网络将误差信号沿原来的连接通路反传回来修改各层神经元的权值直至达到期望目标。
为了明确起见,现以图3.11所示两层网络为例进行BP算法推导,其简化图如图3.13所示。
j
i
w1ij a1i w2ki k Pj
……a2k
……
其中,i=1,2,…,s1 ; k=1,2,…,s2 ; j=1,2,…,r
图3.13 具有一个隐含层的简化网络图
设输入为P,输入神经元有r个,隐含层内有s1个神经元,激活函数为F1,输出层内有s2个神经元,对应的激活函数为F2,输出为A,目标矢量为T。
1、信息的正向传递
(1)隐含层中第i个神经元的输出为:
ra1if1w1ijpjb1i ,i=1,2,…,s2 (3.8)j1(2)输出层第k个神经元的输出为:
19
rk=1,2,…s2 (3.9) a2if2w2a1b2k ,kiij1(3)定义误差函数为:
1S2E(W,B)(tka2k)2 (3.10)
2K12、利用梯度下降法求权值变化及误差的反向传播 (1)输出层的权值变化
对从第i输入到第k个输出的权值有:
w2kiEw2Ea2k2 kia2kiwki (tka2k)f2a1kkia1i
其中:
kitka2kekf2' ektka2k 同理可得:
b2kiEb2E2a2k kiakb2ki (t'ka2k)f2ki
(2)隐含层权值变化
对从第j输入到第i个输出的权值,有:
w1EEa2ka1iijw1 ija2ka1iw1ijs2(tka2k)f2'w2kifi'pjijpj
k1其中:
's2ijeif1,eikiw2ki k1同理可得:
3.11) 3.12)
3.13)
3.14) 3.15) 3.16)
20
( ( ( ( ( ( b1iij (3.17)
3、误差反向传播的流程图与图形解释
误差反向传播过程实际上是通过计算输出层的误差ek,然后将其与输出层激活函数的一阶导数f2'相乘来求得ki。由于隐含层中没有直接给出目标矢量,所以利用输出层的ki反向传递来求出隐含层权值的变化量w2ki。然后计算eikiw2ki,并同样通
k1s2过将ei与该层激活函数的一阶导数f1'相乘,而求得ij,以此求出前层权值的变化量
w1ij。如果前面还有隐含层,沿用上述同样方法依此类推,一直将输出误差ek一层一
层的反推算到第一层为止。图3.14给出了形象的解释。
Pj
… wij ei w1i k1 w2i e1 e2
k1 ki w2ki … … ek
其中:i=1,2,…,s1 ; k=1,2,…,s2 ; j=1,2,…,r
图3.14 误差反向传播法的图形解释
BP算法要用到各层激活函数的一阶导数,所以要求其激活函数处处可微。对于对数型激活函数f(n)1,其导数为: 1en0en(1)1nf(n)(1e1)n2n2(1e)(1e)111f(n)1f(n)1en1en
(3.18)
对于线性函数的导数有:
f'(n)n'1 (3.19)
所以对于具有一个S型函数的隐含层,输出层为线性函数的网络,有:
21
f2'1,f1'a(1a) (3.20)
3.2.3 BP网络的局限性及改进
1、BP网络的限制与不足
虽然反向传播法得到广泛的应用,但它也存在自身的限制与不足,其主要表现在于它的训练过程的不确定上。具体说名如下:
(1)需要较长的训练时间
对于一些复杂的问题,BP算法可能要进行几小时深圳更长的时间训练。这主要是由于学习效率太低造成的,可采用变化的学习速率或自适应的学习速率加以改进。
(2)完全不能训练
这主要表现在网络出现的麻痹现象上。在网络的训练过程中,当其权值调得过大,可能使得所有的或大部分神经元的加权总和偏大,这使得激活函数的输入工作在S型转移函数的饱和区,从而导致其导数f'(n)非常小,从而使得对网络权值的调节过程几乎停顿下来。通常为了避免这种现象的发生,一是选取较小的初始权值,二是采用较小的学习速率,但这又增加了训练时间。
(3)局部极小值
BP算法可以是网络权值收敛到一个解,但它并不能保证所求为误差超平面的全局最小解,很可能是一个局部极小解。这是因为BP算法采用的是梯度下降法,训练是从某一起点沿误差函数的斜面逐渐达到误差的最小值。对于复杂的网络,其误差函数为多维空间的界面,就像一个碗,其碗底是最小值点。但是这个碗的表面是凹凸不平的,因而在对其训练过程中,可能陷入某一小谷区,而这一小谷区产生的是一个局部极小值。由此点向各方向变化均使误差增加,以致于使训练无法逃出这一局部极小值。
2、BP算法的改进
针对BP网络算法的缺陷,目前国内外不少学者提出了许多改进算法,下面就介绍几种典型的改进算法。
(1)增加动量项
标准BP算法在调整权值时,只按t时刻误差的梯度下降方向调整,而没有考虑t时刻以前的梯度方向,从而常使训练过程发生振荡,收敛缓慢。为了提高训练速度,可以在权值调整公式中加一动量项:
22
W(t)OaW(t1) (3.21)
其中,W某层权矩阵,O为某层输出向量,a称为动量系数,a(0,1)定义动量项
aW(t1)反映了以前积累的调整经验。当误差梯度出现局部极小时,虽然WIJKEikOij0,但W(t1)0,使其跳出局部极小区域,加快迭代wijk收敛速度。目前,大多数BP算法中都增加了动量项,以至于有动量项的BP算法成为一种新的标准算法。
(2)可变学习速度的反向传播算法(Variable Learning rate Back Propagation,VLBP) 可变学习速度的VLBP算法有许多不同的方法来改变学习速度。这是介绍一种非常直观的批处理过程,它的学习速度是根据算法的性能改变的。可变学习速度反向传播VLBP算法的规则如下:
a.如果平方误差(在整个训练集上)在权值更新后增加了,且超过了某个设置的百分数(典型值为1%~5%),则权值更新被取消,学习速度被乘以一个因子(0<<1),并且动量系数a(如果有的话)被设置为0。
b.如果平方误差在权值更新后减少,则权值更新呗接受,而且学习速度将乘以一个因子1。如果a被设置为0,则恢复到以前的值。
c.如果平方误差的增长小于,则权值更新被接受,但学习速度保持不变。如果a过去被设置为0,则恢复到以前的值。
(3)学习速率的自适应调节
上面给出的可变学习速度VLBP算法需要设置多个参数,算法的性能对这些参数的改变往往十分敏感,另外,处理起来也比较麻烦。这里给出一个乘法的学习速率的自调节算法。学习速率的调整只与网络总误差有关。
学习速率也称步长,在BP标准中是一个常数,但在实际计算中,很难给出一个从始至终都很合适的最佳学习速率。从误差曲面可以看出,在平坦区内太小会使训练次数增加,这时希望值大一些;而在误差变化剧烈的区域,太大会因调整过量而路过较窄的“凹坑”处,使训练出现振荡而使得迭代次数增加。为了加速收敛过程,最好是
23
能自适应调整学习速率,使其该大则大,该小则小。比如可以根据网络总误差来调整:在网络经过批次可预付调整后,若E总,则本次调整无效,且:
01 (3.22)
若E总,则调整有效,且:
3.23) a a>1 (
(4)引入陡度因子——防止饱和
误差曲面上存在着平坦区,其可预付调整缓慢的原因在于S转移函数具有饱和特性。如果在调整进入平坦区后,设法压缩神经元的净输入,使其输出退出转移函数的饱和区,就可以改变误差函数的形状,从而使调整脱离平坦区。实现这一思路的具体做法是在转移函数中引进一个陡度因子:
f(x)1 (3.24) net/1e当E0而dkyk仍较大时,进入平坦区,此时令.1;当退出平坦区后,再令>1,使转移函数恢复原状。 3.3 本章小结
不可否认,利用人工神经网络进行短期负荷预测也存在一些局限性和不足,但是可以设置适当参数或者改进算法来弥补。
1991年ANN首次被提出用于进行电力系统负荷预测,采用的是BP模型。在以后相继有国内外研究者对ANN用于电力系统短期负荷预测从不同角度进行了研究。主要集中在以下几个方面:算法改进、网络结构、数据组织以及和其他方法结合。到目前为止还没有一个公认的最有效的ANN方法用于电力系统短期负荷预测。但是用ANN方法对短期负荷预测时有以下优点:第一,精度较高;第二,建模相对容易;第三,数据组织容易。因此,ANN用于电力系统短期负荷预测比其他方法有其自身的优越性。按ANN的输人数据的不同组织方式可以构成满足不同要求的负荷预测系统。
24
4 基于BP网络负荷预测建模及其仿真研究
国内外关于短期负荷预测的文献很多,其中神经网络是一种很有前途的预测方法,其主要优点在于可以对大量的数据进行学习,逼近任意非线性函数。而传统的短期负荷预测中,神经网络预测方法只考虑与预测日有相关性影响的历史负荷,其知识表达困难,无法处理语言信息变量,对影响预测负荷的预测日的天气影响因素等模糊语言信息不能直接运用。
为此,本文提出了ANN用于短期负荷预测的预测模型。通过处理影响短期负荷预测的信息变量,对BP神经网络预测出的未来一天24小时基本负荷进行修正,本文主要将天气、温度等信息加入考虑,通过影响因素对负荷预测结果的修正值,并通过用MATLAB对神经网络进行仿真运算。从而得到最终的负荷预测值。 4.1 仿真工具MATLAB的简介
MATLAB是一种功能十分强大,运算效率很高的数字工具软件,全称是Matrix Laboratory。起初它是一种专门用于矩阵运算的软件,经过多年的发展,MATLAB已经发展成为一种功能强大的软件,几乎可以解决科学计算中的任何问题。
1、MATLAB的初步知识
起初,MATLAB是专门用于矩阵计算的一种数学软件,但伴随着MATLAB的逐步市场化,它的功能也越来越大,从MATLAB 4.1开始,MATLAB开始拥有自己的符号运算功能,从而是MATLAB可以替代其他一些专用的符号计算软件。
在MATLAB环境下,用户可以集成地进行程序设计、数值计算、图形绘制、输入输出、文件管理等多项操作。MATLAB已经成为对数值线性代数以及其他一些高等应用数学课程进行辅助教学的有益工具。在工程技术界,MATLAB也被用来解决一些实际课题和数学模型问题。典型的应用包括数值计算、算法预设计与验证,以及一些特殊的矩阵计算应用,比如自动控制理论、统计和数字信号处理(时间序列拆分)等。
2、MATLAB的优点
与其他的高级语言相比,MATLAB有着许多非常明显的优点,比如说容易学会掌握;可以由较多种操作系统支持;丰富的内部函数和工具箱;强大的图形和符号功能;
25
可以自动选择算法;与其他软件和语言有良好的对接性等。
3、MATLAB工具箱
神经网络工具箱是在MATLAB环境下开发出来的许多工具箱之一,它是以人工神经网络理论为基础,用MATLAB语言构造出典型神经网络的激活函数,如S型、线性、竞争层、饱和线性等激活函数,使设计者对所选定网络输出的计算变成对激活函数的调用。另外,根据各种典型的修正网络权值的规则,加上网络的训练过程,用MATLAB语言编写出各种网络设计与训练的子程序,网络的设计者则可以根据自己的需要去调用工具箱中有关神经网络的设计训练程序,使自己能够从繁琐的编程中解脱出来,集中精力去思考问题和解决问题,从而提高效率和解题质量。神经网络工具箱几乎包括了所有现有神经网络的最新成果。对于各种网络模型,神经网络工具箱集成了许多种学习算法,为用户提供了极大的方便。此外,神经网络工具箱还给出了大量的示例程序,为用户轻松地使用工具箱提供了生动实用的范例。
4.2负荷预测建模的一般步骤
负荷预测的过程就是对负荷的建模过程。由于神经网络对大量非结构性、非精确性规律具有自适应功能,而且在信息记忆、自主学习、知识推理、优化计算方面比传统的预测方法有明显的优势,因此神经网络模型更能真实反映负荷的变化。
神经网络是一种数据驱动的建模技术,建模的步骤可以归纳如下: 1、确定BP网络的结构;
2、根据以往的经验分析以及理论分析,选取最能反映负荷变化的因素作为神经网络的输入,负荷预测值作为输出; 3、选取合适的训练样本集和输出集;
4、把输入样本集输入到神经网络,输出集和实际输出相比较,以一定的规则修改网络的连接权值。反复计算误差和修改权值,直到误差达到一定的范围以内; 5、用训练好的神经网络进行负荷预测;
6、神经网络在使用一定的周期以后,根据实际情况在保留原有的权值基础上选取新的数据样本集对神经网络进行新的训练,使网络权值适应最近一段时间的负荷变化情况,保证预测的精度。
26
4.3负荷预测神经网络结构模型的分析
对于一个神经网络来说,确定它的的拓扑结构就是决定它的输入层、隐含层、输出层的层数和每一层神经元的个数。为了简化网络的结构,决定采用一个三层的前向网络。 神经网络的输入层,相当于选取决定输出相关变量集。输入变量应该选择那些与被测负荷密切相关的变量。对于短期负荷预测来说,选定输入变量的原则应该选取能够充分反映负荷变化的周期性、负荷变化的延续性、气候条件等相关因素对负荷变化的影响等等。一般来说,采用更多的相关因素作为输入变量,可以更加全面地反映导致负荷变化的实际情况,从而提高预测的精度,另一方面,相关因素的的增加会导致神经网络结构的增大,降低了运行的速度。由于负荷的变化常常受气象条件的影响,如温度、湿度、风速天气特征(阴天,雨天,晴天)等,其中起主要作用的又是温度因素和天气特征,因此采用当天的最高温度、最低温度和天气特征作为神经网络的其中三个输入量。
隐含层神经元数量的确定:隐含层单元的数量和输入输出单元数量都有关系,根据隐含层单元节点的几何解释,第一隐含层的每个节点确定一个判断面,把N维输入空间分为两部分,第二隐含层每个节点又将第一隐含层节点形成的判决面组合成凸域空间或判决边界。隐含层节点有些用于提取输入特征,有些用于完成某些特殊功能,在实际使用中,一个隐含层就够了。
一般来说,隐含层神经元数目太少,网络训练可能达不到要求,这是因为使用隐含层单元数少,局部极小就多,或者叫不“鲁棒”,不能识别以前没有见过的样本,容错性差。隐含层神经元数量多,BP网络的函数逼近能力越强,但同时联想的能力会显著降低,这就会出现过拟合现象“Overfitting”,所谓过拟合现象就是指网络的能力与反映的效果与样本数据有关,对无噪声的数据,网络可以精确地反映映射关系,但是在实际应用中,在有无限多的样本数据中,不带噪声的数据是没有的,其次有许多的现象在产生时,我们无法解释其发生的原因,例如在电力负荷变化中,一些季节性变化如日照时间、温度变化、风力变化等,我们无法用具体的量反映它们在负荷变化中所起的作用,这样在网络的训练过程中盲目地适应了这些现象,而不可能建立起和各个因素之间正确的关系。 4.4 短期负荷预测的BP网络建模及仿真
在短期负荷中如何划分负荷类型或日期类型是有根据的,根据相关文献资料,大致可以如下几种划分:(1)将一周的7天分为两种类型:工作日(星期一到星期五)、休息
27
日(星期六和星期天);(2)将一周的7天分为5种类型:星期一、星期二到星期四、星期五、星期六、星期天;(3)将一周的7天分为7种类型:每天看作一种类型。在本文中采用第3种类型,利用MATLAB进行仿真,并进行分析。
1、学习样本的分析
在本章中将以广东某地区7月20-7月25日每天中每2个小时的电力负荷为样本,预测未来的6天的同时刻的负荷。这样一天可以得到12组负荷数据,另外,为了可以更加全面地反映导致负荷变化的实际情况,本文考虑了和负荷变化密切相关的气象条件,如温度、湿度、风速天气特征(阴天,雨天,晴天)等,其中起主要作用的又是温度因素和天气特征,因此采用当天的最高温度、最低温度和天气特征作为神经网络的其中三个输入量,可以用0、0.5、1分别表示晴天、阴天、雨天,这样输入变量P就是一个15维的向量,即n=15;目标向量就是预测日当天的12个负荷值,即输出变量T为一个12维的向量,m=12。
由于在输入的数据中各类型的数据大小、单位都不统一,这样大大增加了系统的运算量、运算时间,还降低了精度甚至可能使神经元趋于饱和而不能继续运算。为了避免神经元的饱和性,在确定输入和输出变量后,应对其进行归一化处理,将数据处理为一定范围之间。这样就降低了运算量,提高运算速度和减少运算时间。归一化的方式很多,MATLAB中也有归一化函数可对数据进行归一化和反归一化。本例是利用下面的公式4.1在Excel中进行归一化,将数据归一化在(0,1)之间。因为在Excel中进行归一化数据比较直观且可直接生成表格,易于比较。
XXXmin (4.1)
XmaxXmin以广东某城市的7月20日到7月30日的负荷值以及同年7月21日到31日的气象特征状态作为训练样本训练出来的网络模型,来预测7月31日的电力负荷为例,并对其数据进行归一化处理,如表4.1和表4.2.
表4.1 广东某地区7月20日—25日24小时电力负荷表
日期 7月20日 0.2452 0.1466 0.1314
28
7月21日 0.2217 0.1581 0.1408 7月22日 0.2525 0.1627 0.1507 7月23日 0.2016 0.1105 0.1243 7月24日 0.2115 0.1201 0.1312 7月25日 0.2335 0.1322 0.1534 电 力 负 荷 0.2243 0.5523 0.6642 0.7015 0.6981 0.6821 0.6945 0.7549 0.8215 0.2304 0.5134 0.5312 0.6819 0.7125 0.7265 0.6847 0.7826 0.8325 0.2415 0.3027 0
续表4.1 0.2406 0.5502 0.5636 0.7051 0.7352 0.7459 0.7015 0.8064 0.8156 0.2385 0.3125 0 0.1978 0.5021 0.5232 0.6819 0.6952 0.7015 0.6825 0.7825 0.7895 0.2216 0.2701 1 0.2019 0.5532 0.5736 0.7029 0.7032 0.7189 0.7019 0.7965 0.8025 0.2352 0.2506 0.5 0.2214 0.56623 0.5827 0.7198 0.7276 0.7359 0.7506 0.8092 0.8221 0.2542 0.3125 0 气象特征 — — — 日期 电 力 负 荷 表4.2 广东某地区7月26日—31日24小时电力负荷表 7月26日 7月27日 7月28日 7月29日 7月30日 0.2368 0.1432 0.1653 0.2205 0.5823 0.5971 0.7136 0.7129 0.7263 0.7153 0.8091 0.8217 气象特征 0.2601 0.3198 0 0.2342 0.1368 0.1602 0.2131 0.5726 0.5822 0.7101 0.7098 0.7127 0.7121 0.7995 0.8126 0.2579 0.3099 0 0.2113 0.1212 0.1305 0.1819 0.4952 0.5312 0.6886 0.6898 0.6999 0.7323 0.7721 0.7956 0.2301 0.2867 0.5 0.2005 0.1121 0.1207 0.1605 0.4556 0.5022 0.6553 0.6673 0.6798 0.7023 0.7521 0.7756 0.2234 0.2799 1 0.2123 0.1257 0.1343 0.2079 0.5579 0.5716 0.7059 0.7145 0.7205 0.7401 0.8019 0.8316 0.2314 0.2977 0 7月31日 0.2119 0.1215 0.1621 0.2161 0.6171 0.6159 0.7115 0.7201 0.7243 0.7298 0.8179 0.8229 0.2317 0.2936 0
29
2、BP网络结构设计及仿真分析
对于一般的神经网络,增加隐含层的层数不会明显提高精度,反而会使网络复杂化,所以,本文采用典型的BP网络,即三层前向网络:输入层、隐含层和输出层;输入层的单元个数对应输入层的维数,即n=15;输出层为12个负荷数据,有12个神经元,即m=12;隐含层神经元的数目不确定,本文会选择不同神经元个数进行仿真分析,得出最佳;BP网络的结构图如图4.1示。
24
小 时 负荷数据
日最高温度
输出层
预 测24小 时
日最低温度
天气特征
输入层
隐含层
图4.1 BP网络结构图
网络中间层的神经元传递函数采用S型正切函数tansig,输出层神经元传递函数采用S型对数函数logsig。这样输出数据才会在(0,1)之间。训练函数选用较常用的traindm和trainlm,并做分析比较。
网络经过训练后才可以用于电力负荷预测的实际应用,考虑到网络的结构的复杂性,神经元个数比较多,需要适当地增加训练次数和学习速率。
以下就是用traingdm和trainlm两种训练方法,设置不同神经元数目训练出来不同的网络来预测7月31日的电力负荷结果。左图为训练图,右图为预测日的负荷图,其中实线表示实际值,虚线表示预测值。
30
图4.2采用traingdm法隐含层为10个神经元的预测结果
图4.3采用traingdm法隐含层为20个神经元的预测结果
图4.4采用traingdm法隐含层为30个神经元的预测结果
31
图4.5采用traingdm法隐含层为40个神经元的预测结果
图4.6 采用trainlm法隐含层为10个神经元的预测结果
图4.7 采用trainlm法隐含层为15个神经元的预测结果
32
图4.8 采用trainlm法隐含层为20个神经元的预测结果
图4.9 采用trainlm法隐含层为30个神经元的预测结果
由上图可知:利用tranlm训练得出来的结果的精度比traingdm训练得出来的结果的精度高,且训练速度快,训练代数少,预测结果也比较准确。平均误差在10%以内,属于允许范围。另外,trainlm训练法随着隐含层神经元数目的增加训练占用的内存也增大了,所以变慢了,且隐含层数目增加而误差减小也不明显。所以本文采用tranlm法,隐层神经元数目为10个作为参数训练出来的网络模型,将30日的负荷数据和31日的气象条件作为输入,用来预测31日的负荷,结果如下表:
表5.3训练结果数据表
预测值 0.1512 实际值 0.2119 0.1215 0.1621 误差 0.0592 0.0042 -0.0585 误差绝对值 0.0592 0.0042 0.0585 0.1257 0.1104
33
续表5.3
电 力 负 荷 0.2079 0.5579 0.5716 0.7059 0.7145 0.7205 0.7401 0.8019 0.8136 平均误差 0.2161 0.6171 0.6159 0.7115 0.7201 0.7243 0.7298 0.8179 0.8229 -0.0082 -0.0004 -0.0042 -0.0056 -0.0056 -0.0058 0.0103 -0.0160 -0.0093 0.0082 0.0004 0.0042 0.0056 0.0056 0.0058 0.0103 0.0160 0.0093 0.0274 预测结果分析:
从上表可知,某些点的误差最大为5.92%,最小误差为0.04%,平均误差为2.74%,满足一般预测应用对精度的要求(短期负荷范围为5%)。
从图4.6-图4.9的负荷曲线的重合程度我们可以看出,从每天22时到第二天6时左右,预测曲线基本跟实际曲线重合,误差比较小,其余相对较大,其原因在于在这个时间段里,大部分的生产生活动已经停止,气温也相对稳定,影响负荷变化的因素作用较小,所以负荷波动不大,因此预测精度高;而在白天刚好相反,各种活动频繁,所以波动大。
34
结 论
通过本文,完成了以下工作:
1、分析了负荷预测特点和基本原理及介绍了一些负荷预测的方法。 2、介绍了人工神经网络的理论。
3、利用BP神经网络进行对一天24小时中每两个小时的负荷的预测,并对其进行仿真分析。
从预测结果可以得出,相对于传统的负荷预测方法来说,预测结果的精度有就较大程度的提高,基本上能够满足需求,这证明了ANN在电力系统短期负荷预测领域的有效性,但是这种方法也有不足之处:
ANN短期负荷预测的主要思想是利用ANN对非线性函数的良好影射能力来描述电力负荷各个相关因素之间复杂和时变的关系,建立这个预测模型的关键在于:学习算法、输入变量的选择和样本集的选择。在某些情况下,可能因为数据样本集中出现了矛盾数据,这些数据通过非线性导致人工神经网络的各个权值系数难以收敛甚至不能收敛。而造成矛盾数据的原因可能是采用的历史数据中带有错误的数据,我们没发现,或是因为影响负荷变化的因素太多,在不同时期,不同因素所起的影响大小不同,我们没能用相关的变量正确、合理的描述。这些问题就可能导致了ANN收敛慢或不收敛。
针对以上问题,我们认为可以通过以下措施进行改进:
1、增加辅助输入。就是在ANN的输入节点增加一个辅助ANN,这个输入可以是天气因素,节假日等,把这个辅助网络与原来的网络相结合,改善网络的学习能力,处理好负荷与更多因素之间的关系。
2、加强历史数据的预处理。就是对突发的事件和天气变化等原因导致的背离原有规律的负荷剧烈变动,可以采用历史上相似的特殊事件记录作为参考,通过人工手动的方式进行必要的修改,从而提高预测准确度。
虽然本文的研究已经结束,但是负荷预测作为一个研究课题,ANN在负荷预测领域中将会不断发展,不断完善。
35
参 考 文 献
[1] 牛东晓、曹树华.电力电力负荷预测技术及其应用[M].北京:中国电力出版社,1999:10-13.
[2] 邓聚龙. 灰色预测与理论[M].武汉:华中理工大学出版社.1996:56-59. [3] 于尔铿、韩放,谢开等.电力市场[M].北京:中国电力出版社,1999:89-90.
[4] 于尔铿、刘广一、同京阳. 人工神经网络在负荷预测中的应用[D]. 南京:东南大学
电气工程学院,2006年.
[5] 倪军.专家系统技术应用于城网负荷预测[J].供用电,1994,10(5):16-29. [6]三江学院、王士政.电网调度自动化与配网自动化技术[M].中国水利水电出版社.2003:98-100.
[7] Moghram.S.Rahman.Analysis and Evaluation of Five Short-term Load Forecasting
Technology[J].IEEE Trans-on Power systems.Vol.4,November 1989.PP.1484-1491. [8]袁曾任.人工神经网络原理及其应用[M].北京:清华大学出版社.1999:40-51. [9] 牛东晓、曹树华、赵磊、张文文编著.电力负荷技术及其应用[D].中国电力出版社.1987
年.
[10] 李儒、吴捷.改进的优化组合预测方法在城网负荷预测中的应用[J].汕头科技,2002,
9(1):384-40.
[11] 申刚、徐光虎、顾洁等.华中电网电力负荷预测数据库和负荷预测软件[Z].华东电力,
2003,23(6):1-4.
[12] 朱大奇、史慧. 人工神经网络原理及其应用[M]. 北京:科学出版社 ,2007:39-40. [13] 徐丽娜.神经网络控制[M].武汉: 华中科技大学,2006:100-103,106. [14]罗承忠.模糊神经网络[M].贵阳:贵州科技出版社.1994:65-66.
[15]丛爽.面向MATLAB工具箱的神经网络理论与应用 [M].北京: 中国科学技术大学出
版社,1998:89-92.
[16] Niemeyer V.Short-term Network With Adapative Learning Algorithm[J].IEEE Trans.On
Power systems.1992.1.7(1).141-149.
[17]许东、吴铮.基于MATLAB6.X的系统分析与设计[D].西安:西安电子科技大学出版
社.2002年.
[18] 闻新、周露、王丹力、熊晓英.Matlab神经网络与应用设计[M].北京:北京出版社,
36
2007:35-46,48.
[19] 董长虹.Matlab神经网络与应用(第2版)[M].北京:国防工业出版社,2007:91-92. [20]Saifur Rahman.Rahul Bhatnagar.An Expert System Based Algorithm for Short Term Load Forecast[J].IEEE Trans on PWRS,1998,2(3):886-892.
37
致 谢
在论文完成之际,允许我向所有关心帮助我的人表示感谢。特别是导师孟老师,在他的悉心指导下我顺利完成了论文。孟老师对我们组的成员都很认真负责,悉心解答我们的问题,指明了方向,给予我们很大的鼓励、指导和帮助。孟老师不仅使我掌握了基本的学习研究的方法,还使我明白了许多为人处事的道理。本论文从开题到完成,倾注了老师大量的心血。在此,谨向导师表示崇高的敬意和衷心的感谢!
本论文的顺利完成,离不开各位老师、同学、朋友和家人的关心和帮助。在此特别 感谢他们对我的帮助!感谢导师孟安波老师的指导和帮助! 谢谢大家!
38
附录 本文仿真程序
close all clear clf reset figure(gcf); echo on clc
%newff--生成一个新的bp前向神经网络 %train--训练 %sim--仿真 pause%任意键开始 clc
P=[0.2452,0.1466,0.1314,0.2243,0.5523,0.6642,0.7015,0.6981,0.6821,0.6945,0.7549,0.8215,0.2415,0.3027,0;
0.2217,0.1581,0.1408,0.2304,0.5134,0.5312,0.6819,0.7125,0.7265,0.6847,0.7826,0.8325,0.2385,0.3125,0;
0.2525,0.1627,0.1507,0.2406,0.5502,0.5636,0.7051,0.7352,0.7459,0.7015,0.8064,0.8156,0.2216,0.2701,1;
0.2016,0.1105,0.1243,0.1978,0.5021,0.5232,0.6819,0.6952,0.7015,0.6825,0.7825,0.7895,0.2352,0.2506,0.5;
0.2115,0.1201,0.1312,0.2019,0.5532,0.5736,0.7029,0.7032,0.7189,0.7019,0.7965,0.8025,0.2542,0.3125,0;
0.2335,0.1322,0.1534,0.2214,0.5623,0.5827,0.7198,0.7276,0.7359,0.7506,0.8092,0.8221,0.2601,0.3198,0;
0.2368,0.1432,0.1653,0.2205,0.5823,0.5971,0.7136,0.7129,0.7263,0.7153,0.8091,0.8217,0.2579,0.3099,0;
0.2342,0.1368,0.1602,0.2131,0.5726,0.5822,0.7101,0.7098,0.7127,0.7121,0.7995,0.8126,0.2301,0.2867,0.5;
0.2113,0.1212,0.1305,0.1819,0.4952,0.5312,0.6886,0.6898,0.6999,0.7323,0.7721,0.7956,
39
0.2234,0.2799,1;
0.2005,0.1121,0.1207,0.1605,0.4556,0.5022,0.6553,0.6673,0.6798,0.7023,0.7521,0.7756,0.2314,0.2977,0]'
T=[0.2217,0.1581,0.1408,0.2304,0.5134,0.5312,0.6819,0.7125,0.7265,0.6847,0.7826,0.8325; 0.2525,0.1627,0.1507,0.2406,0.5502,0.5636,0.7051,0.7352,0.7459,0.7015,0.8064,0.8156; 0.2016,0.1105,0.1243,0.1978,0.5021,0.5232,0.6819,0.6952,0.7015,0.6825,0.7825,0.7895; 0.2115,0.1201,0.1312,0.2019,0.5532,0.5736,0.7029,0.7032,0.7189,0.7019,0.7965,0.8025; 0.2335,0.1322,0.1534,0.2214,0.5623,0.5827,0.7198,0.7276,0.7359,0.7506,0.8092,0.8221; 0.2368,0.1432,0.1653,0.2205,0.5823,0.5971,0.7136,0.7129,0.7263,0.7153,0.8091,0.8217; 0.2342,0.1368,0.1602,0.2131,0.5726,0.5822,0.7101,0.7098,0.7127,0.7121,0.7995,0.8126; 0.2113,0.1212,0.1305,0.1819,0.4952,0.5312,0.6886,0.6898,0.6999,0.7323,0.7721,0.7956;0.2005,0.1121,0.1207,0.1605,0.4556,0.5022,0.6553,0.6673,0.6798,0.7023,0.7521,0.7756; 0.2123,0.1257,0.1343,0.2079,0.5579,0.5716,0.7059,0.7145,0.7205,0.7401,0.8019,0.8136]' net=newff(minmax(P),[10,12],{'tansig','logsig'},'trainlm'); inputWeights=net.IW{1,1} inputbias=net.b{1} %
layerWeights=net.LW{2,1} layerbias=net.b{2} pause clc
net.trainParam.show=10; net.trainParam.lr=0.05; net.trainParam.mem=3; net.trainParam.mc=0.9; net.trainParam.epochs=100000; net.trainParam.goal=0.01; pause clc %
40
[net,tr]=train(net,P,T); pause clc
%训练后网络权值和偏差 inputWeights=net.IW{1,1} inputbias=net.b{1} %
layerWeights=net.LW{2,1} layerbias=net.b{2} pause %
A=sim(net,P) %计算仿真误差 E=T-A SSE=sse(E) pause clc echo off %
预测结果对比
p=[0.2123,0.1257,0.1343,0.2079,0.5579,0.5716,0.7059,0.7145,0.7205,0.7401,0.8019, 0.8136,0.2317,0.2936,0]' t=0:2:24 t=t'
A=sim(net,p) A(13)=A(1)
plot(t,A,':') %用虚线表示预测值 hold on %启动图形保持 %负荷的真实值
b=[0.2119,0.1215,0.1621,0.2161,0.6171,0.6159,0.7115,0.7201,0.7243,0.7298,0.8179,
41
0.8229,0.2119]'
plot(t,b, '-') %用实线表示负荷真实值 xlabel('时间') ylabel('负荷值')
title('预测值与实际值的对比')
42
因篇幅问题不能全部显示,请点此查看更多更全内容