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