阿波罗11号惊魂12分钟:系统容错调度与人机协同的极限生死局
人类第一次登月成功的那一刻,登月舱油箱里剩下的可用燃料,只够主发动机再烧 25 秒。 只要阿姆斯特朗在空中多犹豫半分钟,这艘耗资 254 亿美元造出来的飞船就会在月表摔得粉碎。 后来的官方纪录片里,这次降落被称为人类航天史上最完美的着陆。 但当时在飞船里的阿姆斯特朗,心率已经飙到了每分钟 156 次。 休斯顿地面指挥中心里,负责无线电通话的查理·杜克,脸色憋得发青。 所有致命的工程意外,全在最后的 12 分钟里排着队爆发。
登月舱从月球轨道往下降落的时候,轨道就已经偏了。 离开指令舱分离的时候,两舱对接通道里的残余空气没有彻底排空。 舱门锁扣一解开,未排净的气压像香槟软木塞一样,把登月舱向前推了一把。 这仅仅给飞船增加了一秒不到一米的微小推力。 可是在漫长的下坠轨道上,微小推力加上月球引力异常,成倍放大了轨迹偏差。 阿姆斯特朗从三角形窗户向外观测地标时,发现自己比预定时间早了两三秒。 登月舱飞过了预定着陆点整整 6 公里。 更凶险的是,自动着陆系统的航向,正死死对着西坑。 那是一个足足有足球场那么大、深度达 30 米的撞击坑。 坑口周围,密密麻麻全是汽车大小的巨型岩石。 如果计算机把飞船自动降在这个乱石堆里,登月舱的金属支架会当场折断。 飞船侧翻,上升发动机喷管撞毁,两位宇航员将永远留在这片死寂的荒原。
就在距离月表只有 1800 米时,计算机主显示屏突然亮起刺眼的警报。 主警报黄灯疯狂闪烁。 屏幕跳出一行代码:1202。 几秒钟后,又跳出代码:1201。 阿姆斯特朗一边死死盯着窗外的地形,一边抓着无线电追问地面:给我们解释一下 1202 是什么意思? 休斯顿指挥大厅瞬间空气凝固。 当时的阿波罗制导计算机,内存只有 4KB,主频不过 2MHz。 为什么会在最要命的关头内存超载? 事后复盘查清,宇航员为了应对万一中止降落的紧急返航,按飞行手册提前打开了会合雷达。 但这台雷达硬件在通电时出现了 800 赫兹交流电相位差。 天线并没有转动,虚假信号却以每秒 6400 次的中断频率,疯狂向计算机塞入垃圾数据。 整整 15% 的中央处理器计算周期被生生偷走,核心任务队列直接塞爆。 换成当时地面上任何一台商用电脑,这一瞬间早就彻底蓝屏卡死了。 为什么飞船没有失控下坠? 麻省理工学院仪器实验室的玛格丽特·汉密尔顿团队,写出了一套此前从未有过的异步优先级调度架构。 系统把任务划分为不同的特权级。 当计算机遭遇算力雪崩时,它启动恢复程序,毫秒级砍掉测距雷达等全部低优先级的次要任务。 算力被死死锁定在主发动机油门控制与反推姿态喷管上。 系统没有崩溃,它完成了一次精准的丢车保帅。
系统保住了,地面敢不敢下注? 如果这是计算机硬件损毁的前兆,继续下落就是带着两条人命跳崖。 在休斯顿控制大厅里,坐在制导控制台前的史蒂夫·贝尔斯,那一年 26 岁。 在他身后坐着的雷达与计算机工程师杰克·加曼,只有 24 岁。 就在发射前两周的一场全真模拟训练里,模拟器突然跳出 1201 代码,值班指挥官慌乱中下令紧急中止任务,复盘后才发现那是一次完全可以忽略的瞬时过载。 24 岁的加曼吸取教训,悄悄手写了一张一页纸的小抄,压在控制台的桌面玻璃下,把全套 40 多个报警代码的处理预案列得清清楚楚。 1202 响起的第 5 秒,加曼低头扫了一眼小抄,在内线呼叫贝尔斯:只要报警不连续持续亮起,继续干! 贝尔斯没有任何犹豫,跳过漫长的行政请示,在耳机里对着飞行指挥官吉恩·克兰兹喊出了那个改变历史的词:GO! 最前线的青年工程师,用一张手写小抄行使了推翻系统报警的自由裁量权。
地面的危机解除了,天上的死局还在眼前。 西坑边缘嶙峋的巨石已经扑面而来。 全自动降落程序指望不上了。 阿姆斯特朗推开发动机自动挡,切入 P66 半自动模式。 这是一个极其苛刻的人机交互界面。 在月球微重力环境下,如果把飞船全部交给人工手动驾驶,人类神经反射根本无法同时协调 16 个姿态喷管的细微脉冲。 P66 模式做了一次极度聪明的人机拆分: 阿姆斯特朗接管姿态手柄,负责肉眼识别障碍,推低机头带着飞船水平向前飞,越过西坑; 计算机接管主发动机节流阀,自动维持每秒不到 1 米的垂直下降速度。 但水平前飞是在拿燃料换命。 主发动机倾斜喷射,推进剂以惊人的速度消耗。 距离地面只有 30 米时,驾驶舱亮起了红色的推进剂低液位指示灯。 地面通讯员查理·杜克开始倒数:60 秒! 阿姆斯特朗还在浓密的阴影中寻找没有乱石的平地。 下降到 20 米时,主发动机喷出的剧烈火焰狠狠撞击月壤,掀起了一场遮天蔽日的月尘风暴。 窗外彻底变成一片苍白,所有地表纹理瞬间模糊,宇航员失去了全部相对速度参照。 阿姆斯特朗死死盯住穿透沙尘的几块高耸巨石,靠它们在视线里的微小移动来判断机身是否在侧滑。 无线电里又传来杜克颤抖的声音:30 秒! 那是推进剂的绝对红线。 如果读秒归零还没触地,主发动机随时可能吸入气泡熄火,飞船会直接自由落体砸碎。 阿姆斯特朗没有按下中止逃逸的红色按钮,他稳稳压低操纵杆,把晃动的机身按向地面。 三根从着陆脚垫垂下的 1.7 米长金属探针,终于刺入月尘。 奥尔德林在舱内喊出了载入史册的专业术语:接触灯亮了! 阿姆斯特朗关死发动机。 鹰号稳稳落在了静海平原。
降落之后,工程团队分析遥测数据,惊出了一身冷汗。 地面读数显示,油箱里只剩下够烧 20 多秒的残余推进剂。 但后来的油箱拆解证明,那场把所有人逼到崩溃边缘的 30 秒倒计时,其实又是一次机械误报。 登月舱配备的是球形推进剂储箱。 阿姆斯特朗为了越过西坑向前低空平飞,连续做出了俯仰和倾斜动作。 箱体内的液体推进剂剧烈晃荡,传感器被提前暴露在空气中,提前触发了低油量报警。 实际上当时油箱里还剩 216 磅可用燃料,足够发动机再维持将近 50 秒。 但谁也不敢把安全押在侥幸上,阿波罗 12 号起,所有推进剂储箱内部全部焊上了防晃隔板。
就在阿波罗 11 号险象环生的同一天,月球轨道上还飞着另一艘神秘飞船。 苏联在阿波罗发射前三天,秘密发射了无人探测器月球 15 号。 莫斯科的战略意图非常直白:抢在阿姆斯特朗之前,用无人全自动机械臂挖取月壤带回地球。 7 月 21 日,就在阿姆斯特朗踏上月球准备返航的几个小时前,月球 15 号开启了反推制动发动机。 但它的雷达高度计发生严重故障,没有宇航员能切入半手动,也没有一线工程师能在几秒内改写代码。 全自动系统在失控中一头撞向危海的悬崖,以每小时 480 公里的速度化为残骸。
复杂系统在真实世界遭遇未知边缘情况时,软硬件从来不可能做到天衣无缝。 阿波罗 11 号没有成为冷战铁幕下的太空灾难,依靠的是一套充满生机的容错结构: 在算力过载时能够主动丢弃次要任务的优先级软件调度; 在突发异常时拥有独立决断权的一线技术人员; 由人类认知补齐机器盲区、由机器算力维持物理平衡的人机协同。 把生死托付给完全不可干预的自动化黑箱,往往才是灾难的源头。
引用 / CITATIONS
No citations exported.
同领域解读 / PHYSICS & ENERGY
导出 / EXPORT
订阅 · SUBSCRIBE
每周一封独立、不受审查的科技与 AI 深度评论,周一发出。带出处,可核查。