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