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