基于AIS和GIS的海上风电场船舶监控系统软件设计
沈思曦;陈元林;安博文;卢学佳
【摘 要】海上船舶进入海上风电场海域后,连接海上风电站的海底电缆可能因过往
船只抛锚、钩锚而损坏.为此设计一种基于船舶自动识别系统(AIS)和地理信息系统
(GIS)的海上风电场船舶监控系统,将目标船舶显示在GIS地图上,对其进行实时监控.
描述系统实现中的若干关键技术,包括AIS编解码与自动发送短消息、警戒区判断
算法、GIS可视化、地理信息数据库、多客户端与消息发布订阅机制等;并对监测
软件进行压力测试,结果表明系统能够有效显示、处理船舶信息.
【期刊名称】《现代计算机(专业版)》
【年(卷),期】2018(000)020
【总页数】6页(P91-95,100)
【关键词】AIS;GIS;发布订阅;MapWinGIS;PostGIS
【作 者】沈思曦;陈元林;安博文;卢学佳
【作者单位】上海海事大学信息工程学院,上海 201306;上海海事大学信息工程学
院,上海 201306;上海海事大学信息工程学院,上海 201306;国网衡水供电公司,衡水
053000
【正文语种】中 文
0 引言
海上风电系统由陆上集控中心、海上升压站和海上风机组成。陆上集控中心与海上
升压站之间、海上升压站与各个风机之间分别用用220kv和35kv的海缆进行串
接。风电场工作人员需要对所有铺设海缆的海域进行船舶监控,保护海缆不受锚害。
文献[1]提出了一种单机版的海上船舶监控系统,其能够对海域内传播进行有效监
控。文献[2]在文献[1]的基础上提出了基于C/S结构的多客户端监控系统的想法,
但其只有想法没有具体的实施方案。文献[3]将文献[2]中的想法成功实现,且系统
能够稳定运行,但文献[1-3]的系统均只支持单个AIS设备进行数据采集,使得系
统稳定性得不到保障,且其告警系统不够完善,均只能系统报警而不能向目标船舶
发送告警信息。这些不足点在文献[4]中被提及,作者提出了一系列方案来完善系
统,但最终只有部分功能完成模拟测试,且系统整体设计没有完成。本系统完成了
文献[1-4]中的设计,并对其中部分功能进行补充和优化。
本系统采用的技术主要包括AIS解码编码技术、MapWinGIS地图开发技术、
PostGIS地理信息空间数据库管理技术、基于分布式数据库(MySQL)的数据发
布订阅技术、基于分布式数据库(MySQL)的配置信息管理技术和多线程技术。
1 需求分析
(1)支持多个AIS设备同时接入
单个AIS设备监测海域的范围有限,且稳定性较差。因此要求系统支持多个设备
同时接入和动态可配置。
(2)GIS电子海图形式的表示层
以电子海图的形式显示观测海域、警戒区和海上船舶,使用户更直观地了解海上船
舶的航行情况。
(3)多客户端设计
工程上需要在海上升压站、陆上集控中心等地点查看监控系统信息,所以系统需满
足多客户端同时在线访问。
(4)船舶告警功能
系统需要有自动告警功能(系统界面弹出告警框并产生警报),并向滞航船舶自动
发送告警信息和向目标船舶手动发送短消息的功能。
(5)历史信息查询功能
系统应包含船舶历史信息和历史航迹绘制的功能,方便用户对历史船舶进行数据查
询和事故追责。
本系统要求的系统指标如表1所示。
表1 技术指标?
2 系统设计
2.1 硬件框架
硬件设备主要包含AIS设备、服务器和客户端,其连接框架如图1所示。
图1 硬件框架
2.2 软件结构
本系统软件结构如图2所示,包含以下功能模块:AIS数据采集模块、AIS数据编
解码模块、AIS可视化模块、预警与报警模块、AIS数据发送模块、报表管理模块、
历史数据查询模块和用户管理模块。
3 关键技术分析
3.1 AIS信息采集/编解码模块
系统中的AIS设备包括A类设备、B类设备和基站。系统通过RS-232串口/RJ-
45网口接收AIS信息并进行解码。AIS消息的接收和解码流程如图3所示。
数据进入串口缓冲区后,服务器对缓冲区数据进行提取解析,解码信息通过安全队
列送至服务器处理模块进行处理;当有消息发送给目标船舶时,服务器处理模块将
短消息通过安全队列发送给数据编码线程进行编码,再通过串口将编码数据进行发
送。
图2 软件结构
图3 数据采集/编解码流程
数据采集模块会根据系统连接AIS设备的数量设置线程数,每个AIS设备设一个
独立线程,并通过相应的串口将数据发送至服务器,在服务器收发控制层中进行与
处理。
系统的信息处理主要包括AIS解码、AIS编码、基于UDP协议的数据发送。
(1)AIS解码
本系统严格按照ITU-1371[4]标准的规定进行AIS解码,对于包含多条AIVDM的
信息(如5号报文),系统将对其语句信号和连续消息标识进行识别,将同一组
的多条消息进行自动整合再进行解码。
(2)AIS编码
本系统对AIS设备进行二次开发,使得其可以接受上位机的短消息发送指令,具
备向海域船舶自动发送短消息功能。本文自主设计了一套AIS编码技术,用于短
消息指令编码和传输,其格式为:
$XNMSG,短信 ID,九位码,短信类型,语句内容*校验码
短消息ID:使用三位数字代表所发消息ID
短消息类型:如表2所示。
表2 短消息类型?
校验码:取$和*之间的字符串异或校验,为两位16进制数。
(3)基于UDP协议的数据收发
系统对客户端与服务器端之间数据传输的实时性要求很高,考虑到UDP协议的无
连接、高速率、占用资源少等一系列优点,系统采用UDP协议而不是TCP协议进
行数据发送,但是UDP存在丢包的问题,不能保证传输数据的正确性,为此,系
统在发送端的UDP数据尾部加上校验码进行传输数据校验。
3.2 多线程技术
系统中的线程主要分为服务器主线程、数据采集/处理线程、UDP数据发送线程和
UDP数据接收线程。各线程之间相互独立,互不影响。
服务器主线程主要负责控制用户界面的控件、加载INI配置文件和开设其它线程的
工作。
数据采集/处理线程的数量与串口数(AIS设备数)一致。系统会根据如表3所示
的INI配置文件,设置AIS设备的数目并自动分配串口数据处理线程,每个串口数
据处理线程分配两个线程安全队列,分别用于数据发送和数据接收。
表3 双机双客户端系统INI配置文件?
系统各线程间采用线程安全队列进行数据传输,如图4所示,在程序中设置一个
轮询,服务器端发送数据时,各个串口数据处理线程的数据发送安全队列将依次向
UDP数据发送线程发送数据,不断循环。避免使用线程锁时,线程数量过多导致
的数据传输效率低下和死锁的情况。服务器接受数据时,UDP数据接收线程将依
次向各个串口数据处理线程的数据接受安全队列发送消息,无需等待,提高了系统
的运行速度。
图4 多线程间数据传输流程
3.3 GIS可视化
(1)MapWinGIS
MapWinGIS是一个功能强大的开源GIS平台,是为小中型GIS应用开发的免费
开源的组件及桌面的集合。本系统使用MapWinGIS实现GIS可视化。GIS可视
化由如图5所示的四个图层绘制而成,分别为:海图图层、海缆图层、观测警戒
图层和AIS船舶图层。不同的图层全部设置在同一坐标系(WGS1984坐标系)
下,使得不同图层的各个位置在同一个坐标系下叠加并对应起来。
图5 系统海图图层
①海图图层
海图图层主要功能是为整个系统提供海缆所在海域的地理信息,并将相关海域以地
图的方式绘制出来。
传统地图文件往往只使用一份地图文件来表示整个地图,这样会导致若地图文件太
小则分辨率低;若地图文件过大系统运行速度降低。
本系统将多张不同文件格式、不同分辨率的文件叠加在一起,组成一份新的地图文
件,既解决了地图分辨率的问题,又提高了系统的运行速率。
海图图层是整个系统表示层的基础,海缆图层、观测警戒图层和AIS图层均绘制
在该图层上面。
②海缆图层
海缆图层是覆盖在海图图层上的第一张图层,在该图层中要显示海缆的起点、所经
过的坐标和终点,绘制出海缆的形状。
③观测警戒图层
观测警戒图层包括观测区和警区域。警戒区在观测区内部,其区域形状均为封闭的
不规则多边形。
绘制警戒区时,先确定警戒区所有顶点的经纬度坐标,将它们固定在绘制层上,再
将这些顶点依次连接起来。观测区的设置与警戒区相同,此处不再赘述。
④AIS船舶图层的绘制
AIS图层按照坐标信息将船舶显示到绘制层上,根据船舶的坐标和实际航向进行贴
图,将船舶的形状绘制在坐标上。该图层上的AIS船舶信息会根据数据库的刷新
进行实时更新。
用户浏览GIS表示层时,可以使用GIS地图的所有功能,包括对地图的放大、缩
小、平移,对一些关键位置的标记、测距,通过坐标定位等功能,还能单击目标船
船舶警戒区为闭合区域,将其抽象为具有N个顶点(Xi,Yi)(i=0…N-1)的多
边形。
设一船舶所在点为(Xp,Yp),向右作一条平行于X轴的射线,通过该射线与该
多边形的交点数量(记作C)判断(Xp,Yp)是否在闭合区域内。判断方法如下:
若(Xp,Yp)在多边形的边线或顶点上,则船舶在警戒区域;若不在,定义C%2
为交点数量C对2取余数,进而利用余数的奇偶性进行判断:
如图6所示,第一条射线与多边形交点为2,点在警戒区外;第二条射线与多边形
交点为4,点在警戒区外;第三条射线与多边形交点为3,点在警戒区内。
图6 船舶位置模拟图
3.4 多客户端设计
(1)PostGIS地理信息数据库
PostGIS是一种支持分布式网络访问的对象-关系型开源空间信息数据库。本系统
选用PostGIS地理信息数据库来存储电子海图地理数据信息和警戒区空间数据信
息。
由于系统采用多客户端设计,客户端只能通过网络交互的方法对服务器端进行数据
访问,无法对服务器端本地文件进行访问。普通地图文件以shape格式进行本地
存储,客户端无法对其进行有效读取。选用PostGIS地理信息数据库可以有效解
决这一问题,对电子海图地理数据信息进行存储,使得服务器和客户端都能够访问
当前的地理信息数据,进行信息读取。
系统设置两级权限,分别为普通员工和管理员。只有管理员拥有权限对电子海图数
据信息和警戒区位置、大小信息进行修改。
(2)基于分布式数据库(MySQL)的数据发布订阅机制
本系统所有的船舶数据经解码后将统一存放到在服务器端的MySQL数据库的数据
表中。服务器端数据处理流程如图7所示,功能包括船舶数据更新和船舶冗余数
据删除。
①船舶数据更新
为优化系统设计,减轻数据表的访问负担,数据库中采用数据表与日志表相结合的
方式来处理数据。数据库船舶数据周期性进行刷新,每5秒刷新一次,刷新完成
后,数据库将刷新时的时间信息存入日志表中,客户端不断访问日志表。日志表更
新后,客户端访问数据表,将船舶数据和PostGIS中的地理数据衔接客户端,在
电子海图上显示出各个船舶当前的位置并将其符号化。
②船舶冗余数据删除
船舶数据必须具有一定的时效性,在线程中,系统会启动定时器,定时遍历船舶信
息,将获取到的船舶信息的时间与服务器时间进行对比,删除数据库中不具有时效
性的船舶进行船舶历史航迹绘制。
系统客户端进行历史航迹绘制时,会从MySQL数据库中调用船舶历史信息,在电
子海图上进行模拟航迹显示[5-6]。
图7 数据流处理流程图
4 系统测试
系统通过测试软件进行数据源模拟实验。从现场采集到的AIS报文数据中提取样
本,将其作为数据源进行压力测试。设置模拟数据源船舶数量、警戒区同时报警船
舶数量样本均为系统指标的1.5倍,计算解析出的船舶数量与样本数量的比值,判
断其是否达到系统指标。
经过多次测试,实验结果如表4所示,各项数据均达到系统技术指标要求。
表4 实验结果?
5 结语
运用上述思路设计的海上风电场船舶监控系统软件,成功弥补了海上风电场周边海
域自动监控领域的行业空白。将模块化设计和多线程技术运用于该软件设计,不但
提高了系统的扩展性,而且提高了系统的执行效率。该软件已成功应用于江苏龙源
蒋家沙海上风电项目,能够很好地满足监控要求。
参考文献:
【相关文献】
[1]刘信文.基于电子海图的分布式AIS船舶实时动态监控系统[D].大连海事大学,2012.
[2]魏武财.基于AIS的船舶实时监控系统的研究与实现[D].厦门大学,2008.
[3]李亮.基于GPS/AIS/VHF的船舶实时动态监控系统[D].武汉理工大学,2007.
[4]刘瑜.基于AIS的船舶动态监控及其应用[D].大连海事大学,2008.
[5]ITU-R M.1371-5,在VHF水上移动频段内使用时分多址的自动识别系统的技术特性,2014-2.
[6]莫红飞,张勇.AIS数据解码分析.计算机光盘软件与应用,2012(6):60-61.
[7]徐铁,蔡奉君,胡勤友,杨春.基于卡尔曼滤波算法船舶AIS轨迹估计研究[J].现代电子技
术,2014,37(05):97-100+104.
[8]魏照坤.基于AIS的船舶轨迹聚类与应用[D].大连海事大学,2015.
[9]WANG Xiao-ye,ZHANG tion of Multipath Signal Loss for AIS Signals
Transmitted on the Sea Surface[J].Ocean Engineering,2017.
[10]王芹.AIS船舶网络监测系统应用软件设计与实现[D].电子科技大学,2010.
[11]林沧.船舶自动化系统网络监测数据获取子系统的设计与实现[D].哈尔滨工业大学,2014.
[12]童笑.基于AIS的电子海图导航系统设计与实现[D].武汉理工大学,2012.
本文发布于:2023-11-25 11:07:07,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/zhishi/a/1700881628234929.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:基于AIS和GIS的海上风电场船舶监控系统软件设计.doc
本文 PDF 下载地址:基于AIS和GIS的海上风电场船舶监控系统软件设计.pdf
留言与评论(共有 0 条评论) |