管网爆管实时报警及关阀分析的系统设计与实现
2022-03-24李建
李 建
(上海威派格智慧水务股份有限公司,上海 200032)
引言
地下供水管网是城市重要的基础设施之一,在保证国民经济稳定发展、保障居民用水安全方面起到不可或缺的作用。随着城市的快速发展,地下环状管线越来越庞大,空间结构也越来越复杂,并且类型也越来越繁多。供水管网爆管事故的发生,将会严重影响居民的日常生活。因此在爆管事故发生之后,如何能快速定位爆管点的位置,快速做出全面的抢修决策就显得极为重要。爆管关阀分析的成功实现能缩短抢修时间,缩小停水范围,将爆管带来的损失降到最小[1~3]。
近年来,很多学者对爆管分析算法进行了深入的研究,一些厂家的管网信息系统也在不同程度实现了爆管分析的功能[4~6]。但这些系统大部分还处于实验环境阶段,存在未能实时全面的采集管网节点的物联网数据,无法实时感知管网的运行状态,没有完整地理信息空间数据,无法形成完善的网络拓扑结构等问题。因此在明确爆管位置的情况下也无法提供有效的关阀方案和通知受影响居民用户。
本文实时全面的感知管网节点的物联网数据,基于空间地理信息数据,根据管网节点的压力实时数据,通过流式计算的方式实时分析每个管网节点的压力情况,并对区域的压力进行联动分析,从而实现对爆管的报警分析。通过广度优先遍历算法,结合阀门节点实际的开闭状态。可以快速确定具体的关阀方案,记录受影响的用户信息,及时发送短信告知停水用户,指导爆管抢修工作的有序开展,为水务管理人员准确高效地管理庞大复杂的城市管网提供便利。
1.图的广度优先遍历算法
广度优先遍历算法(BFS),是当下对城市管网系统进行爆管分析的普遍算法。广度优先遍历类似于树的按层遍历,从图的某个节点V1开始遍历,然后依次遍历与V1邻接但未被遍历的节点V2、V3、V4、...Vn。然后顺序遍历与V2邻接但未被遍历的节点,继续访问与V3邻接但未被访问的节点,依次类推,直到结点集合V中所有的点均被访问,整个图的遍历才算结束。如下图所示,对管网数据进行遍历,从节点V1开始访问,接下来访问与V1连接的节点V2、V3,然后访问与V2连接的节点V4、V5,然后访问与V3连接的节点V6、V7,最后访问与V4连接的节点V8,到这里,所有的节点都已经被访问完毕,节点的访问顺序为V1、V2、V3、V4、V5、V6、V7、V8。
2.系统设计
管网爆管报警和关阀分析是一个系统工程。涉及到管网节点物联网数据的实时采集、管网阀门节点的开关状态的采集、管网监测点的部署、管网管线和管网节点等空间网络模型的建立。
2.1 管网监测点的设计与部署
管网测压点应能代表供水管网的实际运行情况,设置点的选择非常重要。测压点的安装数量可根据管网的复杂度、供水面积、供水量等因素进行设定,通常是按供水面积设定。
式中,A:供水面积(Km2),λ为管网测压点数量。X,Y表示不同监测模型精度下的测点数量。
管网测压的布置原则主要有以下几点:管网水力分界线、部分重要用户处、管网最不利供水点、用水集中区域、地形变化较大的区域、反应管网水力性能的大中口径干管上,同时充分考虑现场的安装条件是否方便。在整个城市管网中,这些测压点的个数还是比较有限的,所以本文充分利用其他系统的压力监测数据,比如,中途加压泵站的进水压力监测点、二供泵房的进水压力和流量监测点、一些大用户水表包含的压力和流量监测数据,甚至一些消防栓也会上传压力监测数据。这些数据的加以利用,极大的丰富了本文压力监测点的分布。
2.2 管线和节点空间数据模型设计
本文采用postgresql数据库管理管网GIS的属性数据。结合postgis引擎,创建可以存储空间点线面的数据库,管理管线、节点等信息,形成网络空间的数据集合。管线的两端即为节点,管线的数据库表维护了整个管网要素间的连接关系。表2列出了管线的数据字典信息。
表2 管网管线数据字典
管网节点,其实就是管线两边的端点,或者说是管线之间的连接点。节点有多种类型,有压力表、流量计、消防栓、水井源、水厂、水表、临时管点、井、节点、接水点、管件、二次供水泵房、变径节点、阀门等。表3列出了管网节点数据字典信息。
表1 监测模型精度
表3 管网节点数据字典
2.4 实时数据采集
本文的数据采集主要有两种方式,一种是底层物联网数据的实时采集,主要通过现场仪表设备采集管网节点中的数据,将压力传感器采集的压力数据通过MQTT协议的方式,实时往MQTT服务器发送数据,将实时数据存储到系统数据库中。另一种是同步其他系统的实时数据,本文通过统一接口的方式对接泵站、二供、大表等系统,获取压力测点的实时数据。
2.5 爆管报警分析
数据采集模块,主要负责将底层的实时数据采集并发送到对应的服务端。在报警分析模块,服务端接收到数据后采用实时计算的方式。系统可以根据实际情况设定区域,将重要的管网节点关联到该区域。实时判断节点的压力值和流量值是否在设定范围内,当某个区域范围内,同时有多个管网节点,在设定的时间范围内都出现压力值和流量值超出爆管报警的设定边界。报警系统会及时的推送爆管报警的报警信息给相关工作人员,用户一旦确认发生爆管,便会将出现异常的节点编号实时推送到爆管关阀分析系统。一般情况下,管网发生爆管后,爆管点的上游流速会变快,流量变大,压力瞬间变小,从而会影响到水厂出水口压力变小,流速变快。对于回路控制系统做的较好的水厂系统,会控制水泵的频率变大,甚至会启动更多的水泵来平衡水厂的出水压力。
2.6 爆管关阀分析
当关阀分析系统接收到报警分析系统推送过来的节点编号后,根据空间模型,自动查询出该节点的基础信息,管径大小、是否为不利点。并查询出该节点上下游所有的节点信息。获取上下游节点最近一段时间的压力和流量历史数据,同时实时监控该节点和上下游节点的压力和流量数据。
根据广度优先遍历的原理,计算出爆管点影响的用户及需要关闭的阀门。广度优先遍历算法先判断管线两端的节点,若两端都是阀门,则不需要进一步的搜索,两端阀门直接为初步需要关闭的阀门。如果不是,则以一端的节点为图的起点,进行图的广度优先遍历。首先访问该节点的相邻节点,如果该节点未被访问,则标记为已读,如果是阀门,则分别加入关阀方案对应的集合中,待与该节点相邻的所有节点访问结束后,从队列中取第一个元素,开始新的一层搜索。以此类推,知道队列为空时结束搜索,此时阀门集合中的各个节点均为可能需要关闭的阀门。在结合底层阀门的实时状态,在集合中去除状态为关闭的阀门,剩余的就是需要关闭的阀门。再结合阀门和用户表的关联关系,可以获取到关阀后受影响的用户数量。
3.实例分析
本实例为某市的管网信息,记录了全市27万多条管线数据。在底层数据采集方面,系统采集了200多个压力流量点,800多个二供泵房,300多个大用户表。其中,压力流量点的数据采集频率为5秒,二供泵房的进口压力数据采集频率为10秒,大用户表的数据采集频率为15分钟。
根据城市管网的实际供水情况,本文系统对城市管网的供水边界进行了划分,形成了3个管网供水压力分区。在具体的某一分区中,对该分区关键的压力点和流量点进行重点监控,为压力和流量点设置波动范围,设置波动的统计时长。当这些配置信息应用到系统中的时候,系统即刻会对底层采集上传的数据进行实时统计,实时判断出现异常波动的具体节点,并统计出现异常波动的节点个数。一旦超过设定的节点个数,系统将会主动推送相关的报警信息给到终端用户,同时在PC端的地图页面会实时绘制区域报警的热力图,用户如果确认了这个区域报警信息,那么爆管报警系统便会将出现异常的节点编号实时推送到爆管关阀系统,供系统及时分析问题。
本系统上线已有6个月,上线以来系统一直运行稳定。系统运行期间发生了一次爆管报警,在设定的统计时长范围内,该市的C分区出现了多个压力和流量异常点。满足触发报警的边界条件,触发了爆管报警,报警信息通过短信方式实时推送给管理员,告知管理员可能发生爆管的区域,以及出现异常的节点的相应信息,同时会实时推送到PC端,在地图页面展示出现异常的区域并通过压力热力图的方式展现给使用者,如下图所示,PC端使用人员可以非常方便的看到报警的具体区域位置和报警的等级。
图1 爆管报警热力图
触发了爆管报警之后,报警系统会将异常的压力点和流量点的节点编号实时推送到报警关阀分析系统。爆管关阀分析系统根据管网及阀门的空间拓扑关系网,分析节点的上下游关系。系统将会根据这些压力异常的节点圈出管网爆管的大概范围,同时将有可能出现爆管的管段标注为特定的颜色,同时形成爆管排查的经验参考方案。管理员可以根据系统的提示,安排抢维修人员进行现场确认。一旦得到了抢维修人员的现场确认,管理员即可在系统上点击爆管的具体位置,系统会根据网络拓扑关系,找到爆管周围的阀门,给出关阀方案。找出因为爆管关阀引起的停水用户,同时给停水用户批量发送停水通知。
图2 爆管关阀分析图
4.结论
本文所实现的爆管报警和关阀分析在某城市供水系统中得到了实际应用。物联网数据的感知是系统的基础,传感数据的秒级传输是系统的关键。采用实时计算对数据进行实时有效的处理,通过复杂的规则判断管网的运行状况。
爆管报警分析模块能实时感知地下管线的爆管风险,给管理者提供有效的应急处理方案。爆管关阀分析模块针对爆管点,利用广度优先遍历算法,能快速计算出需要关闭的阀门,并计算出因关闭阀门而受影响的用户数量,通过短信发送模块将停水信息及时推送到受影响用户中。
虽然本文的系统已经在实际环境中运行,能有效的进行爆管报警,识别爆管范围,标记可能出现的爆管点,给出爆管关阀方案,并在确定爆管点后对受影响用户发送停水通知。但仍然需要在全国各地不同的环境气候中,不断积累经验,优化系统的算法,提高系统报警的准确性,降低误报的概率。缩小可能发生爆管范围,提高爆管位置识别的精度。下一步工作将考虑通过数据挖掘技术寻找与发生爆管报警时,具有同等气候类型的历史压力,从中提取相似的数据序列,与当前数据进行对比,减少爆管报警的误报。