基于SpringBoot 的分布式光伏发电管理系统①
闫兰英1,  袁 帅2
1(山东省邮电规划设计院有限公司, 济南 250101)2
(积成电子股份有限公司, 济南 250100)
通讯作者: 闫兰英摘 要: SpringBoot 作为当前流行的全新框架, 在开发、配置、部署和监控等方面有着
无与伦比的优势, 本文基于此框架, 通过前后端分离的方式, 对分布式光伏发电系统重点设备进行监测和控制, 实现了对分布式光伏发电站的统一采集、展示、统计、分析等功能, 并且对系统性能进行了定性测试和定量分析, 确保系统的高并发性、安全性、稳定性和可靠性, 本项目已在实际工程中应用, 取得了良好的效果, 具有一定的社会意义和推广价值.关键词: SpringBoot; 分布式光伏发电; 管理系统; 数据采集分析; Netty
引用格式:  闫兰英,袁帅.基于SpringBoot 的分布式光伏发电管理系统.计算机系统应用,2021,30(1):78–82. /1003-3254/7730.html
SpringBoot-Based Distributed Photovoltaic Power Generation Management System
YAN Lan-Ying 1, YUAN Shuai 2
1(Shandong P & T Planning and Design Institute Co. Ltd., Jinan 250101, China)2
(Integrated Electronic Systems Lab Co. Ltd., Jinan 250100, China)
Abstract : SpringBoot, as a new and popular framework at present, has unparalleled advantages in development,configuration, deployment and monitoring. Based on this framework, this study monitors and controls the key equipment of the distributed photovoltaic power generation system by
separating the front and back ends. Unified collection, display,statistics, analysis and other functions of distributed photovoltaic power stations, and qualitative testing and quantitative analysis of system performance to ensure the safety, stability and reliability of the system, this project has been applied in actual projects, has achieved good results. Therefore, it has a certain social significance and promotion value.Key words : SpringBoot; solar photovoltaic power generation; management system; data collection and analysis; Netty
太阳能作为一种清洁、高效的可再生能源, 与传统化石能源相比具有先天优势. 特别是近10年, 随着材料科学和通信技术突飞猛进得发展, 太阳能已经从书本上的能源走入到千家万户的身边[1,2]. 与此同时, 国家政府也投入了大量的人力和物力发展光伏发电, 以安徽省肥东县为例, 自2015年至今, 政府先后投资855万元, 为5个贫困村、300余户贫困户建造了310座分布式光伏发电站, 极大改善了当地人民的生活水平,提高了人民的生活质量, 缓解了当地用电紧张状况, 同
时也可以就近接入配电网, 发电用电并存.
但是分布式光伏发电系统相互之间独立, 控制相对分散, 很难实现集中化、统一化、智能化的管理, 对于发电系统内部的运行状况无法实现有效的快速管理,特别是现场设备出现故障报警, 现场居民无法及时发现排除, 留下了安全隐患[3]. 本文基于SpringBoot 快速开发了一种B/S 构架的太阳能光伏发电管理系
统, 不仅实现了数据采集、数据存储、告警展示等功能, 而且实现了数据分析、发电统计、能源汇总等功能, 通
计算机系统应用 ISSN 1003-3254, CODEN CSAOBN
E-mail: Computer Systems & Applications,2021,30(1):78−82 [doi: 10.15888/jki.csa.007730] ©中国科学院软件研究所版权所有.
Tel: +86-10-62661041
①  收稿时间: 2020-05-19; 修改时间: 2020-06-16; 采用时间: 2020-06-28; csa 在线出版时间: 2020-12-31
过接入实际分布式太阳能发电站, 验证了系统的可靠性、安全性和稳定性, 具有极高的推广价值和实际意义.
1  系统整体框架
分布式光伏发电系统(如图1)可以直接将太阳能转化为小型发电系统, 其中核心部件包括: 太阳能电池板、汇流箱、直流柜、逆变器、温度仪、辐照仪、数据采集器、升压系统、服务器等设备.
温度仪辐照仪太阳能电池阵列高压电网
汇流箱
直流柜数据采集器
网络
服务器
客户端1
客户端2
逆变器
升压系统
图1    分布式光伏发电系统
太阳能电池板主要功能是利用光伏效应将采集的太阳能转化为直流电能, 再经由汇流箱和直流柜汇集,
通过逆变器转化成标准工频电能, 一部分直接由用户“消化使用”, 另一部分通过升压系统就近并入高压电网, 缓解电网压力, 实现节能减排的效果. 由此可见, 逆变器是整个系统运行的桥梁和核心, 只要对逆变器实现监测管理, 便可以掌握整个系统的运行状况. 数据采集器主要功能便是采集逆变器、温度仪和辐照仪等设备数据、状态和告警信息, 通过GPRS 远程传到服务器, 进行规约解析、信息存储、数据展示. 分布式光伏发电管理系统如图2.
图2    分布式光伏发电管理系统
分布式光伏发电管理系统包括4个模块: 前置功能模块、数据存储模块、能源统计模块、界面展示模块.
前置功能模块的主要功能: (1)创建网络通道, 获取数据采集器上报帧; (2)规约解析, 将数据存储到中间件(Kafka).
数据存储模块的主要功能: (1)创建定时任务, 定时执行任务; (2)消费中间件(Kafka)数据, 进行数据存储.
能源统计模块的主要功能: (1)创建定时任务, 定时执行统计、分析、存储任务.
界面展示模块的主要功能: (1)采用EasyUI 作为前端支持; (2)采用Echart 作为图形展示[4]; (3)采用shiro 作为安全权限控制.
2  系统功能设计实现
本系统采用了SpringBoot 框架, 通过简单的配置便可以糅合不同功能的子框架, 比如, 整合Druid 数据库连接池实现对MySQL 数据库的管理, 整合Kafka 来解决数据高并发的问题, 整合Quartz 来实现定时任务的配置[5].
2.1  前置功能模块设计实现
前置功能模块实现网络通道创建、规约解析和数
据存入Kafka 功能, 流程图如图3.
springboot框架的作用图3    前置功能流程图
本系统采用Netty 框架, 创建UDP 通道, 对外开放IP 地址和PORT 端口号, 现场数据采集器采集数据以5 min 周期主动上报到服务器, 服务器获取数据, 根据规约进行解析. 本系统将主动上报的数据分为: 数据帧、状态帧和告警帧, 分别对应Kafka 主题: inver_data 、inver_status 、inver_warn.
2021 年 第 30 卷 第 1 期
计算机系统应用
2.2  数据存储模块设计实现
数据存储模块主要功能是实现定时任务创建, 定时读取不同主题类型的数据, 统一批量存入数据库, 流程图如图4. 由于现场数据采集器主动上报频率为5 min,根据采样定理, 数据存储模块的读取频率不应该大于2.5 min, 为了保证数据的完整性和准确性, 降低数据存储过程的压力, 本系统数据存储模块的任务间隔为1 min,对应的cron表达式为: 0 0/1 * * *?.
图4    存储功能模块流程图
根据数据上报的实际需求, MySQL数据库设计相应数据表, 数据帧对应数据表(pt_inver_data), 主要字段包括: 数据采集器SN、逆变器SN、数据上报时间、直流电压(pv1、pv2、pv3、pv4、pv5、pv6)、直流电流(pa1、pa2、pa3、pa4、pa5、pa6)、交流电压(rua、svb、twc)、交流电流(rua、svb、twc)、直流输出总功率、交流输出总功率、交流输出频率、当日发电量、累计发电量、逆变器温度.
状态帧对应状态表(pt_inver_stauts), 主要字段包括: 数据采集器SN、协议ID、设备品牌ID、帧小类、总工作时间、数据上报时间、数据上传周期、最大连接台数、模块版本号、信号强度、运营商名称、ID、信号强度、工作模式、心跳频率、模块MAC地址、硬件版本号.
告警帧对应告警表(pt_inver_warn), 主要字段包括: 数据采集器SN、逆变器SN、数据上报时间、报警代码、报警内容、报警级别、报警处理状态、报警恢复时间.
2.3  能源统计模块设计实现
能源统计模块主要实现统计定时任务的创建, 定时读取数据库数据进行分析统计, 例如设备在线情况统计, 以15 min为标准, 如果设备在15 min中没有上报登录帧, 则判定设备离线; 如果设备存在未曾处理的告警信息, 则判定设备处于告警状态; 发电站功率是发电站下所有逆变器功率的累加统计.
以统计发电站的发电量为例, 其统计对象包括: 逆变器、发电站、区域,时间统计维度包括: 日统计、月统计、年统计. 日统计流程图如图5.
图5    日统计流程图
日统计分析首先从数据库读取设备实时发电量数据, 归纳统计到所属发电站, 再然后对发电站的发电量进行统计, 归纳到所属区域, 实现多条件、多维度查询.相同道理, 月统计和年统计按照逻辑顺序执行,
最终实现光伏发电站发电量的累计统计.
2.4  页面展示模块设计实现
页面展示模块(如图6)设计主要实现档案管理、数据展示、权限控制、编码管理、报表管理等功能,本系统采用EasyUI作为前端支持, Shiro作为安全框架进行身份认证, Echart作为图形展示, ajax实现前后台数据交互.
图6    页面展示模块
3  系统功能展示
3.1  系统大屏展示
系统大屏(如图7)整体采用科幻灰蓝风格, 以
计算机系统应用2021 年 第 30 卷 第 1 期
模块化方式进行分割分块, 主要展示了设备汇总、本月发电、日告警事件、成功率、轮播告警信息、区域发电信息, 具有直观、简单、高效的优点.
图7    系统大屏
3.2  发电站档案展示
发电站档案(如图8)主要以表格datagrid 方式进行展示, 具有多条件模糊查询、分页查询的功能, 包括发电站名称、电站id 、所属地市、县区、设备厂家、装机功率、实时功率、日发电量、告警和通讯状态.
图8    发电站档案
3.3  采集数据展示
采集数据展示采用曲线形式展示, 如图9, 主要展示了发电站日发电量曲线和日发电功率曲线, 两者相互对比验证, 为日常维护提供数据支持.
80
(千瓦时)发电量
南阳市镇平县晁陂供电所光伏电站当日发电量 : 78.54 kWh
发电功率
(千瓦)
60
40
20
000:00
01:4503:3005:1507:0008:4510:3012:1514:0015:4517:3019:1521:0022:45
12
10
8
64
2
图9    采集数据展示
3.4  统计数据展示
图10以发电量统计为例, 通过柱状图的方式展示,
可以点击右上角“日”、“月”、“年”、“总”按钮来查看发电站发电量情况, 直观有效把握发电站运行情况.
南阳市镇平县晁陂供电所光伏电站当月发电量 : 668.59 kWh
发电量
(千瓦时)80
60
40
20
12345678910111213141516171819202122232425262728293031
图10    统计数据展示
3.5  告警信息展示
告警信息展示了发电站名称、告警内容、告警等级、告警发生时间、故障编码、告警状态、处理状态等信息, 如图11, 而且告警信息可以通过短信平台在第一时间内推送到发电站负责人和维护人员的手机上,确保告警事件可以及时有效解决.
图11    告警信息展示
4  系统性能测试
系统研发构建成功之后, 以阿里云服务器为依托进行布置, 采用Nginx 进行负载均衡, 提高系统的并发吞吐量和抗压能力. 系统布置成功之后, 用Jmeter 工具进行系统性能测试, 主要对HTTP 接口和MySQL 数据
库进行性能测试[6].4.1  HTTP 接口性能测试
HTTP 接口性能测试主要选用用户登录、告警事件查询、发电量曲线查询3个接口进行测试, 主要流程包括: (1)添加线程组和H T T P 请求; (2)添加URL 路径、请求方式(post)和参数; (3)添加查看结果树; (4)调用接口、查看返回值.
如表1所示, 3个接口在并发线程100的情况下,平均响应时间小于400 ms, 出错率均为0, 具有较好得处理并发能力和抗压能力.
2021 年 第 30 卷 第 1 期
计算机系统应用
表1    HTTP接口性能测试表
接口名称并发线程平均响应
时间(ms)
最小响应
时间(ms)
最大响应
时间(ms)
吞吐量出错率
用户登录10029723740795.70
告警事件10026017447382.30
电量曲线10037827456472.50
4.2  MySQL数据库性能测试
MySQL数据库性能测试以获取全部发电站信息为例, 对应SQL语句为: select * from c_cons, 流程为: (1)导入MySQL的jdbc包, 配置参数; (2)设置jdbc request, 写入SQL语句; (3)添加查看结果树; (4)执行SQL语句, 查看结果.
如表2所示, 在并发量50的情况下, 获取发电站信息的平均响应时间97 ms, 最小响应时间58 ms, 最大响应时间137 ms, 出错率0, 数据库性能优秀.
表2    MySQL数据库性能测试表
接口名称并发线程平均响应
时间(ms)
最小响应
时间(ms)
最大响应
时间(ms)
吞吐量出错率
发电站信
息查询
509758137108.70
总结, 由于采用SprinBoot框架, 系统整体性能满足实际要求, 特别是应用了前后端分离、前后端负载均衡, 极大提高了系统运行的稳定性和可靠性[7].
5  系统综述和展望
系统构建成功之后, 以某省分布式光伏电站扶贫项目为契机, 接入分布式光伏发电站465户、逆变器485块, 自2019年9月17日接入系统, 逐步升级完善,正常运行至今, 系统实现了数据采集、分析、展示功能,达到了智能化、集中化、统一化管理的目的.
据统计, 系统运行至今一共上报过626次告警事件, 其中普通告警401起, 严重告警事件225起, 具体分布如图12.
由于所接入的分布式光伏电站多接入在偏远地区,以往管理、监测困难, 当前综合能源公司相关管理人员通过光伏发电管理系统能够在第一时间调取光伏发电站的运行状态、实时数据、统计信息, 当发电站发生故障告警, 可以立即快速定位故障地点, 及时抢修,确保系统运行正常, 维护人身和生命财产的安全, 每月可以人工成本和管理成本12万元, 受到了相关领导和使用人员的一致好评.
12
45
20
55
2426
78
普通告警严重告警
52
40
46
22
44
3840
3029
17
8
20
40
60
80
2019-092019-102019-112019-122020-012020-022020-032020-042020-05
图12    告警信息统计
参考文献
吴坚. 光伏储能分布式发电监控与能量管理系统研究[硕士学位论文]. 广州: 华南理工大学, 2018.
1
吕达, 马德荣, 孙立伟, 等. 基于泛在数据的分布式光伏接入研究. 浙江电力, 2020, 39(4): 63–67.
2
Wang WT, Chen P, Chiang CH, et al. Synergistic reinforcement of built-in electric fields for highly efficient and stable perovskite photovoltaics. Advanced Functional Materials, 2020, 30(19): 1909755. [doi: 10.1002/adfm.2019 09755]
3
周启云, 许新华, 付昱榕, 等. 基于Echarts的可视化学情分析系统设计与实现. 信息技术与信息化, 2020, (3): 116–119. [doi: 10.3969/j.issn.1672-9528.2020.03.040]
4
庄学松, 张智, 黄可望. 基于SpringBoot的短信服务的设计与实现. 无锡职业技术学院学报, 2020, 19(2): 41–44.
5
冯瑶, 秦洪岩, 刘跃光. 基于Jmeter开展接口自动化测试方法探索与实践. 中国金融电脑, 2020, (2): 48–50. [doi: 10. 3969/j.issn.1001-0734.2020.02.011]
6
颜治平. 基于SpringBoot和Vue框架的教代会提案系统的设计与实现. 科技创新与应用, 2020, (3): 91–93, 95.
7
计算机系统应用2021 年 第 30 卷 第 1 期

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。