APP下载

基于分布式架构的光伏电站远程监测系统设计

2019-12-26王苗苗

西安航空学院学报 2019年5期
关键词:队列电站云端

王苗苗

(西安航空学院 理学院,西安 710077)

0 引言

2014—2017年,我国光伏产业在市场规模、生产能力等方面迅猛发展[1],由此造成部分地区出现了弃光限电严重、光伏补贴缺口日益扩大等问题。为了避免行业无序发展,2018年,国家发展改革委、财政部、国家能源局联合发布了《关于2018年光伏发电有关事项的通知》(简称“531新政”),要求合理把握发展节奏,优化光伏发电新增建设规模,加快光伏发电补贴退坡,降低补贴强度,给整个行业带来了巨大震荡[2]。2019年,我国光伏产业由过渡期逐步进入平价上网与竞争配置并行阶段[3],上半年国内光伏新增装机容量12GW,全年新增装机容量预计为43GW左右[4],光伏正在从“补充型能源”向“替代新能源”发展。在这种情况下,电网对光伏电站的要求越来越高,“两个细则”考核标准也日益严苛,光伏电站项目要达到较高的内部收益率面临着不小的挑战。因此,光伏电站必须从原来的“粗放化管理”转型为“精细化管理”,在电站的信息化运营、设备检修与运维、安全防护、电力交易等方面进行更加规范、精准的管理[5]。

监控系统是光伏发电系统中非常关键的一个环节,可以让人们方便地进行实时监测和控制,而无需到现场逐台查看设备状况。如何打造智能化的光伏电站监控系统,并借此实现高效便捷的运维管理,是决定电站未来运行水平、收益状况、资产优劣的核心所在。

传统的光伏电站监控系统主要是电力保护设备厂商或逆变器厂商自带的组态监控系统,存在各厂家的通讯体系自成一体,兼容性一般,部分电站没有保存详细的历史发电数据,无法精准定位故障并进行报警,缺少对日常运行检修过程的信息化管控等问题,不能满足光伏电站运维的实际需求。同时,这种方式只能实现单电站的就地管理,无法将数据上传至远程端,也没有多组数据的交叉对比分析,不能为决策者提供有效的数据支撑,从而使得电站的运行、维护和管理等方面产生诸多困难,造成电站的自动化、信息化管理水平偏低[6]。

针对上述问题,本文设计了一套基于分布式架构的光伏电站远程监测系统,能够有效解决光伏电站大规模数据快速计算处理的问题,实现对集团下属多个光伏电站的远程监测、数据分析和运维管理。本文将对其系统功能、总体架构、站端数据采集系统、云端系统的设计以及系统的实施与应用进行阐述。

1 系统功能设计

光伏电站远程监测系统通过全方位地采集各个电站的设备运行及发电数据,并传输汇总到远程的云端系统,经过一系列的指标计算及流程化处理操作,将电站实时运行情况呈现给运维管理者,并对故障或者异常进行实时报警,同时提供运维检修等工作的电子化流程,统计报表的自动生成,以及电站发电、设备运行等情况的智能分析。整个系统的功能结构如图1所示。

图1系统功能结构图

实时监测:分为电站级监测和设备级监测。前者是对整个电站的发电、效率等汇总数据进行直观的展示;后者是对电站内的组串、汇流箱、逆变器、箱变、集电线路、主变、SVG、关口表、环境监测仪等各种设备的实时运行数据和状态进行监测。

告警管理:系统根据用户自定义的告警规则进行实时判断,当有故障或异常发生时,会通过语音、弹窗等方式实时推送给用户。

运检管理:提供工作票、操作票的填写、签发、许可和办理终结等流程;提供巡视、检修等工作的计划、记录的录入及查询等功能;提供对电站内各种缺陷的录入、消除等功能。

智能分析:分为电站级分析和设备级分析。前者是对多个电站的发电、能耗等情况进行对比分析,或对单个电站一段时间内的发电、能耗等趋势变化进行分析;后者是从发电效率、设备离散率、设备故障等方面对不同厂家型号的设备性能进行对比。

统计报表:提供各种统计报表的自动生成功能,并可下载及打印。

2 系统总体架构设计

2.1 总体架构

光伏电站远程监测系统可以分为站端数据采集系统和云端系统两大部分,如图2所示。部署在各个光伏电站的站端数据采集系统,用于采集电站实时数据,并发送给云端系统。云端系统包括数据接收层、数据处理层、数据存储层和数据展现层等几部分,在对站端数据采集系统传输来的数据进行一系列的转换、计算、存储等操作后,将分析处理后的结果呈现给运维管理者。

图2系统总体架构图

2.2 技术选型

由于光伏电站的设备众多,数据采集量非常大,例如30MW的光伏电站一般需要采集7万个数据点[7],而且为了保证实时性,一般要求数据以秒级的频率进行刷新,这给光伏电站远程监测系统的数据处理、计算、存储等方面造成了非常大的压力。因此,本系统将采用Storm、Kafka、Redis、HBase等高可靠、高性能、可扩展的分布式组件来构建。

2.2.1 Storm

Storm是一个开源的分布式实时计算系统,可以简单、高效、可靠地处理大量的流数据,处理速度非常快[8]。Storm集群中任意节点宕机或者进程退出都不影响后续消息的处理,重启节点后又会重新加入到集群中继续工作,使得整体架构非常稳定。同时,Storm中的计算任务在多个线程、进程和服务器之间并行进行,因此可以灵活地进行横向扩展。

当光伏电站内的设备发生故障时,运维人员需要立即响应,否则会影响整个电站乃至电网的安全,并造成巨大的经济损失,因此,光伏电站远程监测系统对设备的告警和一些关键指标的实时性要求非常高。与Spark Streaming等其他流处理框架相比,Storm的实时性最高,可以达到百毫秒级延迟,所以在云端系统的数据处理层,将采用Storm来搭建实时计算系统。

2.2.2 Kafka

Kafka是一个开源的分布式发布订阅消息系统,具有高吞吐量、低延迟、持久化、多副本备份、横向扩展能力,一般在架构设计中起到解耦、削峰、异步处理的作用。

由于Strom各个程序模块对实时性的要求不同,处理速度存在差异,并且存在一定波动性,因此,本系统使用Kafka构建消息队列,缓冲未处理消息,从而对各个程序模块的数据处理进行解耦,防止数据丢失。

2.2.3 Redis

Redis是一个开源的可基于内存亦可持久化的日志型Key-Value数据库[9],它的性能十分优越,单节点可以支持每秒十万次的读/写操作,远超普通数据库,并且支持集群、分布式、主从同步等配置,原则上可以无限扩展,让更多的数据存储在内存中。

由于Strom实时计算系统在运行过程中,需要频繁读取一些数据,例如存储在关系型数据库中的告警规则、计算公式、设备关系,以及计算中间结果。如果直接从数据库中读取这些数据,速度将非常慢,达不到实时计算的要求。因此,本系统把这些数据缓存在Redis中,也就是直接放在内存之中,让Strom直接去读取内存中的数据,这样可以极大地提升Storm程序的运算速度,并且减轻数据库的压力。

2.2.4 HBase

HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,主要用来存储非结构化和半结构化的松散数据[10]。HBase使用HDFS (Hadoop Distributed File System) 作为高可靠的底层存储,随着数据量的增加,可以通过增加Hadoop的数据节点或加挂磁盘的方式(完全支持热部署),动态调整存储规模,可存储超过10亿行数据和数百万列元素组成的数据表。HBase的表可以根据集群规模和数据量自动分区,通过设计合理的RowKey索引,HBase可以轻松解决PB级别数据的查询需求。

针对光伏电站数据量大、数据存储频率高、运营时间长的特点,而且存在不断有新电站接入系统的情况,本系统将采用HBase数据库来存储测点的海量历史数据,满足存储需求、查询需求和扩展需求。

图3站端数据采集系统网络架构图

3 站端数据采集系统设计

为了获取光伏电站的数据,需要在每个光伏电站内部署一套站端数据采集系统。其中,数据采集程序通过远动机采集所需数据,数据转发程序通过公网或VPN网络将采集到的数据传输到云端系统。根据电力二次系统安全防护规定,光伏电站应用系统分为生产控制大区和管理信息大区[11],为了满足安防要求,需要在数据采集程序和数据转发程序之间增加正向隔离装置,并在数据采集程序和远动机之间、数据转发程序和公网或VPN网络之间分别增加防火墙,如图3所示。

图4云端系统架构图

由于需要采集到组串级别的数据,数据点位非常多,而大多数光伏电站地理位置偏远,网络带宽较低,因此,数据转发程序在向云端系统转发数据前,会先对数据进行压缩,从而提高数据传输的速率。同时为了确保电站的信息安全,数据转发程序在上传数据前,还需要对数据进行加密处理。

4 云端系统设计

云端系统采用分布式架构,各部署单元均支持横向扩展,其总体处理架构如图4所示。数据接收层在接收到各光伏电站主动上传的数据后,进行报文解析和重新组织,发送给数据处理层的消息队列Kafka。Storm实时计算系统会从消息队列中拉取数据,根据相应的告警规则、计算规则对数据进行实时计算处理,并将计算结果推送到消息队列。同时,Storm实时计算系统还会用得到的最新数据更新数据缓存Redis,用于下一步的周期性汇聚计算。持久化程序将需要保存的历史数据写入NoSQL数据库HBase或关系型数据库中。数据展现层通过Web形式向用户提供各种功能服务,同时为了确保一些重要指标及告警信息能够在页面实时刷新,系统通过WebSocket从消息队列中取出数据并实时推送到客户端来实现数据的实时展示。

4.1 数据接收层

数据接收层负责接收站端数据采集系统发送来的报文,将其转换为数据处理层所能处理的报文格式,并发送给消息队列。这样做的好处在于降低了站端数据采集系统和云端系统的耦合程度,提高了整体系统的内聚性。

数据接收层的主要处理流程为:启动时从数据库读取电站和设备的数据采集点信息,将其放在内存中进行缓存;在运行时先将接收的报文进行解密和解压,对解压后的报文,按照通信协议进行解析,并进行一定的数据转换工作,生成云端系统所需的报文;最后将报文推送到Kafka中的云端采集消息队列。

为了避免出现单点故障的问题,数据接入层采用双机热备用的方式运行。站端数据采集系统通过心跳机制监测云端系统数据接收层的状态。当主机出现故障时,站端数据采集系统会将电站数据发送到热备用的服务器,确保实时数据不会中断。

4.2 数据处理层、数据存储层

4.2.1 设计思路

数据处理层是云端系统的核心,而Storm实时计算系统则是数据处理层的核心。Storm实时计算系统主要负责对电站上报的数据进行一系列计算和处理,运行于其中的告警程序根据告警规则对数据进行实时处理,汇聚计算程序按照不同的周期(秒、分钟、小时、日、月、年)对实时数据进行汇聚,计算出方阵级、电站级、集团级的各种指标数据。

在数据存储层,根据光伏电站远程监测系统中各种数据的类型、作用不同,采用了多种存储方式。例如,系统中的管理、配置信息使用关系型数据库进行存储,而服务调用信息、Storm处理后的数据使用NoSQL数据库HBase进行存储。

4.2.2 数据处理流程

数据处理层的主要处理流程如下:

(1)通过订阅消息队列中的云端采集消息队列,获取到数据报文,对其进行反序列化,转化为JSON格式的数据,然后将数据分别发送给告警程序、方阵汇聚计算程序。

(2)告警程序根据存储在Redis中的告警规则进行处理,并将处理结果发送给数据存储消息队列,同时为了保证页面告警信息展示的实时性,告警程序还将处理结果发送给数据推送消息队列,供WebSocket实时推送给客户端页面。

(3)方阵汇聚计算程序根据测点计算规则对数据进行实时计算,得出方阵级别的指标值。计算结果一方面写入Redis缓存中,供后续模块使用;另一方面将推送给下一级的电站汇聚计算程序,同时也要发送给数据存储/推送消息队列。

(4)电站汇聚计算程序对电站级指标进行汇聚计算。在一个计算周期开始时,会首先判断一个电站下所有方阵是否已经处理完成,只有在方阵级计算完成之后,才开始根据测点计算规则进行电站级指标的计算。计算结果处理和方阵汇聚计算程序类似,需要发送给Redis、下一级的集团汇聚计算程序和数据存储/推送消息队列。

(5)集团汇聚计算程序的流程和电站汇聚计算程序类似,也是等待所有电站计算完当前周期的数据后,再进行计算。计算结果处理和其他汇聚计算程序相同。

4.2.3 数据存储流程

数据存储的主要流程为:Strom中的持久化程序订阅数据存储消息队列,获取数据存储报文后,首先进行反序列化操作,然后将所有的实时、小时、日、月的计算结果数据存储到NoSQL数据库HBase中,并将告警、年计算结果数据存储到关系型数据库中。

4.3 数据展现层

数据展现层基于JavaEE技术体系,采用MVC应用框架构建,由界面控制器组件、界面操作组件、JSP页面组件和服务代理单元组成。在一些分析图表、实时应用展现时,采ECharts、HTML5等技术实现,并通过WebSocket订阅数据推送消息队列的报文,保持客户端页面数据实时刷新。

5 系统实施与应用

5.1 系统实施

在系统实施过程中,需要根据接入的电站容量,为云端系统购买或租用相应的计算资源、存储资源和网络资源,在其中部署数据接入服务集群、Storm实时计算集群、Kafka消息队列集群、Redis缓存服务集群、分布式架构调度监控服务集群、关系数据库集群、HBase数据库集群、Web应用集群,搭建起云端系统。以接入容量100MW为例,数据点位约为10万个,为了保证计算的实时性,Storm实时计算集群的每个节点需要具有较高的计算性能(16核CPU、64G内存);同时,HBase数据库集群中的每个节点每年需扩容约500GB的存储空间;而数据接入服务节点需要配置至少2Mbps的带宽,以满足数据传输的带宽需求。

另外,在接入每个光伏电站时,都需要购买1台采集服务器、1台转发服务器、1台正向隔离装置和2台防火墙,从而部署站端数据采集系统,通过与第三方监控厂家配合,从远动机上接入数据,并通过公网或VPN网络与云端系统进行通讯,保证电站数据稳定上传。

5.2 系统应用

在本系统的应用中,通过与运行维护工作相结合,可以有效减轻运行维护人员工作量,降低运维成本,提高发电收益。例如,传统的光伏电站巡检工作需要巡视检查每一个监控画面,寻找发生故障的发电设备,可能花费1小时或更长时间,而通过光伏电站远程监测系统的设备故障告警提醒功能,在不到1分钟的时间内就可以确定故障设备,从而快速消除缺陷,避免电量损失。另外,根据集团的管理需求,定制统计报表内容和格式,能够一键生成报表,提高统计填报工作效率,避免人为差错。除此之外,通过在集团中心对多个电站进行集中管理,能够减少电站现场的运行监控人员配置,只保留检修和日常维护人员,从而逐步实现电站的少人甚至无人值守,大大节约公司运维成本。

6 结语

随着云计算、物联网、大数据、人工智能等技术的发展,光伏电站的远程、集中、智能管理逐渐成为大势所趋。

(1)本文设计的基于分布式架构的光伏电站远程监测系统,采用Storm、Kafka、Redis、HBase等分布式组件构建,具有高可靠、高性能、可扩展的特点,能够轻松应对光伏电站大规模数据快速计算处理的挑战。

(2)通过将本系统与运行维护工作相结合,可以帮助定位故障设备,及时消除缺陷,避免电量损失,提升发电收益,并且通过自动生成统计报表,可以减轻运行维护人员的工作量。

(3)本系统实现了对集团下属多个光伏电站的集中化、信息化和规范化管理,经过数据积累沉淀后,可进行更深层次的大数据分析,为集团在资产评估、投资交易等方面提供有力的决策支撑。

猜你喜欢

队列电站云端
四海心连·云端汇聚
无人机智能巡检在光伏电站组件诊断中的应用
发改委:加快新能源车充/换电站建设
队列队形体育教案
在云端永生
队列里的小秘密
云端之城
基于多队列切换的SDN拥塞控制*
青春的头屑
在云端