魏礼舜, 潘若愚, 丁 帅
(1.合肥工业大学 计算机与信息学院,安徽 合肥 230009;2.合肥工业大学 管理学院,安徽 合肥 230009)
社会用电量反映了特定区域在某一时段内的社会用电整体情况,开展用电量的中长期预测研究对于提升电力企业的快速应急水平,提高企业的盈利能力具有重要的理论意义和实际价值[1]。电力企业在运行过程中一直存在着供销不平衡的现象,供电短缺和电量过剩都将产生较大的经济损失[2]。作为一种可靠性、时效性较高的数据,区域用电量也已经被广泛应用于地区经济走势、产业政策影响等复杂决策分析过程中,定量分析和预测区域用电量将为决策者提供有力的决策数据支撑。
为了处理社会用电量的中长期预测问题,需要充分把握目标区域的总体用电量走势,尝试应用科学的定量预测方法或模型,以过往用电量数据为基础,综合考察气候、节假日及相关政策法规等多个影响因素,对目标区域内的用电量走势进行定量预测。为此,设计具有区域用电量预测、中长期用电量走势分析及决策支持等功能的智能决策支持系统,以实现对中长期区域用电量的科学预测,减少发电量过多或者过少带来的社会经济损失,并为决策者制定区域经济决策、分析区域经济状况提供有力的技术支持。
金融危机背景下,基于区域用电量数据的经济走势分析已经成为国内外众多决策机构的一个常规任务。以过往用电量数据为基础,考虑多种影响因素的区域用电量分析及中长期预测问题也已经成为学术界的一个研究热点,形成了一批有代表性的研究成果,如针对滨州市的实际情况设计的社会用电分析软件[3]和结合农村电网的情况提出的一种农村用电量预测的系统实现方法[4]。但上述系统在预测结果的精度、预测结果的可解释性、系统的静态和动态模型以及其他所能提供的辅助支撑功能上略显不足。
作为一种复杂的决策支持系统,国内外关于区域用电量分析和预测决策支持系统研究尚处于初级阶段,其内部结构和功能需求尚未形成统一的认识。为此,本文介绍一种基于 .NET框架,具有较高的预测精度和多种决策支持功能的区域用电量分析及预测支持系统(EDSS)。本文分别从需求分析、基于UML的系统静态和动态建模及系统具体实现等方面,对区域用电量分析及预测系统展开论述[5]。
软件需求分析是为了明确用户期望和系统开发目的,准确把握系统应该实现的功能,以便制定合适的计划来满足软件需求[6]。通过调查走访与前期需求分析,将EDSS设计实现以下4个模块。
1.1.1 区域用电量预测模块
(1)基于计量经济学模型预测算法模块。区域用电量数据与GDP、经济走势、节假日、气候气温等因素紧密相关,充分考虑这些关联因素,将有利于提升区域用电量估算模型的预测精度,并对预测结果的可解释性产生积极影响。计量经济学模型是一种可以将多种关联因素融合推理的计算模型,可以被应用于区域用电量的预测演算过程。仿真实验结果表明,数据规模和参数考察的个数将直接影响该模型的预测精度,当数据量达到预设阈值,综合考察前面所述多种影响因素,基于计量经济学模型的区域用电量预测的平均误差可以控制在3%左右。
因此,作为DCM的一个核心部件,基于计量经济学模型的预测算法模块应该实现中长期区域用电量预测功能,并能为用户变更参数提供交互接口。
(2)基于神经网络模型预测算法模块。在用户产生预测需求时,可能会出现计量经济模型所需影响因素获得不完全、外部导入影响因素时数据缺失等情况,此时使用计量经济学模型预测将会产生较大的预测误差,而神经网络模型中影响因素无需用户手工设定,在数据量达到设定阈值后,神经网络模型能主动学习数据内部蕴含的数据规律,系统中选用3层B-P神经网络[7]。该模型是一种自学习模型,将输入信号的正向传递与误差信号的逆向传递相结合,在输出信号没有达到期望输出前,将会根据误差反向传播信号不断地调整各层间权值矩阵最后达到理想输出。最后,通过加入模拟退火算法避免了权值矩阵陷入局部最优而导致预测结果的偏差。神经网络模型有较高的预测精度,但是内部过程对用户完全屏蔽,产生的数据可解释性较差。
(3)基于灰色模型的用电量预测算法模块。在中短期预测中,训练数据将会低于预期预测阈值,同时有预测影响因素不足情况的发生。一旦出现以上情况,则现有提供的基于计量经济模型和基于神经网络模型的预测方法均不能很好地满足用户的预测需求。从前期数据走势分析中可以看出,用电量数据的走势近似于指数分布,而灰色模型所产生的数值序列能很好地逼近走势曲线,并且灰色模型能很好地与各种智能算法相结合,优化参数,达到全局最优[8]。
1.1.2 区域用电量分析与维护模块
区域用电量预测模块(District Consumption forecast Module,简称DCM)功能的实现需要采集区域用电量数据,因此,区域用电量分析与维护模块(District Consumption Data Analyses and Maintenance Module,简称AMM)应具有从本地Excel数据表或外部数据库中导入的支撑功能以及基本的数据维护功能。同时,针对原始数据中使用的数据量纲不一致、数据冗余、数据属性不完整、存在异常点等情况,AMM模块应该具备数据的预处理功能,确保系统使用数据的健壮性。
在满足用户对历史用电量数据分析需求方面,系统分析模块应该提供对历史用电量的同比增长率、环比增长率等相关指标的计算、分析和统计的功能,并对结果整合集中展示给用户。
在实际用电量预测中,用户设置预测影响因素时存在一定程度上的盲目性和随意性。这种情况的产生,源自于用户对各个参数作用于预测结果的影响缺乏认知。为了对用户的设置行为提供参考依据,AMM模块需对用户的过往预测行为予以记录,并同时保存该次预测所设置的各个影响因素的值,为用户即将进行的预测提供参考和对比。
1.1.3 通信管理及辅助支持模块
出于对满足DCM中各模型所用到的预测影响因素获取的需要,特别是能对预测结果产生较大影响的气候、高温、节假日等因素,由于电力部门不能直接获得,需从有关部门获取相关数据,系统需预留对外界数据的通信接口部分。在DCM模块中,电力数据可以从本地Excel数据表中导入或是从局域网内其他数据服务器导入,系统在预留外界影响因素导入接口的同时,需保留对本局域网其他数据服务器的对接、验证及读取数据等功能。
通信管理及辅助支持模块(Communication Management and auxiliary support Module,简 称CMM)主要针对管理员用户。面向管理员用户提供了用户管理、权限分配、日志管理等辅助功能。用户管理包括对用户的增加和删除,以及对用户相关信息的修改;权限的分配是在用户申请用户名后,管理员在此模块中对用户允许使用系统的若干模块进行划分,并将权限的编码写入到数据库中。日志管理模块将在数据库中记录下哪些用户何时已何种权限使用了系统,通过记录这些信息能在管理员对系统进行维护的时候提供帮助。
1.1.4 统一应用程序接口
统一应用程序接口(Unify Application Interface,简称UAPI)的重点是保证各模块的设计都能做到高内聚低耦合,保证模块所用数据符合模块的运行要求,避免脏数据进入相应模块中。下面以通信类为例,简要说明其作用。
使用场景:建立通讯类实例,通过此实例与数据库通信并过滤脏数据,保证使用数据的健壮。
Public Communications Comm=new Communications();Comm.GetData(XXXX);//参数用户自定义Comm.InputDS(DataSet XX)//将数据集中的数据写入数据库中
Comm.OutPutDS(XXXXX)//参数用户自定义
异常:
(1)数据库服务不存在或数据库连接错误。
(2)数据表读写请求错误或字段不存在。
(3)传递数据中包含脏数据。
软件架构是一系列相关的抽象模式,用于指导软件系统各个方面的设计,是一个系统的草图[9],它的对象是直接构成系统的抽象组件,各个组件之间的连接则明确和细致地描述组件之间的通讯。系统从功能上被划分为统一应用接口模块(UAPI)、数据预测模块(DCM)、数据分析及维护模块(AMM)、通信管理及辅助支持模块(CMM)4大主要模块。系统架构图如图1所示。
图1 系统架构图
在这4个主要模块的共同作用下,系统将能提供数据导入、历史数据查询、数据预测、用户管理等功能。
静态结构模型描述了系统中重要对象的属性和操作,以及这些对象之间的相互关系[10]。建立用例图之后,需要进一步找出系统中存在的对象,再从对象中找出类,做好类的属性与操作的划分,提取出共同的属性与操作放入父类中。子类继承父类的属性和操作,并在子类中添加属于自己的属性与方法。
EDSS主要需要实现以下类:Person类(人员类)、User类(用户类)、Administrator(管理员类)、Data(数据类)、ANN(神经网络模型类)LineReg(计量经济学模型类)、GrayModel(灰色模型类)、CombinationForcast(组合预测类)、Communications(通信类)、DataMaintenance(数据维护类)及Log(日志类),每个类都有自己相对应的属性和方法。从用户角度勾勒出系统的静态关联,如图2所示。
图2 系统局部静态关联图
系统实际实装模型数量较多,这里抽取其中较为典型的计量经济学模型、神经网络模型、灰色模型以及组合模型这4种模型做演示,其他模型因篇幅原因将不再赘述。
对系统进行静态分析后仍然不能完整清晰地描述出各模块的职责与行为,需要对系统进行进一步的动态建模。动态行为模型一般用协作图、状态图、时序图和活动图等来表述,本文采用时序图来描述系统的动态行为。时序图是按时间顺序排序的交互图,采用从上到下的顺序来表示时间的顺序,用于通过情境检查逻辑流程。
从用户的视角构建系统的动态模型,如图3所示。
图3 系统动态时序图
图3所示的主要过程是:用户输入用户名密码进行登录,在分析查询菜单中查询历史用电量信息、对历史用电量数据的分析、计算并显示同比增长率和环比增长率等;或者在预测模块中,用户选择某一种模型进行用电量预测,或是选择多种模型进行组合预测。这样的操作能够反复多次进行,直到最后用户退出系统为止。
本系统运行时所需系统资源少,普通PC机器即可满足要求。EDSS以在Windows XP操作系统下的低资源要求高性能的SQLServer 2000为底层数据库;采用Visual Studio 2008为开发平台,在.NET framework 3.5下,全部代码使用C#语言实现,报表展现模块使用了业界专业的水晶报表,满足多种样式的报表展现功能。这样既保证了人机界面的良好、操作方便,又可以快速准确地实现统计分析和预测计算的功能。软件的开发基于当今主流的Windows XP操作系统,充分发挥了实用性强、兼容性好的特点,使得软件维护和升级非常方便。
系统查询分析界面演示如图4所示,其界面展示的是用电量查询模块及用电量同期对比的结果,在此模块中引入图表展现可以让用户从枯燥的数字中摆脱出来,以直观的形式获得对历史用电量走势的直观感受。
图4 系统查询界面
用电量预测系统项目,采用了面向对象的分析与设计,采用UML语言建模,加快了系统的构建实现过程,提高了代码的复用和代码质量,降低了开发难度,保证了系统的稳定性,降低了开发风险。随着国民经济的发展,用电量数据对国家宏观调控特别是工农业的指导意义更加明显。目前,该系统已开发完成并在某省电力公司投入使用,运行情况良好。
随着国民经济的发展,本系统对电力企业的决策制定有着较高的使用价值。
[1]Zhang Xingping,Gu Rui,Zhao Xu.Electricity consumption and economic activities in China[C]//Wireless Communications,Networking and Mobile Computing,2008,WiCOM′08,4th International Conference on,2008:1-4.
[2]Yang Shuxia,Wang Yi.Applying support vector machine method to forecast electricity consumption[C]//Computational Intelligence and Security,2006International Conference,2006:929-932.
[3]强同波,李伯伟.社会用电分析系统软件的开发研究[J].山东教育学院学报,2005,20(3):90-91.
[4]王彦红,许跃进.地区农网变电规模预测研究及软件设计[J].农机化研究,2007(2):194-196.
[5]丁 帅,杨善林.基于.NET精简框架的嵌入式RFID服务组件[J].计算机工程,2008,34(17):50-55.
[6]李义宝,张学勇,马建国,等.基于BP神经网络的改进算法研究 [J].合 肥 工 业 大 学 学 报:自 然 科 学 版,2005,28(6):668-671.
[7]章银娥.基于模糊集与前馈神经网络的数据特征分析与选择算法 [J].合 肥 工 业 大 学 学 报:自 然 科 学 版,2009,32(9):1312-1316.
[8]Fang Zhigeng,Liu Sifeng,Yuan Chaoqing.Forecast of electricity consumption of Jiangsu Province by gray methods[C]//Fuzzy Systems,2008,FUZZ-IEEE,2008:1759-1762.
[9]杨善林,丁 帅,储 伟.一种基于效用和证据理论的可信软件 评 估 方 法 [J].计 算 机 研 究 与 发 展,2009,46(7):1152-1159.
[10]张 川.基于UML的网络课程自动生成系统研究与实现[J].计算机应用研究,2007,24(12):228-230.