999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

面向?qū)ο蟮脑O(shè)計(jì)模式在暫態(tài)仿真中的應(yīng)用

2012-04-13 11:28:18雷金勇于學(xué)軍張君泉王成山
關(guān)鍵詞:程序系統(tǒng)

雷金勇,李 鵬,于學(xué)軍,張君泉,王成山

(1.南方電網(wǎng)科學(xué)研究院,廣州 510080;2.天津大學(xué)智能電網(wǎng)教育部重點(diǎn)實(shí)驗(yàn)室,天津 300072;3.積成電子股份有限公司,濟(jì)南 250100)

電力系統(tǒng)數(shù)字仿真發(fā)展至今,已有多種廣泛應(yīng)用于分布式發(fā)電系統(tǒng)及微網(wǎng)相關(guān)領(lǐng)域研究的數(shù)字仿真程序,包括Matlab/SimPowerSystems、DIgSILENT及PSCAD/EMTDC等[1,2],但這些國外的商業(yè)仿真計(jì)算工具的核心模型與算法等內(nèi)容基本上不對用戶開放,借助其實(shí)現(xiàn)相關(guān)的仿真計(jì)算可能并不困難,但如果需要進(jìn)一步研究開發(fā)準(zhǔn)確、高效的仿真算法則不大可能。因此,國內(nèi)天津大學(xué)開發(fā)了具有自主知識產(chǎn)權(quán)的分布式發(fā)電微網(wǎng)系統(tǒng)暫態(tài)仿真程序TSDG(transient simulator of distributed generation systems and micro-grid),它不僅能夠?yàn)榉植际桨l(fā)電及微網(wǎng)系統(tǒng)的規(guī)劃、設(shè)計(jì)、運(yùn)行、實(shí)驗(yàn)及科學(xué)研究提供堅(jiān)實(shí)的理論基礎(chǔ)與依據(jù),同時(shí)也能夠提高我國在電力系統(tǒng)仿真軟件開發(fā)、設(shè)計(jì)與應(yīng)用領(lǐng)域的核心技術(shù)競爭力[3,4]。

分布式發(fā)電微網(wǎng)系統(tǒng)暫態(tài)仿真程序的設(shè)計(jì)開發(fā)是一項(xiàng)復(fù)雜的系統(tǒng)工程,其中最重要的是需要應(yīng)對多種功能需求的變化,具體包括:①元件模型方面,與傳統(tǒng)電力系統(tǒng)成熟可靠的元件模型相比,分布式發(fā)電系統(tǒng)元件不但種類繁多,而且很多分布式電源的模型尚在不斷完善與發(fā)展之中,這就要求TSDG能夠應(yīng)對分布式發(fā)電微網(wǎng)系統(tǒng)模型增加和變化的要求;②系統(tǒng)算法方面,分布式發(fā)電微網(wǎng)系統(tǒng)各動(dòng)態(tài)過程的時(shí)間常數(shù)差異較大,整個(gè)系統(tǒng)是一個(gè)典型的強(qiáng)剛性系統(tǒng),電力電子開關(guān)器件動(dòng)作時(shí)序的不確定性以及分布式電源和控制系統(tǒng)引入的大量非線性環(huán)節(jié)對程序的計(jì)算精度和數(shù)值穩(wěn)定性提出了較高要求,需要采用高效準(zhǔn)確靈活的解算方法,但仿真算法總是在不斷改進(jìn)中,而且隨著分布式發(fā)電微網(wǎng)系統(tǒng)的發(fā)展,對TSDG的功能需求也會(huì)發(fā)生變化,這就要求TSDG能夠應(yīng)對暫態(tài)仿真算法和功能需求變化的要求;③用戶接口方面,輸入和輸出數(shù)據(jù)形式的多樣化,多種仿真程序的交互混合仿真等已經(jīng)成為一種趨勢,這就要求TSDG能夠應(yīng)對未來用戶接口變化的要求。

1 面向?qū)ο笤O(shè)計(jì)原則和設(shè)計(jì)模式

傳統(tǒng)的面向過程程序設(shè)計(jì)是面向功能的,通常使用函數(shù)或過程來實(shí)現(xiàn)所需要的功能,這種方式不利于大中型軟件的開發(fā)與維護(hù)。面向?qū)ο蟮某绦蛟O(shè)計(jì)方法通過創(chuàng)建對象來簡化程序設(shè)計(jì)過程,允許抽象化、模塊化的分層結(jié)構(gòu),具有多態(tài)性、繼承性和封裝性的特點(diǎn)。面向?qū)ο笤O(shè)計(jì)原則在基于面向?qū)ο蠓椒ǖ能浖到y(tǒng)的開發(fā)過程中起著重要的指導(dǎo)作用,它是各種設(shè)計(jì)模式背后的基本思想原則,遵守設(shè)計(jì)原則能夠提高軟件的可維護(hù)性和可復(fù)用性。

面向?qū)ο笤O(shè)計(jì)OOD(object oriented design)的核心思想主要包括:①針對接口編程,而不是針對實(shí)現(xiàn)編程,極大地減少了子系統(tǒng)之間的相互依賴關(guān)系;②優(yōu)先使用對象組合,而不是類繼承,使得設(shè)計(jì)更加靈活;③封裝變化點(diǎn),降低了對系統(tǒng)的整體影響。在此基礎(chǔ)上可以得出幾條具體的設(shè)計(jì)原則[5~7]:開放封閉原則、里氏代換原則、依賴倒置原則、接口隔離原則等,采用這些設(shè)計(jì)原則可提高軟件系統(tǒng)的可維護(hù)性和可復(fù)用性。

作為面向?qū)ο笤O(shè)計(jì)的實(shí)現(xiàn)手段,設(shè)計(jì)模式是指軟件開發(fā)過程中對重復(fù)出現(xiàn)問題的可重用性解決方案[8]。設(shè)計(jì)模式總結(jié)了面向?qū)ο筌浖_發(fā)中的設(shè)計(jì)經(jīng)驗(yàn),描述了軟件開發(fā)過程中不斷重復(fù)出現(xiàn)的問題及該問題的解決方案,目的就是使軟件開發(fā)者可以更加簡單方便地復(fù)用成功的設(shè)計(jì)和體系結(jié)構(gòu)。

設(shè)計(jì)模式依據(jù)其目的可分為創(chuàng)建型、結(jié)構(gòu)型、行為型三種[9]。創(chuàng)建型模式抽象了實(shí)例化過程,使一個(gè)系統(tǒng)獨(dú)立于創(chuàng)建、組合和表示構(gòu)成這個(gè)系統(tǒng)的對象,包括抽象工廠模式等;結(jié)構(gòu)型模式處理類與對象的組合,從而獲得更大的結(jié)構(gòu),包括組合模式等;行為型模式描述類與對象之間的交互以及職責(zé)分配,涉及算法和對象之間責(zé)任的劃分,它不僅描述了對象或類的模式,還描述了它們之間的通信模式,包括觀察者模式等。雖然不同設(shè)計(jì)模式的設(shè)計(jì)思想有所不同,但它們并非是孤立的,而是常常組合在一起,共同完成系統(tǒng)的設(shè)計(jì)。

設(shè)計(jì)模式展示了面向?qū)ο笏枷胫蟹庋b、繼承和多態(tài)等特性的使用,正確地理解與使用設(shè)計(jì)模式,有助于快速開發(fā)出可維護(hù)和可復(fù)用的系統(tǒng)。雖然設(shè)計(jì)模式有許多優(yōu)點(diǎn),但是仍然需要程序設(shè)計(jì)者深入理解設(shè)計(jì)模式背后的面向?qū)ο笏枷耄拍軌蚋玫厝ナ褂盟鼈儯嬲匕l(fā)揮它們的優(yōu)勢,同時(shí)設(shè)計(jì)者應(yīng)該避免濫用所帶來的軟件結(jié)構(gòu)的復(fù)雜和冗余,不能為了使用設(shè)計(jì)模式而使用。

2 分布式發(fā)電微網(wǎng)系統(tǒng)暫態(tài)仿真程序框架

分布式發(fā)電微網(wǎng)系統(tǒng)暫態(tài)仿真程序框架如圖1所示,主要由4部分組成。

(1)系統(tǒng)數(shù)據(jù),包括系統(tǒng)參數(shù)和仿真結(jié)果兩部分,前者應(yīng)提供仿真步長、仿真時(shí)間、輸出采樣間隔等參數(shù),以及元件的基本信息、拓?fù)溥B接關(guān)系、元件基本參數(shù)、數(shù)據(jù)輸出控制參數(shù)四部分,后者包括系統(tǒng)要求輸出的仿真結(jié)果,如電壓、電流及控制系統(tǒng)輸出等信息。

(2)元件模型,它主要包括分布式電源、網(wǎng)絡(luò)元件、電力電子變流裝置、控制器等模型。

(3)系統(tǒng)解算,它主要是對分布式發(fā)電微網(wǎng)系統(tǒng)暫態(tài)仿真算法的實(shí)現(xiàn),從系統(tǒng)層面看,它包括電氣系統(tǒng)與控制系統(tǒng)的交替求解,電氣系統(tǒng)解算側(cè)重于含電力電子設(shè)備的以伏安關(guān)系描述電氣網(wǎng)絡(luò)的求解,控制系統(tǒng)解算則側(cè)重于強(qiáng)非線性的以輸入輸出關(guān)系描述的控制器及分布式電源模型的精確求解。

(4)用戶接口,可以根據(jù)不同的數(shù)據(jù)格式提供靈活和可擴(kuò)展的數(shù)據(jù)處理和輸出顯示功能。

圖1 分布式發(fā)電微網(wǎng)系統(tǒng)暫態(tài)仿真程序框架Fig.1 Framework of TSDG

在TSDG的開發(fā)實(shí)現(xiàn)過程中,建立元件模型方面,一般采用創(chuàng)建型模式來管理種類繁多的分布式發(fā)電微網(wǎng)系統(tǒng)元件模型;在系統(tǒng)算法實(shí)現(xiàn)方面,行為型模式提供了多種靈活的算法選擇;在用戶接口設(shè)計(jì)方面,結(jié)構(gòu)型模式對多樣的接口進(jìn)行了抽象統(tǒng)一,避免了接口的不一致性。

3 設(shè)計(jì)模式在分布式發(fā)電微網(wǎng)系統(tǒng)暫態(tài)仿真程序中的應(yīng)用

TSDG基于面向?qū)ο笤O(shè)計(jì)思想,廣泛采用了設(shè)計(jì)模式理論,限于篇幅,文中僅以其中四種設(shè)計(jì)模式的應(yīng)用舉例進(jìn)行說明,分別是工廠方法模式、適配器模式、策略模式和單例模式。在TSDG的構(gòu)建過程中,利用工廠方法模式提高元件建模的靈活性,利用適配器模式實(shí)現(xiàn)稀疏算法庫的復(fù)用,利用策略模式減少程序模塊間的耦合,利用單例模式優(yōu)化和共享資源訪問。

3.1 工廠方法模式

工廠方法模式的意圖是定義一個(gè)用于創(chuàng)建對象的接口,讓子類決定實(shí)例化哪一個(gè)類,使一個(gè)類的實(shí)例化延遲到其子類。在工廠方法模式中,核心的抽象工廠類不會(huì)負(fù)責(zé)所有產(chǎn)品的創(chuàng)建,僅負(fù)責(zé)給出具體工廠類必須實(shí)現(xiàn)的接口,具體產(chǎn)品的創(chuàng)建由具體工廠類去實(shí)現(xiàn)。因此,系統(tǒng)在加入新的產(chǎn)品時(shí)就不需要修改抽象工廠類和具體工廠類,只需要增加與新產(chǎn)品相應(yīng)的具體工廠類即可。工廠類與產(chǎn)品類往往具有平行的對等結(jié)構(gòu),它們之間一一對應(yīng)。

與傳統(tǒng)電力系統(tǒng)成熟穩(wěn)定的元件模型相比,分布式發(fā)電微網(wǎng)系統(tǒng)不但元件模型種類繁多,而且很多分布式電源的模型尚在不斷完善與發(fā)展之中。隨著分布式發(fā)電微網(wǎng)系統(tǒng)研究的深入,需要不斷地對元件模型庫進(jìn)行增加或者修改。傳統(tǒng)的軟件開發(fā)方法需要修改原有的創(chuàng)建具體元件類的實(shí)現(xiàn)部分,使得實(shí)例的創(chuàng)建不靈活,而且由于其在開放擴(kuò)展的同時(shí)也開放了其他無關(guān)元件模型的修改,違背了開放-封閉原則。工廠方法模式則是定義一個(gè)用于創(chuàng)建對象的接口,讓子類決定需要實(shí)例化的類,所以工廠方法模式可較好地解決這個(gè)問題。

圖2給出了基于工廠方法模式的元件對象創(chuàng)建實(shí)現(xiàn)方法,主要包括四個(gè)部分,分別為抽象工廠,具體工廠,抽象產(chǎn)品和具體產(chǎn)品。抽象工廠類AbstractFactory定義了創(chuàng)建各種元件對象行為的接口,通過該接口可以實(shí)現(xiàn)具體產(chǎn)品;Transformer Factory類、BranchRLCFactory類和DiodeFactory類等為具體工廠,在具體工廠中,工廠方法CreateElement對具體元件的創(chuàng)建進(jìn)行了定義與實(shí)現(xiàn),返回一個(gè)ElectricalSystem類型的對象實(shí)例。ElectricalElement類是工廠模式所創(chuàng)建產(chǎn)品的基類。由于具體工廠返回的是抽象產(chǎn)品的實(shí)例,從而屏蔽了接口的不同實(shí)現(xiàn)所造成的用戶邏輯對具體類訪問所造成的差異。在具體的應(yīng)用中,增加或者修改元件庫模型時(shí),軟件開發(fā)人員只需要而且只允許增加或修改相應(yīng)元件模型的具體工廠和具體產(chǎn)品,無法修改其他元件模型,不但遵守了開放-封閉原則,又保持了封裝元件對象創(chuàng)建過程的優(yōu)點(diǎn)。

圖2 基于工廠方法模式的元件對象創(chuàng)建實(shí)現(xiàn)Fig.2 Implementation of element object creation based on factory method pattern

在TSDG中,除了元件對象模型的創(chuàng)建之外,算例參數(shù)輸入和仿真結(jié)果輸出也采用了工廠方法模式。TSDG兼容兩種算例參數(shù)和輸出結(jié)果的存儲(chǔ)形式:Mysql數(shù)據(jù)庫和自定義數(shù)據(jù)文件。這兩種形式的數(shù)據(jù)具有相同的行為,包括數(shù)據(jù)的存儲(chǔ)、查詢、修改等,但是兩者的結(jié)構(gòu)和訪問方式完全不同,前者需使用數(shù)據(jù)庫接口,后者需使用文件流接口,在接口實(shí)現(xiàn)上存在較大差異。TSDG采用工廠方法模式定義了統(tǒng)一的抽象接口集,包括數(shù)據(jù)庫連接(文件打開)、數(shù)據(jù)存儲(chǔ)、查詢、修改等一系列行為,并在該抽象接口集的基礎(chǔ)上實(shí)現(xiàn)了用于Mysql數(shù)據(jù)庫和自定義數(shù)據(jù)文件格式的具體實(shí)現(xiàn)。在具體的應(yīng)用中,無需指定數(shù)據(jù)形式的子類,只需創(chuàng)建父類即可得到一系列該父類所管理的數(shù)據(jù)形式實(shí)現(xiàn),使上層應(yīng)用獨(dú)立于數(shù)據(jù)形式的變化。

工廠方法模式通常可以看作是創(chuàng)建對象(實(shí)例化)的替代品,任何需要生成對象的場景都可以使用,但是要在復(fù)雜度與便捷之間權(quán)衡,另外在需要靈活的、可擴(kuò)展的框架時(shí),也可以考慮采用該模式。

工廠方法模式具有如下優(yōu)點(diǎn):1)良好的封裝性,代碼結(jié)構(gòu)清晰;2)很強(qiáng)的可擴(kuò)展性;3)降低了程序的耦合性。

3.2 適配器模式

適配器模式的意圖是將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口,使得接口不兼容的多個(gè)類可以一起工作。

軟件開發(fā)過程中總是希望復(fù)用一些現(xiàn)成的類,已存在類的功能可能符合系統(tǒng)的設(shè)計(jì)要求,但是它們的接口卻和當(dāng)前的系統(tǒng)不匹配造成不能復(fù)用。一般的做法是逐個(gè)修改這些類的接口,這也是一件很繁瑣的工作。適配器模式能夠從軟件結(jié)構(gòu)的設(shè)計(jì)上解決這個(gè)問題。適配器模式可以提供一個(gè)接口,直接將現(xiàn)有的模塊加入到新的仿真軟件中去,加快軟件開發(fā)進(jìn)度。

TSDG需要高效可靠的稀疏算法庫,從軟件工程的角度來看,自主重新開發(fā)一套稀疏算法庫是不現(xiàn)實(shí)的,降低了軟件代碼重用和開發(fā)效率,通常的做法是盡可能利用現(xiàn)有成熟的稀疏算法庫。開源免費(fèi)的Sparse庫[10]能夠?qū)崿F(xiàn)對線性稀疏方程組的求解,具有較強(qiáng)的實(shí)用性,但其接口卻和TSDG不一致。因此在TSDG的實(shí)現(xiàn)過程中采用適配器模式將Sparse庫的接口轉(zhuǎn)換為適合TSDG的接口,實(shí)現(xiàn)了Sparse庫的復(fù)用,這不但大大加快了程序的開發(fā)進(jìn)度,增加了仿真軟件的通用性和可維護(hù)性,也為以后采用其他更為高效的第三方稀疏算法庫[11~14]替換Sparse庫提供了便捷,提高了程序的可維護(hù)性。

圖3給出了基于適配器模式的稀疏算法庫實(shí)現(xiàn),Target類定義了TSDG所用的接口,Sparse Lib類是已經(jīng)存在的稀疏算法庫,可以是Sparse庫,也可以是其他第三方稀疏算法庫,該庫實(shí)現(xiàn)了稀疏算法的相關(guān)功能,但是其接口與TSDG不匹配,利用Sparse類將Sparse Lib和Target接口進(jìn)行匹配。通過使用適配器模式,在基本不改變原有代碼的基礎(chǔ)上,通過Sparse類調(diào)用Sparse Lib中的相應(yīng)接口來實(shí)現(xiàn)稀疏算法的功能,實(shí)現(xiàn)了原先并不兼容的Sparse Lib類的復(fù)用。

圖3 基于適配器模式的稀疏算法實(shí)現(xiàn)Fig.3 Implementation of sparse algorithm based on adapter pattern

適配器模式主要應(yīng)用于希望復(fù)用一些現(xiàn)存的類,但是接口又與復(fù)用環(huán)境要求不一致的情況,優(yōu)點(diǎn)是提高了類的可復(fù)用性。但是適配器模式的主要場景是擴(kuò)展應(yīng)用,所以在開發(fā)階段不要考慮適配器模式,在該階段通常采用外觀模式。

3.3 策略模式

策略模式是一種對象行為型模式,它定義了一系列的算法,并將它們分別封裝成類,讓它們之間可以相互替換,使得算法可以獨(dú)立于客戶而變化,非常適用于具有算法分支選擇情況的實(shí)例。

針對不同的應(yīng)用場合,分布式發(fā)電微網(wǎng)系統(tǒng)暫態(tài)仿真的要求也不盡相同,需要在仿真精度和速度上有所側(cè)重,使得暫態(tài)仿真程序通常含有多種算法。如果將多種算法以行為方式和數(shù)據(jù)狀態(tài)靜態(tài)地封裝在一起,不僅使解算類變得龐大復(fù)雜,也不利于算法類的修改和替換。考慮到這些具體的算法類具有同樣的接口,僅是在方法的具體實(shí)現(xiàn)上存在差異,因此TSDG采用策略模式將電氣系統(tǒng)數(shù)據(jù)和算法分離,并將各個(gè)算法逐個(gè)封裝,使各個(gè)算法之間可以相互切換,實(shí)現(xiàn)算法與算法之間、算法和數(shù)據(jù)之間的解耦。

圖4給出了基于策略模式的電氣系統(tǒng)算法實(shí)現(xiàn),Sim Algorithm為抽象類,提供了各種算法的統(tǒng)一接口,所有具體算法都從該接口派生,Context類使用這個(gè)接口來調(diào)用具體的電氣系統(tǒng)解算算法,而Trapezoid、Backward Euler和Mixed類實(shí)現(xiàn)了具體的算法,分別是梯形積分法,后向歐拉法和梯形法和后向歐拉法的混合算法。使用策略模式后,TSDG將大部分算法統(tǒng)一在同一框架下,只需針對接口Electrical Algorithm進(jìn)行開發(fā),通過算法與數(shù)據(jù)的分離機(jī)制,提高了算法復(fù)用程度,便于算法的移植,可用于其他電力系統(tǒng)仿真程序的開發(fā)。在具體的應(yīng)用中,由于具體的算法類都是從接口Electrical Algorithm派生的,根據(jù)多態(tài)機(jī)制,只要修改變類名就可以完成電氣系統(tǒng)解算算法的更換,無需大量代碼的更改。顯然,通過使用策略模式大大提高了程序的靈活性。

圖4 基于策略模式的電氣系統(tǒng)算法實(shí)現(xiàn)Fig.4 Implementation of electrical system algorithm based on strategy pattern

策略模式通常應(yīng)用于以下場景:①多個(gè)類的區(qū)別僅為表現(xiàn)行為不同,運(yùn)用策略模式在運(yùn)行時(shí)動(dòng)態(tài)地選擇具體行為;②需要在不同情況下使用不同的算法;③對客戶隱藏具體算法的實(shí)現(xiàn)細(xì)節(jié),彼此完全獨(dú)立對于策略模式來說,主要有如下優(yōu)點(diǎn):①避免程序中使用多重條件轉(zhuǎn)移語句,提高了系統(tǒng)靈活性和擴(kuò)展能力;②提供了一種替代繼承的方法,比繼承更靈活;③增加對象內(nèi)聚性、降低程序耦合性。

但是需要強(qiáng)調(diào)的是,雖然策略模式非常有效,但不應(yīng)該濫用,因?yàn)閿?shù)據(jù)和算法的分離引發(fā)的相互調(diào)用會(huì)影響程序的執(zhí)行性能。

3.4 單例模式

單例模式的意圖是保證一個(gè)類僅有一個(gè)實(shí)例,并提供一個(gè)訪問它的全局訪問點(diǎn)。對一些類來說,只有一個(gè)實(shí)例是很重要的。單例模式讓類自身負(fù)責(zé)保存它的唯一實(shí)例。這個(gè)類可以保證沒有其他實(shí)例可以被創(chuàng)建,并且它可以提供一個(gè)訪問該實(shí)例的方法。單例模式比較簡單,經(jīng)常用于對系統(tǒng)資源的控制,有時(shí)也會(huì)作為一種通信媒介,在不建立直接關(guān)聯(lián)的條件下讓不相關(guān)的兩個(gè)程序進(jìn)行通信,尤其是多線程。

仿真程序通常需要具備同時(shí)仿真多個(gè)系統(tǒng)的能力,系統(tǒng)解算器是獨(dú)立于系統(tǒng)存在的,對于多個(gè)系統(tǒng)來說,如果每個(gè)系統(tǒng)都實(shí)例化一個(gè)解算器,這就造成資源的浪費(fèi),所以TSDG中系統(tǒng)解算器采用了單例模式,由解算器類自己負(fù)責(zé)實(shí)例化,并且保證實(shí)例唯一,單個(gè)的解算器可以同時(shí)對多個(gè)系統(tǒng)進(jìn)行解算。

在分布式發(fā)電系統(tǒng)暫態(tài)仿真軟件中,將整個(gè)暫態(tài)仿真系統(tǒng)定義為一個(gè)SimSystem類,該類是分布式發(fā)電系統(tǒng)暫態(tài)仿真中的主類,負(fù)責(zé)軟件中各個(gè)類的協(xié)調(diào),因此,其實(shí)例應(yīng)該是唯一的,為了保證只有一個(gè)SimSystem的實(shí)例存在,TSDG使用了單例模式。

圖5 基于單例模式的系統(tǒng)解算器實(shí)現(xiàn)Fig.5 Implementation of system solver based on singleton pattern

圖5給出了基于單例模式的系統(tǒng)解算器實(shí)現(xiàn),SimSystem類是TSDG中的主類,實(shí)現(xiàn)系統(tǒng)仿真功能,在具體的應(yīng)用中,SimSystem類定義一個(gè)GetInstance靜態(tài)方法,以及一個(gè)靜態(tài)屬性,類型為SimSystem類的實(shí)例。GetInstance方法創(chuàng)建了SimSystem的唯一實(shí)例,可以嚴(yán)格地控制客戶對其的訪問。

單例模式使得整個(gè)軟件運(yùn)行過程中都只有一個(gè)實(shí)例,減少了內(nèi)存和系統(tǒng)的開銷,并且可以在系統(tǒng)設(shè)置一個(gè)全局的訪問點(diǎn),優(yōu)化和共享資源訪問,但是單例模式?jīng)]有接口,很難擴(kuò)展,違背了開放原則。

4 結(jié)語

分布式發(fā)電微網(wǎng)系統(tǒng)暫態(tài)過程的研究需要相應(yīng)仿真計(jì)算工具的支持。分布式發(fā)電微網(wǎng)系統(tǒng)暫態(tài)仿真程序TSDG的開發(fā)不僅是對傳統(tǒng)電力系統(tǒng)電磁暫態(tài)仿真程序應(yīng)用范圍的拓展,同時(shí)也引入了很多新技術(shù)實(shí)現(xiàn)復(fù)雜非線性系統(tǒng)的準(zhǔn)確、快速仿真。基于現(xiàn)代軟件架構(gòu)和標(biāo)準(zhǔn)C++程序設(shè)計(jì)語言開發(fā)的TSDG更好地支持了面向?qū)ο笏枷肱c設(shè)計(jì)模式,這是基于Fortran語言開發(fā)的EMTP等程序所不能比擬的。與傳統(tǒng)電力系統(tǒng)仿真程序的開發(fā)不同,當(dāng)前已具有許多成熟的開源的算法庫,程序開發(fā)人員可以充分利用這些基礎(chǔ)條件,減少軟件開發(fā)的工作量,并更專注于專業(yè)軟件本身的開發(fā),此時(shí)需要清晰明確的程序接口。同時(shí),對于分布式發(fā)電微網(wǎng)系統(tǒng)穩(wěn)定性仿真與潮流計(jì)算等其他功能的仿真計(jì)算程序,而這些程序從仿真計(jì)算功能到基礎(chǔ)計(jì)算資源的需求與TSDG是非常接近的,在一些情況下,TSDG甚至可能需要與穩(wěn)定性仿真或潮流計(jì)算程序交換數(shù)據(jù)與信息,這都使得暫態(tài)仿真程序的架構(gòu)設(shè)計(jì)尤為重要。此時(shí),面向?qū)ο笤O(shè)計(jì)模式為上述問題的解決提供了有效的方法。

本文以工廠方法模式、適配器模式、策略模式和單例模式為例描述了面向?qū)ο笤O(shè)計(jì)模式在分布式發(fā)電微網(wǎng)系統(tǒng)暫態(tài)仿真程序TSDG中的應(yīng)用。TSDG的開發(fā)實(shí)現(xiàn)基于面向?qū)ο蟮脑O(shè)計(jì)思想,廣泛采用設(shè)計(jì)模式理論,實(shí)現(xiàn)了模塊間的低耦合和模塊內(nèi)部的高內(nèi)聚,提高了程序的可維護(hù)性和可復(fù)用性,能夠應(yīng)對功能需求的變化。TSDG中多種設(shè)計(jì)模式的應(yīng)用和集成方法具有一定的通用性,可作為其他電力系統(tǒng)仿真軟件開發(fā)的參考。

[1] Brooks N,Baldwin T,Brinson T,et al.Analysis of fuel cell based power systems using EMTDC electrical power simulator[C]∥The 36th Southeastern Symposium on System Theory.Atlanta,USA:2004.

[2] 郭力,王成山(Guo Li,Wang Chengshan).含多種分布式電源的微網(wǎng)動(dòng)態(tài)仿真(Dynamical simulation on microgrid with different types of distributed generations)[J].電力系統(tǒng)自動(dòng)化(Automation of Electric Power Systems),2009,33(2):82-86.

[3] 李鵬(Li Peng).分布式發(fā)電供能微網(wǎng)系統(tǒng)暫態(tài)仿真方法研究(Research on the Transient Simulation Methodology of Micro-grid Powered by Distributed Energy Resources)[D].天津:天津大學(xué)電氣與自動(dòng)化工程學(xué)院(Tianjin:School of Electrical Engineering and Automation,Tianjin University),2010.

[4] 王成山,李鵬,王立偉(Wang Chengshan,Li Peng,Wang Liwei).配電系統(tǒng)電磁暫態(tài)仿真算法分析(A-nalysis of electromagnetic transients simulation algorithm for distribution systems)[J].電力系統(tǒng)及其自動(dòng)化學(xué)報(bào)(Proceedings of the CSU-EPSA),2008,20(6):1-5.

[5] Bob T.Some object-oriented design principles[EB/OL].http://userpages.umbc.edu/~tarr/dp/lectures/OOPrinciples.pdf,2010.

[6] Martin R C.Design principles and design patterns[EB/OL].http://www.objectmentor.com,2000.

[7] Prieto-Diaz R.Status report:Software reusability[J].IEEE Software,1993,10(3):61-66.

[8] Di Felice P.Reusability of mathematical software:A contribution[J].IEEE Trans on Software Engineering,1993,19(8):835-843.

[9] Zhou E Z.Object-oriented programming,C++and power system simulation[J].IEEE Trans on Power Systems,1996,11(1):206-215.

[10]Kundert K S.Sparse 1.3-A sparse linear equation solver[EB/OL].http://www.netlib.org/sparse/,1986.

[11]Demmel J W,Gilbert J R,Li X S.Super LU users'guide[EB/OL].http://crd.lbl.gov/~xiaoye/Super LU/,2009.

[12]Intel Corporation.Intel math kernal library for windows OS users'guide[EB/OL].http://www.intel.com/software/products/,2009.

[13]Tim D.SuiteSparse/UMFPACK[EB/OL].http://www.cise.ufl.edu/research/sparse/umfpack/,2011.

[14]Tim D.SuiteSparse/KLU[EB/OL].http://www.cise.ufl.edu/research/sparse/klu/,2011.

猜你喜歡
程序系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機(jī)系統(tǒng)
ZC系列無人機(jī)遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統(tǒng)
試論我國未決羈押程序的立法完善
半沸制皂系統(tǒng)(下)
失能的信仰——走向衰亡的民事訴訟程序
“程序猿”的生活什么樣
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
英國與歐盟正式啟動(dòng)“離婚”程序程序
主站蜘蛛池模板: 国产成人亚洲综合a∨婷婷| 首页亚洲国产丝袜长腿综合| 欧美.成人.综合在线| 國產尤物AV尤物在線觀看| 在线播放国产99re| 亚洲日本中文字幕乱码中文| 色国产视频| 精品91自产拍在线| 久久精品免费国产大片| 国产欧美日韩在线一区| 九色视频线上播放| 成年人国产网站| 国产午夜精品鲁丝片| 国产AV无码专区亚洲精品网站| 麻豆精品久久久久久久99蜜桃| 欧美国产三级| 2024av在线无码中文最新| 乱色熟女综合一区二区| 国产午夜小视频| 亚洲综合精品香蕉久久网| 欧美日韩在线成人| 人妻熟妇日韩AV在线播放| 无码国产伊人| 91午夜福利在线观看精品| 亚洲性视频网站| 国产欧美在线观看一区| 在线毛片免费| 一本色道久久88| 亚洲免费黄色网| 日本人妻丰满熟妇区| 亚洲成肉网| 青青草原国产免费av观看| 黄片一区二区三区| 欧美不卡视频在线观看| 国产日本欧美亚洲精品视| 秋霞国产在线| 免费在线色| 国产无遮挡猛进猛出免费软件| 制服丝袜 91视频| 麻豆AV网站免费进入| 色婷婷亚洲综合五月| 色偷偷av男人的天堂不卡| 欧美色伊人| 亚洲国产日韩在线观看| 青青操国产视频| 午夜高清国产拍精品| 无码国产伊人| 国产91av在线| 亚洲全网成人资源在线观看| 欧美日韩中文字幕在线| 一本大道在线一本久道| 久久精品丝袜| 久久99精品国产麻豆宅宅| 国产一国产一有一级毛片视频| 乱系列中文字幕在线视频| 久草中文网| 九九热免费在线视频| 国产成人精品免费av| 真人高潮娇喘嗯啊在线观看| 欧美va亚洲va香蕉在线| 2022国产无码在线| 日韩av无码DVD| 久久不卡国产精品无码| 欧美三级日韩三级| 中国成人在线视频| 欧美综合区自拍亚洲综合天堂| 亚洲a级在线观看| 伊人成色综合网| 久操线在视频在线观看| 毛片在线播放a| 欧美一级高清免费a| 制服丝袜一区二区三区在线| 国产自在线播放| 久久a毛片| 久热中文字幕在线| 国产三级成人| 亚洲天堂网站在线| 成·人免费午夜无码视频在线观看| 国产青榴视频| 国产精品成人一区二区| 一本大道无码高清| 亚洲码在线中文在线观看|