在風力發(fā)電系統(tǒng)中,隨著風速的變化,要使輸出功率最佳,需對槳距角進行預測,從而得到某特定風速下的最佳槳距角。支持向量機(Support Vector Machines,SVM)是根據(jù)統(tǒng)計學理論中最小化原則提出來的,由有限數(shù)據(jù)得到的判別函數(shù),對獨立的測試樣本能夠得到較小的誤差,包括支持向量分類機(Support Vector Classification,SVC)和回歸機" title="支持向量回歸機">支持向量回歸機(Support Vector Regression,SVR)。此文用的就是SVR算法,其目的是構造一個回歸估計函數(shù),將非線性函數(shù)的回歸估計問題轉化為一個具有線性等式約束和線性不等式約束的二次規(guī)劃問題。可以得到唯一的全局最優(yōu)解。此最優(yōu)解,在預測槳距角中就是最佳槳距角。
1 SVR
1.1 SVR的引入
現(xiàn)有的預測槳距角算法有基于BP算法和基于LV算法的神經(jīng)網(wǎng)絡,BP算法收斂速度慢、精度低,LV算法泛化能力差,因此,能改變現(xiàn)有算法不足的支持向量機算法應運而生。SVM方法最早是針對模式識別問題提出的,隨著對ε不敏感損失函數(shù)的引入,現(xiàn)已推廣應用到非線性回歸估計和曲線擬合中,得到了用于曲線擬合的回歸型支持向量機SVR,表現(xiàn)出很好的學習效果。
1.2 回歸算法原理
標準的SVR算法,分為線性和非線性兩種。SVR的基本思想是:將輸入樣本空間非線性變換到另一個特征空間,在這個特征空間構造回歸估計數(shù),這種非線性變換是通過定義適當?shù)暮撕瘮?shù)K(xi,xj)來實現(xiàn)的。其中K(xi,xj)=φ(xi)·φ(xj),φ(x)為某一非線性函數(shù)。
假設給定了訓練數(shù)據(jù),{(xi,yi),i=1,2,...,n},xi為學習樣本,yi為對應的目標值。定義線性ε不敏感損失函數(shù)為:
即如果目標y值和經(jīng)過學習構造的回歸估計函數(shù)f(x)的值之間的差別小于ε,則損失等于0。
假設非線性情形的回歸估計函數(shù)為:
要尋找w、b對,使在式(1)不變的前提下最小化。
同時考慮到當約束條件不可實現(xiàn)時將松弛變量引入,這樣最優(yōu)化問題為:
利用拉格朗日乘子法來求解這個約束最優(yōu)化問題,因此構造拉格朗日函數(shù)
其中NNSV為標準支持向量數(shù)量。由式(7)和式(8)知,盡管通過非線性函數(shù)將樣本數(shù)據(jù)映射到具有高維甚至無窮維的特征空間,但在計算回歸估計函數(shù)時并不需要顯式計算該非線性函數(shù),而只需計算核函數(shù),從而避免高維特征空間引起維數(shù)災難問題。
2 槳距角預測與Matlab仿真
2.1 樣本的獲取與預處理
要使風速改變時,槳距角隨之改變的值為最佳槳距角,就要選擇合適的學習樣本,用來訓練和檢驗。由于自然界風速處于不斷變化中,較短時間3~4 s內(nèi)的風速上升或下降總是不斷發(fā)生,因此變槳距機構也在不斷動作,在轉子電流控制器的作用下,將槳距角的實際變化情況選做樣本。共選取128組樣本數(shù)據(jù),其中學習樣本80個,用來檢驗的預測樣本48個。選擇的訓練樣本和測試樣本形式如下表1所示。
并將此樣本存為.txt格式,以便于在Matlab仿真時的數(shù)據(jù)輸入。
2.2 SVR函數(shù)的參數(shù)選擇
2.2.1 SVR函數(shù)
該函數(shù)根據(jù)訓練樣本設計出最優(yōu)回歸函數(shù),并找出支持向量。該函數(shù)有6個參數(shù),分別是訓練樣本的輸入、訓練樣本的輸出、核函數(shù)、懲罰因子、損失函數(shù)和不敏感系數(shù)。輸出參數(shù)為支持向量個數(shù)、拉格朗日乘子及偏置量。即
[nsv,beta,bias]=svr(X,Y,ker,C,loss,ε);
X——訓練樣本的輸入,在本文中就是樣本中用于學習和檢驗的風速值。
Y——訓練樣本的輸出。就是樣本中對應的槳距角。
ker——核函數(shù),要使誤差小需選擇適當?shù)暮撕瘮?shù),這里選擇的是rbf核函數(shù)。
C——懲罰因子,C取的過小,訓練誤差變大,系統(tǒng)的泛化能力變差,C取的過大,也會導致系統(tǒng)的泛化能力變差。
loss——損失函數(shù)。
ε——不敏感系數(shù),ε取的小,回歸估計精度高,但支持向量數(shù)增多,ε取的大,回歸估計精度降低,但支持向量數(shù)少。
nsv——支持向量的個數(shù)。
beta——拉格朗日乘子。
Bias——偏置量。
2.2.2 輸出函數(shù)svroutput
該函數(shù)利用svr函數(shù)得到的最優(yōu)回歸函數(shù)來計算測試樣本的輸出,并返回。
2.2.3 svrplot
該函數(shù)用來繪制出最優(yōu)回歸函數(shù)曲線,并標識出支持向量。
2.2.4 svrerror
該函數(shù)用來顯示根據(jù)最優(yōu)回歸函數(shù)計算的測試樣本的擬合誤差。
2.2.5 核函數(shù)的選擇
常用的核函數(shù)有4種:線性核函數(shù)(linear)、多項式核函數(shù)(polynomial)、徑向基核函數(shù)(RBF)和Sigmoid核函數(shù)。在一般情況下,首先考慮的是RBF,主要基于以下原因:1)RBF可以將樣本映射到一個更高維的空間,可以處理類別標簽和特征之間的關系是非線性時的樣本。2)與多項式核函數(shù)相比,RBF需要確定的參數(shù)要少,核函數(shù)參數(shù)的多少直接影響模型的復雜度。3)對某些參數(shù),RBF與sigmoid核函數(shù)具有相似的
性能。
衡量SVR的最小誤差和泛化能力準則,并優(yōu)化該準則,本文選擇了RBF核函數(shù)。
2.3 Matlab仿真
2.3.1回歸擬合
在Matlab編程實現(xiàn)函數(shù)的回歸擬合,并檢驗數(shù)據(jù)。主函數(shù)程序段如下:
2.3.2 函數(shù)回歸擬合并檢驗的仿真結果
應用Matlab支持向量機工具箱編程實現(xiàn)系統(tǒng)的學習訓練過程,由80個學習樣本訓練而得到的函數(shù)擬合結果如下圖1所示。
利用訓練好的神經(jīng)網(wǎng)絡模型可以對槳距角進行預測,只要輸入即時風速,就可確定出相應槳距角大小。之前利用BP算法的均方誤差為0.290 3,LM算法的均方誤差為0.278 1。圖2為由SVR算法對48個樣本值檢驗的結果??芍?,預測值與實際槳距角值基本一致。擬合誤差err=0.175 6。
3 結束語
文中介紹了支持向量機的回歸算法理論,用SVR算法代替之前的BP算法和LV算法,研究了風力發(fā)電系統(tǒng)中隨風速變化槳距角的值,由函數(shù)擬合理論對槳距角進行了預測并檢驗,由于支持向量機采用結構最小化原則代替經(jīng)驗經(jīng)驗最小化原則,采用適當?shù)暮撕瘮?shù),同比其他算法使擬合誤差達到了最小,大大提高了變槳距系統(tǒng)的精度和效率。將該算法應用于DSP芯片上稍作改進,加上外圍電路的設計,即可應用在風電系統(tǒng)的控制領域。