劉可真, 梁玉平, 代瑩皓, 吳政聲, 董 敏
(1.昆明理工大學 電力工程學院,云南 昆明 650500;2.中國能源建設集團云南省電力設計院,云南 昆明 650051;3.云南經濟管理學院 信息與智能工程學院,云南 昆明 650304)
隨著我國電力市場及其相關產業鏈的蓬勃發展,對負荷進行高效、準確地預測逐漸成為電網研究的重要內容。負荷預測是根據歷史負荷的波動規律以及溫度、日期類型等相關因素,對未來的電力需求進行估計。其中短期電力負荷預測對電網調度、市場交易計劃的制定、降低發電機組的損耗,以及保證電網經濟、可靠運行發揮著重要作用,故亟需對短期負荷預測方法進行深入研究,以提升電網運行可靠性及經濟效益[1-2]。
為了提高短期電力負荷預測精度,國內外眾多專家學者開展了深入研究,預測模型總體可概括為時間序列模型、機器學習模型、模型組合三類。時間序列模型的預測效果依賴數據集的原始分布特性[3]。機器學習模型主要包括循環神經網絡(RNN)[4]、支持向量機(SVM)[5]、長短期記憶(LSTM)網絡[6]和門控循環單元(GRU)[7-8]等。模型組合有兩種形式:(1)如文獻[9]分別用LSTM與極限梯度提升(XGBoost)模型預測后,賦予單一模型不同權重,尋找最優權值求和,使預測精度高于單一模型;(2)利用信號分解的原理對初始數據進行處理,方法有小波分解[10]、經驗模態分解(EMD)[11]、變分模態分解(VMD)[12]等,降低原始序列的非線性、非平穩特征,進而結合模型進行預測。電力負荷波動受到歷史負荷、氣象因素、日期類型[13]等因素影響,使收集的歷史數據具有較高的復雜性和時序性。CNN由于其特殊卷積層與池化層結構,可以自動提取出數據間的潛在特征形成特征向量,降低數據的復雜性,現已被應用在進行短期負荷預測的特征向量提取方面[14]。由于RNN當前時刻的輸出會受到上一時刻輸出的影響,使其具有“記憶”性質,在時間序列預測中表現更優。RNN的兩種變體LSTM和GRU,可以有效緩解RNN訓練過程中的梯度消失與爆炸。GRU是在LSTM網絡結構基礎上進行改進的,其自身結構更加簡單、有更快的收斂速度與較高的預測準確率[15-16]。LSTM網絡、深度置信網絡(DBN)等傳統機器學習法在進行數據預測時,需要根據人為經驗或控制變量等方法確定模型關鍵參數值的大小,導致模型預測效果不理想[13,17]。麻雀搜索算法(SSA)具有控制參數少、求解速度高等優點,可以用以替代手動設置模型參數等重復工作[19-20];但算法后期種群多樣性和搜索能力均會有所下降[21],因此提出一種改進麻雀搜索算法(ISSA)以增強算法對模型參數的尋優能力。
鑒于此,本文利用CNN從影響負荷因素的多維數據集里提取出有效的特征向量,表征負荷動態復雜變化的特征信息,并構造成時間序列輸入到GRU,使用ISSA對GRU網絡中的超參數進行迭代尋優。ISSA通過不斷尋優得到GRU最優超參數(神經元個數m與學習率ε分別對模型的擬合能力和訓練效果影響較大),確保模型達到最高預測精度。試驗表明,相較于現有機器學習負荷預測方法,本文所提出的CNN-ISSA-GRU混合模型預測精度更高、穩定性更好。
SSA是2020年提出的一種元啟發式優化算法[18],模擬了麻雀種群的捕食與反捕食的行為。在麻雀群覓食過程中,發現者擁有較高的初始適應度,有更大的覓食范圍,負責為群體搜尋覓食范圍和方向,在迭代過程中按式(1)更新自身位置。

(1)
式中:Xi,k為第i只麻雀在第k維度下的位置;t、itermax分別為當前、最大迭代次數;α為屬于(0,1)的隨機數;R2、ST分別為范圍在[0,1]、[0.5,1]的預警值和安全值;Q為隨機值且服從正態分布;L為1×k維的全1矩陣。
加入者時刻觀察發現者,與其競爭食物或圍繞著其覓食,更新公式如下:

(2)

偵察者更新位置公式為

(3)
式中:Xbest為當前全局最優位置;β為服從N(0,1)正態分布的隨機值;K為(-1,1)的隨機值;fi、fg、fw分別為當前個體適應度、全局最優適應度、最差適應度;η為避免分母為0而引入的常數。
在SSA算法的后期迭代中,麻雀個體同化性質嚴重,容易陷入局部最優解,出現停滯狀況。為解決這一情況,引入柯西-高斯變異策略以調整麻雀位置[22]。按式(4)、式(5)對當前適應度最高的個體進行變異,比較變異前后位置,取最優值進行下一次迭代。

(4)

(5)

作為一種典型的前饋神經網絡,CNN利用局部連接和共享權重兩種方式對數據進行高效處理,可以有效降低數據處理過程中存在的復雜性與過擬合等缺陷,其結構由輸入層、卷積層、池化層、全連接層和輸出層組成[23],如圖1所示。CNN獨特的卷積層與池化層交替排列,多維度掃描和壓縮數據、自動提取所需特征,在減少數據特征維度的同時提高數據特征質量。

圖1 CNN結構
GRU是于2014年提出的一種RNN變體結構,解決LSTM網絡在長序列訓練時速度緩慢、計算公式復雜、設置參數較多等問題。
在長時間非線性序列的預測方面,LSTM和GRU模型已經得到了廣泛應用,其組成結構單元都包括:輸入層、隱藏層和輸出層,不同之處在于GRU網絡用一個更新門代替了LSTM網絡中的輸入門與遺忘門。GRU結構如圖2所示,其中隱藏層包含更新門zt與重置門rt。zt、rt分別控制對前一時刻信息的記憶(越大記憶性越強)、忽略(越小忽略性越高)程度。

圖2 GRU網絡結構
GRU模型的輸入為xt,通過結合zt與rt得到的輸出ht公式如下:
zt=σ(W(z)xt+U(z)ht-1)
(6)
rt=σ(W(r)xt+U(r)ht-1)
(7)

(8)

(9)

短期電力負荷與用戶的用電習慣、歷史負荷、氣溫、日期等密切相關,負荷曲線呈現出非線性、非平穩的趨勢。歷史負荷數據在短期負荷預測過程中起著重要作用,其包含了未來負荷變化的重要特征信息。傳統方法進行負荷預測時,輸入到模型的特征向量是人為選取預測時刻前一段時間(如前2 h、連續前幾天同時刻等)的負荷值,這不僅破壞了歷史負荷數據內部的特征規律,而且降低了預測模型的精準度。此外氣溫數據、日期類型影響著預測模型準確度,且這些因素極具波動性與不確定性,直接作為特征輸入GRU時,造成模型預測精度偏低。CNN憑借卷積、池化層交替排列結構可以有效地從影響負荷變化的因素中挖掘出潛在的相關信息,提取出重要的特征信息進一步構造成時間序列輸入到GRU網絡。ISSA在保證GRU模型預測精度最高的前提下,搜尋模型的最優參數(m與ε),實現電網負荷短期精準預測。
本文所提基于CNN-ISSA-GRU的預測模型如圖3所示,主要包括數據預處理層、CNN層、ISSA尋優層、GRU預測輸出層。

圖3 基于CNN-ISSA-GRU的預測模型
步驟1。采用min-max公式將特征數據集進行標準化處理,變換至區間[0,1],劃分訓練集、測試集,輸入到CNN層。min-max公式為

(10)
式中:x*為標準化后的樣本;xmin、xmax分別為樣本最小、最大值。
步驟2。CNN層挖掘影響負荷變化的特征向量,構造為時間序列,輸入GRU層。
步驟3。初始化ISSA參數,建立GRU層,計算適應度和個體最優位置,開始訓練并以平均絕對百分比誤差(MAPE)評價麻雀種群在訓練集的適應度。

步驟5。當適應度不再變化或達到最大次數itermax時終止迭代,獲取當前GRU最優超參數m和ε,否則繼續步驟4。
步驟6。使用GRU最優超參數更新預測模型,在測試集中預測比較精度。
為了驗證本文所提預測模型的性能,選取如下指標對模型進行評價。
平均絕對百分比誤差:

(11)
根均方誤差:

(12)
預測精度:

(13)
式中:n為測試集容量;Xact(i)和Xpred(i)分別表示i時刻負荷的真實值和預測值;MAPE和RMSE與預測精度呈負相關關系,其值越小代表著預測越準確;FA則相反,其值越大代表著預測越準確。
為驗證本文所提出的CNN-ISSA-GRU網絡模型預測方法的準確性,進行算例分析。測試樣本使用云南某地區共3年的電力負荷數據,采集周期為15 min,一天采集96個點,將預測結果與CNN-SSA-GRU、CNN-GRU、GRU、LSTM和RNN模型作對比,驗證所提模型的可靠性。
試驗在Win10(64bit)操作系統下進行,基于Anaconda平臺,編程語言為Python,Keras主要有模塊化、支持訓練模型層的自由組合等特征,采用Keras實現基于CNN-ISSA-GRU網絡模型的短期負荷預測。樣本所使用的數據集為2013年1月1日至2015年12月31日,共105 120個歷史負荷數據。以2013年至2014年的電力負荷特征數據作為訓練集,2015年的數據作為測試集。本文確定模型的輸入特征向量為歷史負荷數據、預測日及前一日的最高溫度、最低溫度、平均溫度、周日期類型、工作日類型,星期一到星期日用數字1~7表示、工作日與節假日分別用1和2表示,形成相應的特征矩陣并輸入模型。
CNN-ISSA-GRU網絡模型由數據輸入預處理層、CNN層、ISSA優化層和GRU預測輸出層構成。將收集到的影響電力負荷變化的歷史負荷數據和溫度數據標準化處理后輸入CNN模型,提取出關鍵的特征信息,經過調整模型結構和參數以及對預測結果進行分析,確定模型參數如下:構建的CNN模型由2個卷積層(2層都為一維卷積,核數目分別為32與64,激活函數為Relu)、2個池化層(采用最大池化的方式以保留更多的特征信息,步長為1)和全連接層(數據由卷積層和池化層處理后經全連接層按時間順序轉化輸出)組成;GRU模型結構包含2層GRU隱藏層,采用Adam訓練其內部參數[24],激活函數使用tanh函數,時間窗口大小為10,批處理設置為60;ISSA對GRU的m、ε優化過程中,參數設置如下:麻雀種群數量為20,發現者比例為0.2、安全值ST為0.8,偵查者比例為0.1,算法最大迭代次數itermax為100,m與ε的搜索范圍分別為[1,32]和[-0.01,0.01]。
利用訓練集數據對m與ε進行優化的結果如圖4所示,ISSA對GRU模型中超參數進行優化過程的收斂速度比SSA優化速度快,對模型的關鍵參數有著更強的尋優能力,隨著迭代次數的不斷增加,SSA-GRU與ISSA-GRU的適應度值最終穩定在2.236和1.513,GRU模型2層隱藏層神經元的個數m分別取值8和16、ε為0.002 2時,本文所提出的CNN-ISSA-GRU混合模型預測方法在保證較快收斂速度的同時極大提高了預測精度。

圖4 CNN-ISSA-GRU最優m、ε和itermax的變化
本文所提出的基于CNN-ISSA-GRU混合模型的短期負荷預測方法,對測試集數據中單獨一天和連續半年內的負荷預測結果評價指標如表1所示,表中FAavg表示預測精度的平均值。

表1 不同預測模型對比
通過分析可知,CNN-ISSA-GRU模型無論是在單獨一天還是連續半年內進行日前短期負荷預測時,均比其他5種對比模型具有更高的預測精度。連續半年的測試中,CNN-ISSA-GRU方法相比于CNN-GRU、GRU、LSTM、RNN 4類預測模型,MAPE指標分別降低了0.088%、0.327%、1.041%和1.3624%,FAavg指標分別提高了0.09%、0.33%、1.06%和1.39%,表明GRU模型在處理時間序列問題上有較好的預測效果,也反映了使用麻雀搜索來優化其超參數的必要性;進一步試驗將提出的CNN-ISSA-GRU模型與CNN-SSA-GRU預測效果進行對比,其中MAPE降低了0.91%,FAavg提高了0.92%,表明使用ISSA對GRU模型進行參數優化不僅自動得到其最優解,還進一步提高了預測精度,具有更高的可靠性。
表2為本文所提的CNN-ISSA-GRU預測模型與其他5種方法對測試集數據中4個季節進行負荷預測的平均誤差匯總表,從表中可以看出本文所提的方法在一年不同季節中預測誤差均最低,四季平均預測精度達到了98.624%,相較于CNN-SSA-GRU、CNN-GRU、GRU、LSTM、RNN模型,MAPE指標分別降低了1.038%、1.118%、1.402%、1.996%和2.356 3%,RMSE分別降低了44.047、47.936、75.029、125.368和154.21,對試驗數據進行綜合分析表明本文所提出的模型在電網短期負荷預測方面有著更高的預測精度和穩定性。

表2 不同模型不同季節預測結果比較
表3匯總了不同算法模型驗證一天中每個小時的第一個15 min時監測負荷的實際值、預測值以及兩者的絕對百分比誤差。結果表明本文所提的模型在24個監測點的預測結果平均絕對百分比誤差、最大絕對百分比誤差分別為1.205%、3.038%,相比于CNN-SSA-GRU、CNN-GRU、GRU、LSTM和RNN模型,MAPE分別降低了0.986%、1.179%、1.337%、1.849%和2.002%,證明所提CNN-ISSA-GRU預測模型的平均誤差和最大誤差均優于其他模型,有著更高的預測精度。

表3 實際值和預測值及絕對百分比誤差

續表3
2015年12月某天負荷實際值與其他模型預測值的大小變化曲線如圖5所示,其對應預測點的絕對百分比誤差變化折線圖如圖6所示,從圖中可以看出每種預測模型都可以達到對短期電力負荷預測精度的要求,但在負荷變化趨勢較大的波峰波谷時,本文所提出的CNN-ISSA-GRU模型方法對實際峰谷負荷數據擬合能力更強,預測誤差最小,與日負荷實際變化趨勢也基本保持一致,為電網進行短期負荷預測提供理論支持。

圖5 負荷預測曲線與實際曲線對比圖

圖6 樣本絕對誤差對比
為提高電網短期負荷預測的精度,本文提出了一種基于CNN-ISSA-GRU的短期電力負荷預測方法。得出以下結論:
(1) 采用CNN獨特的卷積層與池化層,多維度掃描和壓縮數據、自動提取所需特征,構造成時間序列輸入預測模型;
(2) 使用ISSA不斷自動迭代更新,在達到最高預測精度的前提下,尋找GRU模型關鍵參數的最優值,克服了傳統經驗參數選擇導致的模型預測準確度低的問題;
(3) 與傳統的GRU、LSTM和RNN預測模型相比較,本文所提基于CNN-ISSA-GRU混合模型的負荷預測方法具有更高的預測精度和可靠性。