计算机系统应用  2019, Vol. 28 Issue (1): 87-93   PDF    
基于Android的桥梁挠度监测及预测系统
张丹丹1, 赵宏伟2, 宋云峰2     
1. 长安大学 电子与控制工程学院, 西安 710064;
2. 渭南市交通工程质量监督站, 渭南 714000
摘要:为了解决桥梁管理部门对桥梁实时安全程度的监测及预期安全程度预测的问题, 基于TMS320C6748激光光斑中心定位的实现, 设计一种基于Android的桥梁挠度监测及预测系统. 监测系统采用模块化的设计思想, 由Socket服务器模块、Web服务器模块和Android模块组成. 结合来自Socket服务器模块接收的实时桥梁挠度数据, 建立数据库连接及操作, 运用移动终端与Web服务器相结合的信息化环境, 实现基于百度地图API的桥梁信息标注、搜素、挠度信息显示的功能. 预测系统通过对比分析综合评分法和优化的马尔可夫链, 对桥梁短期状态变化进行预测. 经过多次对模拟桥梁的模拟运行检测, 算法预测结果和实际情况相符合, 且整套软件运行时间控制在4至6 s, 实现了对实时性的要求. 结果表明, 该系统具有很强的实用性、实时性和准确性. 为桥梁管理者监管桥梁, 及时制定桥梁具体养护计划提供了便捷准确的途径.
关键词: 激光光斑中心定位    桥梁挠度    Socket    Web服务器    Android    综合评分法    马尔可夫链    
Bridge Deflection Monitoring and Prediction System Based on Android
ZHANG Dan-Dan1, ZHAO Hong-Wei2, SONG Yun-Feng2     
1. School of Electronics and Control Engineering, Chang’an University, Xi’an 710064, China;
2. Weinan Highway Quality Supervisory Station, Weinan 714000, China
Foundation item: Science and Technology Fund of Bureau of Communications of Shaanxi Province (17-33T)
Abstract: In order to solve the problem in bridge management of real-time security monitoring and expected safety prediction based on the realization of TMS320C6748 laser spot center positioning, a bridge deflection monitoring and prediction system based on Android is designed. The monitoring system adopts a modular design idea and consists of a Socket server module, a Web server module, and an Android module. Combined with the real-time bridge deflection data received from the Socket server module, the database connection and operation are established, and the information environment combined with the mobile terminal and the Web server is used to realize the function of bridge information annotation, search, and deflection information display based on Baidu map API. The prediction system predicts the short-term bridge state changes by comparing and analyzing the comprehensive scoring method and the optimized Markov chain. After many times of simulation test of the simulated bridge, the prediction result of the algorithm is consistent with the actual situation, and the running time of the whole software is controlled in 4 to 6 seconds, realizing the requirement of real-time performance. The results show that the system has strong accuracy, real-time, and practicability, which provides a convenient and accurate way for the bridge managers to supervise the bridge and timely formulate the bridge concrete maintenance plan.
Key words: laser spot centering     bridge deflection     Socket     Web server     Android     comprehensive scoring method     Markov chain    

随着交通运输业的发展, 桥梁管理养护工作日益繁重, 而且由于受气候、氧化和施工等因素影响, 致使桥梁强度和刚度日益降低, 这不仅仅减小了桥梁使用的安全性, 更会缩短桥梁的使用寿命[1]. 由于桥梁在交通运输中所起到了关键性作用, 所以不仅要在建设环节保障好桥梁的设计与质量, 更要在桥梁建成后对其健康做好监测工作, 保障其在交通运输中继续发挥好它的关键性作用.

在移动互联网技术不断革新且移动通信网络高速发展的今天, 各个领域都紧跟这股浪潮, 开发出各自领域所需的应用. 因此, 将基于硬件部分的激光光斑中心定位结果和Android应用结合起来, 建立网络化桥梁挠度监测、预测平台, 使用多种算法对监测内容进行测评, 对于提高对桥梁的的实时监测有重要的意义[2].

1 基于TMS320C6748激光光斑中心的定位

硬件系统通过TMS320C6748核心处理器控制CMOS镜头进行靶标图像采集, 对采集到的图片进行激光图像算法处理[3], 求出激光光斑中心的坐标信息.

在求取待测点挠度变化值时, 首先在桥梁未加载前对待测点进行测量, 得到激光光斑在标靶上的初始坐标(x0, y0), 然后在桥梁加载之后测得激光光斑的位置坐标(x1, y1), 最后由此得出待测点的桥梁挠度值△x=x1x0, △y=y1y0. 经过检测平台验证, 系统位移变化量的精准度检测数据如表1所示.

表 1 硬件系统检测位移数据对比

硬件系统求出待测点桥梁挠度数据之后, 通过Dtu传输模块和Socket服务器建立通信, 将桥梁挠度信息上传至Socket服务器, 进行挠度数据的显示和处理. 硬件系统图如图1所示.

图 1 硬件系统图

2 桥梁挠度监测平台设计

本平台结合桥梁管理者及普通用户对桥梁实时管理或监督的需求, 通过多种模块的相互结合共同作用, 提供了一种方便可行的监管桥梁的途径. 主要通过Socket服务器模块接收来自单片机的实时挠度数据, 判断并进行多种数据库操作. 使用百度地图和具体桥梁挠度变化信息为核心的Android端, 进行与Web服务器模块的信息交互, 随时随地为用户提供实时的桥梁信息, 软件系统结构如图2所示.

图 2 软件系统结构图

2.1 Socket服务器模块

Socket服务器模块主要实现和单片机通信, 以IP地址和固定端口号和单片机端进行Socket通信, 按照自定义的数据格式接收数据, 并对接收到的数据使用CRC进行校验, 判断接收到的数据类型, 进行相应的数据库操作[4]. 具体的Socket通信流程图如图3所示.

在进行数据库操作时, 考虑到用户并发量的问题, 本系统采用自定义的数据库连接池[5]. 编写数据库配置文件, 设置初始连接数为10, 并发访问量超过10时, 自动往连接池中添加10条连接. 在连接池中添加获取数据库连接、获取数据源及归还连接和语句执行者的方法.

数据库操作共有两种, 如果单片机第一次与Socket服务器进行连接, 则需发送该单片机对应桥梁的注册信息, 在数据库bridgemap中创建桥梁对应的表, 如果不是第一次连接, 需要发送桥梁身份识别码, Socket服务器端组拼桥梁表名, 接收数据并进行数据库中表的填充. 其中数据库表结构如图4所示.

图 3 Socket通信流程图

图 4 数据库表结构

2.2 Web服务器模块

Web平台主要实现搭建数据库服务器平台[6], 接收并判断用户的多种联网操作, 进行对应的数据库操作, 封装并返回应用程序数据. 本系统使用Tomcat服务器端来进行Web服务, JSON作为网络传输协议, MySql作为数据库存储桥梁数据.

Web服务器模块在进行和Android平台的通信传输中, 使用JSON进行数据封装, 创建Java Bean对象, 通过对象中的Object.setXXX()方法将数据填充进对象, 把对象添进集合, 再将集合转成字符串, 进行传输.

2.3 Android模块

Android模块下主要包含5个子模块: 桥梁注册模块、桥梁搜索模块、地图环境搭建模块、桥梁图标管理模块和桥梁挠度显示模块. 各个模块共同实现注册、显示百度地图、标志注册、桥梁搜索、桥梁挠度曲线显示和桥梁图标变更的功能[79].

桥梁注册模块主要实现客户只有在第一次打开应用时需要注册的功能. 使用Android中的存储类SharedPreferences, 对是否是第一次打开应用的标志位isFirst进行存储, 标志位的初始设置为true, 在第一次打开后, 修改标志位为false, 以此实现判断逻辑.

桥梁搜索模块功能通过AutoCompleteTextView控件实现. 在输入首字母出现联想桥梁, 并对每个联想桥梁设置item点击事件. 点击联想桥梁, 应用由搜索页面转入地图页面, 显示选择对话框, 询问用户是否改变地图默认显示中心位置. 其中桥梁注册模块图和桥梁搜索模块图如图5图6所示.

图 5 桥梁注册模块图

图 6 桥梁搜索模块图

地图环境搭建模块主要实现地图的配置显示. 使用百度地图SDK搭建地图环境, 通过百度地图提供的API进行地图的初始化设置, 设置地图显示中心、初始比例尺大小、隐藏指南针和设置文本标志点击事件等功能. 为了应用的美观性, 使用自定义缩放控件ZoomControlView, 完成地图缩放功能. 地图环境搭建模块图如图7所示.

图 7 地图环境搭建模块图

图标管理模块包括桥梁标志的创建和变更两部分. 桥梁标志的创建在获取到全部注册桥梁信息之后, 封装注册图标类TextMarker, 循环创建该类对象, 调用方法, 进行图标的创建. 在预测完桥梁状态之后需要根据预测结果进行桥梁标志的变更. 桥梁共有三种标志: 绿色、黄色和红色并闪烁, 分别对应桥梁的状态是安全、危险和警戒. 图标管理模块图如图8所示.

桥梁挠度实时显示模块主要实现显示最新挠度数据和绘制具体桥梁实时挠度数据折线图的功能. 在地图显示页面点击桥梁图标进入桥梁挠度实时显示页面, 执行显示逻辑, 桥梁名称从本地Sqlite数据库中获取并显示, 桥梁挠度实时变化曲线图通过联网访问Web服务器数据库, 使用AChartEngine包进行绘制挠度实时曲线图, 并采用计时器每3 s重新进行联网取数据的操作, 重绘挠度曲线. 桥梁挠度实时显示模块如图9所示.

3 桥梁挠度预测系统的设计

桥梁健康状态的预测和评价对于桥梁的长期使用来说具有重要的意义, 目前国内外对桥梁健康状态的评价算法大多是获取桥梁信息之后, 再使用多种软件进行评估, 且获取桥梁信息和评价结果之间通常都存在一定的时间差, 只能起到判断取到的数据所对应的桥梁状态, 实时性差, 且评价算法针对性强, 不适用于大多数桥梁. 本系统选取综合评分法和优化马尔可夫链算法对桥梁健康状态进行每2分钟一次评价, 最后选取其中最优的算法.

图 8 图标管理模块图

图 9 桥梁挠度实时显示模块

3.1 综合评分法

综合评分法是建立在对数据进行定量和定性分析的基础之上, 对待评价数据进行打分的一种评价算法. 本系统对全部桥梁的挠度数据进行评价打分, 根据得分确定桥梁的损伤级别, 进行桥梁短期健康状态的预测[10,11]. 综合评分法流程图如图10所示.

图 10 综合评分法流程图

Android模块在地图显示页面时, 每隔2分钟进行定时提取全部桥梁的最新300组挠度数据的操作, 对取回来的全部数据进行具体桥梁的全部挠度数据的遍历, 统计其对应的损伤级别的次数. 挠度损伤级别从一级到五级共分为五级, 对应挠度变化范围从初始挠度f0l/4800到最大挠度fml/600, 其中l是桥梁的单跨长度.

不同的损伤级别对应不同的得分和权重, 通过乘积因子、次数、得分和权重的乘积和计算得出该桥梁的得分, 对应回桥梁状态参照表, 得出桥梁预期状态如下:

$ S = f \times \sum\limits_{i = 1}^5 {{n_i} \cdot {w_i}} \cdot {s_{xi}} $ (1)

其中, S是得分, ni(i=1, 2, 3, 4, 5)为300组挠度数据分别在五种损伤级别下的次数, wi, sxi(i=1, 2, 3, 4, 5)为五种不同损伤级别对应的权重和得分, f=6.184为乘积因子. 其中损伤级别、级别得分与权重对照表和得分与损伤程度对照表分别如表2表3所示.

表 2 损伤级别、级别得分与权重对照表

表 3 得分与损伤程度对照表

根据不同状态更改桥梁图标为安全、危险或者警戒, 其中第一、二种损伤程度下设置桥梁图标为安全, 第三种损伤程度下设置桥梁图标为危险, 第四、五种损伤程度下对应桥梁图标为警戒状态. 对全部桥梁数据执行上述操作, 从而更新全部桥梁的短期预期状态.

3.2 马尔可夫链

马尔可夫链是具有马尔可夫性质的随机过程, 在给定当前数据的情况下, 系统可以从一个状态变化到另一个状态, 也可保持当前状态, 这些状态改变的相关概率就叫转移概率[12]. 经过一次状态转移之后得到的概率转移矩阵就是一步转移概率矩阵P(1), 此时n步转移概率矩阵的计算如下:

$ P\left( n \right) = {P^{ \wedge n}} $ (2)

但是在实际的应用中, 数据变化灵敏, 靠一次求出的一步转移概率矩阵来计算之后的n步转移概率矩阵, 并且分析桥梁的实际状态, 会产生很大误差, 因此需要对算法进行改进[13,14].

本系统使用优化的马尔可夫链对桥梁预期挠度状态进行预测. 首先, 连网获取300组桥梁挠度数据, 将取回的数据均分成2组, 将第一组数据对比状态分成5组, 创建数组c1记录所有数据中5种状态各自出现的次数c1[i](i=0, 1, 2, 3, 4), 使用ArrayList集合顺序记录所有数据对应的状态编号. 轮询集合中所有数据编号从初始状态0→0, 1, 2, 3, 4各自出现的次数nij其中i为初始状态j为转移状态, 分别将其除以c1[0], 得到从初始状态0至5种状态的转移概率. 轮询剩下的所有初始状态, 得到全部初始状态下的转移概率, 从而得到前150组数据下的一步转移概率矩阵P1, 计算如下所示:

$ {P_1} = \left[ {\begin{array}{*{20}{c}} {\frac{{{n_{00}}}}{{{c_1}[0]}}}&{\frac{{{n_{01}}}}{{{c_1}[0]}}}&{\frac{{{n_{02}}}}{{{c_1}[0]}}}&{\frac{{{n_{03}}}}{{{c_1}[0]}}}&{\frac{{{n_{04}}}}{{{c_1}[0]}}} \\ {\frac{{{n_{10}}}}{{{c_1}[1]}}}&{\frac{{{n_{11}}}}{{{c_1}[1]}}}&{\frac{{{n_{12}}}}{{{c_1}[1]}}}&{\frac{{{n_{13}}}}{{{c_1}[1]}}}&{\frac{{{n_{14}}}}{{{c_1}[1]}}} \\ {\frac{{{n_{20}}}}{{{c_1}[2]}}}&{\frac{{{n_{21}}}}{{{c_1}[2]}}}&{\frac{{{n_{22}}}}{{{c_1}[2]}}}&{\frac{{{n_{23}}}}{{{c_1}[2]}}}&{\frac{{{n_{24}}}}{{{c_1}[2]}}} \\ {\frac{{{n_{30}}}}{{{c_1}[3]}}}&{\frac{{{n_{31}}}}{{{c_1}[3]}}}&{\frac{{{n_{32}}}}{{{c_1}[3]}}}&{\frac{{{n_{33}}}}{{{c_1}[3]}}}&{\frac{{{n_{34}}}}{{{c_1}[3]}}} \\ {\frac{{{n_{40}}}}{{{c_1}[4]}}}&{\frac{{{n_{41}}}}{{{c_1}[4]}}}&{\frac{{{n_{42}}}}{{{c_1}[4]}}}&{\frac{{{n_{43}}}}{{{c_1}[4]}}}&{\frac{{{n_{44}}}}{{{c_1}[4]}}} \end{array}} \right] $ (3)

按此方法计算后150组数据的一步转移概率矩阵P1', 此时两步转移概率矩阵的计算如下:

$ P\left( 2 \right) = {P_1} \times P_1' $ (4)

在分别求得xy方向的两步转移概率矩阵之后, 就可对最后一条挠度数据预测出其将来状态.

4 算法结果分析

综合打分法, 算法较为简单, 处理速度很快, 桥梁数量很多时也能迅速给出处理结果, 但其需要进行人工评定的方面很多, 对于桥梁状态判定的准确性方面还需一定的改进. 优化的马尔可夫链在处理精度和适用度上都优于前者, 对于多种桥梁的处理结果都比较理想, 桥梁数量很多时, 理论处理速度在海量云数据下可能会相对较慢, 但是出于对CPU处理速度的考量, 处理结果不会出现明显降低. 进行经过多次的实际测量、计算和算法的比对, 针对桥梁状态的评价问题, 最终选取优化的马尔可夫链对桥梁的状态进行短期内的预测.

针对测得的一组桥梁挠度应用优化马尔可夫链算法, 求得的一步转移概率矩阵和两步转移概率矩阵结果图如图11所示.

图 11 算法处理结果图

针对模拟桥梁进行算法结果准确性检验, 检验结果如表4所示.

表 4 算法检验结果

5 总结

基于Android的桥梁挠度监测及预测系统能够实现设计之初对实时性、准确性和实用性的设计要求. 其中在整个软件系统运行时间中, Socket服务器模块接收数据时间为每秒3至4组数据, Android App主界面加载百度地图和获取并标注全部注册信息时间为2至3 s, 桥梁挠度显示模块更新折线图时间固定每3 s重新获取最新挠度数据, 其中获取最新挠度挠度信息时间为2至3 s. 不考虑人员操作和网速影响, 系统完整运行一次时间为4至6 s(仅包括会有时间差的数据接收、标志标记和桥梁挠度显示, 不包括几乎不存在时间差或固定时间运行的其他功能) . 且在运行时间范围内, 通过对图1中模拟桥梁的多次模拟应用检测, 其挠度预测结果符合实际模拟桥梁的变化情况, 多次检测结果中准确率可达98%. 系统的实时性和运行的准确性保证了系统的实用性.

在移动互联时代, 将互联网技术运用于桥梁安全的实时监测中, 并通过使用多种算法对桥梁状态进行预测, 为桥梁挠度实时变化的监测技术注入了新的活力也为管理部门和普通用户提供了一种监测桥梁的新途径[15]. 桥梁挠度变化监测平台, 实时性高、运营成本低且操作方便. 可建立桥梁运营实时监测, 预测其短期变化, 对于用户监测桥梁并根据变化制定合理且有效性的养护措施、节约养护成本有很大的帮助, 达到了延长桥梁使用寿命和确保桥梁安全性的目的.

参考文献
[1]
王艳娇. 目前公路桥梁的状况及具体对策. 科技展望, 2016, 26(7): 36. DOI:10.3969/j.issn.1672-8289.2016.07.032
[2]
刘志平, 朱丹彤, 杨磊, 等. Android手机传感器的桥梁振动检测试验. 科技导报, 2017, 35(10): 80-86.
[3]
王会峰, 冀芳, 汪大宝. 激光基准成像测量光斑图像的亚像素检测算法. 量子电子学报, 2008, 25(4): 402-406. DOI:10.3969/j.issn.1007-5461.2008.04.004
[4]
叶剑飞, 李烨. 基于Socket通信的生产管理跟踪系统. 软件导刊, 2018, 17(3): 136-138.
[5]
戴长秀. 连接池访问数据库的研究与应用. 计算机时代, 2017(11): 20-22, 26.
[6]
翟羽佳. 基于Web的高校图书馆毕业留念系统设计与实现. 软件导刊, 2015, 14(9): 113-115.
[7]
李博森, 何大治, 冯奕佳, 等. 基于Android平台的车路协同系统车载终端设计. 现代电子技术, 2018, 41(13): 83-87.
[8]
陈子一, 宋蕾, 马进财, 等. 基于百度地图的汽车定监测系统. 科技风, 2018(19): 72.
[9]
贾振, 韩印. 基于百度地图API的智能交通信息展示. 物流工程与管理, 2016, 38(7): 211-213, 218. DOI:10.3969/j.issn.1674-4993.2016.07.079
[10]
张强, 程万洲, 杨玉锋, 等. 多层次灰色综合评价法在管道风险评价中的应用. 地质科技情报, 2016, 35(2): 126-128.
[11]
杨敏, 廉博, 申晨, 等. 非标项目外协采购加权综合打分法实践研究. 项目管理技术, 2016, 14(8): 91-93. DOI:10.3969/j.issn.1672-4313.2016.08.017
[12]
张劲逸, 刘燕晶. 基于马尔可夫链的语言发展预测模型. 中国高新区, 2018(13): 47.
[13]
Gantar D. Application of Markov chain method for landscape scenario building. Urbani Izziv, 2009, 20(1): 209-219. DOI:10.5379/urbani-izziv-en-2009-20-01-008
[14]
Wu XY, Yan H, Li LR. Numerical method for reliability analysis of phased-mission system using Markov chains. Communications in Statistics–Theory and Methods, 2012, 41(21): 3960-3973. DOI:10.1080/03610926.2012.697969
[15]
彭渝舒. 浅谈桥梁监测及其技术发展. 山东工业技术, 2014(23): 108.