陳金皖 張青峰 張江勇
(中國直升機設(shè)計研究所 江西省景德鎮(zhèn)市 333000)
航路飛行的目的就是從一端飛到另外一端,如何更快更好的飛行是一項重要課題,由于地球的形狀與球形相近,墨卡托投影的出現(xiàn),給航海和飛行帶來了巨大的方便,墨卡托投影可以將球形投影成平面圖,只要連接兩點之間的連線,則可以確定航程及航向,這就是恒向線航線。但是現(xiàn)代社會的要求,節(jié)能高效是當(dāng)今世界的主旋律。從地球上的一個航路點到另外一個航路點,以球心為圓心的兩點之間的劣弧距離最短,這種飛行路徑計算方式被稱為大圓航段算法。因此大圓航段航程被廣泛應(yīng)用于航海和航空,但是由于地球是圓的,采用墨卡托投影投影成為一個平面,直接連線兩個航路點作為航線,與實際大圓航段算法航線路徑不符,造成偏航距相差過大等問題。本文旨在在墨卡托地圖平面上更好地刻畫大圓航段航線,在一定程度上減少偏航距誤差,從而給駕駛員正確的判斷。
墨卡托投影又稱為“等角正軸圓柱”投影,由荷蘭地圖學(xué)家墨卡托于1569年提出,其基本原理是假設(shè)有一個在赤道與地球相切的圓柱體,先把橢球面映射到圓柱體表面,然后展開圓柱面,即實現(xiàn)了球平轉(zhuǎn)換。該投影具有等角特性,在保證對象的形狀不會改變的同時,也保證了方向和相互位置的正確性,因此常常應(yīng)用在航海和航空領(lǐng)域。在墨卡托投影上,恒向線表現(xiàn)為一條直線,大圓航段表現(xiàn)為曲線,但是實際上大圓航段的距離要比恒向線要短。大圓航線是跨洋航行時采用的地理航程最短的航線。墨卡托投影后,經(jīng)緯度正交,經(jīng)緯度間相互平行且為直線,緯線間隔以赤道為起點,隨緯度的增加向兩級逐漸伸長,甚至在極地投影為無窮大,經(jīng)線為相互平行的直線且間隔相等。下面介紹一下墨卡托投影坐標(biāo)轉(zhuǎn)換的正反算方法。
如圖1,點A(φ,λ)經(jīng)過墨卡托投影得到新坐標(biāo)標(biāo)的點A'(x,y),其中φ0為標(biāo)準(zhǔn)緯度,λ0為標(biāo)準(zhǔn)經(jīng)度,e 為第一偏心率,e'為第二偏心率,a 為長半軸,b 為短半軸,墨卡托投影正解公式為:
其中
墨卡托的反解算公式可以采用牛頓迭代的方法進行解算,即已知q 求φ,方法如下:
圖1:墨卡托投影
其中:
迭代至|φi+1-φi|<10-7為止。
從地球上的一個航路點到另外一個航路點,以連接兩點之間的劣弧距離,即大圓航段算法所飛行路線是最短的。若將地球當(dāng)做圓球體,地球上兩點間的距離,以連接兩點的小于180 度的大圓弧長最短,其航程計算公式如下:
由于經(jīng)、緯度均有名稱和符號,在利用上式求取航程時,應(yīng)遵循以下規(guī)律:
(1)起始點緯度φ1一律取正值;到達點緯度φ2,與起始點同名時取正值,異名時取負(fù)值。
(2)經(jīng)差Dλ 一律取正值
(3)若按上述取值解算的cosS 為正值,則航程S 為小于5400n mile(90 度)的值;若為負(fù)值,則航程S 為大于5400n mile(90度)的值。
恒向線是利用墨卡托投影具有等角及恒向線為直線的特點而得出的計算方法,除了在等緯圈上航行外,其他任何場合都適用,計算公式為:
式中φ 為緯度,Dλ 為經(jīng)差,MP 為緯度見長率,式中的C 為恒向線航向,DMP 為到達點與起始點之間的緯度漸長率差。北緯取正,南緯取負(fù)。東經(jīng)取正,西經(jīng)取負(fù)。
船舶或者飛機在等緯圈上航行,即航向為90 度或者270 度時的航跡計算,雖然不能使用墨卡托算法,但是相關(guān)計算比較簡單,公式為:
本文采用將大圓航段進行多段式映射,將大圓航段航線投影到二維平面地圖上,且偏航距與地圖航線無明顯偏差。首先由導(dǎo)航設(shè)備給出從點,到點和當(dāng)前點經(jīng)緯度坐標(biāo),計算從點與到點之間的大圓航段距離,將距離作為分段標(biāo)準(zhǔn),如經(jīng)過30km 則進行一次分段,距離是一個經(jīng)驗值,可根據(jù)路程長短,精確度等要求進行縮小或者放大。通過距離將大圓航段分割成多個小段,計算每個小段的經(jīng)緯度,然后通過墨卡托投影公式計算二維平面X,Y 坐標(biāo)值,依次將二維平面內(nèi)所有點進行連接,則得到大圓航段航線投影。圖2 為程序流程圖,圖3 為不同投影航線方法效果對比圖。
其中綠色的線,是恒向線航程,也是原先大圓航段投影路線,通過直接將從點和到點連接成線得到,紅色曲線則是大圓航段在墨卡托地圖上的真正航程路線,而藍色線則是本文分段投影算法得到的航線,從圖上可以看出,直接連接航路點得到的航線投影與大圓航段真實航線投影相差較大,分段投影與大圓航段則重合度較高,但是仍存在部分分離的情況,這取決于分割段數(shù),距離可以很好的衡量分割段數(shù)。
圖2:程序流程圖
圖3:大圓航段、恒向線、分段投影對比圖
將恒向線與大圓航段算法距離算法轉(zhuǎn)換為程序語言,并將距離轉(zhuǎn)換為角度進行比較,其中g(shù)c 代表大圓航段,rh 代表恒向線。軟件的開發(fā)環(huán)境為macOs,編程語言為matlab 語言。對比實驗結(jié)果如表1 和表2 所示。
以上表格所有大圓航段航程均小于恒向線航程,在低緯度,南北航向或者短距離航程中,兩者差距不大,但仍是大圓航段表現(xiàn)更好,為此,選擇大圓航段為現(xiàn)代航程規(guī)劃的首選。
表1:經(jīng)度不變緯度小幅度變化大圓和恒向航程比較
表2:經(jīng)度逐漸增大,緯度范圍逐漸增大的大圓和恒向航程比較
為了能夠在墨卡托地圖上構(gòu)建出大圓航段,本文采用計算起始點和終點的距離,用距離進行分割,將大圓航段分割成多個恒向線,進行投影,這樣在一定程度上折線接近曲線,從而使實際飛行路線與地圖上顯示路線接近,為飛行員做出正確判斷做了引導(dǎo)。將大圓航段航程投影算法轉(zhuǎn)換為程序語言,嵌入到航電系統(tǒng)中的飛行軟件中。軟件的開發(fā)環(huán)境為tornado,編程語言為C 語言,硬件平臺為VxWorks 嵌入式系統(tǒng)。實驗結(jié)果如下:
以(N40,E120)為起始點,(S122,E30)為終點,為了在墨卡托地圖上實現(xiàn)大圓航段的映射,我們采用不同段數(shù)來分割大圓航段得出表3。
如圖4,從以上數(shù)據(jù)可以看出,隨著分割的段數(shù)越來越多,分割后的角度越接近大圓航段角度,角度越相近,距離越相近,但經(jīng)過分割得到的航程距離只會無限趨近大圓航段航程距離,并且不會大于恒向線航程距離。
假設(shè)從點(N53.3616666, E114.58002),到點(N52.3616666,E115.58002),當(dāng)前點為(N53.0016666,E114.9450)
從表4 可以看出,不進行插值計算時,大圓航段算法的偏航距和直接在地圖上投影計算的偏航距相差較大,而對大圓航段航線分段進行投影,得到的偏航距與真實偏航距誤差較小,驗證了算法的可行性,滿足了性能要求,同時降低了偏航距誤差,模擬出了大圓航段航程真實路徑。因插值數(shù)值越小,計算機處理的運算量越大,根據(jù)不用應(yīng)用環(huán)境,飛行航程距離等因素,選取不同的插值進行投影。
本文通過不同的實驗案例,分析了大圓航段和恒向線之間的差別與差距,在三維立體中,大圓航段是最短航線,恒向線則是保持等角特性,距離卻不是最短,在墨卡托投影平面上,恒向線表現(xiàn)為直線,而大圓航段則表現(xiàn)為曲線。大圓航段始終是優(yōu)于恒向線的,但是在低緯度和南北航向時,差距較小。本文改進大圓航段投影方法,利用距離將大圓航段分段投影在了墨卡托地圖上,分段投影后的偏航距與實際偏航距相差較小,很好的模擬了大圓航段航程的真實飛行路徑。本文算法在嵌入式系統(tǒng)中驗證其正確性,具有實際工程應(yīng)用價值。
表3:恒向線、大圓航段、分段投影比較
表4:恒向線、大圓航段、分段投影比較
圖4