日本老熟妇一二三区-麻豆视频精品一区-人妻中文字幕xx-一区二区美女少妇-日本成人一级在线

基于Visual Graph圖形系統(tǒng)的電力系統(tǒng)開發(fā)———基于Visual Graph圖形系統(tǒng)的電力系統(tǒng)開發(fā)
北京圖王軟件開發(fā)有限公司

0.引言

  在EMS中,圖形界面是人機(jī)接口的重要組成部分。其中在圖形建模及開 發(fā)方面,早在上世紀(jì)八十年代就提出了面向?qū)ο蠼5乃悸罚∣bject-Oriented, 即OO 模型) [1-4]。這種自上而下的建模方法有代碼重用率高、開發(fā)周期較短以 及便于維護(hù)等優(yōu)點(diǎn)。不過,對(duì)于傳統(tǒng)的OO方法,目前大多仍從底層開發(fā)(如 Windows API, MFC等[5,6])的方式,一旦涉及相對(duì)復(fù)雜的圖形技術(shù),代碼將急速 膨脹,軟件的開發(fā)周期依然相當(dāng)可觀。
本文提出了一種新的圖形建模及開發(fā)方法:面向圖形對(duì)象的建模 (Graphic Object-Oriented,簡稱GOO)方法。它與傳統(tǒng)面向?qū)ο蟮膱D 形建模方法相比,主要區(qū)別在于它關(guān)注的不再是怎樣從計(jì)算機(jī)底層代碼去實(shí)現(xiàn)圖 形,而是可視化的圖形對(duì)象。圖形對(duì)象是由相應(yīng)的圖形類生成的。圖形類除了擁 有一般類的特征之外,還擁有可視的圖形,能夠直接編輯,同時(shí)也可以通過程序 代碼來操縱。GOO建模的特點(diǎn)決定了它需要比以往更高等級(jí)的開發(fā)平臺(tái)。該平臺(tái)需 要擁有完全可視的圖形開發(fā)人機(jī)接口,而且能夠內(nèi)部管理各種圖形交互事件并提 供基本的圖形對(duì)象和建模工具。故GOO建模起點(diǎn)較之OO建模更高,但對(duì)開發(fā)者而言 難度則大大降低,效率也大幅度提高。
本文基于Visual Graph圖形平臺(tái)(以下簡稱VG),圖形建模采用自上而下 的類的繼承的思路:在VG提供的基本的圖形單元類的基礎(chǔ)上進(jìn)行繼承和擴(kuò)充,建 立各種元件部件類,再把這些部件組合,形成各種電力元件的模型。最后繪制復(fù) 雜的電力系統(tǒng)。

1.VG的基本結(jié)構(gòu)及基本單元類

  1.1VG的基本結(jié)構(gòu)
目前國內(nèi)外已經(jīng)開發(fā)了多種組態(tài)式圖形通用系統(tǒng),如ArcObject、 VectorDraw、JFDraw, Visual Graph等。其中VG是一種ActiveX組件,主要包括 一套基本可視圖形類庫和管理圖形的接口,另外還提供圖形開發(fā)建模的工具。其 中的可視圖形類有各種成員屬性和成員函數(shù),可通過一套語法簡潔的腳本語言來 操作圖形,并對(duì)外提供編程接口,內(nèi)嵌到各編程工具中進(jìn)行開發(fā)。
1.2VG的基本單元類
VG提供一個(gè)基本圖形單元類-IUnit,它由描述圖形單 元特征的基本屬性和函數(shù)組成,例如名稱Name,坐標(biāo)Left、Top,尺寸Width、 Height,移動(dòng)函數(shù)MoveTo(x,y)等,設(shè)計(jì)時(shí)既可通過鼠標(biāo)操作來修改圖形,也可直 接設(shè)置相應(yīng)屬性值。Unit下面繼承有四種子類:
  文字單元類 IText:該類為文本框?qū)ο螅蓡T屬性包括 文字內(nèi)容Text,字體Font等。
  形狀單元類 IShape:該類包括矩形、橢圓、圓角矩形 、圓弧四種形狀對(duì)象,成員屬性包括線條顏色LineColor、線寬LineWidth、背景 顏色BackColor等。
  折線單元類 ILine:該類包括點(diǎn)、線、連接點(diǎn)、連接線 ,成員屬性包括組成折線的點(diǎn)集合Points[i]、各點(diǎn)類型屬性Bytes[i]、線條類形 LineType等。其中連接線可以連接兩個(gè)圖形,形成一組拓?fù)溥B接關(guān)系。
  元件單元類 IElement:該類看作一個(gè)類似容器的空白 圖形,它容納其他的子圖形以形成新的圖形類,其成員屬性包括組成元件的子對(duì) 象集合Units[i],子對(duì)象數(shù)目UnitCount等。由上述的幾種基本圖形類可以在 IElement中繪制任意復(fù)雜的二維圖形,組成一個(gè)新的圖形類,即新的元件類。本 文最后要建立的電力元件就是用IElement制作的圖形元件類。
上述即是VG提供的基本圖形單元類,除此之外,VG還提供了對(duì)圖形的基本 操作函數(shù),包括添加、刪除、移動(dòng)、旋轉(zhuǎn)、對(duì)齊、縮放、拷貝、剪切、粘貼、撤 銷、恢復(fù)、修改顏色、文本框字體等。對(duì)于復(fù)雜的操作,可用這些函數(shù)不同的組 合來實(shí)現(xiàn)。

2.電力元件部件類

  本文將電力元件定義為圖形對(duì)象端口對(duì)象 的有序組合。圖形對(duì)象是描述電力元件的圖形符號(hào),以一次設(shè)備單線圖 為例,如三繞組變壓器是由三個(gè)圓表示,負(fù)荷由一根箭頭線表示等。端口對(duì)象則 是元件之間連接的紐帶。如圖1所示,””代表元件的一個(gè)端口,圖中G1和BK1之 間的端口重合,則二者已經(jīng)連接在一起,在VG中元件可以通過端口的自動(dòng)吸附來 實(shí)現(xiàn)連接。
元件中的每個(gè)圖形對(duì)象或者端口對(duì)象就稱為該元件的一個(gè)部件。元件部件 類由圖形類和端口類組成。二者都繼承自基本圖形類,本文定義了如下的端口類 和圖形類:
 ?。?端口部件類,MyPort:繼承自VG的ILine中的連接 線,該線只包含一個(gè)點(diǎn),即一根退化為點(diǎn)的連接線。端口部件類除了折線單元類 的屬性外,還擴(kuò)充了如下自定義的屬性:
電壓等級(jí)Vn,整型。缺省值為0,代表尚未指定電壓等 級(jí);
端口序號(hào)PNo,整形,只讀。為方便按電壓等級(jí)著色, 在同一元件中,規(guī)定不同電壓等級(jí)端口的端口序號(hào)是不同的,而同一電壓等級(jí)中 端口的端口序號(hào)是相同的。比如線路、開關(guān)等元件兩端的端口電壓等級(jí)相同,則 其PNo都是0,而含有多電壓等級(jí)的元件如圖1中的三繞組變壓器T1,它有三個(gè)端口 ,電壓等級(jí)都不同,其端口序號(hào)分別為0、1、2,而圖1中的斷路器BK1,有兩個(gè)端 口,電壓等級(jí)相等,端口序號(hào)均為0。

圖1元件的端口、端口序號(hào)、元件之間的連接及不同電壓等級(jí) 著色示意圖
Fig1 Ports of elements, No. of ports, connection between elements and coloring of different parts of element by different voltage classes

  端口帶電狀態(tài) PState,整型,指該 端口在帶電著色后的狀態(tài),值0,1依次代表停電、帶電,缺省值為0;
  端口類型PType,整形,指該端口所在支路的類型,值 為0,1,2依次代表輻射支路、橋路和環(huán)路,缺省值為0;
  節(jié)點(diǎn)號(hào)PNodeNo,指該端口所連接的電氣節(jié)點(diǎn)序號(hào),缺 省值0代表尚未分配節(jié)點(diǎn)號(hào)。
 ?。?圖形部件類MyGraph:繼承自VG的基本圖形單元類 IUnit,下面繼承有形狀類MyShape和線類MyLine,二者分別又同時(shí)繼承自IShape 和ILine。為了方便按電壓等級(jí)著色,這兩個(gè)類擴(kuò)充了一個(gè)自定義屬性PNo,其值 與同電壓等級(jí)端口中的PNo相同。

3.電力元件類

  建立好了元件的基本部件圖形類和端口類之后,再擴(kuò)充其 它一些必要的屬性,就可以組合起來形成各種類型的電力元件。
  電力元件類MyElement:繼承自IElement,主要屬性如 下:
圖形連接的集合Links[i](系統(tǒng)自帶屬性),從該屬性 可以得到某個(gè)連接所在的本元件的連接端口Port,以及該連接連到的另一元件 LinkUnit及其端口LinkPort。如圖1,G1只有一個(gè)連接:G1.Links [0].Port=G1.Port0,G1.Links[0].LinkUnit=BK1,G1.Links [0].LinkPort=BK1.Port0,其它元件的該屬性也類似于此。此屬性可方便地實(shí)現(xiàn) 深度/廣度優(yōu)先遍歷。
TypeNo,元件的類型號(hào),整型,只讀,如可規(guī)定1代表 發(fā)電機(jī)、2代表負(fù)荷等;
  SearchState,元件的被遍歷狀態(tài),缺省值0表示尚未被 遍歷到,1表示已經(jīng)被遍歷;
這樣電力元件類確定后,就可以在其內(nèi)加入圖形部件和端口部件,組成各 種類型的元件。電力元件的類型一般比較穩(wěn)定,可以分為如下的幾類:
  功率類,單端口元件,包括發(fā)電機(jī)、調(diào)相機(jī)、負(fù)荷、接 地電容、電抗等;
  母線類,單端口元件無阻抗的元件;
  開關(guān)類,雙端口元件,包括開關(guān)、刀閘等,兩端口同屬 一個(gè)電壓等級(jí)。開關(guān)類有特殊屬性開關(guān)狀態(tài)State,整型,0代表斷開,1代表閉合 ;
  變壓器類,多端口元件,包括各種變壓器,各端口電壓 等級(jí)Vn不同,則各端口的PNo也不同;
  阻抗類,雙端口元件,包括架空線、電纜、串聯(lián)電抗器 、串聯(lián)電容器等元件,各端口的PNo相同。

4.標(biāo)注類

  標(biāo)注類MyLabel:繼承IText類,增加自 定義屬性UnitName,即該標(biāo)注所指的元件名 ,字符串型。標(biāo)注類用來對(duì)元件進(jìn)行標(biāo)注,如元件名稱,電氣參數(shù)等。
圖2為電力元件類圖形建模類的結(jié)構(gòu)示意圖。


圖2電 力元件的類的建立
Fig 2 Construction of classes of various power elements

5.圖形建模系統(tǒng)

本文的圖形建模系統(tǒng)由三個(gè)模塊組成,如圖3所示:


圖3 圖形建模系統(tǒng)的結(jié)構(gòu)
Fig3 The structure of Graphic Model Building System

  • 圖形元件庫模塊:任何繪制的圖都能以模板存入元件庫成為元件,同時(shí)元 件也可以從庫中直接調(diào)出添加到當(dāng)前的圖形編輯器中。元件庫分類管理。
  • 圖形編輯模塊:提供矢量圖的基本編輯功能,實(shí)現(xiàn)對(duì)圖形的可視化編 輯。
  • 圖形類編輯模塊:把每個(gè)圖形當(dāng)作類看待,直接修改其成員屬性和成 員函數(shù)。


建模時(shí),按照自上而下,由簡到繁的方式,從當(dāng)前元件庫中選取圖形元件 搭建新的圖形,同時(shí)設(shè)計(jì)其成員屬性和成員函數(shù),最后將繪制好的新圖當(dāng)<