晉 健, 劉 育, 王 勇 飛, 李 基 棟
(1. 國能大渡河大數(shù)據(jù)服務(wù)有限公司,四川 成都 610041;2. 國能大渡河流域水電開發(fā)有限公司,四川 成都 610041;3. 四川農(nóng)業(yè)大學(xué) 水利水電學(xué)院 ,四川 雅安 625014)
梯級水庫的聯(lián)合優(yōu)化調(diào)度對保障梯級水電系統(tǒng)安全穩(wěn)定運行、提高梯級整體效益、確保水能資源的充分利用等意義重大[1]。在梯級聯(lián)合優(yōu)化調(diào)度問題的研究中,以日為時間尺度的優(yōu)化調(diào)度方式?jīng)Q定了中長期調(diào)度戰(zhàn)略在每一日的具體執(zhí)行方式,對于梯級水電站綜合效益的發(fā)揮十分關(guān)鍵。在確定梯級電站的日內(nèi)運行方式中,建立面向各種復(fù)雜因素的日內(nèi)短期優(yōu)化調(diào)度模型,再應(yīng)用各類優(yōu)化算法進(jìn)行模型求解成為了研究的常規(guī)手段。雖然眾多專家學(xué)者對短期優(yōu)化調(diào)度問題展開了大量研究,但是模型求解中仍存在計算效率與優(yōu)化計算效果無法兼顧的問題[2]。
梯級水電系統(tǒng)優(yōu)化調(diào)度模型是一個典型的高維、非線性的優(yōu)化問題,模型求解十分復(fù)雜。此外,由于水流流達(dá)時間的存在,短期優(yōu)化調(diào)度問題涉及到日內(nèi)梯級站間的跨時段水量平衡以及跨日的水量耦合問題[3],因此短期優(yōu)化調(diào)度模型的求解更具復(fù)雜性[4]。目前常規(guī)的用于短期優(yōu)化調(diào)度模型的計算方法分為兩大類:一類是以傳統(tǒng)動態(tài)規(guī)劃為基礎(chǔ)的逐步優(yōu)化算法、逐次逼近動態(tài)規(guī)劃和離散微分動態(tài)規(guī)劃等,這類計算方法普遍收斂速度較慢,且優(yōu)化計算效果對初始可行解的依賴性較大,普遍計算時間較長[5]。另一類是以遺傳算法、粒子群算法、差分進(jìn)化等為代表的智能型算法,這類方法通常具有求解速度快、效率高的優(yōu)勢,但其計算過程容易陷入局部最優(yōu)解,或多次計算結(jié)果不一致[6]。盡管目前針對各類方法的改進(jìn)與應(yīng)用研究較多,各類計算方法在其理論與應(yīng)用方面都具有各自的特點與局限性,但在實際的工程應(yīng)用中通常具有一定的限制。
蜻蜓算法(DA)是近年提出的仿生學(xué)智能型算法[7],該研究系統(tǒng)梳理了蜻蜓智能優(yōu)化算法的計算原理與方法,通過增加局部審查判定、初始種群個體進(jìn)化等適應(yīng)性調(diào)整,探索蜻蜓算法在梯級水電短期優(yōu)化調(diào)度中的應(yīng)用,以期豐富水電優(yōu)化調(diào)度方法學(xué),為優(yōu)化調(diào)度計算提供更多的方案。
根據(jù)水能計算原理,追求梯級整體發(fā)電量最大目標(biāo)函數(shù)可以表示為(1):
(1)
式中Qfi,t為電站i在時段t的發(fā)電流量(m3/s);Mt為時段t的長度(s);T為調(diào)度期內(nèi)計算總時段個數(shù);N為梯級電站總數(shù);WRi,h為第i個電站水位為h時的平均耗水率(m3/kWh),該值是一個基于電站歷史運行狀況率定得到的統(tǒng)計值。
(1)考慮滯時的水量平衡約束。
Qi,t=qi,t+Qi-1,t-γ+(Gi,t-1-Gi,t)/Δt
(2)
式中Gi,t-1、Gi,t分別代表電站i在t時段初、末蓄水量(m3);qi,t、γ分別表示電站i與電站i-1的t時段區(qū)間匯流量和水流滯時;Qi-1,t-γ表示上游電站i-1在t-γ時段的下泄流量。
(2)電站出力限制。
Pi,tmin≤Pi,t≤Pi,tmax
(3)
式中Pi,t max、Pi,t min分別表示電站i的出力上下限制。
(3)水庫蓄水量約束。
Gi,tmin≤Gi,t≤Gi,tmax
(4)
式中Gi,t min、Gi,t max分別表示電站i的蓄水量大小限制。
(4)電站出力綜合爬坡約束。
ΔPi,t≤CPi
(5)
式中CPi為電站i的出力爬坡率限制;ΔPi,t為電站在時段t的出力變化幅度。
(5)變量非負(fù)約束。
上述所有變量均為非負(fù)變量。
蜻蜓算法尋優(yōu)計算主要思路通過模擬蜻蜓的捕食行為來實現(xiàn)(圖1),該飛行(進(jìn)化)尋優(yōu)機(jī)制可以表示為蜻蜓群體分離、對齊、聚集、食物吸引與天敵驅(qū)散五個步驟[8]。
圖1 蜻蜓算法尋優(yōu)計算主要思路
(1)分 離。表示避免蜻蜓個體距離太近降低尋優(yōu)效率:
(6)
式中Ek為蜻蜓k的分離度;D表示當(dāng)前蜻蜓的位置;Dj代表第j個鄰近蜻蜓的位置;J代表群體中第k個蜻蜓的鄰近蜻蜓的數(shù)量。
(2)對 齊。表示某個蜻蜓與其鄰近蜻蜓個體速度的相同程度:
(7)
式中Uk為蜻蜓k的對齊度;Vj代表第j個鄰近蜻蜓的飛行速度;其他符號意義同前。
(3)聚 集。表示某個蜻蜓具有朝著其附近較優(yōu)蜻蜓個體靠近的趨勢:
(8)
式中Bk為蜻蜓k的聚集度;其他符號意義同前。
(4)食物吸引。食物是指某一次迭代計算中最優(yōu)個體的位置:
Sk=D+-D
(9)
式中Sk為蜻蜓k的食物吸引度;D+代表當(dāng)前計算中最優(yōu)蜻蜓的位置。
(5)天敵驅(qū)散。目的是使個體盡可能遠(yuǎn)離最差的蜻蜓個體,提高尋優(yōu)計算效率:
Tk=D-+D
(10)
式中Tk為蜻蜓k的天敵驅(qū)散度;D-代表當(dāng)前計算中最差蜻蜓的位置。
蜻蜓個體k飛行位置更新步長:
ΔDk+1=(eEi+uUi+bBi+sSi+tTi)+βDk
(11)
蜻蜓飛行位置更新:
Dl+1=Dl+ΔDl+1
(12)
式中e、u、b、s、t分別表示分離度、對齊度、聚集度、食物吸引度、天敵驅(qū)散度的影響系數(shù);β代表慣性系數(shù);l代表反復(fù)迭代計數(shù)下標(biāo);其他符號意義同前。
該研究對蜻蜓算法的尋優(yōu)求解機(jī)制進(jìn)行如下調(diào)整。
(1)引入初始種群個體優(yōu)化機(jī)制。對初始種群中隨機(jī)選擇的某個蜻蜓個體,通過初步尋優(yōu)計算得到一個可行解,優(yōu)化后得到新個體替換原有蜻蜓個體,可以保證初始種群中至少有一個可行解。
(2)增加局部合理性判定機(jī)制。在蜻蜓算法中加入了合理性審查算子,該算子通過遍歷單個蜻蜓的計算維度,保留飛行后合理的局部,剔除飛行后發(fā)生不合理的局部位置,以提高算法的尋優(yōu)計算效率。
適應(yīng)性調(diào)整后的蜻蜓算法的計算流程包括12個步驟。
Step1:初始化計算參數(shù),考慮梯級電站短期優(yōu)化調(diào)度模型求解規(guī)模設(shè)定蜻蜓算法種群個數(shù)N=40,迭代計算次數(shù)MAXiter=200。
Step2:以梯級電站水庫運行水位為決策變量,依據(jù)水位運行區(qū)域上下限ZMAX(i,t),ZMIN(i,t),采用Xr= ZMIN(i,t)+e×(ZMAX(i,t)-ZMIN(i,t))生成初始種群,其中e為0到1之間的隨機(jī)數(shù)。
Step3:隨機(jī)選擇一個初始蜻蜓個體,采用POA算法,基于單站優(yōu)化原則,對選定蜻蜓個體進(jìn)行尋優(yōu)計算,確保初始種群中至少有一個蜻蜓個體為可行解。并令迭代次數(shù)iter=1,蜻蜓維度r=0。
Step4:判斷蜻蜓個體Xk是否存在鄰居。如果有鄰居,進(jìn)入Step5,否則進(jìn)入Step6。
Step5:依據(jù)式(6)-(10)進(jìn)行群體進(jìn)化計算:分離度Sr、對齊度Ar、聚集度Cr、食物吸引度Fr、天敵驅(qū)散度Er。依據(jù)式(11)計算蜻蜓個體位置更新步長,進(jìn)入Step7。
Step6:該蜻蜓沒有鄰居,采用Xr=e×(ZMAX(i,t)-ZMIN(i,t))進(jìn)行蜻蜓個體隨機(jī)飛行,進(jìn)入Step7。
Step8:使蜻蜓個體計算維度加1,即r=r+1。判斷是否完成蜻蜓個體全部維度的更新,如果完成全部維度的更新r=rmax,則進(jìn)入Step9,否則進(jìn)入Step5循環(huán)計算。
Step9:對蜻蜓個體Xk進(jìn)行位置更新,Xt+1=Xt+ΔXt+1。
Step10:令k=k+1,進(jìn)入新一個蜻蜓個體的優(yōu)化計算,如果k>=N,則全部蜻蜓個體位置更新計算結(jié)束,進(jìn)入Step11。若k Step11:當(dāng)前迭代次數(shù)中,找出最優(yōu)蜻蜓個體,與食物位置相比較,根據(jù)是否優(yōu)于食物位置目標(biāo)函數(shù)值,更新食物位置,令iter=iter+1。若iter>=MAXiter,則進(jìn)入Step12,否則進(jìn)入Step4。 Step12:返回當(dāng)前循環(huán)迭代中食物位置作為最優(yōu)計算結(jié)果,計算結(jié)束。 該研究選擇了大渡河流域電站瀑布溝、深溪溝、枕頭壩一級梯級三站為實例,其中瀑布溝水電站為季調(diào)節(jié)水庫,深溪溝、枕頭壩一級電站均具有日調(diào)節(jié)能力,各電站相關(guān)參數(shù)見表1[9]。 表1 大渡河下游梯級各電站主要參數(shù) 筆者選擇汛期典型日進(jìn)行計算求解,計算時段為15 min,設(shè)定該日三站初、末水位分別為845 m、656 m、620 m。根據(jù)流域內(nèi)徑流預(yù)測結(jié)果,結(jié)合上游大崗山水庫的調(diào)蓄過程,該日瀑布溝水庫預(yù)測入庫流量過程、瀑-深、深-枕區(qū)間流量過程見圖2。區(qū)間內(nèi)的水流滯時分別按45 min與15 min考慮。瀑布溝前一日最后三個時段下泄流量分別為2 017.5 m3/s、2 070 m3/s、2 027.5 m3/s,深溪溝前一日最后一個時段下泄流量為1 850 m3/s。 圖2 流量過程圖 鑒于蜻蜓算法計算結(jié)果的不確定性,筆者選擇對連續(xù)計算10次的最優(yōu)值進(jìn)行分析,并將蜻蜓算法計算結(jié)果與傳統(tǒng)POA計算結(jié)果相比較(表2),蜻蜓算法計算的梯級電站發(fā)電運行過程見圖3。 表2 計算結(jié)果 (a)瀑布溝水電站運行過程 蜻蜓算法計算的梯級總發(fā)電量比POA算法計算得到的發(fā)電量略有降低,但計算時間大幅度減少。此外,梯級各電站運行過程滿足電站運行爬坡率、下泄流量限制等各種約束,水庫水位過程滿足優(yōu)化運行的一般調(diào)度規(guī)律。 筆者探索了新型蜻蜓智能算法在梯級水電站短期聯(lián)合優(yōu)化調(diào)度總的應(yīng)用問題,蜻蜓算法通過模擬蜻蜓種群的“尋找食物”與“避害”等行為,在解集空間尋找優(yōu)化解。但傳統(tǒng)的蜻蜓算法注重蜻蜓個體的整體尋優(yōu),導(dǎo)致優(yōu)化求解效率較低,甚至引起無法收斂的問題,通過對在求解計算中添加初始種群優(yōu)化與局部合理性判定可以提高算法的求解效率。以大渡河流域梯級電站為實例計算驗證,其結(jié)果表明:該計算結(jié)果效果略次于傳統(tǒng)POA算法效果,但計算效率有很大提高,有效避免了“維數(shù)災(zāi)”問題,可以作為求解復(fù)雜梯級水電短期優(yōu)化調(diào)度問題的方法之一。5 實例計算
6 結(jié) 語