吳 擎, 張春江, 高 亮
(1.華中農(nóng)業(yè)大學(xué) 工學(xué)院,湖北 武漢 430070; 2.南洋理工大學(xué) 電機(jī)與電子工程學(xué)院,新加坡 639798; 3.華中科技大學(xué) 機(jī)械科學(xué)與工程學(xué)院,湖北 武漢 430074)
經(jīng)濟(jì)負(fù)荷分配問(wèn)題(economic load dispatch problem,EDP)的目標(biāo)是在滿足各種等式與不等式約束的情況下減少總?cè)剂铣杀?求解EDP的優(yōu)化方法大體可以分為兩類:傳統(tǒng)的數(shù)值優(yōu)化方法和智能優(yōu)化方法.傳統(tǒng)的優(yōu)化方法包括線性規(guī)劃、二次規(guī)劃和內(nèi)點(diǎn)法等[1-2].這類方法高效且精確,但對(duì)初始值很敏感,易提前收斂于局部最優(yōu)解.智能優(yōu)化方法包括遺傳算法[3-4]、進(jìn)化策略[5]、粒子群優(yōu)化[6-7]和差分進(jìn)化算法(differential evolution,DE)[8-9]等.此類方法對(duì)所求問(wèn)題的特性沒(méi)有要求,還能應(yīng)用于復(fù)雜的大規(guī)模優(yōu)化問(wèn)題[10],因而被越來(lái)越多的學(xué)者所采用.為了提高效率和精度,這些算法往往經(jīng)過(guò)了復(fù)雜的改進(jìn),例如有些算法[11]還需借助于二次序列規(guī)劃的局部搜索能力,這些改進(jìn)在很大程度上給使用者帶來(lái)了麻煩.因此,筆者將采用最基本的差分進(jìn)化算法[12]來(lái)求解該問(wèn)題.
本文的重點(diǎn)在于約束處理方法.前面提到的方法大部分采用罰函數(shù)法,該方法需要設(shè)置罰系數(shù),易造成過(guò)懲罰或欠懲罰的問(wèn)題.智能優(yōu)化算法中最常用的約束處理方法有可行性規(guī)則(feasi-bility rules,F(xiàn)R)[13]和ε約束法[14],這兩種方法簡(jiǎn)單高效且易于與進(jìn)化算法結(jié)合,因而得到了非常廣泛的應(yīng)用[15].但在EDP中,卻鮮少發(fā)現(xiàn)這兩種方法的存在.通過(guò)分析FR和ε約束法的特性以及所求問(wèn)題的特點(diǎn),發(fā)現(xiàn)了這兩種方法不適合求解EDP問(wèn)題的原因.在此基礎(chǔ)上,結(jié)合EDP問(wèn)題的特點(diǎn),筆者提出了一種將負(fù)荷平衡約束轉(zhuǎn)化為邊界不等式約束的方法,轉(zhuǎn)化后在進(jìn)化算法中采用FR和ε約束法便十分有效了.實(shí)驗(yàn)結(jié)果表明,即便采用最簡(jiǎn)單的差分進(jìn)化算法,仍然能求得非常有競(jìng)爭(zhēng)力的解.
EDP的目標(biāo)是在一定時(shí)間內(nèi)在滿足電力系統(tǒng)運(yùn)行條件的情況下,通過(guò)對(duì)發(fā)電機(jī)組的發(fā)電功率進(jìn)行優(yōu)化使得系統(tǒng)的燃料成本最小.
電力系統(tǒng)燃料成本FC是每個(gè)發(fā)電機(jī)組燃料成本的總和,如式(1)所示:
(1)
式中:n為系統(tǒng)的發(fā)電機(jī)組數(shù);pi為第i臺(tái)發(fā)電機(jī)功率;FCi(pi)為第i個(gè)發(fā)電機(jī)組的燃料成本函數(shù).FCi(pi)通常被擬合為一個(gè)二次多項(xiàng)式,如式(2)所示:
FCi(pi)=aipi2+bipi+ci,i=1,2,…,n,
(2)
式中:ai、bi、ci為燃料成本的系數(shù).
考慮以下4個(gè)約束.
(1)功率平衡約束.在考慮系統(tǒng)損耗的情況下,電力系統(tǒng)的發(fā)電功率應(yīng)等于實(shí)際功率需求D與系統(tǒng)的轉(zhuǎn)運(yùn)損耗PL之和,如式(3)所示:
(3)
系統(tǒng)的轉(zhuǎn)運(yùn)損耗由式(4)計(jì)算:
(4)
式中:Bij、Bi0、B00為損耗系數(shù).
(2)電機(jī)發(fā)電功率范圍約束.單個(gè)發(fā)電機(jī)組的發(fā)電功率pi必須滿足最小與最大功率約束pimin、pimax,即
pimin≤pi≤pimax,i=1,2,…,n.
(5)
(3)功率升降限制約束.考慮輸出功率的升降限制,即較前一次的輸出功率相比,當(dāng)前的輸出功率要在一定的范圍之內(nèi).具體約束如下式所示:
(6)
(4)禁止功率區(qū)域約束.某些發(fā)電機(jī)組有一些禁止功率區(qū)域.其約束如式(7)所示:
(7)
當(dāng)采用進(jìn)化算法求解上述問(wèn)題時(shí),式(5)表示的電機(jī)發(fā)電功率范圍約束通常被處理為自變量的邊界約束.
數(shù)學(xué)模型中有4個(gè)約束,通常將發(fā)電機(jī)組功率范圍約束和功率升降限制約束結(jié)合形成如下的自變量邊界約束:
(8)
可對(duì)新解中的越界分量重新賦值來(lái)處理該約束.對(duì)于功率平衡約束和禁止功率區(qū)域約束,以往文獻(xiàn)中通常采用罰函數(shù)法.除罰函數(shù)法以外,可行性規(guī)則(feasibility rules,F(xiàn)R)與ε約束處理法是進(jìn)化算法中兩種常見的約束處理方法[15],都可以用來(lái)比較兩個(gè)解的優(yōu)劣.
FR最初用于遺傳算法中的錦標(biāo)賽選擇,其具體表述如下:當(dāng)兩個(gè)解都不可行時(shí),根據(jù)約束違反量的大小來(lái)比較優(yōu)劣;當(dāng)兩個(gè)解一個(gè)可行、另一個(gè)不可行時(shí),可行解優(yōu)于不可行解;當(dāng)兩個(gè)解都是可行解時(shí),根據(jù)目標(biāo)函數(shù)的大小比較優(yōu)劣.
ε約束法最初由Takahama和Sakai[16]提出,與FR一樣,ε約束法也可用來(lái)比較兩個(gè)解的優(yōu)劣,只是在比較的時(shí)候增加了一個(gè)參數(shù)ε.比較規(guī)則如下:當(dāng)兩個(gè)解的約束違反量都大于ε時(shí),根據(jù)約束違反量的大小比較優(yōu)劣;當(dāng)兩個(gè)解的約束違反量一個(gè)小于ε、另一個(gè)大于ε時(shí),前者優(yōu)于后者;當(dāng)兩個(gè)解的約束違反量都小于ε時(shí),根據(jù)目標(biāo)函數(shù)的大小來(lái)比較優(yōu)劣.實(shí)際上,當(dāng)ε=0時(shí),ε約束法就等同于FR.通常采用下式來(lái)控制ε值[15]:
ε(0)=φ(Xθ);
(9)
式中:ε的初值ε(0)被設(shè)為在初始種群中排第θ位的約束違反量φ(Xθ);t為當(dāng)前迭代次數(shù).當(dāng)?shù)螖?shù)t小于Tc時(shí),ε值按指數(shù)形式下降,下降速度由參數(shù)cp控制;否則的話,將ε取值為0.
EDP中功率平衡等式約束會(huì)使得約束優(yōu)化的可行域變?yōu)橐粋€(gè)超平面.當(dāng)問(wèn)題的維度很大時(shí),很難找到這個(gè)超平面上的可行解.另一方面,這個(gè)可行域超平面還很大,這意味著當(dāng)偏好可行解的FR找到一個(gè)可行解后,就很難搜尋到遠(yuǎn)處的最優(yōu)解了.ε約束法能增加可行域的大小,在一定程度上能克服FR的缺點(diǎn),但這種對(duì)可行域的擴(kuò)增是暫時(shí)的,當(dāng)ε下降為0時(shí),其本質(zhì)上仍然是可行性規(guī)則,如果此時(shí)還沒(méi)有找到超平面上鄰近最優(yōu)解的可行解,就很容易陷入超平面上的局部最小值.為了降低求解難度,通常的做法是將等式約束松弛為一個(gè)不等式約束,如式(10)所示.但這一方面難免影響到解的精確性,另一方面松弛為不等式約束后,可行域的范圍還是很小.
(10)
式中:σ為一個(gè)很小的常數(shù),如1e-3.
這里采用以下的改進(jìn)方法處理功率平衡約束:采用DE來(lái)求解該問(wèn)題時(shí),只對(duì)前n-1個(gè)變量進(jìn)行優(yōu)化.在計(jì)算目標(biāo)函數(shù)時(shí),先根據(jù)功率平衡約束求解第n個(gè)未被優(yōu)化的變量pn,并增加pn的兩個(gè)邊界約束,如式(11)所示,然后采用可行性規(guī)則或ε約束法來(lái)處理這兩個(gè)約束:
(11)
功率平衡約束為一個(gè)二次式.對(duì)于二次式,可采用求解二次方程的方法來(lái)進(jìn)行轉(zhuǎn)換,將式(3)轉(zhuǎn)化如下:
(12)
但并不是所有的情況下,都滿足b2-4ac≥0.尤其是在搜索過(guò)程的早期,通常b2-4ac<0,此時(shí)不能采用一元二次函數(shù)的求根公式求解pn值.因此,對(duì)式(3)進(jìn)行簡(jiǎn)單變形,如下式所示:
(13)
此處采用了上次迭代中的pn值來(lái)計(jì)算PL,能夠如此簡(jiǎn)化的原因是,相對(duì)于pn,PL的值較小,pn對(duì)PL的貢獻(xiàn)值也很小,采用不精確的pn對(duì)PL的影響不大.通過(guò)上式可求得pn的近似值,也能很快搜尋到可行域附近.當(dāng)搜尋到可行域附近后,易滿足b2-4ac≥0的條件,然后就可根據(jù)式(12)求得滿足功率平衡約束的可行解.
該約束處理方式的優(yōu)勢(shì)有三點(diǎn):最重要的是將可行域極小的等式約束轉(zhuǎn)化為了可行域較大的不等式約束,易找到可行解.其二,縮減了問(wèn)題的一個(gè)維度,把n維的問(wèn)題縮減到了n-1維.第三,不需要對(duì)等式約束進(jìn)行松弛,能獲得精確解.
(14)
這里采用差分進(jìn)化算法作為優(yōu)化方法.差分進(jìn)化算法(DE)最初由Storn & Price[12]在1997年提出,它具有簡(jiǎn)單、高效、參數(shù)少、易于編程實(shí)現(xiàn)等優(yōu)點(diǎn),DE是近年來(lái)得到關(guān)注最廣泛的進(jìn)化算法之一.它有4個(gè)基本步驟:初始化;變異;交叉;選擇.根據(jù)變異策略及交叉方式的不同,DE算法有很多變種,這里采用最基本的DE/rand/1/exp.
結(jié)合可行性規(guī)則的DE的偽代碼如圖1所示.結(jié)合ε約束法的DE的偽代碼與之類似.
圖1 結(jié)合可行性規(guī)則的DE/rand/1/exp的偽代碼 Fig.1 Pseudo code of DE/rand/1/exp with Feasibility rules
選用兩個(gè)經(jīng)典問(wèn)題[7]來(lái)進(jìn)行測(cè)試,將其分別命名為EDP1和EDP2.EDP1包含6個(gè)發(fā)電單元,26根總線和46根傳輸線,總功率需求是1 263 MW,6個(gè)單元的特性及損耗系數(shù)B值見文獻(xiàn)[7].
EDP2包含15個(gè)發(fā)電單元,總功率需求是2 630 MW,15個(gè)單元的特性及B值見文獻(xiàn)[7],約束差分進(jìn)化算法參數(shù)設(shè)置如表1所示.
表1 算法參數(shù)設(shè)置
3.3.1 4種方案比較
將FR與DE結(jié)合并采用式(10)處理功率平衡約束稱為方案1;將ε約束法與DE結(jié)合并采用式(10)處理功率平衡約束稱為方案2;將FR與DE結(jié)合并采用改進(jìn)方法處理功率平衡約束稱為方案3;將ε約束法與DE結(jié)合并采用改進(jìn)方法處理功率平衡約束求稱為方案4.
4種方案在EDP1和EDP2上獨(dú)立運(yùn)行30次的統(tǒng)計(jì)結(jié)果如表2所示.從表2可見,對(duì)于EDP1和EDP2,方案3和方案4的結(jié)果明顯優(yōu)于方案1和方案2.對(duì)于EDP1,方案2的結(jié)果也明顯優(yōu)于方案1,可見對(duì)于該問(wèn)題ε約束法是有效的.方案3和方案4沒(méi)有顯著性差異,這是因?yàn)椴捎酶倪M(jìn)方法處理功率平衡約束后,算法的效率很高,方案3和方案4都能找到很好的解.對(duì)于EDP2,方案1的最優(yōu)值和最差值要優(yōu)于方案2,但方案2的平均值要優(yōu)于方案1,而方案4的結(jié)果優(yōu)于方案3,可見ε約束法表現(xiàn)較好.
表2 4種方案在EDP1和EDP2上的統(tǒng)計(jì)結(jié)果
圖2 4種方案在EDP1上目標(biāo)函數(shù)的收斂圖 Fig.2 Convergence plots of four tests on EDP1
圖3 4種方案在EDP2上目標(biāo)函數(shù)的收斂圖 Fig.3 Convergence plots of four tests on EDP2
4種方案在兩個(gè)問(wèn)題上的收斂過(guò)程如圖2和圖3所示.在搜索前期,方案1出現(xiàn)了目標(biāo)函數(shù)值的波動(dòng),這是因?yàn)樵诳尚行砸?guī)則下,方案1力求找到可行解,只優(yōu)化約束違反量.而方案2在ε約束的作用下,可以先優(yōu)化目標(biāo)函數(shù),因而剛開始時(shí)方案2獲得了很小的目標(biāo)函數(shù)值,但隨著ε的減小,目標(biāo)函數(shù)值越來(lái)越大;當(dāng)ε快變?yōu)?時(shí),收斂曲線在最優(yōu)解附近停留了一段時(shí)間,但最終丟失了該解,陷入了局部最優(yōu).這是因?yàn)樵诠β势胶獾仁郊s束下,可行域太小,而可行性規(guī)則和ε約束法偏好可行解,難以找到全局最優(yōu).而方案3和方案4,對(duì)唯一的等式約束進(jìn)行了處理,使算法中的種群都是可行解,能直接優(yōu)化目標(biāo)函數(shù).因此,方案3和方案4都極快地收斂到了全局最優(yōu)解.
對(duì)于EDP2,方案1和方案2的表現(xiàn)與EDP1中類似.但因?yàn)樵搯?wèn)題維度較高,方案1和方案2的解與方案3和方案4相差較大.方案3和方案4相比,很顯然,ε約束法在這里起了很大作用.方案4中,目標(biāo)函數(shù)值先迅速下降,隨著ε的減小,略有上升,然后再緩慢下降.與方案2不同的是,方案4中的目標(biāo)函數(shù)值變化比較緩慢,不至于丟失近優(yōu)解.
3.3.2 與文獻(xiàn)方法的比較
文獻(xiàn)中有很多算法對(duì)該問(wèn)題進(jìn)行了求解,如模擬退火算法(simulated annealing,SA)[17]、遺傳算法(genetic algorithm,GA)[6]、粒子群算法(particle swarm optimization,PSO)[6-7,18]、人工免疫系統(tǒng)(artificial immune system,AIS)[19].這些算法均采用罰函數(shù)方法來(lái)處理約束,并且大多在基礎(chǔ)算法上進(jìn)行了改進(jìn).
各種算法的統(tǒng)計(jì)結(jié)果如表3和表4所示.表中展示了各算法在多次運(yùn)行下的最優(yōu)值、平均值、最差值和標(biāo)準(zhǔn)差.某些算法的標(biāo)準(zhǔn)差未知,對(duì)于函數(shù)評(píng)估次數(shù),PSO和GA均為20 000次;CPSO(chaotic particle swarm optimization)算法在文獻(xiàn)[7]中未給出局部搜索的參數(shù),但能推算出函數(shù)評(píng)估次數(shù)要大于14 400;對(duì)于SOH_PSO(self-organizing hierarchical particle swarm optimization)[18],在EDP2上的種群數(shù)量達(dá)到了400和500,即使其函數(shù)迭代次數(shù)只有125,其函數(shù)評(píng)估次數(shù)也分別為50 000和62 500,遠(yuǎn)超方案3和方案4在EDP2上的最大函數(shù)評(píng)估次數(shù)20 000.通過(guò)這些數(shù)據(jù)可知,方案3和方案4在EDP1和EDP2上的最大函數(shù)評(píng)估次數(shù)(分別為5 000和20 000)是比較少的.
表3 在EDP1上各算法的統(tǒng)計(jì)結(jié)果
表4 在EDP2上各算法的統(tǒng)計(jì)結(jié)果 Tab.4 Statistical results of some algorithms on EDP2 美元
從表3可見,對(duì)于EDP1,方案3和方案4的結(jié)果要全面優(yōu)于所比較的算法.其原因就在于等式約束的存在,而采用罰函數(shù)的方法容易造成過(guò)懲罰,使算法偏好可行解,容易收斂到局部最優(yōu).
從表4可見,對(duì)于EDP2,方案4在所有指標(biāo)中都是最優(yōu)的;而方案3的結(jié)果也遠(yuǎn)優(yōu)于其他算法.由此可見,對(duì)于維度較大的問(wèn)題,采用罰函數(shù)法來(lái)處理約束的效果更差.采用改進(jìn)方法處理功率平衡約束后,F(xiàn)R和ε約束法均能求得較好的結(jié)果,特別是ε約束法的效果更佳.
可行性規(guī)則與ε約束法是進(jìn)化算法中兩種常用的約束處理方法,在以往的文獻(xiàn)中,雖然有很多的進(jìn)化算法被用來(lái)求解EDP問(wèn)題,但大部分約束處理方法都是傳統(tǒng)的罰函數(shù)法.筆者分析了EDP問(wèn)題中不適合采用可行性規(guī)則和ε約束法的原因,并提出了一種將EDP中的功率平衡約束轉(zhuǎn)換為不等式約束的方法.實(shí)驗(yàn)結(jié)果表明,采用該方法時(shí),即便是采用最基本的差分進(jìn)化算法,也能求得非常有競(jìng)爭(zhēng)力的解.