pub package likes points popularity license stars sdk version

TLE(两行根数)和 NORAD SGP4/SDP4/SGP8/SDP8 在 Dart 和 Flutter 中的实现。

功能

  • TLE(两行根数)解析。
  • 开普勒元素。
  • SGP4、SDP4、SGP8 和 SDP8 实现。
  • 卫星轨道传播。
  • 卫星的升起和落下时间。
  • 从地球观察者位置计算视线角度。
  • 地球 WGS72 和 WGS84 以及通用行星。
  • 地面轨迹计算。

用法

在您的 pubspec.yaml 文件中添加

dependencies:
  orbit: any

然后,在您的代码中导入

import 'package:orbit/orbit.dart';

附加信息

开普勒元素

定义卫星轨道需要七个数字。这组七个数字称为卫星轨道元素,有时也称为“开普勒”元素(以约翰内斯·开普勒 [1571-1630] 的名字命名),或简称为元素。这些数字定义了一个椭圆,将其相对于地球定向,并在特定时间将卫星放置在该椭圆上。在开普勒模型中,卫星以恒定形状和方向的椭圆绕地球运行。地球位于椭圆的一个焦点上,而不是中心(除非轨道椭圆实际上是一个完美的圆)。

真实世界比开普勒模型稍微复杂一些,跟踪程序通过对开普勒模型进行微小修正来弥补这一点。这些修正称为摄动。业余跟踪程序已知的摄动是由于地球引力场的“不规则性”(幸运的是您不必指定这一点)以及由于大气阻力对卫星造成的“阻碍”。阻力成为可选的第八个轨道元素。

轨道元素对大多数人来说仍然是一个谜。我认为这是因为许多人(包括我)都厌恶三维思考,而且因为古代天文学家给这七个简单的数字和一些相关概念起了可怕的名字。为了让事情变得更糟,有时会使用几个不同的名称来指定相同的数字。词汇是天体力学中最难的部分!

基本的轨道元素是

  • 历元
  • 倾角
  • 升交点赤经
  • 近地点幅角
  • 偏心率
  • 平近点率
  • 平近点角
  • 阻力(可选)

历元

一组轨道元素是在特定时间点的卫星轨道快照。历元只是一个数字,用于指定拍摄快照的时间。

倾角

轨道椭圆位于一个称为轨道平面的平面内。轨道平面始终穿过地心,但相对于赤道可以倾斜任何角度。倾角是轨道平面与赤道平面之间的夹角。按照惯例,倾角是 0 到 180 度之间的数字。

倾角接近 0 度的轨道称为赤道轨道(因为卫星几乎保持在赤道上方)。倾角接近 90 度的轨道称为极轨道(因为卫星会飞越南北极)。赤道平面和轨道平面之间的交线称为节点线。稍后会详细介绍。

升交点赤经

两个数字用于确定轨道平面在空间中的方向。第一个数字是倾角。这是第二个。在指定了倾角之后,仍然存在无数可能的轨道平面。节点线可以指向赤道上的任何地方。如果我们指定节点线指向赤道的哪个位置,我们就完全确定了轨道平面。节点线当然会指向两个位置。其中一个称为升交点(卫星从南向北穿过赤道的地方)。另一个称为降交点(卫星从北向南穿过赤道的地方)。按照惯例,我们指定升交点的位置。

现在,地球在旋转。这意味着我们不能使用常见的经纬度坐标系来指定节点线指向何处。相反,我们使用一个称为赤经/赤纬的天文坐标系,该坐标系不随地球旋转。赤经是另一个术语,用于表示一个角度,在这种情况下,是从天空中的一个参考点测量的角度,该参考点的赤经定义为零。天文学家将这一点称为春分点。

最后,“升交点赤经”是从地心测量的,从春分点到升交点的角度。

我知道这变得复杂了。举个例子。画一条从地心到我们的卫星穿过赤道(从南向北)的点。如果这条线直接指向春分点,那么 RAAN = 0 度。

按照惯例,RAAN 的范围是 0 到 360 度。

我上面使用了“春分点”这个词,但没有真正定义它。如果您能容忍一个小小的离题,我现在就做。老师们多年来告诉孩子们,春分点是“太阳在春天第一天升起的地方”。这是一个糟糕的定义。大多数老师和学生都不知道春天第一天是什么(除了日历上的一个日期),也不知道为什么太阳每年在那一天都会出现在天空中同一位置。

您现在已经掌握了足够的天文学词汇来获得更好的定义。考虑太阳绕地球的轨道。我知道在学校他们告诉您地球绕太阳运行,但数学上两种方式都是有效的,而且适合我们当前的需求,让我们考虑太阳绕地球运行。太阳的轨道倾角约为 23.5 度。(顺便说一句,天文学家通常不称这个 23.5 度的角度为“倾角”。他们使用一个更模糊的名字:黄道倾角。)太阳的轨道被(人类)划分为四个大小相等的时期,称为季节。其中称为“春天”的季节始于太阳升过赤道。换句话说,春天第一天就是太阳从南向北穿过赤道平面的那一天。我们为此有一个名字!它是太阳轨道上的升交点。所以最后,春分点只不过是太阳轨道上的升交点。太阳轨道的 RAAN 为零,仅仅因为我们已经将太阳的升交点定义为所有升交点的测量起点。您的卫星轨道的 RAAN 只是(在地心测量的)太阳轨道升过赤道的地方和您的卫星轨道升过赤道的地方之间的角度。

近地点幅角

现在我们已经确定了轨道平面在空间中的方向,我们需要确定轨道椭圆在轨道平面中的方向。我们通过指定一个称为近地点幅角的角度来做到这一点。

关于椭圆轨道的一些说明……卫星离地球最近的点称为近地点,尽管有时也称为近心点或近圆点。我们称之为近地点。卫星离地球最远的点称为远地点(又称远心点或远圆点)。如果我们画一条从近地点到远地点的线,这条线称为近地点线。(当然,近地点是近心点的复数形式。)我知道,这又变得复杂了。有时近地点线称为椭圆的长轴。它只是穿过椭圆的“长边”的线。

近地点线穿过地心。我们已经确定了另一条穿过地心的线:节点线。这两条线之间的角度称为近地点幅角。当两条线相交时,它们形成两个互补角,所以要具体说明,我们说近地点幅角是从升交点到近地点的角度(在地心测量)。

示例:当 ARGP = 0 时,近地点与升交点发生在同一位置。这意味着卫星将在升过赤道的同时最接近地球。当 ARGP = 180 度时,远地点将与升交点发生在同一位置。这意味着卫星将在升过赤道的过程中离地球最远。

按照惯例,ARGP 的角度在 0 到 360 度之间。

偏心率

这个很简单。在开普勒轨道模型中,卫星轨道是一个椭圆。偏心率告诉我们椭圆的“形状”。当 e=0 时,椭圆是圆。当 e 非常接近 1 时,椭圆又长又瘦。

确切地说,开普勒轨道是一个圆锥曲线,它可以是椭圆(包括圆)、抛物线、双曲线或直线!但是在这里,我们只对椭圆轨道感兴趣。其他类型的轨道不用于卫星,至少不是故意的,跟踪程序通常不会编程来处理它们。

就我们而言,偏心率必须在 0 <= e < 1 的范围内。

平近点率

到目前为止,我们已经确定了轨道平面的方向、轨道椭圆在轨道平面中的方向以及轨道椭圆的形状。现在我们需要知道轨道椭圆的“大小”。换句话说,卫星离我们有多远?

开普勒第三定律给出了卫星速度与其离地距离之间的精确关系。靠近地球的卫星运行速度很快。遥远的卫星运行速度很慢。这意味着我们可以通过指定卫星的速度或其离地距离来实现相同的结果!

圆形轨道上的卫星以恒定速度运行。简单。我们只需指定该速度即可。非圆形轨道(即偏心率 > 0)上的卫星在靠近地球时速度更快,在远离地球时速度更慢。通常的做法是平均速度。您可以将此数字称为“平均速度”,但天文学家称之为“平近点率”。平近点率通常以每天的轨道数给出。

在此上下文中,一个轨道或周期被定义为从一个近地点到下一个近地点的时间。

有时会指定“轨道周期”作为轨道元素而不是平近点率。周期只是平近点率的倒数。例如,平近点率为每天 2 轨道的卫星,其周期为 12 小时。

有时会指定半长轴(SMA)而不是平近点率。SMA 是轨道椭圆长度(长边测量)的一半,并且可以通过一个简单的方程与平近点率直接相关。

通常,卫星的平近点率范围在 1 轨/天 到约 16 轨/天 之间。

平近点角

现在我们已经牢固地确定了轨道的尺寸、形状和方向,最后要做的是指定卫星在特定时间在这个轨道椭圆上的确切位置。我们的第一个轨道元素(历元)指定了一个特定时间,所以我们现在需要做的就是指定在历元时间卫星在椭圆上的位置。

近点角是另一个天文学术语,表示角度。平近点角是一个角度,它在一个轨道周期内从 0 匀速增加到 360 度。它被定义为在近地点为 0 度,因此在远地点为 180 度。

如果您有一颗在圆形轨道上的卫星(因此以恒定速度运行),并且您站在地心并从近地点测量这个角度,您将直接指向卫星。非圆形轨道上的卫星以非恒定速度移动,因此这个简单的关系不成立。然而,这个关系对于轨道上的两个重要点仍然成立,无论偏心率如何。近地点始终发生在 MA = 0,远地点始终发生在 MA = 180 度。

业余无线电卫星使用平近点角来安排卫星操作已经变得普遍。卫星经常在它们的轨道上的特定位置改变模式或开启/关闭,这些位置由平近点角指定。不幸的是,当这样使用时,通常会以圆的 256 分之一而不是度来指定 MA!一些跟踪程序在显示这些单位的 MA 时使用“相位”一词。当作为轨道元素输入时,它仍然以度为单位,介于 0 和 360 之间。

示例:假设 Oscar-99 的周期为 12 小时,并且在相位 240 到 16 之间关闭。这意味着它关闭了 32 个相位刻度。整个 12 小时轨道中有 256 个这样的刻度,所以它关闭了 (32/256)x12 小时 = 1.5 小时。请注意,关闭时间以近地点为中心。高度椭圆轨道的卫星通常在近地点附近关闭,因为它们移动速度最快,因此难以使用。

阻力

地球大气层引起的阻力会导致卫星向下螺旋。当它们向下螺旋时,它们的速度会加快。阻力轨道元素只是告诉我们平近点率因阻力或其他相关效应而改变的速率。精确地说,阻力是平近点率一阶时间导数的一半。

其单位是每天每天的轨道数。它通常是一个非常小的数字。低地球轨道卫星的常见值在 10^-4 数量级。高轨道卫星的常见值在 10^-7 或更小数量级。

偶尔,高轨道卫星已发布的轨道元素会显示负阻力!起初,这似乎是荒谬的。由于与地球大气的摩擦引起的阻力只能使卫星向下螺旋,而不能向上。

负阻力有几个潜在原因。首先,产生轨道元素的测量可能存在误差。通常需要根据在短时间内进行的少量观测来估计轨道元素。通过这些测量,很难估计阻力。非常普通的测量误差可能会导致小的负阻力。

已发布元素中负阻力的第二个潜在原因稍微复杂一些。卫星除了我们到目前为止讨论的两种力(地球引力、大气阻力)之外,还受到许多其他力的影响。其中一些力(例如太阳和月亮的引力)可能共同作用,导致卫星被极少量地向上拉。如果太阳和月亮与卫星的轨道以特定方式对齐,则可能发生这种情况。如果在发生这种情况时测量轨道,一个小的负阻力项实际上可以为时间内的实际卫星运动提供最佳的“拟合”。

您通常希望一组轨道元素能够长时间(通常是几个月)相当好地估计卫星的位置。负阻力永远无法准确反映长时间内发生的情况。一些程序会接受负的阻力值,但我不同意。您可以随意用零替换任何已发布的负阻力值。

其他卫星参数 下面描述的所有卫星参数都是可选的。它们允许跟踪程序提供更多可能有用或有趣的信息。

历元时的轨道数

这告诉跟踪程序从发射到“历元”指定的时间,卫星已经环绕地球运行了多少次。Epoch Rev 用于计算跟踪程序显示的轨道数。如果发现来自 NASA 的轨道元素集对于 Oscar-10 和 Oscar-13 的 Epoch Rev 值不正确,请不要惊讶。计算卫星轨道的专家们并不怎么关注这个数字!在本文撰写之时 [1989],来自 NASA 的元素对于 Oscar-10 和 Oscar-13 的 Epoch Rev 值不正确。除非您出于自己的记账目的使用轨道数,否则您不必担心 Epoch Rev 的准确性。

姿态

航天器姿态是衡量卫星在空间中如何定向的指标。希望它能够定向,使其天线指向您!卫星使用几种定向方案。Bahn 坐标仅适用于旋转稳定的航天器。旋转稳定的卫星保持恒定的惯性方向,即其天线指向空间中一个固定的方向(示例:Oscar-10、Oscar-13)。这也被称为 Bahn 坐标。

Bahn 坐标由两个角度组成,通常称为 Bah n 纬度和 Bahn 经度。这些数据不时在各种业余卫星出版物中发布,用于椭圆轨道的业余无线电卫星。理想情况下,这些数字保持不变,除非航天器控制人员正在重新定向航天器。实际上,它们会缓慢漂移。

对于高度椭圆轨道(Oscar-10、Oscar-13 等),这些数字通常在 0,180 附近。这意味着当卫星处于远地点时,天线直接指向地球。

这两个数字描述了球坐标系中的一个方向,就像地理纬度和经度描述了从地心指向一个方向一样。然而,在这种情况下,主轴沿着从卫星到地心的矢量方向,当卫星处于近地点时。

在 Phil Karn 的《Bahn 坐标指南》中可以找到对 Bahn 坐标的出色描述。

GitHub

查看 Github