本發(fā)明涉及一種光伏電池參數(shù)辨識方法,尤其是一種基于人工魚群和蛙跳算法的光伏電池參數(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)外學者已做了大量工作,歸納起來主要有三種模型:光伏組件U-I特性機理模型、工程用簡化模型以及考慮部分陰影遮擋的光伏組件模型。其中,機理模型由于概念清楚,特性與實測更一致,因此為更多數(shù)研究者所接受。
而在實際上,傳統(tǒng)的光伏電池參數(shù)辨識和功率預(yù)測方法,多基于光伏電池生產(chǎn)廠家提供的數(shù)據(jù)。但是,將光伏電池串并聯(lián)為光伏陣列后,陣列中的各個電池工作狀態(tài)并不一致,此時利用廠家提供的數(shù)據(jù)無法準確辨識光伏陣列的運行參數(shù),也無法精確地預(yù)測光伏陣列的輸出功率。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題是提供一種基于人工魚群和蛙跳算法的光伏電池參數(shù)辨識方法。
本發(fā)明采用下述技術(shù)方案:
一種基于人工魚群和蛙跳算法的光伏電池參數(shù)辨識方法,mxn個所述光伏電池通過m串n并組成光伏陣列,m,n為大于1的整數(shù),所述光伏陣列用于單級式光伏并網(wǎng)發(fā)電系統(tǒng);包括以下步驟:
步驟1:建立光伏組件機理模型:
其中,UL、IL分別為光伏電池的輸出電壓和輸出電流,Iph.ref為標準測試條件下的光伏電池的光生電流,Io.ref為標準測試條件下的二極管反向飽和電流,n為二極管品質(zhì)因子,Rs為串聯(lián)電阻,Rsh為并聯(lián)電阻,T為光伏電池的絕對溫度,K為玻爾茲曼常數(shù),q為電子基本電荷量;
步驟2:設(shè)置目標函數(shù):
其中,UL和IL為所述光伏電池的輸出電壓輸出電流,x=[Iph.ref,Io.ref,Rs,Rsh,n]為需要辨識的光伏電池參數(shù),f(UL,IL,x)為光伏電池輸出電流的估計誤差,其計算方法為:
式中I為光伏陣列的實測輸出電流;
步驟3:計算所述光伏電池的實測輸出電壓U和實測輸出電流I:
U=UL1/m (4)
I=IL1/n (5)
其中,UL1和IL1為所述光伏陣列的實測輸出電壓和實測輸出電流;
步驟4:執(zhí)行人工魚群算法,由以下具體步驟組成:
步驟4-1:初始化魚群:設(shè)置人工魚群中的人工魚數(shù)量N、人工魚的感知距離Visual、人工魚移動的最大步長Step、擁擠度因子δ、覓食行為嘗試的最大次數(shù)try_number、最大迭代次數(shù)MAXGEN和各人工魚個體的狀態(tài)位置初始值{X0}=(x1,x2,...,xn,...,xN),其中xn=[Iph.ref,Io.ref,Rs,Rsh,n];設(shè)置迭代次數(shù)try為0;
步驟4-2:計算各人工魚在位置i的食物濃度,即計算目標函數(shù)值RMES,i,并記錄當前全局最優(yōu)人工魚的狀態(tài)位置{Xbest};
步驟4-3:模擬聚群行為:設(shè)置嘗試次數(shù)try_1為0;逐一計算各人工魚在當前狀態(tài)位置Xi,領(lǐng)域范圍di,j=||Xi-Xj||<Visual范圍內(nèi)的伙伴數(shù)目nf及中心位置Xc,中心位置Xc計算公式如下:
判斷(Yc/nf)>δYi是否成立;如果是,將各人工魚的狀態(tài)位置則朝伙伴Yc的方向前進一步,記錄移動后的位置Xnext1和濃度Ynext1;否則,轉(zhuǎn)向步驟4-6;
步驟4-4:模擬追尾行為:搜索各人工魚在當前領(lǐng)域內(nèi)濃度最大的伙伴Yj,判斷(Yj/nf)>δYi,是否成立;如果是,將各人工魚的狀態(tài)位置則朝伙伴Yj的方向前進一步,記錄移動后的位置Xnext2和濃度Ynext2;否則,轉(zhuǎn)向步驟4-6;
步驟4-5:嘗試次數(shù)try_1;判斷嘗試次數(shù)try_1是否大于覓食行為嘗試的最大次數(shù)try_number,如果是轉(zhuǎn)向步驟4-8,否則,轉(zhuǎn)向步驟4-6;
步驟4-6:模擬覓食行為:在各人工魚的當前狀態(tài)位置的領(lǐng)域范圍內(nèi)隨機選擇一個位置狀態(tài)Xk,判斷其濃度Yk是否大于位置狀態(tài)Xi的濃度Yi,如果是,轉(zhuǎn)向步驟4-7;否則轉(zhuǎn)向步驟4-5;
步驟4-7:所述人工魚則向位置狀態(tài)Xk方向前進一步;
步驟4-8:模擬隨機行為:各人工魚的狀態(tài)位置隨機移動到下一個位置:Xi+1=Xi+r*Visual,r為[-1,1]之間的隨機數(shù);
步驟4-9:比較步驟4-3、步驟4-4、步驟4-6和步驟4-8中各人工魚所處狀態(tài)位置對應(yīng)的目標函數(shù)值,選擇最小的一個更新全局最優(yōu)人工魚的狀態(tài)位置{Xbest};
步驟4-10:try加1,判斷是否大于最大迭代次數(shù)MAXGEN,如果是,轉(zhuǎn)向步驟5,否則,轉(zhuǎn)向步驟4-3;
步驟5:執(zhí)行蛙跳算法,由以下具體步驟組成:
步驟5-1:初始化青蛙種群:將最后一次迭代產(chǎn)生的人工魚按目標函數(shù)值排序,取其前1/2生成的相應(yīng)的青蛙,設(shè)置青蛙個體的狀態(tài)位置為Xi=(x1i,x2i,...xki),其中xki=[Iph.ref,Io.ref,Rs,Rsh,n](i=1,2,...,k);設(shè)置青蛙子群個數(shù)p及最大迭代次數(shù)MAXI;蛙跳算法迭代次數(shù)設(shè)置為0;
步驟5-2:將所述各青蛙降序排列后分配到青蛙p個子群中,分配規(guī)則為第1只青蛙進入第1個子群,第p只進入第p個子群,第p+1只進入第一個子群;設(shè)置跳躍次數(shù)為0;蛙跳算法迭代次數(shù)加1,判斷其是否大于MAXI,如果是,轉(zhuǎn)向步驟6,否則轉(zhuǎn)向步驟5-3;
步驟5-3:每個子群中,最優(yōu)和最差位置即對應(yīng)目標函數(shù)值最小和最大的青蛙被標記為Xb和Xww,整個蛙群中的最優(yōu)青蛙標記為Xg;將Xww設(shè)置為跳躍青蛙Xw;設(shè)置模擬跳躍次數(shù)為0;
步驟5-4:模擬青蛙跳躍:模擬跳躍次數(shù)加1,更新規(guī)則如下:
Xw-new=Xw-current+C*R*(Xb-Xw) (7)
式中,R是0到1之間的隨機數(shù);C為步長因子,Xw-current為Xw的當前位置,Xw-new為Xw更新后位置;
步驟5-5:判斷Xw-new是否優(yōu)于Xw-current,如果是,將w-new更新為Xw-current,轉(zhuǎn)向步驟5-2,否則轉(zhuǎn)向步驟5-6;
步驟5-6:判斷模擬跳躍次數(shù)是否為1,如果是,轉(zhuǎn)向步驟5-7,否則轉(zhuǎn)向步驟5-2;
步驟5-7:設(shè)置Xg為跳躍青蛙Xw,轉(zhuǎn)向步驟5-4;
步驟6:輸出最優(yōu)解,包括辨識結(jié)果和最小均方根誤差。
采用上述技術(shù)方案所產(chǎn)生的有益效果在于:
1、本發(fā)明前期通過人工魚群算法的聚群和追尾行為可使整個魚群迅速向全局最優(yōu)區(qū)域移動,在前期收斂速度較快。
2、本發(fā)明后期通過蛙跳算法有更強的方向性的更新策略,在一個區(qū)域內(nèi)具有較強的局部搜索尋找到最優(yōu)解的能力,使計算結(jié)果更精確。
3、本發(fā)明提出的混合算法兼具了人工魚群算法前期收斂迅速與蛙跳算法局部搜索準確的優(yōu)勢。
附圖說明
圖1是光伏電池的等效電路圖;
圖2本發(fā)明的流程圖;
圖3是本發(fā)明中的人工魚群算法流程圖;
圖4是本發(fā)明中的蛙跳算法流程圖。
具體實施方式
下面結(jié)合附圖和具體是實施方式對本發(fā)明作進一步詳細的說明。
如圖1所示,光伏電池相當于一般的P-N結(jié),電池的模型可以用反向二極管與電流源的并聯(lián)電路來等效。根據(jù)光伏電池機理模型原理示意圖建立光伏電池數(shù)學模型,以模型為研究對象,推倒出機理模型中待辨識的未知參數(shù),即標準測試條件下的光生電流Iph.ref,標準測試條件下的二極管反向飽和電流Io.ref,二極管品質(zhì)因子n,串聯(lián)電阻Rs,并聯(lián)電阻Rsh,并以均方根誤差RMSE為目標函數(shù)。
如圖2所示,一種基于人工魚群和蛙跳算法的光伏電池參數(shù)辨識方法,mxn個所述光伏電池通過m串n并組成光伏陣列,m,n為大于1的整數(shù),所述光伏陣列用于單級式光伏并網(wǎng)發(fā)電系統(tǒng);包括以下步驟:
步驟1:建立光伏組件機理模型:
其中,UL、IL分別為光伏電池的輸出電壓和輸出電流,Iph.ref為標準測試條件下的光伏電池的光生電流,Io.ref為標準測試條件下的二極管反向飽和電流,n為二極管品質(zhì)因子,Rs為串聯(lián)電阻,Rsh為并聯(lián)電阻,T為光伏電池的絕對溫度,K為玻爾茲曼常數(shù),q為電子基本電荷量;
步驟2:設(shè)置目標函數(shù):
其中,UL和IL為所述光伏電池的輸出電壓輸出電流,x=[Iph.ref,Io.ref,Rs,Rsh,n]為需要辨識的光伏電池參數(shù),f(UL,IL,x)為光伏電池輸出電流的估計誤差,其計算方法為:
式中I為光伏陣列的實測輸出電流;
步驟3:計算所述光伏電池的實測輸出電壓U和實測輸出電流I:
U=UL1/m (4)
I=IL1/n (5)
其中,UL1和IL1為所述光伏陣列的實測輸出電壓和實測輸出電流;
步驟4:執(zhí)行人工魚群算法,由以下具體步驟組成:
步驟4-1:初始化魚群:設(shè)置人工魚群中的人工魚數(shù)量N、人工魚的感知距離Visual、人工魚移動的最大步長Step、擁擠度因子δ、覓食行為嘗試的最大次數(shù)try_number、最大迭代次數(shù)MAXGEN和各人工魚個體的狀態(tài)位置初始值{X0}=(x1,x2,...,xn,...,xN),其中xn=[Iph.ref,Io.ref,Rs,Rsh,n];設(shè)置迭代次數(shù)try為0;
步驟4-2:計算各人工魚在位置i的食物濃度,即計算目標函數(shù)值RMES,i,并記錄當前全局最優(yōu)人工魚的狀態(tài)位置{Xbest};
步驟4-3:模擬聚群行為:設(shè)置嘗試次數(shù)try_1為0;逐一計算各人工魚在當前狀態(tài)位置Xi,領(lǐng)域范圍di,j=||Xi-Xj||<Visual范圍內(nèi)的伙伴數(shù)目nf及中心位置Xc,中心位置Xc計算公式如下:
判斷(Yc/nf)>δYi是否成立;如果是,將各人工魚的狀態(tài)位置則朝伙伴Yc的方向前進一步,記錄移動后的位置Xnext1和濃度Ynext1;否則,轉(zhuǎn)向步驟4-6;
步驟4-4:模擬追尾行為:搜索各人工魚在當前領(lǐng)域內(nèi)濃度最大的伙伴Yj,判斷(Yj/nf)>δYi,是否成立;如果是,將各人工魚的狀態(tài)位置則朝伙伴Yj的方向前進一步,記錄移動后的位置Xnext2和濃度Ynext2;否則,轉(zhuǎn)向步驟4-6;
步驟4-5:嘗試次數(shù)try_1;判斷嘗試次數(shù)try_1是否大于覓食行為嘗試的最大次數(shù)try_number,如果是轉(zhuǎn)向步驟4-8,否則,轉(zhuǎn)向步驟4-6;
步驟4-6:模擬覓食行為:在各人工魚的當前狀態(tài)位置的領(lǐng)域范圍內(nèi)隨機選擇一個位置狀態(tài)Xk,判斷其濃度Yk是否大于位置狀態(tài)Xi的濃度Yi,如果是,轉(zhuǎn)向步驟4-7;否則轉(zhuǎn)向步驟4-5;
步驟4-7:所述人工魚則向位置狀態(tài)Xk方向前進一步;
步驟4-8:模擬隨機行為:各人工魚的狀態(tài)位置隨機移動到下一個位置:Xi+1=Xi+r*Visual,r為[-1,1]之間的隨機數(shù);
步驟4-9:比較步驟4-3、步驟4-4、步驟4-6和步驟4-8中各人工魚所處狀態(tài)位置對應(yīng)的目標函數(shù)值,選擇最小的一個更新全局最優(yōu)人工魚的狀態(tài)位置{Xbest};
步驟4-10:try加1,判斷是否大于最大迭代次數(shù)MAXGEN,如果是,轉(zhuǎn)向步驟5,否則,轉(zhuǎn)向步驟4-3;
步驟5:執(zhí)行蛙跳算法,由以下具體步驟組成:
步驟5-1:初始化青蛙種群:將最后一次迭代產(chǎn)生的人工魚按目標函數(shù)值排序,取其前1/2生成的相應(yīng)的青蛙,設(shè)置青蛙個體的狀態(tài)位置為Xi=(x1i,x2i,...xki),其中xki=[Iph.ref,Io.ref,Rs,Rsh,n](i=1,2,...,k);設(shè)置青蛙子群個數(shù)p及最大迭代次數(shù)MAXI;蛙跳算法迭代次數(shù)設(shè)置為0;
步驟5-2:將所述各青蛙降序排列后分配到青蛙p個子群中,分配規(guī)則為第1只青蛙進入第1個子群,第p只進入第p個子群,第p+1只進入第一個子群;設(shè)置跳躍次數(shù)為0;蛙跳算法迭代次數(shù)加1,判斷其是否大于MAXI,如果是,轉(zhuǎn)向步驟6,否則轉(zhuǎn)向步驟5-3;
步驟5-3:每個子群中,最優(yōu)和最差位置即對應(yīng)目標函數(shù)值最小和最大的青蛙被標記為Xb和Xww,整個蛙群中的最優(yōu)青蛙標記為Xg;將Xww設(shè)置為跳躍青蛙Xw;設(shè)置模擬跳躍次數(shù)為0;
步驟5-4:模擬青蛙跳躍:模擬跳躍次數(shù)加1,更新規(guī)則如下:
Xw-new=Xw-current+C*R*(Xb-Xw) (7)
式中,R是0到1之間的隨機數(shù);C為步長因子,Xw-current為Xw的當前位置,Xw-new為Xw更新后位置;
步驟5-5:判斷Xw-new是否優(yōu)于Xw-current,如果是,將w-new更新為Xw-current,轉(zhuǎn)向步驟5-2,否則轉(zhuǎn)向步驟5-6;
步驟5-6:判斷模擬跳躍次數(shù)是否為1,如果是,轉(zhuǎn)向步驟5-7,否則轉(zhuǎn)向步驟5-2;
步驟5-7:設(shè)置Xg為跳躍青蛙Xw,轉(zhuǎn)向步驟5-4;
步驟6:輸出最優(yōu)解,包括辨識結(jié)果和最小均方根誤差。