趙智輝,張君勝,何培東,楊凱麟,王晨丞
(國網(wǎng)四川省電力公司,四川 成都 610000)
風(fēng)能源是一種潔凈的可再生能源。隨著風(fēng)力發(fā)電技術(shù)的日趨成熟,風(fēng)力發(fā)電系統(tǒng)在電力建設(shè)中的建設(shè)規(guī)模不斷擴大。然而,風(fēng)電的間歇性和隨機波動性使得大容量風(fēng)電機組的穩(wěn)定性受到了嚴峻地挑戰(zhàn)。因此,需要研究高精度風(fēng)電功率預(yù)測方法來維護電網(wǎng)安全和穩(wěn)定。
現(xiàn)有的風(fēng)電功率預(yù)測算法主要分為以下兩大類:一類是基于風(fēng)速時間序列進行功率預(yù)測的方法。這類方法通過分析風(fēng)速的時間序列,通過預(yù)測風(fēng)速來獲得風(fēng)電場功率。典型的算法有持續(xù)預(yù)測法[1]自回歸移動平均方法[2-5]、自回歸差分移動平均法[6]、混沌時間序列法[7]以及廣義自回歸條件異方差方法[8-10]等。其中,持續(xù)預(yù)測法是一種傳統(tǒng)的風(fēng)電功率預(yù)測算法是直接利用風(fēng)速與風(fēng)電功率之間的聯(lián)系,通過數(shù)據(jù)擬合來獲得風(fēng)電輸出功率的預(yù)測。這種算法只考慮了風(fēng)速對風(fēng)電功率的影響,其算法復(fù)雜度較低。
另一類是基于統(tǒng)計模型的方法,包括人工神經(jīng)網(wǎng)絡(luò)法[11,15]、模糊邏輯法等[16]。人工神經(jīng)網(wǎng)絡(luò)法是根據(jù)風(fēng)電場風(fēng)速歷史數(shù)據(jù),基于人工神經(jīng)網(wǎng)絡(luò)進行風(fēng)電功率的預(yù)測。這類方法的優(yōu)點在于不需要人工建立風(fēng)電功率預(yù)測模型,而是通過神經(jīng)網(wǎng)絡(luò)來擬合出最優(yōu)的預(yù)測模型。
近年來,隨著機器學(xué)習(xí)領(lǐng)域的不斷發(fā)展,深度學(xué)習(xí)在大數(shù)據(jù)處理方面具備了獨一無二的優(yōu)勢。深度學(xué)習(xí)算法能夠處理采集得到的原始數(shù)據(jù),其可以在不同層自學(xué)習(xí)特征,而不像傳統(tǒng)機器學(xué)習(xí)算法需要豐富的專業(yè)領(lǐng)域知識來處理數(shù)據(jù)[17]。由于深度學(xué)習(xí)算法的自學(xué)習(xí)性,隨著獲得的數(shù)據(jù)量的增加,該算法能夠自行調(diào)參,從而提高算法精度。
風(fēng)功率預(yù)測不僅受到風(fēng)速因素的影響,還同時受到風(fēng)向、空氣密度等因素的影響,為了更好的預(yù)測風(fēng)電功率,需要將上述因素均考慮進來。然而這些因素有的屬于離散特征,有的屬于連續(xù)特征,人工發(fā)掘和建立這些因素與風(fēng)電功率的數(shù)學(xué)模型是十分困難,并且精度不夠。因此,本文提出一種利用寬度-深度神經(jīng)網(wǎng)絡(luò)來進行風(fēng)電功率預(yù)測的方法。
寬度-深度神經(jīng)網(wǎng)絡(luò)(Wide and Deep Neural Network,WDNN)是由谷歌H.T Cheng等人[18]提出的網(wǎng)絡(luò)模型,該模型同時結(jié)合了寬帶神經(jīng)網(wǎng)絡(luò)和深度神經(jīng)網(wǎng)絡(luò)的優(yōu)勢,能夠同時利用人工選擇的特征以及網(wǎng)絡(luò)學(xué)習(xí)到的深度特征。本文利用風(fēng)電場大量歷史數(shù)據(jù),通過將風(fēng)電場不同電機位置的風(fēng)速、風(fēng)向、空氣密度等因素輸入到WDNN中,利用機器學(xué)習(xí)算法來獲得更高的風(fēng)電功率預(yù)測精度。
寬度-深度神經(jīng)網(wǎng)絡(luò)主要由兩個部件構(gòu)成(圖1):即寬度部件以及深度部件。寬度部件是根據(jù)寬度神經(jīng)網(wǎng)絡(luò)生成的,它本質(zhì)上是一個線性模型,其可以用下式表示:
y=wTx+b
(1)
式中,y為預(yù)測值,x=[x1, x2,…., xd] 代表了選擇的特征向量,w=[w1, w2,…,wd]代表了模型參數(shù),b代表了線性偏差。
圖1 寬度-深度神經(jīng)網(wǎng)絡(luò)組成
在使用寬帶神經(jīng)網(wǎng)絡(luò)時,可以同時選擇數(shù)據(jù)的原始特征及變換特征作為輸入。變換特征是指將原始特征進行交叉積得到的新特征向量,特征變換的過程如下:
(2)
式中,cki為1當(dāng)且僅當(dāng)?shù)趇列特征屬于選擇的變換特征zk。通過利用交叉積進行特征變換,在保持輸入特征向量稀疏性的同時,使得線性的寬度網(wǎng)絡(luò)獲得了一定的非線性,從而使的預(yù)測精度能夠提高。但僅利用寬度神經(jīng)網(wǎng)絡(luò)的限制是只能利用現(xiàn)有的數(shù)據(jù)特征進行組合,而不能自行產(chǎn)生一些特征。為了解決這一缺陷,我們采用深度神經(jīng)網(wǎng)絡(luò)來從數(shù)據(jù)中學(xué)習(xí)一些深度特征。
在寬度-深度神經(jīng)網(wǎng)絡(luò)中,深度部件是指一個前向反饋的神經(jīng)網(wǎng)絡(luò),其由三部分構(gòu)成,即輸入層、隱含層以及輸出層。對于輸入的類別特征,輸入的原始特征通常是一些詞匯,如果直接將這些詞匯表示為一些獨立的離散符號,將會導(dǎo)致產(chǎn)生大量的稀疏數(shù)據(jù),有可能致使模型訓(xùn)練不收斂。為了解決這個問題,需要把輸入的詞匯特征進行word embedding,從而將稀疏特征映射到一個新的低維度稠密空間上,得到一個詞向量。Word embedding通常選擇的低維度空間的維度范圍為O(10) 到O(100)。在進行完word embedding 之后,深度部件將會把獲得的詞向量特征傳給隱含單元進行前向傳播,在每一個隱含單元中將會按照下式進行計算輸出:
a(l+1)=f(W(l)a(l)+b(l))
(3)
式中,l代表了深度神經(jīng)網(wǎng)絡(luò)的層號,a(l),b(l), andW(l)分別代表了第l層網(wǎng)絡(luò)的輸出,偏差以及模型權(quán)值。f為網(wǎng)絡(luò)中采用的激活函數(shù),通常選擇ReLU作為激活函數(shù),其函數(shù)表達式如下所示
F(x)=max(0,x)
(4)
在構(gòu)建完寬度部件和深度部件之后,就可以構(gòu)成寬度-深度神經(jīng)網(wǎng)絡(luò)。在訓(xùn)練時,將會同時對兩個部件權(quán)值進行參數(shù)優(yōu)化,對于分類問題,寬度-深度神經(jīng)網(wǎng)絡(luò)的預(yù)測值可以表示為:
(5)
風(fēng)電場功率預(yù)測受到諸多因素的影響,傳統(tǒng)方法僅考慮了風(fēng)速對風(fēng)電場功率的影響,這使得風(fēng)電場功率預(yù)測的精度不會很高。本文提出的基于WDNN的風(fēng)電功率預(yù)測方法將考慮影響風(fēng)電功率的諸多因素,將不同因素作為WDNN的輸入特征。
寬度-深度神經(jīng)網(wǎng)絡(luò)的輸入特征主要分為兩種特征:一種是離散特征,另一種是連續(xù)特征。根據(jù)文獻[19],在進行風(fēng)電功率預(yù)測時,本文選擇以下連續(xù)特征:
(1)風(fēng)速
風(fēng)速與風(fēng)電場功率與直接的聯(lián)系,風(fēng)速越快,風(fēng)電功率越強。不同于傳統(tǒng)方法人工去建立風(fēng)速-功率的數(shù)學(xué)模型,本文將測得的風(fēng)速直接作為連續(xù)特征輸入到網(wǎng)絡(luò)中,通過網(wǎng)絡(luò)學(xué)習(xí)模型。值得注意的是,對于分布在不同地點的風(fēng)機來說,每一個地點的風(fēng)速都會選擇為獨立的特征。
(2)空氣密度
空氣密度是影響風(fēng)電功率的重要因素。發(fā)電機空氣密度會影響風(fēng)電機的轉(zhuǎn)矩,當(dāng)空氣密度發(fā)生變化時,風(fēng)電機的轉(zhuǎn)矩將會發(fā)生改變,進而改變風(fēng)電機輸出功率。目前,風(fēng)電機在設(shè)計時是按照當(dāng)?shù)仄骄諝饷芏仍O(shè)計的。而同一地區(qū)空氣密度隨著時間的推移將會不斷變化,從而導(dǎo)致風(fēng)電機偏離設(shè)計的最佳轉(zhuǎn)矩,造成風(fēng)電功率下降。因此,本文將空氣密度作為連續(xù)特征輸入到網(wǎng)絡(luò)。
在利用上述連續(xù)特征的同時,本文還選擇了以下離散特征:
(3)風(fēng)向
風(fēng)電機在發(fā)電時將會根據(jù)風(fēng)速計和風(fēng)向標(biāo),來調(diào)整發(fā)電機組對準(zhǔn)來風(fēng)方向。然而,風(fēng)電機組調(diào)整風(fēng)向具有時滯,并且風(fēng)電機存在定向誤差,這些因素使得風(fēng)電機不能完全對準(zhǔn)風(fēng)來向,這使得傳統(tǒng)僅利用風(fēng)速估計風(fēng)電功率的方法精度下降。為了解決上述問題,本文將風(fēng)向作為離散特征輸入到WDNN中。
(4)月份
月份的變化也會影響發(fā)電機功率的預(yù)測。隨著月份的改變,氣壓、空氣的濕度、溫度都會發(fā)生改變,造成風(fēng)電機功率輸出的變化。因此本文將月份作為離散特征輸入到WDNN中。
本文用于風(fēng)電功率預(yù)測的WDNN的網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。第一層輸入層,其輸入是上節(jié)中選擇的離散特征和連續(xù)特征。對于深度部件,第二層是Word Embedding層,該層通過word embedding 將離散特征轉(zhuǎn)化為向量,進而輸入到深度網(wǎng)絡(luò)中。連接在Word Embedding層之后是三層隱含層,在隱含層中數(shù)據(jù)的操作按照式(3)進行。為了避免過擬合,再訓(xùn)練時采用了Dropout方法[20]。對于寬度部件,第二層是特征變換層。該層通過交叉積進行特征組合,并將組合特征輸入到寬度網(wǎng)絡(luò)中。在最后一層,WDNN將寬度部件和深度部件的輸入進行組合,根據(jù)式(5)得到最終的風(fēng)功率預(yù)測。
圖2 本文采用的WDNN網(wǎng)絡(luò)結(jié)構(gòu)
由網(wǎng)絡(luò)的結(jié)構(gòu)可以看出,寬帶-深度神經(jīng)網(wǎng)絡(luò)對寬帶部件和深度部件是同時進行訓(xùn)練的。相比于傳統(tǒng)的集成學(xué)習(xí)算法需要分別采用不同的模型進行訓(xùn)練,采用WDNN可以大大減少算法的復(fù)雜度,并且減少訓(xùn)練的時間。
為了驗證提出的風(fēng)電功率預(yù)測算法的精度,本文采用愛爾蘭某風(fēng)電場的2012年至2016年共60個月的實測數(shù)據(jù)進行風(fēng)電功率預(yù)測,不同月份的平均風(fēng)電輸出功率如圖3所示。該數(shù)據(jù)總共包含32000條數(shù)據(jù),每條數(shù)據(jù)包含數(shù)據(jù)采集的月份、空氣密度、風(fēng)向以及風(fēng)電機組17個位置處的風(fēng)速信息。本文采用的訓(xùn)練集、驗證集及測試集所包含數(shù)據(jù)個數(shù)的比例為12∶3∶1。
圖3 愛爾蘭某風(fēng)電場月平均風(fēng)電輸出功率
訓(xùn)練前,首先需要對數(shù)據(jù)進行預(yù)處理,以補全數(shù)據(jù)中遺漏的信息。本文主要采用線性插值的方法進行數(shù)據(jù)的擬合。對于數(shù)據(jù)缺失部分較大的情況,可以聯(lián)合利用周圍氣象站測得的風(fēng)速及海拔高度來進行風(fēng)電機附近的風(fēng)速計算。
在訓(xùn)練時,本文選擇17個位置的風(fēng)速以及空氣密度作為連續(xù)特征,而將月份及風(fēng)向作為離散特征輸入到網(wǎng)絡(luò)中。為了簡化問題,我們以15度為間隔,將360度的風(fēng)向(正北)分為24個區(qū)間,分別標(biāo)記為1-24。隱含層中的節(jié)點個數(shù)分別為100,75,50。最后一層節(jié)點個數(shù)設(shè)置為25。訓(xùn)練時的學(xué)習(xí)率設(shè)置為0.1,我們共進行了135000次的循環(huán)迭代,WDNN的網(wǎng)絡(luò)損失如圖4所示,由圖可以看到在50000次訓(xùn)練后網(wǎng)絡(luò)就開始收斂。
圖4 網(wǎng)絡(luò)損失的變化
在得到訓(xùn)練好的預(yù)測模型后,我們利用2000條測試數(shù)據(jù)進行了風(fēng)電功率的預(yù)測,預(yù)測值與實測值的比較如圖5所示:
圖5 風(fēng)電功率預(yù)測值與實際值的比較
從圖中可以清晰的看到,本文提出算法的風(fēng)電功率預(yù)測曲線與實測風(fēng)電功率曲線能夠較好的擬合。
在實驗中,本文還將傳統(tǒng)的自回歸移動平均方法(ARMA)、模型基于淺層BP神經(jīng)網(wǎng)絡(luò)、基于RBF神經(jīng)網(wǎng)絡(luò)的風(fēng)電功率預(yù)測算法與本文提出的算法進行了比較。進行比較實驗時,采用的BP神經(jīng)網(wǎng)絡(luò)以及RBF神經(jīng)網(wǎng)絡(luò)均是包含一層隱含單元的3層神經(jīng)網(wǎng)絡(luò),比較結(jié)果如表1所示:
表1 不同網(wǎng)絡(luò)預(yù)測誤差對比
可以看出,由于WDNN同時利用了離散特征以及通過機器學(xué)習(xí)得到的深度特征,其預(yù)測精度相對于傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)算法有了較大的提高。進一步,我們統(tǒng)計本文風(fēng)電功率預(yù)測算法的誤差分布,統(tǒng)計結(jié)果如表2所示,可以看到本文算法的誤差明顯較小,并且預(yù)測的穩(wěn)定性也要優(yōu)于其他基于神經(jīng)網(wǎng)絡(luò)的風(fēng)電功率預(yù)測算法。
表2 不同網(wǎng)絡(luò)預(yù)測精度對比
本文提出一種基于寬度-深度神經(jīng)網(wǎng)絡(luò)的風(fēng)電功率預(yù)測算法,通過將大規(guī)模的風(fēng)電功率歷史數(shù)據(jù)輸入到網(wǎng)絡(luò)中,利用網(wǎng)絡(luò)來自學(xué)習(xí)風(fēng)電功率預(yù)測模型,獲得了較高的風(fēng)電功率預(yù)測精度。該模型的優(yōu)點在于同時結(jié)合了寬帶神經(jīng)網(wǎng)絡(luò)和深度神經(jīng)網(wǎng)絡(luò),使得神經(jīng)網(wǎng)絡(luò)能夠聯(lián)合利用離散特征數(shù)據(jù)以及連續(xù)特征數(shù)據(jù)來進行風(fēng)電功率預(yù)測,以數(shù)據(jù)驅(qū)動的方式來客觀的學(xué)習(xí)到預(yù)測模型。
在未來的工作中,將在該模型的基礎(chǔ)上選擇更多的特征來進行風(fēng)電功率預(yù)測,同時也將研究神經(jīng)網(wǎng)絡(luò)的自設(shè)計方法,從而使得機器能夠自主學(xué)習(xí)預(yù)測模型。