APP下载

基于Android的桥梁挠度监测及预测系统①

2019-01-18张丹丹赵宏伟宋云峰

计算机系统应用 2019年1期
关键词:挠度图标服务器

张丹丹, 赵宏伟, 宋云峰

1(长安大学 电子与控制工程学院, 西安 710064)

2(渭南市交通工程质量监督站, 渭南 714000)

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

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

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

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

在求取待测点挠度变化值时, 首先在桥梁未加载前对待测点进行测量, 得到激光光斑在标靶上的初始坐标(x0,y0), 然后在桥梁加载之后测得激光光斑的位置坐标(x1,y1), 最后由此得出待测点的桥梁挠度值△x=x1-x0, △y=y1-y0. 经过检测平台验证, 系统位移变化量的精准度检测数据如表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个子模块: 桥梁注册模块、桥梁搜索模块、地图环境搭建模块、桥梁图标管理模块和桥梁挠度显示模块. 各个模块共同实现注册、显示百度地图、标志注册、桥梁搜索、桥梁挠度曲线显示和桥梁图标变更的功能[7-9].

桥梁注册模块主要实现客户只有在第一次打开应用时需要注册的功能. 使用Android中的存储类Shared Preferences, 对是否是第一次打开应用的标志位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组挠度数据的操作, 对取回来的全部数据进行具体桥梁的全部挠度数据的遍历, 统计其对应的损伤级别的次数. 挠度损伤级别从一级到五级共分为五级, 对应挠度变化范围从初始挠度f0≤l/4800 到最大挠度fm≥l/600, 其中l是桥梁的单跨长度.

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

其中,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步转移概率矩阵的计算如下:

但是在实际的应用中, 数据变化灵敏, 靠一次求出的一步转移概率矩阵来计算之后的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, 计算如下所示:

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

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

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]. 桥梁挠度变化监测平台, 实时性高、运营成本低且操作方便. 可建立桥梁运营实时监测, 预测其短期变化, 对于用户监测桥梁并根据变化制定合理且有效性的养护措施、节约养护成本有很大的帮助, 达到了延长桥梁使用寿命和确保桥梁安全性的目的.

猜你喜欢

挠度图标服务器
轨道交通整体承载式铝合金车辆车体挠度的预制方法及试验研究
面板堆石坝面板挠度实测性态分析与研究
基于三维激光扫描大跨径桥梁挠度变形监测方法的探究
基于LabVIEW的装配车体挠度无线快速测量系统
Android手机上那些好看的第三方图标包
2018年全球服务器市场将保持温和增长
图标
中国风图标设计
有意思的厕所图标
用独立服务器的站长注意了