,,, , ,,
(1.華中科技大學 水電與數(shù)字化工程學院,武漢 430074;2.國家電網(wǎng)公司 華中分部,武漢 430077)
電站機組組合(Unit Commitment,UC)問題是電力系統(tǒng)編制短期發(fā)電計劃要解決的重要問題,主要涉及大型水、火電站機組的經(jīng)濟運行。從數(shù)學角度上來說是一個高維、非凸、離散、非線性的優(yōu)化問題,其目的是在滿足系統(tǒng)約束和機組約束的情況下,確定一個調(diào)度周期(通常為24 h)內(nèi)各時段機組的啟停狀態(tài)和機組出力,使系統(tǒng)總的發(fā)電運行費用最低[1-2]。
電站機組組合包含離散的機組啟停狀態(tài)變量和連續(xù)的機組出力變量,且需要處理復雜的時段關(guān)聯(lián)型約束,求解十分困難,但由于其潛在的經(jīng)濟效益,國內(nèi)外學者一直在積極研究,至今涌現(xiàn)出各種優(yōu)化算法。傳統(tǒng)優(yōu)化方法包括動態(tài)規(guī)劃法[3]、混合整數(shù)規(guī)劃法[4]、拉格朗日松弛法[5]等。這些方法雖簡單快速,但存在公認的一些問題:動態(tài)規(guī)劃法處理最小開停機時間約束和爬坡約束較為困難,且隨著系統(tǒng)規(guī)模的擴大存在“維數(shù)災”問題;混合整數(shù)規(guī)劃法比較復雜,計算量大,必須對實際問題進行分解,難以推廣應用;拉格朗日松弛法在求解過程中可能會出現(xiàn)振蕩或奇異現(xiàn)象,收斂速度慢,難以處理爬坡約束[1]。隨著計算機和人工智能技術(shù)的發(fā)展,智能優(yōu)化算法越來越多地應用到機組組合優(yōu)化問題上,如遺傳算法[6]、粒子群算法[2,7]、差分進化算法[8]、萬有引力算法[9]等。智能算法對目標函數(shù)性態(tài)沒有特殊要求,比較靈活,但隨機性較強,易陷入局部最優(yōu),且其本質(zhì)上屬于無約束優(yōu)化算法,需要設計合理有效的方法處理約束條件[10]。
和聲搜索算法[11](Harmony Search, HS)是一種全局啟發(fā)式智能優(yōu)化算法,由于該算法概念簡單,涉及參數(shù)少,在工程、能源、醫(yī)療等領域有著廣泛的應用[12]。針對組合優(yōu)化問題,Zou等[13]提出一種新穎的全局和聲搜索算法(NGHS),將位置更新和變異操作引入算法框架,以提高算法的搜索能力;Wang等[14]提出一種自適應二進制和聲搜索算法(ABHS),通過自適應調(diào)整策略提高算法的尋優(yōu)性能和魯棒性。然而,這些算法仍存在收斂速度慢、易陷入局部最優(yōu)的缺陷。為此,本文基于機組組合問題的特點,融合和聲搜索算法與粒子群算法,取長補短,提出了一種二進制和聲粒子群算法(BHSPSO)。采用二進制編碼方式模擬機組啟停狀態(tài),通過啟發(fā)式調(diào)整策略處理復雜時段關(guān)聯(lián)約束條件,并利用迭代法求解經(jīng)濟負荷分配(Economic Load Dispatch,ELD)問題。對10機至100機系統(tǒng)的仿真計算,驗證了本文算法的可行性與有效性。
電站機組組合問題是電站經(jīng)濟運行內(nèi)容之一,其目標函數(shù)是在滿足各種約束條件下使總的發(fā)電運行費用最低,即
式中:F為總的發(fā)電運行費用,其中包括發(fā)電成本FCn、開機成本SUCn和停機成本SDCn,停機成本通常忽略不計;N為機組臺數(shù);T為總時段數(shù);Un,t為機組n在t時段的狀態(tài),0表示停機,1表示開機。機組的發(fā)電成本可用一個二次函數(shù)表示,即
(2)
式中:Pn,t為機組n在t時段的出力;αn,βn,γn為機組n發(fā)電成本函數(shù)的參數(shù)。
機組開機分為熱啟動和冷啟動2種情況,其開機成本不同,即
(3)
機組組合問題的約束條件一般包括系統(tǒng)約束和機組約束。
(1)功率平衡約束:
(4)
式中PDt為t時段的系統(tǒng)負荷。
(2)旋轉(zhuǎn)備用約束:
(5)
式中SRt為t時段系統(tǒng)的備用容量。
(3)機組出力上、下限約束:
(6)
(4)最小開停機時間約束:
(7)
式中:Tonn和Toffn分別為機組n的開、停機持續(xù)時間;Tupn和Tdownn分別表示機組n的最小開、停機時間。
(5)機組爬坡約束:
(8)
式中URn和DRn分別表示機組n出力上升、下降的限值。
和聲搜索算法(HS)是Geem等[11]于2001年提出的一種啟發(fā)式全局搜索算法,通過模擬樂師們反復調(diào)整樂器以達到美妙和聲的音樂即興創(chuàng)作過程對優(yōu)化問題進行迭代求解。HS包含4個關(guān)鍵參數(shù),即和聲記憶庫大小HMS、記憶庫取值概率HMCR、音調(diào)微調(diào)概率PAR以及創(chuàng)作次數(shù)NI,算法主要流程如下。
Step 1:隨機生成HMS個和聲,并保存在和聲記憶庫中。
Step 2:即興創(chuàng)作,產(chǎn)生一個新的和聲x′,對x′的各個分量分別以HMCR的概率在和聲記憶庫中選擇,以1-HMCR的概率從其取值范圍中隨機選取,見式(9)。當從和聲記憶庫中選擇時,以PAR的概率進行音調(diào)微調(diào),見式(10)。
Step 3:判斷x′是否優(yōu)于和聲庫中的最差和聲,若是,則將其替換。
Step 4:重復Step 2與Step 3,直到滿足終止條件。
Step 5:輸出最優(yōu)和聲。
(9)
(10)
式中:Xi為第i個分量的取值范圍,i∈[1,N],N為和聲的維數(shù);rand()為[0,1]區(qū)間內(nèi)均勻分布的隨機數(shù);bw為音調(diào)微調(diào)帶寬。
由上可知,HS的核心在于即興創(chuàng)作過程,如何根據(jù)具體問題設計新和聲的生成策略顯得尤為關(guān)鍵。為有效求解機組組合問題,本文采用二進制編碼方式,以0和1變量表示機組的開停機狀態(tài),改進了原有算法的即興創(chuàng)作過程,下面進行詳細介紹。
HS是基于鄰域搜索的,音調(diào)微調(diào)是其進行局部搜索的關(guān)鍵,但音調(diào)微調(diào)只能用于求解連續(xù)型優(yōu)化問題,對離散型優(yōu)化問題并不適用。受群體智能(Swarm Intelligence,SI)的啟發(fā),Omran和Mahamed[15]提出了一種全局最優(yōu)和聲算法(GHS),在音調(diào)微調(diào)時將全局最優(yōu)和聲的某一分量賦值給新的和聲,即
本質(zhì)上,HS是一種隨機搜索算法,新和聲的每一分量要么從和聲庫中搜索,并進行微調(diào),要么直接隨機選擇。由于缺乏先驗知識的指導,即興創(chuàng)作盲目性較大,和聲庫的更新沒有方向性,因此算法的收斂速度緩慢,所需的迭代次數(shù)較多。而粒子群算法中,粒子可根據(jù)歷史經(jīng)驗與信息共享機制,同時利用個體極值和全局極值來調(diào)整自己的位置,具有較快的收斂速度。
據(jù)此,本文在ABHS的基礎上,融合粒子群算法與和聲算法,提出了一種二進制和聲粒子群算法(BHSPSO)。算法引入粒子群算法的速度和位置更新公式替代從和聲記憶庫中選擇的過程,并利用全局最優(yōu)和聲實現(xiàn)音調(diào)微調(diào)。與粒子群算法不同,BHSPSO每次迭代時需要對和聲庫進行排序,且新的和聲會替換掉較差和聲,每個和聲的位置并不固定,因此,算法對速度更新公式做了調(diào)整,去掉其中個體極值的部分,即
(13)
式中:w為慣性因子;cg為學習因子;gid為全局極值;vid為和聲i第d維變量的速度;k為迭代次數(shù);xid為和聲i第d維變量的取值,xid∈{0,1}。
二進制粒子群算法一般采用sigmoid函數(shù)計算粒子的位置,但這樣會缺少局部收斂和局部探測性,因此,和聲的位置更新公式采用劉建華[16]提出的概率映射函數(shù),即:
(14)
設機組臺數(shù)為N,調(diào)度時段為T,機組開停機狀態(tài)可用一個行數(shù)為N列數(shù)為T的二維矩陣表示,即
傳統(tǒng)的機組優(yōu)先順序是根據(jù)機組的平均滿負荷費用值μn由低到高排序得來的,它反映了機組滿負荷情況下的平均發(fā)電成本。然而當機組不在其額定功率附近運行時,按μn作為機組優(yōu)先順序指標顯得不夠經(jīng)濟。因此,本文采用比重πn作為機組優(yōu)先順序的指標[17],同時考慮機組最大出力與平均滿負荷費用值的影響,πn越大,機組優(yōu)先順序越高,越優(yōu)先開機;πn越小,機組優(yōu)先順序越低,越優(yōu)先停機,見式(18)。
式中:μn為平均滿負荷費用值;πn為比重;σ1,σ2為比重系數(shù)。
對于隨機初始化的和聲與產(chǎn)生的新和聲,首先要進行旋轉(zhuǎn)備用約束處理,即按照機組優(yōu)先順序依次將停機機組開機,直到滿足約束為止。具體流程如下。
Step 1:令t= 1。
Step 2:判斷t時段是否滿足旋轉(zhuǎn)備用約束。若滿足轉(zhuǎn)至Step 5,否則轉(zhuǎn)至Step 3。
Step 3:將t時段所有未開機的機組按照優(yōu)先順序從高到低存入List集合中。
Step 4:移除List中第1個機組,使其開機,判斷此時是否滿足旋轉(zhuǎn)備用約束。若滿足,轉(zhuǎn)至Step 5,否則重復此步驟。
Step 5:若t 旋轉(zhuǎn)備用約束修復完成之后,緊接著要進行最小開停機時間約束的處理。本文設計了一種“開-停-開”的修復策略,在保證旋轉(zhuǎn)備用約束不被破壞的前提下,使機組組合滿足最小開停機時間的要求。 (1)第一步,只允許開機,步驟如下。 Step 1:按照式(19)計算機組開停機持續(xù)時間。 Step 2:令t=1。 Step 3:令n=1。 Step 7:若n Step 8:重新計算所有機組的開停機持續(xù)時間。 Step 9:若t (2)第二步,只允許停機,在滿足旋轉(zhuǎn)備用約束的前提下去除冗余機組,步驟如下。 Step 1:令t=1。 Step 2:將t時段所有開機機組按照優(yōu)先順序從低到高存入List集合中。 Step 4:若List為空,轉(zhuǎn)至Step 5,否則轉(zhuǎn)至Step 3。 Step 5:重新計算所有機組的開停機持續(xù)時間。 Step 6:若t (3)第三步,只允許開機,確保最小開停機約束滿足要求,步驟同第一步。 最小開停機時間約束修復過程如圖1所示。 注:數(shù)字下加橫線的代表修改了原來的狀態(tài)(與上一行相比) 圖1最小開停機時間約束修復示意圖 至此,旋轉(zhuǎn)備用約束與最小開停機時間約束全部修復完成,即可確定所有機組在每個時段的啟停狀態(tài),進行經(jīng)濟負荷分配。本文采用λ迭代法計算,詳細步驟可參考文獻[18]。 綜上,BHSPSO應用于機組組合問題的具體流程如下。 Step 1:初始化和聲庫,即隨機產(chǎn)生HMS個和聲的速度和位置。 Step 2:采用啟發(fā)式調(diào)整策略修復和聲,進行經(jīng)濟負荷分配,求得每個和聲的總發(fā)電費用,并保存最優(yōu)和聲。 Step 3:開始產(chǎn)生新的和聲,令n=1。 Step 4:對新和聲的每一分量,隨機選擇和聲庫中的某一和聲作為母體,利用式(13)計算其速度,若rand() < HMCR,根據(jù)式(14)—式(16)計算其位置,并以PAR的概率按照式(12)進行微調(diào);否則隨機選擇0或者1作為位置。保存速度和位置,產(chǎn)生一個新的和聲。 Step 5:判斷n是否小于NGC,若是則n=n+1,返回Step 4繼續(xù)生成新的和聲;否則轉(zhuǎn)到Step 6。 Step 6:對新生成的NGC個和聲進行修復,并計算其總發(fā)電費用。 Step 7:將和聲庫中與新產(chǎn)生的共(HMS+NGC)個和聲按照總發(fā)電費用由低到高排序,取前HMS個和聲作為新的和聲庫,并更新最優(yōu)和聲。 Step 8:判斷迭代次數(shù)是否滿足,若是則輸出最優(yōu)和聲;否則返回Step 3,繼續(xù)迭代。 算法流程如圖2所示。 圖2BHSPSO算法流程 為驗證本文所提算法的有效性,分別對10機、20機、40機、60機、80機、100機系統(tǒng)進行24時段仿真計算,其中10機系統(tǒng)的機組特性數(shù)據(jù)和負荷數(shù)據(jù)參見文獻[9],其余系統(tǒng)數(shù)據(jù)均由10機系統(tǒng)復制而來。旋轉(zhuǎn)備用容量取10%的時段負荷。計算時未考慮爬坡約束。 算法參數(shù)設置:HMS=30,NGC=20,NI=500,HMCR=0.95,微調(diào)概率隨迭代次數(shù)的增加呈線性增長[19],PARmax=0.5,PARmin=0.01。 采用Java編程,程序及詳細計算結(jié)果見Github(https://github.com/gaoxinwen/unit_commitment)。計算機CPU型號為 Intel(R) Core(TM) i7-6700HQ @ 2.60 GHz,內(nèi)存為8 GB。 本文分別對10機至100機系統(tǒng)標準算例進行20次獨立計算,統(tǒng)計出每種情況下的最優(yōu)解、最差解、平均值與標準差,列于表1。另外,選擇了與QBPSO[20],IQEA-UC[21],GSA[9]3種算法進行對比分析。 由表1可知,當機組臺數(shù)較少時,4種方法計算結(jié)果相差不大,GSA稍優(yōu)于其他3種算法。但當機組臺數(shù)達到60臺及其以上時,BHSPSO無論是最優(yōu)解還是平均值都優(yōu)于其他3種算法。100機系統(tǒng)時BHSPSO求得的平均值只有5 600 543美元,顯著降低了總的發(fā)電成本。10機和20機系統(tǒng)情況下每次計算結(jié)果相同,分別為563 938美元和1 123 298美元;當機組數(shù)目增多時,BHSPSO的標準差也低于QBPSO,表明該算法具有很強的魯棒性。 圖3為BHSPSO的收斂曲線,可見其收斂速度很快,特別是10機組情況下10代左右就可快速收斂至最優(yōu)解。另外,將自適應二進制和聲搜索算法(ABHS)應用于100機系統(tǒng),圖4為ABHS與BHSPSO的收斂曲線。由圖4可知,ABHS計算出的總發(fā)電成本較高,收斂速度緩慢;而BHSPSO優(yōu)化效果較好,且收斂速度快,100代左右即可收斂。由此可見,BHSPSO有較強的全局搜索能力和較快的收斂速度。 表1 4種算法的計算結(jié)果比較Table 1 Comparison of computation result among four methods 圖3 不同機組臺數(shù)下BHSPSO的收斂曲線Fig.3 Convergence curves of BHSPSO in the presence of different unit numbers 圖4ABHS與BHSPSO的收斂曲線(100機) 圖5為不同機組臺數(shù)下的計算耗時。從圖5中可以看出,隨著機組臺數(shù)的增多、系統(tǒng)規(guī)模的擴大,BHSPSO計算耗時呈線性增長,避免了“維數(shù)災”的產(chǎn)生。 圖5不同機組臺數(shù)下BHSPSO的計算耗時 針對含有復雜時段關(guān)聯(lián)約束條件的電站機組組合問題,本文提出了一種二進制和聲粒子群算法(BHSPSO)。該算法首先根據(jù)粒子群算法的速度和位置更新公式改進和聲記憶庫的選擇策略,充分利用群體全局信息指導搜索;然后采用基于機組優(yōu)先順序的啟發(fā)式修復策略進行約束處理,有效提高了算法的收斂速度與求解質(zhì)量。通過對10機至100機系統(tǒng)的仿真測試,結(jié)果表明該算法收斂速度快,魯棒性強,求解效果好,能夠避免“維數(shù)災”的產(chǎn)生,為水火電站經(jīng)濟運行提供了新的思路與求解途徑。4.4 最小開停機時間修復
Fig.1Schematicdiagramofrepairingtheconstraintsofminimumpower-ontimeandpower-offtime4.5 算法流程
Fig.2FlowchartofBHSPSO5 算例分析
Fig.4ConvergencecurvesofABHSandBHSPSOfor100unitssystem
Fig.5ExecutiontimeofBHSPSOinthepresenceofdifferentunitnumbers6 結(jié) 語