(武汉船舶职业技术学院 武汉430050)
罗经是船舶上的重要航行仪器,罗经误差的大小直接关系到船舶航行的经济性和航行的安全性,只有快速地计算出罗经的误差并进行及时地校正,才能确保船舶在计划航线上安全地航行.船舶在沿岸或近岸航行时,可以利用专设的叠标或给定的航行物标来测定罗经差,但在开阔的海面上时,一般则只有利用天体来测定罗经差了.而传统的利用观测低高度太阳方位求罗经差通常是通过六分仪观测太阳方位,然后根据已知数据查航海天文历,再将所得数据代入公式进行计算,该方法费时费力,而且所得罗经差值精度也不高[1].本文通过分析航海天文历的数据规律,建立数据库,然后利用Visual Basic语言,编写计算罗经差的计算软件,避免查表和计算的繁琐.
观测低高度太阳方位求罗经差ΔC可以利用叠标的真方位TB与其罗方位CB之差求得,即:ΔC=TB-CB.叠标的真方位TB可以从海图上量取,当叠标“串视”时利用罗经可测得叠标的罗方位CB.
由于观测时的真实船位未知,所以无法求出天体的真方位,在海上是以推算船位(φc,λc)为基准求得的天体的计算方位Ac来代替天体的真方位TB[2-3]来进行计算求罗经差的.
1)选择好观测太阳低高度的好时机,太阳低高度应小于30°,最好小于15°,准备好方位圈,秒表等器材.
2)连续测量3次太阳的高度,记下此时的低高度太阳的罗方位,取平均值作为对应于平均时间的罗方位CB,记下观测时的平均时间SMT.
1)在航海天文历的天体位置表中,以观测日期和整小时世界时为引数,在相应天体的一栏中查得整小时世界时的格林时角GHA′,整小时世界时的赤纬Dec′,赤纬差数d.
2)在航海天文历附表的时角、赤纬内插表中,以分、秒世界时为引数λ,在相应天体的一栏中查得太阳的时角基本变量m.s(分、秒、世界时的时角基本变量,取“+”).
3)在上述时角、赤纬内插表同一页中,以d引数,在d订正值一栏中查得订正值d′.
4)根据以上查得数据,由公式:LHA=GHA′+m.s±λEc和Dec= Dec′+d′计算出赤纬Dec和地方时角LHA.
观测低高度太阳求罗经差的计算公式为
公式中的数据来自观测以及根据推算船位查《航海天文历》所得,将上述观测及查表计算求得的数据代入计算式(1)和(2)即可求得罗经差ΔC[4-5].
在航海天文历的天体位置表中,以观测日期和整小时世界时为引数,在相应天体的一栏中查得的整小时世界时的格林时角GHA′和整小时世界时的赤纬Dec′都有规律性.每1d,整小时世界时的格林时角GHA′的整“度”部分GHA1是一个以小时为序数的递减等差数列,差值为15°;整小时世界时的格林时角GHA′的“分”部分GHA′2是一个递减的等差数列.整小时世界时的赤纬Dec′也有规律性,在每1d中,“度”部分DEC1不变,“分”部分DEC′2是一个递减的等差数列.在研究过程中,找出数列的差值rule1和rule2是很容易的,根据航海天文历中每天00时刻的格林时角GHA′和赤纬Dec′,利用其差值规律,就可以建立查表数据库.建立的数据库只需要输入1年365d每天00时刻的格林时角GHA′和赤纬Dec′,利用递减等差规律就可以了.每天的赤纬差数D是一个定值,直接输入即可,表1是建立数据库的部分输入数据表.
表1 数据库中太阳位置数据表
该部分查表取值的代码程序如下[6-7]:
gha1=rs.Fields(“GHA1”)
gha2=rs.Fields(“GHA2”)
dec1=rs.Fields(“DEC1”)
dec2=rs.Fields(“DEC2”)
str=rs.Fields(“D”)
rule1=rs.Fields(“rule1”)
rule2=rs.Fields(“rule2”)
在查得格林时角、赤纬和赤纬差数后,另外还需要在时角、赤纬内插表中,以分、秒世界时为引数,在相应天体的一栏中查得太阳的m.s,并且在同一页中,以d引数,在d订正值一栏中查订正值d′.
由于观测太阳时一般不精确到秒,通常以整min,0s为引数查得对应的一个值.在建立数据库时需要将0~59分中每1min 0s时的那个分、秒世界时的时角基本变量m.s输入数据库即可.然后建立以上一个数据库表中D为引数的第二个数据库表,查得订正值d′.由于太阳的赤纬差数d通常不超过1.4,因此,只需要输入0.0~1.4s对应的15个订正值d′即可.由于数据量不大,将所有数据输入也很方便,见表2.
该部分查表取值的代码程序如下:
ms1=rs.Fields(“du”)
ms2=rs.Fields(“fen”)
d1=rs.Fields(str)
表2 数据库中时角、赤纬内插表
通过将航海天文历中的相关数据输入数据库,就可以建立完整的查表数据库.因此,建立数据库输入的数据量比较小.另外,航海天文历每年都需要更新,因之数据库数据的更新也比较方便.
计算罗经差的软件程序是在VB环境中开发出来的,VB软件中double变量可以计算到小数点后14位,为了精确计算,所以把计算方位定义为double类型的变量.由于计算罗经差时,利用的已知数据有日期、船时、船位数据(经纬度)、观测方位,因此可以建立如图1所示的程序界面.
图1 罗经差软件界面
为了计算罗经差,通过下列程序[8-9]
If((jingdu Mod 15)*60+jingfen)<450Then
zd=jingdu\15
ElseIf((jingdu Mod 15)*60+jingfen)>450 Then
zd=jingdu\15+1
求得区时ZD,然后通过下列程序获得数据库中的查表引数“日期ri”、“小时shi”、“分钟fen”
hi=chuanshi-zd
fen=chuanfen/此处得出查表参数世界时的整分
If shi>24Then
shi=shi-24
ri=ri+1
ElseIf shi<0Then
shi=shi+24/此处得查表参数世界时的整小时
ri=ri-1/此处为查表参数日
以上述程序中求得的“日期ri”、“小时shi”、“分钟fen”为引数,通过下列程序
cnn.ConnectionString="Provider=Microsoft.
Jet.OLEDB.4.0;
Data Source="& App.Path & "\db1.mdb"
连接数据库,然后通过以下程序
rs.Open"select*from Option_table where month="&yue &"and date="&ri,cnn
rs.Open"select*from INC_Table where minute="&fen,cnn
调用数据库中的数据,获得数据库中的格林时角 值 GHA′(度,gha1;分,gha2)、赤纬 Dec′(度,DEC1;分,DEC2)、时角基本变量 m.s(度,ms1;分,ms2)和订正值d1.再将上述程序求得的值利用下列程序代码
从而计算得最后的罗经差值g.
在上述程序中,三角函数的计算要用弧度,所以先要将输入的角度转化为弧度.另外,用4个单选按钮选择位置和时间,因为计算出来的是半圆方位,所以要把它转化为圆周方位再进行计算.
例 2004年10月20日,船时SMT 1543,推算船位φc34°23.0′S,λc122°50.7′E,测得低高度太阳罗方位CB 280°,求罗经差ΔC.
解析 应用下面2种方法求罗经差并进行对比.
先通过观测及查《航海天文利》求得相关数据,然后进行如下计算.
1)利用六分仪测得1543时的罗方位CB值为280°,利用世界时计算式有:GMT=ZT+ZD=1543-0800=0743.
2)以观测日期和整小时世界时为引数,在航海天文历中相应天体的一栏中查得:GHA′=288°48.4′,Dec′=10°29.3′S,D=0.9.
3)以分、秒世界时为引数,在航海天文历相应天体的一栏中查得太阳的 m.s=10°44.3′.
4)以d引数,在上述同一页中d订正值一栏中查得订正值d′=0.7′.
5)由计算式:
6)根据公式有
7)将半圆周法表示的Ac转换为圆周法表示
最后根据公式求得罗经差
即所求罗经差ΔC=-12°.00(在上述计算过程中,由于除不尽计算过程中进行了四舍五入).
将已知数据输入到设计的VB软件程序运行界面,并根据观测时间(上午或下午)及测者纬度选择北纬上午、北纬下午、南纬上午、南纬下午中的一个.然后点击程序运行界面中的控钮(计算),程序便会自动进行计算,则罗经差将在运行界面中显示出来.程序运行界面见图2.由图2可知,利用软件计算的罗经差结果为-11.984 763 912 394 8°.
图2 罗经差计算软件运行界面图
以上2种方法求得的罗经差值是一致的,说明了开发的计算罗经差软件具有可行性.通过对比,利用开发的求罗经差的软件程序来求罗经差,相对原来用计算器求罗经差具有计算速度更快、精度更高、更省时省力等优点.
开发求罗经差的软件对于求罗经差具有重要的意义,通过应用此软件与传统的一船计算器计算罗经差对照,从而显示该软件程序在计算罗经差过程中的省时、省力、精度高等优越性.如将此软件应用于航海中,可以有效减船员的工作量,提高求罗经差的效率,有助于船舶的安全航行.
[1]郭 禹.航海学[M].大连:大连海事大学出版社,2005.
[2]高玉德.航海学[M].大连:大连海事大学出版社,2007.
[3]李 勇.航用恒星测罗经差的基本原理[J].航海技术,2001(5):13-14.
[4]赵怀森.对天测罗经差计算方位的误差分析[J].天津航海,2008(4):18-19.
[5]王富华.观测太阳低高度求罗经差有利时机的探讨[J].天津航海,2002(1):3-5.
[6]李生山.浅谈VB程序设计要素:数组[J].科技信息:学术研究,2008(32):179-179.
[7]郑佳春.航标遥测遥控系统的关键技术研究[J].中国航海,2006(4):61-65.
[8]吴建华,李红祥,周 鹏.虚拟航标系统的开发与仿真[J].中国航海,2007(4):54-57.
[9]SILER B.Visual Basic6.0开发使用手册[M].北京:机械工业出版社,1999.