面向對象的電力圖形系統的分析和設計
電力系統的網絡圖形是電力系統分析的基礎,在總結前人經驗的基礎上,本文介紹了面向對象的電力系統圖形系統的OOA模型以及設計思路,闡述了該圖形系統的功能和特點。該圖形系統用Visual C++和Microsoft Access進行開發,由于采用了面向對象的思想,系統易于擴充和維護。
??? 關鍵詞:面向對象分析;電力系統;圖形系統;數據庫
Analysis and Design of Graphic System for Power System Based on Object-oriented
ZENG Xiang-hui SONG Wei DENG Jian YANG Yi-han
(Department of Electric Power Engineering,North China Electric Power University ,Baoding 071003)
ABSTRACT:The power system electric network figure is the power system analysis base .On the basis of former research.,the paper introduced OOA's model and design thinking of the graphic system for power system ,elaborated the graphic system's functions and features.The graphic system was developed by Visual C++ and Microsoft Access.Since adopting idea of object oriented,the system is easy to enlargement and protection.
Key Words: object oriented analysis; power system; graphic system; data base
0 引言
目前,計算機分析在電力系統中的應用越來越廣泛,無論是操作票系統、仿真專家系統、還是電力系統潮流計算和短路計算都需要繪制電氣接線圖。圖形是工程中最簡潔的語言,在計算機圖形上實現數據輸入和結果輸出會起到一目了然的效果。操作可視化是電力系統各種分析軟件的一個發展趨勢。但是,現有的大多數電力系統分析軟件的圖形界面都是為某一特定分析功能而制定的,如潮流優化、短路計算等,建模方法大部分不一致,與數據庫的聯系不緊密,給出的設備參數比較單一,這樣不得不為不同的分析功能做著許多重復開發圖形界面的工作。
本文介紹了電力系統圖形系統的面向對象分析模型以及設計思路,意在開發這樣一個圖形系統——能提供良好的圖形用戶界面,用戶能方便快捷的進行電力系統網絡接線圖的繪制和修改;能對圖形進行分層管理;在繪制好的接線圖上,只要通過鼠標操作,便可完成電力系統計算參數的錄入和設備元件的建模;圖元參數以數據庫的形式存儲,數據庫具有很好的通用性,包含了電力系統各種分析計算所需的信息。
1 圖形系統的OOA模型
自80年代末期到90年代,面向對象的方法和技術向著軟件生命期的前期階段發展。即:人們對面向對象方法的研究與運用,不再局限于編程階段,而是從系統分析和系統設計階段就開始采用面向對象方法。這標志著面向對象方法已經發展成一種完整的方法論和系統化技術體系。
顧名思義,OOA(Object Oriented Analysis)——面向對象分析,就是運用面向對象方法進行需求分析。OOA的基本任務是運用面向對象方法,對問題域和系統責任進行分析和理解,對其中的事物和它們之間的關系產生正確的認識,找出描述問題域及系統責任所需的類及對象,定義這些類和對象的屬性與服務,以及它們之間的形成的結構、靜態聯系和動態聯系。最終目的是產生一個符合用戶需求,并能夠直接反映問題域和系統責任的OOA模型。需要指出的是OOA旨在建立一個反映問題域并獨立于實現的系統邏輯模型,所有與實現有關的問題均不在OOA階段考慮。
OOA方法建立的系統模型包括基本模型和補充模型兩部分。基本模型以直觀的方式表達了最重要的系統信息;補充模型則提供了幫助理解基本模型和反映系統如何滿足用戶需求的交互圖。
1.1基本模型
用OOA開發的系統模型是一個類圖,類圖所要表達的模型信息可以從三個層次來看待:
對象層——給出系統中所有反映問題域與系統責任的對象。用類符號表達屬于每一類的對象。
特征層——給出每一個類(及其所代表
的對象)的內部特征。描述了對象的內部構成狀況,以分析階段所能達到的程度為限給出對象的內部細節。
關系層——給出各個類(及其所代表的對象)彼此之間的關系。描述了對象外部的聯系狀況。
圖形系統的功能需求:給用戶提供一個方便、易用的界面,可以使應用程序更直觀的實現其操作和分析;有完善的圖形編輯功能,包括對各種電氣圖元的繪制和編輯操作,如選擇、移動、旋轉、復制等基本操作,能對圖形分層管理;實現圖形與數據庫相關聯,為電力系統其他分析軟件提供統一的數據庫接口。
基于以上功能需求分析,圖形系統的OOA模型可表示如下:
圖中,每個矩形框表示一個對象,矩形框的上欄填寫類名,中欄和下欄填寫的是對象的屬性名和服務名,“@”表示該對象是主動對象或主動服務,符號“”是一般與特殊結構的連接符號,箭頭“”表示消息發送,“1 m”表示一對多的實例連接。從圖中可以看出,對象“圖元基類”與“電氣元件”構成一般與特殊結構。對象“圖形管理”和“電氣元件”之間有一對多的實例連接關系,表明了圖形管理類管理了哪些電氣元件。對象“工作區間”向“圖形管理”對象發送消息,執行“增加”、“刪除”等服務;“圖形管理”對象向“電氣元件”對象發送消息,使用“繪制”、“選中”等服務;“電氣元件”對象向“圖形信息”對象發送信息,使用“獲取圖層”、“獲取顏色”等服務;“電氣元件”對象向“庫服務器”發送消息,使用“入庫”和“提取”服務。
1.2補充模型
在面向對象分析中,use case是對系統功能使用情況的一個文字描述序列。每個use case針對一項系統功能,描述系統外部的活動者如何與系統進行對話,即具體地說明活動者透過系統邊界向系統發什么信息,系統進行什么處理以及返回什么信息。use case可以較好的表達用戶對系統的功能需求。
交互圖是一個use case與完成相應功能的系統成分之間的對照圖。它表明use case中陳述的每件事是由系統中對象的哪個服務響應和完成的,以及這個服務又進一步用到哪些別的對象服務。交互圖的表示方法如下:
(1) 在交互圖的上部并排的列出與某個use case有關的一組對象(給出其類名)。
(2) 在每一類對象下方畫一條垂直線,并在這條線上用一些棒形線條表示該對象的服務按時間方向(從上到下)的執行動作;一個棒形條表示一個服務的執行。
(3) 如果一個對象服務在某一個執行點上
應該向另一個對象發消息,則從這一點向后者畫一條帶箭頭的水平直線,并在旁邊注明被引用對象的服務名。
(4) 在系統邊界外(通常在交互圖左側),寫出對這組對象所執行的功能的描述。
交互圖比類圖的消息連接更清晰地表示了對象之間的行為依賴關系,并且在表示對象之間交互情況的同時,也表示了對象與系統之外活動者的交互。對于本圖形系統,由于篇幅所限,在此僅以電氣元件的繪制為例來說明交互圖的建立。交互圖如下所示:
其工作過程如下:
a.編輯:在工作區間點擊相應的電氣元件的位圖或按鈕控件;
b.增加:在相應的電氣元件的集合管理類增加一個元件對象并得到指向該元件的對象指針;
c.繪制:利用該對象指針調用繪制函數進行該類圖元的繪制;
d.獲取圖層和顏色:獲取圖元的圖層和顏色以完成繪制;
e.將圖元顯示在客戶區。
2 圖形系統的設計
基于以上對圖形系統的分析以及所建的OOA模型,可對圖形系統設計如下:
2.1 圖形界面的設計
圖形系統作為人機交互的主要渠道,除了要能實現強大的繪圖與交互功能外,還要顯示美觀,結構清晰,與用戶交互過程要簡單方便。本圖形系統設計了具有Windows風格的界面,創建了一個工作區間窗口,以進行圖元編輯及圖層管理,并設計工具條以及一系列界面美觀、交互方便的對話框。具體界面可參看本文所附例圖3。
2.2電氣圖元數據結構的設計
對于圖形系統而言,最基礎也是最重要的功能,是對不同類型電力系統元件的繪制和編輯操作。采用面向對象思想把數據和功能合為一個單元,具體設計為每種元件都定義一個類,具體一個元件對應一個對象。每種元件都具有自己各種屬性和數據,如大小、形狀、位置等,也具有自己的各種行為,如繪制、移動、旋轉、復制、刪除等,利用面向對象技術把數據和操作封裝在一起,從而實現圖形系統的各種功能和操作。同時,各種元件除具有自己特殊的屬性和行為外,還有一些共同的地方,如顏色、畫筆寬度等屬性。這樣就可以利用C++類繼承和派生的特點,建立不同元件的公共抽象基類,其他元件類在此基礎上派生而成,這樣極大的減輕了編程量,消除了冗余的代碼,又增強了程序的可讀性。
2.3電氣圖元管理的設計
在電力系統圖形編輯過程中,所涉及的圖元眾多,如何把它們有序的組織起來,一直是比較困難的問題。在本圖形系統中由于數據類型比較多且交換頻繁,所以采用了基于C++類模板CTypedPtrArray來實現對指向圖形元素對象的指針的組織和管理。每個圖形元素是圖形元素類創建的一個對象,在創建這個對象時得到指向這個對象的指針,通過類模板CTypedPtrArray建立對象指針數組來管理這些指針,實現圖元對象的增加、刪除等操作,進而達到管理所有圖元對象的目的。
2.4圖形信息管理的設計
為了能靈活的對圖元的顏色以及對圖層的管理,本圖形系統設計了一個圖層結構和一個圖形信息類。圖層結構包含了圖層的名稱、圖層的唯一識別號以及圖層的顯示狀態(布爾型變量)。圖形信息類的屬性包括一個存儲顏色列表的數組和一個存儲圖層列表的圖層結構數組,服務包括獲取顏色以及獲取圖層的顯示狀態。在創建完一個圖元對象,并請求該對象的“繪制”服務時,首先向圖形信息類請求“獲取圖層的顯示狀態”服務,判斷該對象所屬圖層的顯示狀態,如果處于不顯示的狀態則返回,服務不再繼續,否則,向圖形信息管理類請求“獲取顏色”服務來創建畫筆,進行圖元的繪制?;谝陨系姆樟鞒桃约皥D形系統的重繪機制,只需設計出圖形信息管理交互界面,對圖形信息類的顏色列表數組和圖層結構數組進行相應的操作即可實現圖形顏色和圖層的管理。
2.5圖形方式下參數錄入的設計
本圖形系統設計了一系列元件參數對話框,并編寫了相應的代碼。用戶能夠在網絡接線圖上方便迅速的進行數據處理。只要雙擊接線圖上某種類型的元件,應用程序便會彈出同該類元件相對應的元件參數對話框,用戶通過填寫對話框各項參數,即可完成對某一圖元的建模,或對已建模圖元的參數的修改。這種圖形化的參數錄入方式既直觀又明了,后臺數據庫的讀寫由應用程序完成,對普通用戶完全屏蔽,用戶不用再去擔心文件格式的正確與否,所要做的僅僅是鼠標的點擊和參數對話框的填寫,從而大大提高了數據處理的效率。
2.6數據庫的設計
圖形系統是作為一個獨立的模塊鑲嵌在電力系統分析軟件中的,最終圖形中的各設備圖元的參數和拓撲信息要傳送給其它的各分析功能模塊,一個好的數據接口最能體現模塊的獨立性、易用性和通用性?;趫D形系統的特點采用Microsoft Access進行數據庫開發,在數據庫結構上,采用按元器件分類列表的關系數據庫結構。
在創建完系統接線圖對圖元進行參數錄入后,也就把圖元的圖形類參數以及系統類參數存入數據庫,此時的數據庫里存放的圖形類參數包括圖元的坐標、長度以及放置方向等基本圖形信息,我們稱之為“生數據庫”。但是,圖形系統的數據庫最終是面向各種電力系統分析軟件的,而這些分析軟件需求的往往不是這些基本的圖形信息,而是進行分析所必需的拓撲信息。所以本圖形系統對數據庫進行了轉換,在“生數據庫”建立后,由嵌入SQL語句的主程序對“生數據庫”進行查詢和轉換,生成包含電網拓撲信息的通用數據庫——“熟數據庫”。
3 圖形系統的特點
?。?) 能夠方便、快捷的繪制出各種電力系統常用元件,如發電機、變壓器、母線、刀閘等,并且能夠對圖中的元件進行任意移動和刪除。
?。?) 具有強大的編輯功能。能夠對圖中的一個或多個元件進行選擇、復制、拷貝、粘貼、旋轉、撤銷等工作。為了區別不同的電壓等級和其他屬性,用戶在繪制接線圖時能夠任意指定當前繪制的線型、線寬、顏色,文字標注的字體和字號,對已繪制的圖元,也能隨意改變上述屬性。
?。?) 能對圖形進行分層管理。能動態創建圖層,圖層創建的同時,工作區間圖層視圖的樹結構自動增加一條樹的分支,圖層創建完后只要雙擊某一樹支即可對該樹支對應的圖層進行瀏覽。每個圖元都屬于特定的圖層,若用戶選擇了當前活動圖層,則僅顯示屬于此圖層的圖元。這種圖層的概念可以用來標示不同電壓等級的圖元。
?。?) 在網絡接線圖上實現了可視化操作。能通過鼠標點觸相應元件,即可實現變壓器分接頭的切換、刀閘和開關的開合以及電容的投切。
?。?) 本圖形系統采用了面向對象技術,
對各種電氣元件設備有統一的操作模式,能很方便的將新的元件引入編輯系統以及擴充新的功能模塊,具有一定的可拓展性和開放性。
4 結論
本圖形系統利用Visual C++和Microsoft Access混合編程的方法進行開發,基本做到了人機交互良好、操作方便,并且與數據庫緊密相連。由于采用了面向對象的方法,圖形系統的擴充和維護都比較方便。目前本圖形系統在操作票系統以及繼保整定方面得到了應用,實踐證明,該圖形系統具有很高的實用性和推廣價值。
評論
查看更多