吳和海++熊高峰+袁晉蓉+秦躍杰
摘 要: 針對機組組合這一高維、非線性混合整數規劃問題,提出一種結合修補策略的整數編碼粒子群(ICPSO) 算法。用正負整數分別表示機組開停機的時間長度,有效減少待優化變量個數。基于機組組合問題的特點,采用修補策略處理不滿足約束條件的個體,使算法只在可行解區域內搜索,有效提高收斂速度,通過切除冗余機組,提高解的質量。仿真算例表明,相比整型編碼遺傳(r?ICGA)算法、改進粒子群(IPSO)算法、社會演化(SEP)算法,提出的ICPSO算法能夠更有效地處理大規模機組組合優化問題,執行時間較短、求解精度更高。
關鍵詞: 機組組合; 粒子群算法; 整數編碼; 修補策略
中圖分類號: TN919?34; TP18 文獻標識碼: A 文章編號: 1004?373X(2017)11?0167?05
An modified integer?coded particle swarm optimization algorithm
for unit commitment optimization
WU Hehai, XIONG Gaofeng, YUAN Jinrong, QIN Yuejie
(College of Electrical and Information Engineering, Hunan University, Changsha 410082, China)
Abstract: Aiming at the high dimension and nonlinear mixed integer programming problems of unit commitment, an integer?coded particle swarm optimization (ICPSO) algorithm combined with repairing scheme is proposed. The positive and negative integers are used to represent the time length of unit startup and shutdown to reduce the quantity of variables under optimization effectively. On the basis of the characteristic of unit commitment, the repairing scheme is adopted to handle the individuals which can′t conform to the constraint conditions, so as to make it only search in the feasible solution region, and improve the convergence rate. The redundancy unit is cut out to improve the quality of solution. The simulation example results show that, in comparison with r?ICGA, IPSO algorithm and SEP algorithm, the ICPSO algorithm can handle the combinatorial optimization of large?scale units effectively, has shorter execution time and higher solving accuracy.
Keywords: unit commitment; particle swarm optimization; integer coding; repairing scheme
0 引 言
機組組合優化是電力系統經濟調度中一個非常重要的問題,它的高維數、非凸、離散、非線性,使得理論上很難求取其最優解。但由于它能夠帶來顯著的經濟效益,許多國內外學者一直在積極研究,提出各種方法來解決這個問題,例如,動態規劃法、拉格朗日松弛法、優先順序法等確定方法以及遺傳算法、蟻群算法、模擬退火等智能優化算法[1?2]。但到目前為止,以上方法均存在一定的缺陷,如面臨“維數災”、求解時間較長、精度不夠高等,不適合實際機組組合的優化。
粒子群優化算法(PSO)是一種隨機全局優化算法,該算法自提出以來,因為其具有簡單、收斂速度快且效果顯著等優點,在各個領域得到廣泛的應用[3?6]。目前粒子群算法在求解機組組合問題時[7?8],普遍采用二進制編碼方式,用0?1表示發電機組的開停機狀態;處理約束條件在適應度函數中加入懲罰項。對于大規模機組系統,這種編碼方式會導致種群個體長度過長,影響算法搜索效率,浪費大量求解時間[9];懲罰項的引入會使得計算時間的極大增加,同時懲罰乘子的調整也存在困難[10]。
針對上述問題,本文提出一種適用于大規模機組組合問題的整數編碼粒子群算法。采用整數編碼方式來表達機組組合問題,有效減少待優化變量個數;同時采用粒子修補策略處理不滿足約束條件的粒子,以提高搜索速度和解的質量。算例仿真驗證了文中所提出的算法能夠有效求解電力系統大規模機組組合問題。
1 機組組合的數學模型
1.1 目標函數
電力系統機組組合問題是指在規定的時期內,在滿足功率平衡等約束條件下,合理的安排機組的開停機順序與出力,使得系統的總發電成本最小。機組組合問題的目標函數可表示為[11]:
(1)
式中:為系統總發電成本;代表機組臺數;為時段總個數;為機組在時段內的輸出功率;為機組在時段內的開停機狀態,當時表示機組開機,時表示機組停機;表示機組在時段內的耗量成本,其中,為機組的運行成本參數;表示機組在時段內的啟動成本,它與機組啟動之前的連續停機時間長短有關。
1.2 約束條件
(1) 功率平衡約束:
(2)
(2) 最小開/停機時間約束:
(3)
(4)
(3) 機組出力上下限約束:
(5)
(4) 旋轉備用約束:
(6)
(5) 機組爬坡約束:
(7)
(8)
(6) 最大開關機次數約束:
(9)
式中:表示調度時段內的系統負荷需求;表示機組開機后的最小開機時間;表示機組的最小停運時間;表示機組的最小出力;表示機組的最大出力;為時段內的旋轉備用值;分別為機組的功率最大上調量、下調量;表示機組在調度周期內的開停機次數;為機組在調度周期內允許的最大開停機次數。
2 基于整數編碼粒子群算法的機組組合問題
求解
2.1 整數編碼
用正負整數分別表示機組開停機時間長度,機組開停機狀態設計為矩陣: (10)
式中:為粒子種群中的第個個體;表示機組的狀態階段所持續的時間,正整數值代表機組連續開機的小時數,負整數值代表機組持續停機的小時數;表示機組開停機階段數的上限(每臺機組一般每天開停機次數不超過5次),一些重負荷機組的開停機階段數不足時用數字0填充,從而保持粒子矩陣列數恒定。每行表示某機組在調度周期內的開停機安排,滿足。第臺機組所有時段的啟停安排由一組正負相間的整數串來表示,構成矩陣的行向量。所有機組的整數串(行向量)組成整個調度周期全部機組的啟停安排,即機組組合問題的解。
圖1詳細演示了如何通過一個10×5的整數編碼矩陣表達10機組在24 h內的一個調度安排。若使用二進制編碼,同樣的調度所需的矩陣規模增大至10×24,計算量將大大增加。例如第六行向量 [-8,6,-5,4,-1]表示此機組在1~8時段內停機,9~14時段內開機,15~19時段內停機,20~23時段內開機,24時段內停機。該編碼方式從特性上就限制了機組在一個調度周期內的啟停狀態次數最多不超過滿足機組最大開停機次數的約束。
2.2 粒子種群的初始化
(1) 時,機組在第一個狀態階段持續的時間:
(11)
式中:表示機組在上一個調度周期最后一個狀態階段持續的時間,這樣生成的能夠保證機組延續前一個調度周期的狀態且滿足最小開停機時間約束。
(2) 時,考慮到機組需滿足最小開停機時間約束,可按式(12)初始化:
(12)
式中:表示第個狀態階段后剩余的調度時段數。
(13)
(3) 即最后一個狀態階段,它所持續的時間初始化如下:
(14)
由于隨機數的原因,若前個狀態階段的持續時間之和等于調度周期時段數則余下的狀態階段所持續的時間用0來補充,保證所有的粒子矩陣有相同的列數。根據式(11)~式(14)初始化得到的粒子種群,滿足機組最小開停機時間約束。
2.3 粒子進化
粒子在尋優過程中,依據迄今為止找到的最優解和整個粒子群搜索到的最優解來調整粒子的進化速度和方向。
粒子的速度按照下式進行變化:
(15)
粒子位置的更新公式如下:
(16)
式中:為種群粒子個數;為第次迭代后粒子的速度;為第次迭代后粒子的位置;為粒子個體的歷史最優位置;為種群最好位置;rand1,rand2為[0,1]之間的隨機數;是加速度常數;為慣性權重;Int為取整符號。
2.4 修補粒子
在粒子群迭代優化過程中不可避免地會產生一些無效的粒子,在這些無效粒子中會有各個狀態階段的持續時間之和不等于調度周期時段數整數串不是正負相間的情況,從而導致該粒子無效。需要對粒子個體進行修補,按行向量的先后順序進行。以個體中行為例,具體措施如下:
(1) 若保持前個狀態階段持續時間不變,其中滿足且令段的值變為0,正負保持不變;
(2) 若,考慮到此種情況修補繁瑣、耗時較多,則重新初始化該粒子;
(3) 若行不是正負相間的整數串,則保持的大小不變,依次調整它們的正負號以滿足條件;
(4) 若有的情況,則交換兩者的位置,否則不滿足編碼方式的特性。
2.5 約束條件處理
2.5.1 旋轉備用約束處理
每個時段都應該對旋轉備用約束進行檢驗,若違反約束,則應調整機組開停機狀態。本文采用機組最小耗量與機組的最大出力之比作為指標,對機組進行優先排序[12]。當時段所有開機機組的最大輸出功率之和小于系統負荷量和旋轉備用時,對按照指標排列好的機組逐一檢查其開停機狀態,將狀態為0的機組開啟,直到滿足旋轉備用約束,轉至時段繼續檢驗。
2.5.2 最小開停機時間約束處理
違背最小開機時間約束通常出現在高峰負荷時段,因為峰值時間往往低于最小開機時間。類似地,因低負荷持續時間一般低于最短關機時間,最小關機約束的違背常出現于低負荷時段。在粒子群進化過程中,采用最小開停機時間修補策略對粒子編碼矩陣進行修復[13]。
如圖2所示,若檢查是否滿足最小開機時間約束,若不滿足,則將變為1,機組繼續開機;如圖3所示,若檢查~時刻機組是否都能滿足最小停機時間約束,若不滿足,則機組繼續開機,變為1。
2.6 切除冗余機組
在求解過程中,由于缺少對機組運行實際特點的考慮,易出現小容量機組運行過多、機組備用容量過剩的情況,使得發電成本增加。因此有必要關閉多余備用機組,即切除冗余機組。
在調度周期內,依次檢查每個時段內所有開機機組的最大出力之和是否超過系統負荷和旋轉備用。若超過,則按優先表逆序關閉已開機組。再重新檢測,直至該時段機組輸出總功率不過量。
3 算例分析
本文采用經典算例對算法的性能進行檢驗,為了便于對比分析,不考慮爬坡約束,可以直接采用等微增率準則進行負荷經濟分配。計算中粒子種群大小取20;最大迭代進化次數取100;均取2;權重系數從0.9~0.4線性遞減,粒子最大速度為10。計算周期為一天,全天分為24個時段。機組開停機階段數的上限考慮到粒子群算法的隨機性,應用本文ICPSO算法進行20次獨立迭代計算,取其中最好的解作為最終優化結果。
采用文獻[8?9]中的10臺機組參數和24 h的負荷數據以及旋轉備用,并根據上述文獻中的復制方法將系統規模擴大至20臺、40臺、60臺、80臺和100臺,系統負荷和備用同時按比例增加。
表1給出ICPSO算法求得的10機組系統最優運行成本,系統總的運行成本為$563 937.7,其中啟動總成本費用為$4 090,機組發電總成本為$559 847.7,最優調度表見表2。
表3為本文的ICPSO算法與其他優化算法[8?9,11]對10~100臺機組系統求解結果的比較。可以看出,對于10機組系統,本文ICPSO算法和r?ICGA都能獲得相同的總費用,優于SEP,IPSO算法;隨著機組臺數的增加,ICPSO的求解結果均優于其他三種方法,驗證了本文算法求解大規模機組組合問題的有效性和高精度性。
圖4給出了本文算法在不同機組規模下的執行時間曲線,隨著機組臺數的增加,執行時間近似線性增長,10機組時耗時約3.2 s,100機組時也只需要28.2 s左右。這是由于本文采用修復策略對不可行粒子進行修復,使算法只在可行解區域內搜索最優解,有效提高收斂速度;同時相比二進制編碼,本文的整數編碼方式能有效提高粒子群算法的搜索效率。因此本文提出的整數編碼粒子群算法更適用于求解大規模機組組合問題。
圖4 不同機組規模的執行時間曲線
4 結 語
本文采用整數編碼粒子群算法來求解機組組合問題。通過整數編碼方式,用正負整數分別表示機組開停機時間長度,相比于二進制編碼它能有效減少待優化變量個數。求解過程中針對機組組合問題的特點,采用修補策略處理不滿足約束條件的粒子,使算法只在可行解區域內搜索,通過切除冗余機組提高解的精度。仿真算例表明,相比r?ICGA,IPSO,SEP,本文提出的ICPSO算法求解大規模機組組合優化問題具有更高的精度,求解時間大幅度減少。
參考文獻
[1] KAZARLIS S A, BAKIRTZIS A G, PETRIDIS V. A genetic algorithm solution to the unit commitment problem [J]. IEEE transactions on power systems, 1996, 11(1): 83?92.
[2] 黎靜華,蘭飛.機組組合問題的模型及算法綜述[J].現代電力,2011,28(6):1?10.
[3] 李丹,高立群,王珂,等.電力系統機組組合問題的動態雙種群粒子群算法[J].計算機應用,2008,28(1):104?107.
[4] 張濤,史蘇怡,徐雪琴.基于二進制量子粒子群算法的含分布式電源配電網重構[J].電力系統保護與控制,2016,44(4):22?28.
[5] 方源,章桐,陳霏霏,等.電動車動力總成噪聲品質粒子群?向量機預測模型[J].西安交通大學學報,2016,50(1):41?46.
[6] 王春枝,張會麗,葉志偉,等.一種基于混沌粒子群算法和支持向量機的 P2P流量識別方法[J].計算機應用與軟件,2015(8):288?291.
[7] 耿曉軍,王剛.粒子群算法應用于機組組合問題的優化[J].現代電子技術,2007,30(16):111?113.
[8] 趙波,曹一家.電力系統機組組合問題的改進粒子群優化算法[J].電網技術,2004,28(21):6?10.
[9] 張偉,趙進慧,王寧.帶修復操作整型編碼遺傳算法求解大規模機組組合問題[J].化工學報,2012,63(9):2972?2979.
[10] AMJADY N, SHIRZADI A. Unit commitment using a new integer coded genetic algorithm [J]. European transactions on electrical power, 2009, 19(8): 1161?1176.
[11] 王喆,余貽鑫,張弘鵬.社會演化算法在機組組合中的應用[J].中國電機工程學報,2004,24(4):12?17.
[12] 黎靜華,韋化.求解機組組合問題的領域搜索法[J].中國電機工程學報,2008,28(13):33?40.
[13] 蔡振華.考慮電價的機組組合問題研究[D].長沙:湖南大學,2013.