李承龍,楊 侃,蔡玉棽,薛 晴,陳 靜,楊晶晶
(1.河海大學 水文水資源學院,江蘇 南京 210098; 2.宜興市水利農機局,江蘇 宜興 214207)
忻州-陽泉地區位于我國嚴重缺水的山西省,水資源供需矛盾十分突出,如何將該地區緊缺的水資源進行合理高效調配是一個亟待解決的問題[1]。 忻州-陽泉地區作為山西大水網規劃的第二橫區域,對整個山西省水網的連通有至關重要的作用。 目前對于忻州-陽泉地區的研究較少,對該區域進行水資源優化調配研究有重要的現實意義。
目前,水資源優化調配模型的求解多采用遺傳算法[2]、模擬退火算法[3]、蟻群算法[4]、煙花算法[5]等智能優化算法,但以上算法存在參數過多導致求解過程過于煩瑣、易早熟、局部尋優能力差等問題[6]。 而粒子群算法具有抗干擾性好、參數少、容易實現等特點,在圖像處理、模式識別、大地測量等方面得到了廣泛應用。 筆者對粒子群算法慣性權重系數和適應度函數進行了改進,使其更加適用于以區域供水、發電和生態為目標建立的水資源優化調配模型的求解。 本文以忻州-陽泉地區為研究對象,建立多目標水資源優化調配模型,并使用改進的粒子群算法求解,以期為研究區水資源優化調配提供參考。
(1)供水目標:區域年供水量最大。 表達式為
式中:G為區域年供水量;Gj,t為j單元在t時段的供水量;J為供水單元數;T為時段數。
(2)生態目標:水庫下游河道生態流量滿足程度最大。 表達式為

式中:E為年內下游河道生態流量之和;ei,t為i斷面t時段的適宜生態流量;qi,t為i斷面t時段的生態流量;I為生態流量監測斷面數。
(3)發電目標:年發電出力最大。 表達式為

式中:N為水庫群年出力;Ak為第k個水庫的出力系數;Qk,t為第k個水庫t時段的發電流量;Hk,t為第k個水庫t時段的發電水頭;K為水庫數量。
(1)水量平衡約束:

式中:Vk,t、Ik,t、qk,t、Ok,t分別為第k個水庫在t時段的蓄水量、上游來水流量、區間來水流量、出庫流量;Vk,t-1為第k個水庫在t -1 時段的蓄水量;Δt為時段差;Wk,t為第k個水庫在t時段的供水量。
(2)水庫水位約束:

式中:Zk,t為第k個水庫在t時段的水位;Zk,min和Zk,max分別為第k個水庫的最低水位(取死水位)和最高水位(非汛期取正常高水位、汛期取汛限水位)。
(3)下泄能力約束:

式中:q(k,t)為第k個水庫在t時段的下泄流量;qmin(k,t)和qmax(k,t)分別為第k個水庫在t時段的最小和最大下泄流量。
(4)出力約束:

式中:Nk為第k個水庫的出力;Nk,p和Nk,max分別為第k個水庫的保證出力和裝機容量。
(5)水庫蓄水量約束:

式中:Vk,t為第k個水庫t時段的蓄水量;Vk,min和Vk,max分別為第k個水庫的最小和最大蓄水量。
(6)供水限制約束:

式中:Xj,t和Gj,t分別為j單元在t時段的需水量和供水量。
粒子群算法是美國學者Eberhart 和Kennedy 在20世紀90年代通過觀察鳥群飛行覓食提出的仿生智能算法[7]。 其尋優思想:在一個多維的空間中生成鳥群,鳥群擁有空間位置屬性和移動速度屬性,同時鳥與鳥之間能夠相互交流并且有記憶能力,每一次飛行都能夠通過信息共享和記憶的最優位置來確定下一次飛行的位置。 在算法當中,鳥群(即算法中的粒子群)能夠通過記錄的自身最優解和群體最優解來迭代更新自己的位置,從而找到空間內的最優解。
在d維空間中,第n個粒子的位置、速度、個體最優值和群體最優值表達式分別為

式中:Xn為第n個粒子的位置;Xn,d為第n個粒子在d維的位置;Vn為第n個粒子的速度;Vn,d為第n個粒子在d維的速度;pn,d為第n個粒子的d維適應度值;gn為第n個粒子的個體最優值;gbest為群體最優值。
在粒子更新過程中,其在d維的位置、速度變化會限制在一定的空間內,即當粒子在d維內超出位置邊界或速度邊界時,該粒子的位置或速度將更新至該維的位置邊界或速度邊界。
在算法迭代過程中,第n個粒子在d維的速度更新公式為
第n個粒子在d維的位置更新公式為

式中:l為迭代次數;為時間步長,分別為第l次和l -1次迭代時第n個粒子在d維的速度;分別為第l次和l-1次迭代時第n個粒子在d維的位置;c1、c2為學習因子,分別調節個體最優值和群體最優值的最大步長,控制粒子在迭代過程中尋找最優位置的方向;r1、r2為在[0,1]區間的隨機數,表示搜索的隨機性;Ω為慣性權重,控制對解空間的搜索范圍,通常為定值或線性變化。
慣性權重為定值或線性變化時,易導致粒子過早陷入局部最優解。 為了解決該問題,筆者使用S 型遞減函數[8]代替傳統的定值和線性遞減函數計算慣性權重,這樣可使粒子在搜索前期以較快速度對全局進行搜尋而避免過早陷入局部最優解、全局搜索之后以較慢的局部搜索速度收斂至最優值。 改進的慣性權重計算公式為

式中:Ωmax和Ωmin分別為慣性權重的最大值和最小值,一般取Ωmax=0.9、Ωmin=0.4;lmax為粒子的最大迭代次數;α為控制系數,用于調節慣性權重變化速度的快慢,一般取10。
區域年總需水量XY、水庫下游河道年生態流量總和EY、各水庫按裝機容量運行的出力之和NY計算公式分別為

式中:Nk,t為第k個水庫t時段按裝機容量運行的出力。
為解決所構建的模型各個目標的計算結果數量級相差較大的問題,將供水目標、生態目標和發電目標相關指標數值進行歸一化處理,使其取值范圍均限制在[0,1]區間:

式中:F1、F2、F3分別為供水目標適應度、生態目標適應度、發電目標適應度。
構建的定權重目標比適應度計算公式為

式中:a、b、c分別為F1、F2、F3占適應度F的比例,取a =0.4、b =0.3、c =0.3。
在本研究中,筆者編碼了100 個維度為26 的粒子,每個粒子都由代表水位的向量X和代表水位變幅的向量V兩個參數構成,其中:X向量由26 個水位組成,前13 個水位為第一個水庫的,后13 個水位為第二個水庫的。 各粒子的X和V編碼為

經過多次嘗試和調整,式(14)中學習因子c1、c2均取2,式(16)中最大迭代次數lmax取300。
(1)根據模型實例需要,確定粒子群的規模、維度、范圍和速度區間等和粒子群相關的參數,以及結束迭代的條件。
(2)在步驟(1)確定的范圍內生成初代粒子群,其中的粒子都有起始速度和起始位置。
(3)根據目標函數值計算粒子群中各粒子的適應度,同時記錄各粒子的個體最優值gn、群體最優值gbest,并更新個體最優值對應的d維適應度值pn,d和群體最優值gbest。
(4)利用式(14)和式(15)更新下一代粒子的速度和位置。
(5)根據所設置的結束迭代條件判斷是否結束迭代,若已達到結束條件,則輸出結果;否則返回步驟(3),再次進行適應度計算及搜索。
粒子群算法流程見圖1。

圖1 粒子群算法流程
忻州-陽泉地區屬滹沱河流域,包括忻州市忻府區、定襄縣、原平市、代縣、繁峙縣、五臺縣以及陽泉市、晉中市昔陽縣。 選擇研究區的坪上水庫、龍華口水庫作為梯級水庫調度的研究對象。 坪上水庫位于滹沱河干流上,壩高109 m,壩頂長494 m,控制流域面積11996 km2,正常蓄水位678.0 m,總庫容3.11 億m3,是一座以防洪、供水、灌溉為主的大(2)型水庫;龍華口水庫位于陽泉市盂縣北部滹沱河支流龍華河上,大壩為碾壓混凝土重力壩,壩高66 m,正常蓄水位571.6 m,總庫容3001 萬m3,其中發電庫容2018 萬m3,是一座以發電、供水、灌溉為主的中型水庫。
為方便計算,根據河流水系和實際供水情況將研究區概化為定襄縣、盂縣、郊區、城區、礦區、平定縣6個受水區,上游來水先經過定襄縣受水區后進入坪上水庫、龍華口水庫,經過調度之后再向下游盂縣、郊區、城區、礦區、平定縣受水區供水,供水時考慮發電效益和河道生態保護。
鑒于預測周期較長,選擇定額法進行需水量預測。以2020年為現狀水平年,根據忻州-陽泉地區各產業和生態用水量,對規劃水平年2030年在豐水年、平水年、枯水年來水頻率下6 個受水區的需水量進行預測,結果見表1。

表1 忻州-陽泉地區2030年需水量預測結果 萬m3
由表1可以看出,定襄縣、郊區、礦區、平定縣4 個受水區農業用水量較大,原因是這4 個受水區農作物種植面積較大,產業多以農業為主。 農業用水量隨來水頻率的變化而變化,總體表現為枯水年>平水年>豐水年,原因是枯水年降水量小且蒸發量大,需從水庫向農業供給更多的水量。 生產、生活和河道外生態用水量受降水和天然來水的影響較小。 2030年,忻州-陽泉地區豐水年、平水年、枯水年總需水量分別為27974萬、35217 萬、36735 萬m3。
河道內生態需水量計算方法有很多種[4],本文選擇最為簡便的90%保證率最枯月平均流量法,計算兩個生態監測斷面的河道適宜生態流量,結果見表2。

表2 生態監測斷面的河道適宜生態流量計算結果 m3/s
分別使用傳統粒子群算法和改進粒子群算法,對忻州-陽泉地區水資源優化調配模型進行多次尋優迭代求解,結果見表3??梢钥闯觯涸?0次求解過程中,傳統粒子群算法在第1次、第3次、第4次、第5次、第8次求解時,在迭代60次以內就收斂到局部最優值;而改進的粒子群算法均在迭代100次左右找到最優解,且除了第4次求解陷入局部最優值0.819 外,最優解均分布在0.851 ~0.856 之間,說明改進的粒子群算法全局搜索能力更強,不易陷入局部最優解。

表3 尋優迭代次數和收斂值對比
從多次求解結果中選出最優調配方案的各目標優化調度結果,見表4??梢钥闯觯S水年受水區2030年總供水量為27974 萬m3,各地區的需水滿足率達100%;平水年定襄縣、礦區、平定縣出現不同程度缺水,原因是平水年降水減少導致需從水庫、河道供水的農業灌溉用水增加,同時上游來水減少,進而使得這3個農業灌溉需水量較大的受水區出現不同程度的缺水。 因此,農業需水量較高的區域會出現平水年缺水情況,需水滿足率相對較低,枯水年各區域需水滿足程度有差異也是同樣原因;枯水年需水量為36735 萬m3,而可供水量僅為24079 萬m3,缺水量為12656 萬m3,出現了較為嚴重的供水不足情況;需水量豐水年<平水年<枯水年。

表4 忻州-陽泉地區2030年豐水、平水、枯水年供、需水量對比
由表5、表6可知,研究區豐水年、平水年、枯水年發電量分別為25373 萬、22443 萬、20238 萬kW·h。除6月外豐水年因上游來水較多且供水能得到保障,水庫蓄水量充盈,發電水頭高和發電下泄流量充足,故生態流量基本可以滿足、發電目標基本可以實現。 平水年隨著受水區出現一定的缺水,存在一定程度的河道生態缺水和發電量降低的問題。 枯水年來水量最少,河道生態滿足率和發電量最低。

表5 忻州-陽泉地區2030年豐水、平水、枯水年生態流量優化調度結果

表6 忻州-陽泉地區2030年豐水、平水、枯水年發電量優化調度結果
(1)利用本文建立的多目標水資源優化調配模型,進行規劃水平年2030年忻州-陽泉地區水資源優化調配,得出研究區豐水年供水、發電、生態滿足率均最大,平水年次之,枯水年最小。 平水年定襄縣、礦區、平定縣出現不同程度缺水,枯水年出現較為嚴重的供水不足。
(2)改進粒子群算法模型求解時不易陷入局部最優解,能夠收斂到全局最優的結果,說明使用S 型遞減慣性權重和定權重比適應度函數相結合的方法能夠改善傳統粒子群算法的求解能力。
雖然水資源優化調配模型能夠一定程度上優化研究區水資源時空分布,協調各目標之間的滿足情況,但難以從根本上解決地區缺水問題,應當通過建設調水引水工程、開展節水減排、提高水資源利用效率等措施解決水資源短缺問題。