高美卿,劉艷萍,連琨
(河北工業大學信息工程學院,天津300401)
在風力發電系統中,隨著風速的變化,要使輸出功率最佳,需對槳距角進行預測,從而得到某特定風速下的最佳槳距角。支持向量機(Support Vector Machines,SVM)是根據統計學理論中最小化原則提出來的,由有限數據得到的判別函數,對獨立的測試樣本能夠得到較小的誤差,包括支持向量分類機(Support Vector Classification,SVC)和支持向量回歸機(Support Vector Regression,SVR)。此文用的就是SVR算法,其目的是構造一個回歸估計函數,將非線性函數的回歸估計問題轉化為一個具有線性等式約束和線性不等式約束的二次規劃問題,可以得到唯一的全局最優解。此最優解,在預測槳距角中就是最佳槳距角[1]。
現有的預測槳距角算法有基于BP算法和基于LV算法的神經網絡,BP算法收斂速度慢、精度低,LV算法泛化能力差,因此,能改變現有算法不足的支持向量機算法應運而生。SVM方法最早是針對模式識別問題提出的,隨著對ε不敏感損失函數的引入,現已推廣應用到非線性回歸估計和曲線擬合中,得到了用于曲線擬合的回歸型支持向量機SVR,表現出很好的學習效果。
標準的SVR算法,分為線性和非線性兩種。SVR的基本思想是:將輸入樣本空間非線性變換到另一個特征空間,在這個特征空間構造回歸估計數,這種非線性變換是通過定義適當的核函數K(xi,xj)來實現的。其中K(xi,xj)=φ(xi)·φ(xj),φ(x)為某一非線性函數[2]。
假設給定了訓練數據,{(xi,yi),i=1,2,...,n},xi為學習樣本,yi為對應的目標值。定義線性ε不敏感損失函數為:

即如果目標y值和經過學習構造的回歸估計函數f(x)的值之間的差別小于ε,則損失等于0。
假設非線性情形的回歸估計函數為:


利用拉格朗日乘子法來求解這個約束最優化問題,因此構造拉格朗日函數
由最優化理論,將Lp分別對w、b、ξi、ξ*i求偏微分并令其為0,得:


將式(5)代入式(4),得到對偶最優化問題

支持向量(SV)就是使得αi-α*i≠0的部分參數。通過學習訓練得到的回歸估計函數為

可得

其中NNSV為標準支持向量數量。由式(7)和式(8)知,盡管通過非線性函數將樣本數據映射到具有高維甚至無窮維的特征空間,但在計算回歸估計函數時并不需要顯式計算該非線性函數,而只需計算核函數,從而避免高維特征空間引起維數災難問題[3]。
要使風速改變時,槳距角隨之改變的值為最佳槳距角,就要選擇合適的學習樣本,用來訓練和檢驗。由于自然界風速處于不斷變化中,較短時間3~4 s內的風速上升或下降總是不斷發生,因此變槳距機構也在不斷動作,在轉子電流控制器的作用下,將槳距角的實際變化情況選做樣本。共選取128組樣本數據,其中學習樣本80個,用來檢驗的預測樣本48個。選擇的訓練樣本和測試樣本形式如下表1所示。
并將此樣本存為.txt格式,以便于在Matlab仿真時的數據輸入。

表1 樣本形式Tab.1 Format of sample
2.2.1 S VR函數
該函數根據訓練樣本設計出最優回歸函數,并找出支持向量。該函數有6個參數,分別是訓練樣本的輸入、訓練樣本的輸出、核函數、懲罰因子、損失函數和不敏感系數。輸出參數為支持向量個數、拉格朗日乘子及偏置量[4]。即
[nsv,beta,bias]=svr(X,Y,ker,C,loss,ε);
X——訓練樣本的輸入,在本文中就是樣本中用于學習和檢驗的風速值。
Y——訓練樣本的輸出,就是樣本中對應的槳距角。
ker——核函數,要使誤差小需選擇適當的核函數,這里選擇的是rbf核函數。
C——懲罰因子,C取的過小,訓練誤差變大,系統的泛化能力變差,C取的過大,也會導致系統的泛化能力變差。
loss——損失函數。
ε——不敏感系數,ε取的小,回歸估計精度高,但支持向量數增多,ε取的大,回歸估計精度降低,但支持向量數少。
nsv——支持向量的個數。
beta——拉格朗日乘子。
Bias——偏置量。
2.2.2 輸 出函數svroutput
該函數利用svr函數得到的最優回歸函數來計算測試樣本的輸出,并返回。
2.2.3 s vrplot
該函數用來繪制出最優回歸函數曲線,并標識出支持向量。
2.2.4 s vrerror
該函數用來顯示根據最優回歸函數計算的測試樣本的擬合誤差。
2.2.5 核 函數的選擇
常用的核函數有4種:線性核函數(linear)、多項式核函數(polynomial)、徑向基核函數(RBF)和Sigmoid核函數。在一般情況下,首先考慮的是RBF,主要基于以下原因:1)RBF可以將樣本映射到一個更高維的空間,可以處理類別標簽和特征之間的關系是非線性時的樣本。2)與多項式核函數相比,RBF需要確定的參數要少,核函數參數的多少直接影響模型的復雜度。3)對某些參數,RBF與sigmoid核函數具有相似的性能。
衡量SVR的最小誤差和泛化能力準則,并優化該準則,本文選擇了RBF核函數[5]。
2.3.1 回 歸擬合
在Matlab編程實現函數的回歸擬合,并檢驗數據。主函數程序段如下:
m=importdata('e:\train.txt');
ker='rbf';
C=10;
e=0.05;
global p1;
p1=5;
loss='einsensitive';
trnX=m(:,2);
trnY=m(:,3);
[nsv,beta,bias]=svr(trnX,trnY,ker,C,loss,e);plot(trnX,trnY);
xlabel('風速V/mps');
ylabel('槳距角A/°');
n=importdata('e:\test.txt');
tstX=n(:,2);
tstY=n(:,3);
TstY=svroutput(trnX,tstX,ker,beta,bias);
err=svrerror(trnX,tstX,tstY,ker,beta,bias,loss,e);
figure
plot(1:length(tstY),tstY,'r+:',1:length(TstY),TstY,'bo:')
title('+為真實值,o為預測值');
xlabel('樣本N');
ylabel('槳距角A/°');
2.3.2 函 數回歸擬合并檢驗的仿真結果
應用Matlab支持向量機工具箱編程實現系統的學習訓練過程,由80個學習樣本訓練而得到的函數擬合結果如下圖1所示。
利用訓練好的神經網絡模型可以對槳距角進行預測,只要輸入即時風速,就可確定出相應槳距角大小。之前利用BP算法的均方誤差為0.290 3,LM算法的均方誤差為0.278 1。圖2為由SVR算法對48個樣本值檢驗的結果??芍A測值與實際槳距角值基本一致[6]。擬合誤差err=0.175 6。

圖2 樣本檢驗結果Fig.2 Test result from samples
文中介紹了支持向量機的回歸算法理論,用SVR算法代替之前的BP算法和LV算法,研究了風力發電系統中隨風速變化槳距角的值,由函數擬合理論對槳距角進行了預測并檢驗,由于支持向量機采用結構最小化原則代替經驗經驗最小化原則,采用適當的核函數,同比其他算法使擬合誤差達到了最小,大大提高了變槳距系統的精度和效率。將該算法應用于DSP芯片上稍作改進,加上外圍電路的設計,即可應用在風電系統的控制領域。
[1]張學工.關于統計學習理論與支持向量機[J].自動化學報,2000,26(1):32-42.
ZHANG Xue-gong.About statistical learning theory and support vector machine(SVM)[J].Journal of Automation,2000,26(1):32-42.
[2]王定成.支持向量機回歸與控制的研究[D].合肥:中國科學技術大學,2003.
[3]杜樹新,吳鐵軍.用于回歸估計的支持向量機方法[J].系統仿真學報,2003,15(11):1580-1585.
DU Shu-xin,WU Tie-jun.For regression estimation of support vector machine(SVM)method[J].Journal of System Simulation,2003,15(11):1580-1585.
[4]Collobert R,Bengio S.A support vector machine approach to decision trees[R].Rensselaer Polytechinic Institute,Troy,NY:R.P.I Math Report,1997:97-100.
[5]Smits G F,Jordaan E M.Improved SVM regression using mixtures of kernels[C]//Proceedings of the 2002 International Joint Conference on Neural Network,Hawaii:IEEE,2002:2785-2790.
[6]李大海,李天石,李宗斌.一種多率采樣的在線支持向量回歸及應用[J].西安交通大學學報,2010(3):15-18.
LI Da-hai,LI Tian-shi,LI Zong-bin.Support vector regression and application of more than one sampling rate online[J].Journal of Xi'an Traffic University,2010(3):15-18.