使用 PREDICT 追踪卫星
当 1957 年 10 月 4 日人造卫星 Sputnik 1 被发射入轨道时,太空时代诞生了,科学、工程和技术领域从此永远地改变了。据最新统计,有来自 30 多个国家的 8500 多个有效载荷在地球轨道上运行。所有这些航天器都受到地球引力场的束缚,它们的运动可以用艾萨克·牛顿和约翰内斯·开普勒等科学家在数百年前发现的简单的引力和行星运动原理来描述。
今天,地球轨道卫星服务于多种目的,并在全球定位和导航、通信网络、科学探索、地球资源研究、国防、天气监测和教育中发挥重要作用。美国太空司令部 (USSPACECOM)(前身为 NORAD)与美国国家航空航天局 (NASA) 一起,使用雷达和光学测距技术密切追踪地球轨道上数千个人造物体,并提供适合轨道建模和对非保密有效载荷进行开放式追踪的轨道数据。凭借一套精确的轨道参数,就有可能确定卫星在地球轨道上的速度以及过去、现在和未来的位置,其精度足以满足许多科学和工程应用的需求。
PREDICT 旨在为 Linux 操作系统带来一款多功能、开源的卫星追踪和轨道预测应用程序。PREDICT 改编自大约十年前为当时流行的 Commodore 64 家用电脑开发的早期卫星追踪和轨道预测软件中的思想。
最初版本的 PREDICT 是作为 QuickTrak 卫星轨道预测程序的替代品而创建的,QuickTrak 也可用于 C64。虽然 QuickTrak 是用 BASIC 语言编写的,并且其源代码在运行时被解释,但 PREDICT 是用 C 语言编写的,并编译成 6502 机器码。编写 PREDICT 的唯一原因是为了能够快速预测业余无线电通信卫星在到达之前的通过情况。
对于实时卫星追踪,编写了一个名为 SpaceTrack 的独立程序,它结合使用了 BASIC 和手工汇编的机器码。SpaceTrack 非常复杂,可以允许在世界墨卡托投影地图上显示卫星的位置。它甚至能够通过连接到 Commodore 64 用户端口的语音合成器来表达卫星的追踪坐标。语音合成器用于通过短距离无线电链路实时向目视观察员传递追踪坐标,以便可以轻松地在夜空中定位和识别和平号空间站和其他大型航天器。语音例程完全用手工汇编的机器语言编写,并通过与计算机硬件中断例程相同的地址向量执行。这实际上创建了一个多任务环境,语音合成器通过后台进程接收数据,而后台进程绝不会中断 BASIC 解释器在前台进行的数值处理。
虽然这两个程序都从未公开发布,但它们在几年内为我提供了很好的服务,直到从老化的 Commodore 64 切换到更现代的基于 MS-DOS 的 PC。在许多方面,切换到 MS-DOS 平台是从 C64 向后迈出的一大步,尤其是在编程灵活性以及在新环境下重新学习编程过程的要求方面。PREDICT 最终被移植到 MS-DOS,但 MS-DOS 环境根本没有足够的吸引力来为程序添加许多新功能。此外,似乎没有像在较旧且不太复杂的 C64 上那样(听起来很奇怪)在 MS-DOS 下进行多任务处理和在进程之间传递参数的简单方法。
PREDICT 也几乎在同一时间被移植到几台多用户 UNIX 机器上,但硬件差异和对操作环境缺乏真正的理解阻碍了程序的进一步开发。尽管如此,DOS 版本的 PREDICT 还是被润色并于 1994 年 5 月作为免费软件发布到几个流行的互联网和拨号软件存储库,并在参与卫星通信的业余无线电爱好者中非常受欢迎。
到 Windows 95 发布时,是时候将计算环境完全切换到 Linux 了。PREDICT 成功地从 DOS 移植到 Linux,并且多年来在 Linux 环境中运行良好。PREDICT 的预编译 Linux 二进制文件于 1996 年作为免费软件发布到几个 FTP 站点。然后在 1999 年,程序的主要部分被重写,并且为了增强 PREDICT 的功能,程序中添加了几个类似于原始 SpaceTrack 程序中可用的实时卫星追踪模式。还添加了语音例程,但没有使用语音合成器来产生声音公告,而是使用一个由 PREDICT 调用的独立程序将音频样本顺序定向到系统声卡。与 SpaceTrack 的原始设计非常相似,语音例程作为后台进程执行,以便在发布公告时不会延迟实时轨道计算的执行。
新增强版本的 PREDICT 以 GNU 通用公共许可证下的开源软件发布,并于 1999 年 12 月上传到 Metalab 和其他几个 FTP 站点。几周后,PREDICT 2 版的主要部分使用 Caldera 的 DR-DOS 操作系统和 DJGPP 软件开发环境成功地从 Linux 移植到 DOS。这样做是为了替代 1994 年发布的早期 DOS 版本的 PREDICT。
在 PREDICT 2 版 Linux 发布后的几周内,很快就意识到了开源和 GNU 通用公共许可证的优势。业余无线电爱好者 Bdale Garbee (N3EUA) 构建并打包了 PREDICT,以便将其包含在 Debian Linux 的 “potato” 版本和所有后续版本中。Debian PREDICT 软件包适用于所有 Debian 支持的 CPU 架构。
业余无线电爱好者 Jean-Paul Roubelat (F6FBB) 修改了 PREDICT,允许程序使用称为堪萨斯城追踪器的硬件接口来控制支持其卫星天线的方位角和仰角旋转器。通过使用 PREDICT,Jean-Paul 能够让他的基于 Linux 的计算机在他家范围内自动追踪 OSCAR 卫星的天线。
在马里兰州华盛顿特区美国海军研究实验室工作的 Ivan Galysh (KD4HBO) 选择了 PREDICT 来追踪 Stensat 卫星。凭借手中的源代码,Ivan 能够将 PREDICT 变成一个基于套接字的服务器,允许程序通过 UDP 套接字连接向外部程序提供实时追踪数据。Ivan 创建的客户端程序之一是天线旋转器控制程序,其功能类似于 Jean-Paul Roubelat 的程序,只不过它使用了不同的硬件接口。另一个是基于 XForms 的 GUI 地图显示程序,该程序在世界墨卡托投影地图上绘制 PREDICT 正在追踪的卫星的位置和轨道路径。
到 3 月,正在开发第三个程序,该程序读取 PREDICT 计算的多普勒频移信息,并使用该数据来正确调整卫星通信系统中使用的上行链路发射器和下行链路接收器的运行频率。通过这些模块化客户端应用程序,基于套接字的服务器代码的优势显而易见,Ivan 的服务器代码成为 PREDICT 官方源代码的组成部分,并在 2000 年 4 月初发布的 2.1.0 版本中发布。
最新版本的 PREDICT 可以从 ftp.amsat.org/amsat/software/Linux/predict-latest.tar.gz 或 metalab.unc.edu 的 /pub/linux/apps/ham 子目录下下载。
截至 2.1.0 版本,PREDICT 的主要功能包括
一种快速轨道预测模式,可预测卫星的通过情况,提供日期、时间、坐标、倾斜距离以及阳光和光学可见性信息。预测以表格形式显示,可以保存到日志文件中,以供以后参考、打印或供其他程序解析。
一种光学目视轨道预测模式,可显示可能对地面站光学可见的卫星通过情况。
一种太阳光照预测模式,可计算卫星每天在阳光下花费的时间。
一种实时追踪模式,可为单颗卫星提供动态信息,例如次卫星点、地面站方位角和仰角、多普勒频移、路径损耗、倾斜距离、轨道高度、轨道速度、覆盖区直径、轨道相位、当前通过的下一次 AOS(信号获取)或 LOS(信号丢失)的时间和日期、轨道号以及阳光和可见性信息,同时提供太阳和月亮的实时方位角和仰角。
一种多追踪模式,可在实时基础上提供程序当前数据库中所有 24 颗卫星的次卫星点、方位角和仰角、阳光和可见性以及倾斜距离信息。还提供太阳和月亮的方位角和仰角,以及预计进入地面站范围的接下来三颗卫星的 AOS 日期和时间列表。
静态信息,例如椭圆的长半轴、远地点和近地点高度以及卫星轨道的异常周期和交点周期。
命令行选项,允许指定备用地面站位置或读取和处理备用轨道数据库,从而有效地允许追踪和管理无限数量的卫星。其他选项允许使用通过互联网或通过 pacsat 卫星获得的 NASA 双线元素数据自动更新任何轨道数据库文件,而无需进入程序并手动选择菜单选项来更新数据库。
一种语音模式,允许向观察员表达卫星的实时方位角和仰角,以帮助通过光学手段定位卫星。
一种基于套接字的服务器模式,允许 PREDICT 用于向外部程序(例如旋转器控制软件、图形地图追踪软件或射频控制程序,这些程序可以位于主机或任何联网客户端上)提供实时追踪数据,例如方位角和仰角、覆盖区直径、次卫星点纬度和经度值、归一化多普勒频移数据和下一次预测的 AOS 时间。
PREDICT 的安装过程与大多数需要在安装时编译的开源软件有所不同。基于 ncurses 的安装程序用于探测系统硬件是否存在声卡,并根据此信息并参考用户选择的安装目录构建头文件。然后编译程序,并将生成的exe可执行文件在安装目录和 /usr/local/bin 之间进行符号链接。符号链接的相同过程也用于 PREDICT 的手册页。这种安装方法的主要优点是它简单、相对防错且与发行版无关。它还将所有程序文件保存在单个子目录下,而不是将它们分散在整个文件系统中。
一旦程序构建和安装完成,用户将被要求输入其纬度、经度和海拔高度。还需要用户感兴趣的卫星的开普勒轨道数据数据库。程序中包含业余无线电和几个“高关注度”卫星的数据库,以帮助用户入门。由于开普勒轨道数据的准确性很少能长时间保持较高水平,因此程序中包含了一些功能,允许从更新的元素集中更新数据库。程序中包含一个简单的 shell 脚本,以方便通过匿名 FTP 连接到 ftp.celestrak.com 来进行此更新。此脚本甚至可以通过 crontab 调用,从而允许定期自动更新 PREDICT 的轨道数据库,而无需用户干预。
PREDICT 是一个基于文本的程序,其启动屏幕(见图 1)列出了程序的所有主要功能。有几种追踪和轨道预测模式可用,以及几种用于管理程序轨道数据库的实用程序。
PREDICT 包括两种轨道预测模式,可预测地面站上方的任何通过情况,或仅列出可能通过光学手段对地面站可见的那些通过情况。在任何一种情况下,都不会尝试预测永远不会升到地面站地平线以上的卫星、地球静止轨道卫星或自上次开普勒轨道数据更新以来似乎已在大气层中衰变的卫星的通过情况。如果卫星在指定的开始日期和时间在范围内,PREDICT 会将开始日期及时向后调整到 AOS 点,以便预测屏幕完整显示从开始到结束的通过情况。图 2 显示了 1999 年 7 月初在新泽西州范围内哈勃太空望远镜的几次通过的轨道预测模式。
除了预测卫星通过情况外,PREDICT 还允许使用程序的“多卫星追踪模式”单独或以 24 颗卫星为一组进行追踪。在实时追踪卫星时,还会显示太阳和月亮的位置,以及数据库中卫星的日食和光学可见性条件。当 PREDICT 在单卫星或多卫星追踪模式下运行时,实时追踪数据可用于基于套接字的客户端。图 3 显示了单颗卫星的实时追踪坐标。图 4 显示了 24 颗卫星的实时位置,以及即将到来的卫星通过时间表。当前在范围内的卫星会突出显示,以便于识别。
PREDICT 的主要设计目的是帮助促进通过业余无线电卫星进行通信。目前在轨的近 20 颗卫星搭载了某种形式的通信转发器或遥测信标,供业余无线电使用。包含模拟转发器的 OSCAR 航天器(轨道卫星携带业余无线电)实时将它们接收到的信号中继回地球。那些携带数字转发器的航天器在地球上任何地方的发件人和收件人之间以存储转发的方式中继文件。一些 OSCAR 卫星还携带地球成像相机以及科学和教育实验,其结果通过卫星上搭载的低功率信标发射器传输。甚至美国航天飞机和和平号空间站也携带了业余无线电设备进入轨道,供在太空工作的宇航员和宇航员使用。国际空间站 (ISS) 将携带一个多模式业余无线电台,供在空间站工作的宇航员使用。图 5 中澳大利亚墨尔本的图像是由 TMSAT-OSCAR-31 业余无线电卫星上的地球成像相机拍摄的。
由于这些航天器都没有处于地球静止轨道,因此在成功进行无线电通信之前,必须进行某种形式的追踪和轨道预测。PREDICT 提供了预测这些航天器在特定地面站位置上空的通过情况所需的所有信息,并在它们到达后实时追踪它们。图 6 显示了一个作为 PREDICT 基于套接字的客户端运行的图形轨道显示程序。地图上显示了和平号空间站的覆盖区以及几个连续轨道。
除了提供实时追踪坐标外,PREDICT 还计算通过期间任何给定时刻预期发生的多普勒频移量,以便可以准确地补偿上行链路发射器和下行链路接收器的频率。还提供了用于确定地面站和卫星之间射频 (RF) 链路预算的路径损耗计算。
由于 PREDICT 还实时追踪太阳和月亮,因此可以使用这些天体在天空中的位置来确定用户所在位置的地理方位。此信息对于在追踪卫星之前准确对准指向性天线系统到已知方向特别有帮助。由于 PREDICT 还追踪太阳和地球相对于程序追踪的卫星的位置,因此可以更好地分析航天器遥测数据,从而了解被研究的卫星在阳光下或日食中度过了相当长的时间。太阳光照预测模式可以提前确定航天器何时或是否会进入“太阳轨道”并经历持续的阳光照射期。这些时期通常也是宇航员计划太空舱外活动的最佳时间。
地球静止轨道上的气象卫星图像经常在电视和互联网上看到,但来自美国、俄罗斯和中国的许多低地球轨道气象卫星提供了区域区域的高分辨率图像。接收来自这些卫星的图像对于许多人来说是一种有益的爱好,PREDICT 可以提供预测气象卫星通过情况以及在它们到达后从地平线到地平线追踪它们所需的所有信息。
最后,PREDICT 还确定了在傍晚或黎明前天空可能看到大型航天器的时段。大约有 150 颗卫星被归类为“可见”卫星,所有这些卫星都可以通过 PREDICT 准确追踪。大型航天器,例如美国航天飞机、哈勃太空望远镜、和平号空间站(见图 7)和国际空间站,在合适的观看条件下很容易用肉眼看到。国际空间站将特别值得关注,因为它将在未来几年内随着计划中的建设而缓慢扩展。PREDICT 的语音功能非常适合向卫星观察员传递追踪坐标,从而有效地消除了读取计算机显示器或打印输出来获取实时追踪信息的需求。

图 7. 和平号空间站
PREDICT 的开发在去年以 GNU 通用公共许可证下的开源软件发布后,几乎每天都在持续进行。通过 PREDICT 的开发,Linux 操作系统已清楚地表明自己是科学、工程和教育相关应用程序的设计、开发和实施的卓越平台。思想的自由交流、同行之间对这些思想的公开审查以及从这种公开讨论中获得的建设性反馈与科学和工程领域长期以来的传统没有什么不同。这种环境必将有助于 Linux 的持续成功,不仅在科学和工程领域,而且在许多其他领域也是如此。

John A. Magliacane 自 1.1.59 版本以来一直使用 Linux。他持有高级 FCC 业余无线电执照 (KD2BD) 以及商业 FCC 无线电操作员执照。他的兴趣包括卫星通信系统、Linux 软件开发和硬件设计。可以通过电子邮件 kd2bd@amsat.org 或通过 KITSAT-OSCAR-25 卫星与 John 联系。