賴偉鵬,陳璟華,胡文波
(廣東工業(yè)大學 自動化學院,廣東 廣州 510006)
機組組合是指在滿足各種實際運行約束條件的前提下,對機組進行合理調(diào)度以實現(xiàn)系統(tǒng)低成本、高可靠性運行的決策過程[1]。目前求解機組組合優(yōu)化問題的常用方法可以分成經(jīng)典算法與智能算法。其中分支定界法(branch and bound method,BBM)、混合整數(shù)線性規(guī)劃(mixed integer linear programming,MILP)、動態(tài)規(guī)劃法(dynamic programming,DP)、優(yōu)先次序法(priority rule,PL)、拉格朗日松弛法(Lagrangian relaxation,LR)等經(jīng)典算法因表達簡單、魯棒性強、收斂速度快而被長期應用[2]。隨著機組數(shù)目不斷增加,高維度問題的出現(xiàn)使得經(jīng)典算法求取最優(yōu)解出現(xiàn)各種問題。
智能優(yōu)化算法因具有良好的求解速率及全局搜索能力而被應用于求解機組組合問題。文獻[3-6]分別運用帶精英策略的非支配排序遺傳算法(elitist non-donminated sorting genetic algorithm,NSGA-II)、改進二進制微分進化算法(binary differential evolution,BDE)、離散鯨魚優(yōu)化算法、離散縱橫交叉算法對機組組合優(yōu)化問題進行求解。文獻[7]提出求解大規(guī)模系統(tǒng)的兩階段機組組合方法,運用改進PL法求解機組啟停狀態(tài),但PL所求解的質(zhì)量會隨系統(tǒng)規(guī)模增加而降低。文獻[8]將智能優(yōu)化算法與經(jīng)典算法相結(jié)合,該方法在搜索能力上有所提升,但由于采用經(jīng)典算法對所有候選解進行調(diào)整,導致解的多樣性有所下降。文獻[9]提出結(jié)合PL法與雙重粒子群算法的機組組合降維求解方法,運用PL法避免算法早熟,同時對機組組合進行降維處理,構(gòu)建單時刻機組組合優(yōu)化以提升求解速率,但該文獻采用降維方式對機組組合進行拆分,而未對單時刻變量進行調(diào)整,使得單時刻變量優(yōu)勢未得到發(fā)揮。在雙階段機組組合問題中,負荷分配產(chǎn)生的總費用將作為機組啟停的適應度進行啟停狀態(tài)優(yōu)化,因此能否在負荷分配階段獲取更優(yōu)秀的解是決定機組組合求解質(zhì)量的關(guān)鍵,而這需要算法具有更好的全局搜索能力。
飛蛾撲火算法(moth flame optimization,MFO)在搜索方式上與其他算法有所不同,MFO會在整個搜索空間中提供多個火焰,飛蛾圍繞相應火焰進行搜索,而非僅圍繞單一空間最優(yōu)解進行搜尋,該特性為算法提供優(yōu)秀的全局搜索能力,在經(jīng)濟調(diào)度[10-11]、穩(wěn)定器參數(shù)優(yōu)化[12]和最優(yōu)潮流計算[13]等方面都取得了很好的效果。本文在飛蛾撲火算法基礎(chǔ)上進行改進,進一步提升算法搜索能力,同時提出參數(shù)可變策略,對單時刻變量進行調(diào)整以提升運算收斂速率;提出PL法概率調(diào)整策略,在保證候選解多樣性的同時提升解的質(zhì)量。
火電機組組合問題目標函數(shù)通常為在調(diào)度周期內(nèi)總費用(機組煤耗費用與啟停費用)最小,即:
(1)
式中:TC—火電機組運行總費用;
SUi—機組i的啟動費用,機組停機費用往往遠小于開機費用,故在啟停費用中只考慮開機費用而忽略停機費用。
機組的耗能特性函數(shù)一般表示為出力的二次函數(shù),如式(2)所示:
(2)
式中:ai,bi,ci—常數(shù),代表機組i的運行耗量特性。
火電機組的啟動方式主要有冷啟動和壓火啟動兩類。SUi根據(jù)機組的啟動方式不同而不同,如式(3)所示:
(3)
式中:Ki—機組i啟動的固定費用;
Bi,τi—機組i的啟動耗能系數(shù);
1)功率平衡約束
(4)
2)發(fā)電機輸出功率上下限約束
(5)
3)機組旋轉(zhuǎn)備用容量約束
(6)
4)機組爬坡、滑坡速率約束
(7)
5)機組最小啟停時間約束
(8)
Ng—機組數(shù)目;
URi,DRi—機組i出力爬坡速率的上下限;
MUTi,MDTi—機組最小連續(xù)開機和停機時間。
本文將機組組合問題拆分為單時刻機組啟停狀態(tài)主問題及經(jīng)濟分配子問題。本文采用成熟且廣泛使用的二進制粒子群算法求解機組啟停狀態(tài)主問題,采用全局搜索能力更優(yōu)的改進飛蛾撲火算法求解負荷分配子問題。
二進制粒子群算法將離散問題空間映射到連續(xù)空間中,使粒子在狀態(tài)空間中取值僅為0與1。
二進制粒子群算法速度更新公式為
(9)
二進制粒子群算法位置更新公式為
(10)
(11)
式中:w—慣性權(quán)重;
c1與c2—學習因子;
r1與r2— 0到1的隨機數(shù);
2.2.1 飛蛾撲火算法
飛蛾撲火算法[14]作為一種新型群智能優(yōu)化算法,其靈感來源于夜間飛蛾圍繞燈光螺旋飛行的生物特性。螺旋飛行代表飛蛾圍繞火焰周圍飛行,而非在兩者直線空間搜索,從而使算法具有更廣的搜索空間,保證了算法的全局搜索及局部開發(fā)能力。飛蛾作為搜索空間中的候選解,用矩陣M表示,數(shù)組ZM儲存各飛蛾對應的適應度?;鹧孀鳛楦黠w蛾在搜尋過程中獲取的局部最優(yōu)解,用矩陣F表示,數(shù)組ZF存儲各火焰相應的適應度值。
式中:N—飛蛾的個數(shù);
dm—維度,即待求變量的個數(shù)。
飛蛾的位置更新公式為
(14)
式中:Mn—第n只飛蛾更新后的位置;
Dn—第n只飛蛾與第j個火焰的距離;
b—等角螺線參數(shù);
t—從1線性遞減到-1的隨機數(shù)。
為提升算法收斂速率及收斂精度,MFO采用火焰自適應減少機制,根據(jù)公式(15)確定火焰數(shù)目,僅保留NF內(nèi)最佳火焰。
(15)
式中:NF—當前火焰數(shù)目;
NFmax—最大火焰數(shù)量;
k—當前迭代次數(shù);
T—最大迭代數(shù)。
2.2.2 Tent混沌序列
各類元啟發(fā)式算法通常隨機生成初始種群,而隨機生成的種群分布不均勻,造成算法的優(yōu)化速度及收斂性能降低。為提升初始種群的質(zhì)量,增加種群多樣性,提高算法的搜索效率,本文基于混沌理論,采用Tent混沌序列對算法初始種群進行改良,構(gòu)建混沌飛蛾撲火算法(adaptive binary particle swarm optimization algorithm-adaptive chaos moth flame optimization,ABPSO-ACMFO),具體步驟如下:
(1)生成1個N行dm列的隨機數(shù)組,構(gòu)成飛蛾初始種群M,各參數(shù)含義同公式(12)。
(2)根據(jù)公式(16)對數(shù)組的每個元素進行計算,生成Tent混沌映射數(shù)組,并將該數(shù)組作為算法初始種群進行后續(xù)算法運算。
圖1是分別采用隨機生成與Tent混沌映射生成的50個初始功率值,對比可知,Tent混沌映射產(chǎn)生的初始種群重疊數(shù)更少,初始種群質(zhì)量更好。
(a)隨機生成種群
Tent映射公式為
(16)
機組組合問題變量往往為包含調(diào)度時刻及機組數(shù)目的矩陣變量。以矩陣形式處理約束條件通常采用以下三種方法:忽略次要約束條件,加入懲罰系數(shù),運用調(diào)整策略。其中,忽略次要約束條件可導致出現(xiàn)無用解;運用懲罰系數(shù)法難以處理離散約束條件,此外過大的懲罰系數(shù)會導致懲罰函數(shù)值在可行域的邊界附近呈現(xiàn)病態(tài);運用調(diào)整策略能較好處理約束條件,然而新生成的矩陣變量不一定能滿足約束條件,需要修正調(diào)整,這將導致計算復雜度增加。故本文將機組組合問題拆分為單時刻機組組合優(yōu)化,將矩陣形式轉(zhuǎn)化為向量形式,降低計算復雜度。
3.1.1 粒子群種群初始化
在粒子群種群初始化時,對初始化粒子進行調(diào)整,保證收斂速度。
(17)
2)確定算法基本優(yōu)化參數(shù)。狀態(tài)保持不變的機組處于已知狀態(tài),剩余未確定狀態(tài)的機組通過算法進行求解,而不同時間段已知的機組狀態(tài)數(shù)目有所差異,導致二進制粒子群算法需計算的未知量有較大差距。按照最多未知量來設(shè)定算法基本參數(shù)將造成未知量少時算力浪費,而基本參數(shù)設(shè)定較少將造成未知量多時算法無法收斂;因此本文采用可變化基本參數(shù),對未知變量數(shù)劃分區(qū)間,在不同區(qū)間,二進制粒子群算法的迭代次數(shù)及種群數(shù)按公式(18)進行調(diào)整,構(gòu)建參數(shù)可變二進制粒子群算法(adaptive binary particle swarm optimization algorithm,ABPSO)。
式中:Nt—第t時刻的算法種群數(shù);
Tt—t時刻的算法迭代次數(shù);
3)劣解初始粒子概率調(diào)整。劣解粒子代表機組運行數(shù)目過多或者過少,機組運行數(shù)目過多將造成系統(tǒng)備用容量過多,增加運行費用。機組運行數(shù)目過少將導致系統(tǒng)不滿足功率平衡約束及備用容量約束。而直接對粒子運用策略調(diào)整將對種群多樣性造成影響,容易陷入局部最優(yōu)解。本文采用概率調(diào)整策略。對于開啟機組數(shù)目過少、機組最大輸出總功率小于負荷的粒子根據(jù)公式(19)開啟最優(yōu)機組,直至滿足功率平衡約束及備用容量約束。對于開啟機組數(shù)目過多,機組最小輸出總功率大于負荷的粒子,根據(jù)公式(19)確定開啟機組中的最劣機組,如果最劣機組停機后系統(tǒng)不滿足約束,則停止機組調(diào)整;如果滿足,則按概率停止該機組。
機組排序指標為
(19)
式中:Pait—發(fā)電機t時刻輸出功率上下限的平均值。
3.1.2 粒子群算法更新
粒子群按式(9)—(11)進行速度及方向的更新。離散粒子群算法迭代過程中,將粒子代表的機組啟停排序過度到飛蛾撲火算法,運用飛蛾撲火算法計算出該排序的最優(yōu)機組出力以及最少總費用,將該排序的最少總費用作為該粒子適應度,以確定該代的全局最優(yōu)解以及粒子的局部最優(yōu)解。多次重復迭代過程直到確定當前調(diào)度時刻的最優(yōu)機組組合狀態(tài)及對應的最優(yōu)負荷分配。在迭代更新過程中,對劣解粒子通過機組排序指標進行概率調(diào)整。
3.2.1 飛蛾撲火算法初始化
1)運行機組數(shù)目隨粒子不同及時刻變化而呈現(xiàn)不確定性,飛蛾撲火算法只需求解開啟機組的輸出功率,因此將粒子開啟機組數(shù)目作為飛蛾撲火算法待求變量數(shù)。通過公式(18)確定飛蛾數(shù)目及迭代次數(shù),從而提升優(yōu)化過程效率,減少算力浪費。
2)根據(jù)公式(20)求出單時刻機組最大、最小輸出功率,將機組最大、最小輸出功率作為種群上下限。
單時刻機組最大、最小輸出功率具體計算公式為
(20)
3)應用Tent混沌映射生成初始種群,提升種群多樣性。將參數(shù)可變策略與Tent混沌應用于飛蛾撲火算法,構(gòu)建參數(shù)可變ABPSO-ACMFO。
3.2.2 飛蛾撲火算法更新
為使所求解滿足功率平衡約束及備用容量約束,將公式(21)作為算法適應度函數(shù)。在算法種群初始化后,運用適應度函數(shù)求解各飛蛾對應適應度。通過適應度大小對比,將更好的飛蛾作為新火焰對矩陣進行調(diào)整,并通過公式(14)、(15)進行飛蛾位置更新及減少火焰數(shù)目。多次迭代并將最終所得最優(yōu)總費用作為該粒子的適應度返回二進制粒子群算法。
(21)
3.2.3 粒子群算法與飛蛾撲火算法流程
1)初始時刻確定二進制粒子群算法的基本參數(shù)并產(chǎn)生初始種群,并對劣解粒子進行概率調(diào)整。
2)劣解粒子概率調(diào)整,得到改進粒子種群。
3)根據(jù)粒子的開機數(shù)目確定飛蛾撲火算法基本參數(shù),并以單時刻機組最大、最小輸出功率作為種群上下限,采用Tent混沌映射生成初始種群。
4)運用公式(21)求解適應度,將飛蛾按適應度遞增進行排列后賦值給第一代火焰。運用公式(14)更新飛蛾位置,并計算新飛蛾適應度。將新飛蛾適應度與火焰適應度進行排序,選取適應度更優(yōu)的空間位置作為新一代火焰,通過公式(15)減少火焰數(shù)目。多次迭代求出最優(yōu)出力及最優(yōu)總費用。
5)將最優(yōu)總費用作為二進制粒子適應度以確定全局最優(yōu)解及個體極值。通過公式(9)、公式(10)進行二進制粒子更新。
6)重復采用飛蛾撲火算法求解粒子適應度及粒子位置更新過程直到二進制粒子群算法迭代結(jié)束,得到初始時刻最優(yōu)機組出力、機組最優(yōu)啟停狀態(tài)及最優(yōu)總費用。
7)進入下一調(diào)度時刻,根據(jù)最小啟停約束確定部分機組狀態(tài),將狀態(tài)不確定的機組數(shù)作為待求變量,根據(jù)公式(18)確定算法基本參數(shù),并生成初始種群。
8)重復步驟(2)—(7)直到求出整個調(diào)度時刻的最優(yōu)機組啟停狀態(tài)及最優(yōu)機組出力。
為驗證本文所提方法的有效性,分別采用12機及100、200機算例進行仿真,其中12機發(fā)電機參數(shù)及負荷數(shù)據(jù)見文獻[15],100機組與200機組參數(shù)及負荷數(shù)據(jù)由文獻[16]的10機組數(shù)據(jù)復制生成。程序在Wndows10、Matlab2018b平臺上實現(xiàn)。
為驗證改進飛蛾撲火算法的全局搜索能力,選取12機算例中第12 h負荷分配過程作為單時刻算例,并運用改進飛蛾撲火算法、飛蛾撲火算法與連續(xù)粒子群算法進行求解。其中設(shè)置前11 h機組啟停狀態(tài)及輸出功率相同,第12 h機組啟停狀態(tài)為僅7、8機組關(guān)閉。其中二進制粒子群參數(shù)為c1=c2=2,w=0.4。飛蛾撲火算法參數(shù)為b=1,t=[-1,1]。三種算法的收斂曲線如圖2所示。由圖2可知,改進的飛蛾撲火算法在62代收斂于3.691×104美元,未改進飛蛾撲火算法在92代收斂于3.709×104美元,粒子群算法在52代收斂于3.736×104美元。與粒子群算法相比,飛蛾撲火算法能獲得更低的運行費用,表明該算法具有更優(yōu)的全局搜索能力。從迭代次數(shù)及運行費用對比可知,與未改進相比,改進之后的飛蛾撲火算法在收斂精度及收斂速度上有進一步提升。
圖2 單時刻算法收斂曲線
為驗證改進飛蛾撲火算法在全時刻機組組合問題方面的求解能力,分別采用二進制粒子群算法及飛蛾撲火算法(binary particle swarm optimization algorithm-moth flame optimization,BPSO-MFO)、二進制粒子群算法及混沌飛蛾撲火算法(binary particle swarm optimization algorithm-chaos moth flame optimization,BPSO-CMFO)及文獻[9]的混合遺傳算法(hybrid genetic algorithm,HGA)、混沌優(yōu)化算法(chaotic optimization algorithm COA)、混沌混合遺傳算法(hybrid chaotic genetic algorithm,HCGA)、雙重粒子群算法(dimension reduction particle swarm optimization,DRPSO)求解12機算例,結(jié)果對比如表1所示。由表1可知:運用BPSO-MFO求得運行費用比文獻[15]所提的TOPSO相比更少;而對飛蛾撲火算法進行改進后,運行費用進一步降低,與TOPSO所求運行費用相比減少了8674美元,表明在求解機組組合問題上,采用改進飛蛾撲火算法具有很好的經(jīng)濟效益。
表1 優(yōu)化結(jié)果對比
本文采用對10機系統(tǒng)進行復制的方式,生成100及200機系統(tǒng),并分別采用參數(shù)固定的二進制粒子群及飛蛾撲火算法(binary particle awarm optimization algorithm-chaos moth flame Optimization,BPSO-CMFO)、參數(shù)可調(diào)的二進制粒子群及飛蛾撲火算法(adaptive binary particle swarm optimization algorithm-adaptive chaos moth flame optimization,ABPSO-ACMFO)、PL法概率調(diào)整BPSO-CMFO與運用PL法概率調(diào)整的ABPSO-ACMFO對多機系統(tǒng)進行求解,結(jié)果如表2所示。由表2可知,采用BPSO-CMFO求解200機系統(tǒng)所得運行費用為采取100機系統(tǒng)運行費用的192.4%,求解200機系統(tǒng)所用耗時為求解100機系統(tǒng)耗時的182.8%,表明運行費用及計算耗時隨機組規(guī)模增加平穩(wěn)上升,算法搜索能力及運算速率并未出現(xiàn)明顯下降。
從表2中ABPSO-ACMFO與BPSO-CMFO求解的耗時數(shù)據(jù)對比可知,采用參數(shù)可變策略后,求解100機及200機系統(tǒng)的運行時間分別降低12.8%與15.8%,體現(xiàn)參數(shù)可調(diào)策略能根據(jù)變量數(shù)目調(diào)整算法運行參數(shù),減少不必要運算時間。PL法概率調(diào)整BPSO-CMFO及BPSO-CMFO求解的運行費用數(shù)據(jù)對比可知,采用PL法概率調(diào)整策略后運行費用分別降低17 289美元及98 734美元,表明PL法概率調(diào)整策略通過改善候選解質(zhì)量,能有效提升最終解的質(zhì)量。從表2中PL法概率調(diào)整ABPSO-ACMFO的耗時及運行費用數(shù)據(jù)可知,綜合采用PL法概率調(diào)整策略及參數(shù)可變策略能有效提升求解過程中運行速率及運行效率,體現(xiàn)了本方法在求解大規(guī)模機組組合問題上的優(yōu)越性。
表2 大規(guī)模機組優(yōu)化結(jié)果對比
本文提出基于二進制粒子群及改進飛蛾撲火算法的單時刻參數(shù)可調(diào)機組組合優(yōu)化方法,將總調(diào)度周期優(yōu)化拆分為單時刻啟停狀態(tài)優(yōu)化及單時刻負荷分配優(yōu)化。采用二進制粒子群算法求解單時刻的機組啟停,改進飛蛾撲火算法求解單時刻負荷分配,兩種算法相互迭代,更快速、有效地求解最優(yōu)機組組合。提出參數(shù)可調(diào)策略,根據(jù)算法待求變量數(shù)目的不同,調(diào)節(jié)算法種群數(shù)目和迭代次數(shù)以提升算法運行速率,同時運用PL法對候選解進行概率調(diào)整以提升解的質(zhì)量及平衡種群的多樣性。經(jīng)典算例仿真結(jié)果證明了本文所提優(yōu)化求解策略具有更好的經(jīng)濟效益,同時在求解大規(guī)模機組組合問題上的有效性及優(yōu)越性。