本發(fā)明涉及一種基于群搜索算法的光伏電池參數(shù)辨識方法,屬于能源技術(shù)領(lǐng)域。
背景技術(shù):
近年來,光伏發(fā)電技術(shù)以其獨特的發(fā)電特性取得了廣泛地發(fā)展與應(yīng)用。而光伏電池是光伏發(fā)電系統(tǒng)中光伏陣列的重要組成部分,光伏電池輸出特性會直接影響整個光伏發(fā)電系統(tǒng)的整體輸出特性,準確地計算光伏發(fā)電系統(tǒng)的輸出功率,預(yù)測光伏電站的發(fā)電量,能夠更合理地安排機組出力,有助于大規(guī)模光伏發(fā)電系統(tǒng)的并網(wǎng)運行與調(diào)度。所以建立能夠準確描述光伏電池輸出特性的模型是開展光伏系統(tǒng)對電力系統(tǒng)影響分析等相關(guān)研究及仿真的基礎(chǔ)。
在光伏電池模型方面,國內(nèi)外學(xué)者已做了大量工作,歸納起來主要有三種模型:光伏組件U-I特性模型(機理模型)、工程用簡化模型以及考慮部分陰影遮擋的光伏組件模型。其中,機理模型由于概念清楚,特性與實測更一致,因此為更多數(shù)研究者所接受。
而在實際上,傳統(tǒng)的光伏電池參數(shù)辨識和功率預(yù)測方法,多基于光伏電池生產(chǎn)廠家提供的數(shù)據(jù)。但是,將光伏電池串并聯(lián)為光伏陣列后,陣列中的各個電池工作狀態(tài)并不一致,此時利用廠家提供的數(shù)據(jù)無法準確辨識光伏陣列的運行參數(shù),也無法精確地預(yù)測光伏陣列的輸出功率。
目前國內(nèi)外常規(guī)的參數(shù)辨識方法有最小二乘法、神經(jīng)網(wǎng)絡(luò)算法和粒子群算法等等。傳統(tǒng)基于最小二乘法的參數(shù)辨識方法實現(xiàn)簡單,但該算法適應(yīng)于求解線性方程組,光伏電池的參數(shù)辨識問題明顯地不能用線性關(guān)系來描述,因此最小二乘法在解決此問題上有很大的局限性;基于神經(jīng)網(wǎng)絡(luò)算法的參數(shù)辨識方法收斂速度慢,易陷入局部最優(yōu);基于粒子群算法的參數(shù)辨識方法具有優(yōu)化時間長、易陷入早熟、實現(xiàn)較繁瑣等問題。
技術(shù)實現(xiàn)要素:
本發(fā)明需要解決的技術(shù)問題是提供一種基于群搜索的光伏電池參數(shù)辨識方法。
本發(fā)明采用下述技術(shù)方案:
一種基于群搜索的光伏電池參數(shù)辨識方法,所述參數(shù)辨識方法用于辨識單級式光伏并網(wǎng)發(fā)電系統(tǒng)的光伏電池,所述光伏電池通過m串n并組成光伏陣列:包括以下步驟:
步驟1:獲取光伏陣列輸出電壓UL1和輸出電流IL1及光伏電池的輸出電壓UL和輸出電流IL,由以下具體分步驟組成:
步驟1-1:讀取所述光伏陣列的輸出電壓UL1和輸出電流IL1;
步驟1-2:所述光伏電池的輸出電壓為UL=UL1/m,輸出電流為IL=IL1/n;
步驟2:搭建光伏組件機理模型:
其中,UL、IL分別為輸出電壓和輸出電流,Iph.ref為標準測試條件下的光生電流,Io.ref為標準測試條件下的二極管反向飽和電流,n為二極管品質(zhì)因子,Rs為串聯(lián)電阻,Rsh為并聯(lián)電阻,T為電池的絕對溫度,K為玻爾茲曼常數(shù),K=1.380*10^(-23),q為電子電荷,q=1.680*10^(-19);
步驟3:設(shè)置目標函數(shù)為適應(yīng)度是均方根誤差RMES;
其中,x=[Iph.ref,Io.ref,Rs,Rsh,n]為所述光伏電池需要辨識的參數(shù);N為測量數(shù)據(jù)的采樣點的數(shù)目;適應(yīng)度為:
其中,I為光伏陣列的實測輸出電流;
步驟4:初始化:設(shè)置群規(guī)模a、最大轉(zhuǎn)移距離lmax、最大轉(zhuǎn)向角αmax、最大迭代次數(shù)MAXGEN、發(fā)現(xiàn)者更新的最大嘗試次數(shù)try_number;所有成員的初始位置{Xi}、(i=1,2,...a)及其角度{ψi}Xi=(x1,x2,...,xa),ψi=(ψi1,ψi2,...,ψi(a-1)),其中,xi為所述光伏電池需要辨識的參數(shù);發(fā)現(xiàn)者更新次數(shù)為0;迭代次數(shù)為0;
步驟5:計算各成員的目標函數(shù)值,選取目標函數(shù)值最小的成員作為發(fā)現(xiàn)者,并按照預(yù)設(shè)的比例隨機選取非發(fā)現(xiàn)者成員的80%為追隨者,其余的為游蕩者;
步驟6:對發(fā)現(xiàn)者、追隨者和游蕩者進行位置更新;由以下具體步驟組成:
步驟6-1:發(fā)現(xiàn)者的搜索行為;由以下具體分步驟組成:
步驟6-1-1:發(fā)現(xiàn)者更新次數(shù)加1;發(fā)現(xiàn)者從當前位置開始搜索,然后在搜索空間中當前位置的前方、左側(cè)、右側(cè)分別進行掃描,在三個方向分別更新位置,然后計各自的適應(yīng)度,把適應(yīng)值更好的點作為新的發(fā)現(xiàn)者,三個方向分別按照如下公式更新:
前方:
右方:
左方:
其中,Xkp為第k次迭代中發(fā)現(xiàn)者的位置;r1是一個平均值為0,標準差為1的正態(tài)分布的隨機數(shù);r2是均勻分布在(0,1)的隨機數(shù);θmax為最大轉(zhuǎn)移角度,均為標量;Dpk={Dik}為搜索方向,Dik=(di1k,di2k,...,dimk),搜索方向為一個單位向量,由搜索角度計算而來,過程如下:
若三個位置的適應(yīng)度均未優(yōu)于當前適應(yīng)度,則按照下式轉(zhuǎn)變掃描角度,重新隨機取點;
步驟6-1-2:判斷發(fā)現(xiàn)者更新次數(shù)是否等于try_number;如果是,轉(zhuǎn)向步驟6-1-3;否則轉(zhuǎn)向步驟6-1-1;
步驟6-1-3:發(fā)現(xiàn)者的搜索角度更新為
步驟6-1-4:判斷群成員位置是否超出設(shè)定取值區(qū)間,如果是,轉(zhuǎn)向步驟6-1-5;否則轉(zhuǎn)向步驟6-2;
步驟6-1-5:在搜索空間內(nèi)隨機初始化群成員的位置;
步驟6-2:追隨者的位置更新如下式:
其中,Xik為第i個追隨者在第k次迭代中的位置,r3為均勻分布在(0,1)的隨機數(shù);
步驟6-3:游蕩者的位置更新如下:
其中,lw=α*r1lmax,其中,r1是一個平均值為0,標準差為1的正態(tài)分布的隨機數(shù),α為迭代過程中游蕩者的轉(zhuǎn)向角;Xwk為第w個游蕩者在第k次迭代中的位置;
步驟7:計算群成員位置更新后的目標函數(shù)值RMES值;
步驟8:判斷迭代次數(shù)是否等于最大迭代次數(shù)MAXGEN,如果否轉(zhuǎn)向步驟9,否則轉(zhuǎn)入步驟10;
步驟9:迭代次數(shù)加1;轉(zhuǎn)向步驟5,
步驟10:把發(fā)現(xiàn)者的位置作為電池參數(shù)的辨識結(jié)果輸出。
采用上述技術(shù)方案所產(chǎn)生的有益效果在于:
1、本發(fā)明通過游蕩者的隨機性及發(fā)現(xiàn)者的局部尋優(yōu),優(yōu)化速度很快。
2、本發(fā)明通過游蕩者的加入,使整個迭代曲線持續(xù)下降,有效地解決了優(yōu)化問題陷入局部最小值的問題,并快速地在整個搜索空間找出最優(yōu)解。
3、本發(fā)明在搜索過程中保證群成員在限定范圍內(nèi)搜索,若搜索躍出邊界時,就回到搜索空間的初始位置,避免了越限,提高了結(jié)果的精度。
4、本發(fā)明對于多模態(tài)高維非線性函數(shù)的優(yōu)化問題有很明顯的優(yōu)勢。
附圖說明
圖1是光伏電池機理模型原理示意圖;
圖2是基于群搜索算法的光伏電池參數(shù)辨識方法流程圖。
具體實施方式
下面結(jié)合附圖和具體實施方式對本發(fā)明作進一步詳細的說明。
如圖1所示,光伏電池相當于一般的P-N結(jié),電池的模型可以用反向二極管與電流源的并聯(lián)電路來等效。根據(jù)光伏電池機理模型原理示意圖建立光伏電池數(shù)學(xué)模型,以模型為研究對象,推倒出機理模型中待辨識的未知參數(shù),即標準測試條件下的光生電流Iph.ref,標準測試條件下的二極管反向飽和電流Io.ref,二極管品質(zhì)因子n,串聯(lián)電阻Rs,并聯(lián)電阻Rsh,并以均方根誤差RMSE為目標函數(shù)。
如圖2所示,一種基于群搜索的光伏電池參數(shù)辨識方法,所述參數(shù)辨識方法用于辨識單級式光伏并網(wǎng)發(fā)電系統(tǒng)的光伏電池,所述光伏電池通過m串n并組成光伏陣列:包括以下步驟:
步驟1:獲取光伏陣列輸出電壓UL1和輸出電流IL1及光伏電池的輸出電壓UL和輸出電流IL,由以下具體分步驟組成:
步驟1-1:讀取所述光伏陣列的輸出電壓UL1和輸出電流IL1;
步驟1-2:所述光伏電池的輸出電壓為UL=UL1/m,輸出電流為IL=IL1/n;
步驟2:搭建光伏組件機理模型:
其中,UL、IL分別為輸出電壓和輸出電流,Iph.ref為標準測試條件下的光生電流,Io.ref為標準測試條件下的二極管反向飽和電流,n為二極管品質(zhì)因子,Rs為串聯(lián)電阻,Rsh為并聯(lián)電阻,T為電池的絕對溫度,K為玻爾茲曼常數(shù),K=1.380*10^(-23),q為電子電荷,q=1.680*10^(-19);
步驟3:設(shè)置目標函數(shù)為適應(yīng)度是均方根誤差RMES;
其中,x=[Iph.ref,Io.ref,Rs,Rsh,n]為所述光伏電池需要辨識的參數(shù);N為測量數(shù)據(jù)的采樣點的數(shù)目;適應(yīng)度為:
其中,I為光伏陣列的實測輸出電流;
步驟4:初始化:設(shè)置群規(guī)模a、最大轉(zhuǎn)移距離lmax、最大轉(zhuǎn)向角αmax、最大迭代次數(shù)MAXGEN、發(fā)現(xiàn)者更新的最大嘗試次數(shù)try_number;所有成員的初始位置{Xi}、(i=1,2,...a)及其角度{ψi}Xi=(x1,x2,...,xa),ψi=(ψi1,ψi2,...,ψi(a-1)),其中,xi為所述光伏電池需要辨識的參數(shù);發(fā)現(xiàn)者更新次數(shù)為0;迭代次數(shù)為0;
步驟5:計算各成員的目標函數(shù)值,選取目標函數(shù)值最小的成員作為發(fā)現(xiàn)者,并隨機選取剩余的80%為追隨者,之后剩余的20%為游蕩者;
步驟6:對發(fā)現(xiàn)者、追隨者和游蕩者進行位置更新;由以下具體步驟組成:
步驟6-1:發(fā)現(xiàn)者的搜索行為;由以下具體分步驟組成:
步驟6-1-1:發(fā)現(xiàn)者更新次數(shù)加1;發(fā)現(xiàn)者從當前位置開始搜索,然后在搜索空間中當前位置的前方、左側(cè)、右側(cè)分別進行掃描,在三個方向分別更新位置,然后計各自的適應(yīng)度,把適應(yīng)值更好的點作為新的發(fā)現(xiàn)者,三個方向分別按照如下公式更新:
前方:
右方:
左方:
其中,Xkp為第k次迭代中發(fā)現(xiàn)者的位置;r1是一個平均值為0,標準差為1的正態(tài)分布的隨機數(shù);r2是均勻分布在(0,1)的隨機數(shù);θmax為最大轉(zhuǎn)移角度,均為標量;Dpk={Dik}為搜索方向,Dik=(di1k,di2k,...,dimk),搜索方向為一個單位向量,由搜索角度計算而來,過程如下:
若三個位置的適應(yīng)度均未優(yōu)于當前適應(yīng)度,則按照下式轉(zhuǎn)變掃描角度,重新隨機取點;
步驟6-1-2:判斷發(fā)現(xiàn)者更新次數(shù)是否等于try_number;如果是,轉(zhuǎn)向步驟6-1-3;否則轉(zhuǎn)向步驟6-1-1;
步驟6-1-3:發(fā)現(xiàn)者的搜索角度更新為
步驟6-1-4:判斷群成員位置是否超出設(shè)定取值區(qū)間,如果是,轉(zhuǎn)向步驟6-1-5;否則轉(zhuǎn)向步驟6-2;
步驟6-1-5:在搜索空間內(nèi)隨機初始化群成員的位置;
步驟6-2:追隨者的位置更新如下式:
其中,Xik為第i個追隨者在第k次迭代中的位置,r3為均勻分布在(0,1)的隨機數(shù);
步驟6-3:游蕩者的位置更新如下:
其中,lw=α*r1lmax,其中,r1是一個平均值為0,標準差為1的正態(tài)分布的隨機數(shù),α為迭代過程中游蕩者的轉(zhuǎn)向角;Xwk為第w個游蕩者在第k次迭代中的位置;
步驟7:計算群成員位置更新后的目標函數(shù)值RMES值;
步驟8:判斷迭代次數(shù)是否等于最大迭代次數(shù)MAXGEN,如果否轉(zhuǎn)向步驟9,否則轉(zhuǎn)入步驟10;
步驟9:迭代次數(shù)加1;轉(zhuǎn)向步驟5,
步驟10:把發(fā)現(xiàn)者的位置作為電池參數(shù)的辨識結(jié)果輸出。