基于电子海图的计划航线自动审批研究

计划航线是舰船航行的依据,对航行安全具有重要影响.航海自动化技术的不断发展,电子海图在航海中的应用,使计划航线的自动审批成为可能.实现计划航线的自动审批,可以大大减轻审批人员的工作量,降低对审批人员的专业水平要求,提高审批的准确性.本文在电子海图的基础上,对计划航线的自动审批进行研究.

1原理与流程

1.1基本原理

舰船在海上航行的可能区域,可表示为一个以计划航线为中轴向左右外扩一定距离的带形区域,如图1所示.当舰船按航路点WP1,WP2和WP3所组成的计划航线航行时,实际上将可能航行在由P1,P2,P3,P4,P5和P6所组成的多边形区域内.外扩区域的大小应根据舰船尺寸、航速、旋回、惯性等特性,以及定位手段、海区定位条件、风流资料准确性等确定.

计划航线自动审批的基本原理就是检查航行带内的水深是否大于安全水深,是否存在碍航信息.碍航信息主要包括:电子海图图库中岛岸、礁石、浅滩、沉船、渔网渔栅、疑存雷区、未爆炸弹等海图信息;台风、寒潮等恶劣天气影响范围的气象信息;潜艇训练区、敌方布设的雷区,以及敌方的岸导、岸炮打击区和观通站探测区等军事信息.如果在航行带内所有点水深大于安全水深,不存在一个碍航信息,那么计划航线是可行的;否则,就存在产生危险的可能,也就是说所报批的计划航线是不可行的.

1.2基本流程

计划航线自动审批流程如图2所示.由舰船参数、计划航线、海图等信息,计算出舰船航行带;由海图、气象、军事等信息,得出碍航区域,首先判断2区域是否相交,如相交则计划航线不可行,如不相交,继续判断航线附近小于安全水深的浅水区是否与航行带相交,如不相交则计划可行,否则不可行.

2相关模型

2.1航行带宽度

由审批原理和过程可以看到,航行带是航线自动审批的重要因素.航行带的宽度是指从计划航线向外展宽的大小,根据定位误差和推算误差的横向误差来确定[1].

定位误差由航行采用的定位方法决定,每一种定位方法都有一个与之对应的均方差,精度越高,均方差越小,则航行带的宽度越小.

推算误差的横向误差主要由航向误差造成.引起航向误差的因素较多,如罗经误差、操舵误差、风流误差等.误差大小与推算时间成正比.

确定航行带宽度时,对各种误差的影响,应根据误差传播的特点,计算总的均方差,取3倍均方差作为航行带宽度是比较安全可靠的,此时船舶越过航行带的可能性仅为3‰.根据实用情况,通常用全球定位系统(globalpositionsystem,GPS)导航时,航行带宽度3链即可;用陆标定位,磁罗经导航,航行带宽度至少5链.具体实践还应考虑当时的海况、航海人员的技术水平等因素.

对于特殊的航段,如航门水道,航行时基本是直接看周边物标的相对位置操纵,航行带宽度只要考虑航道大于几倍船宽,具体量值应根据航道的水流情况、导航条件而定.

2.2多曲面拟合内插法数字高程模型

电子海图中显示的所有信息都是从纸质海图中数字化得来的,而纸质海图中仅有一些离散的水深点数据;计划航线自动审批必须明确电子海图中任意比例尺下任意点的水深数据:因此,应将离散的水深点数据,借助某种算法来计算任意点的水深.

多曲面拟合内插法数字高程模型(digitalelevationmodel,DEM)可用来对离散点的高程数据进行多曲面拟合,得出任意点的高程数据[2].把水深作为负高程,即可用DEM对水深曲面拟合,得出任意点的水深数据.DEM的基本原理是:任何一个圆滑的数学表面总是可以用一系列有规则的数学表面的总和以任意的精度进行逼近,也就是一个数学表面上某点(X,Y)处高程Z的表达式为式中:

q(X,Y,Xj,Yj)为核函数,即拟合所用的曲面函数,点(Xj,Yj)为核函数的中心点,aj为待定系数.

核函数可以任意选取,如二次曲面、三次曲面等.为了计算方便,同时又能保证在计算数据点处坡度的连续性,可采用对称圆锥面二次曲面函数,如图3所示.即核函数为:


若有m个水深点(Xi,Yi,Zi)(i=1,2,…,m),可任选其中n(m≥n)个水深点为核函数的中心点Pj(Xj,Yj),令qij=q(Xi,Yi,Xj,Yj).根据式(1),各水深点应满足:Zi=∑nj=1ajqij,式中i=1,2,…,m.由此可列出误差方程:


式中:vi(i=1,2,…,m)为各水深点的拟合误差.即

V=QA-Z.              (2)

令各水深点的拟合误差vi=0(i=1,2,…,m),即:V=0.

故式(2)可化为:QA-Z=0,即:

                         QA=Z.                    (3)

由于Q为m×n阶矩阵,故Q不存在逆矩阵,因此可先将式(3)化为:

QTQA=QTZ,          (4)

式中:QT为矩阵Q的转置.在式(4)中,QTQ为n×n阶方阵,其逆矩阵为(QTQ)-1,故式(4)可化为:

(QTQ)-1QTQA=(QTQ)-1QTZ.             (5)


因(QTQ)-1QTQ=In×n,A=(QTQ)-1QTZ.        


由式(1)可得,任意一个水深点Pk(Xk,Yk)位置上的水深值为:Zk=∑nj=1ajqkj,qkj=q(Xk,Yk,Xj,Yj).即:

Zk=QTkA,(7)

式中:QTk=[qk1,qk2,…,qkn].

将式(6)代入式(7),可得:Zk=QTk(QTQ)-1QTZ.        (8)

若将全部水深点取为核函数的中心点,即m=

n×n阶方阵,其逆矩阵分别为Q-1和(QT)-1.由矩阵运算法则可将式(8)化为:

Zk=QTkQ-1(QT)-1Z.(9)(QT)-1QT=In×n,故式(9)

可化为:Zk=QTkQ-1Z,展开得


即为任意水深点Pk(Xk,Yk)位置上的水深值.

在计算任意地理坐标位置水深点数据时,应选取计算点附近的已知水深点数据,而且要求这些水深点数据相对均匀地分布在计算点的各个方向,如果单一地取某一个方向上的水深点数据,DEM拟合出来的海底曲面方程将与实际的高程情况存在一定的偏差,可能导致计算出的水深值误差较大.

在具体的DEM拟合算法中,值取得越大,即矢量海图图库中已知水深点数据取得越多,所拟合出来的海底曲面方程就越精确,但是算法中的矩阵运算量也就越大,计算机的运算时间也就越长.为了同时满足精度要求和计算速度,通常可取20-30个已知水深点数据进行拟合.

图4表示的是某海区图载水深点(共20个点)的水深值及分布情况,使用DEM对该海区的海底曲面进行拟合,得到的海底曲面形状见图5所示,其相应的等深图见图6所示.


2.3交点计数检测法

检测一个碍航点是否在航行带内,需用交点计数检测法[3].具体算法是:先从检测点水平向右作一条射线至无穷远,如检测点坐标为(x0,y0),则射线方程可表示为:;

后求该射线与多边形各边的交点个数,若交点个数为奇数,则点在多边形内,若交点个数为偶数,则点在多边形外,如图7(a)所示,射线a和c分别与多边形有2个和4个交点,其交点个数为偶数,故点A和点C在多边形外;而射线b和d分别与多边形有3个和1个交点,其交点个数为奇数,故点B和点D在多边形内.

当射线穿过多边形顶点时,必须特殊对待,如图7(b)所示,射线f过多边形顶点,即与边6和边7各有一个交点,若将交点个数计为2,则会错误地认为点F在多边形外.但是,若规定射线过多边形顶点时,将交点个数计为1,则又会错误地认为点E在多边形内.正确的方法是,若共享顶点的2边在射线的同一侧,则交点个数计为2,否则计为1.具体可判断2条边的另1个端点的y值与y0的大小关系,如果2个y值都大于或小于y0,则2条边在射线的同一侧,反之则2条边不在射线的同一侧.在图7(b)中,射线g在边4和边5的同一侧,交点个数计为2,同时又在边2和边3的2侧,交点个数计为1,故其交点个数共有3个,为奇数,从而判断点G在多边

3计划航线自动审批的实现

3.1航行带内危险信息的判断

航行带内危险信息的判断,可以分为点状危险信息判断和面状碍航区域判断.

(1)点状危险信息检测判断.点状危险信息主要指礁石、沉船、未爆炸弹等.检测判断目的是检查这些危险物是否在航行带内,原理就是交点计数检测法.Windows系统提供了做该项工作的API函数PtInRegion(),可以直接调用.具体判断流程如图8所示.根据电子海图提供的航行海区点状为危险信息,和由航行计划、定位方法、海区条件确定的航行带,对每一个点状危险信息,逐一调用PtInRegion()函数,判断是否在航行带内,如有1个在航行带内,则计划不可行

.

(2)碍航区的检测判断.碍航区是指岛岸、浅形内.滩、渔网渔栅区、雷区,台风、寒潮等恶劣天气影响区域,潜艇训练区,敌方岸导、岸炮打击区和观通站探测区等.碍航区的检测判断,就是看这些区域是否与航行带相交,如有一个相交,则计划不可行.检查判断2个区域是否相交,可调用Windows的API函数CombineRgn().碍航区检测判断的流程见图9所示.根据碍航区数量,逐一调用CombineRgn()函数,判断是否与航行带产生相交的新区


3.2航行带内水深检测判断

航行带是一个连续的区域,不能对其中的每一个点都求出水深值,再判断其是否满足舰船吃水要求:一是因为从几何角度考虑在舰船安全航线带区域中有无数多个点;二是因为海底曲面比较复杂,即便取的点密度再大,也有可能恰恰把不满足舰船吃水要求的水深点遗漏掉.因此,可采用逐点检查,局部拟合的方法检查判断航行带是否存在不满足安全水深的点.

所谓逐点检查,就是对航行带内的离散水深点,逐一检查,如果水深小于安全水深,这计划不可行;如果水深大于安全水深,由该点向四周选取邻近的20个离散水深点,这些点有可能在航行带内,也有可能在航行带外,如果这些点都满足安全水深,则说明该点附近是安全的,如果这些点中有不满足舰船安全与吃水要求的,则使用数字高程模型拟合得出对应区域的海底曲面方程,即局部拟合,将海底曲面方程中ZK定为舰船吃水要求的最小值,则曲面方程变成以XK和YK为变量的曲线方程.将该曲线方程与航行带的边界的直线方程联立求解,若有解,则说明航行带内存在不满足舰船吃水要求的水深点,若无解,则浅水区在航行带外.检查判断的流程如图10所示.

4结论

根据以上思路,在Windows平台用VC6.0语言编程实现了计划航线自动审批的功能.自动审批计划航线,不仅大大减轻值班人员的劳动,降低审批人员的专业要求,而且审批的速度快,考虑周全,结论可靠