近日,承载人类探索星辰大海梦想的詹姆斯·韦伯望远镜因为一组从距离地球 100 万英里处拍摄的全彩照片而成为全球热议话题。韦伯望远镜(简称“韦伯”)是哈勃望远镜的继任者,于 1996 年开发,最初计划于 2007 年发射,数次延期后最终于 2021 年 12 月升空,项目花费预计高达百亿美元。
花了 25 年才完成,韦伯望远镜也是目前史上最复杂、最精密的太空望远镜。“韦伯不仅仅是哈勃的一个更好的版本,它是一个新事物,”美国太空望远镜科学研究所(STScI,负责韦伯运营工作的组织)天文学家 Erik Tollerud 说,韦伯将成为天文学的探索引擎,而天文学是一个基于软件的领域。
软件是深空探索的关键
按照官方的说法,西门子在韦伯项目中贡献了巨大力量。
望远镜中的集成科学仪器模块(ISIM)包含传感器、相机、电子设备等元素的复杂组合。从最低级别的定制化集成电路,到 ISIM 中四种科学仪器的整体多物理场仿真,西门子软件可以说渗透到了韦伯项目中的各个层面:
Tanner 设计套件(包含内置 Calibre 集成)负责建立关键的模数转换器(ADC)阵列,将由韦伯拍摄系统捕捉到的模拟图像,转换为可以下载的数字图像。Teledyne Technologies 在 Lewyn Consulting Incorporated (LCI)的支持下,为四大光学仪器中的三种提供了专用集成电路(ASIC),而此阵列正是这套集成电路的组成部分。
在英国莱斯特大学空间研究中心,NX 和 Teamcenter 被用于 MIRI 模块(低温仪器模块的一部分)的设计、模拟和制造。
各仪器间依靠西门子 Capital 软件实现电子连接。此外,西门子还使用了 Femap 帮助 NASA 模拟韦伯望远镜的组件性能,该软件能够汇集所有解算器信息,借此对韦伯望远镜上的全组装仪器模块进行热分析与结构分析。
使用什么类型的数据库
韦伯望远镜项目是美国宇航局第一个将 XML 用于数据库的大型太空任务。NASA 科学家使用 XML 作为他们的数据库。据 Wiki 百科介绍,这是一种面向文档的数据库。它有助于交换信息,从不同的地面系统组件迁移数据,还减少了每个数据库版本所需的测试。
航天器内部的数据要迁移到各个地面系统组件,迁移由航天器厂商负责。放在以前,这个过程是非常费钱且费时的。当韦伯项目安装 XML 系统作为他们的数据库时,组件之间的数据迁移变得容易多。此外,数据库可以解决系统中的多个问题。目前,韦伯项目中的 XML 已经在模拟器、前端处理器、工程档案、分析系统等系统中得到应用。
飞行软件用 C++编写
韦伯项目整体采用事件驱动的软件架构 (event-driven architecture)。根据太空望远镜科学研究所发表的论文,此举为操作望远镜提供了更大的灵活性,也大幅简化了底层系统。此外, 事件驱动系统的自主性提供了基于遥测响应的航天器和科学仪器指令。在发生故障的情况下,望远镜可继续进行不受事件影响的科学观测计划的部分,从而保证观测站的效率最大化。
韦伯项目简化机载结构
韦伯望远镜的科学操作是由 ASCII(而非二进制命令块)板载脚本来驱动,该脚本的编写借助的则是 JavaScript 的一套定制化版本。脚本解释器采用的是 C++编写的飞行软件,负责操作航天器与科学仪器。
其中,板载脚本能够自动构建并向飞行软件发出实时命令和遥测请求,进而指导各 Observatory(天文台)子系统(包括科学仪器、姿态控制等)的运作。飞行软件随后会执行板载脚本发来的命令,并返回遥测数据。板载脚本对遥测数据进行实时评估,再调用脚本将状态信息发送至更高级别的板载脚本,进一步根据观测计划中的跳过逻辑对特定事件做出响应。
344 个故障点,确保应急计划
韦伯项目对于单点故障项目也给予了很多关注。2018 年的一份审查报告曾显示,NASA 估计整个韦伯望远镜至少还有 344 个在完全展开前可能发生的故障点。单点故障(single point of failure,缩写 SPOF)是指系统中一点失效,就会让整个系统无法运作的部件。
换句话说,只要其中任意 1 个问题出现,都可能让整个系统无法顺利运作。一般可以透过冗余的方式增加多个相同机能的部件,只要这些部件没有同时失效,系统(或至少部分系统)仍可运作,这会让可靠度提高,不过也增加成本和一些设计难度。而韦伯也很难做到“完全冗余”。
后来,根据该份审查报告,NASA 对韦伯望远镜进行了系统性的排查与测试。NASA 戈达德韦伯部署系统负责人 Alphonso Steward 表示,韦伯任务的大部分内容中都存在“相当多的冗余”。其应急计划覆盖了从超级简单到非常复杂的整个范围,有些计划甚至就像“重新发送未通过的命令”一样简单。
开源对太空事业的帮助
值得一提的是,开源也为天文学提供了有力的支撑。当前,开源软件已经成为天文学家手中的重要工具,而 Python 则成为其中最常见的首选编程语言。与众多技术领域一样,Python 及其相关科学 Python 生态系统,在过去十年间风靡整个天文科学世界,Astropy 等项目也在这股风潮中发挥了重要作用。
具体来说,天文学家们的工作严重依赖 NumPy 和 matplotlib 等数学软件包。而现代天文学家工作流程中最核心的工具可能是 Astropy,该项目由 Astropy 核心包和一系列工具包组成。超过 400 人为 Astropy 做出了贡献,其中包括天文学家和其他科学家、软件工程师和基础设施专家。
在 GitHub 负责管理太空望远镜科学研究所数据档案的产品管理总监 Arfon Smith 曾在受访时表示,韦伯太空望远镜是个庞大的项目,其研发周期不可能在几年间完成。事实上,这台望远镜已然经历 20 多年的发展沉积,而直到过去五年左右,开源成果才开始在项目之内生根发芽。
韦伯望远镜项目的特殊之处在于,过去几年来,开源已经成为全球天文学家社区在合作构建韦伯科学项目时能用到的最便捷、最灵活的方式。
从将原始图像转换为科学数据的核心数据管道,到通过模拟场景帮助天文学家们探索望远镜的最佳使用方式,再到用于探索新发现的科学工具,开源已经成为这些创新技术成果中的绝对核心。
宇宙的预估年龄(自“宇宙大爆炸”以来)为 138 亿年。在如此漫长的岁月中,其他星球上是否也孕育出了生命?宇宙中还有无数秘密有待揭开,而也许韦伯望远镜能帮助我们找到答案。
参考链接:
https://www.stsci.edu/~idash/pub/dashevsky0607rcsgso.pdf
https://github.com/readme/featured/webb-telescope-astropy
https://github.blog/2022-01-18-how-open-source-is-supporting-nasas-new-eyes-in-space/
https://coderons.com/post/the-james-webb-space-telescope-hsh
https://www.oschina.net/news/202809/jwst-runs-a-proprietary-interpreter
https://ntrs.nasa.gov/api/citations/20060002698/downloads/20060002698.pdf
评论 2 条评论