光伏发电在线选配系统设计与实现

2018-07-25 11:22季一木尧海昌王汝传
计算机应用与软件 2018年7期
关键词:布线服务器部署

季一木 李 航 尧海昌,3 陈 忱 王汝传,2

1(南京邮电大学计算机学院 江苏 南京 210023) 2(南京邮电大学江苏省无线传感网高技术研究重点实验室 江苏 南京 210023) 3(南京工业职业技术学院计算机学院 江苏 南京 210023)

0 引 言

近年来,能源可持续问题的重要性日益彰显。家用分布式光伏并网发电系统是发展可再生能源的关键因素[1-2]。光伏发电技术也逐步受到企业界和家庭用户的重视,在通常光伏发电项目上,一个企业或个人为了完成项目部署,前期需要实地考察。考察包括光伏系统部署地点是否符合规范,部署地点光照、风速、气候等条件是否合适,考察完外部条件后还需要预估项目部署成本,在客观条件不断变化的情况下无法科学准确预估成本,亦无法有效节省部署成本。同时,部署项目的运维工作也给工作人员带来了巨大难题,传统的项目记录方式并不规范,具有易损易失性。为了解决上述问题,响应国家“互联网+”的号召[3],我们开发了一款企业级的光伏发电选配系统。本产品主要面向企业用户,引入百度地图和NASA发布的气候信息辅助用户完成光伏系统的实地选址、组件选择、部署设计,针对不同地区的太阳辐射资源和日照时数,分别作不同部署方案。设计了最优布线算法最大化节省企业开支,并通过科学手段帮助企业预估资金等安装需求。同时针对整个光伏选配系统所需的数据信息设计了具体的数据库表结构,形成一个系统的、规范的关系型数据库。实时记录项目的各种变化,完成数据的持久化操作[4]。开发了一个用户体验良好的系统数据录入和项目查询展示模块,交互部分设计符合当下页面习惯,整套软件系统做到了规范、易用、简洁、稳定。

1 系统总体设计

本系统主要由四个部分构成,分别是:系统管理、后台组件管理系统、光伏项目设计系统、公共操作系统。系统管理实现对本系统全部用户的登录鉴权和注册授权服务。后台管理系统实现对本系统已注册或未注册用户帐户管理、权限管理、系统组件管理和报价管理。项目设计系统实现光伏系统的实地选址、组件选择、部署设计、选取最优布线方案、预估资金的功能。公共操作系统实现给本系统涉及的清单、方案列表的PDF预览下载功能和EXCEL下载功能,系统总体功能如图1所示。

图1 系统总体功能

1.1 系统部署设计

为方便企业用户远程使用,本系统采用B/S架构,通过Apache Tomcat容器将应用部署在云服务器上,用户通过浏览器可直接访问。服务端采用Spring MVC+Mybatis+Spring的最新Java技术。其中,Mybatis位于持久层,完成数据的持久化操作和读取操作,Spring MVC处于控制层,实现对前台请求的调度。采用Spring Framework管理所有系统对象的创建与销毁。该设计模式的可重用性、可维护性极高,部署方便,最重要的是可以使项目具体实现的业务逻辑、项目的数据部分和项目实际的界面展现进行解耦,且可以将业务逻辑聚集到一个部分里面,符合当下系统设计“低耦合,高内聚”的思想。系统部署设计如图2所示。

图2 系统部署设计

1.2 数据库设计

本系统使用Mysql数据库,建立了十多张互相关联的数据库表管理全局所有的数据,并设计合理的数据库组合索引提高查询效率。系统的核心表主要有9个,包括:sys_user,主要存放光伏选配系统用户的基本信息以及管理员的基本信息;project,存放所有的项目信息;sys_role_permission,用来存放后台管理员用户的菜单权限列表;sys_permission,存放后台系统的所有菜单;material_list,存放所创建的项目对应的物料的基本信息;log,存放后台操作时产生的操作日志;component,存放光伏板组件的一些信息;cdkey,主要存放生成的cdkey以及cdkey的状态;NASA,用来存放收集的NASA全球气候数据信息。

1.3 功能设计

根据系统四个部分的作用划分,本系统具体有10个主要功能模块。系统管理部分包括登录注册模块;后台管理系统包括用户系统管理模块、组件系统管理模块以及日志系统管理模块;项目设计系统包括新建系统项目、编辑修改系统项目、项目查询以及物料清单查询修改模块;公共操作系统包括系统报告PDF预览和下载模块以及物料清单EXCEL下载模块。系统整个功能流程如图3所示。

图3 系统功能流程

1.3.1 登录注册模块

登录注册模块作为系统管理的核心,负责后台管理员用户和项目设计系统用户的登录鉴权和退出管理,根据不同的用户判定本次登录、退出的有效性,并记录其登录、退出的日志。此外,登录注册模块还负责后台管理员用户和项目设计系统用户的修改密码工作,并记录其操作日志。

1.3.2 用户管理模块

管理员进入后台系统的用户管理模块可以查看系统当前的新注册用户,并激活新用户账号。也可以重置密码、迁移用户账户,同时记录操作日志。管理员进入用户管理模块的授权管理页面下,可以创建子账号并且给不同的账户授予不同的操作权限。该模块还提供生成激活码功能,项目设计系统的用户通过激活码可以激活账号。

1.3.3 组件/日志管理模块

后台组建管理模块可以增删改查项目设计系统可选的光伏组件、逆变器组件,管理员进入后台管理系统的组件管理模块,可以批量修改各个组件的报价。日志管理模块记录下后台管理系统用户的所以操作记录,方便企业日常运维管理。

1.3.4 新建项目模块

光伏选配系统的用户通过新建系统项目模块,可以完成具体光伏发电系统的部署设计。其中包括记录项目名称、项目联系人、电话;通过第三方百度地图的引入精确定位项目部署地址,查看项目部署地周边配套设施;根据NASA官方提供的气候数据信息,可以方便用户获取项目部署地的光照条件、风速条件等外部信息。确定项目部署地址后,用户可以选择要部署的光伏板、逆变器的型号和数量以及选择具体的部署规划,新建项目模块根据用户选定的光伏版和逆变器数量和部署方式通过最优布线算法实现最短路径布线。最后根据用户之前步骤会生成项目报告以及物料清单PDF简图供用户查看。以上所有操作都会记录在数据库完成数据持久化存储。

1.3.5 查看/更新项目模块

用户可以编辑修改项目的基本信息,包括:项目名称、部署地址、联系人、联系电话等;可以编辑修改项目的设计方案,包括:系统类型、组件安装角度、安装点类型、光伏板型号等;可以编辑修改项目的组件排布设计,通过本系统的算法实现最优布线;可以查询账户所有的项目,并进一步查看单个项目的详细信息,包括通过NASA数据库查询计算出来的项目相关的信息。

1.3.6 公共下载模块

提供本系统所有项目的物料清单、组件接线图和系统分析报告的PDF预览功能,同时提供本系统所有项目的物料清单、组件接线图和系统分析报告的PDF、EXCEL下载功能。

2 系统关键技术

本系统创新性地提出了一种光伏板最优布线算法,解决了传统光伏板部署时的地理困难、预估困难、排线困难等一系列问题。同时,由于不同用户使用习惯的差异,以及不同时段系统访问并发量的巨大变化,导致访问数据库的频率也存在差异。若整个连接池使用固定参数,则整个系统在数据库处理方面无法达到最优性能[5]。为此提出一种实时生成的动态参数技术,提升数据库操作的性能。服务器根据不同时间段连接池的负载情况以及整个数据库服务器的负载情况实时计算出服务器适合的最大连接数和最小连接数,保证系统的性能达到最优。另外,本系统基于第三方开放应用百度地图API实现了在线实地部署项目的功能;基于网络爬虫技术实现获取NASA数据库不同地区(精确到经纬度)的风速、日照等气候数据,这些数据将被用于提高部署效率,降低部署成本,优化部署方案。

2.1 基于动态规划的光伏板最优布线算法

2.1.1 算法背景

传统光伏矩阵的线路规划需要工程师手动绘图,这种方式耗时且依赖于工程师的经验,在小规模光伏矩阵架设中没有体现出巨大劣势。但随着光伏产业的蓬勃发展,光伏板架设也逐步往集群化发展,一个光伏板集群可能需要多个逆变器布设多条线路且一个光伏板只能连通一条线路。传统的局部路径规划算法无法满足多目标小最短路径的高效计算,因为一条线路的布设过程会对其他线路造成很大影响,在单条线路达到最短即局部最优的情况下,可能会造成另外一个局部路线无法连通或者性能极差的情况,因此考虑使用贪心策略[6]。只有在逆变器剩余可负载光伏板个数为0或者该行所有光伏板都已被连通的情况下,才允许向下或者向上连接。基于这个贪心策略快速连通光伏板,然后在遇到向下情况时,利用分治法实现局部最优。本系统基于动态规划算法[7]和贪心策略设计了光伏板集群最优布线算法。该算法可精准快速地根据现有的光伏板集群布局以及光伏板型号选择最优逆变器组且计算出最优布线策略,以解决上述背景技术中提出的问题。

2.1.2 算法详细步骤

1) 将光伏板分布图以及光伏板型号输入逆变器组分配模型,根据不同逆变器的功率、电流、电压计算出需要最优的逆变器组,以及每一个逆变器上可以连接的光伏板数量。

2) 根据步骤1中计算出的逆变器组分割光伏板集群并存储,同时存储不同的分割策略存储以便回溯。

3) 连接第一个不为空且存在未连通光伏板的行,如果此时逆变器能连接的光伏板数量少于该行上未连通的光伏板数量,则从入口往右连接光伏板,直至逆变器能连接的光伏板数量为0,此时选择一个新的逆变器,跳转到步骤6;否则连满该行所有光伏板,然后根据下一行光伏板的分布选择线路下折的位置,跳转到步骤4。

4) 从入口位置开始向左连接光伏板直到该逆变器剩余能连接的光伏板数量为0,选择一个新的逆变器,然后跳转到步骤5;剩余光伏板大于0则先连满该行上的全部光伏板,然后跳转到步骤3。

5) 将该行和下一行还未连通的前M列拓展为一个2×M的二维数组,如果此时逆变器能连接的光伏板数量大于这个2×M二维数组中光伏板数量,则使用动态规划最短路径算法规划出在该数组中连通所有光伏板的最短路线,然后跳转到步骤3;如果此时逆变器能连接的光伏板数量小于这个2×M二维数组中光伏板数量,优先连满该行的光伏板,再连接下一行的光伏板,直到逆变器剩余能连接的光伏板数量为0,跳转到步骤6。

6) 将该行的前k列(上一行已经连接的列)连满,再将该行和上一行还未连通的列拓展为一个2×T的二维数组,如果此时逆变器能连接的光伏板数量大于这个2×T的二维数组中光伏板数量,则根据下一行光伏板的分布来选择线路下折的位置,使用动态规划最短路径算法规划出在该数组中连通所有光伏板的最短路线,如图4,然后跳转到步骤4;如果此时逆变器能连接的光伏板数量小于这个2×T的二维数组中光伏板数量,优先连满上一行行的光伏板,再连接该行的光伏板,直到逆变器剩余能连接的光伏板数量为0,跳转到步骤6。

此时期主要以防治白粉病和地下红蜘蛛为主。白粉病主要伤害小麦叶片,在田间要做到早发现早防治。可采取喷施农药、杀虫剂的化学防治措施。用药量可根据病情的严重程度和红蜘蛛的数量来确定。

7) 当出现一些线路无法走通的情况,需要回溯重现选择逆变器,如果重现选择逆变器也无效,则选择另一种分割策略。

该算法时间复杂度低,对于大规模光伏集群布线算法仍保持较高的效率,随着实验数据的增多,算法动态调参部分的参数新能越来越优,可以在时间复杂度,施工难度,用料量上达到综合最优。

整个算法的流程如图4所示。

图4 最优布线算法流程

在光伏板布线中需要考虑的参数主要有:光伏板型号、逆变器组、导线长度等。其中在具体的光伏项目部署前需要实地考察,这增加了项目的部署周期,加大了部署成本,加剧了工程师的工作负担,带来了一系列的问题。为了解决这个问题,本系统通过在线调用第三方百度地图实现了实时在线的地址选取。通过光伏板集群最优布线算法,可以精准高效地根据现有的光伏板集群布局以及光伏板型号选择最优逆变器组并计算出最优布线策略,解决了在集群规模下采用手工标注难度巨大且无法保证布线策略在时间复杂度、负载压力、施工难度、用料量上难以达到综合最优的问题。

2.2 数据库连接池的设计与优化

2.2.1 参数定义

(1) maxGLinkConnection:光伏选配系统数据库连接池所能允许的连接数的上限。

(2) minGLinkConnection:光伏选配系统数据库连接池所能允许的连接数的下限。

(4) returnConnectionTime:预设收回空闲资源的时间,用户持有的连接若超过该时间没有连接交互则强制收回该连接资源。

(5) connectionUsedRate:用户对连接资源的利用率,使用当前给用户分配的连接数和整个系统总的连接资源的比值计算。

(6) connectionReqFailRate:用户连接请求失败率,使用给定的单位时间段内用户连接请求的失败次数和请求总次数的比值计算。

最小连接数和最大连接数是数据库连接池技术的两项重要参数[8-10]。光伏发电选配系统数据库的连接池的参数根据系统用户的活跃程度实时动态计算,以此来提高系统吞吐量。每个客户端(浏览器)在使用本系统服务的生命周期内会产生一些用户无关,但是和系统性能相关的数据,数据库连接处理服务器将根据这些数据计算出每个客户端的最大连接数(maxGLinkConnection)和最小连接数(minGLinkConnection), 并把这些情况发送主服务器,据此来分配每个客户端的数据库连接资源,即设置数据库连接池最大和最小连接数。这样,整个数据库连接处理服务器就可以保证数据库处理的最佳性能。另外,由于每个用户都有区别明显的个性化操作习惯,数据库连接处理服务器依据这些用户习惯可以更准确地计算每个客户端的数据库连接池的参数。

2.2.2 连接池资源管理

在光伏选配系统服务器开启时,数据库连接池会依据设置的默认最小连接数minGLinkConnection创建连接。当用户需要运用数据库操作时,光伏系统首先会向数据库的连接池中发起一个连接请求。如果此时的数据库连接池中还有可供使用的连接,则将空闲连接分配给请求的用户,等待用户处理完数据库操作请求后,该连接将归还至数据库连接池。如果用户的数据库操作请求到达时,数据库连接池中并没可供使用的闲置连接,则数据库连接池会计算已分配的数据库连接数是否达到默认设置的最大连接数maxGLinkConnection,如果还没达到预设的最大连接数,系统会分配给该请求进程一个新的连接。如果已经达到允许的最大连接数,则该用户的请求必须等待一定时间(获取连接的超时时间getConnectionOutTime),如果等待间隔超过该时间,则连接获取失败。如果在获取连接请求超时时间内有其他用户释放了自己的连接,则将该连接资源分配给正在等待连接的用户。光伏系统还需另外再开启一条监控线程,用于检测当前已经被分配的连接的使用详情。若超过预设时间returnConnectionTime的连接一直没有用户交互,则数据库连接池将强制性地执行连接收回操作。这样可以避免某一个已完成数据库操作的进程过长时间占据连接,进而提高连接利用率[11-12]。

但是上述连接池管理技术在性能上依然存在缺陷,在数据库操作效率上还可以提高。考虑到在光伏发电选配系统的实际使用中,不同用户在使用习惯上的差异性,以及系统使用高峰期用户量和低峰期用户量的巨大变化会导致每个客户端对数据库操作频率的差异性,如果系统使用绝对固定的连接池参数,将影响数据库处理方面的操作,因此整个选配系统的性能无法达到最优。为了进一步优化整个光伏选配系统的数据库操作效率,可根据不同时段访问量和每个用户操作数据库的频率,实时、动态可变地设置最优的连接池参数。

2.2.3 数据库连接池优化策略

为了实时并且动态地计算每个用户端浏览器的数据库连接池参数,需构建额外的数据库连接处理服务器作为调度中心,它负责对各个客户端在一定周期内的请求率进行统计。若某时间段请求率较低时,则服务器收回相应连接资源,同时将记录资源和时间的变化关系用于进一步优化分析使用,结构如图5所示。

图5 动态连接池结构

当服务器初始化时,数据库连接调度服务器根据该时间段并发量预估情况为系统设置一组初始的数据库连接池参数。

在系统的实际运行过程中,需要动态地计算所有用户的资源利用率connectionUsedRate和连接请求失败率connectionReqFailRate。数据库连接调度服务器实时记录这些数据,同时记录该时间段内整个数据库连接池的资源使用情况,并基于这些数据做压力分析,得到系统在当前环境下最快的数据库连接参数。在系统实际使用中,数据库连接调度服务器会分析各个时段下用户请求连接的成功率和失败率,必要情况下会剥夺一些成功率非常高的用户的连接资源分配给连接成功率较低的用户,以此实现全系统用户请求资源的负载均衡。极端情况下,如果超过一半以上的用户均出现连接请求失败率过高的情况,则该时段极有可能是光伏选配系统访问高峰期,数据库连接调度服务器需要记录该时段压力情况,下次在该时段到来前会提前反馈给系统服务器,已请求额外资源开启更多的数据库连接降低用户连接失败率。

2.3 基于NASA数据和百度地图结合的在线选址技术

传统的光伏项目在部署的时候需要预先进行实地考察,考察的因素包括部署地点的风速、光照强度、天气状况等气候类型。这些繁琐的步骤增加了项目的部署周期,给企业带来了额外的资金开销和人力开销。基于NASA数据库的开放数据,本系统实现了精确到经纬度级别的气候状态获取,通过调用百度地图API和NASA数据相结合的在线实地排布光伏板大大简化了部署周期,节约了人力物力。

NASA官网提供了全球的气候数据信息,为了快速获取这些信息并集成到本项目的数据库,我们在系统中集成了一个独立的网络爬虫服务,该爬虫服务基于WebMagic实现了广度优先的爬虫框架。网络爬虫的关键是信息获取和数据存储,NASA对于气候信息是公开的,本系统在信息获取方面只需实现数据筛。NASA爬虫利用Java类库分析HTML页面,通过正则表达式筛选相关气候信息并过滤无关信息。在数据存储方面,本系统将获取到的信息直接存储到系统专门的气候数据库表中备用。基于获取的NASA气候数据,通过调用百度地图API即可实现根据气候特性在线部署光伏项目。

3 系统实现

本系统的所有功能已经完成单元测试和集成测试,系统的使用情况满足预期设计要求,下面详细介绍本系统核心功能。

3.1 新建项目

登录后点击新建项目按钮,进入新建项目页面。其中有三个部分,第一部分是项目基本信息,包括项目名、项目地点(调用百度地图)、项目联系人和项目联系电话其中对项目名称、联系人和联系电话都做了正则校验过滤掉非法输入,如图6所示;第二部分是项目设计方案填写,包括系统类型选择、组建类型选择、安装点类型选择和项目相关设置,如图7所示;第三部分是组建排布设计,在此可以选择光伏板的个数、排列方式等信息,最优布线算法会根据这些信息生成最优布线图,如图8所示。

图6 新建项目-基本信息

图7 新建项目-设计方案

图8 新建项目-光伏板排布

3.2 物料清单/最优布线

进入我的项目列表,查看用户已经新建的项目,可以查看项目的具体信息,包括系统分析报告(可下载PDF格式或EXCEL表),组件接线图,物料清单(可下载PDF格式或EXCEL表)等,具体如图9-图11所示。

图9 系统分析报告

图10 物料清单

图11 最优布线

4 结 语

本文介绍了光伏发电选配系统设计与实现。本系统是传统光伏发电项目的互联网化产品,是“互联网+”时代的产物。本文使用了优化的数据库连接池策略解决了系统运行效率问题,设计了光伏板最优布线算法帮助使用本系统的企业实现了利益最大化。目前,本套系统已通过系统测试并逐步投入实际使用。

猜你喜欢
布线服务器部署
一种基于Kubernetes的Web应用部署与配置系统
晋城:安排部署 统防统治
基于职场环境的教学模式在网络布线课程中的应用
部署
摆脱繁琐布线,重定义家庭影院 Klipsch Reference Wireless 5.1
一种快速预判FPGA布线失败的方法
PowerTCP Server Tool
BlackJumboDog
2018年全球服务器市场将保持温和增长
部署“萨德”意欲何为?