本發(fā)明屬于衛(wèi)星導(dǎo)航領(lǐng)域,是衛(wèi)星導(dǎo)航航海應(yīng)用中一種大圓航線航路點劃分與航程計算方法。
背景技術(shù):
隨著信息技術(shù)、衛(wèi)星導(dǎo)航技術(shù)的發(fā)展,海用衛(wèi)星導(dǎo)航設(shè)備的技術(shù)越來越復(fù)雜,功能越來越完善,智能化水平也在不斷提高。當(dāng)前,海用衛(wèi)星導(dǎo)航設(shè)備除了計算和顯示定位信息以外,具備導(dǎo)航和航路規(guī)劃功能也成為海用衛(wèi)星導(dǎo)航接收設(shè)備的重要指標(biāo)之一。精確良好的航路規(guī)劃和計算功能,能夠為遠(yuǎn)距離航行的船舶提供最優(yōu)路徑,節(jié)省航行時間、提高經(jīng)濟(jì)效益。
大圓航行是指航線為一個圓,其原點在地心,大圓航線是跨洋航行時的最短航程航線,將地球當(dāng)作圓球體時,地面上兩點間的距離以連接兩點的小于180°的大圓弧弧長為最短。所以理論上如果能將船舶始終保持在該圓弧之上,則沿大圓弧航行,航程為最短。但由于大圓弧與各子午線交角都不相等(沿赤道和子午線航行除外),船舶要想沿大圓航行,駕駛員就必須不停地設(shè)法確定當(dāng)時船舶應(yīng)執(zhí)行的大圓航向,這在實際操作中是不可能的。所以以往所謂的大圓航線航行,并不是船舶不斷變向、嚴(yán)格地沿大圓弧航行,而是對大圓航線進(jìn)行分段近似,實際海上航行時為了便于操縱船只一般分段采用恒向線航線,即航向在該分段內(nèi)保持不變,恒向線在墨卡托海圖上表現(xiàn)為直線,但實際在地球表面上一般為球面螺旋曲線。
目前,在海用衛(wèi)星導(dǎo)航設(shè)備大圓航線航路點劃分與航程計算領(lǐng)域,國內(nèi)對于該領(lǐng)域缺乏從大圓航線航路點劃分到航程計算的有效方法,所以,作為海用衛(wèi)星導(dǎo)航接收設(shè)備關(guān)鍵技術(shù),其對船舶海上航行導(dǎo)航具有重要的意義。
技術(shù)實現(xiàn)要素:
為了克服現(xiàn)有技術(shù)的不足,本發(fā)明提供一種海用衛(wèi)星導(dǎo)航設(shè)備大圓航線計算方法,能夠快速精確的計算大圓航線等航程、等經(jīng)度差劃分出的各航路點經(jīng)緯度、航程、航向以及大圓航線總航程。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案包括以下步驟:
(1)根據(jù)大圓航線的起始點經(jīng)緯度和到達(dá)點經(jīng)緯度計算大圓航線弧長和初始航向Dλ為起始點和到達(dá)點的經(jīng)度差;
(2)在大圓航線上按照等航程δ或等經(jīng)度Δλ差劃分航路點i=1,2,3…,等航程劃分的航路點中,緯度經(jīng)度λi=λ1+Ai,其中,Ai為起始點與航路點Di的經(jīng)度差;等經(jīng)度劃分的航路點中,緯度經(jīng)度λi=λ1+Δλ(i-1),其中,為大圓航線頂點的緯度,λV為大圓航線頂點的經(jīng)度;
(3)計算任意緯線到赤道的子午線弧長和任意兩條緯線的緯度漸長率差DMP=MP2-MP1,其中,a為地球橢圓體長半軸,e為地球橢圓體偏心率,緯線的緯度漸長率
(4)計算各航路點之間的航向和航程其中,和Dλ為相鄰航路點間的緯差和經(jīng)差;
(5)經(jīng)過累加運算得到大圓航線的總航程N為大圓航線上航路點數(shù)量。
本發(fā)明的有益效果是:能夠快速精確的計算大圓航線等航程、等經(jīng)度差劃分出的各航路點的經(jīng)緯度、航程、航向以及大圓航線總航程信息。
附圖說明
圖1是大圓航線求解示意圖;
圖2是航路點航程、航向計算示意圖;
圖3是大圓航線弧長、起始航向計算示意圖;
圖4是大圓航線和各分航路點示意圖;
圖5是子午圈示意圖;
圖6是墨卡托航法示意圖。
具體實施方式
下面結(jié)合附圖和實施例對本發(fā)明進(jìn)一步說明,本發(fā)明包括但不僅限于下述實施例。
本發(fā)明在已知大圓航線起始位置和結(jié)束位置經(jīng)緯度的情況下,通過設(shè)置大圓航線上各航路點,或者按照等航程、等經(jīng)度差方法劃分出航路點再計算出大圓航線各個航路點的經(jīng)緯度;大圓航線上航路點確定后,就可以計算出航路點之間的航向、航程,最后累加得到大圓航線的總航程。該方法基于兩個假設(shè):1、大圓航線上各航路點已設(shè)置或者按照等航程差、等經(jīng)度差生成;2、大圓航線上各個航路點之間按照恒向線航行。
本發(fā)明包括如下步驟:
步驟一:計算大圓航線的弧長和起始航向;
步驟二:計算大圓航線上等航程或等經(jīng)度差劃分航路點;
步驟三:計算子午線弧長和緯度漸長率差;
步驟四:計算航路點間恒向線航程、航向;
步驟五:計算大圓航線總航程。
所述步驟一具體為:首先設(shè)置大圓航線起始點和到達(dá)點,主要包括起始點和到達(dá)點的經(jīng)緯度位置;根據(jù)大圓航線的起始點和到達(dá)點計算出大圓航線的弧長和初始航向信息。
所述步驟二具體為:在大圓航線上按照等航程或者等經(jīng)度差的方法劃分航路點,根據(jù)各航路點與大圓航線的關(guān)系,求解球面三角函數(shù),解出各個航路點的經(jīng)緯度位置信息。
所述步驟四具體為:依據(jù)各個航路點的經(jīng)緯度位置信息,采用恒向線計算方法,計算出航路點之間的航向和航程信息。
大圓航線的航程為大圓的弧長,為兩點之間在球面上的最短距離,但是大圓航線的航向并非一個固定值,而是一個變化的值,在實際航海導(dǎo)航中,很難做到航向不斷的隨大圓航線而,因此大圓航線上各個航路點之間的航線航程使用恒向線方法計算,雖然不是球面上最短距離,但是可以保證兩個航點之間航向為一個固定值。
假設(shè)大圓航線如圖1所示,大圓航線起始點為到達(dá)點為兩點經(jīng)緯度均已知,且設(shè)定北緯、東經(jīng)為正值,南緯、西經(jīng)為負(fù)值。
其中(i=1,2,3…)為大圓航線上的某一個分段航路點,Ai為起始點與航路點Di的經(jīng)差,Si為起始點至Di的弧長,P為極點,假設(shè)以等航程δ或者等經(jīng)度差Δλ劃分大圓航線生成各航路點,則通過求解球面三角形可以得到大圓航線的弧長、初始航向以及大圓航線上等航程、等經(jīng)度差產(chǎn)生的各個航路點的經(jīng)緯度位置,其計算表達(dá)式分別為:
大圓航線弧長計算表達(dá)式:
初始航向計算表達(dá)式為:
假設(shè)以等航程δ或者等經(jīng)度差Δλ劃分大圓航線生成各航路點,則通過求解球面三角形函數(shù)可以得到大圓航線上等航程、等經(jīng)度差產(chǎn)生的各個航路點的經(jīng)緯度位置。
等航程差劃分大圓航線時,大圓航線上任一航路點(不包括起始點和到達(dá)點)(i=1,2,3…)緯度計算表達(dá)式為:
經(jīng)度計算表達(dá)式為:
λi=λ1+Ai i為整數(shù)且1<i<N (4)
其中λ1為大圓航線起始航路點的經(jīng)度,Ai為大圓航線起始點與某一航路點Di的經(jīng)度差。
等經(jīng)度差劃分大圓航線時,大圓航線上任一航路點(不包括起始點和到達(dá)點)(i=1,2,3…)緯度計算表達(dá)式為:
其中為大圓航線頂點的緯度,λV為大圓航線頂點的經(jīng)度。
經(jīng)度計算表達(dá)式為:
λi=λ1+Δλ(i-1) i為整數(shù)且1<i<N (6)
其中λ1為大圓航線起始航路點的經(jīng)度,Δλ為等經(jīng)度差劃分大圓航線的劃分間隔。
航海導(dǎo)航實際使用中,大圓航線航程最短,但是其航向不斷發(fā)生變化,因此一般對大圓航線使用航路點進(jìn)行分段近似,航路點之間的航程按照恒向線方法航行和計算,可保證航向角在該段航程中固定不變。
如圖2,β為緯度,γ為經(jīng)度,A為航向角,OB和CD為兩條平行圈,OD和BC為兩條子午線。計算橢球面微分三角形OBC,求解恒向線微分方程可解出航路點間航程OC和航向角A。
計算航路點之間恒向線航程之前需要首先計算子午線弧長L和緯度漸長率差DMP,利用L和DMP可依次計算出各航路點之間的航向Ci和航程Si,經(jīng)過累加運算可得到大圓航線的總航程SD。
本發(fā)明的實施例包括以下步驟:
步驟一:計算大圓航線的弧長和起始航向:
已知大圓航線起始點為到達(dá)點為如圖3,兩點經(jīng)緯度均已知。
計算球面三角形PNAB則大圓航線弧長S的計算表達(dá)式為:
其中Dλ為起始點至到達(dá)點經(jīng)度差,計算表達(dá)式為:
Dλ=|λ1-λ2| (8)
同時可得大圓航線起始航向C1的計算表達(dá)式為:
由于經(jīng)緯度均有名稱和符號,在利用以上公式求取航向和航程時可使用以下規(guī)律:
1、起始點緯度,無論南北一律取正值,到達(dá)點緯度與起始點緯度同名時取正值,與起始點緯度異名時取負(fù)值。
2、其中Dλ為起點和終點的經(jīng)度差,經(jīng)度差不論東或西一律取正值。
3、若按照上述公式計算的cos(S)為正值,則航程S為小于5400n mile(90°)的值;若cos(S)為負(fù)值,則航程S為大于5400n mile(90°)的值。
4、按照上述取值,求取始航向時,求得的航向為用半圓周法表示的值(0°~180°),其命名的第一個字母與起始點緯度同名,第二個字母與經(jīng)差同名。如果求得的函數(shù)值為負(fù),則航向取大于90°小于180°的值,(即如果COSCI為負(fù)值,直接球反三角函數(shù)即可;如果tanCI為負(fù)值,則求出的CI為負(fù)值,應(yīng)加上180°換算為大于90°小于180°的值)。最后將用半圓周發(fā)表示的航向換算為用圓周法表示的即可。
步驟二:計算大圓航線上等航程或等經(jīng)度差劃分航路點
1、等航程劃分航路點
大圓航線與各航路點的關(guān)系如圖4所示,假設(shè)弧AD為一條大圓航線,線段AB、BC、CD將大圓航線的弧長分段進(jìn)行了內(nèi)接法近似,AB、BC、CD之間按照恒向線航行航向固定。
其中A、B、C、D為大圓航線上劃分出來的航路點。航路點的劃分一般按照實際航海需要劃分,也可以按照等航程或等經(jīng)度差等方法劃分,方法如下:
1、等航程劃分航路點
假定設(shè)置的等航程間距為δ,大圓航線弧長為S,則可得大圓航線航路點數(shù)量N的計算表達(dá)式為:
即為,大圓航線弧長S與等間隔航程δ相除后,向上取整得到的值N。
等航程劃分后的航路點經(jīng)緯度的計算如圖1中,分別為大圓航線的起始點與到達(dá)點,其經(jīng)緯度均已知,且北緯、東經(jīng)取正值,南緯、西經(jīng)取負(fù)值。(i為整數(shù)且1<i<N)為劃分出的大圓航線上的某一航路點。Ai為起始點與航路點Di的經(jīng)差,Si為起始點至航路點Di的弧長,等航程劃分大圓航線時有Si=δ,P為極點,則在球面三角形PDiD1可得為:
所以可得分航路點的緯度的計算表達(dá)式為:
計算球面三角形可得
所以,可得大圓航線起始點與航路點Di的經(jīng)度差計算表達(dá)式為:
于是可得大圓航線分航路點的經(jīng)度λi的計算表達(dá)式為:
λi=λ1+Ai (15)
其中λ1為大圓航線起始航路點的經(jīng)度,Ai為大圓航線起始點與某一航路點Di的經(jīng)度差。
2、等經(jīng)度差劃分航路點
假設(shè)設(shè)置的劃分大圓航線的等經(jīng)度差的為Δλ,則在已知大圓航線弧長S和航向CI的情況下,可得大圓航線上航路點數(shù)量N的計算表達(dá)式為:
其中Dλ為大圓航線起始點和到達(dá)點的經(jīng)度差,計算方法見式(8)。
等經(jīng)度差劃分后的航路點經(jīng)緯度計算方法如圖2中,分別為大圓C航線的起始點與到達(dá)點,它們的經(jīng)緯度均已知,且北緯、東經(jīng)取正值,南緯、西經(jīng)取負(fù)值。假設(shè)由步驟一已計算得到大圓航線的弧長為S,初始航向為CI;大圓航線的起始點緯度根據(jù)南北緯取值,北緯為正,南緯為負(fù);到達(dá)點的緯度若與同名,取正值,異名則取負(fù)值。
計算大圓航線初始航向的半圓航向,計算表達(dá)式如下:
大圓航線頂點是大圓航線上緯度達(dá)到的最高點(大圓航線上緯度值最大的點),在該點大圓弧與子午線相交成直角,大圓航向為90°或270°。大圓航線頂點坐標(biāo)可按以下公式求?。?/p>
其中,DλV為起始點至大圓航線頂點的經(jīng)差,為大圓航線頂點的緯度,λV為大圓航線頂點的經(jīng)度。
因此,大圓航線各分航路點按照等經(jīng)度劃分,各航路點的經(jīng)度λi的計算公式為:
λi=λ1+Δλ(i-1) i為整數(shù)且1<i<N (19)
其中N為大圓航線上等經(jīng)度差劃分出的航路點數(shù)量計算方法見公式(13),通過求解球面三角形可知:
進(jìn)一步可得,各航路點緯度的計算表達(dá)式為:
步驟三:計算子午線弧長和緯度漸長率差
在較為準(zhǔn)確的航海計算中,應(yīng)將大地球體當(dāng)作兩極略扁的地球橢圓體,才能得出有足夠精度的結(jié)果。地球旋轉(zhuǎn)橢圓體的旋轉(zhuǎn)橢圓,即子午圈,如圖5所示:其中,為地理緯度(橢圓子午線上某點的法線與赤道面的交角);a為地球橢圓體長半軸;b為地球橢圓體短半軸;r為某地(A點)所在緯度的等緯圈半徑,按下式計算
A點的橢圓子午線的曲率半徑M為
式(22)和式(23)中:e為地球橢圓體偏心率。參數(shù)a和e在不同的大地坐標(biāo)系中取值不同,計算時應(yīng)根據(jù)所使用海圖的坐標(biāo)系進(jìn)行選取,如常用的WGS84坐標(biāo)系中a=6 378 137m,e=0.081 819 190 842 621 5。從任意一條緯線到赤道的子午線弧長,用L表示,則有
對式(24)積分可得:
按照泰勒級數(shù)展開積分式中的函數(shù)再積分,并以海里為單位,便可得到任意緯線到赤道的子午線弧長L的計算表達(dá)式為:
其中:
則任意兩條緯線和之間的子午線弧長DL計算表達(dá)式為:
DL=L2-L1 (30)
如將L投影到墨卡托海圖上,根據(jù)墨卡托等角正圓柱投影原理,可得該緯度的緯度漸長率MP的計算表達(dá)式為:
將自然對數(shù)函數(shù)改以雙曲函數(shù)表示,并以1′(1分)經(jīng)度長度作為單位的長度。
因為a=1經(jīng)度分Parc1′=180×60Pπ=10 800Pπ,則
任意兩緯線在墨卡托海圖上的距離即緯度漸長率差DMP計算表達(dá)式為:
DMP=MP2-MP1 (33)
步驟四:計算航路點間恒向線航程、航向
假設(shè)航路點A經(jīng)緯度和航路點B經(jīng)緯度在計算兩點之間的恒向線航向和航程中,首先要計算兩點間的緯差和經(jīng)差Dλ,其計算公式為
計算時將北緯取為正值(+)、南緯取為負(fù)值(-);東經(jīng)取為正值(+)、西經(jīng)取為負(fù)值(-);求其代數(shù)和。緯差的范圍為-90°~+90°;經(jīng)差Dλ的范圍為-180°~+180°,當(dāng)(λ2-λ1)>180°時
Dλ=-360°+λ2-λ1 (35)
當(dāng)(λ2-λ1)<-180°時
Dλ=360°+λ2-λ1 (36)
1、當(dāng)緯度差時航向和航程的計算
當(dāng)緯差時,表明航線位于等緯度圈上。如兩點間經(jīng)差Dλ>0,則恒向線航向為正東,即C=90°;如Dλ<0,則恒向線航向為正西,C=270°,即
C=[2-sgn(Dλ)]·90° (37)
其中:sgn(·)為取符號值。此時,恒向線航程S即為兩點間的等緯圈弧長,并統(tǒng)一到以法定海里值為單位,有
2、當(dāng)經(jīng)差Dλ=0時恒向線航向和航程的計算模型
當(dāng)經(jīng)差Dλ=0時,表明船舶沿子午線航行。如兩點間緯差則恒向線航向為正北,即C=0°;如則恒向線航向為正南,C=180°,即
此時,兩點間的恒向線航程S,在簡單的航海計算中按地球圓球體計算,在精確計算時,應(yīng)按地球橢圓體計算,即
S=|Dλ| (40)
3、當(dāng)Dλ≠0時,恒向線航向和航程的計算模型
當(dāng)Dλ≠0時,恒向線航線在地球橢圓體表面上表現(xiàn)為一條球面螺旋曲線。為了解決此時恒向線航向的計算問題,將恒向線投影到墨卡托海圖上。設(shè)船舶從起航點A航行至到達(dá)點B,投影到墨卡托海圖上,分別為A′和B′,恒向線直線A′B′與對應(yīng)的經(jīng)線和緯線構(gòu)成一個直角三角形,如圖6所示。
ΔΑ′B′C′表示緯度漸長率DMP、經(jīng)差Dλ和恒向線航向C的關(guān)系,顯然有
由于arctan(Dλ/DMP)的范圍為-90°~+90°,而圓周法航向C的范圍為0°~360°,因此,航向計算公式為
恒向線航程S表現(xiàn)為線段長度由等角投影可得航程S的計算表達(dá)式為:
其中DL為子午線弧長,計算方法見式(26)。
步驟五:計算大圓航線總航程
大圓航線的總航程為航路點間分段航程的累加。假設(shè)大圓航線上航路點數(shù)量為N,航路點為(i為整數(shù)且1≤i≤N),其中為各航路點緯度,λi為各航路點經(jīng)度。假設(shè)利用式(38)、(40)、(44)計算得到航路點Di和Di+1之間的航程為Si(1≤i≤N-1),則大圓航線總航程SD的計算表達(dá)式為: