魏禮舜, 潘若愚, 丁 帥
(1.合肥工業(yè)大學(xué) 計(jì)算機(jī)與信息學(xué)院,安徽 合肥 230009;2.合肥工業(yè)大學(xué) 管理學(xué)院,安徽 合肥 230009)
社會用電量反映了特定區(qū)域在某一時(shí)段內(nèi)的社會用電整體情況,開展用電量的中長期預(yù)測研究對于提升電力企業(yè)的快速應(yīng)急水平,提高企業(yè)的盈利能力具有重要的理論意義和實(shí)際價(jià)值[1]。電力企業(yè)在運(yùn)行過程中一直存在著供銷不平衡的現(xiàn)象,供電短缺和電量過剩都將產(chǎn)生較大的經(jīng)濟(jì)損失[2]。作為一種可靠性、時(shí)效性較高的數(shù)據(jù),區(qū)域用電量也已經(jīng)被廣泛應(yīng)用于地區(qū)經(jīng)濟(jì)走勢、產(chǎn)業(yè)政策影響等復(fù)雜決策分析過程中,定量分析和預(yù)測區(qū)域用電量將為決策者提供有力的決策數(shù)據(jù)支撐。
為了處理社會用電量的中長期預(yù)測問題,需要充分把握目標(biāo)區(qū)域的總體用電量走勢,嘗試應(yīng)用科學(xué)的定量預(yù)測方法或模型,以過往用電量數(shù)據(jù)為基礎(chǔ),綜合考察氣候、節(jié)假日及相關(guān)政策法規(guī)等多個(gè)影響因素,對目標(biāo)區(qū)域內(nèi)的用電量走勢進(jìn)行定量預(yù)測。為此,設(shè)計(jì)具有區(qū)域用電量預(yù)測、中長期用電量走勢分析及決策支持等功能的智能決策支持系統(tǒng),以實(shí)現(xiàn)對中長期區(qū)域用電量的科學(xué)預(yù)測,減少發(fā)電量過多或者過少帶來的社會經(jīng)濟(jì)損失,并為決策者制定區(qū)域經(jīng)濟(jì)決策、分析區(qū)域經(jīng)濟(jì)狀況提供有力的技術(shù)支持。
金融危機(jī)背景下,基于區(qū)域用電量數(shù)據(jù)的經(jīng)濟(jì)走勢分析已經(jīng)成為國內(nèi)外眾多決策機(jī)構(gòu)的一個(gè)常規(guī)任務(wù)。以過往用電量數(shù)據(jù)為基礎(chǔ),考慮多種影響因素的區(qū)域用電量分析及中長期預(yù)測問題也已經(jīng)成為學(xué)術(shù)界的一個(gè)研究熱點(diǎn),形成了一批有代表性的研究成果,如針對濱州市的實(shí)際情況設(shè)計(jì)的社會用電分析軟件[3]和結(jié)合農(nóng)村電網(wǎng)的情況提出的一種農(nóng)村用電量預(yù)測的系統(tǒng)實(shí)現(xiàn)方法[4]。但上述系統(tǒng)在預(yù)測結(jié)果的精度、預(yù)測結(jié)果的可解釋性、系統(tǒng)的靜態(tài)和動(dòng)態(tài)模型以及其他所能提供的輔助支撐功能上略顯不足。
作為一種復(fù)雜的決策支持系統(tǒng),國內(nèi)外關(guān)于區(qū)域用電量分析和預(yù)測決策支持系統(tǒng)研究尚處于初級階段,其內(nèi)部結(jié)構(gòu)和功能需求尚未形成統(tǒng)一的認(rèn)識。為此,本文介紹一種基于 .NET框架,具有較高的預(yù)測精度和多種決策支持功能的區(qū)域用電量分析及預(yù)測支持系統(tǒng)(EDSS)。本文分別從需求分析、基于UML的系統(tǒng)靜態(tài)和動(dòng)態(tài)建模及系統(tǒng)具體實(shí)現(xiàn)等方面,對區(qū)域用電量分析及預(yù)測系統(tǒng)展開論述[5]。
軟件需求分析是為了明確用戶期望和系統(tǒng)開發(fā)目的,準(zhǔn)確把握系統(tǒng)應(yīng)該實(shí)現(xiàn)的功能,以便制定合適的計(jì)劃來滿足軟件需求[6]。通過調(diào)查走訪與前期需求分析,將EDSS設(shè)計(jì)實(shí)現(xiàn)以下4個(gè)模塊。
1.1.1 區(qū)域用電量預(yù)測模塊
(1)基于計(jì)量經(jīng)濟(jì)學(xué)模型預(yù)測算法模塊。區(qū)域用電量數(shù)據(jù)與GDP、經(jīng)濟(jì)走勢、節(jié)假日、氣候氣溫等因素緊密相關(guān),充分考慮這些關(guān)聯(lián)因素,將有利于提升區(qū)域用電量估算模型的預(yù)測精度,并對預(yù)測結(jié)果的可解釋性產(chǎn)生積極影響。計(jì)量經(jīng)濟(jì)學(xué)模型是一種可以將多種關(guān)聯(lián)因素融合推理的計(jì)算模型,可以被應(yīng)用于區(qū)域用電量的預(yù)測演算過程。仿真實(shí)驗(yàn)結(jié)果表明,數(shù)據(jù)規(guī)模和參數(shù)考察的個(gè)數(shù)將直接影響該模型的預(yù)測精度,當(dāng)數(shù)據(jù)量達(dá)到預(yù)設(shè)閾值,綜合考察前面所述多種影響因素,基于計(jì)量經(jīng)濟(jì)學(xué)模型的區(qū)域用電量預(yù)測的平均誤差可以控制在3%左右。
因此,作為DCM的一個(gè)核心部件,基于計(jì)量經(jīng)濟(jì)學(xué)模型的預(yù)測算法模塊應(yīng)該實(shí)現(xiàn)中長期區(qū)域用電量預(yù)測功能,并能為用戶變更參數(shù)提供交互接口。
(2)基于神經(jīng)網(wǎng)絡(luò)模型預(yù)測算法模塊。在用戶產(chǎn)生預(yù)測需求時(shí),可能會出現(xiàn)計(jì)量經(jīng)濟(jì)模型所需影響因素獲得不完全、外部導(dǎo)入影響因素時(shí)數(shù)據(jù)缺失等情況,此時(shí)使用計(jì)量經(jīng)濟(jì)學(xué)模型預(yù)測將會產(chǎn)生較大的預(yù)測誤差,而神經(jīng)網(wǎng)絡(luò)模型中影響因素?zé)o需用戶手工設(shè)定,在數(shù)據(jù)量達(dá)到設(shè)定閾值后,神經(jīng)網(wǎng)絡(luò)模型能主動(dòng)學(xué)習(xí)數(shù)據(jù)內(nèi)部蘊(yùn)含的數(shù)據(jù)規(guī)律,系統(tǒng)中選用3層B-P神經(jīng)網(wǎng)絡(luò)[7]。該模型是一種自學(xué)習(xí)模型,將輸入信號的正向傳遞與誤差信號的逆向傳遞相結(jié)合,在輸出信號沒有達(dá)到期望輸出前,將會根據(jù)誤差反向傳播信號不斷地調(diào)整各層間權(quán)值矩陣最后達(dá)到理想輸出。最后,通過加入模擬退火算法避免了權(quán)值矩陣陷入局部最優(yōu)而導(dǎo)致預(yù)測結(jié)果的偏差。神經(jīng)網(wǎng)絡(luò)模型有較高的預(yù)測精度,但是內(nèi)部過程對用戶完全屏蔽,產(chǎn)生的數(shù)據(jù)可解釋性較差。
(3)基于灰色模型的用電量預(yù)測算法模塊。在中短期預(yù)測中,訓(xùn)練數(shù)據(jù)將會低于預(yù)期預(yù)測閾值,同時(shí)有預(yù)測影響因素不足情況的發(fā)生。一旦出現(xiàn)以上情況,則現(xiàn)有提供的基于計(jì)量經(jīng)濟(jì)模型和基于神經(jīng)網(wǎng)絡(luò)模型的預(yù)測方法均不能很好地滿足用戶的預(yù)測需求。從前期數(shù)據(jù)走勢分析中可以看出,用電量數(shù)據(jù)的走勢近似于指數(shù)分布,而灰色模型所產(chǎn)生的數(shù)值序列能很好地逼近走勢曲線,并且灰色模型能很好地與各種智能算法相結(jié)合,優(yōu)化參數(shù),達(dá)到全局最優(yōu)[8]。
1.1.2 區(qū)域用電量分析與維護(hù)模塊
區(qū)域用電量預(yù)測模塊(District Consumption forecast Module,簡稱DCM)功能的實(shí)現(xiàn)需要采集區(qū)域用電量數(shù)據(jù),因此,區(qū)域用電量分析與維護(hù)模塊(District Consumption Data Analyses and Maintenance Module,簡稱AMM)應(yīng)具有從本地Excel數(shù)據(jù)表或外部數(shù)據(jù)庫中導(dǎo)入的支撐功能以及基本的數(shù)據(jù)維護(hù)功能。同時(shí),針對原始數(shù)據(jù)中使用的數(shù)據(jù)量綱不一致、數(shù)據(jù)冗余、數(shù)據(jù)屬性不完整、存在異常點(diǎn)等情況,AMM模塊應(yīng)該具備數(shù)據(jù)的預(yù)處理功能,確保系統(tǒng)使用數(shù)據(jù)的健壯性。
在滿足用戶對歷史用電量數(shù)據(jù)分析需求方面,系統(tǒng)分析模塊應(yīng)該提供對歷史用電量的同比增長率、環(huán)比增長率等相關(guān)指標(biāo)的計(jì)算、分析和統(tǒng)計(jì)的功能,并對結(jié)果整合集中展示給用戶。
在實(shí)際用電量預(yù)測中,用戶設(shè)置預(yù)測影響因素時(shí)存在一定程度上的盲目性和隨意性。這種情況的產(chǎn)生,源自于用戶對各個(gè)參數(shù)作用于預(yù)測結(jié)果的影響缺乏認(rèn)知。為了對用戶的設(shè)置行為提供參考依據(jù),AMM模塊需對用戶的過往預(yù)測行為予以記錄,并同時(shí)保存該次預(yù)測所設(shè)置的各個(gè)影響因素的值,為用戶即將進(jìn)行的預(yù)測提供參考和對比。
1.1.3 通信管理及輔助支持模塊
出于對滿足DCM中各模型所用到的預(yù)測影響因素獲取的需要,特別是能對預(yù)測結(jié)果產(chǎn)生較大影響的氣候、高溫、節(jié)假日等因素,由于電力部門不能直接獲得,需從有關(guān)部門獲取相關(guān)數(shù)據(jù),系統(tǒng)需預(yù)留對外界數(shù)據(jù)的通信接口部分。在DCM模塊中,電力數(shù)據(jù)可以從本地Excel數(shù)據(jù)表中導(dǎo)入或是從局域網(wǎng)內(nèi)其他數(shù)據(jù)服務(wù)器導(dǎo)入,系統(tǒng)在預(yù)留外界影響因素導(dǎo)入接口的同時(shí),需保留對本局域網(wǎng)其他數(shù)據(jù)服務(wù)器的對接、驗(yàn)證及讀取數(shù)據(jù)等功能。
通信管理及輔助支持模塊(Communication Management and auxiliary support Module,簡 稱CMM)主要針對管理員用戶。面向管理員用戶提供了用戶管理、權(quán)限分配、日志管理等輔助功能。用戶管理包括對用戶的增加和刪除,以及對用戶相關(guān)信息的修改;權(quán)限的分配是在用戶申請用戶名后,管理員在此模塊中對用戶允許使用系統(tǒng)的若干模塊進(jìn)行劃分,并將權(quán)限的編碼寫入到數(shù)據(jù)庫中。日志管理模塊將在數(shù)據(jù)庫中記錄下哪些用戶何時(shí)已何種權(quán)限使用了系統(tǒng),通過記錄這些信息能在管理員對系統(tǒng)進(jìn)行維護(hù)的時(shí)候提供幫助。
1.1.4 統(tǒng)一應(yīng)用程序接口
統(tǒng)一應(yīng)用程序接口(Unify Application Interface,簡稱UAPI)的重點(diǎn)是保證各模塊的設(shè)計(jì)都能做到高內(nèi)聚低耦合,保證模塊所用數(shù)據(jù)符合模塊的運(yùn)行要求,避免臟數(shù)據(jù)進(jìn)入相應(yīng)模塊中。下面以通信類為例,簡要說明其作用。
使用場景:建立通訊類實(shí)例,通過此實(shí)例與數(shù)據(jù)庫通信并過濾臟數(shù)據(jù),保證使用數(shù)據(jù)的健壯。
Public Communications Comm=new Communications();Comm.GetData(XXXX);//參數(shù)用戶自定義Comm.InputDS(DataSet XX)//將數(shù)據(jù)集中的數(shù)據(jù)寫入數(shù)據(jù)庫中
Comm.OutPutDS(XXXXX)//參數(shù)用戶自定義
異常:
(1)數(shù)據(jù)庫服務(wù)不存在或數(shù)據(jù)庫連接錯(cuò)誤。
(2)數(shù)據(jù)表讀寫請求錯(cuò)誤或字段不存在。
(3)傳遞數(shù)據(jù)中包含臟數(shù)據(jù)。
軟件架構(gòu)是一系列相關(guān)的抽象模式,用于指導(dǎo)軟件系統(tǒng)各個(gè)方面的設(shè)計(jì),是一個(gè)系統(tǒng)的草圖[9],它的對象是直接構(gòu)成系統(tǒng)的抽象組件,各個(gè)組件之間的連接則明確和細(xì)致地描述組件之間的通訊。系統(tǒng)從功能上被劃分為統(tǒng)一應(yīng)用接口模塊(UAPI)、數(shù)據(jù)預(yù)測模塊(DCM)、數(shù)據(jù)分析及維護(hù)模塊(AMM)、通信管理及輔助支持模塊(CMM)4大主要模塊。系統(tǒng)架構(gòu)圖如圖1所示。
圖1 系統(tǒng)架構(gòu)圖
在這4個(gè)主要模塊的共同作用下,系統(tǒng)將能提供數(shù)據(jù)導(dǎo)入、歷史數(shù)據(jù)查詢、數(shù)據(jù)預(yù)測、用戶管理等功能。
靜態(tài)結(jié)構(gòu)模型描述了系統(tǒng)中重要對象的屬性和操作,以及這些對象之間的相互關(guān)系[10]。建立用例圖之后,需要進(jìn)一步找出系統(tǒng)中存在的對象,再從對象中找出類,做好類的屬性與操作的劃分,提取出共同的屬性與操作放入父類中。子類繼承父類的屬性和操作,并在子類中添加屬于自己的屬性與方法。
EDSS主要需要實(shí)現(xiàn)以下類:Person類(人員類)、User類(用戶類)、Administrator(管理員類)、Data(數(shù)據(jù)類)、ANN(神經(jīng)網(wǎng)絡(luò)模型類)LineReg(計(jì)量經(jīng)濟(jì)學(xué)模型類)、GrayModel(灰色模型類)、CombinationForcast(組合預(yù)測類)、Communications(通信類)、DataMaintenance(數(shù)據(jù)維護(hù)類)及Log(日志類),每個(gè)類都有自己相對應(yīng)的屬性和方法。從用戶角度勾勒出系統(tǒng)的靜態(tài)關(guān)聯(lián),如圖2所示。
圖2 系統(tǒng)局部靜態(tài)關(guān)聯(lián)圖
系統(tǒng)實(shí)際實(shí)裝模型數(shù)量較多,這里抽取其中較為典型的計(jì)量經(jīng)濟(jì)學(xué)模型、神經(jīng)網(wǎng)絡(luò)模型、灰色模型以及組合模型這4種模型做演示,其他模型因篇幅原因?qū)⒉辉儋樖觥?/p>
對系統(tǒng)進(jìn)行靜態(tài)分析后仍然不能完整清晰地描述出各模塊的職責(zé)與行為,需要對系統(tǒng)進(jìn)行進(jìn)一步的動(dòng)態(tài)建模。動(dòng)態(tài)行為模型一般用協(xié)作圖、狀態(tài)圖、時(shí)序圖和活動(dòng)圖等來表述,本文采用時(shí)序圖來描述系統(tǒng)的動(dòng)態(tài)行為。時(shí)序圖是按時(shí)間順序排序的交互圖,采用從上到下的順序來表示時(shí)間的順序,用于通過情境檢查邏輯流程。
從用戶的視角構(gòu)建系統(tǒng)的動(dòng)態(tài)模型,如圖3所示。
圖3 系統(tǒng)動(dòng)態(tài)時(shí)序圖
圖3所示的主要過程是:用戶輸入用戶名密碼進(jìn)行登錄,在分析查詢菜單中查詢歷史用電量信息、對歷史用電量數(shù)據(jù)的分析、計(jì)算并顯示同比增長率和環(huán)比增長率等;或者在預(yù)測模塊中,用戶選擇某一種模型進(jìn)行用電量預(yù)測,或是選擇多種模型進(jìn)行組合預(yù)測。這樣的操作能夠反復(fù)多次進(jìn)行,直到最后用戶退出系統(tǒng)為止。
本系統(tǒng)運(yùn)行時(shí)所需系統(tǒng)資源少,普通PC機(jī)器即可滿足要求。EDSS以在Windows XP操作系統(tǒng)下的低資源要求高性能的SQLServer 2000為底層數(shù)據(jù)庫;采用Visual Studio 2008為開發(fā)平臺,在.NET framework 3.5下,全部代碼使用C#語言實(shí)現(xiàn),報(bào)表展現(xiàn)模塊使用了業(yè)界專業(yè)的水晶報(bào)表,滿足多種樣式的報(bào)表展現(xiàn)功能。這樣既保證了人機(jī)界面的良好、操作方便,又可以快速準(zhǔn)確地實(shí)現(xiàn)統(tǒng)計(jì)分析和預(yù)測計(jì)算的功能。軟件的開發(fā)基于當(dāng)今主流的Windows XP操作系統(tǒng),充分發(fā)揮了實(shí)用性強(qiáng)、兼容性好的特點(diǎn),使得軟件維護(hù)和升級非常方便。
系統(tǒng)查詢分析界面演示如圖4所示,其界面展示的是用電量查詢模塊及用電量同期對比的結(jié)果,在此模塊中引入圖表展現(xiàn)可以讓用戶從枯燥的數(shù)字中擺脫出來,以直觀的形式獲得對歷史用電量走勢的直觀感受。
圖4 系統(tǒng)查詢界面
用電量預(yù)測系統(tǒng)項(xiàng)目,采用了面向?qū)ο蟮姆治雠c設(shè)計(jì),采用UML語言建模,加快了系統(tǒng)的構(gòu)建實(shí)現(xiàn)過程,提高了代碼的復(fù)用和代碼質(zhì)量,降低了開發(fā)難度,保證了系統(tǒng)的穩(wěn)定性,降低了開發(fā)風(fēng)險(xiǎn)。隨著國民經(jīng)濟(jì)的發(fā)展,用電量數(shù)據(jù)對國家宏觀調(diào)控特別是工農(nóng)業(yè)的指導(dǎo)意義更加明顯。目前,該系統(tǒng)已開發(fā)完成并在某省電力公司投入使用,運(yùn)行情況良好。
隨著國民經(jīng)濟(jì)的發(fā)展,本系統(tǒng)對電力企業(yè)的決策制定有著較高的使用價(jià)值。
[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]強(qiáng)同波,李伯偉.社會用電分析系統(tǒng)軟件的開發(fā)研究[J].山東教育學(xué)院學(xué)報(bào),2005,20(3):90-91.
[4]王彥紅,許躍進(jìn).地區(qū)農(nóng)網(wǎng)變電規(guī)模預(yù)測研究及軟件設(shè)計(jì)[J].農(nóng)機(jī)化研究,2007(2):194-196.
[5]丁 帥,楊善林.基于.NET精簡框架的嵌入式RFID服務(wù)組件[J].計(jì)算機(jī)工程,2008,34(17):50-55.
[6]李義寶,張學(xué)勇,馬建國,等.基于BP神經(jīng)網(wǎng)絡(luò)的改進(jìn)算法研究 [J].合 肥 工 業(yè) 大 學(xué) 學(xué) 報(bào):自 然 科 學(xué) 版,2005,28(6):668-671.
[7]章銀娥.基于模糊集與前饋神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)特征分析與選擇算法 [J].合 肥 工 業(yè) 大 學(xué) 學(xué) 報(bào):自 然 科 學(xué) 版,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,F(xiàn)UZZ-IEEE,2008:1759-1762.
[9]楊善林,丁 帥,儲 偉.一種基于效用和證據(jù)理論的可信軟件 評 估 方 法 [J].計(jì) 算 機(jī) 研 究 與 發(fā) 展,2009,46(7):1152-1159.
[10]張 川.基于UML的網(wǎng)絡(luò)課程自動(dòng)生成系統(tǒng)研究與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2007,24(12):228-230.