(武漢船舶職業(yè)技術(shù)學(xué)院 武漢430050)
羅經(jīng)是船舶上的重要航行儀器,羅經(jīng)誤差的大小直接關(guān)系到船舶航行的經(jīng)濟(jì)性和航行的安全性,只有快速地計(jì)算出羅經(jīng)的誤差并進(jìn)行及時(shí)地校正,才能確保船舶在計(jì)劃航線上安全地航行.船舶在沿岸或近岸航行時(shí),可以利用專(zhuān)設(shè)的疊標(biāo)或給定的航行物標(biāo)來(lái)測(cè)定羅經(jīng)差,但在開(kāi)闊的海面上時(shí),一般則只有利用天體來(lái)測(cè)定羅經(jīng)差了.而傳統(tǒng)的利用觀測(cè)低高度太陽(yáng)方位求羅經(jīng)差通常是通過(guò)六分儀觀測(cè)太陽(yáng)方位,然后根據(jù)已知數(shù)據(jù)查航海天文歷,再將所得數(shù)據(jù)代入公式進(jìn)行計(jì)算,該方法費(fèi)時(shí)費(fèi)力,而且所得羅經(jīng)差值精度也不高[1].本文通過(guò)分析航海天文歷的數(shù)據(jù)規(guī)律,建立數(shù)據(jù)庫(kù),然后利用Visual Basic語(yǔ)言,編寫(xiě)計(jì)算羅經(jīng)差的計(jì)算軟件,避免查表和計(jì)算的繁瑣.
觀測(cè)低高度太陽(yáng)方位求羅經(jīng)差ΔC可以利用疊標(biāo)的真方位TB與其羅方位CB之差求得,即:ΔC=TB-CB.疊標(biāo)的真方位TB可以從海圖上量取,當(dāng)疊標(biāo)“串視”時(shí)利用羅經(jīng)可測(cè)得疊標(biāo)的羅方位CB.
由于觀測(cè)時(shí)的真實(shí)船位未知,所以無(wú)法求出天體的真方位,在海上是以推算船位(φc,λc)為基準(zhǔn)求得的天體的計(jì)算方位Ac來(lái)代替天體的真方位TB[2-3]來(lái)進(jìn)行計(jì)算求羅經(jīng)差的.
1)選擇好觀測(cè)太陽(yáng)低高度的好時(shí)機(jī),太陽(yáng)低高度應(yīng)小于30°,最好小于15°,準(zhǔn)備好方位圈,秒表等器材.
2)連續(xù)測(cè)量3次太陽(yáng)的高度,記下此時(shí)的低高度太陽(yáng)的羅方位,取平均值作為對(duì)應(yīng)于平均時(shí)間的羅方位CB,記下觀測(cè)時(shí)的平均時(shí)間SMT.
1)在航海天文歷的天體位置表中,以觀測(cè)日期和整小時(shí)世界時(shí)為引數(shù),在相應(yīng)天體的一欄中查得整小時(shí)世界時(shí)的格林時(shí)角GHA′,整小時(shí)世界時(shí)的赤緯Dec′,赤緯差數(shù)d.
2)在航海天文歷附表的時(shí)角、赤緯內(nèi)插表中,以分、秒世界時(shí)為引數(shù)λ,在相應(yīng)天體的一欄中查得太陽(yáng)的時(shí)角基本變量m.s(分、秒、世界時(shí)的時(shí)角基本變量,取“+”).
3)在上述時(shí)角、赤緯內(nèi)插表同一頁(yè)中,以d引數(shù),在d訂正值一欄中查得訂正值d′.
4)根據(jù)以上查得數(shù)據(jù),由公式:LHA=GHA′+m.s±λEc和Dec= Dec′+d′計(jì)算出赤緯Dec和地方時(shí)角LHA.
觀測(cè)低高度太陽(yáng)求羅經(jīng)差的計(jì)算公式為
公式中的數(shù)據(jù)來(lái)自觀測(cè)以及根據(jù)推算船位查《航海天文歷》所得,將上述觀測(cè)及查表計(jì)算求得的數(shù)據(jù)代入計(jì)算式(1)和(2)即可求得羅經(jīng)差ΔC[4-5].
在航海天文歷的天體位置表中,以觀測(cè)日期和整小時(shí)世界時(shí)為引數(shù),在相應(yīng)天體的一欄中查得的整小時(shí)世界時(shí)的格林時(shí)角GHA′和整小時(shí)世界時(shí)的赤緯Dec′都有規(guī)律性.每1d,整小時(shí)世界時(shí)的格林時(shí)角GHA′的整“度”部分GHA1是一個(gè)以小時(shí)為序數(shù)的遞減等差數(shù)列,差值為15°;整小時(shí)世界時(shí)的格林時(shí)角GHA′的“分”部分GHA′2是一個(gè)遞減的等差數(shù)列.整小時(shí)世界時(shí)的赤緯Dec′也有規(guī)律性,在每1d中,“度”部分DEC1不變,“分”部分DEC′2是一個(gè)遞減的等差數(shù)列.在研究過(guò)程中,找出數(shù)列的差值rule1和rule2是很容易的,根據(jù)航海天文歷中每天00時(shí)刻的格林時(shí)角GHA′和赤緯Dec′,利用其差值規(guī)律,就可以建立查表數(shù)據(jù)庫(kù).建立的數(shù)據(jù)庫(kù)只需要輸入1年365d每天00時(shí)刻的格林時(shí)角GHA′和赤緯Dec′,利用遞減等差規(guī)律就可以了.每天的赤緯差數(shù)D是一個(gè)定值,直接輸入即可,表1是建立數(shù)據(jù)庫(kù)的部分輸入數(shù)據(jù)表.
表1 數(shù)據(jù)庫(kù)中太陽(yáng)位置數(shù)據(jù)表
該部分查表取值的代碼程序如下[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”)
在查得格林時(shí)角、赤緯和赤緯差數(shù)后,另外還需要在時(shí)角、赤緯內(nèi)插表中,以分、秒世界時(shí)為引數(shù),在相應(yīng)天體的一欄中查得太陽(yáng)的m.s,并且在同一頁(yè)中,以d引數(shù),在d訂正值一欄中查訂正值d′.
由于觀測(cè)太陽(yáng)時(shí)一般不精確到秒,通常以整min,0s為引數(shù)查得對(duì)應(yīng)的一個(gè)值.在建立數(shù)據(jù)庫(kù)時(shí)需要將0~59分中每1min 0s時(shí)的那個(gè)分、秒世界時(shí)的時(shí)角基本變量m.s輸入數(shù)據(jù)庫(kù)即可.然后建立以上一個(gè)數(shù)據(jù)庫(kù)表中D為引數(shù)的第二個(gè)數(shù)據(jù)庫(kù)表,查得訂正值d′.由于太陽(yáng)的赤緯差數(shù)d通常不超過(guò)1.4,因此,只需要輸入0.0~1.4s對(duì)應(yīng)的15個(gè)訂正值d′即可.由于數(shù)據(jù)量不大,將所有數(shù)據(jù)輸入也很方便,見(jiàn)表2.
該部分查表取值的代碼程序如下:
ms1=rs.Fields(“du”)
ms2=rs.Fields(“fen”)
d1=rs.Fields(str)
表2 數(shù)據(jù)庫(kù)中時(shí)角、赤緯內(nèi)插表
通過(guò)將航海天文歷中的相關(guān)數(shù)據(jù)輸入數(shù)據(jù)庫(kù),就可以建立完整的查表數(shù)據(jù)庫(kù).因此,建立數(shù)據(jù)庫(kù)輸入的數(shù)據(jù)量比較?。硗?,航海天文歷每年都需要更新,因之?dāng)?shù)據(jù)庫(kù)數(shù)據(jù)的更新也比較方便.
計(jì)算羅經(jīng)差的軟件程序是在VB環(huán)境中開(kāi)發(fā)出來(lái)的,VB軟件中double變量可以計(jì)算到小數(shù)點(diǎn)后14位,為了精確計(jì)算,所以把計(jì)算方位定義為double類(lèi)型的變量.由于計(jì)算羅經(jīng)差時(shí),利用的已知數(shù)據(jù)有日期、船時(shí)、船位數(shù)據(jù)(經(jīng)緯度)、觀測(cè)方位,因此可以建立如圖1所示的程序界面.
圖1 羅經(jīng)差軟件界面
為了計(jì)算羅經(jīng)差,通過(guò)下列程序[8-9]
If((jingdu Mod 15)*60+jingfen)<450Then
zd=j(luò)ingdu\15
ElseIf((jingdu Mod 15)*60+jingfen)>450 Then
zd=j(luò)ingdu\15+1
求得區(qū)時(shí)ZD,然后通過(guò)下列程序獲得數(shù)據(jù)庫(kù)中的查表引數(shù)“日期ri”、“小時(shí)shi”、“分鐘fen”
hi=chuanshi-zd
fen=chuanfen/此處得出查表參數(shù)世界時(shí)的整分
If shi>24Then
shi=shi-24
ri=ri+1
ElseIf shi<0Then
shi=shi+24/此處得查表參數(shù)世界時(shí)的整小時(shí)
ri=ri-1/此處為查表參數(shù)日
以上述程序中求得的“日期ri”、“小時(shí)shi”、“分鐘fen”為引數(shù),通過(guò)下列程序
cnn.ConnectionString="Provider=Microsoft.
Jet.OLEDB.4.0;
Data Source="& App.Path & "\db1.mdb"
連接數(shù)據(jù)庫(kù),然后通過(guò)以下程序
rs.Open"select*from Option_table where month="&yue &"and date="&ri,cnn
rs.Open"select*from INC_Table where minute="&fen,cnn
調(diào)用數(shù)據(jù)庫(kù)中的數(shù)據(jù),獲得數(shù)據(jù)庫(kù)中的格林時(shí)角 值 GHA′(度,gha1;分,gha2)、赤緯 Dec′(度,DEC1;分,DEC2)、時(shí)角基本變量 m.s(度,ms1;分,ms2)和訂正值d1.再將上述程序求得的值利用下列程序代碼
從而計(jì)算得最后的羅經(jīng)差值g.
在上述程序中,三角函數(shù)的計(jì)算要用弧度,所以先要將輸入的角度轉(zhuǎn)化為弧度.另外,用4個(gè)單選按鈕選擇位置和時(shí)間,因?yàn)橛?jì)算出來(lái)的是半圓方位,所以要把它轉(zhuǎn)化為圓周方位再進(jìn)行計(jì)算.
例 2004年10月20日,船時(shí)SMT 1543,推算船位φc34°23.0′S,λc122°50.7′E,測(cè)得低高度太陽(yáng)羅方位CB 280°,求羅經(jīng)差ΔC.
解析 應(yīng)用下面2種方法求羅經(jīng)差并進(jìn)行對(duì)比.
先通過(guò)觀測(cè)及查《航海天文利》求得相關(guān)數(shù)據(jù),然后進(jìn)行如下計(jì)算.
1)利用六分儀測(cè)得1543時(shí)的羅方位CB值為280°,利用世界時(shí)計(jì)算式有:GMT=ZT+ZD=1543-0800=0743.
2)以觀測(cè)日期和整小時(shí)世界時(shí)為引數(shù),在航海天文歷中相應(yīng)天體的一欄中查得:GHA′=288°48.4′,Dec′=10°29.3′S,D=0.9.
3)以分、秒世界時(shí)為引數(shù),在航海天文歷相應(yīng)天體的一欄中查得太陽(yáng)的 m.s=10°44.3′.
4)以d引數(shù),在上述同一頁(yè)中d訂正值一欄中查得訂正值d′=0.7′.
5)由計(jì)算式:
6)根據(jù)公式有
7)將半圓周法表示的Ac轉(zhuǎn)換為圓周法表示
最后根據(jù)公式求得羅經(jīng)差
即所求羅經(jīng)差ΔC=-12°.00(在上述計(jì)算過(guò)程中,由于除不盡計(jì)算過(guò)程中進(jìn)行了四舍五入).
將已知數(shù)據(jù)輸入到設(shè)計(jì)的VB軟件程序運(yùn)行界面,并根據(jù)觀測(cè)時(shí)間(上午或下午)及測(cè)者緯度選擇北緯上午、北緯下午、南緯上午、南緯下午中的一個(gè).然后點(diǎn)擊程序運(yùn)行界面中的控鈕(計(jì)算),程序便會(huì)自動(dòng)進(jìn)行計(jì)算,則羅經(jīng)差將在運(yùn)行界面中顯示出來(lái).程序運(yùn)行界面見(jiàn)圖2.由圖2可知,利用軟件計(jì)算的羅經(jīng)差結(jié)果為-11.984 763 912 394 8°.
圖2 羅經(jīng)差計(jì)算軟件運(yùn)行界面圖
以上2種方法求得的羅經(jīng)差值是一致的,說(shuō)明了開(kāi)發(fā)的計(jì)算羅經(jīng)差軟件具有可行性.通過(guò)對(duì)比,利用開(kāi)發(fā)的求羅經(jīng)差的軟件程序來(lái)求羅經(jīng)差,相對(duì)原來(lái)用計(jì)算器求羅經(jīng)差具有計(jì)算速度更快、精度更高、更省時(shí)省力等優(yōu)點(diǎn).
開(kāi)發(fā)求羅經(jīng)差的軟件對(duì)于求羅經(jīng)差具有重要的意義,通過(guò)應(yīng)用此軟件與傳統(tǒng)的一船計(jì)算器計(jì)算羅經(jīng)差對(duì)照,從而顯示該軟件程序在計(jì)算羅經(jīng)差過(guò)程中的省時(shí)、省力、精度高等優(yōu)越性.如將此軟件應(yīng)用于航海中,可以有效減船員的工作量,提高求羅經(jīng)差的效率,有助于船舶的安全航行.
[1]郭 禹.航海學(xué)[M].大連:大連海事大學(xué)出版社,2005.
[2]高玉德.航海學(xué)[M].大連:大連海事大學(xué)出版社,2007.
[3]李 勇.航用恒星測(cè)羅經(jīng)差的基本原理[J].航海技術(shù),2001(5):13-14.
[4]趙懷森.對(duì)天測(cè)羅經(jīng)差計(jì)算方位的誤差分析[J].天津航海,2008(4):18-19.
[5]王富華.觀測(cè)太陽(yáng)低高度求羅經(jīng)差有利時(shí)機(jī)的探討[J].天津航海,2002(1):3-5.
[6]李生山.淺談VB程序設(shè)計(jì)要素:數(shù)組[J].科技信息:學(xué)術(shù)研究,2008(32):179-179.
[7]鄭佳春.航標(biāo)遙測(cè)遙控系統(tǒng)的關(guān)鍵技術(shù)研究[J].中國(guó)航海,2006(4):61-65.
[8]吳建華,李紅祥,周 鵬.虛擬航標(biāo)系統(tǒng)的開(kāi)發(fā)與仿真[J].中國(guó)航海,2007(4):54-57.
[9]SILER B.Visual Basic6.0開(kāi)發(fā)使用手冊(cè)[M].北京:機(jī)械工業(yè)出版社,1999.