本发明属于卫星导航领域,是卫星导航航海应用中一种大圆航线航路点划分与航程计算方法。
背景技术:
随着信息技术、卫星导航技术的发展,海用卫星导航设备的技术越来越复杂,功能越来越完善,智能化水平也在不断提高。当前,海用卫星导航设备除了计算和显示定位信息以外,具备导航和航路规划功能也成为海用卫星导航接收设备的重要指标之一。精确良好的航路规划和计算功能,能够为远距离航行的船舶提供最优路径,节省航行时间、提高经济效益。
大圆航行是指航线为一个圆,其原点在地心,大圆航线是跨洋航行时的最短航程航线,将地球当作圆球体时,地面上两点间的距离以连接两点的小于180°的大圆弧弧长为最短。所以理论上如果能将船舶始终保持在该圆弧之上,则沿大圆弧航行,航程为最短。但由于大圆弧与各子午线交角都不相等(沿赤道和子午线航行除外),船舶要想沿大圆航行,驾驶员就必须不停地设法确定当时船舶应执行的大圆航向,这在实际操作中是不可能的。所以以往所谓的大圆航线航行,并不是船舶不断变向、严格地沿大圆弧航行,而是对大圆航线进行分段近似,实际海上航行时为了便于操纵船只一般分段采用恒向线航线,即航向在该分段内保持不变,恒向线在墨卡托海图上表现为直线,但实际在地球表面上一般为球面螺旋曲线。
目前,在海用卫星导航设备大圆航线航路点划分与航程计算领域,国内对于该领域缺乏从大圆航线航路点划分到航程计算的有效方法,所以,作为海用卫星导航接收设备关键技术,其对船舶海上航行导航具有重要的意义。
技术实现要素:
为了克服现有技术的不足,本发明提供一种海用卫星导航设备大圆航线计算方法,能够快速精确的计算大圆航线等航程、等经度差划分出的各航路点经纬度、航程、航向以及大圆航线总航程。
本发明解决其技术问题所采用的技术方案包括以下步骤:
(1)根据大圆航线的起始点经纬度和到达点经纬度计算大圆航线弧长和初始航向Dλ为起始点和到达点的经度差;
(2)在大圆航线上按照等航程δ或等经度Δλ差划分航路点i=1,2,3…,等航程划分的航路点中,纬度经度λi=λ1+Ai,其中,Ai为起始点与航路点Di的经度差;等经度划分的航路点中,纬度经度λi=λ1+Δλ(i-1),其中,为大圆航线顶点的纬度,λV为大圆航线顶点的经度;
(3)计算任意纬线到赤道的子午线弧长和任意两条纬线的纬度渐长率差DMP=MP2-MP1,其中,a为地球椭圆体长半轴,e为地球椭圆体偏心率,纬线的纬度渐长率
(4)计算各航路点之间的航向和航程其中,和Dλ为相邻航路点间的纬差和经差;
(5)经过累加运算得到大圆航线的总航程N为大圆航线上航路点数量。
本发明的有益效果是:能够快速精确的计算大圆航线等航程、等经度差划分出的各航路点的经纬度、航程、航向以及大圆航线总航程信息。
附图说明
图1是大圆航线求解示意图;
图2是航路点航程、航向计算示意图;
图3是大圆航线弧长、起始航向计算示意图;
图4是大圆航线和各分航路点示意图;
图5是子午圈示意图;
图6是墨卡托航法示意图。
具体实施方式
下面结合附图和实施例对本发明进一步说明,本发明包括但不仅限于下述实施例。
本发明在已知大圆航线起始位置和结束位置经纬度的情况下,通过设置大圆航线上各航路点,或者按照等航程、等经度差方法划分出航路点再计算出大圆航线各个航路点的经纬度;大圆航线上航路点确定后,就可以计算出航路点之间的航向、航程,最后累加得到大圆航线的总航程。该方法基于两个假设:1、大圆航线上各航路点已设置或者按照等航程差、等经度差生成;2、大圆航线上各个航路点之间按照恒向线航行。
本发明包括如下步骤:
步骤一:计算大圆航线的弧长和起始航向;
步骤二:计算大圆航线上等航程或等经度差划分航路点;
步骤三:计算子午线弧长和纬度渐长率差;
步骤四:计算航路点间恒向线航程、航向;
步骤五:计算大圆航线总航程。
所述步骤一具体为:首先设置大圆航线起始点和到达点,主要包括起始点和到达点的经纬度位置;根据大圆航线的起始点和到达点计算出大圆航线的弧长和初始航向信息。
所述步骤二具体为:在大圆航线上按照等航程或者等经度差的方法划分航路点,根据各航路点与大圆航线的关系,求解球面三角函数,解出各个航路点的经纬度位置信息。
所述步骤四具体为:依据各个航路点的经纬度位置信息,采用恒向线计算方法,计算出航路点之间的航向和航程信息。
大圆航线的航程为大圆的弧长,为两点之间在球面上的最短距离,但是大圆航线的航向并非一个固定值,而是一个变化的值,在实际航海导航中,很难做到航向不断的随大圆航线而,因此大圆航线上各个航路点之间的航线航程使用恒向线方法计算,虽然不是球面上最短距离,但是可以保证两个航点之间航向为一个固定值。
假设大圆航线如图1所示,大圆航线起始点为到达点为两点经纬度均已知,且设定北纬、东经为正值,南纬、西经为负值。
其中(i=1,2,3…)为大圆航线上的某一个分段航路点,Ai为起始点与航路点Di的经差,Si为起始点至Di的弧长,P为极点,假设以等航程δ或者等经度差Δλ划分大圆航线生成各航路点,则通过求解球面三角形可以得到大圆航线的弧长、初始航向以及大圆航线上等航程、等经度差产生的各个航路点的经纬度位置,其计算表达式分别为:
大圆航线弧长计算表达式:
初始航向计算表达式为:
假设以等航程δ或者等经度差Δλ划分大圆航线生成各航路点,则通过求解球面三角形函数可以得到大圆航线上等航程、等经度差产生的各个航路点的经纬度位置。
等航程差划分大圆航线时,大圆航线上任一航路点(不包括起始点和到达点)(i=1,2,3…)纬度计算表达式为:
经度计算表达式为:
λi=λ1+Ai i为整数且1<i<N (4)
其中λ1为大圆航线起始航路点的经度,Ai为大圆航线起始点与某一航路点Di的经度差。
等经度差划分大圆航线时,大圆航线上任一航路点(不包括起始点和到达点)(i=1,2,3…)纬度计算表达式为:
其中为大圆航线顶点的纬度,λV为大圆航线顶点的经度。
经度计算表达式为:
λi=λ1+Δλ(i-1) i为整数且1<i<N (6)
其中λ1为大圆航线起始航路点的经度,Δλ为等经度差划分大圆航线的划分间隔。
航海导航实际使用中,大圆航线航程最短,但是其航向不断发生变化,因此一般对大圆航线使用航路点进行分段近似,航路点之间的航程按照恒向线方法航行和计算,可保证航向角在该段航程中固定不变。
如图2,β为纬度,γ为经度,A为航向角,OB和CD为两条平行圈,OD和BC为两条子午线。计算椭球面微分三角形OBC,求解恒向线微分方程可解出航路点间航程OC和航向角A。
计算航路点之间恒向线航程之前需要首先计算子午线弧长L和纬度渐长率差DMP,利用L和DMP可依次计算出各航路点之间的航向Ci和航程Si,经过累加运算可得到大圆航线的总航程SD。
本发明的实施例包括以下步骤:
步骤一:计算大圆航线的弧长和起始航向:
已知大圆航线起始点为到达点为如图3,两点经纬度均已知。
计算球面三角形PNAB则大圆航线弧长S的计算表达式为:
其中Dλ为起始点至到达点经度差,计算表达式为:
Dλ=|λ1-λ2| (8)
同时可得大圆航线起始航向C1的计算表达式为:
由于经纬度均有名称和符号,在利用以上公式求取航向和航程时可使用以下规律:
1、起始点纬度,无论南北一律取正值,到达点纬度与起始点纬度同名时取正值,与起始点纬度异名时取负值。
2、其中Dλ为起点和终点的经度差,经度差不论东或西一律取正值。
3、若按照上述公式计算的cos(S)为正值,则航程S为小于5400n mile(90°)的值;若cos(S)为负值,则航程S为大于5400n mile(90°)的值。
4、按照上述取值,求取始航向时,求得的航向为用半圆周法表示的值(0°~180°),其命名的第一个字母与起始点纬度同名,第二个字母与经差同名。如果求得的函数值为负,则航向取大于90°小于180°的值,(即如果COSCI为负值,直接球反三角函数即可;如果tanCI为负值,则求出的CI为负值,应加上180°换算为大于90°小于180°的值)。最后将用半圆周发表示的航向换算为用圆周法表示的即可。
步骤二:计算大圆航线上等航程或等经度差划分航路点
1、等航程划分航路点
大圆航线与各航路点的关系如图4所示,假设弧AD为一条大圆航线,线段AB、BC、CD将大圆航线的弧长分段进行了内接法近似,AB、BC、CD之间按照恒向线航行航向固定。
其中A、B、C、D为大圆航线上划分出来的航路点。航路点的划分一般按照实际航海需要划分,也可以按照等航程或等经度差等方法划分,方法如下:
1、等航程划分航路点
假定设置的等航程间距为δ,大圆航线弧长为S,则可得大圆航线航路点数量N的计算表达式为:
即为,大圆航线弧长S与等间隔航程δ相除后,向上取整得到的值N。
等航程划分后的航路点经纬度的计算如图1中,分别为大圆航线的起始点与到达点,其经纬度均已知,且北纬、东经取正值,南纬、西经取负值。(i为整数且1<i<N)为划分出的大圆航线上的某一航路点。Ai为起始点与航路点Di的经差,Si为起始点至航路点Di的弧长,等航程划分大圆航线时有Si=δ,P为极点,则在球面三角形PDiD1可得为:
所以可得分航路点的纬度的计算表达式为:
计算球面三角形可得
所以,可得大圆航线起始点与航路点Di的经度差计算表达式为:
于是可得大圆航线分航路点的经度λi的计算表达式为:
λi=λ1+Ai (15)
其中λ1为大圆航线起始航路点的经度,Ai为大圆航线起始点与某一航路点Di的经度差。
2、等经度差划分航路点
假设设置的划分大圆航线的等经度差的为Δλ,则在已知大圆航线弧长S和航向CI的情况下,可得大圆航线上航路点数量N的计算表达式为:
其中Dλ为大圆航线起始点和到达点的经度差,计算方法见式(8)。
等经度差划分后的航路点经纬度计算方法如图2中,分别为大圆C航线的起始点与到达点,它们的经纬度均已知,且北纬、东经取正值,南纬、西经取负值。假设由步骤一已计算得到大圆航线的弧长为S,初始航向为CI;大圆航线的起始点纬度根据南北纬取值,北纬为正,南纬为负;到达点的纬度若与同名,取正值,异名则取负值。
计算大圆航线初始航向的半圆航向,计算表达式如下:
大圆航线顶点是大圆航线上纬度达到的最高点(大圆航线上纬度值最大的点),在该点大圆弧与子午线相交成直角,大圆航向为90°或270°。大圆航线顶点坐标可按以下公式求取:
其中,DλV为起始点至大圆航线顶点的经差,为大圆航线顶点的纬度,λV为大圆航线顶点的经度。
因此,大圆航线各分航路点按照等经度划分,各航路点的经度λi的计算公式为:
λi=λ1+Δλ(i-1) i为整数且1<i<N (19)
其中N为大圆航线上等经度差划分出的航路点数量计算方法见公式(13),通过求解球面三角形可知:
进一步可得,各航路点纬度的计算表达式为:
步骤三:计算子午线弧长和纬度渐长率差
在较为准确的航海计算中,应将大地球体当作两极略扁的地球椭圆体,才能得出有足够精度的结果。地球旋转椭圆体的旋转椭圆,即子午圈,如图5所示:其中,为地理纬度(椭圆子午线上某点的法线与赤道面的交角);a为地球椭圆体长半轴;b为地球椭圆体短半轴;r为某地(A点)所在纬度的等纬圈半径,按下式计算
A点的椭圆子午线的曲率半径M为
式(22)和式(23)中:e为地球椭圆体偏心率。参数a和e在不同的大地坐标系中取值不同,计算时应根据所使用海图的坐标系进行选取,如常用的WGS84坐标系中a=6 378 137m,e=0.081 819 190 842 621 5。从任意一条纬线到赤道的子午线弧长,用L表示,则有
对式(24)积分可得:
按照泰勒级数展开积分式中的函数再积分,并以海里为单位,便可得到任意纬线到赤道的子午线弧长L的计算表达式为:
其中:
则任意两条纬线和之间的子午线弧长DL计算表达式为:
DL=L2-L1 (30)
如将L投影到墨卡托海图上,根据墨卡托等角正圆柱投影原理,可得该纬度的纬度渐长率MP的计算表达式为:
将自然对数函数改以双曲函数表示,并以1′(1分)经度长度作为单位的长度。
因为a=1经度分Parc1′=180×60Pπ=10 800Pπ,则
任意两纬线在墨卡托海图上的距离即纬度渐长率差DMP计算表达式为:
DMP=MP2-MP1 (33)
步骤四:计算航路点间恒向线航程、航向
假设航路点A经纬度和航路点B经纬度在计算两点之间的恒向线航向和航程中,首先要计算两点间的纬差和经差Dλ,其计算公式为
计算时将北纬取为正值(+)、南纬取为负值(-);东经取为正值(+)、西经取为负值(-);求其代数和。纬差的范围为-90°~+90°;经差Dλ的范围为-180°~+180°,当(λ2-λ1)>180°时
Dλ=-360°+λ2-λ1 (35)
当(λ2-λ1)<-180°时
Dλ=360°+λ2-λ1 (36)
1、当纬度差时航向和航程的计算
当纬差时,表明航线位于等纬度圈上。如两点间经差Dλ>0,则恒向线航向为正东,即C=90°;如Dλ<0,则恒向线航向为正西,C=270°,即
C=[2-sgn(Dλ)]·90° (37)
其中:sgn(·)为取符号值。此时,恒向线航程S即为两点间的等纬圈弧长,并统一到以法定海里值为单位,有
2、当经差Dλ=0时恒向线航向和航程的计算模型
当经差Dλ=0时,表明船舶沿子午线航行。如两点间纬差则恒向线航向为正北,即C=0°;如则恒向线航向为正南,C=180°,即
此时,两点间的恒向线航程S,在简单的航海计算中按地球圆球体计算,在精确计算时,应按地球椭圆体计算,即
S=|Dλ| (40)
3、当Dλ≠0时,恒向线航向和航程的计算模型
当Dλ≠0时,恒向线航线在地球椭圆体表面上表现为一条球面螺旋曲线。为了解决此时恒向线航向的计算问题,将恒向线投影到墨卡托海图上。设船舶从起航点A航行至到达点B,投影到墨卡托海图上,分别为A′和B′,恒向线直线A′B′与对应的经线和纬线构成一个直角三角形,如图6所示。
ΔΑ′B′C′表示纬度渐长率DMP、经差Dλ和恒向线航向C的关系,显然有
由于arctan(Dλ/DMP)的范围为-90°~+90°,而圆周法航向C的范围为0°~360°,因此,航向计算公式为
恒向线航程S表现为线段长度由等角投影可得航程S的计算表达式为:
其中DL为子午线弧长,计算方法见式(26)。
步骤五:计算大圆航线总航程
大圆航线的总航程为航路点间分段航程的累加。假设大圆航线上航路点数量为N,航路点为(i为整数且1≤i≤N),其中为各航路点纬度,λi为各航路点经度。假设利用式(38)、(40)、(44)计算得到航路点Di和Di+1之间的航程为Si(1≤i≤N-1),则大圆航线总航程SD的计算表达式为: