熊國江, 張 靖, 何 宇
(貴州大學 電氣工程學院, 貴陽 550025)
經濟調度(economic dispatch,ED)是指通過合理分配各臺發電機的發電功率,使總發電費用最小,從而達到節能降耗的目的,在此過程中需要滿足一定約束條件。在數學上,ED問題是一個典型的含多重復雜約束條件的非線性優化問題,而發電機閥點效應的引入進一步加劇了該問題的求解難度。為了有效求解ED問題,國內外學者提出了諸多求解方法,一類是傳統數學規劃方法。這類方法以梯度信息為基礎,具有嚴密的數學邏輯,但對初始點和梯度較為敏感,在求解多峰優化問題時容易陷入局部尋優。
現代智能優化方法作為計算機技術與人工智能技術不斷發展的產物,其興起為ED問題的求解提供了另外一種新途徑。智能優化算法在求解過程中摒棄了梯度信息的計算,從而對初始點的選擇不敏感,不依賴梯度信息,具有良好的全局搜索能力。目前已成功應用于ED問題中的智能優化算法包括:進化規劃算法(evolutionary programming, EP)[1],遺傳算法(genetic algorithm, GA)[2],粒子群優化算法(particle swarm optimization, PSO)[3-8],市場交易算法(exchange market algorithm, EMA)[9],差分進化算法(differential evolution, ED)[10-12],布谷鳥算法(cuckoo search, CS)[13],人工蜜蜂群算法(artificial bee colony, ABC)[14-15],螢火蟲算法(firefly algorithm, FA)[16]等。
根據“沒有免費的午餐”(no-free-lunch theorem)理論[17],沒有任何一種優化方法能永遠保持最優。該理論也激勵研究者們不斷尋找更加高效的方法來求解ED問題,探討其他方法在該問題上的可行性和有效性,豐富ED問題的求解思路。正余弦優化算法(sine cosine algorithm, SCA)[18]是近年來提出的一種新的智能優化算法,采用正弦函數與余弦函數完成迭代運算,其設計遵循簡單、快速的原則,算法無需額外調節的參數,從而提高了應用的便利性。與GA、PSO等相比,SCA在多峰優化問題上表現出了較強的競爭力。基于上述背景,本文將SCA算法應用于求解ED問題,探討該求解方法的可行性和有效性。在Matlab軟件平臺[19-21]上,計及了閥點效應、爬坡率約束、運行禁區約束等實際情形,利用一種規避罰因子方法來處理ED問題的多重復雜約束條件,通過3個不同類型算例從不同角度驗證了SCA算法的優化性能。仿真實驗結果表明,與GA和PSO相比,SCA算法可以快速獲得更加穩定、經濟的調度方案。
ED是一個非線性優化問題,可描述為[22]:
(1)
式中:C為發電費用;N為并網發電機臺數;P=[P1,P2,…,PN]為發電機組出力向量;Pn為第n臺發電機的出力;Fn(Pn)為第n臺發電機的成本函數;gj(P)和hj(P)分別為不等式約束和等式約束。傳統上,Fn(Pn)可近似為如下二次函數[2-4]:
(2)
式中,an、bn、cn為成本系數。
火電機組在實際運行過程中存在閥點效應,該效應可表示為[3-4]:
(3)

閥點效應使目標函數存在很多極值點,極大地增加了ED問題的優化難度。
供需平衡約束:
(4)
式中:Pdem為總負荷;Ploss為總網損。一般計算如下[2-4]:
(5)
式中,Bij、B0i、B00分別為常數系數。
發電機出力約束:
(6)

發電機爬坡率約束:
(7)
n=1,2,…,N

式(6)和式(7)可以統一為:
(8)
發電機運行禁區約束:發電機在實際運行過程中,受自身或某些輔機的影響,不能運行在某些區域內,否則可能會造成設備損壞。

(9)

SCA算法的設計遵循簡單、快速的原則,每個個體可表示為:
Xi=[xi,1,xi,2,…,xi,D],i=1, 2, …, NP
NP為種群規模。SCA的迭代過程僅僅依據式(10)和式(11)所示的正弦函數與余弦函數實現:
(10)
(11)
式中,G=[g1,g2,…,gD]為最優個體;r1隨機分布于(0,1)范圍內,r2隨機分布于(0,2π)范圍內,r3隨機分布于(0,2)范圍內。
SCA在迭代過程中,采用一個(0,1)范圍內的隨機數r4來選擇式(10)或式(11)。SCA算法流程:
1. 初始化種群X=[X1,X2,…,XN]
2. 計算種群所有個體的目標函數值
3. 初始化迭代次數t=1
4. While終止判據未滿足do
5. 通過目標函數值確定最優個體G
6. fori=1 to NP do
7. ford=1 to D do
8. 生成隨機數r4
9. ifr4<0.5 do
10. 采用式(10)更新xi,d
11. else
12. 采用式(11)更新xi,d
13. end if
14. end for
15. end for
16. 計算所有更新個體的目標函數值
17.t=t+1
18. End while
基于SCA算法的ED問題求解流程如圖1所示。首先輸入系統相關參數并初始化SCA,然后按照SCA的流程進行循環迭代,待達到終止條件后,結束SCA并輸出優化結果,從而獲取所有發電機的出力分配方案。值得說明的是,在計算每個個體的目標函數值之前,需要對其進行處理以滿足所有約束條件。本文采用文獻[23-24]中提出的規避罰因子方法來處理約束條件。

圖1 基于SCA算法的ED求解流程
采用3個系統來檢測SCA算法:
(1) 13機系統和40機系統[1],均考慮發電機閥點效應;
(2) 15機系統[9],考慮發電機爬坡率約束、運行禁區約束和系統網損。
為了測試SCA的優化性能,采用GA和PSO進行對比,各算法獨立執行50次。所有仿真均在Matlab R2010b中進行,硬件參數為3.70 GHz CPU,8 GB內存。對于所有算法,NP=100,最大迭代次數Tmax=100×D。3個算例的實驗結果列于表1~3中,平均成本對應的收斂曲線見圖2~4。

表1 13機系統仿真結果(算例1)

表2 15機系統仿真結果(算例2)

表3 40機系統仿真結果(算例3)
(1) 經濟性比較。算例2的目標函數是二次函數,運行禁區使其解空間呈現出多分段、非連續特性,但其解空間只有一個極值點,對求解方法的局部尋優能力要求較高。由表2可知,SCA在50次獨立重復實驗中,不管是最大成本、最小成本還是平均成本均最優,表明SCA的局部搜索能力較強。

圖2 算例1收斂曲線

圖3 算例2收斂曲線

圖4 算例3收斂曲線
算例1和3考慮了發電機閥點效應,解空間具有很多極值點,對求解方法的要求更高,特別是算例3,其維度更多,解空間更加復雜,不僅要求求解方法能實現局部精細搜索,而且還需要有足夠的擺脫局部極值點吸附的全局搜索能力。由表1和表3可知,SCA的優化結果均優于GA和PSO的優化結果,且在40機系統上的優勢更大,說明SCA可以有效跳出局部極值點,朝著更優的方向繼續搜索。
此外,與部分文獻的仿真結果比較,SCA也表現出了很強的競爭力。
(2) 快速性比較。雖然ED問題的首要目標是提高系統經濟性,節能降耗,但對求解方法的求解速度也有一定要求。由表1~3可知,SCA在3個算例上的求解耗時分別為6.39、20.12、56.61 s,求解速度最快,能滿足ED問題的求解需求,這也正是SCA遵循簡單、快速的設計原則的結果。
(3) 收斂性比較。由圖2~4可知,GA的收斂速度最慢;PSO雖然在前期的收斂速度較快,但后期明顯呈現停滯現象,特別是對于13機系統和40機系統,表明算法在進化后期陷入了局部搜索,產生早熟; SCA自始至終均保持較快的收斂速度,從另一個角度表明該算法能有效跨過局部極值點,具有較強的全局搜索能力。
(4) 魯棒性比較。標準差可以用于評價一個算法的魯棒性。由表1~3可知,SCA在3個算例上50次仿真結果的標準差分別為20.53、2.29、46.37,均小于其他方法,表明該算法的穩定性較好,即具有較強的魯棒性。
本文將SCA算法應用于求解ED問題,通過3個算例從經濟性、快速性、收斂性、魯棒性4個角度驗證了該方法的求解性能。仿真結果表明,與其他算法相比,SCA算法能有效兼顧局部搜索和全局搜索,表現出了較強的競爭力,可作為ED問題求解的一種有效方法。