李 源,初 壯
(1.云南電網(wǎng)有限責(zé)任公司大理供電局,云南 大理 671000;2.東北電力大學(xué),吉林 吉林 132012)
近年來,風(fēng)力削減相關(guān)的問題[1-2]在電力系統(tǒng)中已備受關(guān)注。為了減少縮減風(fēng)電[3],調(diào)度方案需要進行相應(yīng)的調(diào)整。調(diào)整后的計算必須具有更高的效率,并且成本很少。調(diào)度方案的調(diào)整針對整個調(diào)度和調(diào)度周期的各個部分。調(diào)度周期的各個部分需要在滿足系統(tǒng)的約束條件下進行機組的微調(diào),調(diào)整將在一些連續(xù)的時間間隔內(nèi)進行,并且不會啟/停發(fā)電機,它可以被制定為大規(guī)模,連續(xù)和非線性的優(yōu)化模型,這與傳統(tǒng)的動態(tài)經(jīng)濟調(diào)度(DED)相同。
非線性編程方法,如二次規(guī)劃[4]、班德斯分解[5]和內(nèi)部方法[6-7],常用于求解類似DED典型的非線性優(yōu)化問題;同時,隨機優(yōu)化方法,如遺傳算法[7]、進化規(guī)劃和粒子群優(yōu)化[8-9],也被用于求解DED模型。這些方法的實現(xiàn)都為串行計算,它們適用于當(dāng)時的硬件和軟件環(huán)境。并行計算技術(shù)近年來發(fā)展迅速。計算機統(tǒng)一設(shè)備架構(gòu)(CUDA)、基于圖形處理單元(GPU)是一種高效、低成本的并行計算技術(shù),使用CPU的“中央處理”向CPU和GPU并用的“協(xié)處理”發(fā)展,已應(yīng)用于電力系統(tǒng)[10-11]。在文獻[10-12]中,用于求解功率流問題的牛頓-拉普森方法在GPU上實現(xiàn),雅可比矩陣、LU分解和前車回代在GPU上實現(xiàn);文獻[12]提出了一種GPU加速解決方案,它在分批處理ACPF(alternating current power flow,交流潮流)之間創(chuàng)建了一個額外的并行層,從而實現(xiàn)了更高水平的整體并行性。
本文基于GPU的拉格朗日乘子優(yōu)化建立了DED模型,引入并行計算加速求證過程,下面逐一進行論述。
考慮風(fēng)電入網(wǎng)的電力系統(tǒng)調(diào)度模型,與常規(guī)經(jīng)濟調(diào)度不同點在于:電力系統(tǒng)經(jīng)濟成本的目標函數(shù);風(fēng)電出力的上下限約束;電力系統(tǒng)的功率平衡約束。
在常規(guī)能源達到限值時,風(fēng)電的引入能增加系統(tǒng)韌性,從而減少棄風(fēng)量。風(fēng)電入網(wǎng)后[9],電力系統(tǒng)的經(jīng)濟目標函數(shù)如下:
minZ=E1+E2
(1)
式中:E1表示常規(guī)火電機組的費用,包括運行成本、開啟停成本;E2表示風(fēng)電機組的發(fā)電成本。
火電發(fā)電成本包括:燃料成本和開啟停成本,具體表達形式如下:
(2)
(3)
式中:T代表T個調(diào)度周期;PWt為在第t時段風(fēng)電出力;F(Pit)為第i臺機組第t個調(diào)度周期的運行成本;SUit、SDit分別為常規(guī)機組i在t時段的開啟停成本;CW為風(fēng)功率的成本系數(shù)。
常規(guī)機組的開啟停成本為:
SUit=CU×Iit×(1-Iit-1)
(4)
SDit=CD×Iit-1×(1-Iit)
(5)
式中:CU、CD分別為常規(guī)機組開機和關(guān)機成本系數(shù);Iit為第i臺機組在第t個調(diào)度周期的機組狀態(tài),取“1”時表示機組開機,取“0”時表示機組關(guān)機。
a.負荷平衡約束。在考慮風(fēng)電的并入和不計網(wǎng)絡(luò)損耗的情況下,機組的發(fā)電量并入風(fēng)電量后PWt和負荷Pbt相等:
(6)
Pother=PLianluo+PHedian+PGuangfu+PShuidian
(7)
式中:Pbt為電力系統(tǒng)在t時刻段內(nèi)的負荷值;Phdit為第i臺火電機組在第t時段的功率;PLianluo為電力系統(tǒng)的聯(lián)絡(luò)線功率;Pother為其他功率,包括核電功率PHedian;光伏功率PGuangfu;水電功率PShuidian。
b. 系統(tǒng)旋轉(zhuǎn)備用約束。為保證電力系統(tǒng)的安全運行,在風(fēng)電入網(wǎng)后,電網(wǎng)需要使所有常規(guī)機組和其他并網(wǎng)能源之和滿足一定的限制,具體如下:
(8)
c.機組功率限制約束。對于常規(guī)火電機組,需要在每個時刻都得滿足最小、最大出力約束;對于電網(wǎng)并入風(fēng)電后,風(fēng)電入網(wǎng)功率也應(yīng)小于等于此時的風(fēng)電集群總?cè)萘縬wt,具體表達為:
0≤PWt≤qwt
(9)
(10)
單指令多線程(SIMT)是基于GPU的CUDA提供的計算的顯著特征,其與多指令多數(shù)據(jù)(MIMD)明顯不同。 在GPU內(nèi)部,八個或更多流處理器(SP)連接到流多處理器(SM),每個GPU由許多SM組成,通常情況下,每個SM中包含32(或48)個流處理器(SP)。SP是GPU上數(shù)據(jù)處理的最基本單元。GPU計算平臺架構(gòu)含有兩臺2.40 GHz的英特爾 Core i7-4700HQ處理器,每臺處理器的CPU含有6個核心(core)。GPU和CPU通過外圍部件互聯(lián)(PCI)總線相連。GPU的型號為NVIDIA GeForce GT 745M。
一個程序的并行實現(xiàn)包含兩部分:CPU執(zhí)行(host)端和GPU執(zhí)行(device)端,見圖1的CUDA計算模式,其中kernel為在GPU上執(zhí)行的程序,GPU執(zhí)行端可使用信息多點傳遞接口(MPI)等技術(shù)并行。
圖1 CUDA計算模式
在SIMT中,每32個線程被調(diào)度為線程warp并同時工作,其中warp表示NVIDIA的線程粒度,為線程的集合。如果可以將問題劃分為可以獨立解決的粗略子問題,則可以通過GPU內(nèi)任何可用多處理器上的線程塊并行地求解。當(dāng)子問題的數(shù)量巨大時,基于GPU的并行計算比傳統(tǒng)的基于CPU的串行計算花費更少的時間。例如,在雅可比矩陣和海申矩陣的每個元素最優(yōu)求解中,可以采用GPU并行計算。
本文中的拉格朗日乘子法包含了大量的向量運算,例如有關(guān)前后兩個時刻的功率的變化關(guān)系為例,P(k+1)=P(k)+ΔP,這里的P為n維矢量。在CPU上,傳統(tǒng)的實現(xiàn)方法如下:
(11)
當(dāng)循環(huán)變量i從0增加到n,功率向量的對應(yīng)元素按照順序進行加運算。但是在此過程中,每一組元素的計算過程是獨立的,只有在計算完P(guān)W時才會計算PW+1,彼此沒有相互的依存。GPU中,上述的循環(huán)運算可以在一條流水線Block中同時完成對P1,P2,…,PG的求解。
(12)
采用基于GPU的并行計算來加速優(yōu)化。式(12)可以以向量P的每個元素的形式重寫如下:
(13)
由于這里需求解的機組功率為N×T的二維矩陣,其中N表示機組總數(shù)量。要實現(xiàn)并行運算,可將上式先轉(zhuǎn)為單臺機組,化簡為:
(14)
其中,sum1代表機組1等式約束的數(shù)量,sum2代表了機組1不等式約束的數(shù)量。
相對于機組的單個求解,由于每個機組的參數(shù)是固定的,所以在時間不同的時候,式(13)的表達形式是一樣的,假設(shè)系統(tǒng)總周期為T。為了對這T個未知量迭代求解,可以取T個Block作為一條流水線。再擴展到G臺機組,便為G條流水線。將式(15)展開,可得出具體的迭代表達式如下,同樣式(16)也為P1流水線所執(zhí)行的指令過程。
(15)
(16)
圖2 流水線迭代序列
至于不等式約束,它對于方程(8)-(9)具有不同形式來講有些復(fù)雜。SIMT并行計算只能處理具有相同形式的約束,因此,更新μ(k)的過程應(yīng)該分成幾個單獨的子程序,每個子程序?qū)?yīng)一種形式的約束。
機組的上下限約束,即方程式(9),不需要通過拉格朗日乘子來處理。如果某個變量的值超出了它們自身的范圍,則應(yīng)將其值固定在超出的上限/下限邊界上。它可以通過簡單的Kernel函數(shù)來完成。
方程式(8)和(9)分別是斜坡約束和旋轉(zhuǎn)儲備約束。它們具有相似的形式,每個表達式都包含兩個約束。例如,如果i和t是已知的,則式(8)可以等效為:
(17)
(18)
但是,兩個約束及其乘子應(yīng)該在相同的Kernel函數(shù)中計算。并且在函數(shù)中,兩個約束和乘子是串聯(lián)計算的。不等式約束多出現(xiàn)一個,在實現(xiàn)中也會多出一個線程執(zhí)行。
本文以拉格朗日乘子法為理論基礎(chǔ),并考慮風(fēng)電并網(wǎng)的經(jīng)濟調(diào)度方案。在GPU的操作平臺上實現(xiàn)了并行算法。算法實現(xiàn)流程框圖見圖3。
圖3 算法實現(xiàn)流程框圖
由圖3得,一次變量迭代的計算步驟如下。
b. 以拉格朗日乘子法為整體框架,調(diào)整相應(yīng)的并行算法公式,在CPU上處理數(shù)據(jù)輸入接口和IEEE可靠性系統(tǒng)的串行部分。GPU通過流水線的形式處理具有相同表達公式的數(shù)據(jù)迭代部分,即功率變量迭代和乘子迭代, 其中功率變量迭代部分包括等式約束和不等式約束,其數(shù)量與機組的數(shù)量相關(guān);
c. 當(dāng)算法一輪迭代后,其功率變量的變化值不滿足給定誤差時,k=k+1進行下一輪迭代。先進行寄存器中數(shù)據(jù)的傳導(dǎo),傳入新值給GPU中,迭代完后將又一輪新值重新傳回CPU中,進行串行部分的數(shù)據(jù)可靠性檢驗和誤差檢驗,直到滿足為止。
為了展示基于GPU的拉格朗日乘數(shù)算法的有效性和效率,IEEE可靠性系統(tǒng)分別在CPU上進行串行計算并在GPU和CPU上進行并行計算。CPU是英特爾核心i5 4690,計算機內(nèi)存為16 GB,GPU為NIVIDIA 960,帶有4 GB圖形內(nèi)存。
由于拉格朗日乘數(shù)優(yōu)化已多年來成功應(yīng)用于解決DED問題,因此證明了它的有效性和收斂性。 因此,只有基于GPU的異構(gòu)和并行計算與傳統(tǒng)的串行計算之間的差異才值得分析和討論。
表1列出了GPU和CPU以及CPU在4種不同計算規(guī)模上所花費的時間。由表1可以看出,在計算規(guī)模較小的情況下,CPU上的串行計算速度比GPU和CPU上的異構(gòu)計算速度快。只有當(dāng)規(guī)模擴大到一定程度時,并行計算的優(yōu)越性才能體現(xiàn)出來。
表1 并行與串行運算時間對比
從表1中還可以看出,在算例2中具有96個周期的CPU的時間是具有24個周期的算例1的7倍。 花費時間的增加趨勢可以見圖4。 曲線1是GPU和CPU上的異構(gòu)并行計算,曲線2是CPU上的串行計算。可以看出,曲線2的增長速度快于曲線1。
圖5中分別給出了3臺機組在跌過程中,由全程CPU進行功率求解數(shù)值變化過程和由CPU&GPU協(xié)同進行功率求解數(shù)值變化過程,兩類曲線在最后基本吻合。
圖4 并行與串行運算時間對比
圖5 全程CPU和CPU&GPU協(xié)同運算對比曲線
圖5給出了4種算例的CPU與并行運算的時間對比,可以看出,GPU的并行協(xié)處理在運算規(guī)模越大的情況下,其優(yōu)勢明顯會展現(xiàn)出來。
計算規(guī)模越大,異構(gòu)計算可以節(jié)省更多時間。在大規(guī)模風(fēng)電滲透增加DED復(fù)雜性情況,需要更多計算資源的情況下,基于GPU和CPU的異構(gòu)計算在電力系統(tǒng)發(fā)電調(diào)度計算中起著重要作用。
由于大規(guī)模集成和風(fēng)電的高度不確定性,本文建立了一個新的模型,以減少不時出現(xiàn)的棄風(fēng), 并且基于GPU和CPU的異構(gòu)并行計算拉格朗日乘子優(yōu)化已被應(yīng)用于求解所提出的模型??梢钥闯觯跐M足相同效果的前提下,基于GPU的并行具有更高的效率,并且適用于電力系統(tǒng)的優(yōu)化計算。