(哈爾濱工業大學 自動化測試與控制研究所,哈爾濱 150080)
目前,我國已成為世界上第一大能源消費國,在能源消費結構中煤炭占比最大,這使我國面臨著巨大的環境壓力,發展綠色能源顯得尤為重要。我國的風能資源非常豐富,風電建設在我國的能源發展格局中有著舉足輕重的地位。但風速的不穩定性和間歇性使風電功率也具有同樣的性質,這給風電功率注入電網帶來了巨大的挑戰,直接影響我國風電發展的進程。因此,風電功率預測一直都是研究的熱門領域[1]。
風電功率預測方法按照預測結果的形式可以分為確定性預測和概率性預測。確定性預測僅給出預測點的信息,不能描繪風電功率的不穩定性。而概率性預測可以提供預測點的誤差信息,在應用層面,這對電網運行調度、規劃和穩定性分析有重要作用。
風電功率概率性預測主要有兩類方法,一是對現有確定性預測模型的誤差進行擬合獲得其密度函數,二是直接對變量進行概率性預測[2]。文獻[3]中在ARMA(Autoregressive Moving Average Model)和SVM(Support Vector Machine)兩種確定性預測模型的基礎上,實現了基于分位數的概率性預測方法[3]。文獻[4]中使用了小波閾值去噪和遞歸神經網絡作為風速預測的子模型,從子模型中獲得方差,然后計算概率性預測的預測區間,其中方差包括了建模和預測的不確定性[4]。文獻[5]中提出了一種新的多模型組合概率風電預測方法,以利用不同預測模型的優勢,這些模型提供不同類型的概率密度函數以提高概率預測的性能。基于稀疏貝葉斯學習、核密度估計和β分布擬合3個概率預測模型,用于形成組合模型[5]。本文采用第一種概率性預測方法,在LS-SVM(Least Squares Support Vector Machines)確定性預測模型的基礎上,應用核密度估計法對模型的誤差進行密度估計,實現風電功率概率性預測。
支持向量機(SVM)是一個十分出色的機器學習算法,它成功的解決了一系列難題,例如高維和局部極小值問題等[6]。
為了解決支持向量機模型在處理大數據集時優化困難的問題,LS-SVM算法在SVM算法的基礎上稍作改進,在優化時引入了誤差的平方項,并用正則化參數γ來調節對誤差項的懲罰力度,使不等式約束變成了等式約束,降低了LS-SVM模型計算的復雜性。
在LS-SVM中,回歸問題對應的優化式為:
(1)
其中:ei為估計誤差,γ為正則化參數。
約束條件為:
|wTφ(xi)+ξ+ei|<ε
(2)
其中:φ(x)是非線性函數。
其拉格朗日函數如下:
L(w,b,e,α)=
(3)
對拉格朗日函數各參數求偏導數有:

(4)
整理成矩陣形式可得:
(5)


(6)
所得LS-SVM模型預測函數為:
(7)
對樣本數據分析時,一般用密度函數和分布函數來描述樣本數據分布的特點。一些特點類型的樣本數據,有足夠的經驗可以說明其數據分布的特征,若密度函數形式已知,可以利用樣本數據估計出密度函數的具體參數,這種方法稱為參數估計法。但當密度函數形式未知,用參數估計法就無從下手了,這種情況下就可以用非參數估計方法對樣本數據的密度函數進行估計。
非參數估計方法不依賴假定的密度函數形式,可以被用于估計多種類型數據的密度函數,例如非正態數據、重尾數據等[7]。基本的非參數估計方法有直方圖估計法、核密度估計法、近鄰估計法、序列估計法等。下面簡要介紹核密度估計法的基本原理:
假設有一組一維離散隨機樣本,其密度函數f(x)和分布函數F(x)形式未知,則有:
(8)
其中:h是核密度估計的帶寬(窗口)。
一個常用的經驗布函數為:
(9)
其中:I(x)為核函數。
將Fn(x)代入式(8),則密度函數的估計為:
(10)
計算fn(x)的方差和均值,當h→0且nh→∞時有:方差趨于0,而均值趨于f(x),說明fn(x)對f(x)的估計是準確的。

(11)
其中:u為核函數寬度。
由公式(9)可知,核密度函數估計是一個加權和,在進行加權求和時,對處于區間[x-h,x+h]中的樣本點賦予同樣的權重。這樣的處理實際上是不合理的,因為在估計X在x點處的密度f(x)時,離x越近的樣本點提供的關于f(x)的信息越多。因此,在定義f(x)的估計時,就要對距離x較近的點賦予較大的權值,對距離x較遠的點賦予較小的權值,可以選取不同的核函數來決定各點的權值。
風電功率預測按照預測方法的結果可以分為確定性預測和概率性預測。確定性預測的主要不足是預測結果中沒有提供任何關于預測值預測誤差的信息,限制了這類方法在實際中的應用。而概率性預測則可以為每個預測量提供一個預測區間,彌補了確定性預測的不足。
本文在LS-SVM確定性預測模型基礎上,利用核密度估計方法計算確定性預測模型誤差的分布函數,實現了風電功率的概率性預測,概率性預測模型的算法框圖如圖1所示。

圖1 整體算法框架
在LS-SVM預測模型進行時間序列預測之前,需要對輸入時間序列進行相空間重構得到輸入向量。構造的輸入向量不僅關系到模型的復雜度,而且會影響到模型的預測精度。
重構得到的輸入向量并不能直接作為模型的輸入,因為原始數據的范圍變化較大,有些數據可能會使模型內部函數飽和從而影響模型的預測精度,所以輸入向量需要歸一化處理后才能輸入模型。預測得到的預測值經過反歸一化后,才能得到實際的預測值。
在模型構建的過程中需要選擇核函數,常見的核函數有Sigmoid核函數、多項式核函數、徑向基RBF(Radial Basis Function)核函數等[8]。本文選取RBF核函數。另外,超參數的選擇也是構建模型的重點,需要設定的超參數有正則化參數γ和核函數參數σ。γ稱作懲罰因子,決定對誤差平方項的懲罰力度,關系到模型的訓練誤差和泛化能力。在實際應用中σ和γ的偏大或者偏小都會引起模型的過學習或欠學習現象,因此選擇合理的超參數非常重要。
本文采用網格搜索法來確定超參數,利用此方法可以得到全局范圍內的最優解[9]。具體步驟如下:
1) 設定兩個參數的選擇范圍和步長。
2)設定初始化參數,移動網格交點在每一處交點建立模型,計算得模型的平均絕對誤差MAE。
3) 搜索完畢后選取計算指標最優的一組參數作為模型的超參數。
在模型建立完成之后,需要在訓練集上訓練模型,得到支持向量alpha和偏移參數b,構造決策函數,確定風電功率確定性預測模型。
在確定性預測的基礎上,通過對確定性預測模型誤差密度函數的估計,應用概率論理論可以計算任意置信度下的置信區間。
對不同的風電功率區段,風電功率確定性預測模型的誤差分布的范圍有明顯區別。因此,需要將風電功率進行分區,對不同的分區分別計算誤差概率密度曲線和各功率區間的置信區間[10],實現全功率段的概率性預測。
假設風電功率值的最大值為Pmax、最小值為Pmin、區間長度為ΔP,分區數n為:
n=(Pmax-Pmin)/ΔP+1
(12)
初步區間劃分后,有時會出現某些分區樣本點不足的情況,這樣所得到的誤差密度分布不能準確地反映誤差的實際分布情況。這時需要將相鄰的樣本點較少的區間合并,直到合并區間的誤差樣本點達到數量要求。
應用核密度估計法計算各區間的誤差概率密度函數:
(13)
其中:ei為LS-SVM模型預測誤差樣本,N為樣本總數,K(x)為核函數,h為帶寬。
對密度函數積分可得分布函數,設定置信度α,使下式成立:
P(xmin (14) 則[xmin,xmax]為該功率區間的置信區間。依次對每個功率區間進行以上步驟可得全功率段的置信區間。最后,將每個預測點的上下限分別于相鄰的點上下限相連即可得到整個時段的概率性預測結果[11]。 本文的實驗數據來自比利時Elia公司AggregateBelgian風電場,其中記錄了該風電場2018年2月28日至2018年3月29日期間的共2974個數據點,時間間隔為15分鐘。 圖2 風電功率實驗數據 從圖2可以看出,實驗數據存在數據缺失的情況,表現為數據中出現連續的0值,這些值將會對預測算法產生影響;因此,在預測實現之前,必須對這些缺失值進行插值處理。將預處理后的實驗數據中的前2000個作為模型訓練數據,后974個作為測試數據。 使用該預測模型,對測試數據中的974個數據點進行預測,得到974個誤差樣本。將風電功率的范圍等分為4個區間,分別為[0,500]、[500,1000]、[1000,1500]、[1500,2000],對各區段的誤差樣本分別求取概率密度函數,如圖3所示。 圖3 各功率區間誤差樣本概率密度圖 給定置信度為0.9,則所得各分區的置信區間為: 1)功率區間[0,500]的置信區間為[-75,75]; 2)功率區間[500,1000]的置信區間為[-150,150]; 3)功率區間[1000,1500]的置信區間[-125,125]; 4)功率區間[1500,2000]的置信區間為[-100,100]。 圖4 概率性預測結果(置信度為0.9) 給定置信度為0.7,則所得各分區的置信區間為: 1) 功率區間[0,500]的置信區間為[-52.5,52.5]; 2) 功率區間[500,1000]的置信區間為[-105,105]; 3) 功率區間[1000,1500]的置信區間[-87.5,87.5]; 4) 功率區間[1500,2000]的置信區間為[-70,70]。 由圖5可以看出,區間預測中置信度為0.9的結果中兩條包絡線完全將實際功率曲線包在中間,而置信度取0.7時,則有一點越過了下包絡線,這就說明合理的選取置信度十分關鍵。置信度的選擇直接決定預測區間包括真值概率的大小。另外,由于在不同功率區段預測的精度不同,因此可以在不同的功率區段內可以采用不同的置信度,從而提高概率性預測的整體性能[11]。 圖5 概率性預測結果(置信度0.7) 為了驗證LS-SVM模型的預測精度,采用ARMA模型和BP神經網絡模型的預測結果進行對比。 采用AIC(Akaike Information Criterion)準則[12]確定模型階數為p=6,q=10。經檢驗一次差分后,原先不平穩的時間序列變為平穩的時間序列,將差分后的時間序列代入模型得到的預測結果如圖6所示。 圖6 ARMA預測模型的實驗結果 以上實驗結果說明使用ARMA線性建模方法對非線性的風電功率時間序列進行預測的效果不佳。 設定學習次數為5000,學習速率為0.02,訓練的誤差精度為0.01,得到的BP神經網絡預測結果[13]如圖7所示。 用LS-SVM模型、BP神經網絡模型[14]和ARMA模型,基于相同時段的歷史數據,預測相同的時段,得出的性能指標可以充分地說明三者的優劣。三者預測性能對比情況如表1所示。 圖7 BP神經網絡預測模型的實驗結果 表1 三種預測模型性能對比 預測結果表明,對風電功率進行確定性預測時,LS-SVM模型的預測精度優于其他兩種模型。因此,在LS-SVM預測模型的基礎上進行概率性預測會得到更精確的結果。 應用最小二乘支持向量機和核密度估計相結合的方法實現對風電功率的概率性預測。首先利用了最小二乘支持向量機模型實現了對風電功率的單步預測,在單步預測的基礎上利用迭代法實現了多步預測,多步預測的平均絕對誤差為42.6,預測效果較好,具有一定的實用價值。 但本文的研究方法還存在著一定的不足,首先在輸入向量構造方面,本文采用的是經驗法,選取連續的13個點作為輸入向量,這種方法完全基于實驗效果,缺乏量化標準和選取原則,后續可考慮采用其他方法來構造輸入向量,例如:自相關分析方法、功率譜分析方法。 使用了非參數核密度估計法對風電功率進行概率性預測,首先對確定性預測模型預測誤差進行了分布擬合,與傳統的參數統計不同的是非參數統計不需要事先假設誤差的分布,模型完全基于數據,提高了預測結果的可靠性。但核密度估計方法的準確性是以樣本數據量為基礎,其進行估計時需要大量的誤差數據,實驗中各區間的誤差樣本數量太小,無法真實地反映出實際中誤差的分布情況,這樣對區間預測的效果會有一定的影響,文獻[10]中采用Bootstrap方法與核密度估計相結合的方法來解決這一問題,利用Bootstrap法對每個功率區間的誤差樣本值進行多次重抽樣,產生大量新的誤差樣本,然后在新誤差樣本的基礎上進行概率密度的估計,求各個功率區間的置信區間,這種方法為本文后續研究提供參考和借鑒。3 實驗結果與分析
3.1 實驗數據

3.2 基于LS-SVM和核密度的概率性預測驗證



3.3 對比實驗



4 結論