本發(fā)明涉及電力系統(tǒng)網(wǎng)絡(luò)拓?fù)浞治黾夹g(shù)領(lǐng)域,特別是涉及一種基于SVG格式電力系統(tǒng)接線圖網(wǎng)絡(luò)拓?fù)浞治龅姆椒ā?/p>
背景技術(shù):
電力系統(tǒng)網(wǎng)絡(luò)拓?fù)浞治鍪请娏ο到y(tǒng)中其他高級應(yīng)用程序的基礎(chǔ),然而目前已有的一些圖模庫一體化工具仍停留在手動錄入拓?fù)湫畔㈦A段,自動網(wǎng)絡(luò)拓?fù)浞治黾夹g(shù)仍不成熟。
雖然利用計(jì)算機(jī)代替?zhèn)鹘y(tǒng)的手工生成拓?fù)鋽?shù)據(jù)文件已成為最新的趨勢,且各種拓?fù)浞治鲕浖粩嘤楷F(xiàn),但是現(xiàn)有的拓?fù)浞治黾夹g(shù)一般基于dxf、dwg等格式文件進(jìn)行,而近年來,隨著以XML文件為底層載體的公共信息模型CIM逐漸被接受和采用,同樣以XML文件為載體的SVG格式也成為電力系統(tǒng)接線圖的主流存儲形式,因此針對SVG格式本身特點(diǎn)的拓?fù)浞治黾夹g(shù)還比較有限。
此外,很多現(xiàn)有的網(wǎng)絡(luò)拓?fù)浞治鏊惴ǖ男蔬€比較低下,對于設(shè)備圖元較多的網(wǎng)絡(luò)往往需要耗費(fèi)很長的時間。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于針對現(xiàn)有技術(shù)的局限性,提供一種基于SVG格式電力系統(tǒng)接線圖網(wǎng)絡(luò)拓?fù)浞治龅姆椒?。該方法針對SVG格式自身特點(diǎn)設(shè)計(jì),算法效率高。
本發(fā)明的技術(shù)方案是:
1)定義電力系統(tǒng)接線圖SVG格式的存儲方式;
2)端子信息檢索與配置:包括檢索具有端子信息的圖元、計(jì)算絕對坐標(biāo)、配置預(yù)參與拓?fù)涞亩俗有畔⑷齻€子步驟,三個子步驟依次實(shí)施,完成端子信息的配置以參與后續(xù)的拓?fù)浞治觯?/p>
3)母線拓?fù)浞治鲆詫?shí)現(xiàn)接線圖中母線與母線附近端子的拓?fù)溥B接;
4)端子拓?fù)浞治觯喊ǘ俗影醋鴺?biāo)排序、形成連接節(jié)點(diǎn)、連接節(jié)點(diǎn)維護(hù)與后處理三個子步驟,三個子步驟依次進(jìn)行,在母線拓?fù)浞治龌A(chǔ)上完成接線圖中設(shè)備、連接線間端子的拓?fù)溥B接;
5)將拓?fù)浞治鼋Y(jié)果顯示:包括連接節(jié)點(diǎn)標(biāo)示、孤立端子標(biāo)示兩個子步驟,兩個子步驟依次進(jìn)行,用不同的標(biāo)記標(biāo)示正確連接而形成的連接節(jié)點(diǎn)以及未連接的孤立端子;
6)連接線拓?fù)潢P(guān)系后處理:通過連接線實(shí)現(xiàn)設(shè)備間實(shí)際拓?fù)潢P(guān)系的確定。
在上述技術(shù)方案中,進(jìn)一步的,所述的步驟1)定義電力系統(tǒng)接線圖SVG格式存儲方式,具體為:一張接線圖的主圖層包括多個設(shè)備類型層,對每一個設(shè)備類型層包含多個元件層,對每一個元件層包含設(shè)備ID屬性,且每個元件層包含一個元件圖元層和一個元件數(shù)據(jù)層,元件圖元層包含元件圖元本身的圖形信息以及一個或多個端子信息層,每個端子信息層包含端子名稱及端子標(biāo)記,端子標(biāo)記用于區(qū)別端子信息層與元件圖元本身的圖形信息;
所述的步驟2)端子信息檢索與配置:包括檢索具有端子信息的圖元、計(jì)算絕對坐標(biāo)、配置預(yù)參與拓?fù)涞亩俗有畔⑷齻€子步驟。
通過解析已存儲好的SVG格式文件,檢索所有端子信息層,得到各端子的相對坐標(biāo),根據(jù)相應(yīng)的元件圖元層中的平移、矩陣變換、放縮的屬性計(jì)算各端子的絕對坐標(biāo),最后將端子所屬的設(shè)備類型、端子名、絕對坐標(biāo)(x坐標(biāo),y坐標(biāo))、設(shè)備ID信息配置為一個元組以參與后續(xù)的拓?fù)浞治?。元組的格式為:
(序號,設(shè)備類型,端子名,x坐標(biāo),y坐標(biāo),設(shè)備ID)
所述的步驟3)母線拓?fù)浞治觯涸赟VG格式文件中,將母線用矩形繪制,先對上述步驟獲得的所有元組進(jìn)行遍歷,若某一端子的絕對坐標(biāo)落在某一表示母線的矩形區(qū)域內(nèi)且該端子可與相應(yīng)母線相連接,則認(rèn)為該端子和相應(yīng)母線相接,將該端子標(biāo)記為“已處理”。
所述的步驟4)端子拓?fù)浞治觯翰襟E包括端子按坐標(biāo)排序、形成連接節(jié)點(diǎn)、連接節(jié)點(diǎn)維護(hù)與后處理三個子步驟。
對未標(biāo)記為“已處理”的端子按y坐標(biāo)從小到大排序,之后按照坐標(biāo)增序?qū)γ恳粋€端子進(jìn)行處理。對于每一個端子在其可匹配端子中找到絕對距離最近的從而形成連接節(jié)點(diǎn),再將距該端子的絕對距離在預(yù)設(shè)范圍內(nèi)的未標(biāo)記為“已處理”的端子加入該連接節(jié)點(diǎn)中,將所有加入該連接節(jié)點(diǎn)的端子均標(biāo)記為“已處理”。在繼續(xù)按照坐標(biāo)增序處理后續(xù)的端子時這些標(biāo)記為“已處理”的端子將不被認(rèn)為是可匹配端子,也不會在后處理步驟內(nèi)加入其他連接節(jié)點(diǎn)。絕對距離d的計(jì)算方法是:對于兩個x、y坐標(biāo)分別為(x1,y1)和(x2,y2)的端子,用下式計(jì)算:
將上述各連接節(jié)點(diǎn)的信息分別作為一個連接節(jié)點(diǎn)信息層存入SVG格式文件中與主圖層相并列的連接節(jié)點(diǎn)層,所述的各連接節(jié)點(diǎn)的信息為該連接節(jié)點(diǎn)內(nèi)各端子所屬的設(shè)備ID、設(shè)備類型、端子名稱。
所述的步驟5)拓?fù)浞治鼋Y(jié)果顯示:步驟包括連接節(jié)點(diǎn)標(biāo)示、孤立端子標(biāo)示兩個子步驟。拓?fù)浞治鼋Y(jié)果顯示步驟是以可視化的方式顯示已完成步驟的結(jié)果。令每一個連接節(jié)點(diǎn)信息層均包含一個可視化方式標(biāo)記層,用于將經(jīng)拓?fù)浞治龊笮纬傻倪B接節(jié)點(diǎn)在SVG格式文件中標(biāo)示出來,之后將每一個未進(jìn)入任何連接節(jié)點(diǎn)的孤立端子作為一個孤立端子信息層存入SVG格式文件中與主圖層相并列的孤立端子層,所述的各孤立端子的信息為該孤立端子所屬的設(shè)備ID、設(shè)備類型、端子名稱。令每一個孤立端子信息層均包含一個可視化方式標(biāo)記層,用于將所述的孤立端子以另一種方式在SVG格式文件中標(biāo)示出來。
所述的步驟6)連接線拓?fù)潢P(guān)系后處理:對于SVG格式文件中每一條連接線,將連接線兩端的端子所屬的連接節(jié)點(diǎn)信息層的屬性中所有端子合并在一個集合中,所有連接線遍歷完后獲得每條連接線所對應(yīng)的集合,對每一個集合,將其與其他與之存在公共元素的集合依次做并運(yùn)算獲得一個新的集合,每個新的集合內(nèi)若連接節(jié)點(diǎn)數(shù)目多于一個,則將該集合內(nèi)所有連接節(jié)點(diǎn)所對應(yīng)的各個設(shè)備聯(lián)立,確定為設(shè)備間實(shí)際的拓?fù)潢P(guān)系。
本發(fā)明具有以下有益效果:
本發(fā)明基于電力系統(tǒng)接線圖的主流存儲形式SVG格式進(jìn)行網(wǎng)絡(luò)拓?fù)浞治觯鹾习l(fā)展需求,彌補(bǔ)SVG格式接線圖網(wǎng)絡(luò)拓?fù)浞治黾夹g(shù)的空缺。同時該方法效率高,可操作性強(qiáng),易于實(shí)現(xiàn)。
附圖說明
圖1是本發(fā)明方法的流程圖。
具體實(shí)施方式
如圖1所示,本發(fā)明方法有五個主要步驟:端子信息檢索與配置、母線拓?fù)浞治觥⒍俗油負(fù)浞治?、拓?fù)浞治鼋Y(jié)果顯示及連接線拓?fù)潢P(guān)系后處理,具體方法如下:
1)定義電力系統(tǒng)接線圖SVG格式的存儲方式;
2)端子信息檢索與配置:包括檢索具有端子信息的圖元、計(jì)算絕對坐標(biāo)、配置預(yù)參與拓?fù)涞亩俗有畔⑷齻€子步驟,三個子步驟依次實(shí)施,完成端子信息的配置以參與后續(xù)的拓?fù)浞治觯?/p>
3)母線拓?fù)浞治鲆詫?shí)現(xiàn)接線圖中母線與母線附近端子的拓?fù)溥B接;
4)端子拓?fù)浞治觯喊ǘ俗影醋鴺?biāo)排序、形成連接節(jié)點(diǎn)、連接節(jié)點(diǎn)維護(hù)與后處理三個子步驟,三個子步驟依次進(jìn)行,在母線拓?fù)浞治龌A(chǔ)上完成接線圖中設(shè)備、連接線間端子的拓?fù)溥B接;
5)將拓?fù)浞治鼋Y(jié)果顯示:包括連接節(jié)點(diǎn)標(biāo)示、孤立端子標(biāo)示兩個子步驟,兩個子步驟依次進(jìn)行,用不同的標(biāo)記標(biāo)示正確連接而形成的連接節(jié)點(diǎn)以及未連接的孤立端子;
6)連接線拓?fù)潢P(guān)系后處理:通過連接線實(shí)現(xiàn)設(shè)備間實(shí)際拓?fù)潢P(guān)系的確定。
該方法可利用python編程實(shí)現(xiàn),其中,可以利用ElementTree庫實(shí)現(xiàn)對XML格式文件的解析。
下面以具體實(shí)例對本發(fā)明方法進(jìn)行說明。
本發(fā)明是基于SVG格式電力系統(tǒng)接線圖進(jìn)行的,SVG格式文件底層以XML樹型結(jié)構(gòu)為載體,將設(shè)備圖元和參數(shù)信息等利用樹型結(jié)構(gòu)進(jìn)行存儲,定義其存儲方式:一張接線圖的主圖層包括多個設(shè)備類型層,對每一個設(shè)備類型層包含多個元件層,對每一個元件層包含設(shè)備ID屬性,且每個元件層包含一個元件圖元層和一個元件數(shù)據(jù)層,元件圖元層包含元件圖元本身的圖形信息以及一個或多個端子信息層,每個端子信息層包含端子名稱及端子標(biāo)記,端子標(biāo)記用于區(qū)別端子信息層與元件圖元本身的圖形信息;即存儲格式如下:
其中,為了實(shí)現(xiàn)自動網(wǎng)絡(luò)拓?fù)浞治?,每一個元件圖元層除了存放其所屬的元件層所對應(yīng)的元件設(shè)備的圖元信息,還包含這一元件設(shè)備的端子信息,即端子標(biāo)記和端子名稱,其中端子標(biāo)記用于區(qū)別與元件圖元本身的圖形信息。
本發(fā)明方法針對上述SVG格式的文件進(jìn)行網(wǎng)絡(luò)拓?fù)浞治霾僮?,包括端子信息檢索與配置、母線拓?fù)浞治?、端子拓?fù)浞治?、拓?fù)浞治鼋Y(jié)果顯示及連接線拓?fù)潢P(guān)系后處理等五個主要步驟。
所述的端子信息檢索與配置步驟包括檢索具有端子信息的圖元、計(jì)算絕對坐標(biāo)、配置預(yù)參與拓?fù)涞亩俗有畔⑷齻€子步驟。子信息檢索與配置步驟通過解析存儲好的SVG格式的圖,檢索所有端子信息層,得到各端子的相對坐標(biāo),根據(jù)相應(yīng)的元件圖元層中的平移、矩陣變換、放縮的屬性計(jì)算各端子的絕對坐標(biāo),最后將端子所屬的設(shè)備類型、端子名、絕對坐標(biāo)(x坐標(biāo),y坐標(biāo))、設(shè)備ID信息配置為一個元組以參與后續(xù)的拓?fù)浞治?。元組的格式為:
(序號,設(shè)備類型,端子名,x坐標(biāo),y坐標(biāo),設(shè)備ID)
所述的母線拓?fù)浞治霾襟E實(shí)現(xiàn)接線圖中母線與母線附近端子的拓?fù)溥B接??紤]到電力系統(tǒng)接線圖的實(shí)際特點(diǎn),母線附近的端子數(shù)目多,且拓?fù)潢P(guān)系應(yīng)和母線相接,而不是設(shè)備、連接線間的相互連接。優(yōu)先處理母線拓?fù)潢P(guān)系可提高拓?fù)浞治鲂?,避免錯誤判斷。具體操作方法:在SVG格式文件中,將母線用矩形繪制,先對上述步驟獲得的所有元組進(jìn)行遍歷,若某一端子的絕對坐標(biāo)落在某一表示母線的矩形區(qū)域內(nèi)且該端子可與相應(yīng)母線相連接,則認(rèn)為該端子和相應(yīng)母線相接,將該端子標(biāo)記為“已處理”。
所述的端子拓?fù)浞治霾襟E包括端子按坐標(biāo)排序、形成連接節(jié)點(diǎn)、連接節(jié)點(diǎn)維護(hù)與后處理三個子步驟。端子拓?fù)浞治霾襟E是在母線拓?fù)浞治龌A(chǔ)上進(jìn)行的,對未匹配的端子即未設(shè)置“已處理”標(biāo)記的端子按y坐標(biāo)排序,之后按照坐標(biāo)增序?qū)γ恳粋€端子進(jìn)行處理。對于每一個端子找到絕對距離最近的可匹配端子從而形成連接節(jié)點(diǎn)。絕對距離d的計(jì)算方法是:對于兩個x、y坐標(biāo)分別為(x1,y1)和(x2,y2)的端子,用下式計(jì)算:
對未標(biāo)記為“已處理”的端子按y坐標(biāo)從小到大排序,之后按照坐標(biāo)增序?qū)γ恳粋€端子進(jìn)行處理。對于每一個端子在其可匹配端子中找到絕對距離最近的從而形成連接節(jié)點(diǎn),再將距該端子的絕對距離在預(yù)設(shè)范圍內(nèi)的未標(biāo)記為“已處理”的端子加入該連接節(jié)點(diǎn)中,將所有加入該連接節(jié)點(diǎn)的端子均標(biāo)記為“已處理”。在繼續(xù)按照坐標(biāo)增序處理后續(xù)的端子時這些端子將不被認(rèn)為是可匹配端子,也不會在后處理步驟內(nèi)加入其他連接節(jié)點(diǎn)。后處理完畢后,將該連接節(jié)點(diǎn)的信息同樣以XML格式存儲到同一個SVG格式的文件中,存儲格式如下:
<g id=”CN”(連接節(jié)點(diǎn)層)>
<g(連接節(jié)點(diǎn)信息層)連接節(jié)點(diǎn)屬性:該連接節(jié)點(diǎn)內(nèi)各端子所屬的設(shè)備ID、設(shè)備類型、端子名稱>
所述的拓?fù)浞治鼋Y(jié)果顯示步驟包括連接節(jié)點(diǎn)標(biāo)示、孤立端子標(biāo)示兩個子步驟。拓?fù)浞治鼋Y(jié)果顯示步驟是以可視化的方式顯示已完成步驟的結(jié)果。經(jīng)拓?fù)浞治龊笮纬傻倪B接節(jié)點(diǎn)可通過在SVG格式圖中標(biāo)示綠色圈,未進(jìn)入任何連接節(jié)點(diǎn)的孤立端子可通過在SVG格式圖中標(biāo)示紅色圈。存儲格式如下:
所述的連接線拓?fù)潢P(guān)系后處理步驟實(shí)現(xiàn)設(shè)備間拓?fù)潢P(guān)系的確定。由于繪制連接線是繪制接線圖時的輔助手段,而非實(shí)際電纜,因此還需要確定設(shè)備間實(shí)際的拓?fù)潢P(guān)系。對于SVG格式文件中每一條連接線,將連接線兩端的端子所屬的連接節(jié)點(diǎn)信息層的屬性中所有端子合并在一個集合中,所有連接線遍歷完后獲得每條連接線所對應(yīng)的集合,對每一個集合,將其與其他與之存在公共元素的集合依次做并運(yùn)算獲得一個新的集合,每個新的集合內(nèi)若連接節(jié)點(diǎn)數(shù)目多于一個,則說明這些連接節(jié)點(diǎn)在實(shí)際中只存在一個,從而將該集合內(nèi)所有連接節(jié)點(diǎn)所對應(yīng)的各個設(shè)備聯(lián)立,以確定設(shè)備間實(shí)際的拓?fù)潢P(guān)系。