趙 睿,劉 勇,張仁貢
(1.山東省陽谷縣水利局,山東 聊城 252326;2.山東弘潤建設集團有限公司,山東 聊城 252000;3.浙江禹貢信息科技有限公司,浙江 杭州 310009)
遺傳算法(Genetic Algorihm,簡稱GA 算法)是一種目前比較成熟的優化算法[1],它可以從多點出發同時在整個約束空間上作快速搜索。但是它也有明顯的缺陷:①采用二進制編碼,當計算變量較多且取值范圍較大時,編碼長度也將過長,大大降低算法效率。②遺傳算法是整個約束空間上的搜索算法,追求全局最優解,會出現收斂脹滯或收斂速度很低。但很多工程性的優化問題,獲取局部最優解就能滿足條件,從而提高收斂速度是根本。為此筆者經過研究,提出了一種對變量進行實數染色體編碼,并對傳統遺傳算法的收斂值函數進行改造的改進型遺傳算法,即螺旋梯度法向逼近遺傳算法(Spiral Gradient Normal Approximation Genetic Algorithm,簡稱SGNA-GA)。
傳統的遺傳算法是在適應值函數上加概率函數進行全局搜索,但針對水電站機組負荷優化調度的工程性應用,獲取局部最優解即可滿足條件[2]。為此,需要在適應值函數上加螺旋函數,再采用高斯分布隨機矢量的梯度法向逼近,構造一個螺旋梯度法向逼近函數,具體方法如下:
先構造螺旋函數g(X),對求最小值的優化問題:
min?(X)X=[x1,x2,…xn]
在發生第t次求解迭代時,在Xt處將有λ個隨機分布高斯矢量[3],表示為Zi(i=1,…,λ),矢量的標準方差為σt/n0.5,服從均值為0,從而該矢量在螺旋函數g(X)的點Xt上具有垂直于切線方向即“法向”的特性,且點Xt具有螺旋時間周期性,簡稱螺旋周期。
現在令Ti=Xt+Zi,可定義函數G(Xt):

此處,稱g(Xt)為函數f(X)在點Xt的螺旋周期法向逼近函數。
令s為SGNA-GA的二維個體編碼,s=[X,g(X)],其中X為實際變量值,g(X)為螺旋函數。X采用實際變量值而不是二進制,可以節約計算存儲容量和提升計算速度;針對水電站而言,X可取在t時刻每臺機組的輸出功率Pit,(i=1,2,…n)[4-5]。g(X)為螺旋函數,記錄和加強了父代個體進化到當前個體的變化方向,該方向正是優化求解的收斂梯度法向方向。
SGNA-GA 雜交在個體編碼參數段上進行,即從第t 代群體的匹配集中已選擇好待雜交的兩個父代個體分別為:svt=<v1,v2,…,vn>和swt=<w1,w2, …,wn>,則子代個體的參數由父代個體的參數加權和產生,即:

式中α為動態因子[6],取值范圍在0~1 之間。父代的樣本群體m可以生成2m的后代樣本個體,然后采用SGNA-GA 算法進行選擇并依據計算策略優先排序,再取排在最先的m個個體作為新的樣本群體,這種優先排序選擇法可以加快收斂速度且有效避免群體早熟。
SGNA-GA 變異是通過一種自構造函數實現的變異運算。

式中Xt是第t個待優化的個體參數;g(Xt)是點Xt在螺旋法向逼近時的適應值函數;ζ為權系數(1.0~2.0);α為動態因子(0~1);sit+1是sit個體變異后的新個體。
收斂值是判斷算法是否收斂的關鍵值[7-9],收斂值由收斂值函數決定,在SGNA-GA 中目標變量在其定義域內,采用懲罰函數方式的目標函數為:

式中,n為機組臺數,Q為總流量,WF(t,A)為t時段A組合下的發電用水量,WZt為機組運行狀態從t-1 時刻到t時刻的耗水量總和,σ為懲罰因子,C(t)為懲罰函數,P(t)為t時刻的總出力,Pi(t)為第i臺機組的出力。在SGNA-GA 進化計算過程中,如何選取懲罰函數非常關鍵,它的大小直接決定了算法的收斂性能,一般懲罰因子σ可以取為σ=1/Tt,Tt+1=αTt。當T減少時,σ將增大,以保證約束條件得到滿足,為此可以構造收斂值函數:

其中Qmax,Qmin為目標函數的最大值和最小值;K為自定義參數(取0.0~0.1)。
收斂準則可以采用:

式中ε為收斂設定閾值,x為迭代次數[10],F(x)為x次時的適應值,F(x+1)為迭代x+1 次時的適應值。
SGNA-GA算法的計算機計算程序求解流程[12-13]如圖1 所示。

圖1 計算機求解程序框圖
本文的研究參照了母親河黃河流域劉家峽水電站實例進行,該水電站為混流式水電站,共有5 臺機組,其中1 號與3 號發電機組為一致品牌和廠家,裝機容量為260 MW,2 號與4 號發電機組為一致品牌和廠家,裝機容量為255 MW,5 號發電機組為另外品牌和廠家,裝機容量為320 MW??紤]水電站的開機停機耗用水量、振動區域、汽蝕區域、日負荷計劃、最大功率限制等,結合時間和空間優化數學模型[14]。根據水電站最小耗用水量優化準則,一天日負荷計劃分為m時段時的數學模型:

式中,n表示發電機組的臺數,Pi(t)為第i臺發電機組的輸出功率,Hdi(t)表示在t時刻第i臺機組的機組段水頭,f(Hdi(t),Pi(t))表示在t時刻在機組段水頭Hdi(t)下的第i臺機組的耗水流量,W(i)表示在t時刻第i號機組的開停機耗水流量,Woni為開機時第i臺發電機組的耗用水流量,Woffi為停機時第i臺發電機組的耗用水流量,Wzi為開機和停機時第i臺機組的設備耗用水流量總和;v表示檢修機組,Wsi為檢修計劃改變時所引起的耗用水流量;P為電力系統某一天所給定的總負荷;Ps(t)為瞬時負荷(t時刻),Ph(t)為日計劃負荷(t時刻),Hdi1[Pmin1,Pmax1]為在機組段水頭Hdi1下第i號第1 個發電機組的汽蝕或振動區域出力上下限,Pmini為第i號發電機組的最小輸出功率,Pmaxi為第i號發電機組的最大輸出功率[15]。
該日的動態不確定因素有:①第2~8 時段4 號機組在檢修狀態;②5 號機組20~100 MW 時為汽蝕或振動區域;③日負荷的計劃特性有突變發生,如圖2 所示。第6~8 時段計劃負荷為50 萬kW,分別突變為70 萬kW、90 萬kW 和80 萬kW;第14~15 時段,負荷計劃由85 萬kW 突變為90 萬kW 和95 萬kW。

圖2 水電站日負荷圖
按照式(10)計算動態不確定因素,由該水電站的動力特性分析可知,Hd1(t)=Hd2(t)=Hd3(t)=Hd4(t)=Hd5(t)=93.5 m,t=8,m=24,n=5,v=4,T=1,R5=[0,100],0≤P1(t)≤260,0≤P2(t)≤255,0≤P3(t)≤260,0≤P4(t)≤255,0≤P5(t)≤320,Won1=37.0 m3/s,Won2=36.6 m3/s,Won3=49.4 m3/s,Won4=36.4 m3/s,Won5=43.6 m3/s,Woff1=37.5 m3/s,Woff2=36.0 m3/s,Woff3=48.6 m3/s,Woff4=37.0 m3/s,Woff5=36.0 m3/s,查詢開機和停機設備耗用水量總和曲線,Ws1=3.21 m3/s,Ws2=3.62 m3/s,Ws3=2.93 m3/s,Ws4=3.21 m3/s,Ws5=4.22 m3/s,建立不確定動態優化調度模型。
目標函數:

開停機耗水:

檢修瞬變計劃:

日瞬變負荷:

振動或汽蝕區域:

各臺發電機組輸出功率限制:

采用SGNA-GA 算法對其進行最優分配,經過軟件調試,取m=40,ζ=1.82,α=0.6,k=0.05,ε=0.001,編碼精度保留一位小數,分配結果如表1 所示。
當水電站機組具有振動或汽蝕率定區域時,可以采用SGNA-GA 算法將懲罰函數中增加一個懲罰因子,增加樣本在振動或汽蝕率定區域時的淘汰率[17],從而在樣本替代選種過程中淘汰振動或汽蝕率定區域內的樣本,避開汽蝕或振動區域。
從表1 可知,采用SGNA-GA 算法進行計算,日耗用水量計算結果為27515.13×3600 m3,而當日實際耗用水量計算結果為28115.04×3600 m3,效益γ=×100%,通過計算可得γ=2.168%。同理計算2020 年6 月整個月的數據,效益大致在2.0%左右,如圖3 所示。

表1 水電站2020 年6 月12 日SGNA-GA 算法最優分配表

圖3 該月水電站優化效益圖
SGNA-GA 算法能同時在空間上和時間上進行優化計算,在實際運行中,SGNA-GA 算法雖然比其他算法具有占內存少、實時性好,編程簡便等特點[18-20],但是在實踐應用過程中要注意以下問題:
(1)懲罰因子σ選擇要恰當
由懲罰函數C(t)的計算公式可以看出σ的選取對F(Q)值是有影響的,即不同的σ選取方法能影響SGNA-GA 算法的收斂速度[21-23]。由公式可以看出,懲罰因子σ是懲罰假設的運行負荷與給定負荷的偏離程度,如果懲罰因子σ選取過小時,會導致約束條件不滿足P=5∑i=1Pi。因此如何合理地選取罰因子σ變得相當重要。①當Pi大于第i臺發電機組在最大出力限制負荷或振動區域限制負荷時,則σ選4 100~5 900;②當該發電機組的Pi在最優效率區外 時,σ可 選 取410~620;③正 常 情 況 下 選 取σ=150~220,可以獲得比較滿意結果。
(2)處理早熟問題
SGNA-GA 算法的隨機收斂特性會帶來個體的早熟問題[24-25]。即個體沒達到最優時就計算結果收斂。我們可以采用以下策略:①在迭代次數x小于1 500 次的時候就出現了收斂情況,則繼續進行SGNA-GA 運算,使得計算次數大于1 500 次;②對于迭代次數x 大于1 500 次出現早熟現象,則可以插入一批干擾個體,直到下次收斂為止[26-28]。當總負荷1 100 MW,水頭95.30 m時,收斂圖如圖4所示,縱坐標是βmin/106。

圖4 水電站1100 MW 時的SGNA-GA 算法收斂圖
(3)合理選取各種參數
m,ζ,α,k,ε選取對實時性、收斂速度及最優解都有一定的影響。因此合理地選取m,ζ,α,k,ε的值也是很重要的。當母體的數目m過小時,可能導致最優解的不穩定性,而當m過大時,則運算速度變慢,可能實時性的要求達不到[29]。權系數ζ和動態因子α的選擇對算法雜交具有較大的影響,大小不合理會出現早熟或收斂速度過緩,甚至出現不穩定現象[30-31]。經過反復參數選取調試,設置參數m=42,k=0.48,ζ=1.83,α=0.58,ε=0.001 時,取得比較滿意的計算結果。
本研究提出一種基于螺旋梯度法向逼近改進型遺傳算法,在實踐中比較應用可以得出如下結論:
(1)采用SGNA-GA 算法對水電站不確定模型求解,可以做到在時間上和空間上進行優化計算,工程實踐表明是可行的。
(2)SGNA-GA 算法與傳統遺傳算法相比,具有收斂速度較快、占內存少、實時性好,編程簡單等優點。
(3)由于SGNA-GA 算法可能引起早熟問題或收斂速度慢問題,合理選取各種參數非常關鍵,這需要長期的測試和調節。