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