趙瑞鋒 李 波 王海柱 郭文鑫 盧建剛 曾堅永
(廣東電網(wǎng)有限責(zé)任公司電力調(diào)度控制中心 廣東 廣州 510600)
電力系統(tǒng)靜態(tài)安全分析本質(zhì)是一系列的潮流計算,當(dāng)電力系統(tǒng)各個運行方式下某元件(電抗、斷路器等)退出后,在此狀態(tài)下進行潮流計算作為分析的基礎(chǔ)。潮流計算結(jié)果用來校驗系統(tǒng)是否有元件過負荷、母線過電壓等。傳統(tǒng)的電力系統(tǒng)潮流分析是利用單個或多個處理機進行就地計算,而隨著電網(wǎng)運行的數(shù)據(jù)大幅增加,需要處理數(shù)據(jù)增幅也較高,計算資源已成為大規(guī)模潮流計算的瓶頸[1-4]。
從網(wǎng)格計算、分布式計算,伴隨大規(guī)模信息化進程演化和發(fā)展而來的云計算,善于整合眾多分布式計算機,形成巨量數(shù)據(jù)的高效儲存、分析、運算能力,在分配算法的基礎(chǔ)上可以充分利用儲存能力高和運算能力強的特點,快速分配、執(zhí)行任務(wù),自由靈活擴展和調(diào)用,同時可靠性、經(jīng)濟性也符合要求。在電力系統(tǒng)中合理運用云計算技術(shù),在云計算平臺上形成的電力系統(tǒng)的分析計算平臺,充分利用電網(wǎng)已有的硬件軟件資源,對提高電網(wǎng)安全運行水平和數(shù)據(jù)處理能力具有極大的現(xiàn)實意義[5-6]。
云計算環(huán)境下電力系統(tǒng)靜態(tài)安全分析包括并行算法和云計算任務(wù)分配算法兩個方面。前推回代法及以此方法為拓展的潮流計算方法是目前配電網(wǎng)潮流計算中最常用的算法。但前推回代法存在并行化程度并不高的問題;也有研究將預(yù)處理共軛梯度法和牛頓迭代法相結(jié)合,但共軛梯度法對通信資源響應(yīng)要求較高,進而降低了算法的擴展性。本文將牛頓迭代法中的雅可比矩陣做適當(dāng)?shù)姆至眩瑏硖岣卟⑿行?。云計算任?wù)分配算法分為靜態(tài)分配算法和動態(tài)分配算法[7-8]。靜態(tài)資源分配算法指的是在資源分配過程中分配策略是固定的,不采用反饋機制,這類算法主要包括遺傳算法、蟻群算法、輪轉(zhuǎn)算法等;其優(yōu)點是簡單、快速、分配方案合理。但算法的決策過程耗時過長,不能充分發(fā)揮云計算的特點。動態(tài)分配算法采用反饋機制調(diào)整策略的參數(shù),還可以稍微調(diào)整分配策略,使系統(tǒng)的資源能夠合理利用,優(yōu)點是隨時掌握云計算的實時情況,適應(yīng)性較強。但對應(yīng)分配算法較為復(fù)雜,實時監(jiān)控的能源消耗也大,策略不合適也會引起負荷不均衡。本文依據(jù)電力系統(tǒng)靜態(tài)安全分析特點,綜合并行運算計算時間和相互通信過程,給出一種合理利用云平臺資源縮短計算時間的任務(wù)分配方法。
利用計算機求解各類非線性問題,其本質(zhì)為利用迭代方式實現(xiàn)非線性代數(shù)問題的解的近似,對非線性代數(shù)方程組的數(shù)值迭代求解方法是求解的關(guān)鍵。
考慮非線性方程組:
(1)
式中:F為非線性映射;Ω是RN中任一有界集,X是Ω的一個向量,同時假定F為光滑函數(shù)。
解方程組式(1)的牛頓法為:
xk+1=xk-F′(xk)-1F(xk)k=0,1,…
(2)
其牛頓方程組為:
F′(xk)x=F′(xk)xk-F(xk)
(3)
作如下替換:
(4)
進一步可得:
A(xk)x=b(xk)
(5)
令Mt(xk)、Nt(xk)、Et均是N×N矩陣,t=1,2,…,α,α為分裂重數(shù),若滿足以下兩條件:
1)A(xk)=Mt(xk)-Nt(xk),Mt(xk)-1存在;
則三元組(Mt(xk),Nt(xk),Et)稱為矩陣A(xk)的一個多分裂[10-13],式(5)進一步寫成:
xm+1=Mt(xk)-1Nt(xk)xm+Mt(xk)-1b(xk)t=1,2,…,α
(6)
用權(quán)矩陣Et組合α個方程組,可得:
(7)
假定讓迭代停留在第l步,經(jīng)計算可得:
xk,l=xk,0+[H(xk)l-I]+
[H(xk)l-1+…+I]G(xk)b(xk)
(8)
因又有如下關(guān)系:
(9)
第l步迭代式可進一步寫成:
xk,l=xk,0-[H(xk)l-1+…+I]G(xk)[F′(xk)xk,0-F′(xk)xk+F(xk)]
(10)
設(shè)xk,0=xk,記xk,l=xk+1,則得牛頓-并行矩陣多分裂算法的迭代格式:
xk+1=xk-[H(xk)l-1+…+I]G(xk)F(xk)
(11)
對m=0,1,…,運算步驟大致如下:
(1) 各并行運算器單獨計算如式(12)的局部迭代,求解yt可直接求解也可進行迭代運算。
yt=Mt(xk)-1Nt(xk)xm+Mt(xk)-1b(xk)
(12)
(2) 完成后將局部迭代值結(jié)果yt送到指定處理器主機按照式(13)進行加權(quán)平均而得到整體迭代值,然后將xm+1送回各處理機以開始下一步局部迭代。
(13)
在采用直角坐標系的前提條件下,基于牛頓法的電力系統(tǒng)潮流計算可由下列方程描述[13-16]:
ΔW=-JΔV
(14)
式中:
雅可比矩陣中各元素通過偏導(dǎo)數(shù)求得,當(dāng)i≠j如式(15)所示,當(dāng)i=j如式(16)所示:
(15)
(16)
式中:Pi為PQ、PV節(jié)點注入的有功功率,Qi為PV節(jié)點注入的無功功率;Gij為自導(dǎo)納,Bij為互導(dǎo)納;ei為迭代過程中節(jié)點電壓的實部;fi為迭代過程中節(jié)點電壓的虛部,ej為平衡點電壓的實部;fj分別為平衡點電壓的虛部。
迭代運算求解修正方程過程中,雅可比矩陣各元素的數(shù)值不斷變換,其為節(jié)點電壓的函數(shù);雅可比矩陣中i≠j的部分中的元素的表達式只用到導(dǎo)納矩陣中的對應(yīng)元素。若節(jié)點導(dǎo)納矩陣的互導(dǎo)納為0,則雅可比矩陣的互導(dǎo)納也為0。因此,可參考節(jié)點導(dǎo)納矩陣的稀疏矩陣的求解技巧求解分塊形式的雅可比矩陣的修正方程。根據(jù)雅可比矩陣的特點,雅可比矩陣可按下式進行分裂:
(17)
式中:Y為節(jié)點導(dǎo)納矩陣。
如圖1所示,配電網(wǎng)可以根據(jù)其聯(lián)絡(luò)線劃分子系統(tǒng)S1,S2,…,Sn,對于其中任一子系統(tǒng),其與外部的連接可以用等值負荷及連接阻抗來等效。等值負荷必須保證聯(lián)絡(luò)線兩端的傳輸功率的相同,這樣子系統(tǒng)內(nèi)的潮流計算僅與等效的連接阻抗和負荷參數(shù)有關(guān)。在電力系統(tǒng)分析計算中這種等效可在每次迭代過程中進行更新,因此任一子系統(tǒng)可以分別獨立求解,根據(jù)待計算系統(tǒng)的子系統(tǒng)劃分確定多重分裂矩陣的分裂重數(shù)α,各子系統(tǒng)內(nèi)部的矩陣分裂按照式(17)進行。
圖1 配電網(wǎng)子系統(tǒng)互聯(lián)示意圖
采用多重分裂矩陣方法進行電力系統(tǒng)靜態(tài)安全分析過程中,因其聯(lián)絡(luò)線間等效參數(shù)的相互傳遞,必然涉及多運算過程的并行處理以及相互間信息的傳遞,有必要協(xié)調(diào)各個并行運算過程的通信時間和計算時間,最大限度利用云平臺的計算能力。
圖2是多運算過程并行處理的一個典型示例。將并行的單一運算過程分為收到指令、分析和執(zhí)行三個部分,每個單一運算過程可以與其他單一運算過程同時運行。多個單運算過程在時間上可以在不同的處理器上交錯重疊地并行工作,因而縮短了整體任務(wù)的運行時間[9]。假定收到指令、分析和執(zhí)行的運行時間為t1、t2、t3, 在t1和t2之間,另外的單一運算過程可以進行指令操作,第k+1單一運算過程在進行分析時,第k單一運算則可進行執(zhí)行操作。在云平臺中,每個并行過程可對應(yīng)于一個虛擬運算器。
圖2 多運算過程并行處理的一個典型示例
為保證各并行過程運算結(jié)果的先后差異,也為實現(xiàn)各子過程信息流的同步推進,所有的運算周期采用統(tǒng)一的時鐘信號進行控制,此時鐘信號稱為固定運算周期。考慮到各并行過程在運算過程中的傳輸及延時,各并行過程的劃分會因通信需要增多而增加傳輸延遲,從而一定程度上降低了因細分子過程帶來的運行速率的加快,因此分析使得任務(wù)完成時間最短的并行過程的設(shè)置個數(shù)是其中的關(guān)鍵。
設(shè)需要完成的指令條數(shù)為p,子過程數(shù)目為q,指令運算時間T=t1+t2+t3,通信的傳輸延遲為μ,則任務(wù)完成時間T(p)可由下式表示:
(18)
所有任務(wù)完成最短時間可轉(zhuǎn)化為如式(19)所示的函數(shù)求最優(yōu)解問題。
(19)
考慮到子過程的數(shù)目應(yīng)為正整數(shù),則最優(yōu)解的子過程數(shù)qb可由下式表示:
(20)
由此可得算法的具體步驟為:
(1) 計算取指令、分析和執(zhí)行三個子過程的運行時間分別為t1,t2,t3;鎖存器傳輸延時為μ;
(3) 計算qb。
上述最優(yōu)解可用于靜態(tài)安全分析計算云計算任務(wù)分配。將其應(yīng)用于云計算任務(wù)分配首先要先對潮流計算中每個指令的運算時間TN0和通信的延遲時間μ進行預(yù)評估,其中對于通信的延遲時間可通過所采用云平臺的系統(tǒng)配置得到。對指令運算時間的評估可按以下方法進行:對于節(jié)點數(shù)為N的潮流計算,按照所采用云平臺單虛擬機中已有的運行時間進行樣本評估,得到評估運算時間TN,設(shè)除去平衡節(jié)點后有α個節(jié)點且迭代次數(shù)為kN,對于上文分裂算法的潮流計算,每次迭代都需要計算雅可比矩陣和非平衡節(jié)點的有功功率和無功功率,則該潮流計算的指令運算時間TN0可由下式進行估算:
(21)
得到指令運算時間后,按照式(20)通過優(yōu)化算法確定該并行運算過程的子過程數(shù)最優(yōu)解qb,即為當(dāng)前計算任務(wù)分配qb個虛擬機。將N節(jié)點的潮流計算的每一次迭代過程通過計算任務(wù)按照計算次序依次分配給qb個虛擬機,虛擬機也按次序接受任務(wù),即按照從1到qb的次序接受任務(wù),每個虛擬機在一輪qb個計算任務(wù)中僅接受一次任務(wù),第qb個虛擬機接受完任務(wù)后再從第一個虛擬機按次序接受計算任務(wù)。通過以上過程實現(xiàn)協(xié)調(diào)考慮運算時間和通信時間的合理分配,可進一步縮短靜態(tài)安全分析計算的運行時間。
完成電力系統(tǒng)潮流計算矩陣方程的分裂后按照前文所述方法進行計算,計算流程圖如圖3所示。設(shè)f為云計算環(huán)境下最優(yōu)虛擬運算器數(shù),k為迭代次數(shù),第r臺虛擬機為fr(r=1,2,…,f),針對分裂后的矩陣并行計算步驟如下所示:
圖3 計算流程圖
(1) 在fr中賦初始值x0,存儲雅可比矩陣和節(jié)點導(dǎo)納矩陣,設(shè)置計算精度ε和k等于0。
(2) 在fr中按式(12)進行迭代計算,并將計算結(jié)果傳遞至主虛擬運算器。
(3) 并行計算各潮流運算結(jié)果Vk+1=Vk+ΔVk+1,判斷前后次迭代輸出是否滿足精度ε,如果所有虛擬機都成立,則輸出ΔV,若不滿足精度要求,則轉(zhuǎn)到步驟(2)。
為了驗證上述算法,本文采用IEEE33節(jié)點和292節(jié)點的配電網(wǎng)系統(tǒng)數(shù)據(jù)。應(yīng)用阿里云的云服務(wù)器ECS作為運算平臺,ECS系統(tǒng)架構(gòu)如圖4所示。ECS主機CPU是16核,內(nèi)存64 GB,采用OSS對象存儲存放電網(wǎng)模型文件、斷面文件和潮流圖等,OSS存儲容量為1 TB,通過與傳統(tǒng)計算方法對比,驗證本文算法的有效性[17-18]。
圖4 ECS系統(tǒng)架構(gòu)
本文提出的云計算環(huán)境下電力系統(tǒng)靜態(tài)安全分析算法包含并行算法和云計算任務(wù)分配算法兩部分。為驗證本文的分配算法和并行計算算法提升計算速率的有效性,將本文算法與配網(wǎng)潮流計算中當(dāng)前較為常用的前推回代法、任務(wù)分配的貪心算法進行了實驗對比。貪心算法的基本思路是將問題的某一變量作為優(yōu)化目標,然后進行分級處理,將大問題劃分為多個步驟,按步執(zhí)行求解,任一過程的分配求解均按照既定的最優(yōu)原則,從而使得整個問題找到最優(yōu)解。本文實驗中采用的貪心算法思路為:以整體計算時間最小為優(yōu)化目標安排有M個虛擬機完成N個任務(wù),計算進行中的每一個步都按其完成時間最小虛擬機完成當(dāng)前任務(wù),進而達到時間最優(yōu)解。其最終目標與本文尋求最短計算時間的目標一致。
將33節(jié)點系統(tǒng)化為3個子系統(tǒng),292節(jié)點系統(tǒng)化為6個子系統(tǒng),實驗結(jié)果如表1-表4所示。表1為資源分配貪心算法下,采用本文分裂算法與前推回代法的不同虛擬機數(shù)目的33節(jié)點潮流計算時間對比。表2為資源分配貪心算法下,采用本文分裂算法與前推回代法的不同虛擬機數(shù)目的292節(jié)點潮流計算時間對比。表3為本文資源分配算法下,采用本文分裂算法與前推回代法的不同虛擬機數(shù)目的33節(jié)點潮流計算時間對比。表4為本文資源分配算法下,采用本文分裂算法與前推回代法的不同虛擬機數(shù)目的292節(jié)點潮流計算時間對比。
表1 貪心算法下,不同迭代算法33節(jié)點實驗結(jié)果
表2 貪心算法下,不同迭代算法292節(jié)點實驗結(jié)果
表3 本文算法下,不同迭代算法33節(jié)點實驗結(jié)果
表4 本文算法下,不同迭代算法292節(jié)點實驗結(jié)果
采用本文的方法可以有效利用云平臺資源實現(xiàn)潮流計算效率的提高。從33節(jié)點和292節(jié)點的實驗結(jié)果可以看出,本文的分裂并行算法在節(jié)點擴展和云平臺虛擬機增加的情況下有更好的適應(yīng)性,可有效縮短計算時間,從而能夠適應(yīng)當(dāng)前電網(wǎng)規(guī)模不斷擴大情況下的分析計算任務(wù)需求。由于虛擬機之間的通信過程也會影響算法的效率,虛擬機數(shù)量的提升不能帶來計算效率的線性變化,實驗結(jié)果顯示本文的計算任務(wù)分配算法可進一步縮短計算過程,同時在云平臺虛擬機數(shù)目增多的情況下,相比之前的分配算法可以更加充分利用云平臺的各種資源,避免虛擬機資源的浪費,為在有限資源上實現(xiàn)更大規(guī)模的快速計算提供了空間。實驗也表明,將分裂并行算法和任務(wù)分配算法結(jié)合后的基于云計算的電力系統(tǒng)快速靜態(tài)安全分析方法可以合理利用云平臺資源豐富的優(yōu)勢解決電力系統(tǒng)分析計算規(guī)模和要求日益提高的現(xiàn)實問題。
本文提出一種電力系統(tǒng)快速靜態(tài)安全分析云計算的實現(xiàn)方法,包括分裂并行算法和云計算任務(wù)分配算法兩部分。利用多重分裂牛頓法,通過對雅可比矩陣進行分裂和子系統(tǒng)的劃分,實現(xiàn)靜態(tài)安全分析潮流方程的并行計算。對于并行計算任務(wù)在云計算中的分配,綜合考慮運算時間和相互間通信時間,確定運算時間最小值的子過程劃分,并將任務(wù)依次分配給各子過程。所提方法迭代次數(shù)較少,計算時間較短,并行效率較高,具有較好的可擴展性,是充分利用云計算海量存儲和計算能力快速求解大型非線性方程組的一種有效方法,通過實驗算例驗證了分裂并行算法和云計算任務(wù)分配算法的可行性和有效性,對提高云計算環(huán)境下的電力系統(tǒng)靜態(tài)安全分析效率有一定的實用意義。