主要内容

使用行星星历表的海洋导航

这个例子展示了如何使用行星星历表和地球中心惯性到地球中心地球固定(ECI到ECEF)转换来执行海洋船只的天体导航。

本例使用Mapping Toolbox™。方法下载示例的数据aeroDataPackage函数。

astCelestialNavigationExampleMap.jpg

本例使用1947年康提基探险队穿越太平洋的路线。由Thor Heyerdahl带领的探险队,旨在证明波利尼西亚群岛在哥伦布发现美洲大陆之前居住着南美人的理论。这次探险历时101天,从秘鲁的卡亚俄港口航行到法属波利尼西亚的拉罗亚环礁。

astCelestialNavigationExampleVessel.jpg

注:这个例子松散地重现了探险路线。简单地给出了行星星历表和ECI到ECEF的转换。

载重船航迹

加载astKonTikiData。垫文件。它包含本例中的船舶轨迹、速度和航向。该文件分别存储变量“lat”和“long”中不同轨道点的纬度和经度。这些变量包含了从卡亚俄港到拉罗亚环礁每天一个航迹点的足够数据。该文件还存储了每天的船舶速度(以节/日“V”为单位)和航向(以度“T”为单位)的值。

负载astKonTikiData

创建一个观察结构

航海还原过程是导航员为确定船只的经纬度而遵循的一系列步骤。它基于《美国实用导航员》[1]、《航海年鉴》[2]和《天文年鉴》[3]中描述的理论。该过程使用从六分仪、时钟、指南针和航海图获得的观测数据。它返回每个被观测对象的截距(p)和真实方位角(Z)。这个例子使用了一个观测结构阵列,奥林匹克广播服务公司,以包含观测数据。结构数组的字段是:

  • h:观测者的视距高度,单位为m。

  • 集成电路:六分仪的指数校正,以度为单位。

  • P:当地环境压力,单位mb。

  • T:当地温度,单位为C。

  • 一年:观测时的当地年份。

  • :观测时的当地月份。

  • 一天:观测时的当地日。

  • 小时:观测时的当地小时。

  • UTC:用于观测的协调世界时,用年、月、日、时、分、秒六个元素向量表示。

  • 海关:地平线上天体的六分仪高度,以度为单位。

  • 对象:用于测量的天体(即木星、海王星、土星等)。

  • 纬度:船只在观测时的估计纬度,单位:度。

  • 经度:船在观测时的估计经度,单位:度。

  • 赤纬:天体的赤纬,以度数表示。

  • 高度:从地球表面到天体的距离,单位为千米。

  • GHA:格林尼治时角,是天体相对于格林尼治子午线的角度。

为简单起见,假设所有测量都是在船上相同的位置,使用相同的六分仪,在相同的环境温度和压力下进行的:

Obs.h = 4;奥林匹克广播服务公司。集成电路= 0; obs.P = 982; obs.T = 15;

探险队于1947年4月28日出发。因此,初始化这个日期的观测结构:

奥林匹克广播服务公司。年份:1947;奥林匹克广播服务公司。米onth = 4; obs.day = 28;

初始化导航航迹推算过程

要开始航位推算过程,首先要确定船只位置的初始条件。中的经纬度和纬度的固定解决方案存储纬度latFix而且longFix变量,分别。在本例中,对于第一个固定位置,使用秘鲁Callao的经度和纬度。

longFix = 0 (size(long));latFix = 0 (size(lat));longFix(1) = long(1);latFix(1) = lat(1);

每日航迹推算

对于本例,假设使用观测数据每天获得一个修正。因此,本例对每个观察使用了“for循环”。的变量作为一个计数器,表示自离开港口以来的每一天。

M = 1:size(lat,1)-1

增加日期并对6月和4月的日期进行调整,这两个月都只有30天。

奥林匹克广播服务公司。一天= obs.day + 1; [obs.month,obs.day] = astHelperDayCheck(obs.year,obs.month,obs.day);

实际经纬度

从之前装载的航迹点中提取船舶每天的实际位置。这个例子使用这个值来计算本地时区和所选行星在天空中的位置。

longActual = long(m+1);latActual = lat(m+1);

地球选择

如果在给定的纬度和经度下,船只可以看到行星,则选择要观测的行星。下面的代码使用预先计算的数据。

如果longActual > -90奥林匹克广播服务公司。对象= {“土星”“海王星”};elseiflongActual<=-90 && longActual>-95 obs。对象= {“土星”“海王星”“木星”};elseiflongActual < = -95奥林匹克广播服务公司。对象= {“海王星”“木星”};结束

UTC时间计算

根据所假设的经度将本地时间调整为UTC。对于本例,假设所有观测都是在每天同一时间(当地时间晚上8点)进行的。

奥林匹克广播服务公司。小时= 20;

在航迹推算过程中,用当前位置的估计更新观测结构。在这种情况下,位置是使用之前的定位,即船只的速度来估计的V,当然T

奥林匹克广播服务公司。经度= longFix (m) + (1/60) * V (m) *信德(T (m)) / cosd (latFix (m));奥林匹克广播服务公司。纬度= latFix(m)+(1/60)*V(m)*cosd(T(m));

使用helper函数将本地时间调整为UTCastHelperLongitudeHour.该函数根据船只的估计经度调整UTC观测时间。

奥林匹克广播服务公司。UTC= astHelperLongitudeHour(obs);

六分仪高度计算

对于每一个行星,astHelperNauticalCalculation辅助函数计算六分仪的测量,在康提基船员将测量。这个函数模拟了行星的实际行为,同时补偿了当地的条件。该函数使用行星星历表和ECI到ECEF转换矩阵。分析不包括行星像差、引力光偏转和光现象的像差。

奥林匹克广播服务公司。海关= astHelperNauticalCalculation(obs,latActual,longActual);

计算位置

下面的计算取代了航海年历的使用。它们包括行星星历表的使用和ECI到ECEF转换矩阵。

初始化被观测物体的赤纬、格林威治时角(GHA)和高度。

obs.衰落=零(大小(obs.Hs));奥林匹克广播服务公司。GHA= zeros(size(obs.Hs)); obs.altitude = zeros(size(obs.Hs));

为测量时间计算修改后的儒略日。

mjd = mjuliandate(obs.UTC);

计算UT1和UTC之间的差值:

dUT1 = deltaUT1(mjd,“行动”“没有”);

使用美国海军天文台的TAI-UTC (dAT)值计算ECI到ECEF的转换矩阵。

dAT = 1.4228180;TM = dcmeci2ecef(iau - 76 / FK5 ', dAT obs.UTC dUT1);

计算地球时间的儒略日,以近似于地心动力时间。

jdTT = juliandate(obs.UTC)+(dAT+32.184)/86400;

计算每个天体的赤纬、格林尼治时角和高度。

k = 1:长度(obs.object)

计算每个行星的ECI位置。

posECI = planetEphemeris(jdTT,“地球”, obs.object {k},“405”“公里”);

计算每个行星的ECEF位置。

posECEF = TM*posECI';

利用ECEF位置计算格林尼治时角(GHA)和赤纬。

obs.GHA(k) = -atan2d(posECEF(2),posECEF(1));obs. decline (k) = atan2d(posECEF(3),根号(posECEF(1)^2 +...posECEF (2) ^ 2));

使用ECEF to LLA转换函数计算从地球表面到行星中心的距离。

posLLA = ecef2lla(1000*posECEF');obs. height (k) = posLLA(3);结束

行星物体的视力降低

减少观测结构阵列中指定的每个行星的视线。

[p,Z] = elpernauticalreduction (obs);

使用这些公式计算从上一个修复到当前修复的经纬度增量。这些公式是根据航海年鉴编制的。

Ap = sum(cosd(Z).^2);Bp = sum(cosd(Z).*sind(Z));Cp = sum(sind(Z).^2);Dp = sum(p.*cosd(Z));Ep = sum(p.*sind(Z));Gp = Ap*Cp-Bp^2;

根据还原计算经纬度的增量。

deltaLongFix = (Ap*Ep-Bp*Dp)/(Gp*cosd(latFix(m)));deltaLatFix = (Cp*Dp-Bp*Ep)/Gp;

计算出经纬度的增量后,将其添加到估计位置,获得观测时间的固定值。

longFix(m+1) = obs。经度+ deltaLongFix; latFix(m+1) = obs.latitude + deltaLatFix;结束

导航方案可视化

该图显示了实际的轨道和视线缩小解决方案。金宝搏官方网站

astHelperVisualization (lat, longFix latFix,“阴谋”

图中包含一个轴对象。axis对象包含2个line类型的对象。这些对象代表轨道,减少解决方案。

图中包含2个轴对象。“纬度和经度”中标题为“相对错误”的坐标轴对象1包含一个line类型的对象。坐标轴对象2包含一个line类型的对象。

您可以使用“绘图工具箱”获取描述美洲大陆和法属波利尼西亚的视力降低解决方案的更详细的图表。金宝搏官方网站

如果内装式(“许可证”“测试”“MAP_Toolbox”) astHelperVisualization (lat, longFix latFix,“地图”结束

图中包含一个轴对象。axis对象包含544个类型为patch、line、text的对象。

经纬度的相对误差是随着船从卡亚俄航行到拉罗亚而累积起来的。这个误差是由于六分仪测量高度时的小误差造成的。对于6月9日,还原方法计算出海王星和木星的真实方位角(Z)。海王星和木星的真实方位角接近180度。这种差异导致相对误差的一个小峰值。然而,这个错误仍然在减少方法的错误边界之内。

参考文献

[1]鲍迪奇,N.美国实用航海家。国家地理空间情报局,2012。

[2]英国水道测量局。航海年历2012商业版。天堂出版公司,2011年。

[3]厄本,肖恩·e·p·肯尼斯·塞德尔曼。《天文年历解释补遗》,《大学科学图书》2013年第3版。

[4]美国海军天文台。