立即领取|华润集团、宁德核电、东风岚图等 20+ 标杆企业数字化人才培养实践案例 了解详情
写点什么

史上最强韦伯太空望远镜:软件是深度探索宇宙的关键

  • 2022-07-14
  • 本文字数:2599 字

    阅读完需:约 9 分钟

史上最强韦伯太空望远镜:软件是深度探索宇宙的关键

近日,承载人类探索星辰大海梦想的詹姆斯·韦伯望远镜因为一组从距离地球 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

2022-07-14 21:3711064

评论 2 条评论

发布
用户头像
据 NASA 称,韦伯的通信系统并不华丽。相反,数据和通信系统的设计除了可靠,还是可靠。换句话来讲都是老掉牙的技术和语言,稳定是第一。
2022-07-18 09:11
回复
用户头像
开源已经成为这些创新技术成果中的绝对核心.
2022-07-16 09:21
回复
没有更多了
发现更多内容

CSS常用样式——绘制单(双)箭头的多种方法(2)

程序员学院

CSS html 程序员

XSKY ClickHouse如何实现存算分离

XSKY星辰天合

未读消息(小红点),前端与 RabbitMQ实时消息推送实践,贼简单~

程序员小富

Java RabbitMQ mqtt

一步搞定任意圆角背景

mengxn

android xml 圆角

【万字长文】探讨可信构架之道

华为云开发者联盟

架构 服务端

呕心沥血,整理200+最新面试题,面试之前看一下,事半功倍

小Q

Java 学习 程序员 架构 面试

20张图,大学四年都没整明白的操作系统就这么学会了

小Q

Java 程序员 架构 操作系统

未来经济 数字优先 | 大数据专场

腾讯云大数据

大数据

深度解析!--阿里开源分布式事务框架Seata

攀岩飞鱼

分布式 分布式事务 微服务 分布式锁 Seate

新基建夯实粤港澳大湾区高质量发展基础

CECBC

区块链 人工智能 大数据

协同新机遇:让研发敏捷起来

人称T客

边缘计算,如何啃下集群管理这块硬骨头?

BoCloud博云

云计算 容器 边缘计算 PaaS 博云

Redis 哨兵模式

是老郭啊

redis redis哨兵模式 redis哨兵 redis哨兵集群

当心这些“坑”!阿里云服务器部署前后端分离项目

麦洛

nginx 前后端分离 跨域

The Go Blog-Article index

卓丁

传统产业数字化转型的思考与建议

CECBC

经济转型 企业经济

去中心化交易所搭建,虚拟币去中心化交易系统

交易所开发

MySQL高性能架构设计原则

洛神灬殇

大厂运维必备技能:PB级数据仓库性能调优

华为云开发者联盟

架构 数据

物联网通信技术最全科普!你一定要了解的NB-IoT

华为云开发者联盟

物联网

教师节特别活动:第四范式多项自研技术及其应用实践分享

天枢数智运营

人工智能 推荐系统 第四范式 个性化推荐

使用开源软件构建工业互联网的平台

刘旭东

工业互联网 Odoo thingsboard

Polkadot初识,不止于跨链

QTech

polkadot 跨链

云图说 | GPU共享型AI容器,让AI开发更普及

华为云开发者联盟

AI 容器

合约跟单app,永续合约交易所带单交易软件

Docker 容器编排利器 Docker Compose

哈喽沃德先生

Docker 容器 微服务 Docker-compose

模板方法模式——看看 JDK 和 Spring 是如何优雅复用代码的

Java架构师迁哥

LeetCode题解:225. 用队列实现栈,两个队列,压入 -O(1), 弹出 -O(n),JavaScript,详细注释

Lee Chen

大前端 LeetCode

indexOf原理,Java,javascript,python实现

叫练

算法

[翻译]The Go scheduler[Go调度]

卓丁

Go scheduler Go 语言

[翻译]Go Concurrency Patterns[Go 并发模式]

卓丁

Rob Pike Go Concurrency Patterns Concurrency Go 语言

史上最强韦伯太空望远镜:软件是深度探索宇宙的关键_开源_罗燕珊_InfoQ精选文章