徐 威,管春偉
(1.天地電研(北京)科技有限公司武漢分公司,湖北 武漢 430074;2.國網(wǎng)山東省電力公司青島供電公司,山東 青島 266700)
電力系統(tǒng)負荷經(jīng)濟調(diào)度(Economic Load Dispatch,ELD)是在某一時段負荷需求給定的情況下,確定該時段電力系統(tǒng)各機組的出力,使各機組在滿足實際約束的前提下共同承擔負荷需求,并尋求整個系統(tǒng)總運行成本的最小化[1]。ELD 是現(xiàn)代電力系統(tǒng)運行的一個關鍵問題,在提高電力系統(tǒng)運行經(jīng)濟性方面起著重要作用[2]。
在簡單的電力系統(tǒng)負荷經(jīng)濟調(diào)度模型中,一般僅需考慮機組容量限制和功率平衡兩個約束。然而,實際的經(jīng)濟調(diào)度問題需要考慮電力系統(tǒng)運行過程中存在的許多實際非線性約束,包括機組禁運區(qū)約束、“閥點效應”和爬坡速率限制等[3-4]。因此,電力系統(tǒng)負荷經(jīng)濟調(diào)度問題本質(zhì)上屬于一個非光滑、高度非線性的多約束優(yōu)化問題。對電力系統(tǒng)經(jīng)濟調(diào)度問題的求解方法主要分為兩類:一類是傳統(tǒng)的經(jīng)典數(shù)學類算法,包括拉格朗日松弛法、線性規(guī)劃(LP)等,但這類優(yōu)化算法在解決經(jīng)濟調(diào)度問題時一般需要簡化發(fā)電成本函數(shù)、約束條件[5],或出現(xiàn)“維數(shù)災”問題,計算時間長[6],不能滿足實際電力系統(tǒng)的需求;另一類包括Hopfield 神經(jīng)網(wǎng)絡、動態(tài)HNN、禁忌搜索等智能算法,這些方法普遍存在“早熟”現(xiàn)象,并且收斂過程比較緩慢,導致很難收斂到全局最優(yōu)解等問題[7],此外,智能算法在處理機組出力平衡約束時,若單獨使用罰函數(shù)法處理約束條件,所得結(jié)果往往不太理想。因此,獲取一種計算精度更高,實用性更強的方法來解決經(jīng)濟調(diào)度問題是當前電力系統(tǒng)研究的一個熱點課題。
飛蛾撲火算法(Moth flame Optimization,MFO)是近年來一種新興群體智能算法,其思想來源于對飛蛾撲火行為背后所蘊含的橫向飛行機制的模擬[8]。由于飛蛾撲火算法模型簡單,易于實現(xiàn),在工程領域得到了廣泛應用。國內(nèi)有學者將MFO 算法應用于分析抽水試驗數(shù)據(jù),為精確估計承壓含水層參數(shù)提供了有效方法[9]。另外,在文獻[10]中,MFO 算法被用來優(yōu)化馬斯京根模型參數(shù),獲得了更高的模擬精度。在國外,Siddharth A.Parmar 等人將MFO 算法應用于電力系統(tǒng)最優(yōu)潮流優(yōu)化問題,展示了該算法在電力系統(tǒng)優(yōu)化問題上的良好應用前景[11]。
針對上述問題,將綜合考慮包括爬坡速率限制、禁運區(qū)、“閥點效應”及網(wǎng)絡傳輸損耗等諸多電力系統(tǒng)運行中實際存在的約束,建立一個相對全面的、與實際運行更為接近的負荷經(jīng)濟調(diào)度模型。在模型的求解方法上,為了克服目前大部分算法所存在的“早熟”、局部收斂等問題,提高全局優(yōu)化能力,引入MFO 算法對所建模型進行求解。此外,對于模型中的功率平衡約束問題,提出采用平衡機組法與罰函數(shù)法相結(jié)合的方式來處理功率平衡等式約束和不平衡功率分配問題,從而提高算法的收斂速度和計算精度。
ELD 問題是一個考慮多種約束的非線性優(yōu)化問題,在確保系統(tǒng)安全穩(wěn)定運行的前提下,通過決策確定投入機組的出力大小,以在滿足出力計劃的同時,最小化系統(tǒng)的發(fā)電成本。
為確定負荷在運行機組之間的經(jīng)濟分配,機組運行成本一般表達成機組出力的函數(shù)。
若將電力系統(tǒng)的燃油成本函數(shù)看成一系列二次多項式的累加求和,則ELD 目標函數(shù)可表示為
式中:Fi(Pi)為第i 臺機組的燃油成本函數(shù);αi、βi、γi為第i 臺機組燃油成本函數(shù)的系數(shù);Pi為第i 臺機組的出力;n′為投入運行的機組總數(shù)。
在實際電力系統(tǒng)中,考慮“閥點效應”的ELD 目標函數(shù)可以表示為
式中:ei、fi為第i 臺機組反映“閥點效應”的系數(shù);為第i 臺機組出力下限。
1)功率平衡約束為
式中:Pload為電力系統(tǒng)總負荷;Ploss為電力系統(tǒng)的網(wǎng)損,可用系數(shù)矩陣B 來近似表達為機組出力的函數(shù):
式中:Bij、B00、B0i為已知的傳輸損耗參數(shù);Pi和Pj分別為第i 臺機組和第j 臺機組的出力。
2)發(fā)電容量約束為
3)禁運區(qū)約束為
4)爬坡速率限制。
當出力增加時,為
當出力減少時,為
2015 年Mirjalili 提出了飛蛾撲火算法(MFO),在MFO 算法中,飛蛾和火是2 種重要群體。飛蛾作為問題的候選優(yōu)化解,在決策空間中飛行,而火則是飛蛾到目前所處迭代次數(shù)為止所找尋到的最好位置。因此,火可以作為飛蛾在搜索空間中搜索的“風向標”,每個飛蛾圍繞在一個火的周圍搜索,當找到一個更好的解時,就更新自己的位置。
飛蛾和火的n×d 個元素可分別用矩陣M 和F表示。
式中:n 為飛蛾(火)的數(shù)目;d 為變量的維度。
存儲所有飛蛾和火適應度的向量可表示為
式中:OM為飛蛾的適應度矩陣;OM1為第1 只飛蛾的適應度;OMn為第n 只飛蛾的適應度;OF為火的適應性矩陣;OF1為第1 個火的適應度;OFn為第n 個火的適應度。
每個飛蛾圍繞其所對應的火來更新位置:
式中:Mi為第i 個飛蛾的位置;Fj為第j 個火的位置;S 為對數(shù)螺旋函數(shù)。對數(shù)螺旋函數(shù)為
式中:Dij為第i 個飛蛾與第j 個火之間的距離;b 為用來確定對數(shù)螺旋函數(shù)形狀的常數(shù)系數(shù);t 為r~1 之間的隨機數(shù),r 在迭代過程中一般由-1 線性地減少到-2。t 越小,搜索的位置離火越近,通過t 取不同的值,可以得到飛蛾與火的不同位置關系,具體如圖1所示。
MFO 算法的更新機制如圖2 所示,橫坐標t是范圍在r~1 之間的隨機數(shù),縱坐標為飛蛾的位置,對數(shù)螺線更新公式通過飛蛾在火的周圍搜索新的位置,有效利用歷史優(yōu)化解(局部開發(fā)能力)和探索未知區(qū)域(全局搜索能力),實現(xiàn)優(yōu)化問題的求解。
為了使算法的探索與開發(fā)能力達到平衡,用來更新位置的火的數(shù)目隨著迭代次數(shù)的增加動態(tài)的減少,當前迭代次數(shù)下火的數(shù)目計算公式為
式中:Nflame為當前迭代次數(shù)下火的數(shù)目,四舍五入取整數(shù);T 為算法的最大迭代次數(shù);L 為當前的迭代次數(shù);N=n 為用來更新位置的火的最大數(shù)目(與飛蛾的數(shù)目相同)。
圖1 t 對搜索位置的影響
圖2 MFO 算法的更新機制
3.2.1 約束處理
電力系統(tǒng)負荷經(jīng)濟調(diào)度問題的優(yōu)化變量是各臺機組的有功出力,問題的維數(shù)等于機組的總數(shù)。結(jié)合MFO 算法和ELD 模型各自的特點,將每個飛蛾代表電力系統(tǒng)負荷經(jīng)濟調(diào)度問題的一個候選解,每個飛蛾的位置是由各臺機組的出力組成的向量。
式中:P 為發(fā)電機組出力飛蛾矩陣,矩陣P 的行向量代表具體的每個飛蛾位置。
飛蛾撲火算法屬于無約束的優(yōu)化算法,應用于負荷經(jīng)濟調(diào)度問題時需要對各種約束進行處理,對于出力容量約束和禁運區(qū)約束,只需保證修正后的位置在滿足約束的區(qū)域即可。
受到機組容量和爬坡速率的限制,第i 臺機組的出力容量存在上下界限。
飛蛾在更新位置的過程中,可能會越過由出力容量約束式(15)和式(16)形成的可行邊界。當飛蛾的位置存在一臺或者多臺機組不滿足出力容量約束時,按照違反邊界約束的多少對稱地映射到邊界內(nèi)部,作為修正約束的最大范圍,然后再在邊界和邊界內(nèi)的映射位置之間隨機確定修正后的機組出力,具體數(shù)學表達式為
式中:R 是0~1 之間均勻分布產(chǎn)生的隨機數(shù)。
禁運區(qū)的存在讓決策空間變得不再連續(xù),出現(xiàn)了中斷區(qū)域。飛蛾在更新位置的過程中,沒有利用到禁運區(qū)約束的信息。因此,需要對飛蛾的位置進行禁運區(qū)的處理,簡單的處理方法是,當存在某臺機組出力落在禁運區(qū)中,則在上下邊界之間重新隨機初始化該臺機組出力,直到機組出力不再落到禁運區(qū)中為止。
功率平衡約束是一個等式約束,傳統(tǒng)方法一般是用罰函數(shù)法對不平衡功率進行懲罰,使算法盡可能在可行解區(qū)域或者盡可能接近可行邊界的區(qū)域中尋優(yōu)。然而,單獨使用罰函數(shù)法處理約束因算法前期耗費大量的時間得到的多為不可行解。
3.2.2 功率平衡約束新算法
為了更有效地處理功率平衡約束,提出了一種平衡機組法與罰函數(shù)法相結(jié)合的方法。該方法通過尋找平衡機組,并在平衡機組的出力范圍內(nèi)調(diào)整它的出力來使得機組總出力滿足系統(tǒng)的有功功率平衡。如果在遍歷了所有機組后,仍然無法找到能使功率相平衡的平衡機組,則再結(jié)合罰函數(shù)法在目標函數(shù)中對不平衡功率進行懲罰。該方法顯著增加飛蛾在可行解區(qū)域內(nèi)進行尋優(yōu)的可能,從而加速收斂過程,獲得精度更高的優(yōu)化解。
該方法的基本步驟如下(考慮網(wǎng)絡傳輸損耗)。
步驟1:設置飛蛾的數(shù)目n,最大循環(huán)迭代次數(shù)Q 以及可接受的不平衡功率值P0,循環(huán)計數(shù)C0=1。
步驟2:T 為可能存在某個機組為平衡機組的機組數(shù)目,初始值等于機組總數(shù)n′,并生成一個由有序序列{1,2,…,g}產(chǎn)生的隨機序列X。
步驟3:由隨機序列X 生成一個含有n′-T+1 元素的平衡機組序列。
步驟4:計算網(wǎng)絡傳輸損耗Ploss,再近似確定平衡機組的出力
式中:PI為用作平衡機組的功率。
步驟5:1)如果平衡機組的出力在機組出力上下界限之內(nèi),則看是否落在禁運區(qū)中,如果落在禁運區(qū)中,則平衡機組的出力設定為最接近的禁運區(qū)邊界值;如果沒有落在禁運區(qū)中,則直接將temp的值設定為平衡機組出力值;2)如果平衡機組的出力越過機組出力邊界,則重新尋找平衡機組,T1=T0-1,如果T大于0,則返回步驟3 重新進入內(nèi)部循環(huán);否則說明本次循環(huán)已遍歷完所有機組,未找到平衡機組。
步驟6:重新計算網(wǎng)絡傳輸損耗Ploss,并利用式(19)計算不平衡功率的大小ΔP,如果C0≤Q 并且ΔP>P0,則C1=C0+1 并返回步驟2 重新進入外部循環(huán)迭代,否則約束處理結(jié)束。
3.2.3 算法實現(xiàn)流程
應用飛蛾撲火算法求解電力系統(tǒng)負荷經(jīng)濟調(diào)度模型的具體流程如下所示。
步驟1:飛蛾位置初始化,所有飛蛾在式(15)和式(16)所示的機組出力容量約束的上下界之間隨機初始化位置
步驟2:機組運行約束處理,檢查所有飛蛾的位置,如果某個飛蛾存在機組出力落在禁運區(qū)中的情形,則重新隨機初始化該粒子落在禁運區(qū)的機組的出力,直到滿足禁運區(qū)約束為止。如果某個粒子有部分機組出力超過上下界限,按照式(16)重新給機組出力賦值。
步驟3:功率平衡約束處理,利用平衡機組法處理功率平衡約束,結(jié)合步驟2 和步驟3 可得到完成約束處理過程的新的飛蛾種群。
步驟4:適應度評估,使用式(1)或式(2)所示的成本函數(shù)來評估所有飛蛾的適應度。如果利用平衡機組法后仍不滿足等式約束,則利用式(21)所示的罰函數(shù)法對不平衡功率進行懲罰,迫使飛蛾飛離不可行區(qū)域,進而探索可行區(qū)域。其中,是考慮懲罰成本的總?cè)加统杀荆偟倪m應度),是第i 臺機組的燃油成本函數(shù),為罰因子。
步驟5:更新火的位置和適應度,如果是在第一代,飛蛾的初始種群直接作為火的初始種群。在迭代過程中,從火的種群和更新后的飛蛾種群所組成的種群中取前m 個適應度最好的個體作為新的火的種群,并更新火的適應度。
步驟6:飛蛾位置更新,飛蛾利用式(12)來參照對應的火更新自己的位置,火的數(shù)目按照式(13)動態(tài)的減少。
步驟7:最優(yōu)發(fā)終止條件判斷,如果達到最大迭代次數(shù),則迭代終止。輸出經(jīng)濟調(diào)度問題的最優(yōu)調(diào)度方案(最好的火的位置)及發(fā)電成本(最好的火的適應度);否則,則跳到步驟2 重復迭代過程,直至滿足終止條件。
為了驗證所提方法的可靠性和有效性,分別采用IEEE 6 機組系統(tǒng)[12]、15 機組系統(tǒng)[12]、40 機組系統(tǒng)進行仿真測試[13]。
6 機組系統(tǒng)為IEEE30BUS 系統(tǒng),總的負荷需求是1 263 MW。模型計算中考慮爬坡速率限制、網(wǎng)絡傳輸損耗以及禁運區(qū)約束,忽略“閥點效應”。
15 機組系統(tǒng)的總負荷需求是2 630 MW,禁運區(qū)約束、爬坡速率限制、網(wǎng)絡傳輸損耗等實際約束均被考慮在內(nèi)。其中2、5、6 號機組均有3 個禁運區(qū),12號機組有2 個禁運區(qū)。該系統(tǒng)的決策區(qū)間是一個包含192 個凸區(qū)間的非凸決策空間。
40 機組系統(tǒng)的總負荷總需求是10 500 MW,不考慮禁運區(qū)約束,比6 機和15 機系統(tǒng)有著更多局部最優(yōu)解的較大型系統(tǒng)。在本文中,考慮到模型的實用性,將考慮“閥點效應”和網(wǎng)絡傳輸損耗的存在。
所提出的方法使用MATLAB 編程實現(xiàn),為驗證方法的高效性和魯棒性,針對每個算例都單獨運行了50 次。
MFO 算法的參數(shù)設定如下:飛蛾種群數(shù)為40;應用于3 個不同算例時,最大迭代次數(shù)分別取100、250 和800。在式(12)中,b 取常數(shù)1,t 是范圍在r~1之間的隨機數(shù),r 在迭代過程中,由-1 線性地減少到-2。罰因子在前一半迭代次數(shù)時取50,后一半迭代次數(shù)時取100。約束處理方法的最大循環(huán)迭代次數(shù)取5,不平衡功率偏差允許值取0.01 MW。
表1—表3 分別給出了6、15、40 機系統(tǒng)50 次尋優(yōu)的發(fā)電成本的均值、最小值、最大值、最大偏差(最大發(fā)電成本與最小發(fā)電成本之差)和標準差。作為對比,表1 中給出了粒子群算法(PSO)遺傳算法(GA)、差分進化算法(DE)和BF-NM 算法的計算結(jié)果;表2中給出了粒子群算法(PSO)、遺傳算法(GA)、SOHPSO 算法和GA-API 算法的計算結(jié)果;表3 中給出了GA-API 算法、SDE 算法、TLBO 算法和QOTLBO算法的計算結(jié)果。
表1 不同算法的結(jié)果比較(6 機組系統(tǒng))
從表1 可以看出,對于6 機系統(tǒng),從MFO 算法50次試驗結(jié)果來看,其最好結(jié)果是15443.07 美元/h,最差結(jié)果是15443.08 美元/h,平均結(jié)果是15443.07 美元/h,標準差是0.001 0。最差結(jié)果和最好結(jié)果僅相差0.01 美元/h,說明MFO 具有很好的魯棒性。另外,從表1 還可以看出,MFO 的平均成本比PSO、GA、DE 和BF-NM 算法分別降低了10.93 美元/h、25.93 美元/h、6.71 美元/h 和3.88 美元/h,說明MFO算法在求解精度上顯著優(yōu)于其他算法。
表2 不同算法的結(jié)果比較(15 機組系統(tǒng))
從表2 可以看出,對于15 機系統(tǒng),MFO 算法50 次試驗結(jié)果的最小、最大和平均成本分別是32697.15 美元/h、32698.04 美元/h 和32697.95 美元/h,標準差是0.029 3。相比其他算法,MFO 仍然表現(xiàn)出高效穩(wěn)定的尋優(yōu)能力,其最大偏差僅為0.89 美元/h,說明MFO 算法具有良好的魯棒性和穩(wěn)定性。就平均發(fā)電成本而言,PSO、GA、SOH-PSO 和GA-API 算法的求解結(jié)果比MFO 算法分別多了633.05 美元/h、530.05 美元/h、54.06 美元/h 和37.11 美元/h。
從表3 可以看出,對于40 機系統(tǒng),MFO 算法50 次試驗結(jié)果的最小、最大和平均成本分別 是136 876.38 美元/h、137 442.43 美元/h和137 081.00 美元/h,標準差是136.902 4,最大偏差為566.05 美元/h。就最小發(fā)電成本而言,相比GAAPI、SDE、TLBO、QOTLBO算法分別節(jié)省了2 988.58 美元/h、1 271.08 美元/h、937.97 美元/h 和453.48 美元/h,經(jīng)濟效益顯著。通過對最優(yōu)調(diào)度方案進行約束驗證可知,MFO 所得調(diào)度方案仍能夠很好地滿足功率平衡和機組出力約束,表明了所提約束處理方法的合理性和有效性。
表3 不同算法的結(jié)果比較(40 機組系統(tǒng))
圖3 分別給出了飛蛾撲火算法在求解6 機、15機和40 機組系統(tǒng)的收斂曲線。從圖3(a)中可以看出,在求解6 機系統(tǒng)時,MFO 算法迭代15 次就找到了可接受的最優(yōu)解,說明MFO 算法能以較快的收斂速度獲得高質(zhì)量的優(yōu)化解。從圖3(b)中可以看出,在求解15 機組系統(tǒng)時,發(fā)電成本在50 次迭代以后已趨于穩(wěn)定,說明此時MFO 已經(jīng)找到可接受的優(yōu)化解。從圖3(c)可以看出,在求解40 機系統(tǒng)時,收斂曲線在100 代以內(nèi)的下降梯度比較大,反映出MFO 算法具有良好的全局搜索能力,在100 代以后發(fā)電成本仍在進一步下降,反映出MFO 算法具有良好的局部開發(fā)能力。因此,收斂過程證實了MFO 算法在解決負荷經(jīng)濟調(diào)度問題時具有良好的全局搜索能力和局部開發(fā)能力。
圖3 MFO 算法求解負荷經(jīng)濟調(diào)度問題的收斂曲線
將MFO 算法應用于求解電力系統(tǒng)負荷經(jīng)濟調(diào)度問題,在模型構建中充分考慮了“閥點效應”、禁運區(qū)、網(wǎng)損、機組爬坡速率限制等諸多實際約束。在約束問題處理上,提出了平衡機組法和罰函數(shù)法結(jié)合的新型約束處理方法。
仿真結(jié)果驗證了提出的混合約束處理方法可以通過分配不平衡功率和懲罰偏差值來有效的處理功率平衡約束問題,加速了算法收斂速度。
通過對3 個典型算例的仿真測試表明,相比于其他方法,所提方法具有更好的收斂特性、尋優(yōu)能力及算法魯棒性。