漏掉一个横杠毁了水手 1 号?真相是:横杠只是最后一根稻草
目录
配图:AI 生成的概念示意图,非论文原图、真实现场或实验数据。
TL;DR:1962 年 7 月,NASA 的水手 1 号金星探测器发射不到 5 分钟就被地面下令炸毁。流传最广的说法是“一个漏掉的横杠”,但官方资料指出,失败是 Atlas 火箭上的制导信标故障加上软件公式里漏掉一条上划线(overbar)共同造成的。软件错误确实存在,但并非单独的“罪魁祸首”;“横杠”和“1800 万美元”等流行细节,本文不做断言。
这是 1962 年的旧事,不是新闻。
背景
水手 1 号是 NASA 水手系列的第一个探测器,目标是飞越金星。1962 年 7 月 22 日,它搭乘 Atlas-Agena B 火箭从卡纳维拉尔角发射升空。
发生了什么
火箭起初表现正常,随后靶场安全官发现它出现了计划外的偏航机动。制导指令已经出错,火箭很可能坠向北大西洋航道,甚至有人居住的区域。于是在发射后约 293 秒(NASA 不同页面写法略有出入,约 293 至 294.5 秒),安全官发出了自毁指令。这条指令必须赶在级间分离前发出,分离之后火箭就无法再被摧毁了。
真正的原因
根据 NASA 的说明,失败来自两件事叠加。
第一件是硬件:Atlas 上的机载信标出了故障,制导系统多次收不到火箭的速率信号。
第二件是软件:飞行程序的一条方程里,本该带上划线的符号少了那条线。上划线代表“平滑后的值”,没有它,程序在信号中断时用的是未经平滑的瞬时读数,把正常的数据波动当成了真实的轨迹偏差,于是发出了错误的纠偏指令。
换句话说,软件那一环本该在硬件出问题时兜住局面,却没能做到。单有信标故障,或许不致命;单有那条缺失的线,大概也不会出事。两样撞在一起,才有了这次失败。
为什么“横杠”的说法这么流行
英文里常被说成“最贵的连字符”,据称出自科幻作家阿瑟·克拉克。“overbar”在传播中被简化成了“hyphen”,故事也越传越简单:一个字符,一枚火箭。这种说法好记,却抹掉了硬件故障这一半。
后续
水手号系列没有就此停下。据报道,水手 2 号在 36 天后的 8 月 27 日发射,并成为首个成功飞越金星的探测器。
为什么值得记住
这个案例真正的教训不是“程序员粗心”,而是:关键的备份逻辑必须被审查和验证,否则它在最需要出场的时候恰好是失效的。