高 鷺,趙連甲,孔繁苗
(內(nèi)蒙古科技大學(xué) 信息工程學(xué)院,內(nèi)蒙古 包頭014000)
近幾年,風(fēng)電預(yù)測技術(shù)取得了長足的發(fā)展,無論是預(yù)測精度還是預(yù)測時(shí)間都得到了很大的提高,能夠精準(zhǔn)地預(yù)測到風(fēng)功率的具體數(shù)值,對于電力部門的調(diào)度和規(guī)劃都能起到很好的指導(dǎo)作用,減少不必要的資源浪費(fèi)[1-3],避免大量的棄風(fēng)現(xiàn)象。其中風(fēng)電預(yù)測根據(jù)時(shí)間尺度來分,常見的是長期預(yù)測,短期預(yù)測和超短期預(yù)測。長期預(yù)測能夠有利于調(diào)度,短期和超短期預(yù)測能夠用來控制。近兩年的論文中對于短期預(yù)測研究的比較多,長期和超短期預(yù)測研究的論文相對來說要少一些。為了增加對超短期風(fēng)功率預(yù)測的研究,文章用內(nèi)蒙古的實(shí)際數(shù)據(jù)作為數(shù)據(jù)集,因?yàn)槿斯ぶ悄芗夹g(shù)的高速發(fā)展和計(jì)算能力的大幅提高,神經(jīng)網(wǎng)絡(luò)方法在預(yù)測精度和預(yù)測時(shí)間上都能夠有很好的表現(xiàn),所以決定采用神經(jīng)網(wǎng)絡(luò)的建模方法進(jìn)行超短期功率預(yù)測。
循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)[4]對于時(shí)間前后相關(guān)性強(qiáng)的數(shù)據(jù)有很強(qiáng)的處理能力,LSTM和GRU都能夠很好地預(yù)測風(fēng)功率數(shù)據(jù),朱喬木[5]等人提出了一種基于LSTM網(wǎng)絡(luò)的超短期發(fā)電功率預(yù)測方法。該方法第一次嘗試使用距離分析法挑選出特征里面對風(fēng)電功率影響程度最大的,從而能夠減少輸入神經(jīng)網(wǎng)絡(luò)的特征數(shù)量,進(jìn)而減少數(shù)據(jù)輸入的數(shù)量。牛哲文[6]等人使用CNN結(jié)合GRU神經(jīng)網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)降維和特征提取操作,因?yàn)轱L(fēng)功率數(shù)據(jù)波動(dòng)性和不確定性太強(qiáng),所以嘗試解決這個(gè)問題。韓朋[7]等人用了注意力模型篩選相關(guān)性系數(shù)最高的兩個(gè)特征作為模型輸入,再利用LSTM進(jìn)行風(fēng)功率預(yù)測。以上幾篇論文都利用深度學(xué)習(xí)模型取得了良好的預(yù)測效果,證明了神經(jīng)網(wǎng)絡(luò)方法的有效性。
本文采用的數(shù)據(jù)集是內(nèi)蒙古某風(fēng)場機(jī)組一年的實(shí)際測量風(fēng)電數(shù)據(jù),數(shù)據(jù)特征有風(fēng)向、風(fēng)速、功率、溫度、實(shí)測槳距角、氣壓等,部分?jǐn)?shù)據(jù)情況如表1所示。

表1 部分?jǐn)?shù)據(jù)特征
實(shí)驗(yàn)數(shù)據(jù)集為2014年一年的數(shù)據(jù),從一月一號(hào)開始,每十分鐘一個(gè)數(shù)據(jù)點(diǎn),本實(shí)驗(yàn)用的數(shù)據(jù)是歷史的風(fēng)功率數(shù)據(jù),利用之前的數(shù)據(jù)進(jìn)行學(xué)習(xí)來預(yù)測后面的數(shù)據(jù),數(shù)據(jù)采集有的存在缺失值,采用均值插補(bǔ)法對缺失值進(jìn)行填充。求得數(shù)據(jù)的平均值進(jìn)行填充補(bǔ)全數(shù)據(jù)。
循環(huán)神經(jīng)網(wǎng)絡(luò)RNN開始在手寫識(shí)別、語音識(shí)別等領(lǐng)域取得了很好的實(shí)驗(yàn)成果,后來學(xué)者們將它應(yīng)用在時(shí)間序列的預(yù)測上,發(fā)現(xiàn)在時(shí)間序列數(shù)據(jù)上也表現(xiàn)非俗。再之后成功地應(yīng)用到了風(fēng)功率預(yù)測上,雖然RNN能夠處理時(shí)間序列數(shù)據(jù),但是如果網(wǎng)絡(luò)層數(shù)夠深可能會(huì)發(fā)生梯度消失和梯度爆炸,GRU和LSTM模型能夠避免RNN梯度消失和梯度爆炸[8-9]的問題,并且循環(huán)神經(jīng)網(wǎng)絡(luò)能夠很好地注意到數(shù)據(jù)前后的相關(guān)性,門控循環(huán)單元的設(shè)置能夠記住前面的數(shù)據(jù),并且能夠選擇性遺忘數(shù)據(jù),從而使得預(yù)測更準(zhǔn)確和更快速,適用于超短期風(fēng)功率預(yù)測。GRU模型結(jié)構(gòu)如圖1所示。

圖1 GRU結(jié)構(gòu)圖
本次實(shí)驗(yàn)樣本為內(nèi)蒙古風(fēng)電場一年的數(shù)據(jù),取其中5000條數(shù)據(jù)來做本次實(shí)驗(yàn),以4:1的比例劃分訓(xùn)練測試集。為了去除變量之間量綱的差異所帶來的影響。在補(bǔ)全數(shù)據(jù)的缺失值之后對于數(shù)據(jù)做了歸一化操作,將數(shù)據(jù)歸一到0和1之間,轉(zhuǎn)換函數(shù)為:

其中Xmin和Xmax分別為風(fēng)功率數(shù)據(jù)的最小值和最大值。在本實(shí)驗(yàn)中所用編程語言為Python,使用Keras和TensorFlow完成實(shí)驗(yàn)部分,所用模型參數(shù)設(shè)置為:
BP神經(jīng)網(wǎng)絡(luò):三層的網(wǎng)絡(luò)結(jié)構(gòu),神經(jīng)元數(shù)量分別為80.100.80,激活函數(shù)用的是Sigmoid和Relu,優(yōu)化器是Adam。epochs=200,batch_size=20。
LSTM:兩層,神經(jīng)元都為300,激活函數(shù)用的是Relu,優(yōu)化器是Adam,Dropout取值為0.3。epochs=100,batch_size=32。GRU模型參數(shù)設(shè)置同LSTM。
RNN:兩層,神經(jīng)元都為200,激活函數(shù)用的是Sigmoid,優(yōu)化器是Adam,Dropout取值為0.3。epochs=100,batch_size=64。
橫坐標(biāo)為測試集的1000個(gè)數(shù)據(jù)點(diǎn),橫坐標(biāo)為數(shù)據(jù)歸一化之后的值,四個(gè)模型預(yù)測結(jié)果匯總?cè)鐖D2所示。
由圖2我們可以看出,以上神經(jīng)網(wǎng)絡(luò)對于數(shù)據(jù)的預(yù)測效果都很不錯(cuò),無論是對于波動(dòng)強(qiáng)烈和平穩(wěn)的數(shù)據(jù)都能有很好的預(yù)測效果。為了評價(jià)各個(gè)模型的擬合程度,我們選取了用標(biāo)準(zhǔn)均方根誤差(RMSE)和平均絕對誤差(MAE)來評價(jià)各個(gè)模型對于本實(shí)驗(yàn)數(shù)據(jù)的效果。數(shù)值越小實(shí)驗(yàn)效果越好,具體公式如下所示:

圖2 模型預(yù)測結(jié)果匯總

其中yi是預(yù)測值,另一個(gè)是測試值,n是數(shù)據(jù)的個(gè)數(shù),i表示從1開始。四個(gè)神經(jīng)網(wǎng)絡(luò)在內(nèi)蒙古風(fēng)場預(yù)測的誤差如表2所示。
從表2分析得出:以上算法誤差都在10%以內(nèi),預(yù)測精度都達(dá)到了超短期風(fēng)功率預(yù)測對于精準(zhǔn)度的要求,GRU在本實(shí)驗(yàn)數(shù)據(jù)的表現(xiàn)最優(yōu),但是各個(gè)神經(jīng)網(wǎng)絡(luò)的誤差相差不大。這與實(shí)驗(yàn)匯總圖的圖像總體走向基本一致。

表2 實(shí)驗(yàn)誤差
本文使用了四個(gè)神經(jīng)網(wǎng)絡(luò)來預(yù)測風(fēng)功率的實(shí)際數(shù)值,經(jīng)過前期的大量調(diào)參工作,對于數(shù)據(jù)進(jìn)行預(yù)處理,包括缺失值填充和數(shù)據(jù)歸一化,取得了良好的預(yù)測效果。從結(jié)果來看,本實(shí)驗(yàn)選取的模型預(yù)測精度都在92%以上。基本能與真實(shí)數(shù)據(jù)相擬合,尤其是在數(shù)據(jù)有波動(dòng)的情況下,對于一段時(shí)間內(nèi)數(shù)據(jù)波動(dòng)不大的情況擬合效果有待提高,后續(xù)工作會(huì)對這類數(shù)據(jù)進(jìn)行分析,保證以上幾種模型在各種情況的數(shù)據(jù)中都能取得很好的效果。