江漢大學人工智能學院 陳 巖 周 晨 侯 群
風電功率的預測對風力發電系統具有重要意義,然而,風力發電的輸出功率具有較大的波動性和間歇性,這對制定發電計劃、調度運行帶來了巨大的挑戰。本文介紹了一種基于SVM算法對風電功率進行預測的方法,將風電功率的歷史數據作為因變量,將其對應的影響風電功率的主要因素數據作為自變量,使用SVM回歸方法建立預測模型,找出最佳的模型參數,將需要預測的數據自變量輸入到模型中,有效并準確地預測出風電功率數據,預測準確度可達到94%以上。
隨著地球環境的污染和不可再生資源的過度消耗,人們把更多的目光投在了可再生資源身上。風資源作為一種清潔能源,取之不盡,用之不竭,和目前常見的火力發電相比,沒有污染排放,也沒有煤炭資源消耗。中國作為風資源儲量巨大的國家,裝機量逐年提高,從保護環境和節約資源的角度來看,風力發電具有良好的未來發展前景。
風電功率是風力發電系統中最為重要的指標之一,然而,風電功率會受到風速、風向角等因素的影響,因此對風電功率預測的準確性成為了關鍵。
國外風電功率預測研究工作起步較早,比較有代表性的方法主要有:丹麥的Riso國家實驗室的Prediktor預測系統、西班牙的LocalPred預測系統和德國AWPT預測系統等。其主要思想均是利用數值天氣預測提供風機輪轂高度的風速、風向等預測信息,然后利用風電功率預測模塊提供風電功率。
我國風力發電起步雖然較晚,但是在數十年來的發展趨勢不容忽視,過快的發展速度導致了風電行業質量跟不上速度的結果。在近些年,我國的風力發電領域開始由快速導向型發展轉向質量導向型發展。正是因為這種原因,我國風電功率預測在二十一世紀才開始受到行業重視,目前仍處于起步階段。
我國目前正在開展基于人工神經網絡、支持向量機等方法的風電功率預測模型研究,以及基于線性化和計算流體力學的物理模型方法,同時正在進行多種統計方法聯合應用研究及統計方法與物理方法混合預測模型的研究。
本文采用機器學習中的支持向量機(SVM)算法,探討其在風力發電機功率預測中的應用研究,將有功功率的歷史數據及其對應的變量數據進行訓練建模,并使用測試數據集對預測模型進行檢驗。
支持向量機(Support Vector Machine,SVM)是一種按監督學習(supervised learning)方式對數據進行二元分類的廣義線性分類器(generalized linear classifier),其決策邊界是對學習樣本求解的最大邊距超平面(maximum-margin hyperplane)。
SVM使用鉸鏈損失函數(hinge loss)計算經驗風險(empirical risk)并在求解系統中加入了正則化項以優化結構風險(structural risk),是一個具有稀疏性和穩健性的分類器,SVM可以通過核方法進行非線性分類,是常見的核學習方法之一。
SVM在1964年被提出,在二十世紀90年代后得到快速發展并衍生出一系列改進和擴展算法,在人像識別、文本分類等模式識別問題中得到應用。
影響風力發電機功率的變量有很多,如風速,空氣密度,發電機扇葉半徑,風向角等等,如果將這些因素都考慮進去來預測風電功率則需要大量數據,所以僅選取影響較大的幾個變量對風電功率進行預測。
根據風電功率計算公式:

其中,p為風電功率,A為掃風面積,V為風速,Cp為風能轉化率值,D為空氣密度,φ為功率因子。
在風電功率計算公式中,掃風面積與風機葉片半徑和風向角有關,風能轉化率值與風機生產廠家技術的不同而有所高低,所以在單臺風機的風速預測中,最直接的影響因素為風速、風向角和功率因子。
本文選取風力發電機連續12h的有功功率數據,采樣間隔為30s,共計1440條數據,其中前1080條設置為訓練集,后360條設置為測試集。
訓練集和測試集數據均分為自變量和因變量兩部分,因變量為發電機有功功率,自變量為功率因子、瞬時風速、30s平均風速、10min平均風速、風向角和60s平均風向角六個變量,首先對歷史數據進行標準化處理。
在建模訓練的過程中,不同的評價指標往往具有不同的量綱和量綱單位,這樣的情況會對數據分析的結果造成影響,為了消除這種影響,需要進行數據標準化處理,以解決數據指標之間的可比性問題。原始數據經過數據標準化處理后,各指標處于同一數量級,適合進行綜合對比評價。在這里,本文選用數據歸一化來對數據進行處理。利用公式:

其中,y為歸一化后的目標值,x為原始數據,xmax為原始數據最大值,xmin為原始數據最小值。
支持向量回歸(Support Vector Regression)是支持向量機的重要分支,目的是找到一個平面,使一個集合的所有數據到該平面的距離最近,以達到預測的目的。

式中,ε為常數,C為懲罰因子,ζi和為松弛因子。
對上述公式引入拉格朗日乘子ai和,轉化為對偶問題,則優化函數為:


構造支持向量回歸模型需要借助算法計算對偶參數,本文選取徑向基核函數(RBF),這里需要確定SVM算法的懲罰因子C和RBF核函數參數γ。
懲罰因子C代表模型重視離群點的程度,C越大表示越不能容忍出現誤差,容易出現過擬合的情況,而C越小則容易出現欠擬合的情況。C值的過大或過小都表示其泛化能力變差。
伽馬值γ是選擇RBF函數作為核函數后,自帶的一個參數,隱含地決定了數據映射到新的特征空間后的分布,伽馬值越大,支持向量越少,伽馬值越小,支持向量越多,其影響著訓練與預測的速度。
在訓練樣本數據的過程中,時常會遇到數據缺失的情況,也就是缺失了特征數據,導致向量數據不完整。SVM算法沒有處理缺失值的策略,并且希望樣本在特征空間中線性可分,所以特征空間的好壞會對SVM的性能有較大影響,會直接導致訓練結果乃至預測精度。針對這種情況,有兩種解決方法,一是選取正常工況下連續的、質量較高的數據,二是對不完整的數據集進行數據預處理,通過數據清理來填寫缺失值、識別并刪除離群點的方式使數據集達到較高的質量。結合實際情況,本文選擇第一種方法選取了正常工況下的連續風電數據。
通過對樣本數據的訓練,調整最適合模型的C值和伽馬值,即可得到風電功率預測模型。在這里使用一款SVM模式識別與回歸的工具包LIBSVM,使用回歸模型函數svmtrain,函數參數為訓練集數據,得到最優的懲罰因子C為4,伽馬值γ為0.3536。整個預測模型的流程圖如圖1所示。

圖1 預測模型流程圖

圖2 訓練集數據及其預測值曲線

圖3 測試集數據及其預測曲線

圖4 BP神經網絡預測曲線
原始數據為國內某風力發電機2018年7月14日21:00——2018年7月15日9:00的30s采樣間隔數據,在對預測結果進行評價時,使用RBF核函數自帶的svmpredict方法,加入誤差參數。如圖2所示,在訓練結束后得到訓練集預測的擬合程度為0.94861,其中,參數C為4,γ為0.3536。
將測試集數據輸入到已經確定參數的模型中去,從圖3所示可以看出,采用SVM算法對連續時間的風電功率進行預測,其預測曲線與實際的曲線基本一致,擬合程度達到0.94725,擬合程度較高,證明使用SVM在風電功率預測場景中的可行性。
使用BP神經網絡的方法對訓練集數據進行訓練,得到該數據集的BP神經網絡,并使用該神經網絡對測試集數據進行預測,可以得到如圖4所示的預測曲線,擬合程度為0.94506,略低于基于SVM訓練的預測模型。
結論:風電功率預測是風力發電系統中重要的一環,受外界因素影響,風電功率具有不穩定性,需要將主要因素考慮進來并對結果進行預測。本文首先對樣本數據進行數據預處理,將歸一化后的數據分為訓練集和測試集,選取RBF核函數對訓練集進行訓練,得到模型參數,再將測試集數據輸入到預測模型中,得到最終預測結果。該模型的預測結果與實際數據相比,擬合度可以達到94.7%。同時,使用BP神經網絡的方法對風電功率進行預測,可以得到略低于SVM方法的擬合精度,再次印證了SVM算法在風電功率預測領域的可行性。此外,對于SVM的一些其他改進算法對風電功率預測精度的效果,可以期待后續的探討。