当前位置:首页 > 船员管理 > 海员之家海员之家

电子海图上水平夹角网的绘制与使用

发布日期:2010/3/2 点击次数:4080

 

 

内容提要:为了减轻航海人员的绘图作业量,提高绘制水平夹角网的速度和精度,论文研究了在电子海图上编程绘制水平夹角网的实用问题,论述了绘制水平夹角网的相关数学模型,设计了绘制水平夹角网的流程,编制了实用模块。并通过示例,验证了模块的可行性。

关键词:电子海图 计算机绘图 水平夹角网

0引言

水平角定位是一种常用的高精度的陆标定位方法,通过在海图上预先绘制水平夹角网,可以实现快速准确定位。在定点抛锚、扫海、岛礁区航行等场合常常使用水平夹角网定位。

对航海人员来说,绘制水平夹角网,是一项相当繁琐的工作。现在电子海图已普遍装备到各种船舶,利用电子海图的数据查询、任意缩放和计算机的计算、绘图功能,在电子海图显示信息系统中,可以快速、准确地绘制出需要的水平夹角网,大大减轻航海人员的作业量,提高绘制精度。

1相关数学模型

水平夹角网是由两组共弦的圆弧组成,每组圆弧所共弦为两观测目标的连线,根据弦和不同观测角(圆周角)画出一组圆,圆的数量根据观测角的起止值和间隔决定。

在电子海图上绘水平夹角网,基本方法就是根据观测目标、定位区域的坐标,运用解析方法,计算出观测角起止值、每个位置圆的圆心和半径及圆弧的起止角度,然后调用绘图函数进行绘图。

1.1观测角起止值计算

对一个特定的定位区域,观测两个固定目标的水平夹角值是在一定范围内变化的,如图1AB为两个观测目标,D1D2D3D4为定位区域的顶点,α1与α2为区域相对观测目标外侧的两个顶点观测目标的水平夹角,α为过AB两点,且与区域内侧边相切的圆对应的观测角。

(1)观测角的最小值是α1与α2中的较小值,计算方法是:

①运用距离计算公式:

D=[(x2-x1)2+(y2-y1)2]1/2计算ΔAD4B和ΔAD3B的各边长度;

②运用余弦定理公式:

sinA=(b2+c2-a2)/2bc

根据三边长度,分别计算角α1与α2

③比较α1与α2,取较小值作为绘制水平夹角网的起始值。

当区域相对观测目标外侧为两个以上顶点时,可计算各顶点对应的夹角,取其最小值为绘制水平夹角网的起始值。

(2)α是绘制水平夹角网的终止值,计算方法是:

①计算AB间的距离:

DAB=[(xa-xb)2+(ya-yb)2]1/2

②建立以AB为共弦的位置线圆的圆心方程:

Y=kX+b

k=(xb-xa)/(ya-yb)

bo=(xa2-xb2+ya2-yb2)/2(ya-yb)

③建立过D1D2的直线方程Ax+By+C=0

A=y2-y1B=x2-x1

C=x2y1-x1y2

④设α角对应的位置圆圆心坐标为(xoyo),解方程组:

设:D=1/(A2+B2)

a=1+k2-D(A+kB)2

b=-2[xa+k(ya-bo)+D(A+kB)(Bbo+C)]

c=xa2+ya2-2boya+bo2-D(Bbo+C)2

圆心坐标为:

⑤计算对应圆半径R和观测角α

R=[(xa-xo)2+(ya-yo)2]1/2

α=acos[1-DAB2/(2R2)]

1.2位置圆的圆心和半径计算

每个位置圆是对观测目标特定观测角的位置线,其圆心和半径可根据目标坐标和观测角来确定。如图2所示,设目标AB为两观测目标,观测角为α,圆APB为对应的位置线。

设位置线的圆心为O,根据几何原理,O点必在弦线AB的垂直平分线OG上,且半

AOBOOG的夹角等于观测角α,即∠AOG=BOG=α。计算圆心和半径的方法为:

(1)计算弦AB的长度DAB和方向F

DAB=[(xa-xb)2+(ya-yb)2]1/2

F=a tan[(yb-ya)/(xb-xa)]

(2)计算位置圆半径R

R=(DAB/2)/sinα

(3)计算圆心O的坐标(xoyo)

xo=xa+R·sin(F-α)

yo=ya+R·cos(F-α)

1.3位置线圆弧起止角计算

水平角位置线网只需画出定位区域内的位置线部分,其他地方不必画出,否则,会使图面混乱,影响使用。为了只画出特定区域内的位置线部分,需要计算画每个位置线圆的起止角度。如图3中的EF方向。

(1)根据定位区域相邻两顶点坐标,建立过两点的直线方程:

y=kx+b

其中:k=(y2-y1)/(x2-x1)

b=(x1y2-x2y1)/(x1-x2)

(2)根据1.2计算的位置圆半径R和圆心O的坐标(xoyo),建立船位线圆的方程为:

(x-xo)2+(y-yo)2=R2

(3)解方程组:

得:

如果观测角α是在1.1计算的起止角范围内,上述解为两组,表示位置圆与直线有两个交点;保留在对应的边界线段内的点,可能一个是,可能两个是,也可能一个都不是。

重复上述过程,解出位置线圆与所有边界的交点。交点通常为两个,也有可能为四个。

(4)根据圆心O和各交点的坐标,利用公式:

Fi=atan[(yi-yo)/(xi-xo)]

计算各交点对应的圆心方位。

(5)将各交点方位按升序排位,F1F2即为位置线第一段圆弧的起、终点方位,F3F4为位置线第二段圆弧的起、终点方位(一般没有)

2绘制水平角网的编程实现

通过上述数模分析可以看出,绘制水平夹角网涉及到大量的计算,人工计算难以想象。但对计算机而言,上述计算是微不足道的,关键是给计算机安排合理的算法流程。

2.1绘制水平角网的基本流程

计算流程如图4和图5。具体计算过程是:

(1)输入相关数据,设定初始标志。

数据主要是定位目标的经纬度和定位区域各顶点的经纬度及水平角网的间隔。各经纬度可采用对话框输入,最好是结合电子海图显示信息系统,直接在电子海图上用鼠标点取。

初始标志用于区分第几组水平角网。

(2)判别是几组水平角网。

第一组将左标和中标坐标分别赋予目标AB的坐标;第二组则将中标和右标坐标分别赋予目标AB的坐标。

(3)调用绘制以AB为观测目标的水平角位置线流程。具体计算内容为:

根据AB坐标计算AB间的方位距离;

根据AB坐标和定位区域顶点坐标,计算最小观测值α0和最大观测值α1,作为循环计算的起、止依据;

设定α=α0+Δα作为循环计算初始值。

②根据α,计算对应的位置圆圆心坐标和半径大小。

③计算位置圆与定位区域各边界的交点坐标及相应的圆心方位。

④调用画弧函数,根据圆心、半径,起终点方位划出相应圆弧。

⑤α增加间隔Δα,判断是否超过最大值,是则结束计算,否则继续重复②~⑤。

(4)标志加1,判断标志是否大于1,是则结束,否则重复(2)(4),绘制另一组水平角位置网。

22绘制水平夹角网的实现

根据以上所设计的算法流程,作者利用VC++6.0进行了编程,并作为动态链接程序,挂接到相关电子海图显示与信息系统(ECDIS),通过菜单调用。图6是程序的运行界面和绘制结果。

程序运行非常方便,通过组合框选择需要的海图、显示比例和位置线间隔。海图选择可根据需要选择ECDIS中已有的任意一张海图,显示比例决定ECDIS的缩放程度,位置线间隔决定绘制位置线的疏密。上例选择了三亚附近的1087海图,显示比例为11;位置线间隔为5°。

通过单选控键和鼠标结合,选取定位目标和定位区域边界。当某按键被选,后面的鼠标单击时对应的海图位置即为其位置,并将对应经纬度显示在后面的编辑框内。上例的观测目标分别选取西瑁洲灯桩、东瑁洲埋石点和三亚角灯桩为左标、中标和右标。

当参数设置好,目标和区域选择完毕,只需单击绘制按键,不到一秒钟就可在选定区域内绘制出符合设定要求的水平角位置线网。

作者:何立居1 李启华2  来源:航海技术