何 旺,余登武
(1貴州大學(xué) 電氣工程學(xué)院,貴陽 550025;2國網(wǎng)重慶市電力公司 萬州供電公司,重慶 404100)
機(jī)組組合問題是指在滿足系統(tǒng)安全約束和電能質(zhì)量要求的前提下,利用合理的機(jī)制控制機(jī)組的開/關(guān)狀態(tài),調(diào)整各時段的出力,使某一調(diào)度周期(通常指一天)內(nèi)的總運(yùn)行成本最小化。機(jī)組組合是解決電力系統(tǒng)最優(yōu)潮流和經(jīng)濟(jì)調(diào)度的前提。
機(jī)組組合問題是NP-hard型問題,具有高維、非凸、離散、非線性等特點,到目前為止,還沒有好的解決辦法。目前,機(jī)組組合的求解算法主要是2類。一類是傳統(tǒng)算法,包括優(yōu)化級表法、混合整數(shù)規(guī)劃、動態(tài)規(guī)劃法、拉格朗日算法等。文獻(xiàn)[5]根據(jù)能耗指標(biāo)形成了機(jī)組優(yōu)先級排序表,并將優(yōu)先級排序與內(nèi)點法相結(jié)合,來解決機(jī)組組合優(yōu)化問題。在文獻(xiàn)[6]中,提出了一種動態(tài)規(guī)劃算法來解決包含電動汽車的單元組合模型的維數(shù)災(zāi)難問題。在文獻(xiàn)[7]中,大規(guī)模0-1機(jī)組組合態(tài)用量子疊加態(tài)表示,并通過近似動態(tài)規(guī)劃實現(xiàn)了大規(guī)模機(jī)組組合態(tài)空間的全局搜索。在文獻(xiàn)[8]中,針對熱電聯(lián)產(chǎn)的經(jīng)濟(jì)調(diào)度問題,考慮機(jī)組爬升、啟動和停止的約束條件,建立了電加熱一體化系統(tǒng)優(yōu)化調(diào)度的混合整數(shù)規(guī)劃模型。為了解決電力現(xiàn)貨交易背景下的機(jī)組組合問題,文獻(xiàn)[9]利用拉格朗日乘子λ的模糊邏輯設(shè)置,建立了基于拉格朗日算法的機(jī)組組合調(diào)度模型,考慮了旋轉(zhuǎn)備用、啟動成本和最小停機(jī)時間等約束。另一類是基于智能優(yōu)化的算法,包括遺傳算法、禁忌算法、粒子群算法、模擬退火算法等。文獻(xiàn)[10]提出了一種基于改進(jìn)人工魚群算法的大規(guī)模多目標(biāo)單元組合優(yōu)化模型,以解決問題規(guī)模擴(kuò)大導(dǎo)致的計算時間長的問題。為了平衡機(jī)組組合問題的經(jīng)濟(jì)性和可靠性,考慮系統(tǒng)運(yùn)行成本和穩(wěn)定運(yùn)行能力,文獻(xiàn)[11]針對機(jī)組組合這一高維、非線性混合整數(shù)規(guī)劃問題,提出一種結(jié)合修補(bǔ)策略的整數(shù)編碼粒子群算法。文獻(xiàn)[6]研究了包含電動汽車的機(jī)組組合模型,并將電動汽車的充電量和充電時間要求作為約束條件。針對傳統(tǒng)正向動態(tài)規(guī)劃方法求解大型機(jī)組組合問題時存在的“維數(shù)災(zāi)難”問題,設(shè)置禁忌表,防止重復(fù)路徑搜索,減少計算量。雖然目前的研究方法已經(jīng)取得了一些進(jìn)展,但計算速度和精度仍然不盡如人意。大型電力系統(tǒng)機(jī)組組合的難點在于各時段機(jī)組可能運(yùn)行狀態(tài)的組合較多。以20臺機(jī)組為例,一個時段可能運(yùn)行狀態(tài)的組合數(shù)為2^20-1≈10^6,而24個時段可能的運(yùn)行狀態(tài)組合數(shù)為(10^6)^24=10^144種,而每一種狀態(tài)都需要計算一次最優(yōu)機(jī)組出力,計算非常復(fù)雜。
針對大型電力系統(tǒng),傳統(tǒng)算法計算速度慢、無法求解的問題,本文提出了一種兩階段雙層組合優(yōu)化算法。首先,通過轉(zhuǎn)移因子算法得到電力網(wǎng)絡(luò)的功率轉(zhuǎn)移因子矩陣,由此求得線路的輸電容量約束。然后在給定機(jī)組近似出力情況下,以煤耗成本和啟停成本最小為目標(biāo),通過遺傳算法確定機(jī)組的運(yùn)行狀態(tài)。最后根據(jù)最優(yōu)運(yùn)行狀態(tài),運(yùn)用非線性規(guī)劃模型確定機(jī)組的最優(yōu)出力。算例結(jié)果表明,本文提出模型能降低算法復(fù)雜度,解決了傳統(tǒng)算法計算速度慢、無法求解的問題。
機(jī)組組合的優(yōu)化目標(biāo)的目標(biāo)函數(shù)由運(yùn)行、開機(jī)、停機(jī)三類成本構(gòu)成,具體見式(1):
其中,表示機(jī)組編號;為調(diào)度周期時間;F為機(jī)組的運(yùn)行成本(元h);F表示機(jī)組第個調(diào)度周期的出力(MW);I表示機(jī)組第個調(diào)度周期的機(jī)組開停二元變量:1表示開機(jī),0表示停機(jī);SU表示機(jī)組在第個調(diào)度周期的開機(jī)成本,是一個關(guān)于時間的函數(shù),有S U=C×I×(1-I),C為一個常數(shù);SD表示機(jī)組第個調(diào)度周期的關(guān)機(jī)成本,有SD=C×I(1-I),C為一個常數(shù)。
負(fù)荷平衡約束見式(2):
其中,P表示第個調(diào)度周期的總負(fù)荷。
上下限約束可寫為如下公式:
負(fù)荷備用約束如式(4)所示:
線路安全容量約束見式(5):
模型中有許多約束條件,這些約束條件不能用程序直接表達(dá),只能用變換來表達(dá)。
其中,G為第條支路第個節(jié)點的發(fā)電機(jī)功率轉(zhuǎn)移分布因子。該值可由如下公式計算求出:
其中,x表示節(jié)點與節(jié)點之間的互阻抗,x表示節(jié)點與節(jié)點之間的互阻抗。
G描述了發(fā)電機(jī)的有功功率改變單位值時,支路的有功變化量。當(dāng)節(jié)點流入單位功率時,支路上的電流是G。
機(jī)組啟停時間約束難以處理,下面通過計算實例說明如何處理啟停時間約束。
機(jī)組最小啟動時間為3 h,最小停機(jī)時間為2 h,總調(diào)度周期為6 h。如果機(jī)組在開始時已啟動1 h,則最小啟動時間約束可寫為如下計算公式:
其中,I表示機(jī)組時段的開停狀態(tài),I=1表示開,I=0表示關(guān);y表示機(jī)組時段是否發(fā)生開機(jī)行為,如果I=0,I=1,則y=1,發(fā)生開機(jī)行為。
進(jìn)一步地,研究推得的最小停機(jī)時間約束可表示為:
其中,I表示機(jī)組時段的開停狀態(tài),I=1表示開,I=0表示關(guān);Z表示機(jī)組時段是否發(fā)生關(guān)機(jī)行為,如果I=1,I=0,則Z=1,發(fā)生關(guān)機(jī)行為。
通過在程序中引入控制變量y,Z能有效表示出最小開停機(jī)時間約束。
機(jī)組組合是一個NP-hard問題,首先要求解最優(yōu)機(jī)組開停狀態(tài),每個機(jī)組開停狀態(tài)對應(yīng)有一個最優(yōu)出力,求解最優(yōu)出力時,模型包含了眾多約束條件(每個時間有負(fù)荷平衡約束、上下限約束等條件,每個時刻每條線路有輸電線路安全容量約束)。機(jī)組組合問題算法復(fù)雜度為指數(shù)級(P),屬于在有限時間不可解決的問題。針對此類問題,有3個求解策略,分述如下:
(1)對于小型問題,可以直接解決。
(2)對于大型問題,采用近似算法來降低算法復(fù)雜度并獲得精確解,但不容易獲得最優(yōu)解。
(3)對于大規(guī)模問題,可以提高計算機(jī)性能,如采用“量子計算機(jī)”;或利用互聯(lián)網(wǎng)上的計算機(jī)的中央處理器的閑置處理能力,采用分布式計算。
方法(3)是提高計算機(jī)計算能力,但問題本身的難度并沒有降低。本文針對方法(2)提出了一個兩階段兩層組合優(yōu)化模型。
非線性規(guī)劃函數(shù)的流程如圖1所示。該功能是輸入給定的機(jī)組狀態(tài)組合,并輸出所有調(diào)度周期內(nèi)所有機(jī)組的最優(yōu)機(jī)組出力。具體步驟如下:
圖1 非線性規(guī)劃函數(shù)部分流程圖Fig.1 Flow chart of nonlinear programming function
(1)定義1函數(shù)來求解單時刻的最優(yōu)機(jī)組出力。傳入?yún)?shù)為:當(dāng)前時刻的總負(fù)荷、當(dāng)前時刻各個節(jié)點的負(fù)荷矩陣、當(dāng)前時刻各個機(jī)組的開停狀態(tài)、當(dāng)前時刻各個機(jī)組的出力上下限。輸出為:當(dāng)前時刻各個機(jī)組的出力、1的約束懲罰項。目標(biāo)函數(shù)為:當(dāng)前時刻的煤耗成本最小。約束條件為:負(fù)荷平衡約束、機(jī)組功率上下限約束、線路容量約束。
(2)輸入6個機(jī)組所有時間的機(jī)組開停狀態(tài)。
(3)判斷機(jī)組當(dāng)前時刻是否處于開機(jī)狀態(tài),如果處于開機(jī)狀態(tài),則機(jī)組功率要考慮斜坡約束和上下限約束;否則機(jī)組功率僅考慮上下限約束。圖1中,表示機(jī)組第個調(diào)度周期的功率上限,表示機(jī)組第個調(diào)度周期的功率下限,[]表示機(jī)組的斜坡約束數(shù)值,表示機(jī)組第個調(diào)度周期的開停狀態(tài),[]表示機(jī)組的功率上限,[]表示機(jī)組的功率下限。
(4)將當(dāng)前時刻的總負(fù)荷、節(jié)點負(fù)荷、各個機(jī)組的開停機(jī)狀態(tài)、機(jī)組功率約束傳入1函數(shù)。得到機(jī)組的出力、懲罰項。
(5)判斷是否遍歷完所有時間。如果遍歷完,輸出各個機(jī)組所有時刻的出力。
這里,1函數(shù)主要求解單一時間的機(jī)組出力(局部尋優(yōu)),流程圖完成全局尋優(yōu)。
組合方法一流程見圖2,把非線性規(guī)劃函數(shù)嵌入進(jìn)了遺傳算法函數(shù)里。步驟如下:
圖2 組合方法一流程圖Fig.2 Flow chart of combination method 1
(1)定義遺傳算法部分的目標(biāo)函數(shù)和懲罰項:目標(biāo)函數(shù)=煤耗成本+啟停成本;懲罰項=機(jī)組最小開停機(jī)時間。
(2)初始化群體和參數(shù)(這里的群體指機(jī)組開停機(jī)狀態(tài)數(shù)組),并要求群體滿足負(fù)荷備用約束。
(3)得到開停機(jī)狀態(tài)后,傳入非線性函數(shù)規(guī)劃部分求解得到各個機(jī)組的出力、非線性規(guī)劃部分懲罰項。
(4)計算父代的適應(yīng)度、懲罰項。懲罰項=遺傳算法部分的懲罰項+非線性規(guī)劃部分的懲罰項。
(5)遺傳選擇、交叉、變異操作。
(6)將子代傳入非線性規(guī)劃函數(shù)部分,得到子代機(jī)組出力后,計算子代的適應(yīng)度、懲罰項。
(7)子代與父代之間進(jìn)行群體更新:優(yōu)先選擇懲罰項更小的個體,其次才是適應(yīng)度更小的個體。
(8)判斷是否迭代結(jié)束(達(dá)到一定迭代次數(shù)),如果迭代結(jié)束輸出最優(yōu)個體(開停狀態(tài)和出力)、目標(biāo)函數(shù)值。如果迭代沒結(jié)束,跳到步驟(3)。
假設(shè)求解一個機(jī)組狀態(tài)的算法復(fù)雜度為(1),求解一個機(jī)組狀態(tài)對應(yīng)的最優(yōu)機(jī)組出力算法復(fù)雜度也為(1)。原始解法(同時尋優(yōu)最優(yōu)機(jī)組狀態(tài)和最優(yōu)機(jī)組出力)的算法復(fù)雜度即為()。從圖2中可以看出,組合方法一的算法復(fù)雜度為3()。組合方法一在理論上可以尋優(yōu)到最優(yōu)解,具體看約束條件個數(shù)和規(guī)模數(shù)。
組合優(yōu)化方法二流程見圖3。步驟如下:
圖3 組合方法二流程圖Fig.3 Flow chart of combination method 2
(1)定義目標(biāo)函數(shù)和懲罰項:目標(biāo)函數(shù)=啟停成本+近似煤耗成本;懲罰項=最小開停機(jī)時間。設(shè)每個機(jī)組每個時刻,近似出力=(最大值+最小值)*開停狀態(tài)。根據(jù)這個近似出力算出近似煤耗成本。
(2)初始化群體和參數(shù)(群體指機(jī)組開停機(jī)狀態(tài)數(shù)組),并要求滿足負(fù)荷備用約束。
(3)計算父代的適應(yīng)度、懲罰項。
(4)遺傳算法選擇、交叉、變異。
(5)計算子代的適應(yīng)度、懲罰項。
(6)子代與父代之間進(jìn)行群體更新:優(yōu)先選擇懲罰項更小的個體,其次才是適應(yīng)度更小的個體。
(7)判斷迭代是否達(dá)到一定次數(shù),如果是,輸出最優(yōu)個體(機(jī)組的開停狀態(tài)),否則跳到步驟(3)。
(8)將機(jī)組開停狀態(tài)傳入到非線性規(guī)劃部分,得到機(jī)組出力。
原始解法(同時尋優(yōu)最優(yōu)機(jī)組狀態(tài)和最優(yōu)機(jī)組出力)的算法復(fù)雜度為()。從圖3中可以看出,組合方法二的算法復(fù)雜度為()(1)。組合方法二理論上很難尋優(yōu)到最優(yōu)解,但可以得到一個較為優(yōu)秀的解。
以某地電網(wǎng)為例對本文模型進(jìn)行有效性驗證。該地是一個6機(jī)31節(jié)點系統(tǒng)。限于篇幅,機(jī)組參數(shù)、網(wǎng)絡(luò)參數(shù)和各個節(jié)點預(yù)測負(fù)荷將不再贅述。機(jī)組開始時都處于開機(jī)2 h狀態(tài)。網(wǎng)絡(luò)結(jié)構(gòu)具體見圖4。
圖4 網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.4 Network structure diagram
組合方法一和組合方法二的機(jī)組開停狀態(tài)結(jié)果見圖5,圖6。機(jī)組出力見圖7,圖8。從上述圖中可以看出機(jī)組1和機(jī)組2的優(yōu)先級最高,基本處于開啟狀態(tài),出力通常位于功率上限附近。
圖5 組合方法一機(jī)組開停組合Fig.5 Unit on/off combination using combination method 1
圖6 組合方法二機(jī)組開停組合Fig.6 Unit on/off combination using combination method 2
圖7 組合方法一求解機(jī)組出力結(jié)果Fig.7 Output result of the unit solved by combination method 1
圖8 組合方法二求解機(jī)組出力結(jié)果Fig.8 Output result of the unit solved by combination method 2
各種方法的求解結(jié)果見表1,機(jī)組組合是一個NP-hard問題,在不使用分布式計算或計算機(jī)性能低下前提下,常規(guī)方法在有限時間內(nèi)無法求解。組合方法一相比于常規(guī)方法,算法復(fù)雜度有所下降,求解速度仍然比較慢。組合方法二相比于組合方法一大大提高了運(yùn)算速度,且求解結(jié)果靠近組合方法一。
表1 求解結(jié)果對比表Tab.1 Comparison table of solution results
本文提出了一種兩階段分層組合優(yōu)化算法,以降低求解大型電力系統(tǒng)機(jī)組組合難題的算法復(fù)雜度,以非線性規(guī)劃和遺傳算法為兩階段優(yōu)化算法,建立了機(jī)組組合的求解模型。在現(xiàn)實生活中,對于單元組合的NP-hard問題,一種是利用分布式計算來提高計算速度,另一種是利用組合優(yōu)化來降低問題的復(fù)雜度,從而得到精確解。本文中的機(jī)組僅有火電機(jī)組,而網(wǎng)絡(luò)約束只考慮功率容量,僅考慮了供電可靠性問題。未考慮供電優(yōu)質(zhì)問題(頻率、節(jié)點電壓、波形的約束)。后續(xù),將考慮含有新能源機(jī)組和考慮節(jié)點電壓的機(jī)組組合。