1. 引言
随着经济的高速发展,城市建筑规模以及城市交通规模的不断扩大,人们为了更好的利用空间,对于地下空间的开发逐渐增多,尤其是地铁、地下商场等地下工程。根据规范规定开挖深度超过5米或地下室为三层及以上的的工程称为深基坑工程 [1]。由于深基坑工程为临时性工程,部分单位认为不需要投入太多的人力和财力,导致近几年的基坑事故频发。2017年5月11日,位于深圳市福田区绒花路的深圳市轨道交通工程3号线三期南延工程基坑发生一起土方坍塌事故,造成3人死亡,1人受伤;2019年5月27日,青岛地铁4号线沙子口静沙区间施工段坍塌事故,5名工人全部死亡。另外深基坑工程是一个复杂的多学科岩土工程问题,很多工程问题目前理论研究无法解决,因此深基坑监测势在必行。夏乐乐建立了一套深基坑安全监测信息分析系统,实现数据的自动整合分析 [2] ;何兴刚将自动化监测技术应用在了深基坑监测中 [3]。但是对于目前深基坑系统的研究开发,深基坑监测系统还存在很多问题,表现在:
1) 兼容性不够,对于有些监测项目,虽然可以利用自动化监测实现数据的自动采集,但是很多监测项目还处在人工测量阶段,所以深基坑监测系统应该具备人工测量数据的录入功能。
2) 缺乏预警功能,目前对于深基坑变形预测的研究虽然很多,但大多停留在理论研究阶段,没有付诸于实际系统的集成。
3) C/S架构的局限性,目前的深基坑监测系统停留在现场工作。在互联网技术的飞速发展的今天,B/S架构让任何地方,任何时间访问系统成为可能。
2. 需求分析
基于目前深基坑监测系统存在的问题,同时应甲方要求,本文设计并实现一套深基坑工程监测预警系统,通过该系统实现对深基坑工程现场的安全监测。本设计的重点在于深基坑监测预警系统的整体设计,实现的功能如图1所示。
![](//html.hanspub.org/file/16-1541611x9_hanspub.png)
Figure 1. Functional demand map of monitoring and early warning system for deep foundation pit engineering
图1. 深基坑预警系统功能需求图
用户相关功能:包括用户的注册权限管理,密码管理,用户信息的管理以及登录功能。
数据采集相关的接口:对于深基现场的监测数据比较复杂,有的数据可以通过自动测量装置获取,如地下水位,应力以及深层水平位移,而有的数据要求精度比较高,由于自动化水平受限,必须通过人工进行测量,如地面沉降,顶部水平位移等,所以本系统提供自动采集接口和手动输入接口,进行多种数据的采集。
数据管理功能:本系统可以对多个工程进行同时监控,所以提供不同工程的数据的录入查询功能;对于每个工程,有多种现场的监测数据,本系统提供各类数据的录入,历史查询以及实时图表展示等功能。
预警相关功能:本系统基于历史监测数据采用灰色模型进行预测,提供预警功能,并设定三种报警级别,并通过该系统将报警信号及时通知相关人员。
3. 关键技术
3.1. 改进的灰色模型预测技术
3.1.1. 灰色模型概述
灰色系统理论是利用离散数据建立微分方程形式的动态模型,同时由于该模型是非唯一的,近似的,所以被称为灰色模型,记为GM。也就是说灰色模型是利用离散随机数经过数学变化,进行推导将随机性显著削弱,变成较为有规律性的生成数,建立起的微分方程形式的模型,便于对变化的过程进行描述,并加以研究 [4]。
灰色预测是指利用灰色模型对系统的发展规律进行估计预测,同时可以根据某短时间内的发生的事件,对未来事件的分布做出研究等等。这些工作实际上都是将“随机过程”当做了灰色过程,将“随机变量”当做了灰变量,并主要利用灰色系统理论中的GM (1,1)模型进行处理,在工业,农业,商业的各个领域具有广泛的应用。特别是依据目前已有的数据对未来到的发展趋势做出预测分析 [5]。
3.1.2. 改进的GM (1,1)预测步骤
1) 建模可行性分析
为了保证GM (1,1)建模方法的可行性,需要对已知数据做必要的检验处理。
假设原始的历史数据数列为
,计算数列的级比
。
如果所有的级比都落在可容覆盖区间
内,则数列
可以建立GM(1,1)模型,进行灰色预测。
2) GM (1,1)建模
假设
数列满足(1)的要求,以其为数据列,建立GM (1,1)模型
用回归分析求得a,b的估计值,于是相应的白化模型为
解得:
因此得到预测值:
。
3) 模型校验
包括两项校验。
① 残差校验:计算相对残差
如果所有的
,则认为达到了较高的要求,如果对于所有的
,则认为达到了一般的要求。
② 级比偏差值校验:计算
![](//html.hanspub.org/file/16-1541611x22_hanspub.png)
如果所有的
,则认为达到了较高的要求,如果对于所有的
,则认为达到了一般的要求。
4) 改进预测
经过实验发现,直接利用灰色模型对原始数据进行预测,发现误差较大,且与上次的预测误差值有明显的大小关系,本文经过多次实验,利用上一次预测的结果与之后实际测量的误差,对本次预测结果进行误差的修正,最终得到的预测结果为:
。
3.2. B/S架构模块化分层技术
基于目前深基坑监测系统大多采用C/S架构,C/S架构的局限性使得工作人员必须在工程现场指定的电脑上,才能看到实际的监测数据,而B/S架构可以做到任何时间,任何地点,只要工作人员登录系统,就可以实时看到现场的监测数据。
本系统基于B/S架构采用SSM框架搭建该系统,SSM框架是Spring MVC,Spring以及MyBatis的组合,同时采用前后端分离的粗略,属于MVC的设计模式。Spring是一个开源的轻量级框架,Spring MVC是Spring Framework的后续产品,同时也是原生支持Spring特性,使得Web开发变得简单高效。Spring MVC分离了控制器,对象模型,分排气以及程序处理对象的角色,这种分离策略使得他们更加容易定制化,方便开发人员进行编程。MyBatis是一个基于Java的持久层框架,通过XML或者注解的方式将接口和java中的类与数据库中的记录进行映射。
本系统通过B/S架构的模块化技术,按层次和模块进行划分,划分为如下图2所示的Controller层,Service层以及Dao层,Controller层负责从PC端或者现场设备接收请求,解析请求,交由Service层处理,Service层根据需求进行分析处理,交由Dao层进行数据库的增删改查操作。同时将预测子模块集成到Service层,进行分析预测,将结果交由Controller层,并展示在前端页面中 [6]。
4. 系统设计与实现
4.1. 系统总体架构设计
根据系统的实际需要以及甲方的要求,本系统采用如图3所示的总体架构设计。整个系统采用微服务化的特点 [7],包括数据的采集,数据的存储,数据的分析处理,后台服务以及人机交互模块构成。
数据可以分为数据采集器自动采集的数据以及目前为止无法自动采集需要手动测量的数据,对于采集器自动采集的数据,通过http协议发送到服务器,对于目前无法自动化采集的数据,本系统提供一个接口,目前通过前端输入到服务器。
从高可用考虑,防止后台服务器的负载过大,出现单点问题,采用服务器集群来提高系统的可用性,同时采用Nginx服务器做负载均衡,进行反向代理,无论是深基坑工程本地服务器的数据传输请求,还是人机交互客户端终端的数据查询请求,都经过Nginx反向代理服务器,将请求均衡地分给后端服务器处理。
为了满足实时性的要求,采用Redis数据库做缓存,提高数据的实时显示,同时为了保证可靠的实时性,防止出现单个Redis服务器崩了,实时性就得不到保证,我们采用Redis的Cluster模式集群Redis数据库,提高Redis的可用性以及整个系统的实时性。
4.2. 系统主要功能模块的设计与实现
4.2.1
. 数据采集模块
根据需求以及《GB50497-2009建筑基坑工程监测技术规范》中对建筑基坑工程仪器监测项目的规定 [8],基坑现场应测项目有:围护墙(边坡)顶部水平位移,围护墙(边坡)顶部竖向位移,深层水平位移,立柱竖向位移,支撑内力,锚杆内力,地下水位,周边地表竖向位移,周边建筑相关参数等。有些位移,内力,水位都可以通过斜侧仪,水准仪,水位计,测力计等进行采集测量,根据目前物联网的发展状况 [9],我们可以对深层水平位移,地下水位,锚杆内力,支撑内力利用自动化装置进行自动测量,但是对于周边建筑的沉降,围护墙顶部水平位移等目前无法通过装置进行自动测量,通过人工进行观测。
如下图4所示,本系统对于这两种数据的采集配套两种接口,自动采集接口和手动上传接口。自动采集接口可以利用自动化装置直接通过http协议发送到后端服务器,后端服务器对数据的类型和数值进行解析获取;手动上传接口则在前端页面提供上传页面,监测人员可以将自己采集到的数据通过指定格式的文件进行上传,后端服务器解析文件,获取监测数据。随着科技的发展,有些数据会逐渐可以通过自动化装置进行采集,此时本系统也预留了自动采集的接口,自动化装置只需要按照指定的数据格式进行发送数据,即可集成到该系统中。
![](//html.hanspub.org/file/16-1541611x28_hanspub.png)
Figure 4. Data acquisition module design
图4. 数据采集模块设计图
4.2.2
. 存储模块
本系统对于采集器的数据需要进行存储,一方面为了留档,另一方面为了能够在页面进行图表显示,供相关人员进行查看。本系统将监测数据直接发送到后端服务器,在数据库中进行存储,存储方案如下:
常规数据的持久化可以采用MySQL数据库。原因有三个:第一从成本上考虑,MySQL是免费的。第二从项目本身考虑,数据量比较大,并发性比较高,MySQL支持事务的操作,同时对高并发的读写也提供了很好的支持。第三从系统可用性考虑,MySQL可以做主从配置,主服务器进行写操作,从服务器进行读操作,可以加快数据的查询效率,同时也可以做多个主从的MySQL服务器集群,提高系统的可用性。
本系统使用Mybatis以及相关的组件整合MySql,对常规数据进行增删改查的操作。其中常规数据模型主要有三个,表1所示的地下水位记录信息,表2所示的深层水平位移记录信息,以及表3所示的支撑应力记录信息。
![](Images/Table_Tmp.jpg)
Table 1. Groundwater level record information table data model
表1. 地下水位记录信息表数据模型
![](Images/Table_Tmp.jpg)
Table 2. Deep horizontal displacement record information table data model
表2. 深层水平位移记录信息表数据模型
![](Images/Table_Tmp.jpg)
Table 3. Support stress record information table data model
表3. 支撑应力记录信息表数据模型
数据的缓存存储可以采用Redis数据库。原因有以下几点:第一从系统的响应速度考虑,数据如果都要从MySQL中读取显示,那相应速度就降低了,Redis是内存型数据库,访问速度远远高于数据库的磁盘操作,所以可以用Redis来提高系统的响应性。第二从容灾性考虑,一般的缓存没有持久化的操作,一旦崩了就不能恢复,而Redis不仅支持持久化操作,和MySQL一样,还支持集群模式,可以提高缓存服务器的容灾性。
4.2.3
. 预测报警模块
在《GB50497-2009建筑基坑工程监测技术规范》中,每一个监测项目都有预警值 [8]。本系统对每个监测项目都有一个实际的监测值,如果监测值达到了预警值,系统进行报警。另外本系统基于灰色系统理论,对监测项目(周围建筑物沉降量)做预测分析,如果预测值达到了预警值,同样给出报警,及时通过短信以及邮件的方式通知相关的人员。
查看周边建筑物的沉降的监测数据可以发现,沉降量随着时间有一定的规律性,本系统利用上述改进的灰色系统理论对其进行预测,灰色系统理论建立在对监测数据建模的基础上,所要求的数据量不是很大,要求观测数据量只需要大于4,就可以建立灰色模型GM。灰色模型预测所需要的数据量比较小,便于系统的数据处理,数据样本可随机分布,所需要的数据处理复杂度较低,简单实用,同时精度和准确度都比较高,对于本系统具有很好的适应性。因此基于灰色系统理论,本系统对周边建筑物的沉降提供了预测分析 [10] [11]。
如图5所示,本系统的预测报警模块分为如下几个重要组成部分:预测分析接口,预测算法,以及报警方式。
![](//html.hanspub.org/file/16-1541611x29_hanspub.png)
Figure 5. Forecast alarm module design
图5. 预测报警模块设计图
灰色模型预测关键代码如下:
![](//html.hanspub.org/file/16-1541611x30_hanspub.png)
同时本系统提供了预测分析接口,目前只对周围建筑物沉降量做了预测分析,后续的系统改进中,如果需要对别的监测项目进行预测,同样适用,只需要给定输入的序列,规范中该检测项目的预警值即可;对于预测算法,本系统也采用了插拔式的设计,目前基于灰色系统预测做了实现,后续的系统如果需要用到别的预测算法,也可以集成到本系统中,只需要对输入输出数据的序列进行特定的处理即可;对于报警方式,本系统利用简单有效的邮件和短信的方式进行了实现。
4.2.4
. Web服务模块
如图6所示,本系统Web服务模块主要包括负载均衡服务器,Web应用服务器,Mysql数据库,Redis内存数据库和人机交互客户端。其中负载均衡服务器采用Nginx,内部采用原地址哈希的负载均衡算法进行分发不同的请求,保证在高并发的情况下,同一个客户端的多次请求能够始终被发送给同一台应用服务器进行处理;应用服务器采用的是Tomcat,主要实现的是用户的注册登录,权限管理,数据的分析处理,同时将预测模块集成在其中,进行预测分析,必要的时候做出警报发送短信和邮件;数据库采用的是MySql + Redis的组合,对于常规数据,我们将其存放到数据库中,进行持久化存储,对于客户端经常访问的数据,我们将其放在Redis中,提高响应的速度,同时采用Redis自带的LRU策略进行缓存的更新,保证Redis中缓存的数据都是最新的数据;客户端包括人机交互的浏览器以及现场的数据采集器设备客户端,对于现场的数据采集设备,通过发送HTTP请求到Nginx服务器,Nginx服务器将现场的数据分发到不同的后台服务器进行分析处理,并入库;对于浏览器,联网的机器只需要登录指定网址,即可访问本系统,用户可以通过浏览器查看实时数据曲线,查询历史的数据曲线图,上传手工测量的数据的文件,以及直接在页面获取报警的信号。
5. 结果分析与测试
5.1. 改进灰色模型预测结果对比
以广州地铁燕塘站建筑物沉降Z70观测点第1~27周的数据作为本次预测对比实验的原始数据。
1) 普通灰色模型预测处理方法
输入为前7周的数据,预测当前周的监测数值,对于第8~27周的监测值进行滚动预测。如采用2~8周的监测值作为已知量,预测第9周的监测值;采用3~9周的数据预测第10周的监测值。
2) 改进的灰色模型预测处理方法
改进后,同样利用前七周的监测值预测当前周次的监测值,但是需要按照上述改进方法,对预测结果进行误差的修正。
建立模型后,检验结果如表4所示。
![](Images/Table_Tmp.jpg)
Table 4. Forecast contrast checklist
表4. 预测对比检验表
实验结果预测趋势如下图7所示:
![](//html.hanspub.org/file/16-1541611x32_hanspub.png)
Figure 7. Comparison of prediction results
图7. 预测结果对比示意图
从以上图表来看,改进后的灰色模型相对于普通的灰色模型,无论从预测的相对误差,还是图中的趋势可以看出,改进后的灰色模型在广州地铁燕塘站建筑物沉降Z70观测点实测的数据上,能够更准确的进行预测,同时预测趋势更贴合实际的测量值发展趋势。
5.2. Web后台压力测试
本系统基于maven进行开发,很轻易的可以引入jar包,ContiPerf轻量级的测试工具进行压力测试,其基于JUnit4开发。可以指定线程数量和执行次数,通过限定最大的响应时间和平均执行的时间来进行性能测试。同时可以生成性能测试报告,帮助开发者用作性能分析。使用方法如下:
①在maven配置文件中引入org.databene:contiperf:2.3.4jar包
②单元测试类里面使用 @Rule 注解激活 ContiPerf
@Rule
public ContiPerfRule i = new ContiPerfRule();
③使用@PerfTest和@Required注解
@PerfTest(invocations = 3000, threads = 20)
@Required(max = 1200, average = 250, totalTime = 6000)
其中invocations表示执行次数,threads表示并发线程数,max限制了最大时间,average要求了平均时间,totalTime要求了总的执行时间。
测试报告如下图8所示:
![](//html.hanspub.org/file/16-1541611x33_hanspub.png)
Figure 8. Comparison of prediction results
图8. ContiPerf性能测试报告
从上述报告中可以看出,后台使用Tomcat作为后端服务器,每秒效率TPS为1796,平均响应时间为21 ms,性能满足需求。因此后端能够提供良好的服务。
5.3. 主要展示功能测试
由于本系统尚未投入到实际的工程项目中,界面展示的数据仅仅为测试数据,当投入到实际项目中,数据将自动更新为实际的监测数据。
本系统主要的功能是实时监测以及报警功能,如图9所示,为本系统的实时监测页面,其中各个监测参数以折线图的形式展示出来,方便用户看随着时间发展的趋势,同时在下方有报警指示灯,当实际监测值达到报警值,或者与测试值达到报警值时,该指示灯变成红色,同时后台及时发送短信以及邮件给相关负责人。
![](//html.hanspub.org/file/16-1541611x34_hanspub.png)
Figure 9. Real-time monitoring and alarm
图9. 实时监控与报警
6. 结束语
本文设计的监测预警系统集成了基于改进灰色模型对周边建筑物沉降的分析预测模块,通过实验对比发现,相较于普通的灰色模型更加符合工程监测的数据趋势;实现了深基坑工程的各个监测项目的实时监测与显示,监测数据信息的管理,以及报警等的功能,满足了目前深基坑工程监测的基本需求;同时预留了数据传输的接口,对于目前是手工测量,但是今后随着科学技术的发展,会发展成自动测量的监测项目,日后可以集成到本系统中去;预留了预测算法的接口,目前只用了灰色预测算法对深层位移进行预测分析,今后可以对于其余的监测项目进行研究,增加新的预测算法,同时对其进行预测。最后的性能测试保证了今后系统运行的稳定性以及可靠性,能够承受足够的并发压力。
基金项目
本工作得到了江苏省自然科学基金(BE2016805)的支持。