2. 海南科技职业大学 海南自由贸易港国际航运发展与物权数字化重点实验室,海南 海口 571126
2. Key Laboratory of Philosophy and Social Science in Hainan Province of Hainan Vocational University of Science and Technology, Haikou 571126, China
船舶资源的调度是实现船舶运输资源优化配置的重要形式,资源调度的效率也直接决定了物流航运公司的经济效率。船舶资源调度是一个多因素寻优问题,需要综合船舶的航行速度、航线规划、船舶货物能力、货运成本等因素,特别是近年来能源价格居高不下、海上航运业竞争日益激烈,更需要提升航运企业的船舶资源调度水平。
GIS地理信息系统目前在海上船舶管理方面应用非常成功,借助GIS系统的软硬件设备,可以方便获取航运船舶位置、航速、航线等关键信息。本文针对的船舶资源调度场景是多货物、多港口、多航线和多船舶的综合场景,充分结合GIS地理信息系统,基于Visual Studio 2010开发船舶航行应急资源调度系统。
1 GIS地理信息系统GIS地理信息系统由以太网、硬件系统、计算机软件系统、服务器、地图模型、船舶终端等构成,原理图如图1所示。
![]() |
图 1 GIS地理信息系统原理图 Fig. 1 GIS schematic diagram of GIS GIS |
GIS地理信息系统的关键功能包括船舶显示、气象监测、船舶监控等。
1)船舶显示功能
GIS系统为了能够对目标海域的船舶进行实时监控,采集的船舶数据通过以太网的传输和同步后进入系统的数据库中,用户通过系统界面可以浏览目标船舶在海域的准确位置。将船舶不同位置、不同时间的数据连接起来,就构成了一段时间内船舶的航行轨迹。船舶显示功能是GIS系统的最基本功能,用户可以根据自己的需求进行数据的调用,获取船舶的航向、航速等实时动态。
GIS系统的数据调用格式为CM矢量海图数据[1],关键环节包括电子海图的综合显示封装和onap电子海图开发等,GIS系统的电子海图数据调用方式如图2所示。
![]() |
图 2 GIS系统的电子海图数据调用方式 Fig. 2 The method of electronic chart data calling in GIS system |
2)气象监测功能
GIS地理信息系统为船舶用户提供气象监测功能,可以每天定时的进行气象动态的更新,船舶终端和地面监测站可以通过访问地理信息系统的电子海图界面,获取特定海域的气象状态,制定更加合理的航行线路,提高航运的安全性。此外,基于地理信息系统的数据库,用户可以获取指定海域不同时间的气象状态信息,并进行短时间内的气象预测。该功能对于船舶航运公司制定货运计划,避开恶劣天气有重要的作用。
3)船舶监控功能
配合系统的船舶显示功能,GIS地理信息系统为用户提供了船舶搜索和监控工具,能够方便地进行远洋船舶的航行监控。地理信息系统的船舶监控功能不仅仅局限于船舶位置的监控,而是一种深层次的船舶航行状态、设备运行质量的全方位监控。
用户在使用GIS系统的船舶监控功能时,以某一点为中心进行圆形或矩形区域的船舶检索,目标船舶锁定以后,可以定时对船舶的航行速度、货运状态、动力系统等关键信息进行实时跟踪。
2 基于GIS的船舶航行多阶段应急资源调度系统开发 2.1 船舶航行多阶段应急资源调度系统GIS服务器设计本文结合GIS地理信息系统,进行船舶航行多阶段应急资源调度系统的开发,调度系统的核心是GIS服务器。通常,GIS服务器部署在Web Service服务器上,服务器接收用户的指令,为用户提供动态监视、地点和区域查询、路径和地图生成等服务。
GIS服务器的框架图如图3所示。
![]() |
图 3 GIS服务器的框架图 Fig. 3 The framework diagram of the GIS server |
显示模块是资源调度系统与用户的信息交互媒介,本文使用GeoServer开源地图引擎配合OpenLayers脚本程序进行显示模块的开发,用户可实现地图数据分布、特征数据查询、插入等操作。
OpenLayers脚本作为一个开源的JavaScript库,具有地图快速显示功能,通过API进行地图资源的访问,与服务器解耦。
OpenLayers本质上是一个地图容器,它的工作原理如图3所示。
![]() |
图 4 OpenLayers脚本工作原理图 Fig. 4 OpenLayers working diagram of the script |
OpenLayers脚本能够实现图层layer的自定义[2]和叠加显示,基于OpenLayers脚本,船舶航行应急资源调度系统的显示模块能够完成下述功能:
1)电子海图的基本显示和操作功能
比如海图的放大缩小、收藏、标记等。
2)船舶的实时位置显示功能
基于OpenLayers脚本的显示模块不仅可以实时监测船舶用户的实时位置信息,还可以通过图层变换使地图随着船舶位置更新进行位置变换。
3)航迹显示功能
显示模块可以将船舶的历史轨迹显示在电子海图上,用户能够调用6个月以内的船舶航迹数据。
4)海图自定义功能
用户可以根据需求定义电子海图的比例尺、布局等显示单元,并能够在电子海图上进行位置和目标船舶编码的搜索功能。
5)路径寻优功能
显示模块可以根据海域内船舶航行数据和气象条件进行路径寻优,用户只需要输入船舶的起始点与终点,显示模块可以为用户提供最优的路径。
6)交通流量计算
显示模块可以计算当前航线的交通流量,并计算海域内船舶数量的概率值,如下式:
P(X)=k(λt)ke−λtk!,(k=0,1,⋯)。 |
式中:
可知,航线上有小于x艘船的概率为:
P(X<x)=x∑k=0(λt)ke−λtk!, |
航线上有大于x且小于y艘船概率为:
P(x<X<y)=y∑k=xk(λt)ke−λtk!,P(X=0)=e−λt,others。 |
7)船舶航行速度分布建模
OpenLayers脚本通过采集大量的系统数据,将船舶航行速度拟合为连续型随机变量,并用正态分布的数学模型表示。系统的船舶航行速度概率密度函数和分布函数如下:
f(x)=1√√2πσe(x−u)22π2,F(x)=∫∞−∞f(x)dx=1√√2πσ∫∞−∞e(x−u)22π2。 |
![]() |
图 5 船舶航行速度正态分布示意图 Fig. 5 Diagram of normal distribution of ship speed |
用户信息管理模块是调度系统的重要组成,功能包括用户信息及任务管理等,用户信息管理模块采用MySQL数据库技术,模块可实现的功能包括:
1)建立用户的数据库模型,将调度系统的用户权限数据、登录信息、船舶监测任务信息、电子海图、视频和图文信息、船舶资源调度任务信息等集成到数据库模型中。
2)结合MySQL数据库[3]技术建立调度系统的资源表格管理信息,实现快速的数据查询、增删。
3)用户信息管理模块提供资源调度系统的分类查询功能,并保存查询结果,以备后续的数据分析和调用。
4)当用户需要新的数据需求时,用户信息管理模块可以提供多种数据项,比如编码、标识、IP地址、资源调度序列等。
用户信息管理模块的原理图如图6所示。
![]() |
图 6 用户信息管理模块的原理图 Fig. 6 Schematic diagram of user information management module |
在船舶应急资源调度系统的软件开发过程中,本文采用的开发环境为Visual Studio 2010,该开发环境具有集成性、并行性等众多优点,能够实现多项目、多用户系统的开发。
使用的程序开发语言为Visual Basic6.0语言,这种语言具有模块化、面向对象等特点,同步能够满足程序开发和界面开发,通过建立ActiveX控件可以建立内容丰富的用户界面。
Visual Basic语言的特点包括:
1)可视化编程
Visual Basic 6.0将应用程序和数据封装起来,开发人员在进行设计时能够实现程序的可视化操作,从而提高了程序开发的效率。
2)事件驱动
Visual Basic程序由一个主程序和若干个子程序构成,针对某个特定的事件进行程序的编制[4]。
本文基于Visual Studio 2010开发的船舶航行应急资源调度系统界面如图7所示。
![]() |
图 7 船舶航行应急资源调度系统界面 Fig. 7 Interface of marine navigation emergency resource scheduling system |
[1] |
郑红星, 朱徐涛. 双向航道集装箱港口船舶调度优化算法[J]. 计算机应用, 2021, 41(10): 3049-3055. ZHENG Hong-xing, ZHU Xu-tao. Ship scheduling optimization algorithm for bidirectional channel container port[J]. Journal of Computer Applications, 2021, 41(10): 3049-3055. |
[2] |
谭哲一, 王正培. 面向复杂航道的引航员与船舶集成调度优化[J]. 系统工程理论与实践, 2021, 41(2): 332-344. TAN Zhe-yi, WANG Zheng-pei. Pilot and ship integrated scheduling optimization for complex waterways [J]. Systems Engineering Theory & Practice, 201, 41(2): 332-344. |
[3] |
李晓玲. 基于动态规划算法的散货港口船舶调度优化[J]. 计算机仿真, 2020, 37(11): 393-397. LI Xiao-ling. Ship scheduling optimization of bulk cargo port based on dynamic programming algorithm[J]. Computer Simulation, 2020, 37(11): 393-397. |
[4] |
杨立乾. 基于轴辐式网络的集装箱支线运输多船型船舶调度模型[J]. 中国管理科学, 2015, 23(S1): 860-864. YANG Li-qian. Multi-ship scheduling model for container feeder transport based on hub-and-spoke network[J]. Chinese Journal of Management Science, 2015, 23(S1): 860-864. |