胡鵬飛,胡潤(rùn)滋
(1.重慶市電力公司檢修分公司,重慶400039;2.重慶市電力公司電力調(diào)度控制中心,重慶400014)
節(jié)點(diǎn)阻抗矩陣方程是電力系統(tǒng)故障分析計(jì)算以及繼電保護(hù)整定計(jì)算中應(yīng)用較廣泛的一種數(shù)學(xué)模型。支路追加法是形成節(jié)點(diǎn)阻抗矩陣的常用方法,它要求支路追加順序必須滿(mǎn)足一定的條件,而此順序可由人工預(yù)先通過(guò)對(duì)支路編號(hào)來(lái)制定,或者由計(jì)算程序自動(dòng)查找。采用人工編號(hào)的方法,較繁瑣費(fèi)時(shí),已不能適應(yīng)現(xiàn)代大規(guī)模電網(wǎng)計(jì)算機(jī)應(yīng)用的要求。由于符合一般支路追加原則的支路順序組合較多,而依據(jù)不同的支路追加順序,形成節(jié)點(diǎn)阻抗矩陣所需要的計(jì)算量差異較大,因此有必要研究計(jì)算大規(guī)模電網(wǎng)最優(yōu)追加順序的方法,這方面的研究尚未見(jiàn)報(bào)道。本文基于廣度優(yōu)先搜索原理,提出一種形成節(jié)點(diǎn)阻抗矩陣的支路優(yōu)化排序新方法。
節(jié)點(diǎn)阻抗矩陣描述了節(jié)點(diǎn)電流和節(jié)點(diǎn)電壓之間的關(guān)系,由于電力網(wǎng)絡(luò)一般是連通的,網(wǎng)絡(luò)各部分之間有著電或磁的聯(lián)系,因而阻抗矩陣是一個(gè)滿(mǎn)秩對(duì)稱(chēng)矩陣。
支路追加法將整個(gè)網(wǎng)絡(luò)看成從第一條接地支路開(kāi)始,逐條追加支路,最后將全部支路按預(yù)定方式連接起來(lái),構(gòu)成整個(gè)網(wǎng)絡(luò)。在支路追加過(guò)程中,根據(jù)新增支路與已加支路的拓?fù)溥B接關(guān)系,所追加的支路可分為樹(shù)支、鏈支兩種類(lèi)型,根據(jù)其是否與參考節(jié)點(diǎn)關(guān)聯(lián),又可分為接地樹(shù)支、非接地樹(shù)支,以及接地鏈支、非接地鏈支。追加樹(shù)支和鏈支需要分別計(jì)算處理,且其計(jì)算方法也完全不同。
設(shè)原網(wǎng)絡(luò)獨(dú)立節(jié)點(diǎn)數(shù)為n,接入與原網(wǎng)絡(luò)中支路i-j屬同組互感支路阻抗為Zlm-lm的互感樹(shù)支見(jiàn)圖1。
圖1 向原網(wǎng)絡(luò)接入非接地互感樹(shù)支
接入Zlm-lm互感支路后的阻抗矩陣Z'由原網(wǎng)絡(luò)阻抗矩陣Z修正得來(lái),其修正元素的值根據(jù)阻抗矩陣元素的物理意義,由圖1所示求得Zkm、Zmk、Zmm的值為:
式中:E為單位陣;
ylm-lm為互感支路l-m的自感導(dǎo)納;
ylm-ij為互感支路l-m與i-j之間的互感導(dǎo)納;
若追加為接地互感支路Zom時(shí),只要將公式(1)、(2)中帶有下標(biāo)為l的阻抗元素置0。若令公式中互感為0,即為追加無(wú)互感樹(shù)支阻抗矩陣元素的修正計(jì)算公式。
追加互感鏈支可看作先追加支路阻抗為Zlm'-lm'=Zlm-lm的互感樹(shù)支,如圖2(a),再追加支路阻抗Zm'-m=0無(wú)互感鏈支,如圖2(b).利用已知追加互感樹(shù)支和無(wú)互感鏈支計(jì)算公式,可得追加互感鏈支時(shí)阻抗矩陣元素修正公式。
圖2(a) 向原網(wǎng)絡(luò)接入非接地互感樹(shù)支
根據(jù)追加無(wú)互感鏈支的算法,在節(jié)點(diǎn)m與虛擬節(jié)點(diǎn)m'之間接入支路阻抗為0的鏈支(見(jiàn)圖2(b))。
圖2(b) 加入無(wú)互感鏈支
修正原網(wǎng)絡(luò)矩陣Z為Z':
Z'=Z-ZnLZ-1LLZLn式中ZnL=Zkm-Zkm',
ZnL=ZTnL(k=1,2,…,n)
又因?yàn)閆'是對(duì)稱(chēng)陣,只計(jì)算對(duì)角元及上三角元,則Z'的任意元素計(jì)算公式為:
其中:(h=1,2,…n;k=h,h+1,…n)
所以當(dāng)向網(wǎng)絡(luò)追加一條互感鏈支l-m時(shí),公式(3)中的ZhL,ZkL,ZLL由下式計(jì)算
支路追加法形成節(jié)點(diǎn)阻抗矩陣,從形成過(guò)程計(jì)算公式來(lái)看,我們清楚地看到:
(1)追加樹(shù)支不影響矩陣的原有部分,每增加一個(gè)新節(jié)點(diǎn)矩陣就增加一階,新增節(jié)點(diǎn)的行(列)元素只與引出該樹(shù)支的原有節(jié)點(diǎn)和與其有互感影響的支路相關(guān)。形成過(guò)程直觀容易,且運(yùn)算量小。
(2)追加鏈支比追加樹(shù)支要復(fù)雜得多,運(yùn)算量大,且繁瑣。因?yàn)樽芳渔溨б拚仃囁性?,若?jì)及互感,計(jì)算過(guò)程將更復(fù)雜,計(jì)算量也將成倍增長(zhǎng)。
以上兩點(diǎn)給我們啟示,在支路追加過(guò)程中,雖然支路追加只要符合要求,其追加順序是任意的,但是不同的追加順序,其計(jì)算量的差異也相當(dāng)大。若在追加前對(duì)追加順序進(jìn)行排序優(yōu)化,利用排序結(jié)果順序追加支路,可大大減少追加過(guò)程中的計(jì)算量,節(jié)省運(yùn)算時(shí)間,提高運(yùn)算速度,且占用內(nèi)存也最小。
因此,優(yōu)化排序過(guò)程的排序應(yīng)基于以下原則:
(1)追加無(wú)互感支路時(shí),宜在低階時(shí)追加鏈支,即網(wǎng)絡(luò)每增加一個(gè)新節(jié)點(diǎn),應(yīng)將與之有關(guān)的鏈支追加完畢后,再追加下一條樹(shù)支。因?yàn)榫仃囯A數(shù)越高,就會(huì)引起追加鏈支時(shí)修正計(jì)算量成倍增長(zhǎng),有互感時(shí),計(jì)算量更大。
(2)追加互感支路時(shí),宜于整組追加或多條追加。這樣可以避免逐條追加互感支路的算法中對(duì)互感矩陣Zm分階求逆計(jì)算,減少其計(jì)算量和繁瑣過(guò)程。
根據(jù)網(wǎng)絡(luò)接線(xiàn)圖,我們把除接地節(jié)點(diǎn)標(biāo)注為0節(jié)點(diǎn)外,其余節(jié)點(diǎn)任意編號(hào),把編號(hào)情況以鄰接表(adjacency list)形式存儲(chǔ)。在排序過(guò)程中充分運(yùn)用廣度優(yōu)先搜索遍歷圖。
2.2.1 鄰接表、廣度優(yōu)先搜索
鄰接表是無(wú)向圖的一種鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。在鄰接表中對(duì)網(wǎng)絡(luò)中的每個(gè)節(jié)點(diǎn)建立一個(gè)單鏈表,第i個(gè)單鏈表中的節(jié)點(diǎn)依附于節(jié)點(diǎn)i的支路。每個(gè)節(jié)點(diǎn)由三個(gè)域組成,其中鄰節(jié)點(diǎn)域(adjvex)指示與節(jié)點(diǎn)i鄰接的點(diǎn)在圖中的位置,鏈域(nextarc)指示下一條支路的節(jié)點(diǎn),數(shù)據(jù)域(info)存儲(chǔ)和支路相關(guān)的信息,如支路的阻抗或互感情況等。每個(gè)鏈表上附設(shè)一個(gè)表頭節(jié)點(diǎn)。在表頭節(jié)點(diǎn)中,除了設(shè)有鏈域(firstarc)指向鏈表第一個(gè)節(jié)點(diǎn)外,還設(shè)有存儲(chǔ)節(jié)點(diǎn)i的節(jié)點(diǎn)名或其他有關(guān)信息的數(shù)據(jù)域(vexdata),按如下所示。
表節(jié)點(diǎn):adjvex nextarc info
頭節(jié)點(diǎn):vexdata firstarc
廣度優(yōu)先搜索是從網(wǎng)絡(luò)節(jié)點(diǎn)0出發(fā),在訪(fǎng)問(wèn)節(jié)點(diǎn)0之后依次訪(fǎng)問(wèn)節(jié)點(diǎn)0的各個(gè)未曾訪(fǎng)問(wèn)過(guò)的鄰節(jié)點(diǎn),然后從這些鄰節(jié)點(diǎn)出發(fā),廣度優(yōu)先搜索遍歷圖,直到圖中所有已被訪(fǎng)問(wèn)節(jié)點(diǎn)的鄰節(jié)點(diǎn)都被訪(fǎng)問(wèn)到,重復(fù)上述過(guò)程,直到網(wǎng)絡(luò)中的所有節(jié)點(diǎn)都被訪(fǎng)問(wèn)到為止。
2.2.2 排序的實(shí)現(xiàn)
(1)從接地節(jié)點(diǎn)0開(kāi)始進(jìn)行廣度優(yōu)先搜索,搜索到與節(jié)點(diǎn)0的所有鄰節(jié)點(diǎn),追加這些鄰節(jié)點(diǎn)接地樹(shù)支,把這些鄰節(jié)點(diǎn)組成的集合記為T(mén)0。
(2)通過(guò)鄰接表判斷T0中節(jié)點(diǎn)之間是否存在支路直接連接。若有,追加鄰節(jié)點(diǎn)之間所在支路,即追加鏈支。
(3)通過(guò)鄰接表中的數(shù)據(jù)域判斷已追加過(guò)的支路是否與其他支路有無(wú)互感情況。若有,分兩種情形追加:
①判斷與該支路的同組互感支路是否與Ti(Ti為網(wǎng)絡(luò)中每個(gè)節(jié)點(diǎn)i的所有鄰節(jié)點(diǎn)的集合,i=0,1,…,n)中的節(jié)點(diǎn)有關(guān)。若有關(guān),搜索Ti中所有與此有互感的節(jié)點(diǎn)i所在的鄰節(jié)點(diǎn),整組追加節(jié)點(diǎn)i所在同組互感支路。
②若與該支路的同組互感支路與出現(xiàn)過(guò)的節(jié)點(diǎn)沒(méi)有關(guān)系,而與以后的節(jié)點(diǎn)有關(guān),暫時(shí)不用追加該支路,留待追加到該支路所在的節(jié)點(diǎn)時(shí)再進(jìn)行單獨(dú)追加。
(4)對(duì)T0中的每個(gè)節(jié)點(diǎn)i依次進(jìn)行廣度優(yōu)先搜索,每個(gè)節(jié)點(diǎn)i所在的所有鄰節(jié)點(diǎn)記為集合Ti(i為T(mén)0中的節(jié)點(diǎn)編號(hào))。
(5)利用鄰接表的信息,對(duì)集合Ti中的節(jié)點(diǎn)分為以下步驟進(jìn)行判斷追加:
①判斷與Ti集合中的節(jié)點(diǎn)相關(guān)聯(lián)的支路是否已經(jīng)追加,若已追加,則忽略該支路。
②判斷Ti集合中的節(jié)點(diǎn)是否已經(jīng)出現(xiàn)過(guò)的節(jié)點(diǎn)。若有,則追加i節(jié)點(diǎn)到該鄰節(jié)點(diǎn)所在的鏈支支路。并判斷該追加鏈支支路與其他支路有無(wú)互感存在,若有,按(3)進(jìn)行。
③若不存在(5)中②所述的節(jié)點(diǎn),則判斷Ti中節(jié)點(diǎn)是否與已經(jīng)出現(xiàn)的節(jié)點(diǎn)有支路直接連接。若有,追加已出現(xiàn)的節(jié)點(diǎn)與Ti中該鄰節(jié)點(diǎn)連接的樹(shù)支支路。
(A)判斷所追加的樹(shù)支支路與其他支路是否有互感,若有,按(3)進(jìn)行。
(B)再追加該鄰節(jié)點(diǎn)與已出現(xiàn)的有連接關(guān)系的所有節(jié)點(diǎn)所在的鏈支支路。
(C)判斷所追加的支路有無(wú)互感情況,若有,用(3)進(jìn)行。
④若②、③的情況都不存在,判斷Ti集合中的節(jié)點(diǎn)之間是否有支路直接相連。若有,整體追加i與這種節(jié)點(diǎn)的樹(shù)支支路.
(A)判斷所追加的樹(shù)支支路與其他支路是否有互感,若有,按(3)進(jìn)行。
(B)接著追加該鄰節(jié)點(diǎn)之間的鏈支支路。并判斷所追加的鏈支支路與其他支路是否有互感,若有,按(3)進(jìn)行。
(6)其余節(jié)點(diǎn)利用鄰接表和廣度搜索,反復(fù)按(5)的步驟進(jìn)行。直到網(wǎng)絡(luò)的所有支路追加完畢為止。
(7)輸出排序結(jié)果,按此順序形成節(jié)點(diǎn)阻抗矩陣。
(8)結(jié)束。
從上述算法來(lái)看,在追加過(guò)程中始終遵循在低階時(shí)追加鏈支支路,同時(shí)每追加一條支路判斷是否有互感,進(jìn)行整組追加互感,完全遵循優(yōu)化排序所基于的原則。該算法用計(jì)算機(jī)編程語(yǔ)言也易于實(shí)現(xiàn)。
根據(jù)以上算法過(guò)程,以圖(3)所示網(wǎng)絡(luò)接線(xiàn)圖為例說(shuō)明其排序過(guò)程。
如圖所示網(wǎng)絡(luò),該網(wǎng)絡(luò)有5個(gè)節(jié)點(diǎn),支路1-5、3-5、4-5為同組互感支路。以鄰接表形式存儲(chǔ)該網(wǎng)絡(luò),在數(shù)據(jù)域中設(shè)置a,表示屬于同組互感的支路,見(jiàn)圖4。
按優(yōu)化排序算法,過(guò)程如下:
圖3 算例網(wǎng)絡(luò)圖
圖4 網(wǎng)絡(luò)鄰接表
①由算法步驟(1),廣度搜索到接地節(jié)點(diǎn)0所有鄰節(jié)點(diǎn)集合T0={3,5}。則同時(shí)追加0-3、0-5接地樹(shù)支。
②由算法步驟(2)通過(guò)鄰接表判斷集合T0中節(jié)點(diǎn)3、5之間有支路直接連接,追加鏈支支路3-5。
③由算法步驟(3)并由鄰接表的數(shù)據(jù)域判斷知支路3-5與支路1-5、4-5有互感,同時(shí)判斷到該同組互感支路與T0中的節(jié)點(diǎn)5有關(guān)系,則同時(shí)整組追加 3-5、1-5、4-5 互感樹(shù)支。
④由算法步驟(4)得T0中的節(jié)點(diǎn)3、5的鄰節(jié)點(diǎn)集合分別為 T3={1,2,4},T5={1,3,4}。
⑤由算法步驟(5)對(duì) T3={1,2,4}進(jìn)行判斷,得知節(jié)點(diǎn)1、4為已出現(xiàn)的節(jié)點(diǎn),則可整組追加3-1、3-4鏈支支路。通過(guò)鄰接表數(shù)據(jù)域判斷支路3-1、3-4與其他支路無(wú)互感存在,跳過(guò)追加互感步驟。
⑥再追加樹(shù)支支路3-2。
⑦由算法步驟(5)②中判斷集合T5={1,3,4}中的節(jié)點(diǎn)所關(guān)聯(lián)的支路都已經(jīng)追加,不再進(jìn)行追加。
⑧判斷追加完畢,結(jié)束過(guò)程,輸出排序結(jié)果如下:
{0-3,0-5}{3-5,1-5,4-5}{3-1,3-4}{3-2}
⑨按(8)的排序結(jié)果追加形成阻抗矩陣。
本文給出了形成節(jié)點(diǎn)阻抗矩陣優(yōu)化支路追加順序的基本原則,在此基礎(chǔ)上,利用鄰接表和廣度優(yōu)先搜索技術(shù)形成最優(yōu)支路追加順序的新方法,利用此排序結(jié)果大大減少了形成節(jié)點(diǎn)阻抗矩陣的計(jì)算量,提高了計(jì)算速度。該算法內(nèi)存占用少、易于編程實(shí)現(xiàn)。
[1] 何仰贊,溫增銀.電力系統(tǒng)分析(上)[M].武漢:華中理工大學(xué)出版社,1995.
[2] 米麟書(shū),江世芳.電網(wǎng)繼電保護(hù)的計(jì)算機(jī)輔助分析[M].北京:水利電力出版社,1995.
[3] 嚴(yán)蔚敏,吳偉民.數(shù)據(jù)結(jié)構(gòu)[M].北京:清華大學(xué)出版社,1991.
[4] 呂飛鵬,王強(qiáng),張軍文,等.修正節(jié)點(diǎn)阻抗矩陣元素的遞歸算法[J].繼電器,2000,(10).
重慶電力高等專(zhuān)科學(xué)校學(xué)報(bào)2012年1期