陳行濱, 鄒墨, 李霄銘, 鄭文潔, 姜鳳艷
(1.國網福建省電力有限公司, 福建,福州 350000;2.國網福建省電力有限公司信息通信分公司, 福建,福州 350000;3.國網信通億力科技有限責任公司, 福建,福州 350003)
電力系統是人們日常生活的必需,也是經濟繁榮的保障與支撐。在電網運行過程中,電能的生產、傳輸與消耗是同時進行的,如果無法預知負荷需求,則有可能導致資源不足或浪費。隨著電網規模的擴大,受天氣、地理環境、政策等因素影響,負荷預測的難度也越來越大,捕捉負荷的非線性以及不確定性的趨勢走向也變得越來越困難。因此,在實際生活中,科學準確的負荷預測在提升供電可靠性以及策略調配方面都具有極為重要的現實意義。
電力負荷數據會表現出單位時間內的周期性規律,這些特性對預測模型構建有很大的指導意義,數據特性主要包括以下幾點。
(1) 日周期性:電力負荷數據每日會按照時間段有相似的波動變化。逐步攀升達到峰值后回落,然后再增加,隨后降為最低。
(2) 周周期性:以周為周期,工作日負荷及周末休息日負荷的波動情況也存在相似波動趨勢。
(3) 受外界因素影響:受溫度、天氣、濕度等外界因素影響。
(4) 隨機性:受隨機出現的政策變化、電網故障、經濟活動影響,屬于突變因素[1]。
電力系統用戶可分為城市居民、鄉鎮居民、商業用戶、工業公戶等,每一類用戶的負荷特性規律均不相同。通常情況下電力負荷會同時受到多種因素影響,逐一分析如下。
(1) 社會因素:主要包括經濟發展水平、用戶的收入及消費水平以及區域的消費結構。
(2) 時段因素:通常存在早晚高峰期,工作日、節假日也會有所不同。
(3) 氣象因素:受溫度、濕度、降雨、風速等氣候變化影響。
(4) 隨機因素:存在突發事件、社會活動、電價策略調整等隨機因素。
電力數據負荷預測本質上來講就是根據歷史負荷,結合當地狀況以及影響因素預估未來的負荷趨勢。既要掌握過去的數據,又要分析未來的趨勢,屬于不確定性的問題求解,具有以下特點:首先,由于受制因素較多且包括隨機因素,所以具有不確定性;其次,負荷預測問題處于多種條件構成的環境,某個條件是否發生有時候不好判斷,所以具有條件性;再次,電力負荷序列具有時間特性,可以用某時間段的情況預測未來某時間段的情況。最后,對于同一問題,可能需要制定多種方案,最終尋求最優解。
負荷預測流程如圖1所示。

圖1 負荷預測流程
(1) 采集歷史數據:采集日期、負荷數據、溫度等相關信息。
(2) 數據預處理:對采集到的初始數據進行量化預處理,方便代入預測模型。
(3) 分析影響因子:分析有強烈關聯性的影響因子,提升預測精確性。
(4) 構建預測模型:采用合適算法,構建預測模型,尋求最優解。
(5) 誤差分析:對于預測結果通過誤差分析進行修正與優化[2]。
(6) 得出預測結果:輸出結果。
循環神經網絡(recurrent neural nerwork,RNN)是將網絡里的神經元連接為環的一種人工神經網絡,它的隱含層神經元的輸入既包括上一層神經元的輸入,也包括同層的隱含神經元上一時刻的輸出,對信息具有記憶能力,但如果信息量過多,RNN算法就會丟失長久時間之前的學習能力。因此本文選用下一節介紹的長短期記憶神經網絡算法。
長短期記憶神經網絡(long short-term memory,LSTM)。LSTM網絡的隱含層除了RNN網絡隱含層的狀態量s之外,多了新的狀態量c用于存儲長期狀態。設當前時刻輸入為xt,上一時刻輸出為st-1,上一時刻狀態為ct-1,引入輸入門、輸出門、遺忘門三個結構,定義Wf為權重矩陣,bf為偏置,σ為sigmoid激活函數,tanh為遺忘門激活函數,則計算過程如下。
(1) 遺忘門:控制上一時刻狀態ct-1相關信息保存到當前狀態ct之中。
計算方法為ft=σ(Wf·[st-1,xt]+bf)最終計算得出的ft為[0,1]值,如果為0,則將上一時刻狀態完全忘記,如果為1則全部記憶。一般來說是只需記憶上一時刻中要保存的信息即可。
(2) 輸入門:控制當前時刻輸入xt中有多少信息需要保存到當前狀態ct里。
計算方法為it=σ(Wi·[st-1,xt]+bi),最終得到的it為[0,1]值,如果為0,則將當前時刻輸入完全忘記,如果為1則全部記憶。一般來說是只需記憶當前時刻輸入中要保存的信息即可。
最終得到的當前狀態為ct=ft×ct-1+it×t,其中t是候選值向量,計算方法為:t=tanh(Wc·[st-1,xt]+bc)
(3) 輸出門:控制當前狀態ct中有哪些信息要保存到當前輸出st之中
計算方法為ot=σ(Wo·[st-1,xt]+bo),最終得到的ot為[0,1]值,最終得到當前時刻的輸出st=ot×tanh(ct)
在數據收集過程中因為各種操作或設備的原因造成的缺失數據會影響預測模型的計算結果,由于電力負荷數據具有日周期性、周周期性的規律,可采用前后日期相同時刻的均值進行補位,并利用公式進行數據歸一化處理:xnorm=x-xminxmax-xmin(xnorm為歸一化后的負荷,x為原始負荷數據,xmin為原始數據中的最小值,xmax為原始數據中的最大值)
電力系統負荷數據雖然整體具有周期性,但由于外界因素的影響仍會存在波動,影響因子的選擇將直接關系到預測結果的精度。根據前文的分析,本文從時段因素、氣象因素、隨機因素中選用對電力負荷影響最大的溫度、日期、電價作為預測模型的影響因子[3]。
負荷預測模型包括輸入層、輸出層、隱含層。輸入層的輸入為歷史負荷數據以及穩定、日期、點價等;輸出層的輸出為預測數組。關鍵參數如下。
(1) 學習率:掌控模型學習時間,類似于網絡調整權重的步長。通常情況下取0.01到0.001之間為宜,可以在過程中進行調整。
(2) 迭代次數:根據學習率調整網絡權重尋求最優解的次數,迭代次數太小達不到效果,太大則造成資源浪費,同樣可以在過程中進行調整。
(3) 損失值:模型優化就是不斷減少損失值,采用均方差函數計算。
LOSS=Σ(-y)2n
(n為數據量,為模型預測值,y為實際值)。
粒子群算法(particle swarm optimizer,PSO)通過對所有粒子待優化函數進行評價達到目標函數。算法相對簡單、收斂速度很快,在動態目標、多目標等問題上優化效果非常好。電力負荷預測模型的訓練關鍵在于參數的最優化,僅僅只靠人工經驗會增加難度且效果未必精準,因此本文采用PSO算法優化LSTM模型中的參數進行優化,降低人工干預,力求達到最優的預測結果。具體優化流程如圖2所示。

圖2 粒子群算法對LSTM參數的優化流程
首先,粒子群算法對預測模型所需的參數做初始化設置,將初始值作為歷史最優解,然后通過LSTM算法對訓練集的負荷數據進行訓練,得出損失值達到要求則停止,輸出最優結果。否則將新的優化參數重新賦值繼續迭代,直至到達迭代次數[4]。
電力系統負荷數據預測平臺采用交互性好、響應迅速的C/S模式進行研發,C端采用C#語言編程,S端采用SQL Server數據庫實現數據存儲與關系管理。整體開發框架如圖3所示。

圖3 電力負荷預測平臺開發框架
電力系統負荷數據預測平臺主要包括三大模塊:數據倉庫、模型構建與擇優、負荷預測。其模塊結構如圖4所示。

圖4 電力負荷預測平臺模塊構成
(1) 數據倉庫:主要功能包括負荷數據、氣象數據、電價數據的增刪改查。實現初始數據的存儲與管控。
(2) 模型構建與擇優:對初始數據進行預處理之后,選擇歷史數據、影響因子,完成數據綁定,利用預處理之后的數據進行模型訓練,輸出訓練結果[5]。
(3) 負荷預測:以表格或圖形方式顯示模型預測結果以及損失情況,實現可視化清晰展示。
根據電力系統負荷數據預測平臺的功能,拆解設計關鍵數據庫表如下。
(1) 歷史負荷表:核心字段包括編號、日期、負荷值等。日期不可空,負荷值由于存在缺失情況,可空。
(2) 預測負荷表:核心字段包括編號、日期、預測負荷值、損失值等。日期及預測值均不可空。
(3) 影響因子表:核心字段包括編號ID、日期、溫度等。
(4) 電價信息表:核心字段包括編號ID、日期、電價等[6-7]。
為驗證本文構建的電力負荷預測模型的精確性,取某地區245天的實例數據進行驗證,將240天作為訓練集,剩余5天做為預測對比,將原始數據錄入到本文設計的電力系統負荷數據預測平臺,通過負荷預測模型得到的9:00-19:00預測結果與實際值對比如表1所示。
由此可以表明,本文設計的電力負荷預測平臺具有良好的實際效果,預測結果精準度較高,誤差較小,滿足預期,可以作為電力網絡供電的預估依據[8-9]。

表1 負荷預測值與實際值對比結果表
本文從分析電力負荷的數據特性出發,闡述了負荷預測的流程,并通過長短期記憶神經網絡構建了負荷數據預測模型,設計了預測平臺結構以及模塊組成,實測數據證明預測效果良好。但在影響因子選擇以及模型參數方面還需進一步優化,也需要量級更大的實例數據進行模型訓練與優化,對預測模型的普適性還需繼續研究。