(湖南工業(yè)大學 智能信息感知及處理技術湖南省重點實驗室,湖南 株洲 412007)
電價是電力市場中的核心部分,國內外研究者對于電價預測已經開展了較多工作,如使用經典回歸分析方法基于數(shù)理統(tǒng)計知識對時間序列進行回歸擬合,由于模型大多為線性,因此用于預測的特征量一般使用電價數(shù)據(jù)本身,如文獻[1]利用小波分析法聚焦電價信號中的無序特征,降低因為非線性因素帶來的誤差。隨著計算機性能的提升,機器學習的方法得到了大量應用,也開始嘗試進行多特征輸入,如文獻[2-5]嘗試使用基于神經網絡的結構方法進行預測,但也僅局限于關鍵時間點的價格作為特征輸入。隨著模型的復雜度提升,文獻[6-7]使用混合預測模型,開始加入與電價相關性較高的特征為輸入。可以發(fā)現(xiàn),當模型復雜度提升時,需要選擇更多合適的特征量提取有效信息才能提升復雜模型的效果,而目前電價預測工作側重于模型結構和預測算法的研究,對輸入特征的研究較少。
本文基于實時電價的形成機理,提出一種按實時電價各分量度量值提取特征的方法,并利用該特征群,選擇適合電價預測特點的Seq2Seq(sequence-tosequence)-Attention網絡進行驗證,數(shù)據(jù)取自美國PJM(Pennsylvania-New Jersey-Maryland)市場的公開數(shù)據(jù),通過對僅采用電價和負荷特征進行預測的方式進行對比,準確性有較大提升,驗證了該方法的可行性。
實時電價理論由F.C.Schweppe 教授提出[8],按實時電價的物理和經濟意義,主要將其分為3個部分:邊際燃料和維護分量、發(fā)電生產邊際價值分量、網絡運行邊際價值分量。
λ(t)表達式為
式中:γF(t)為發(fā)電邊際燃料成本;γM(t)為發(fā)電邊際維護成本;
d(t)為時刻t(h)的系統(tǒng)總需求;
g(t)為t(h)全系統(tǒng)等值發(fā)電機的發(fā)電量;
GFM[g(t)]為全系統(tǒng)等值發(fā)電機的燃料和維護成本。
由式(1)可知,實時市場價格受系統(tǒng)邊際發(fā)電量和用電量的影響,忽略網損時,發(fā)電量與用電量是相等的。當系統(tǒng)總發(fā)電量波動時,邊際機組的成本差異將導致該分量的波動;當系統(tǒng)總發(fā)電量趨于穩(wěn)定時,因調用發(fā)電機組的機組類型差異帶來的燃料和維護成本差異也將導致該分量的波動。因此該分量所代表的度量應該是評判系統(tǒng)總發(fā)電量,以及機組類型的參數(shù)。
γ(t)分量與λ(t)分量的差異僅在于發(fā)電供電質量分量γQS(t),發(fā)電供電質量的定義是為使用戶減少用電量,直至發(fā)電量降低到基于發(fā)電可用容量和運行備用要求的臨界發(fā)電容量所產生成本的值。其與用戶需削減的負荷量有關。在實際計算γQS(t)的值時,缺供電能價值法在反映每小時發(fā)電供電質量的形成原因上是依托于物理參數(shù)且概念最為清晰的,宜選擇該計算方法。其表達式為
式中GQS[g(t)]為t(h)的發(fā)電供電質量成本。
由式(2)可見發(fā)電生產邊際價值分量與發(fā)電量有密切聯(lián)系,但由其定義可知,真正對其產生影響的因素是臨界發(fā)電容量(電量),該分量的度量主要應反映發(fā)電量的邊際信息價值,電力系統(tǒng)中的需求響應與調頻與該分量密切相關。
網絡運行邊際價值分量包括網絡損耗和網絡供電質量兩部分。
1.3.1 網絡損耗分量ηL,k(t)
網絡損耗分量ηL,k(t) 與網絡的潮流相關,用戶用的電量與其所處位置的不同,將影響該分量的值。該分量的度量應能反映出網絡在運行中的損耗情況。其表達式為
式中:ηL,k(t)為第k個用戶的在t時刻的網絡損耗;
Zi(t)為流經線路i的電能數(shù)量;
Ri為取決于線路電阻的常數(shù)。
由于網絡結構在短期內可以認為是基本不變的,由式(3)可知,該分量主要與系統(tǒng)用電量、各線路損耗相關,其度量是線路分布結構引起的損耗成本。由于網絡參數(shù)和潮流信息的數(shù)據(jù)量大、維度多且不易獲取,其對實時電價的影響也相對較小,如全部考慮將影響模型計算性能、增加模型復雜度,可考慮用系統(tǒng)高壓線路損耗近似代替。
1.3.2 網絡供電質量分量ηQS,k(t)
網絡供電質量分量ηQS,k(t)是當輸送電量即將達到網絡的容量極限時,將大幅增加的一個量,用于限制用戶對網絡的過度使用,該分量應對網絡容量的使用情況進行度量,并應對網絡容量接近極限時有一定的敏感性。采用網絡投資年化成本法計算時,其表達式為
式中:AQS,η為根據(jù)最優(yōu)網絡擴容計劃每年新增1 kW網絡容量所需年度投資;
dcrit,η為受網絡容量限制的臨界需求電量。
對式(4)分析可知,用電需求超臨界用電量的值和概率將決定ηQS(t)值,考慮到年化投資對每小時的分攤在以小時為顆粒度的實時電價中難以體現(xiàn)其波動特征,而用電量超限在區(qū)域內的物理影響為產生輸電阻塞,因此可以考慮輸電阻塞費用進行替代,由于阻塞費用并不是博弈的結果,而是根據(jù)節(jié)點電價計算規(guī)則和網絡阻塞情況計算得出的值,可以在一定情況上反映網絡容量使用情況。
實時電價的相關分量及其對應的特征參數(shù)匯總于表1。
表1 輸入特征參數(shù)Table1 Input characteristic parameter
Seq2Seq 用于處理序列到序列的問題,是一種Encoder-Decoder結構的網絡[9],使用LSTM(long short-term memory)作為其基本單元[10],其首先在機器翻譯領域取得了巨大成功,近年也在電力領域有諸多應用,如電力負荷預測[11]和非侵入式負荷分解[12]。
Seq2Seq結構的特點是可以解決輸入序列與輸出序列長度不一致的問題,是基于循環(huán)神經網絡(recurrent neural network,RNN)的改進,由編碼層(encoder)、語義向量C、解碼層(decoder)組合而成,編碼層與普通RNN網絡并無區(qū)別,而解碼層的輸出關系變?yōu)?/p>
式(5)(6)中:st為解碼層t時刻的隱藏狀態(tài);
yt為解碼層t時刻的輸出值。
由式(5)(6)可知,Seq2Seq網絡的缺點在于其輸入序列的信息全部壓縮在最后的語義向量上,一旦輸入序列過長,有效信息被分配的權重一起降低,導致信息量被壓縮。通過引入Attention 機制,可以解決長序列中信息壓縮的問題[13],與Seq2Seq網絡相結合后的結構如圖1所示。
圖1 Seq2Seq-Attention網絡結構Fig.1 Seq2Seq-Attention network structure
Seq2Seq-Attention 原理是將語義向量推廣至每個時間步上,使每個時間步都擁有自己獨特的語義向量。通過這個語義向量,解碼層各時間步可以選擇自己最關注的編碼層序列內容,由于每個時間步的語義向量都獨立出來,故不存在信息壓縮問題。新語義向量計算方式如下:
式(7)~(9)中:ci為Attention 機制下各時間步的語義向量;
αij為隱藏層的權重系數(shù);
hi為編碼層在相應時刻的隱藏狀態(tài);
eij為輸出序列隱藏層i對輸入序列隱藏層j的相關系數(shù);
i取值為1,2,…,tx;
V、W、U與b為模型待訓練參數(shù);
s為解碼層隱藏狀態(tài)。
本文采用美國PJM 電力市場的公開數(shù)據(jù)作為數(shù)據(jù)集,以世界標準時作為時間標簽選取2016年1月1日5時至2018年12月31日5時的數(shù)據(jù),即美國時間下的2016年至2018年共3 a的數(shù)據(jù)。以時間長度為標準,將數(shù)據(jù)集的80.0%,19.5%,0.5% 3部分,分別劃為訓練集、測試集、驗證集。使用表1內的特征數(shù)據(jù)對24 h 節(jié)點邊際電價(locational marginal prices,LMP)進行預測。
在輸入數(shù)據(jù)方面,由于輸入特征量較多,為便于分析,使用流形學習中的t-SNE 算法找出特征在高維空間的低維流形[14],求出相應的嵌入映射,如圖2所示。
圖2 實時電價特征與其它特征對比Fig.2 Comparison of real-time electricity price features with other features
由圖2的二維平面(圖2a)中可見,其總分布形狀圍繞中心點呈橢圓形廣泛分布,類與類之間的間隙較為明顯,說明其所含有效信息量較大,是較好的神經網絡輸入數(shù)據(jù)。對僅使用負荷和LMP 電價數(shù)據(jù)作為輸入特征(圖2b)進行分析可知,雖然其大致呈正相關的線性關系,但噪點分布具有明顯的異方差性,由于實時電價的形成原因十分復雜,同時涉及經濟規(guī)律與物理規(guī)律,較少的輸入數(shù)據(jù)特征所得分析結果也將不具備可解釋性。
在回歸類問題中,評價回歸模型效果的評價指標一般為均方誤差。而平均絕對百分比誤差可以較為直觀地了解預測值與真實值之間的差距,本文同時使用這兩項指標作為模型的評價指標。計算公式如下:
平均絕對百分比誤差(mean absolute percent error,MAPE)為
均方誤差(mean squared error,MSE)為
式(10)(11)中:T為預測時間區(qū)間;
yt為t時刻的真實值。
利用Seq2Seq-Attention網絡進行電價預測,其求解步驟如下:
1)對輸入特征數(shù)據(jù)進行編碼。將用于預測的輸入特征傳入編碼層。經過LSTM計算后得到編碼層隱藏狀態(tài)。輸入特征的信息被壓縮在隱藏狀態(tài)內。
2)解碼。將編碼層隱藏狀態(tài)與目標電價信息傳入解碼層,經LSTM計算后得到解碼層隱藏狀態(tài)。輸入特征與電價通過解碼層在此形成了聯(lián)系。
3)計算語義矩陣。由于每個時刻的隱藏狀態(tài)不同,Attention模塊將編碼層隱藏狀態(tài)與解碼層隱藏狀態(tài)按式(9)求得其相關系數(shù),并據(jù)此求出每一時刻的語義向量ci,得到語義矩陣C。建立特征與目標電價之間的聯(lián)系權重。
4)求解預測電價。通過最終的激活函數(shù),將語義矩陣C與解碼層隱藏狀態(tài)聯(lián)系起來,求解所需的預測電價。
5)反向傳播與迭代。利用損失函數(shù)計算預測電價與目標電價的誤差,并通過一定的學習率反向傳播不斷迭代,直至達到終止條件。
在此過程中,輸入特征被不斷編碼解碼,信息以隱藏狀態(tài)的方式在網絡中流動,依靠網絡結構與其相應的神經元節(jié)點參數(shù)被記憶保存,最終由激活函數(shù)輸出預測結果。
本文預測模型首先在訓練集上進行迭代,訓練完畢后使用測試集進行預測效果測試,當通過調參取得理想測試效果后再使用驗證集進行模型驗證,取驗證集的驗證結果作為模型預測效果。其中,編碼層和解碼層都使用兩層LSTM結構,隱藏節(jié)點數(shù)分別為256和128,通過注意力機制進行連接,損失函數(shù)采用Log-Cosh 損失函數(shù)。輸入序列的長度為7 d,目標序列長度為1 d,即用168個時間點的數(shù)據(jù)對接下來24個時間點的數(shù)據(jù)進行預測。為保證模型的計算效率與適應性,模型內還引入了正則化、學習率衰減、Mini-batch 等方法。考慮到需對基于實時電價特征輸入與僅使用歷史負荷和節(jié)點邊際電價作為特征輸入進行對照實驗,兩者使用同樣的網絡結構。且為避免在一次預測中可能產生的誤差影響對比情況,本文在驗證集中取最后一周的數(shù)據(jù)做為在該周期上的平均表現(xiàn)對照。預測結果如圖3所示。
由圖3可以看出,僅使用負荷和電價特征作為輸入時,模型雖對電價的變化趨勢捕捉較好,但擬合度較差,不能準確捕捉到電價變化的細節(jié),且預測結果較真實值整體偏高,原因可能是電價數(shù)據(jù)集整體均值為30.891美元/(MW·h),驗證數(shù)據(jù)整體在均值以下所導致。在采用基于實時電價特征的輸入時,模型對電價變化趨勢的捕捉較為準確,較僅使用負荷和電價特征作為輸入時提高了約5%,說明使用大量實時電價形成機理的特征進行輸入時,一些在負荷和電價數(shù)據(jù)本身無法反映的變化規(guī)律被挖掘出來,但其在電價突變的時間點的預測效果仍不太理想。例如12月26日12:00PM 附近電價突升的時間點兩者都沒有很好地預測到,說明模型對異常信息檢測的能力有限,抑或是本文選擇的輸入特征與最終形成電價之間仍存在時滯,當電價可能發(fā)生突變時,本文所選的特征信息并不能被及時地反映出來,導致模型未能預測到這一現(xiàn)象。
圖3 電價預測曲線Fig.3 Curves of price forecasting
不同評價特征預測結果如表2所示。
表2 不同輸入特征預測結果Table2 Prediction results of different input characteristics
從表2可以看出,在使用實時電價特征輸入時,每一天的預測誤差均小于僅使用負荷與電價特征輸入所得誤差。兩者雖然在電價突變情況的2018年12月26日數(shù)據(jù)集上表現(xiàn)較為接近,但在其它時段采用實時電價特征作為輸入數(shù)據(jù)時誤差明顯降低,驗證了該方法的可行性。
本文基于實時電價理論,對實時電價形成原因進行深入分析,將形成電價的各分量分別選取一定的特征參數(shù)作為輸入數(shù)據(jù),并根據(jù)電價預測的特點,建立了Seq2Seq-Attention網絡進行預測,通過與僅使用歷史負荷和電價數(shù)據(jù)進行預測的結果進行對比,證明了在使用Seq2Seq-Attention網絡模型時,基于實時電價特征的多特征參數(shù)輸入能更好地預測電價的變化趨勢,有更高的準確性。
未來將考慮對實時電價的特征進行深入分析,尋找對電價變化,特別是電價突變時,具有較好跟蹤效果的特征,以提升對電價突變時的預測效果。