肖 峰, 陳國初
(上海電機(jī)學(xué)院電氣學(xué)院,上海 200240)
?
基于改進(jìn)果蠅算法優(yōu)化的SVM風(fēng)電功率短期預(yù)測
肖峰,陳國初
(上海電機(jī)學(xué)院電氣學(xué)院,上海 200240)
由于風(fēng)力發(fā)電功率預(yù)測的準(zhǔn)確性直接關(guān)系到電網(wǎng)的供需平衡,直接影響著并網(wǎng)系統(tǒng)的運(yùn)營成本,因此風(fēng)電功率預(yù)測的準(zhǔn)確性非常重要。對于預(yù)測精度不高的問題,提出了一種改進(jìn)的果蠅算法優(yōu)化的支持向量機(jī)的預(yù)測方法。由于支持向量機(jī)的懲罰因子和核函數(shù)參數(shù)選擇對預(yù)測精度有很大影響,因而利用改進(jìn)的果蠅算法對支持向量機(jī)參數(shù)進(jìn)行優(yōu)化,用優(yōu)化好的參數(shù)進(jìn)行建模訓(xùn)練,然后把建好的模型應(yīng)用于功率預(yù)測,最后對數(shù)據(jù)進(jìn)行評估。預(yù)測結(jié)果表明:改進(jìn)的果蠅算法優(yōu)化的支持向量機(jī)對風(fēng)力發(fā)電功率預(yù)測有更好的準(zhǔn)確性。
風(fēng)電功率預(yù)測; 預(yù)測精度; 支持向量機(jī)(SVM); 優(yōu)化; 評估
由于風(fēng)的不確定性、隨機(jī)性,風(fēng)電的功率預(yù)測在大型風(fēng)電場并網(wǎng)運(yùn)行中起著關(guān)鍵作用。在風(fēng)電場并網(wǎng)中對風(fēng)電功率進(jìn)行準(zhǔn)確預(yù)測不但可以有效減少風(fēng)的不穩(wěn)定性對電網(wǎng)造成的不利影響,而且對電力調(diào)度提前做好準(zhǔn)備提供有力依據(jù)。
目前應(yīng)用于風(fēng)電功率預(yù)測的方法有時間序列分析[1]、BP神經(jīng)網(wǎng)絡(luò)法[2]、卡爾曼濾波法[3]、小波分解[4]等。時間序列分析是采用模型對所觀測到的有序的隨機(jī)數(shù)據(jù)進(jìn)行分析和處理的一種數(shù)據(jù)處理方法,但其會因模型階數(shù)的不同有很大差異。BP神經(jīng)網(wǎng)絡(luò)雖然有很好的魯棒性、泛化能力、容錯能力,但它學(xué)習(xí)收斂速度慢,易陷入局部極小而得不到全局最優(yōu)值??柭鼮V波法很難獲得噪聲的統(tǒng)計特性。而作為統(tǒng)計學(xué)習(xí)理論中最年輕的內(nèi)容,支持向量機(jī)(SVM)不但可以針對小樣本數(shù)據(jù)進(jìn)行學(xué)習(xí),同時得到好的推廣能力,還由于核函數(shù)的引入,可有效地解決維數(shù)災(zāi)難的問題。鑒于功率預(yù)測的緊迫性以及支持向量機(jī)在樣本回歸中的優(yōu)勢,本文建立了支持向量機(jī)模型來進(jìn)行短期功率預(yù)測。
很多研究表明,支持向量機(jī)中核函數(shù)參數(shù)(g)和懲罰因子(c)是影響SVM預(yù)測精度的主要因素,目前為止,參數(shù)的選擇沒有規(guī)律可言,隨機(jī)選取的參數(shù)達(dá)不到理想的精度,因此研究者采用其他算法的優(yōu)點(diǎn)來優(yōu)化參數(shù)c,g。文獻(xiàn)[5]提出采用遺傳算法優(yōu)化最小二乘支持向量機(jī)參數(shù)的方法,避免了人為設(shè)定參數(shù)的不足,同時縮短了優(yōu)化時間。文獻(xiàn)[6]提出了基于蟻群算法的支持向量機(jī)參數(shù)優(yōu)化。文獻(xiàn)[7]提出了基于蜜蜂算法的支持向量機(jī)特征選擇和參數(shù)優(yōu)化。文獻(xiàn)[8]基于改進(jìn)的免疫算法優(yōu)化支持向量機(jī)參數(shù)的表情識別方法,實現(xiàn)支持向量機(jī)參數(shù)自動優(yōu)化,并最終實現(xiàn)人臉表情的精確分類。
果蠅算法是臺灣教授潘文超于2011年提出的一個新算法[9],目前還沒有被用于風(fēng)電功率預(yù)測。本文利用果蠅算法簡單、參數(shù)少、計算量小、尋優(yōu)精度高的優(yōu)點(diǎn),對SVM參數(shù)c,g進(jìn)行優(yōu)化尋優(yōu),提出基于改進(jìn)優(yōu)化果蠅算法的SVM應(yīng)用于風(fēng)電功率預(yù)測。
目前支持向量機(jī)在風(fēng)電功率預(yù)測中的應(yīng)用越來越廣泛[10],不過仍然有很多問題需要改進(jìn)。文獻(xiàn)[11]結(jié)合風(fēng)電機(jī)組功率特性曲線,基于支持向量機(jī)建立了分段混合預(yù)測模型,使平均預(yù)測精度提高了4.76%。由于模型建立過程中,訓(xùn)練數(shù)據(jù)對預(yù)測效果有著很大的影響,該作者對改進(jìn)支持向量機(jī)模型提出了展望。鑒于此本文對支持向量機(jī)的改進(jìn)進(jìn)行研究。
影響支持向量機(jī)模型的主要因素是懲罰參數(shù)c和核函數(shù)參數(shù)g。支持向量機(jī)中最優(yōu)化問題為
(1)
在支持向量機(jī)建模過程中,選擇適當(dāng)?shù)暮撕瘮?shù)巧妙地解決了高維特征空間引起的維數(shù)災(zāi)難問題。在文獻(xiàn)[12]和文獻(xiàn)[13]中通過實驗詳細(xì)分析了核函數(shù)對于支持向量機(jī)的影響,選擇正確的核函數(shù)能夠降低訓(xùn)練誤差。
目前研究最多的核函數(shù)主要有3類:一是多項式核函數(shù);二是RBF核函數(shù);三是sigmoid函數(shù)。RBF核函數(shù)是一個適用廣泛的核函數(shù),與其他核函數(shù)相比,有如下優(yōu)點(diǎn):
(1) 參數(shù)較少,降低了模型的復(fù)雜程度。
(2) 直接反映了兩個數(shù)據(jù)的距離。
(3) 更易于數(shù)值計算,不存在無窮大點(diǎn)和奇異點(diǎn)的問題。
本文采用RBF函數(shù),見式(2)
(2)
式中:x,xi為數(shù)據(jù)點(diǎn);σ為核參數(shù)。RBF函數(shù)作為核函數(shù),實驗表明預(yù)測效果較好。
2.1基本的果蠅優(yōu)化算法
果蠅優(yōu)化算法(Fruit Fly Optimization Algorithm,FOA)是一種基于果蠅覓食行為推演出尋求全局優(yōu)化的新方法。圖1所示為果蠅搜索食物示意圖。
其尋優(yōu)步驟如下:
(1) 首先隨機(jī)初始果蠅群體位置。
InitX_axis
InitY_axis//X,Y表示圖1中的位置坐標(biāo)(x,y)
(2) 給出果蠅個體利用嗅覺搜尋食物的方向與距離。
Xi=X_axis+Random Value//向隨機(jī)的方向和距離尋找到目標(biāo)后的X坐標(biāo)
Yi=Y_axis+Random Value//向隨機(jī)的方向和距離尋找到目標(biāo)后的Y坐標(biāo)
(3) 由于無法得知食物位置,因此先估計與原點(diǎn)的距離(Di),再計算味道濃度判定值(Si)。
(3)
(4)
圖1 果蠅搜索食物示意圖Fig.1 Schematic diagram of fruit flies searching food
(4) 味道濃度判定值(Si)代入味道濃度判定函數(shù)(或稱為Fitness function),求出該果蠅個體位置的味道濃度(Smelli)。
Smelli=Function(Si)
(5) 找出此果蠅群體中味道濃度最高的果蠅。
[bestSmellbestIndex]=max(Smell)
(6) 保留最佳味道濃度值與x、y坐標(biāo),此時果蠅群體利用視覺往該位置飛去。
Smellbest=bestSmell;
X_axis=X(bestIndex);Y_axis=Y(bestIndex)
(7) 進(jìn)入迭代尋優(yōu),重復(fù)執(zhí)行步驟(2)~步驟(5),并判斷味道濃度是否優(yōu)于前一迭代味道濃度,若是則執(zhí)行步驟(6),直到找到最佳味道濃度值。
2.2改進(jìn)的果蠅算法
對于果蠅算法的參數(shù)問題和早熟問題,從改變種群大小、初始位置設(shè)定、迭代步進(jìn)值來提高果蠅算法的搜尋能力。
種群大小關(guān)系著FOA搜尋能力的高低,越多的果蠅去尋找食物,就會越快發(fā)現(xiàn)食物的蹤跡。選擇適量的果蠅數(shù)目并設(shè)定果蠅合適的初始位置來提高解決問題的效率,同時選取不同的步長值影響果蠅算法的搜尋能力。程序如下:
X_axis=50×rand();
Y_axis=50×rand();//果蠅初始位置設(shè)定為50乘以隨機(jī)數(shù)值時搜尋極大值
maxgen=10;//迭代次數(shù)
Sizepop=20;//種群規(guī)模大小,不同的種群大小會有不同的結(jié)果
Fori=1:sizepop
X(i)=X_axis+20×rand()-10;//果蠅補(bǔ)償值設(shè)定為20乘以隨機(jī)數(shù)值再減10,求極大值
Y(i)=Y_axis+20×rand()-10;
S(i)=1/D(i);
Smell(i)=fitness;
End
現(xiàn)在利用求解函數(shù)y=-5+x2的極小值來加以分析。種群數(shù)量分別為3,10,20只果蠅來搜尋,迭代次數(shù)分別10,100,1 000次,迭代步進(jìn)值設(shè)定為2×rand()-1和20×rand()-10,優(yōu)化曲線分別見圖2和圖3。圖中yy1,yy2,yy3分別表示迭代次數(shù)為1 000,100,10。
圖2 迭代步進(jìn)值2×rand()-1時的優(yōu)化結(jié)果Fig.2 Optimal result of iteration step value 2×rand()-1
從圖2、圖3可以看出,不同的種群數(shù)量,迭代次數(shù)以及迭代步進(jìn)值的不同對函數(shù)的收斂程度不一樣。
2.3改進(jìn)果蠅算法的收斂性分析
在實際計算中,果蠅的距離D是在很大的一個范圍內(nèi)隨機(jī)取值,相應(yīng)的味道濃度判定值Si可能出現(xiàn)在很小的范圍之內(nèi),從而FOA容易陷入局部極值,無法尋找全局極值。本文在計算味道濃度判定值時加入一個跳脫參數(shù)Δ(即跳脫局部極值),通過此參數(shù),式(4)變?yōu)?/p>
圖3 迭代步進(jìn)值20×rand()-10時的優(yōu)化結(jié)果Fig.3 Optimal result of iteration step value 20×rand()-10
(5)
這樣一來,味道判定值Sm擴(kuò)大了分布范圍,當(dāng)距離值D很大時,避免了Sm陷入極小值。
證明假設(shè)H={h(1),h(2),h(3),…,h(t),h(t+1)}表示從第1代到第t+1代每代的最優(yōu)值,則滿足
(6)
(1) 當(dāng)果蠅在有限的范圍內(nèi)尋找食物時,由定理單調(diào)不升且有下界的數(shù)列必有極限,可以得出最優(yōu)解一定收斂。
(2) 當(dāng)果蠅的距離D是在很大的一個范圍內(nèi)隨機(jī)取值時,加入?yún)?shù)Δ后,Sm=Si+Δ就不會陷入局部極值,最優(yōu)解也將收斂于Δ。
3.1模型建立
圖4示出了MFOA-SVM的模型圖。首先對數(shù)據(jù)進(jìn)行處理收集,選好樣本集和測試集,采用果蠅算法對參數(shù)c,g進(jìn)行優(yōu)化,然后建立預(yù)測模型進(jìn)行實驗,統(tǒng)計分析預(yù)測誤差。
圖4 MFOA-SVM模型圖Fig.4 Diagrammatic figure of MFOA-SVM
3.2利用修正型果蠅優(yōu)化算法(MFOA)選擇最佳參數(shù)c,g
本文中的適應(yīng)度函數(shù)是SVM對數(shù)據(jù)進(jìn)行預(yù)測后的均方根誤差,使目標(biāo)最小化。適應(yīng)度值越小,誤差越小,SVM回歸預(yù)測越好。具體操作步驟如下:
(1) 確定所需要的適應(yīng)度函數(shù);
(2) 初始化果蠅算法中種群大小和迭代次數(shù),選擇好SVM相關(guān)參數(shù);
(3) 建立SVM訓(xùn)練模型并進(jìn)行預(yù)測,計算適應(yīng)度函數(shù)(預(yù)測結(jié)果與實際值的均方根誤差),得到每一代群組規(guī)模中最佳的參數(shù)值,并記錄下來;
(4) 更新果蠅群體位置,重復(fù)步驟(2)直到達(dá)到最大迭代次數(shù),輸出最優(yōu)值。
具體流程圖如圖5所示。
圖5 MFOA優(yōu)化流程圖Fig.5 Optimization flow chart of MFOA
4.1概述
風(fēng)電功率預(yù)測在整個風(fēng)電場中扮演著不可或缺的角色,預(yù)測精度的準(zhǔn)確性將直接對電網(wǎng)的供需平衡產(chǎn)生影響,對風(fēng)資源能不能得到有效利用有著決定性影響。因此提高功率預(yù)測精度對整個風(fēng)電場來說非常重要。鑒于功率預(yù)測的緊迫性以及支持向量機(jī)在樣本回歸中的優(yōu)勢,本文根據(jù)風(fēng)電場的測試數(shù)據(jù),基于支持向量機(jī)的功率預(yù)測模型進(jìn)行預(yù)測,并使用果蠅算法對參數(shù)進(jìn)行優(yōu)化來提高預(yù)測精度。
4.2數(shù)據(jù)處理
本文采用某風(fēng)電場的GW82-1 500風(fēng)機(jī)作為研究對象,利用平臺MATLAB2009,運(yùn)用支持向量機(jī)工具箱toolbox Libsvm-mat完成對數(shù)據(jù)樣本的訓(xùn)練及預(yù)測。采用該風(fēng)電場10號風(fēng)電機(jī)組10月份運(yùn)行的實測數(shù)據(jù)構(gòu)建樣本集,將該風(fēng)電機(jī)組的功率值分為訓(xùn)練樣本、訓(xùn)練目標(biāo)、測試樣本以及測試目標(biāo)。將前20 d的數(shù)據(jù)作為訓(xùn)練樣本,后10 d的數(shù)據(jù)作為測試樣本,截取10月2日的720組數(shù)據(jù)進(jìn)行實驗。所選取的數(shù)據(jù)位于風(fēng)機(jī)運(yùn)行良好階段,但仍會有故障機(jī)出現(xiàn),對于一些風(fēng)機(jī)較長時間停機(jī)而導(dǎo)致數(shù)據(jù)較多缺失的時刻,直接去掉,對于很少缺失數(shù)據(jù) 或者沒有缺少數(shù)據(jù),只是變化很大的數(shù)據(jù)采用如下方法解決:
如果|P(d,t)-P(d,t-1)|>
?P(d,t-1)&&|P(d,t)-P(d,t+1)|>
?P(d,t+1)
(7)
則P(d,t)=[P(d,t-1)+P(d,t+1)]/2
(8)
其中:P(d,t)表示第d天t時刻的功率值;P(d,t-1)表示第d天(t-1)時刻的值;P(d,t+1)表示第d天(t+1)時刻的值;?表示閾值。
表1列出了部分訓(xùn)練樣本功率數(shù)據(jù);表2列出了部分訓(xùn)練目標(biāo)功率數(shù)據(jù);表3列出了部分測試樣本功率數(shù)據(jù);表4列出了部分測試目標(biāo)功率數(shù)據(jù)。每一列數(shù)據(jù)比前一列數(shù)據(jù)晚1個時刻。
表1 部分訓(xùn)練樣本數(shù)據(jù)Table 1 Partial training sample data
4.3實驗設(shè)計
根據(jù)圖4模型進(jìn)行模型建立并預(yù)測,參數(shù)選擇按照圖5流程圖進(jìn)行選取,選擇RBF核函數(shù),其模型訓(xùn)練步驟如下:
(1) 對采集到的數(shù)據(jù)進(jìn)行剔除、變換、補(bǔ)充;
(2) 對數(shù)據(jù)進(jìn)行分類,并進(jìn)行歸一化處理;
(3) 初始化種群規(guī)模與迭代次數(shù),訓(xùn)練SVM模型,確定最優(yōu)參數(shù)c,g;
(4) 將處理好的數(shù)據(jù)代入SVM模型進(jìn)行預(yù)測;
(5) 根據(jù)所需要的適應(yīng)度函數(shù)計算適應(yīng)度值,每一代記錄下最佳值。
通過每一次迭代的比較,得出最優(yōu)值,輸出預(yù)測精度。
表2 部分訓(xùn)練目標(biāo)數(shù)據(jù)Table 2 Partial training target data
表3 部分測試樣本數(shù)據(jù)Table 3 Partial test sample data
表4 部分測試目標(biāo)數(shù)據(jù)Table 4 Partial test target data
4.4實驗結(jié)果及分析
將提供的數(shù)據(jù)分為訓(xùn)練樣本和測試樣本,并對數(shù)據(jù)進(jìn)行歸一化處理,通過MFOA-SVM模型進(jìn)行訓(xùn)練,得到核函數(shù)參數(shù):bestg=0.168 7,bestc=3.374 0,利用所得到的參數(shù)進(jìn)行測試并反歸一化處理,輸出數(shù)據(jù)如圖6、圖7所示。
圖6 測試樣本在MFOA-SVM優(yōu)化前后的比較Fig.6 Comparison of test samples before and after MFOA-SVM optimization
圖7 測試目標(biāo)MFOA-SVM優(yōu)化前后數(shù)據(jù)的比較Fig.7 Comparison of test targets before and after MFOA-SVM optimization
從圖6、圖7可以看出,經(jīng)過MFOA-SVM優(yōu)化后預(yù)測效果顯著,并通過修改種群數(shù)量、迭代次數(shù)和迭代步進(jìn)值,最終可以達(dá)到平均相對誤差在0.142 9,比沒有采用MFOA優(yōu)化時的誤差0.194 8有明顯提高,而且其相關(guān)性從0.68提升到了0.84。從而使預(yù)測精度得以提高。
風(fēng)電功率預(yù)測對資源的利用相當(dāng)重要。精確的預(yù)測有利于電力系統(tǒng)調(diào)度部門及時調(diào)整調(diào)度計劃,可以減輕風(fēng)電的不穩(wěn)定性對電網(wǎng)的影響。本文采用改進(jìn)的果蠅算法對SVM的參數(shù)進(jìn)行尋優(yōu),建立了基于MFOA-SVM的預(yù)測模型,提高了預(yù)測精度,仿真結(jié)果表明果蠅算法作為一種比較新的優(yōu)化算法在風(fēng)電功率預(yù)測中表現(xiàn)出了很好的一面。
圖8 測試目標(biāo)預(yù)測的平均相對誤差Fig.8 Average relative error of the prediction of the test target
[1]楊茂,孫涌,穆鋼,等.基于時間序列的多采樣尺度風(fēng)電功率多步預(yù)測研究[J].電測與儀表,2014,51(23):55-58.
[2]楊江平.基于神經(jīng)網(wǎng)絡(luò)組合預(yù)測的風(fēng)電場風(fēng)速及發(fā)電功率短期預(yù)測[D].重慶:重慶大學(xué),2012.
[3]趙攀,戴義平,夏俊榮,等.卡爾曼濾波修正的風(fēng)電場短期功率預(yù)測模型[J].西安交通大學(xué)學(xué)報,2011,45(5):48-51.
[4]黃俊生.基于小波分析和支持向量機(jī)的風(fēng)電功率預(yù)測[D].濟(jì)南:山東大學(xué),2012.
[5]王克奇,楊少春,戴天虹,等.采用遺傳算法優(yōu)化最小二乘支持向量機(jī)參數(shù)的方法[J].計算機(jī)應(yīng)用與軟件,2009,26(7):109-111.
[6]莊嚴(yán),白振林,許云峰.基于蟻群算法的支持向量機(jī)參數(shù)選擇方法研究[J].計算機(jī)仿真,2011,28(5):216-219.
[7]陳淵,馬宏偉.基于蜜蜂算法的支持向量機(jī)特征選擇和參數(shù)優(yōu)化[J].組合機(jī)床與自動化加工技術(shù),2013(11):41-43.
[8]田彥濤,劉帥師,萬川,等.基于改進(jìn)的免疫算法優(yōu)化支持向量機(jī)參數(shù)的表情識別方法:101968853A[P].2010-10-15.
[9]潘文超.果蠅最佳化演算法[M].中國臺北:滄海書局,2011:12.
[10]冬雷,廖曉鐘,王麗婕.大型風(fēng)電場發(fā)電功率建模與預(yù)測[M].北京:科學(xué)出版社,2014:39.
[11]史潔.基于支持向量機(jī)的風(fēng)電場功率短期預(yù)測方法研究[D].河北保定:華北電力大學(xué),2009.
[12]WU Chihung,TZENG GWO-HSHIUNG.A novel hybrid genetic algorithm for kernel function and parameter optimization in support vectorregression[J].Expert Systems with Applications,2009(36):4725-4735.
[13]張倩,楊耀權(quán).基于支持向量機(jī)核函數(shù)的研究[J].電力科學(xué)與工程,2012,28(5):42-45.
Wind Power Short-Term Prediction Based on SVM Trained by Improved FOA
XIAO Feng,CHEN Guo-chu
(School of Electric Engineering,Shanghai Dianji University,Shanghai 200240,China)
The forecast accuracy of the wind power directly affects the operating cost of the network system,which is directly related to the supply and demand balance of the grid.Therefore,the forecast accuracy of wind power is very important.Considering the prediction accuracy is not high,we propose an improved predictive method that is based on MFOA-SVM.Since penalty factor and kernel parameters of SVM have a great impact on the prediction accuracy,the improved FOA optimizes the parameters of support vector machine and trains model with a good parameter optimization.Finally,the built model is used to the power prediction to evaluate the data.The prediction results show that the improved MFOA-SVM can produce better accuracy for wind power prediction.
wind power prediction; prediction accuracy; support vector machine(SVM); optimizing; assessment
A
1006-3080(2016)03-0420-07
10.14135/j.cnki.1006-3080.2016.03.020
2015-09-05
上海市教委科研創(chuàng)新項目(13YZ140);上海市教委重點(diǎn)學(xué)科項目(J51901)
肖峰(1991-),男,江蘇人,碩士生,研究方向為大型風(fēng)電場多目標(biāo)優(yōu)化與控制技術(shù)。
通信聯(lián)系人:陳國初,E-mail:chengc@sdju.edu.cn
TK89