胡 平,高文根,陳其工,黃少偉,劉 濤
(1.安徽工程大學a.計算機與信息學院;b.安徽檢測技術與節能裝置省級重點實驗室,安徽蕪湖241000;
2.清華大學電力系統國家重點實驗室,北京100084)
基于D-OSGi的光伏微電網能量管理系統
胡 平1a,高文根1b,陳其工1b,黃少偉2,劉 濤1a
(1.安徽工程大學a.計算機與信息學院;b.安徽檢測技術與節能裝置省級重點實驗室,安徽蕪湖241000;
2.清華大學電力系統國家重點實驗室,北京100084)
微電網需要能量管理系統(EMS)對分布式電源進行實時優化控制,但傳統軟件開發模型及中間件技術在模塊熱插拔及代碼侵入性等方面尚有不足。為此,依托安徽工程大學100 kW光伏微網項目,提出一種基于分布式開放服務網關(D-OSGi)的微網能量管理系統。闡述D-OSGi的擴展方法、EMS軟件邏輯層劃分、能量優化調度策略及SCADA圖元變更機制,給出系統在宣城微網的實施方法。對典型業務模塊的功能進行驗證,結果表明,該系統能有效降低用戶對功能進行細粒度定制和擴展的難度,方便電力系統相關科研人員對微網控制算法進行快速仿真。
微電網;能量管理系統;分布式電源;開放服務網關;面向切面編程
隨著國家能源戰略調整及環境日益嚴峻,基于風能和太陽能等可再生能源的分布式電源微網逐漸成為研究熱點。為解決因氣象因素造成的設備發電功率波動較大的問題,微電網需要類似于傳統大電
網的能量管理系統(Energy Management System, EMS)對分布式電源進行實時化、多目標的運行優化控制[1-2]。因此,微電網EMS的設計工作成為亟待解決的問題。
目前針對微網EMS的研究目標主要集中在分層保護策略及信息交互模型上[3-4]。而從宏觀和用戶的角度,微網EMS首先是一個軟件系統,若忽略對軟件整體架構的考慮,在實現技術上仍基于傳統架構及開發模型,顯然與當前軟件的分布化、構件化及運行時可插拔等趨勢背道而馳,導致包括企業和科研人員在內的用戶很難根據微網類型及規模對系統進行細粒度功能定制和非侵入式的擴展。一部分學者已經意識到上述問題,并通過SOA/Web Service等中間件技術來開發或重構微網EMS[5-6],其較好解決了EMS的一些常規業務,但在模塊動態熱插拔、異構平臺支持度以及能量調度策略與控制算法的低耦合等方面仍存在不足。
本文依托安徽工程大學100 kW光伏微電網項目,結合開放服務網關(Open Service Gateway initiative, OSGi)規范及面向切面編程(Aspect-oriented Programming,AOP)技術,提出并實現一種具有即插即用特性的分布式光伏微網能量管理系統,使得能量調度策略與控制算法充分解耦,同時降低用戶在系統上線后對功能進行細粒度定制和擴展的難度。
2.1 D-OSGi概述
OSGi為軟件系統提供了一種基于構件的、面向服務的開發機制和運行環境,其核心思想是使軟件構件(在OSGi中稱為Bundle)的部署、啟停、更新及卸載等具備高度動態性[7]。近年來,越來越多的應用開始采用OSGi作為底層架構來開發和部署,其中典型代表如Eclipse。OSGi規范最初是針對嵌入式和移動設備提出的,這顯然限制了其在企業級應用開發領域的大規模普及。為解決這一矛盾,OSGi聯盟于2010年3月發布了首次涉及企業級服務的OSGi R4.2企業版規范,Java EE平臺中的一些重要規范如JNDI、JPA和JDBC等在該規范中均有相應的服務定義,從而使得在OSGi容器中訪問Java EE標準服務成為可能。2011年4月發布的OSGi R4.3核心版規范[8]開始支持JDK 1.5的泛型語法,這也從一個側面說明OSGi已將重心向企業級分布式應用開發傾斜。
目前兼容OSGi R4.2及以上版本規范的參考實現主要有Eclipse Equinox、Apache D-OSGi及JBoss OSGi等,其中以Apache D-OSGi的發展最為活躍。D-OSGi源于Apache的CXF項目[9],其核心是通過Web Service技術實現跨虛擬機的遠程OSGi服務調用,非常適合微網EMS中部署于工控機、服務器甚至移動設備上的分布式子系統間的交互場景,加上其提供了輕量級容器Felix的支持,因此,本文EMS選用了Apache D-OSGi作為底層開發框架。
2.2 D-OSGi的面向切面擴展方法
微網EMS中的特殊業務決定了其內部多個Bundle間不僅僅是簡單的功能調用關系,例如,工控機連接的多個數據采集口需要進行同步控制、數據變化滿足預置條件時將觸發控制邏輯生成和下發指令、人機交互界面中的圖元在現場設備響應或超時后的自動狀態更新等[10]。若遵循標準的OSGi規范實現這些邏輯,不僅代碼分散、冗余度高,而且會因非功能性邏輯對核心業務邏輯的侵入而嚴重降低系統的可擴展性。借助AOP思想[11]能較好滿足上述特殊需求,考慮到標準的D-OSGi交互模型缺乏對關注點分離和切面織入的支持,因此,有必要對其進行面向切面擴展,如圖1所示。

圖1 D-OSGi的面向切面擴展示意圖
擴展方法基于典型的責任鏈設計模式,通過在服務消費者(Client)和服務提供者(Server)之間引入攔截器(Interceptor),并由后者自動攔截和轉發所有由Client發起的遠程服務調用。為獲取OSGi容器上下文,Interceptor本身也是以Bundle的形式出現,其提供的攔截方法(doIntercept)被封裝為OSGi服務并發布到注冊中心(Zoo Keeper Server)。Interceptor通過OSGi R4.3規范中新增的服務事件監聽器鉤子(Service Event Listener Hook)實現調用攔截,將目標方法與指定的織入配置(與Spring AOP配置信息類似)進行匹配,通過編織鉤子(Weaving Hook)將匹配到的橫切關注點邏輯(以AspectJ的語法定義[12])織入doIntercept方法的合適位置,最后將Client原來的調用請求轉發到目標方法。
3.1 微電網拓撲架構
安徽工程大學100 kW光伏微電網項目所含設備分布于4號教學樓及A座實驗樓樓頂,前者光伏裝機容量為70 kWp,發出的電直接并網,后者容量為30 kWp,同時帶有30 kWh的儲能單元,二者構成微電網系統。
項目包含3個層面:
(1)一套容量為100 kW的光伏發電系統(太陽能電池板、光伏并網逆變器等)、電池儲能系統、電能質量綜合治理裝置及可控負載;
(2)數據采集、控制和保護層,主要包括數據采集服務器、先進控制器和保護裝置;
(3)系統監控展示層,即本文EMS及其數據采集與監控(Supervisory Control And Data Acquisition, SCADA)人機交互界面,其實時采集和展示微電網內部的分布式電源、負荷、逆變器、儲能等設備的信息,并通過綜合保護系統,快速探測設備臨界狀態并生成協調指令,以保障微網自趨優運行以及重要負荷的用電可靠性。
該校光伏微電網拓撲的具體架構如圖2所示(以A座實驗樓為例)。

圖2 光伏微電網拓撲架構
3.2 軟件邏輯層
根據微網主要業務,本文EMS被設計為綜合保護與SCADA 2個子系統,其中前者部署于工控機,后者則部署于服務器。軟件邏輯層劃分如圖3所示,其中所有功能模塊均以OSGi Bundle的形式實現。綜合保護子系統中的控制邏輯層包含若干控制算法Bundle,今后開展的電力系統及自動化控制方面的研究可熱插拔于該層以快速仿真。數據I/O層Bundle以多線程異步的方式讀取和緩存現場設備實時狀態,為保證毫秒級的讀取間隔和控制響應,該層Bundle通過RS-485串口/PCI總線驅動層訪問與現場設備相連的公共連接點(Point of Common Coupling,PCC)以獲
取設備狀態(模擬/數字量)并下發控制指令(數字量),從而保證微網運行狀態的自穩定和自優化。此外,由于該層Bundle需要訪問底層驅動以及Modbus, Labview等行業標準庫(通常以C/C++等本地代碼實現),故使用了Java本地接口(Java Native Interface, JNI)技術以實現跨語言調用。

圖3 微網EMS軟件邏輯層劃分
SCADA子系統中的數據采集與存儲Bundle通過RS-485串口獲取設備數據(數字量,其采樣頻率較綜合保護子系統低得多)并持久存儲于數據庫以形成統計分析報表。調度管理Bundle經以太網與綜合保護子系統中的相應Bundle相連,并通過DOSGi容器共享上下文。用戶可指定不同的能量優化和調度策略,由綜合保護系統中的控制邏輯層下發控制指令,以達到人工干預微網運行狀態。
3.3 能量優化和調度
能量優化調度是微網EMS的核心功能,對于微網系統的可靠運行極為關鍵。本文將調度過程解耦為調度策略描述與控制算法實現,并充分利用AOP的運行時字節碼編織機制實現控制邏輯的動態變更。調度優化策略描述以XML格式存于SCADA端文件系統,其中內容包括發電質量指標參數(如儲能出力缺額、功率偏差閾值等)、控制邏輯IDs、觸發條件以及前置/后置指令等,SCADA子系統中的調度管理Bundle提供了GUI可視化編輯和校驗器方便用戶編輯策略文件。能量優化和調度流程如圖4所示。
圖4具體工作流程如下:
(1)由用戶編輯策略文件(來自于外部配網的信息和指令需要先轉換為合法的策略文件),提交至調度管理Bundle。
(2)調度管理Bundle解析策略文件,生成以AspectJ語法描述的切面配置信號并轉發至控制邏輯層。
(3)控制邏輯Bundle的Service Hook攔截切面配置,通過Weaving Hook和Spring AOP容器將切面配置植入指定控制邏輯的字節碼中。
(4)以異步方式啟動控制邏輯,其將在觸發條件被滿足時生成控制指令序列。
(5)指令序列經PCC下發至相應設備端駐留程序并執行,最終完成一次優化調度任務。

圖4 能量優化和調度流程
該方法充分解耦了調度策略描述與控制邏輯實現,不僅屏蔽了控制邏輯的編織細節,而且能在不停機前提下對控制邏輯進行熱插拔,方便了用戶特別是電力系統科研人員快速仿真。SCADA子系統中的權限校驗、操作日志及數據庫事務管理等非功能性邏輯也可采用類似的方式完成。
3.4 SCADA圖元狀態同步
微網EMS相較于其他業務系統的一個重要區別是設備狀態的變化將觸發GUI更新,如設備駐留保護程序主動開/閉開關、控制算法執行儲能電池充/放電及微網的離/并網指令等。換言之,微網EMS中的事件源往往是系統內部的數據,而非外部的用戶或其他系統。作為微網EMS的人機交互界面,SCADA子系統必須具備及時、準確地探測設備狀態變化并更新相應圖元的圖標/動畫等以保持界面和設備狀態一致性的能力。若采用傳統的監聽線程主動拉取(Pull)數據的編程方式實現該邏輯,不僅要為每個設備編寫對應監聽線程及圖元更新邏輯(侵入式編程方式,降低了代碼可理解性),而且會因大量線程對象并發執行而導致系統難以調試及性能下降。
本文通過JavaBean規范中的屬性變更監聽機制及AOP技術來實現SCADA圖元的狀態同步,具體方案如下:
(1)編寫全局唯一的設備狀態變化監聽Bundle。
(2)以AOP切面的形式指定每個圖元的監聽主題(含設備ID、要同步的數據屬性及觸發條件等)及更新細節(含圖標文件、動畫類型等),并向監聽Bundle注冊。
(3)監聽Bundle在啟動時通過AOP容器植入所有圖元切面邏輯,為每個圖元生成對應的JavaBean字節碼(重寫了java.beans.PropertyChangeListener接口)并實例化之。
(4)監聽Bundle通過數據采集Bundle輪詢每個設備的狀態,當滿足觸發條件時,將數據變化事件封裝為java.beans.PropertyChangeEvent對象。
(5)監聽Bundle將事件對象推送(Push)至相應的主題訂閱者(即圖元實例),并作為參數由后者回調(Callback)相應接口方法(propertyChange)。
實際運行界面如圖5所示。可見,上述方法不僅性能更優(只存在一個全局的監聽線程),而且代碼量顯著減少,相關人員可以集中更多精力關注微網的核心業務而非GUI的變更邏輯。

圖5 SCADA界面及圖元變更
本EMS已于2013年10月在安徽省宣城市供電公司光伏發電及微網控制示范項目上線,系統基于JDK 1.6.0_45+MyEclipse 10.5開發,并以Maven 3.3.2作為Bundle版本管理插件,OSGi容器為Apache Felix 4.4.1,AOP容器為Spring 3.1.1, Web服務器為Jetty 8.1.15;GUI圖元方面,采用TWaver for Java 4.5,其是基于Swing組件庫的純Java擴展,與本EMS的GUI完全兼容;串口通信方面,采用rxtx-2.2-linux-x64包;數學及矩陣運算庫方面,采用Apache commons-math 3.4。微網綜合保護子系統部署于研華工控機(IPC-610H),SCADA子系統則部署于IBM服務器(x3650 M4),操作系統均為CentOS 6.5,兩者通過千兆以太網相連。
驗證目標分別選取調度管理Bundle及發電預測Bundle,在EMS不間斷運行的前提下熱部署到系統中,考查兩者的功能正確性。調度管理Bundle根據預先設定的發電出力及儲能可用率等指標,實時計算并織入指令以控制光伏板棄光、儲能設備充/放電以及從配網取電等。驗證結果如圖6所示(截取于實際運行界面)。圖中加粗階梯狀曲線為設定的某日發電出力,其中縱軸為負的點表示配網正在為儲能設備充電。為貼近真實用電場景,在驗證調度管理的60 min內(約12時50分開始),若干次隨機開閉數臺接入負荷的空調、電熱水壺等大功率設備。
結果表明,該時段內的設定出力和實測出力曲線基本吻合,兩者偏離比最高為4.3%(出現于13時54分左右,該時刻刻意制造的接入負荷變化較大)。此外,接入負荷的幾臺PC機(用電質量要求較高)在此時段內均未出現死機,較好滿足了調度指標。

圖6 能量調度Bundle驗證結果
發電預測Bundle預測微網短期發電功率,為能量優化調度提供依據。考慮到除氣象因素外,發電量還受到光伏板的材質、工藝和型號等影響,故本Bundle采用了基于歷史相似氣象日和最小二乘支持向量機的統計方法,具體步驟如下:
(1)獲取最近采樣的360條(每天1條,每條含12個特征維,系統運行初期可適當降低訓練集與測試集的樣本容量或根據經驗預估)數據中隨機的330條作為候選訓練集,剩余30條則作為測試集。
(2)基于k最近鄰法,在候選訓練集中找到與待預測日具有最相似氣象條件(包括天氣類型、輻照度、溫度、濕度、風力、風向等特征)的k日發電出力作為訓練集(k≥17)。
(3)基于最小二乘支持向量機算法,以結構風險最小化為目標在訓練集和測試集上學習最優模型。
(4)根據最優模型及待預測日的氣象數據計算該日的發電出力。
驗證結果如圖7所示,結果表明,10次預測與實際發電功率誤差比最高不超過9%,平均比為6.9%,預測準確率較高。若適當縮短氣象數據采樣間隔(預測日的氣象變化跨度可能較訓練樣本大),則準確率還可進一步提高。

圖7 驗證結果
本文依托安徽工程大學100 kW光伏微網項目,結合OSGi規范及AOP技術,設計并實現了一種具有即插即用特性的分布式光伏微網能量管理系統。基于運行期字節碼透明植入機制,提出了D-OSGi規范的面向切面擴展方法,闡述了軟件邏輯層劃分、能量優化調度策略及SCADA圖元變更機制,給出了系統在宣城微網的實施方法,并對典型業務模塊的功能進行了驗證。結果表明,該系統能有效降低用戶對功能進行細粒度定制和擴展的難度,同時方便電力系統相關科研人員對微網控制算法進行快速仿真。下一步將對微網中計算密集型業務的任務分派、并行計算以及集群環境下的負載均衡、失效Bundle探測等方面做進一步研究。
[1]Farhangi H.The Path of the Smart Grid[J].IEEE Power and Energy Magazine,2010,8(1):18-28.
[2]陳昌松.光伏微網的發電預測與能量管理技術研究[D].武漢:華中科技大學,2011.
[3]張建華,蘇 玲,陳 勇,等.微網的能量管理及其控制策略[J].電網技術,2011,(7):24-28.
[4]劉海璇,吳福保,董大興,等.微電網能量管理系統中的公共信息模型擴展[J].電力系統自動化,2012, 36(6):45-51.
[5]葛 蓬,李欣然,唐國慶,等.基于Web服務的電力企業實時信息應用集成[J].電力自動化設備,2011, 35(2):99-103.
[6]唐躍中,曹晉彰,郭創新,等.電網企業基于面向服務架構的應用集成研究與實現[J].電力系統自動化, 2008,32(14):50-54.
[7]張 仕,黃林鵬.基于OSGi的服務動態演化[J].軟件學報,2008,19(5):1201-1211.
[8]OSGi Alliance.OSGi Service Platform Release 4.3[EB/OL].[2014-09-10].http://www.osgi.org/Release4.
[9]Apache Software Foundation.The CXF Project[EB/OL].[2014-09-10].http://cxf.apache.org/distributed-osgi.html.
[10]梁 亮,李建林,惠 東.光伏-儲能聯合發電系統運行機理及控制策略[J].電力自動化設備,2011,31(8): 20-23.
[11]Alexanderson R.Aspect Oriented Software Implemented Node Level Fault Tolerance[C]//Proceedings of the 9th International Conference on Software Engineering and Applications.[S.l.]:ACM Press,2007:57-74.
[12]The AspectJ Project.AspectJ5Developer’sNotebook[EB/OL].[2014-09-10].http://www.eclipse.org/aspectj.
編輯 金胡考
Photovoltaic Microgrid Energy Management System Based on D-OSGi
HU Ping1a,GAO Wengen1b,CHEN Qigong1b,HUANG Shaowei2,LIU Tao1a
(1a.School of Computer and Information;1b.Anhui Key Lab of Detection Technology and Energy Saving Devices, Anhui Polytechnic University,Wuhu 241000,China;
2.State Key Lab of Power Systems,Tsinghua University,Beijing 100084,China)
Microgrid needs the Energy Management System(EMS)to optimize and control Distributed Generation (DG),but the traditional software development models and middleware technologies are insufficient in module hot-plug capability and code invasion.Based on the 100 kW photovoltaic microgrid project in Anhui Polytechnic University,this paper proposes a microgrid EMS based on Distributed Open Service Gateway initiative(D-OSGi),and then discusses the aspect-oriented approach to extend the D-OSGi,software logical layers of EMS,energy scheduling strategies and changes of SCADA graphics primitive.The implementation approach of EMS in Xuancheng microgrid is presented,and some tests are done for typical modules’functionality.The results show that the system reduces the difficulties to customize and extend functions effectively,and it is convenient for power system related researchers to simulate microgrid control algorithms rapidly.
microgrid;Energy Management System(EMS);Distributed Generation(DG);Open Service Gateway Initiative(OSGi);Aspect-oriented Programming(AOP)
胡 平,高文根,陳其工,等.基于D-OSGi的光伏微電網能量管理系統[J].計算機工程,2015, 41(3):47-52.
英文引用格式:Hu Ping,Gao Wengen,Chen Qigong,et al.Photovoltaic Microgrid Energy Management System Based on D-OSGi[J].Computer Engineering,2015,41(3):47-52.
1000-3428(2015)03-0047-06
:A
:TP393
10.3969/j.issn.1000-3428.2015.03.009
國家自然科學基金資助項目(61203034);安徽省科技攻關計劃基金資助項目(1301022045);安徽省高等教育提升計劃省級自然科學研究基金資助項目(TSKJ2014B08);蕪湖市科技計劃基金資助重大項目(2014zd23);清華大學盧強院士安徽省工作站基金資助項目。
胡 平(1979-),男,講師、碩士,主研方向:分布式計算,軟件體系結構;高文根,講師、碩士;陳其工,教授;黃少偉,講師、博士;劉 濤,副教授、碩士。
2014-09-01
:2014-09-25E-mail:15876240@qq.com