基于D-OSGi的光伏微电网能量管理系统

2015-02-20 08:15高文根陈其工黄少伟
计算机工程 2015年3期
关键词:图元微网逻辑

胡 平,高文根,陈其工,黄少伟,刘 涛

(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图元变更机制,给出系统在宣城微网的实施方法。对典型业务模块的功能进行验证,结果表明,该系统能有效降低用户对功能进行细粒度定制和扩展的难度,方便电力系统相关科研人员对微网控制算法进行快速仿真。

微电网;能量管理系统;分布式电源;开放服务网关;面向切面编程

1 概述

随着国家能源战略调整及环境日益严峻,基于风能和太阳能等可再生能源的分布式电源微网逐渐成为研究热点。为解决因气象因素造成的设备发电功率波动较大的问题,微电网需要类似于传统大电

网的能量管理系统(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 D-OSGi及其面向切面扩展

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 光伏微电网能量管理系统

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界面及图元变更

4 系统在宣城微网的实施与验证

本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 验证结果

5 结束语

本文依托安徽工程大学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

猜你喜欢
图元微网逻辑
刑事印证证明准确达成的逻辑反思
一种组态控件技术在电力监控系统中的运用
逻辑
创新的逻辑
学术出版物插图的编排要求(一):图注
联锁表自动生成软件的设计与实现
女人买买买的神逻辑
基于OMAP-L138的微网控制器设计
基于Qt绘图系统的图形应用优化研究与实现
基于改进下垂法的微网并网控制策略研究