王 濤,張 寧,孫勝濤
(淄博供電公司,山東 淄博 255032)
20世紀(jì)60年代以來,氣體絕緣變電站(簡稱GIS)以其占地面積小、不受環(huán)境條件影響、運(yùn)行可靠、維護(hù)工作量小等優(yōu)點(diǎn),廣泛應(yīng)用于電力系統(tǒng)中。 但在GIS中操作隔離開關(guān)和斷路器時(shí),會(huì)在GIS 內(nèi)部產(chǎn)生特快速暫態(tài)過電壓(VFTO)[1],隨著GIS電壓等級(jí)的提高,VFTO的危害愈加嚴(yán)重,已引起電力科研、設(shè)計(jì)、建設(shè)和運(yùn)行工作者的高度重視,并進(jìn)行了一定程度的研究。
應(yīng)用數(shù)字計(jì)算機(jī)對(duì)電力系統(tǒng)的暫態(tài)過電壓進(jìn)行分析計(jì)算,具有計(jì)算速度快、適應(yīng)性強(qiáng)、改變計(jì)算參數(shù)方便、精確度高等很多優(yōu)點(diǎn),目前已成為電力系統(tǒng)過電壓計(jì)算的最重要手段[2]。但是,目前的過電壓計(jì)算軟件像 EMTP、EMTDC[3]等大都要求操作人員具有較為扎實(shí)的電力設(shè)備(元件)建模知識(shí)[4],這給現(xiàn)場人員的使用帶來諸多不便。
電力系統(tǒng)的網(wǎng)絡(luò)圖形是電力系統(tǒng)分析的基礎(chǔ),將圖形引入電力系統(tǒng)分析軟件的開發(fā),為運(yùn)行人員提供一套具有良好人機(jī)界面的電力系統(tǒng)分析軟件,將可視化編程技術(shù)應(yīng)用于軟件開發(fā)已成為當(dāng)前電力系統(tǒng)應(yīng)用軟件的一個(gè)發(fā)展趨勢。
為了提高軟件可重用性和可擴(kuò)充性,軟件采用面向?qū)ο蟮脑O(shè)計(jì)思想。面向?qū)ο蠹夹g(shù)[5](Object Orient Technology,OOT)是一種試圖模仿人們建立現(xiàn)實(shí)世界模型的程序設(shè)計(jì)方法,引進(jìn)了類的概念,具有封裝、繼承和多態(tài)性等特點(diǎn),其基本原理是:按問題領(lǐng)域的基本事物實(shí)現(xiàn)自然分割,按人們通常的思維方式建立問題領(lǐng)域的模型,設(shè)計(jì)盡可能直接、自然的表現(xiàn)求解問題。 由于在整個(gè)過程中始終貫穿面向?qū)ο蟮乃枷?,其現(xiàn)實(shí)世界中的對(duì)象和特性最終和計(jì)算機(jī)模型中的類和方法一一對(duì)應(yīng),整個(gè)系統(tǒng)具有很好的可讀性,可維護(hù)性。
電力系統(tǒng)是由各種物理元件組成的,各元件屬性的相對(duì)獨(dú)立性和元件間拓?fù)溥B接的特點(diǎn)特別適合于面向?qū)ο蟮墓芾矸绞?。在系統(tǒng)模型的建立過程中,通常將系統(tǒng)中的實(shí)際物理設(shè)備和系統(tǒng)模型中的對(duì)象一一對(duì)應(yīng),對(duì)象間的繼承和歸屬關(guān)系充分反映實(shí)際設(shè)備間的關(guān)系,充分保證了可讀性。因此以Microsoft Visual Studio 2008為開發(fā)平臺(tái),采用C#語言和面向?qū)ο蠹夹g(shù)開發(fā)用于GIS的暫態(tài)計(jì)算軟件。軟件主結(jié)構(gòu)框圖如圖1。
圖1 軟件主結(jié)構(gòu)框圖
基于圖形界面的電力系統(tǒng)計(jì)算軟件的一個(gè)基本特征就是圖形化,即用戶在使用該軟件時(shí)的大部分操作都能在圖形上通過鼠標(biāo)的點(diǎn)擊、拖動(dòng)等操作來完成。開發(fā)的GIS暫態(tài)計(jì)算程序(GIS Transient Program,簡稱GISTP)根據(jù)電站一次系統(tǒng)圖進(jìn)行圖形元件設(shè)計(jì),最大程度上與現(xiàn)場運(yùn)行人員的使用習(xí)慣保持一致,用于暫態(tài)計(jì)算的主要設(shè)備元件及其圖形如表1所示。軟件提供方便快捷的圖形操作手段,如縮放、旋轉(zhuǎn)、復(fù)制、粘貼、刪除、移動(dòng)等,用戶能方便地繪制和修改網(wǎng)絡(luò)接線圖。在繪圖的過程中,可以通過雙擊圖中的元件,彈出對(duì)話框進(jìn)行輸入、瀏覽和修改元件的參數(shù)。繪圖完成以后,自動(dòng)完成電路節(jié)點(diǎn)編號(hào),根據(jù)自動(dòng)生成的參數(shù)信息可以進(jìn)行網(wǎng)絡(luò)拓?fù)浞治?,并通過ADO.NET技術(shù)訪問后臺(tái)數(shù)據(jù)庫[6],將電路圖信息存于數(shù)據(jù)庫表中更新拓?fù)浣Y(jié)果數(shù)據(jù)。軟件主界面如圖2所示。
在圖形化系統(tǒng)中,由于電力系統(tǒng)元件具有各種共同的基本事件和屬性。在本軟件中,圖形元件的操作與編程平臺(tái)自帶的Lable的操作極其相似,因此定義從Lable類繼承來的類MyBtn作為各種電力設(shè)備類的公共類,所有元件均為該類的實(shí)例化對(duì)象,利用如下語句:來完成由MyBtn類實(shí)例化的任意電力系統(tǒng)元件,如線路或變壓器,實(shí)現(xiàn)圖形元件從抽象到具體的實(shí)現(xiàn)過程,從而可利用switch語句來對(duì)元件進(jìn)行判斷,使得程序簡潔明了,提高了可讀性。
表1 GIS電站主要設(shè)備圖形設(shè)計(jì)
圖2 軟件主界面
選取圖形元件是交互式用戶接口中的重要任務(wù)之一,是對(duì)其進(jìn)行操作的前提,圖形的刪、改過程中,均以選取圖形為基礎(chǔ)。也就是說,要想對(duì)某一圖元進(jìn)行編輯就需要首先對(duì)該圖元進(jìn)行選取。
利用C#中的單擊、右擊等事件進(jìn)行選取操作,用改變圖形顏色的方法對(duì)其選取與否進(jìn)行表示。在圖形系統(tǒng)中,圖形元件自身具有特定的區(qū)域,可通過判斷當(dāng)前坐標(biāo)是否在區(qū)域內(nèi)來判斷是否選中。語法形式如下:
圖元連接前要先利用元件端口數(shù)量與旋轉(zhuǎn)角度來判斷元件的可連接區(qū)域。用MyBtn類中自定義的Rotate屬性實(shí)現(xiàn)對(duì)圖元旋轉(zhuǎn)的記錄,每旋轉(zhuǎn)90°對(duì)應(yīng)一個(gè)值,這樣Rotate屬性就有4個(gè)值,再結(jié)合元件的端口數(shù)即可知道元件的連線區(qū)域。
各元件均是一個(gè)對(duì)象,每個(gè)對(duì)象均有左右節(jié)點(diǎn)和左右點(diǎn)擊屬性。連接時(shí),首先點(diǎn)擊第一個(gè)元件的一端,然后再點(diǎn)擊另一個(gè)元件的某一端,將這兩個(gè)元件對(duì)象添加到一個(gè)新建節(jié)點(diǎn)對(duì)象的相應(yīng)屬性里面,然后將該新建節(jié)點(diǎn)對(duì)象的屬性值賦給這兩個(gè)元件相應(yīng)的節(jié)點(diǎn)對(duì)象,屬性值相同的節(jié)點(diǎn)對(duì)象即表示已被連接。如再有新元件與前兩個(gè)元件相連,則將新元件加入前兩個(gè)共有的節(jié)點(diǎn)對(duì)象中,并將該節(jié)點(diǎn)對(duì)象賦值給這3個(gè)元件相應(yīng)的節(jié)點(diǎn)對(duì)象,依次類推即可連接新元件。連接完成后,就可得到網(wǎng)絡(luò)拓?fù)潢P(guān)系。
由于電力系統(tǒng)網(wǎng)絡(luò)規(guī)模的日益擴(kuò)大,復(fù)雜程度越來越高,軟件的分析計(jì)算模塊所要處理的數(shù)據(jù)量也越來越大,所以,必須采用數(shù)據(jù)庫系統(tǒng)管理這些浩繁的數(shù)據(jù)。Microsoft Access的功能強(qiáng)大、簡單易用、具備良好的接口與兼容性。軟件基于圖形系統(tǒng)的特點(diǎn)采用Microsoft Access進(jìn)行數(shù)據(jù)庫開發(fā),在數(shù)據(jù)庫結(jié)構(gòu)上,以元件屬性為字段進(jìn)行數(shù)據(jù)庫結(jié)構(gòu)設(shè)計(jì),使用SQL語言作為操作、查詢語言,依照ADO數(shù)據(jù)庫訪問標(biāo)準(zhǔn),實(shí)現(xiàn)數(shù)據(jù)庫的建立和修改。
為了能將全部圖形信息與物理信息保存,在創(chuàng)建完系統(tǒng)接線圖對(duì)元件進(jìn)行參數(shù)錄入后,也就把元件的圖形類參數(shù)以及系統(tǒng)類參數(shù)存入數(shù)據(jù)庫,每一個(gè)系統(tǒng)接線圖對(duì)應(yīng)數(shù)據(jù)庫的一個(gè)表,并且圖元類屬性和數(shù)據(jù)庫字段一一對(duì)應(yīng)。此時(shí)的數(shù)據(jù)庫里存放的圖形類參數(shù)包括圖元的坐標(biāo)、長度以及放置方向等圖形信息,當(dāng)打開文件時(shí),使用System.Data.OleDb命名空間下的OleDbConnection類來連接數(shù)據(jù)庫,由嵌入SQL語句的主程序?qū)?shù)據(jù)庫進(jìn)行查詢和轉(zhuǎn)換,生成包含網(wǎng)絡(luò)拓?fù)湫畔⒌碾娐肺募?/p>
貝杰龍(Bergeron)法是計(jì)算電力系統(tǒng)暫態(tài)過電壓的有效方法,它是在計(jì)算前將分布參數(shù)線路,儲(chǔ)能集中參數(shù)元件L、C用歷史電流源和電阻進(jìn)行網(wǎng)絡(luò)組件替換,再運(yùn)用求解電阻性網(wǎng)絡(luò)的通用計(jì)算方法求解每個(gè)時(shí)間步長下的節(jié)點(diǎn)電壓值從而計(jì)算整個(gè)網(wǎng)絡(luò)的暫態(tài)過程[7]。其計(jì)算流程如圖3。
可完成大型GIS的過電壓仿真計(jì)算,結(jié)線方式、電壓等級(jí)均不受限制,能夠滿足電站規(guī)模要求和計(jì)算精度要求。
通過變電站的一次系統(tǒng)圖進(jìn)行建模,形象直觀的圖形顯示,所有的輸入數(shù)據(jù)可通過鼠標(biāo)點(diǎn)擊元件彈出對(duì)話框進(jìn)行輸入,易于現(xiàn)場人員的操作使用,可對(duì)建模圖形打印輸出。
輸入、計(jì)算過程簡單,一次自動(dòng)生成網(wǎng)絡(luò)拓?fù)潢P(guān)系和結(jié)果數(shù)據(jù)并自動(dòng)保存,可選擇文檔和圖形兩種輸出方式。
支持多文檔模式,多種圖形查看方式,可對(duì)圖形進(jìn)行復(fù)制、移動(dòng)、旋轉(zhuǎn)、縮放、文字標(biāo)注等操作,元件的連線可多折,使繪制出來的網(wǎng)絡(luò)圖更符合實(shí)際。
圖3 計(jì)算功能流程圖
本軟件采用面向?qū)ο蠹夹g(shù),各設(shè)備元件都為公共類的實(shí)例化對(duì)象,所以能很方便地將新的元件引入編輯系統(tǒng)以及擴(kuò)充新的功能模塊,具有一定的可拓展性和開放性。
利用開發(fā)的GISTP對(duì)圖4所示的網(wǎng)絡(luò)進(jìn)行計(jì)算,結(jié)果如圖5(a),利用國際通用的電磁暫態(tài)計(jì)算程序 EMTP[3]進(jìn)行驗(yàn)證計(jì)算,結(jié)果如圖 5(b),結(jié)果一致,證明了軟件的準(zhǔn)確性。
圖4 網(wǎng)絡(luò)接線圖
圖5 電壓波形圖
闡述了一種基于面向?qū)ο蟮某绦蛟O(shè)計(jì)思想開發(fā)GIS暫態(tài)計(jì)算軟件的方法。軟件基于Visual Studio 2008開發(fā)平臺(tái),利用Visual Studio.NET的面向?qū)ο蠹夹g(shù)、GDI+圖形處理技術(shù)以及ADO.NET數(shù)據(jù)庫訪問技術(shù),具有良好的人機(jī)界面,強(qiáng)大的圖形功能,用戶只需通過鼠標(biāo)的點(diǎn)擊、拖動(dòng)等操作就可實(shí)現(xiàn)軟件的大部分功能。實(shí)踐證明,用該方法開發(fā)出的軟件能方便地將圖形編輯與計(jì)算分析功能有效結(jié)合,最大程度上滿足現(xiàn)場運(yùn)行人員的使用需求,具有較高的實(shí)用性,應(yīng)用前景廣闊。