于豐,薛明
(豐縣供電公司,江蘇豐縣221700)
由于電力系統(tǒng)的復雜和龐大的特點,電力系統(tǒng)呈現(xiàn)出分區(qū)和分層的特點。隨著電力系統(tǒng)的發(fā)展和電力體制改革的深化,為保證電網安全、優(yōu)質和經濟運行以及電力市場的有序運行,電力調度中心可能同時運行有多個應用系統(tǒng),例如能量管理系統(tǒng)(EMS)、電能量計量系統(tǒng)、調度生產管理系統(tǒng)、配電管理系統(tǒng)(DMS)和電力市場技術支持系統(tǒng)等;每個系統(tǒng)中可能同時包括了多個應用,例如EMS包括數(shù)據采集與監(jiān)控系統(tǒng)(SCADA),自動發(fā)電控制(AGC),網絡分析和調度員仿真培訓模擬(DTS)等應用。這些系統(tǒng)或應用存在如下需求:需要交換數(shù)據,共享信息,包括實時信息和非實時信息兩種;來源于不同的開發(fā)商,需要異構和互操作;需要不斷擴展新應用或系統(tǒng),并降低接口的難度和成本。為此,IEC第57技術委員會的13工作組推出了主站側各應用系統(tǒng)接口的系列標準IEC61970,以滿足上述需求,其主要部分以CIM描述電網的公用信息、以CIS訪問電網的公用信息,其理想目標是實現(xiàn)“即插即用”,當前目標是解決互聯(lián)和異構問題[1-5]。
電力系統(tǒng)運行部門需要分析處理的信息數(shù)量大、類型廣,有效便捷地管理這些數(shù)據對電力系統(tǒng)實時監(jiān)控、分析計算、模擬仿真、信息管理等工作有著重要的意義。計算機圖形技術在電力系統(tǒng)中的實際應用很好地解決了這個問題,在軟件中運用圖形表達信息并引導各種操作的方法代替?zhèn)鹘y(tǒng)的文本、表格式數(shù)據管理方式,使系統(tǒng)工作人員在形象、直觀的圖形化界面上工作而無需直接面對大量單調繁瑣的數(shù)據,從而大大降低了數(shù)據處理工作的繁雜性與出錯率,為系統(tǒng)安全穩(wěn)定的運行起到了重要的作用。隨著計算機技術的發(fā)展,應用圖形技術來處理電力系統(tǒng)的計算、分析等任務方面起著越來越重要的作用[6]。通過研究IEC61970 CIM標準的特點,本文用面向對象語言實現(xiàn)了一個遵循CIM標準的圖形系統(tǒng)。
面向對象方法是基于客觀世界的對象模型化的軟件開發(fā)方法。所謂對象是一個屬性集(數(shù)據)及其操作(行為)的封裝體。封裝性、繼承性和多態(tài)性是面向對象的3個基本特征[7]。根據面向對象的繼承、封裝和多態(tài)性的特點,把電力元件類中具有相同操作的方法在它們的基類中定義一個虛函數(shù),而方法的實現(xiàn)在具體的電力元件類中實現(xiàn),用基類的指針通過多態(tài)性的優(yōu)點來調用不同類電力元件的動作。
類與對象所建模的正是電力系統(tǒng)中需要以一種對各種EMS應用通用的方法來描繪的東西。一個類是對現(xiàn)實世界中發(fā)現(xiàn)的一種對象的表示,例如在EMS中需要表示為整個電力系統(tǒng)模型的一部分的變壓器、發(fā)電機或負荷。其他類型的對象包括諸如EMS應用需要處理、分析與儲存的計劃與量測。這些對象需要以一種通用的表示,以達到EMS-API標準的插入兼容和互操作的目的。在電力系統(tǒng)中具有惟一身份的一個具體對象則被建模成它所屬類的一個實例。
UML是用于面向對象建模的一種通用語言。CIM是一個用UML語言建立的抽象模型,它表示了EMS信息模型中包含的電力企業(yè)的所有主要對象。這個模型包含這些對象的公共類和屬性,以及它們之間的關系,規(guī)定了一個基本包集,這些包提供了電力企業(yè)內各應用之間共享的EMS信息的物理方面的邏輯視圖。
CIM是一個抽象模型,它表示通常包含在EMS信息模型中的電力企業(yè)的所有主要對象。通過提供一種用對象類和屬性及他們之間的關系來表示電力系統(tǒng)資源的標準方法,CIM方便實現(xiàn)不同賣方獨立開發(fā)的EMS應用的集成、多個獨立開發(fā)的完整EMS的集成,或EMS和其他涉及電力系統(tǒng)運行的不同方面的系統(tǒng),例如發(fā)電或配電管理系統(tǒng)之間的集成。這是通過定義標準應用程序接口,這些應用或系統(tǒng)能夠不依賴于信息的內部表示而訪問公共數(shù)據和交換信息來實現(xiàn)的。
每一個CIM包的類圖展示了該包中所有的類及它們的關系。在與其他包中的類存在關系時,這些類也展示出來,且標以表明其所屬的包的符號。
還應該注意到,定義CIM是為了方便數(shù)據交換。正如標準中定義的那樣,CIM實體除了缺省的生成、刪除、更新和讀出外,沒有其他行為。為了使CIM盡可能地通用,非常希望對具體實現(xiàn)易于配置。一般來說,改變屬性的值域比改變類定義更為容易。這些原則暗示CIM應當避免定義類的太多的具體子類型。相反,CIM定義一些通用的類,由屬性來給定類型名。應用可以根據需要使用這一信息去實例化具體的對象類型。應用可能需要其他信息去定義有效類型與關系的集合。
類的屬性可以表示對象的特征。CIM中的每一個類包含描述和識別該類的具體實例的屬性。只有各EMS應用共同感興趣的那些屬性包括在類的描述中。
每一個屬性都具有一個類型,它識別該屬性是哪一種類型的屬性。典型的屬性類型有整型、浮點型、布爾型、字符串型及枚舉型,它們被稱為原始類型。然而,許多其他類型也被定義為CIM規(guī)范的一部分。例如,Capacitor Bank(電容器組)有一個具有Voltage(電壓)類型的Maximum屬性。數(shù)據類型的定義包含在Domain類中。
類之間的關系揭示了它們相互之間是怎樣構造的。CIM模型的包集中的類以種種方式相互關聯(lián)。各種類之間的關聯(lián)主要有3種:普遍化,簡單關聯(lián)和聚集。
其中CIM模型中核心包、拓撲包和線包的相關類和繼承層次框圖如圖1所示[1]。
其中,表示電力元件的類是線路包中的變壓器、開關類元件、線路和負荷以及拓撲包中的母線模型。
由于CIM模型中的各個類的繼承關系與面向對象設計方法中的類的繼承關系完全一致,因此可以用面向對象的方法來在CIM的基礎上進行電力系統(tǒng)圖形系統(tǒng)的建模。在CIM的基礎上,通過擴充數(shù)據和添加動作行為來設計一個面向對象的電力系統(tǒng)圖形系統(tǒng)能夠充分發(fā)揮CIM通用性的優(yōu)點。需要完成的工作,是把在繪圖中要實現(xiàn)的電力元件的各種動作添加到CIM中相應的類中,在相應的類中定義實現(xiàn)繪制電力圖形元件所需要的幾何參數(shù)。
電力系統(tǒng)圖形類是對電力系統(tǒng)中具體電力元件如變壓器,線路,母線,斷路器等的抽象和概括,包括屬性和方法。電力圖形元件的屬性包括圖形屬性和電器屬性兩種;方法包括圖形元件的繪制,移動,縮放,旋轉,以及圖形屬性和電氣屬性的確定和改正。
由圖1可以看出,核心包中的設備類是除了母線外的多數(shù)電力元件的公共基類,電力圖形元件類中的公共屬性和方法應該在該類中定義。各個元件的幾何公共屬性包括顯示狀態(tài)的屬性,是否選擇的屬性,圖形范圍屬性,圖形元件的連接狀態(tài),圖元的惟一標示;公共方法包括圖形繪制,位置移動,顯示狀態(tài)改變,旋轉,縮放。類中的電氣屬性按照CIM模型中定義的規(guī)定,這樣就實現(xiàn)了在CIM模型的基礎上圖形系統(tǒng)類的框架的建立。
電力系統(tǒng)圖形系統(tǒng)的目的就是要實現(xiàn)對數(shù)據管理的圖形化,增強人機交互的功能,能夠實現(xiàn)對電氣主接線進行快速方便的修改,設計和計算[6]。圖形系統(tǒng)的界面上人機交互主要靠鼠標和鍵盤,在界面上設計了一個繪制圖形元件的工具箱,可以選擇不同的元件,設計了一個對圖形元件進行動作操作的工具欄。
圖形系統(tǒng)首先要對各種電力元件進行管理,采用Visual C++6.0中的數(shù)據模板類CPtrArray可以方便的對各種元件進行動態(tài)的添加和刪除。定義一個圖形元件類型和一個元件的指針,可以在對圖元進行操作的時候快速定位[8]。
定義一個可以縮放大小的單元格,每一個元件的長寬都是整數(shù)單元格,每個元件的端口都定位在單元格的交點上,這就使圖元之間的連接關系能正確的確定,也方便使用。通過調整單元格的大小,可以對整個圖形進行縮放。
對電力元件參數(shù)的錄入采用對話框的方式,本圖形系統(tǒng)設計了一系列元件參數(shù)對話框,并編寫了相應的代碼。用戶能夠在網絡接線圖上方便迅速地進行數(shù)據處理。
只要雙擊接線圖上某種類型的元件,應用程序便會彈出同該類元件相對應的元件參數(shù)對話框,用戶通過填寫對話框各項參數(shù),即可完成對某一圖元的建模,或對已建模圖的參數(shù)修改。這種圖形化的參數(shù)錄入方式既直觀又明了,提高了操作的可靠性,并且設置了簡單的邏輯判斷和計算,減少了錄入參數(shù)過程中出現(xiàn)錯誤的概率。
對電壓等級的表示方法,在繪制元件時采用不同的線條顏色來表示元件的電壓,可以快速準確的對元件的電壓狀態(tài)進行判斷。
電力系統(tǒng)中各種元件之間的連接關系是進行電力系統(tǒng)拓撲分析的基礎。CIM中拓撲包中定義的連接點類Connectivity Node是一個抽象概念,是電力元件端子連接在一起時的一個概念的抽象,只是為了方便的表示元件之間的互相連接關系。本文中通過給這個連接點類添加一個適當?shù)膸缀畏秶?,可以在電氣主接線圖畫完后自動生成元件和連接點之間的連接關系。連接點定義的幾何范圍是根據單元格的初始大小定義的,定義為單元格大小的三分之一,這樣連接點的幾何范圍不會重復,并且因為每個電力圖形元件的端子都在單元格上,確保了CIM模型中一個元件的端子只連接在一個連接點上。
電力系統(tǒng)中的電力元件按端子數(shù)可分為單端子元件和多端子元件。對于具有一個端子元件如電源,負荷等,定義一個狀態(tài)變量表示元件的連接情況;對于多端子元件,對每一個端子都定義一個表示端子連接與否的狀態(tài)變量,如果該端子連接于一個連接點上,則該端子的連接狀態(tài)為真,否則為假;對元件本身定義一個表示整體連接的狀態(tài)變量,如果元件所有的端子的連接狀態(tài)都為真,則元件的連接狀態(tài)為真,否則為假。采用棧數(shù)據結構和一個改進的深度優(yōu)先的搜索算法來生成連接關系,每次都從棧頂元素開始搜索沒有完成連接關系的元件,算法的實現(xiàn)步驟如下:(1)從電源元件集合中搜索沒有連接的電源元件,根據電源的端子生成第一個連接點實例,并且讓該連接點進棧;(2)搜索所有端子連接于第一個連接點實例的元件,對這些元件進行編號,并加入到連接點的連接集合中;(3)查看棧中連接點,如果棧已經空,轉(5);否則,根據棧頂?shù)倪B接點中連接的元件的沒有連接的端子來生成下一個連接點實例,把它加入到棧頂,并且搜索端子連接于該連接點實例的所有元件;(4)對棧中的所有連接點進行連接檢查,如果連接在該連接點的所有元件都完成連接,則該連接點出棧;檢查完后轉(3);(5)在所有的元件中查找還沒有連接的元件,如果找到元件,則根據該元件的端子生成新的連接點,搜索端子連接于該點的所有元件,并入棧,轉(3);如果所有的元件都已經連接,則連接關系就建立完成,轉(6);(6)退出。
通過對CIM模型的分析和研究,在CIM的基礎上建立了面向對象的電力系統(tǒng)圖形平臺。由于完全采用了CIM模型作為圖形系統(tǒng)建模的框架,使用面向對象的技術進行編程,所以對系統(tǒng)的擴展十分方便;對CIM中拓撲包中定義的連接點類Connectivity Node的擴充使得不需要額外的操作,就能確立電力圖形元件之間連接關系,對提高分析和計算的準確度有很大的幫助。
[1] IEC第57技術委員會.量管理系統(tǒng)應用程序接口(EMS-API).第302部分:公共信息模型(CIM)基礎[M].北京:中國電力出版社,2005.
[2] 張慎明,黃海峰.基于IEC61970標準的電網調度自動化系統(tǒng)體系結構[J].電力系統(tǒng)自動化,2002,5(25):45-47.
[3] 錢鋒,唐國慶,顧全.基于CIM標準和SVG的分散式圖模合并[J].電力系統(tǒng)自動化,2007,31(5):84-89.
[4] 徐愛春,魏艷華,章堅民.基于CIM/SVG圖模一體編輯器系統(tǒng)的設計及實現(xiàn)[J].繼電器,2006,36(23):49-53.
[5] 郭創(chuàng)新,金成生.基于CIM的廣域測量系統(tǒng)的信息模型[J].電力系統(tǒng)自動化學報,2007,19(1):34-38.
[6] 胡旦,王星華,段獻忠.電力系統(tǒng)高級軟件中的圖形功能應用分析[J].繼電器,2005,33(14):65-70.
[7] 吳煒熠.面向對象分析設計與編程[M].北京:清華大學出版社,2007.
[8] 曾祥輝,宋瑋,鄧健,等.面向對象的電力圖形系統(tǒng)的分析和設計[J].繼電器,2006,32(5):36-39.