王 磊 吳德軍 姜 濤 趙軍偉 王仕韜 肖 明 孫學(xué)軍
1.國網(wǎng)技術(shù)學(xué)院 山東 濟(jì)南 250002
2.濟(jì)南市供電公司 山東 濟(jì)南 250001
拓?fù)浞治鍪请娏ο到y(tǒng)故障診斷、系統(tǒng)仿真以及潮流計算的基礎(chǔ),文獻(xiàn)[1-2]等算法的提出都建立在一種電網(wǎng)拓?fù)涞臄?shù)據(jù)結(jié)構(gòu)之上。本文提出了一種基于IEC61970-CIM模型的電網(wǎng)拓?fù)涮崛『蛻?yīng)用方法,通過建立以XML形式存放的廠站邏輯視圖和內(nèi)存數(shù)據(jù)模型之間的映射關(guān)系,把對文件的遍歷操作轉(zhuǎn)移成對內(nèi)存數(shù)據(jù)的操作,不僅在速度上優(yōu)于傳統(tǒng)的拓?fù)浞椒?,而且能夠表?/2斷路器等復(fù)雜接線方式。
目前利用CIM進(jìn)行電網(wǎng)拓?fù)涞闹饕椒ㄊ腔趶S站設(shè)備模型來完成拓?fù)浣Y(jié)構(gòu)自動生成和完整性檢查,使用的解析工具主要為文檔對象模型DOM/JDOM和簡單應(yīng)用程序接口SAX,并利用XML 進(jìn)行標(biāo)準(zhǔn)化存?。?-5]。
此方法對各電氣元件及其相互之間連接關(guān)系的查詢完全依賴其邏輯視圖,在實際應(yīng)用中會產(chǎn)生以下兩個問題:
1)拓?fù)渖珊蜋z索速度慢。通過SVG圖元組合形成的廠站接線圖以XML格式的文件存儲,雖然XML作為信息交換格式文件,在解決數(shù)據(jù)孤島方面有其巨大的優(yōu)勢,但對XML的操作完全是基于文件的,沒有任何索引機(jī)制,讀取、查詢XML數(shù)據(jù)要消耗大量的CPU和內(nèi)存資源。因此直接對廠站接線圖頻繁的讀取拓?fù)鋽?shù)據(jù)會成為系統(tǒng)運(yùn)行的瓶頸。
2)拓?fù)淇煽啃圆?。該方法把廠站接線直接暴露給應(yīng)用層用戶,容易引起對數(shù)據(jù)的誤操作,而一旦發(fā)生此情況不易察覺,會導(dǎo)致廠站接線與實際線路不匹配。
綜合以上兩點,如果直接在CIM模型上進(jìn)行拓?fù)浞治?,雖然有完整的算法為依據(jù),但是程序執(zhí)行速度與效率較為低下。本文根據(jù)CIM模型的特點設(shè)計了一種新型的數(shù)據(jù)結(jié)構(gòu),使其成為CIM在內(nèi)存中的映射,這樣拓?fù)浠诘奈锢斫Y(jié)構(gòu)轉(zhuǎn)化為內(nèi)存,而不是存儲在硬盤上的XML文件,有效地提高了電網(wǎng)拓?fù)涞男阅堋?/p>
目前用來表示電力網(wǎng)絡(luò)的數(shù)據(jù)結(jié)構(gòu)總體來說分為3類:三元組表示法、矩陣表示法和鄰接表表示法。三元組表示法和矩陣表示法在表示形式上簡單、直觀,但是其主要缺點為結(jié)構(gòu)固定,表示形式單一。而鄰接表表示法表現(xiàn)形式較為靈活,但構(gòu)造過程復(fù)雜。本節(jié)就如何利用已有的CIM模型進(jìn)行拓?fù)浣7治觥?/p>
隨著電網(wǎng)規(guī)模的日益增大,電網(wǎng)拓?fù)涔?jié)點數(shù)不斷增加以及3/2接線的廣泛使用,使得傳統(tǒng)的拓?fù)浞椒▽Ω鞣N復(fù)雜接線方式缺乏通用性,例如文獻(xiàn)[1]中用三元組[(設(shè)備名 1),(斷路器名),(設(shè)備名2)]來表達(dá)拓?fù)湫畔?,其中設(shè)備代表變壓器、母線和線路,這樣就無法表達(dá)3/2接線中斷路器直連的情況。文獻(xiàn)[6]用關(guān)聯(lián)矩陣及鄰接矩陣表示的電網(wǎng)拓?fù)浞治龇椒▋H能證明各頂點的可達(dá)行,中間經(jīng)過的路徑則不能給出具體描述。而文獻(xiàn)[7]將單端口有源設(shè)備作為節(jié)點,線路連同閉合的開關(guān)作為支路建立鄰接表,同樣未對3/2接線進(jìn)行拓?fù)浞治?。傳統(tǒng)方法難于表達(dá)3/2接線的主要原因在于把斷路器看作連接其他設(shè)備的通路,反映在抽象圖中成為邊(支路),母線、變壓器等設(shè)備成為圖的頂點(節(jié)點),因此3/2接線中出現(xiàn)的斷路器直連的情況反映在抽象圖中就成了兩條邊不通過頂點直接相連。這樣基于圖論的深度或廣度搜索算法在遍歷3/2接線時會出現(xiàn)歧義。
現(xiàn)就節(jié)點-支路關(guān)聯(lián)矩陣及鄰接矩陣表示3/2接線的不確定性證明如下:按照圖1a的接線方式建立關(guān)聯(lián)矩陣,其中B為節(jié)點-支路關(guān)聯(lián)矩陣,A為鄰接矩陣。
初始狀態(tài)B1和B2不相連接,按照圖論中的連通算法,A2為全1矩陣,即B1和B2經(jīng)過長度為2的通道相連,中間作為通道的節(jié)點只能為L1。反之,如果L1停運(yùn)或者發(fā)生斷路故障,此時
無論An中n取多大,B1和B2永遠(yuǎn)沒有通路。所以矩陣B,A表示的網(wǎng)絡(luò)拓?fù)鋺?yīng)該為圖1b,而不是圖1a。
圖1 簡化的3/2接線方式
解決3/2接線最直接的方法就是把斷路器也看作是抽象圖的頂點,這樣無論是矩陣或者鄰接表都能不加區(qū)分的表示各種接線方式。然而這樣的結(jié)果是頂點數(shù)目過于龐大,必然導(dǎo)致搜索效率的下降。本文在只增加少量頂點的前提下給出了一種普通接線與3/2接線通用的數(shù)據(jù)結(jié)構(gòu),使搜索算法不必區(qū)分接線方式就能達(dá)到遍歷全網(wǎng)的效果。
IEC61970通過Terminal(端子)以及Connectivity Node(連接點)反映設(shè)備之間的連接關(guān)系,在物理上相連的設(shè)備在CIM中通過自身的Terminal連接到一個公共的ConnectivityNode上;而鄰接表則對圖中每個頂點建立一個單鏈表,單鏈表中的結(jié)點表示依附于此頂點的所有邊。經(jīng)過對比可以得到在CIM中每一個ConnectivityNode都對應(yīng)于鄰接表中的一個單鏈表。通過以上分析,本文在Topology包的基礎(chǔ)上創(chuàng)建了兩個新類,Vertex類和adjNode類,分別對應(yīng)鄰接表的頭結(jié)點類和表結(jié)點類。Vertex的三個域分別為訪問標(biāo)志位、頂點名稱、首節(jié)點指針。Vertex類包含母線、線路、變壓器、電源以及連接兩個斷路器和一條出線的ConnectivityNode(程序中定義為Y節(jié)點),這樣3/2接線中兩個直連斷路器在本模型中對應(yīng)的兩條邊就通過Y頂點相連接。adjNode類反映了與Vertex類發(fā)生連接關(guān)系的電氣元件,即一個Vertex設(shè)備連接的ConnectivityNode有含有n個端子,則鄰接表中其對應(yīng)的單鏈表就有n-1個adjNode。每一個adjNode類有3個域,分別是關(guān)聯(lián)電氣元件的名稱、連接的斷路器、以及next域(本文只考慮某種運(yùn)行方式下的電網(wǎng)接線,把閉合隔離開關(guān)當(dāng)作導(dǎo)線處理)。根據(jù)Topology包建立鄰接表的UML框圖如圖2所示。
圖2 鄰接表的UML映射圖
圖3 實際線路與鄰接表對應(yīng)關(guān)系
通過CIM來構(gòu)造電網(wǎng)的鄰接表模型有效地解決了鄰接表初始化過于復(fù)雜的問題,而鄰接表則成為CIM在內(nèi)存中的映射,極大提高了電網(wǎng)的拓?fù)渌俣?,兩者互為補(bǔ)充。實際線路與鄰接表的對應(yīng)關(guān)系如圖3所示。
在該數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)上無論使用深度優(yōu)先算法還是廣度優(yōu)先算法進(jìn)行遍歷,都無需隨實際電網(wǎng)的變化修改內(nèi)存數(shù)據(jù),只要判斷一下搜索到的斷路器是否在“斷開”斷路器數(shù)組ArrayList中,從而決定是否繼續(xù)搜索該支路。ArrayList可以通過搜索SCADA得到,拓?fù)渌阉髋cArrayList的更新可以在兩個線程中并行運(yùn)行,所以搜索效率有很大提高。
根據(jù)IEC61970-552-4 CIM-XML模型交換格式和IEC61970-453基于CIM的圖形交換方案,本文提出的電網(wǎng)拓?fù)渖蓪哟谓Y(jié)構(gòu)如圖4所示:
圖4 電網(wǎng)拓?fù)渖蓪哟谓Y(jié)構(gòu)
電網(wǎng)拓?fù)湫畔⑻幚磉^程主要劃分為3個層次:模型定義層、數(shù)據(jù)填充層、應(yīng)用層。模型定義層主要通過RDF Scheme Editor軟件提供符合基于CIM規(guī)則的RDF數(shù)據(jù)文件,或者稱為CIM-XML模型數(shù)據(jù)文件。數(shù)據(jù)填充層通過此文件整合SVG圖元形成各個廠站接線圖,并以CIS服務(wù)的形式對上層提供接口。應(yīng)用層主要在電力調(diào)度上使用,通過不同的接口進(jìn)行故障分析、拓?fù)浞治觥⒄{(diào)度輔助決策等。
建立好的鄰接表以服務(wù)器的形式隨系統(tǒng)啟動,其優(yōu)勢主要體現(xiàn)在:①基于鄰接表的遍歷算法已經(jīng)相當(dāng)成熟,各個客戶端可以根據(jù)不同的需求編寫不同的算法得到想要的數(shù)據(jù)。以判斷故障區(qū)域為例:通過輸入動作斷路器然后調(diào)用圖的最大聯(lián)通子圖算法,得到不包含電源的子集即為停電區(qū)域;②一次啟動并長駐內(nèi)存,不需要重復(fù)生成,以多線程的訪問方式同時提供給不同客戶端需要的拓?fù)鋽?shù)據(jù),提高了系統(tǒng)的并行性。
本文以圖3所示的接線圖為例給出廣度優(yōu)先遍歷算法如圖5所示。假定B3為初始元件,則隊列的出隊、入隊過程以及遍歷中生成的斷路器連接樹如圖6所示:
圖5 基于鄰接表的廣度優(yōu)先算法
圖6 拓?fù)溥^程分析
如果將B3視為故障線路,通過分析可以看出,元件加入已訪問頂點集合的順序即為故障波及區(qū)域的先后次序;斷路器動作連接樹最上層對應(yīng)的保護(hù)應(yīng)為主保護(hù),第2層為近后備,再下層為遠(yuǎn)后備。
測試方案針對山東500kV電網(wǎng)生成拓?fù)?,涉及濱州、淄博、長清等25個廠站,其中除濰坊站外,其他各站均為3/2接線。
作為對照,我們也按文獻(xiàn)[3-4]所述的拓?fù)浞治龇椒?,在Java環(huán)境下利用MyEclipse工作平臺提供的JDOM直接對廠站接線文件進(jìn)行了廣度優(yōu)先拓?fù)渌阉鳒y試。相同硬件條件下比較結(jié)果如表1所示:
表1 搜索用時比較
從表1可以看出,本方法搜索時間遠(yuǎn)低于JDOM搜索用時,并且隨著電網(wǎng)節(jié)點數(shù)的增加,搜索方法的快速性優(yōu)勢也更加明顯。
1)本文從廠站圖形文件中提取設(shè)備名稱及其連接關(guān)系,形成拓?fù)溧徑颖?,使拓?fù)渌阉骰诘臄?shù)據(jù)結(jié)構(gòu)完全和CIM模型解耦,搜索方法的選擇更加的靈活,程序不受CIM模型的限制,運(yùn)算速度得到很大提升。
2)系統(tǒng)把數(shù)據(jù)處理過程分成3個層次,不僅對用戶屏蔽了底層數(shù)據(jù)源,避免了對原始拓?fù)鋽?shù)據(jù)的誤操作,而且使數(shù)據(jù)的調(diào)用更加具有層次性。
3)算法方面,拓?fù)渌阉髋cSCADA更新同步進(jìn)行,不僅提高了程序運(yùn)行速度,而且充分利用了硬件資源。
[1]方培培,李永麗,楊曉軍.Petri網(wǎng)與專家系統(tǒng)結(jié)合的輸電網(wǎng)絡(luò)故障診斷方法 [J].電力系統(tǒng)及其自動化學(xué)報,2005,17(2):26-30.
[2]許先鋒,龔樂年,陳星鶯.基于廣度優(yōu)先搜索和優(yōu)化算法的輸電網(wǎng)故障診斷 [J].電力系統(tǒng)及其自動化學(xué)報,2004,16(5):5-8.
[3]董朝霞,戴琦,楊峰.基于CIM和SVG的電網(wǎng)建模技術(shù)[J].電力系統(tǒng)及其自動化學(xué)報,2006,18(5):58-61.
[4]郭創(chuàng)新,齊旭,朱傳柏.基于SVG的電力調(diào)度圖形支撐平臺設(shè)計與實現(xiàn)[J].電力系統(tǒng)及其自動化學(xué)報,2007,19(2):28-33.
[5]陳根軍,顧全.基于 CIM的配電網(wǎng)一體化追蹤拓?fù)洌跩].電力系統(tǒng)自動化,2009,33(3):59-63.
[6]王湘中,黎曉蘭.基于關(guān)聯(lián)矩陣的電網(wǎng)拓?fù)浔孀R[J].電網(wǎng)技術(shù),2001,25(2):10-13.
[7]陳星鶯,孫恕堅,錢鋒.一種基于追蹤技術(shù)的快速電力網(wǎng)拓?fù)浞治龇椒ǎ跩].電網(wǎng)技術(shù),2004,28(5):22-25.