面向?qū)ο蟮碾娏D形系統(tǒng)的分析和設(shè)計
電力系統(tǒng)的網(wǎng)絡(luò)圖形是電力系統(tǒng)分析的基礎(chǔ),在總結(jié)前人經(jīng)驗的基礎(chǔ)上,本文介紹了面向?qū)ο蟮碾娏ο到y(tǒng)圖形系統(tǒng)的OOA模型以及設(shè)計思路,闡述了該圖形系統(tǒng)的功能和特點。該圖形系統(tǒng)用Visual C++和Microsoft Access進行開發(fā),由于采用了面向?qū)ο蟮乃枷?,系統(tǒng)易于擴充和維護。
??? 關(guān)鍵詞:面向?qū)ο蠓治?;電力系統(tǒng);圖形系統(tǒng);數(shù)據(jù)庫
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 引言
目前,計算機分析在電力系統(tǒng)中的應(yīng)用越來越廣泛,無論是操作票系統(tǒng)、仿真專家系統(tǒng)、還是電力系統(tǒng)潮流計算和短路計算都需要繪制電氣接線圖。圖形是工程中最簡潔的語言,在計算機圖形上實現(xiàn)數(shù)據(jù)輸入和結(jié)果輸出會起到一目了然的效果。操作可視化是電力系統(tǒng)各種分析軟件的一個發(fā)展趨勢。但是,現(xiàn)有的大多數(shù)電力系統(tǒng)分析軟件的圖形界面都是為某一特定分析功能而制定的,如潮流優(yōu)化、短路計算等,建模方法大部分不一致,與數(shù)據(jù)庫的聯(lián)系不緊密,給出的設(shè)備參數(shù)比較單一,這樣不得不為不同的分析功能做著許多重復(fù)開發(fā)圖形界面的工作。
本文介紹了電力系統(tǒng)圖形系統(tǒng)的面向?qū)ο蠓治瞿P鸵约霸O(shè)計思路,意在開發(fā)這樣一個圖形系統(tǒng)——能提供良好的圖形用戶界面,用戶能方便快捷的進行電力系統(tǒng)網(wǎng)絡(luò)接線圖的繪制和修改;能對圖形進行分層管理;在繪制好的接線圖上,只要通過鼠標(biāo)操作,便可完成電力系統(tǒng)計算參數(shù)的錄入和設(shè)備元件的建模;圖元參數(shù)以數(shù)據(jù)庫的形式存儲,數(shù)據(jù)庫具有很好的通用性,包含了電力系統(tǒng)各種分析計算所需的信息。
1 圖形系統(tǒng)的OOA模型
自80年代末期到90年代,面向?qū)ο蟮姆椒ê图夹g(shù)向著軟件生命期的前期階段發(fā)展。即:人們對面向?qū)ο蠓椒ǖ难芯颗c運用,不再局限于編程階段,而是從系統(tǒng)分析和系統(tǒng)設(shè)計階段就開始采用面向?qū)ο蠓椒ā_@標(biāo)志著面向?qū)ο蠓椒ㄒ呀?jīng)發(fā)展成一種完整的方法論和系統(tǒng)化技術(shù)體系。
顧名思義,OOA(Object Oriented Analysis)——面向?qū)ο蠓治?,就是運用面向?qū)ο蠓椒ㄟM行需求分析。OOA的基本任務(wù)是運用面向?qū)ο蠓椒?,對問題域和系統(tǒng)責(zé)任進行分析和理解,對其中的事物和它們之間的關(guān)系產(chǎn)生正確的認(rèn)識,找出描述問題域及系統(tǒng)責(zé)任所需的類及對象,定義這些類和對象的屬性與服務(wù),以及它們之間的形成的結(jié)構(gòu)、靜態(tài)聯(lián)系和動態(tài)聯(lián)系。最終目的是產(chǎn)生一個符合用戶需求,并能夠直接反映問題域和系統(tǒng)責(zé)任的OOA模型。需要指出的是OOA旨在建立一個反映問題域并獨立于實現(xiàn)的系統(tǒng)邏輯模型,所有與實現(xiàn)有關(guān)的問題均不在OOA階段考慮。
OOA方法建立的系統(tǒng)模型包括基本模型和補充模型兩部分?;灸P鸵灾庇^的方式表達(dá)了最重要的系統(tǒng)信息;補充模型則提供了幫助理解基本模型和反映系統(tǒng)如何滿足用戶需求的交互圖。
1.1基本模型
用OOA開發(fā)的系統(tǒng)模型是一個類圖,類圖所要表達(dá)的模型信息可以從三個層次來看待:
對象層——給出系統(tǒng)中所有反映問題域與系統(tǒng)責(zé)任的對象。用類符號表達(dá)屬于每一類的對象。
特征層——給出每一個類(及其所代表
的對象)的內(nèi)部特征。描述了對象的內(nèi)部構(gòu)成狀況,以分析階段所能達(dá)到的程度為限給出對象的內(nèi)部細(xì)節(jié)。
關(guān)系層——給出各個類(及其所代表的對象)彼此之間的關(guān)系。描述了對象外部的聯(lián)系狀況。
圖形系統(tǒng)的功能需求:給用戶提供一個方便、易用的界面,可以使應(yīng)用程序更直觀的實現(xiàn)其操作和分析;有完善的圖形編輯功能,包括對各種電氣圖元的繪制和編輯操作,如選擇、移動、旋轉(zhuǎn)、復(fù)制等基本操作,能對圖形分層管理;實現(xiàn)圖形與數(shù)據(jù)庫相關(guān)聯(lián),為電力系統(tǒng)其他分析軟件提供統(tǒng)一的數(shù)據(jù)庫接口。
基于以上功能需求分析,圖形系統(tǒng)的OOA模型可表示如下:
圖中,每個矩形框表示一個對象,矩形框的上欄填寫類名,中欄和下欄填寫的是對象的屬性名和服務(wù)名,“@”表示該對象是主動對象或主動服務(wù),符號“”是一般與特殊結(jié)構(gòu)的連接符號,箭頭“”表示消息發(fā)送,“1 m”表示一對多的實例連接。從圖中可以看出,對象“圖元基類”與“電氣元件”構(gòu)成一般與特殊結(jié)構(gòu)。對象“圖形管理”和“電氣元件”之間有一對多的實例連接關(guān)系,表明了圖形管理類管理了哪些電氣元件。對象“工作區(qū)間”向“圖形管理”對象發(fā)送消息,執(zhí)行“增加”、“刪除”等服務(wù);“圖形管理”對象向“電氣元件”對象發(fā)送消息,使用“繪制”、“選中”等服務(wù);“電氣元件”對象向“圖形信息”對象發(fā)送信息,使用“獲取圖層”、“獲取顏色”等服務(wù);“電氣元件”對象向“庫服務(wù)器”發(fā)送消息,使用“入庫”和“提取”服務(wù)。
1.2補充模型
在面向?qū)ο蠓治鲋校瑄se case是對系統(tǒng)功能使用情況的一個文字描述序列。每個use case針對一項系統(tǒng)功能,描述系統(tǒng)外部的活動者如何與系統(tǒng)進行對話,即具體地說明活動者透過系統(tǒng)邊界向系統(tǒng)發(fā)什么信息,系統(tǒng)進行什么處理以及返回什么信息。use case可以較好的表達(dá)用戶對系統(tǒng)的功能需求。
交互圖是一個use case與完成相應(yīng)功能的系統(tǒng)成分之間的對照圖。它表明use case中陳述的每件事是由系統(tǒng)中對象的哪個服務(wù)響應(yīng)和完成的,以及這個服務(wù)又進一步用到哪些別的對象服務(wù)。交互圖的表示方法如下:
(1) 在交互圖的上部并排的列出與某個use case有關(guān)的一組對象(給出其類名)。
(2) 在每一類對象下方畫一條垂直線,并在這條線上用一些棒形線條表示該對象的服務(wù)按時間方向(從上到下)的執(zhí)行動作;一個棒形條表示一個服務(wù)的執(zhí)行。
(3) 如果一個對象服務(wù)在某一個執(zhí)行點上
應(yīng)該向另一個對象發(fā)消息,則從這一點向后者畫一條帶箭頭的水平直線,并在旁邊注明被引用對象的服務(wù)名。
(4) 在系統(tǒng)邊界外(通常在交互圖左側(cè)),寫出對這組對象所執(zhí)行的功能的描述。
交互圖比類圖的消息連接更清晰地表示了對象之間的行為依賴關(guān)系,并且在表示對象之間交互情況的同時,也表示了對象與系統(tǒng)之外活動者的交互。對于本圖形系統(tǒng),由于篇幅所限,在此僅以電氣元件的繪制為例來說明交互圖的建立。交互圖如下所示:
其工作過程如下:
a.編輯:在工作區(qū)間點擊相應(yīng)的電氣元件的位圖或按鈕控件;
b.增加:在相應(yīng)的電氣元件的集合管理類增加一個元件對象并得到指向該元件的對象指針;
c.繪制:利用該對象指針調(diào)用繪制函數(shù)進行該類圖元的繪制;
d.獲取圖層和顏色:獲取圖元的圖層和顏色以完成繪制;
e.將圖元顯示在客戶區(qū)。
2 圖形系統(tǒng)的設(shè)計
基于以上對圖形系統(tǒng)的分析以及所建的OOA模型,可對圖形系統(tǒng)設(shè)計如下:
2.1 圖形界面的設(shè)計
圖形系統(tǒng)作為人機交互的主要渠道,除了要能實現(xiàn)強大的繪圖與交互功能外,還要顯示美觀,結(jié)構(gòu)清晰,與用戶交互過程要簡單方便。本圖形系統(tǒng)設(shè)計了具有Windows風(fēng)格的界面,創(chuàng)建了一個工作區(qū)間窗口,以進行圖元編輯及圖層管理,并設(shè)計工具條以及一系列界面美觀、交互方便的對話框。具體界面可參看本文所附例圖3。
2.2電氣圖元數(shù)據(jù)結(jié)構(gòu)的設(shè)計
對于圖形系統(tǒng)而言,最基礎(chǔ)也是最重要的功能,是對不同類型電力系統(tǒng)元件的繪制和編輯操作。采用面向?qū)ο笏枷氚褦?shù)據(jù)和功能合為一個單元,具體設(shè)計為每種元件都定義一個類,具體一個元件對應(yīng)一個對象。每種元件都具有自己各種屬性和數(shù)據(jù),如大小、形狀、位置等,也具有自己的各種行為,如繪制、移動、旋轉(zhuǎn)、復(fù)制、刪除等,利用面向?qū)ο蠹夹g(shù)把數(shù)據(jù)和操作封裝在一起,從而實現(xiàn)圖形系統(tǒng)的各種功能和操作。同時,各種元件除具有自己特殊的屬性和行為外,還有一些共同的地方,如顏色、畫筆寬度等屬性。這樣就可以利用C++類繼承和派生的特點,建立不同元件的公共抽象基類,其他元件類在此基礎(chǔ)上派生而成,這樣極大的減輕了編程量,消除了冗余的代碼,又增強了程序的可讀性。
2.3電氣圖元管理的設(shè)計
在電力系統(tǒng)圖形編輯過程中,所涉及的圖元眾多,如何把它們有序的組織起來,一直是比較困難的問題。在本圖形系統(tǒng)中由于數(shù)據(jù)類型比較多且交換頻繁,所以采用了基于C++類模板CTypedPtrArray來實現(xiàn)對指向圖形元素對象的指針的組織和管理。每個圖形元素是圖形元素類創(chuàng)建的一個對象,在創(chuàng)建這個對象時得到指向這個對象的指針,通過類模板CTypedPtrArray建立對象指針數(shù)組來管理這些指針,實現(xiàn)圖元對象的增加、刪除等操作,進而達(dá)到管理所有圖元對象的目的。
2.4圖形信息管理的設(shè)計
為了能靈活的對圖元的顏色以及對圖層的管理,本圖形系統(tǒng)設(shè)計了一個圖層結(jié)構(gòu)和一個圖形信息類。圖層結(jié)構(gòu)包含了圖層的名稱、圖層的唯一識別號以及圖層的顯示狀態(tài)(布爾型變量)。圖形信息類的屬性包括一個存儲顏色列表的數(shù)組和一個存儲圖層列表的圖層結(jié)構(gòu)數(shù)組,服務(wù)包括獲取顏色以及獲取圖層的顯示狀態(tài)。在創(chuàng)建完一個圖元對象,并請求該對象的“繪制”服務(wù)時,首先向圖形信息類請求“獲取圖層的顯示狀態(tài)”服務(wù),判斷該對象所屬圖層的顯示狀態(tài),如果處于不顯示的狀態(tài)則返回,服務(wù)不再繼續(xù),否則,向圖形信息管理類請求“獲取顏色”服務(wù)來創(chuàng)建畫筆,進行圖元的繪制?;谝陨系姆?wù)流程以及圖形系統(tǒng)的重繪機制,只需設(shè)計出圖形信息管理交互界面,對圖形信息類的顏色列表數(shù)組和圖層結(jié)構(gòu)數(shù)組進行相應(yīng)的操作即可實現(xiàn)圖形顏色和圖層的管理。
2.5圖形方式下參數(shù)錄入的設(shè)計
本圖形系統(tǒng)設(shè)計了一系列元件參數(shù)對話框,并編寫了相應(yīng)的代碼。用戶能夠在網(wǎng)絡(luò)接線圖上方便迅速的進行數(shù)據(jù)處理。只要雙擊接線圖上某種類型的元件,應(yīng)用程序便會彈出同該類元件相對應(yīng)的元件參數(shù)對話框,用戶通過填寫對話框各項參數(shù),即可完成對某一圖元的建模,或?qū)σ呀D元的參數(shù)的修改。這種圖形化的參數(shù)錄入方式既直觀又明了,后臺數(shù)據(jù)庫的讀寫由應(yīng)用程序完成,對普通用戶完全屏蔽,用戶不用再去擔(dān)心文件格式的正確與否,所要做的僅僅是鼠標(biāo)的點擊和參數(shù)對話框的填寫,從而大大提高了數(shù)據(jù)處理的效率。
2.6數(shù)據(jù)庫的設(shè)計
圖形系統(tǒng)是作為一個獨立的模塊鑲嵌在電力系統(tǒng)分析軟件中的,最終圖形中的各設(shè)備圖元的參數(shù)和拓?fù)湫畔⒁獋魉徒o其它的各分析功能模塊,一個好的數(shù)據(jù)接口最能體現(xiàn)模塊的獨立性、易用性和通用性。基于圖形系統(tǒng)的特點采用Microsoft Access進行數(shù)據(jù)庫開發(fā),在數(shù)據(jù)庫結(jié)構(gòu)上,采用按元器件分類列表的關(guān)系數(shù)據(jù)庫結(jié)構(gòu)。
在創(chuàng)建完系統(tǒng)接線圖對圖元進行參數(shù)錄入后,也就把圖元的圖形類參數(shù)以及系統(tǒng)類參數(shù)存入數(shù)據(jù)庫,此時的數(shù)據(jù)庫里存放的圖形類參數(shù)包括圖元的坐標(biāo)、長度以及放置方向等基本圖形信息,我們稱之為“生數(shù)據(jù)庫”。但是,圖形系統(tǒng)的數(shù)據(jù)庫最終是面向各種電力系統(tǒng)分析軟件的,而這些分析軟件需求的往往不是這些基本的圖形信息,而是進行分析所必需的拓?fù)湫畔?。所以本圖形系統(tǒng)對數(shù)據(jù)庫進行了轉(zhuǎn)換,在“生數(shù)據(jù)庫”建立后,由嵌入SQL語句的主程序?qū)Α吧鷶?shù)據(jù)庫”進行查詢和轉(zhuǎn)換,生成包含電網(wǎng)拓?fù)湫畔⒌耐ㄓ脭?shù)據(jù)庫——“熟數(shù)據(jù)庫”。
3 圖形系統(tǒng)的特點
(1) 能夠方便、快捷的繪制出各種電力系統(tǒng)常用元件,如發(fā)電機、變壓器、母線、刀閘等,并且能夠?qū)D中的元件進行任意移動和刪除。
?。?) 具有強大的編輯功能。能夠?qū)D中的一個或多個元件進行選擇、復(fù)制、拷貝、粘貼、旋轉(zhuǎn)、撤銷等工作。為了區(qū)別不同的電壓等級和其他屬性,用戶在繪制接線圖時能夠任意指定當(dāng)前繪制的線型、線寬、顏色,文字標(biāo)注的字體和字號,對已繪制的圖元,也能隨意改變上述屬性。
(3) 能對圖形進行分層管理。能動態(tài)創(chuàng)建圖層,圖層創(chuàng)建的同時,工作區(qū)間圖層視圖的樹結(jié)構(gòu)自動增加一條樹的分支,圖層創(chuàng)建完后只要雙擊某一樹支即可對該樹支對應(yīng)的圖層進行瀏覽。每個圖元都屬于特定的圖層,若用戶選擇了當(dāng)前活動圖層,則僅顯示屬于此圖層的圖元。這種圖層的概念可以用來標(biāo)示不同電壓等級的圖元。
?。?) 在網(wǎng)絡(luò)接線圖上實現(xiàn)了可視化操作。能通過鼠標(biāo)點觸相應(yīng)元件,即可實現(xiàn)變壓器分接頭的切換、刀閘和開關(guān)的開合以及電容的投切。
?。?) 本圖形系統(tǒng)采用了面向?qū)ο蠹夹g(shù),
對各種電氣元件設(shè)備有統(tǒng)一的操作模式,能很方便的將新的元件引入編輯系統(tǒng)以及擴充新的功能模塊,具有一定的可拓展性和開放性。
4 結(jié)論
本圖形系統(tǒng)利用Visual C++和Microsoft Access混合編程的方法進行開發(fā),基本做到了人機交互良好、操作方便,并且與數(shù)據(jù)庫緊密相連。由于采用了面向?qū)ο蟮姆椒?,圖形系統(tǒng)的擴充和維護都比較方便。目前本圖形系統(tǒng)在操作票系統(tǒng)以及繼保整定方面得到了應(yīng)用,實踐證明,該圖形系統(tǒng)具有很高的實用性和推廣價值。
評論
查看更多