内河航运是我国经济的重要组成部分,随着我国内河物流运输的迅速发展,内河航运事故时有发生,其中,船舶搁浅和碰撞事故是发生频次最多且产生经济损失最大的一种事故。内河航运船舶为了提高货运量,超载运输的现象较为常见,此时船舶的吃水深度较大,如果吃水深度超过航道的许用深度,则会出现船舶搁浅等事故,影响航道的交通安全。因此,建立一套快速、动态的船舶吃水检测系统,对存在“超吃水”现象的船舶记录和预警,有助于保障船舶的航运安全。
基于超声波阵列探测器,设计一种内河航道的船舶吃水检测系统,详细介绍系统的工作原理,重点针对船舶吃水数据的深度挖掘技术进行研究。
1 船体吃水度监测系统的设计 1.1 总体框架本文在设计内河航道的船体吃水深度监测系统时,将系统划分为数据采集模块、工控计算机模块、采样控制模块和嵌入式计算机模块,基本架构如图1所示。
1)工控计算机模块
工控计算机模块包括船舶自动识别系统 (AIS)、工控机、交换机等硬件,工控计算机通过RS232接口与AIS连接,通过AIS系统采集船舶的位置信息,并将船舶的吃水深度数据与船舶的位置数据整合,便于船舶吃水数据的整理。吃水深度监测系统的工控机芯片为SIMB-21芯片,满足吃水深度监测系统的控制需求,图2为船体吃水深度监测系统的工控机连接电路。
吃水深度监测系统的工控计算机具备以下功能:
①参数设置功能
工控计算机负责监测系统的关键参数设置,包括传感器工作模式、信号校正系数[1]等。
②数据库管理功能
工控计算机采用MySQL数据库技术,负责对船舶吃水监测数据的结构存储、检索、查询等,数据库建立船舶在特定航道的索引表单,用户可通过表单快速定位特定船的吃水数据。
③数据交换功能
工控计算机与信号采样控制模块、传感器等进行数据交换,数据交换的介质包括总线、无线局域网络等。
④显示与报警功能
工控计算机可实时显示被监测船舶的吃水深度数据,以2D和3D图形直观向用户展示。此外,用户可以根据自己的需求将船舶吃水深度数据转换为特征曲线,方便其他用户查看。当被监测船舶的吃水深度超过预定值时,工控计算机发出报警指令,系统的声光报警单元启动。
2)采样控制模块
采样控制模块一方面接收来自工控计算机模块的指令,另一方面向系统的数据采集模块发送控制信号,保证多个传感器接口板的信息同步性,使水下超声传感器有序开展测量工作。
3)数据采集模块
数据采集模块是船舶吃水监测系统的关键,通过水下超声波传感器阵列获取船舶不同角度的吃水数据,然后将采集的数据发送至采样控制模块和工控计算机中。
本文采用的传感器阵列为4×5超声波测距传感器,接口板通过RS485总线连接,图3为水下船体吃水监测超声波传感器阵列示意图。
超声波传感器的声波频率高于20 kHz,在船体吃水深度监测时向被测船舶发射超声波,超声波在水下的传输速度
$ c = 1449.2 + 4.6T + \frac{{(1.34 - 0.01T)}}{{(S - 35)}} + 0.06D \text{。} $ |
式中:T为水温,S为含盐度,D为航道宽度。
假定F1为声源,F2和F3为被测船舶和航道反射声源,声源的位置坐标为
$ p = \frac{1}{{{R_1}}}{e^{ - wt}} \text{。} $ |
式中:
超声波的波动方程和辐射方程为:
$ \begin{array}{*{20}{c}} {{\nabla ^2}p + {k^2}p = 0} ,\\ {{\nabla ^2}p - \dfrac{1}{{{c^2}}}\dfrac{{{\partial ^2}p}}{{\partial {t^2}}} = - 4{\text{π}} \delta (t){e^{jwt}}} \text{。} \end{array} $ |
式中:
测距超声波的传输路径为:
$ {D_i} = \sqrt {{{\left( {{x_t} - x} \right)}^2} + {{\left( {{y_i} - y} \right)}^2} + {{\left( {{z_i} - z} \right)}^2}} \text{。} $ |
式中,
$ {t_i} = \frac{{{D_i}}}{c} 。$ |
4)嵌入式计算机模块
嵌入式计算机模块的功能是接收来自超声波传感器的数据,并进行数据的过滤和初步分析,然后将数据通过TCP协议传输至系统的其他模块。
1.2 船舶吃水监测系统的信号采集电路设计使用FPGA芯片[4]作为船舶吃水深度数据的处理核心,可为监测系统提供以下功能:
1)数据滤波功能
FPGA芯片外接中值滤波电路,可对超声波传感器采集的吃水深度数据进行中值滤波,将数据中的噪声、干扰信号剔除,从而提高船体吃水深度数据的采集精度。
2)ARM通信功能
FPGA芯片具备ARM通信功能,将系统采集的船体吃水数据发送至系统的工控机[3]。
3)信号转换功能。
本文设计的FPGA芯片电路如图4所示。
可知FPGA在数据处理时采用中值滤波方法,建立中值滤波器模型为:
$ {f_i} = {med} \left( {{y_{i - N}},{y_{i - (N - 1)}}, \cdots ,{y_{i + N - 1}},{y_{i + N}}} \right) \text{,} $ |
其中,
$ {W_N} = \{ - N,, \cdots ,0, \cdots ,N - 1,N\} \text{,} $ |
中值滤波器的输出为:
$ {\hat \sigma _{out}} = \frac{1}{{4L{f^2}(0)}},L > 1。$ |
式中,
吃水深度监测系统在工作时会采集大量的船舶吃水数据,如何提高对海量吃水深度数据的处理效率,从海量数据中提取有效信息是一项重点研究内容。
本文采用一种最佳阈值理论进行船体吃水深度数据的深度挖掘,过程如下:
1)监测系统采集数据的初始化
将系统采集的吃水深度信息进行离散化,得到船舶吃水深度的点云数据,假定吃水深度范围为
$ g = {{\rm{int}}} \left( {\frac{{{h_{\max }} - {h_{\min }}}}{{dh}}} \right) \text{。} $ |
2)获取船舶吃水深度离散数据的统计直方图
统计直方图如图5所示。
3)设定初始阈值
$ {g_0} = \frac{{{g_{\max }} + {h_{\min }}}}{2} \text{。} $ |
4)按照点云数据与阈值的对比将数据划分为高于阈值的数据和低于阈值的数据,并分别求2组数据的期望值。
最后,得到最佳阈值,退出计算。
基于最佳阈值的船舶吃水数据挖掘流程如图6所示。
通过对海量吃水深度数据的分析和挖掘,建立一种基于最小二乘法的最大吃水深度预测方法,通过分析船舶一段时间内的吃水深度数据,进行最大吃水深度的预测。
首先建立预测模型为:
$ \hat g(x) = ax + b \text{,} $ |
计算预测模型的残差为:
$ Q = \sum {{{\left( {{g_i} - a{x_i} - b} \right)}^2}} \text{,} $ |
使用最小二乘法计算残差的平方和,如下:
$ \begin{gathered} \left( {\sum {x_i^2} } \right)a + \left( {\sum {{x_i}} } \right)b - \sum {{g_i}} {x_i} = 0 ,\hfill \\ \left( {\sum {{x_i}} } \right)a + nb - \sum {{g_i}} = 0 。\hfill \\ \end{gathered} $ |
最后求解方案,可得到参数a和b,即为预测的船舶最大吃水数据。
图7为船舶吃水深度监测系统在一段时间内的船体吃水深度预测3D图。
船舶吃水深度数据对于内河航道内船舶的航行安全有重要的参考意义,本文设计一种基于超声波阵列传感器的船体吃水深度监测系统,重点对吃水深度数据的挖掘、吃水深度的预测等进行研究,采用了最佳阈值理论和最小二乘法等先进理论。
[1] |
陈宁, 秦建敏, 李国宏, 等. "最小二乘法变点冰水情数据处理算法"的研究与应用[J]. 数学的实践与认识, 2012, 42(1): 108-114. |
[2] |
刘志青, 李鹏程, 郭海涛, 等. 融合强阈值三角网与总体最小二乘曲面拟合滤波[J]. 红外与激光工程, 2016, 45(4): 135-142. |
[3] |
车金锐, 梁刚, 陈敏茹. 基于小波测量预处理的最小二乘估计[J]. 数学的实践与认识, 2006(4): 98-101. |
[4] |
张剑清. 基于特征的最小二乘匹配理论精度[J]. 武汉测绘科技大学学报, 1988(4): 82-90. |