按:3月10日,埃塞俄比亚航空的737Max飞机在起飞不久后坠毁。3月27日,中国民营航天公司的“零壹空间-OSM“火箭发射失败,这是继去年蓝剑空间科技的蓝剑·朱雀湖号发射失败之后的又一次失败。

这些事故当然都是不幸,但也都在提醒我们,航空和航天不是简单的事情,需要辛勤的探索。同样,系统的故障原因也不是简简单单几段话或者一个故事就能说明白的。今天我们回头看看NASA早期的一起事故,或许会得到更多启发。

An image to describe post 系统问题应当如何排查?看看NASA著名的“10厘米发射”吧

看看上面的图片,你看到了什么?

显然,画面左边是一枚火箭,对比周围的工作人员来看,这无疑是一枚真正的火箭,而不是缩小的模型。画面右边是一罐可乐,我们日常生活中随处可见的听装可乐。那么,二者之间有什么联系吗?

答案是:有联系。

1961年11月21日,左边这枚火箭,高25.4米,重30吨,发射升空之后,达到了离地10公分的高度——是的,你没有看错,离地10公分(4英寸),也就是右边这一罐可乐的高度。整枚火箭腾空的高度大概是10公分,这就是航天史上著名的“4英寸发射”。

如果你对“4英寸发射”感兴趣,想知道这是怎么回事,不妨听我从头道来。前面的铺垫会比较长,希望你多准备点耐心。

众所周知,航天的探索离不开二战中的纳粹德国。二战中,纳粹研制成功了两种导弹,给盟国造成了不小的恐慌。

一种代号V-1,它的样子类似飞机,导弹发射之后在700米左右高度飞行,抵达目标上空就俯冲下坠。战后,从V-1导弹发展出今天人们所称的巡航导弹,新闻中常见的“战斧”就是巡航导弹的典型代表。

An image to describe post 系统问题应当如何排查?看看NASA著名的“10厘米发射”吧

V-1 导弹发射。来源:网络

除了V-1,纳粹还研制了另一种导弹V-2。与V-1导弹“慢悠悠”飞过去不同,V-2导弹发射之后直飞入天空,达到100千米左右的高度——这叫“主动段”,然后进入“被动段”,按照已经获得的速度和导航的指引,径直“砸”向预定目标。V-2导弹就是今天洲际导弹、卫星、航天飞机等的技术源头。

An image to describe post 系统问题应当如何排查?看看NASA著名的“10厘米发射”吧

V-2导弹发射。来源:网络

二战中,美国已经意识到自己在导弹领域远远落后于德国,所以迫切希望从德国获得相关的人才。但是,鉴于美国公众非常厌恶“获得纳粹科学家的帮助”,美国政府获取德国导弹人才的计划只能以“回形针行动”(Project Paperclip)的代号秘密进行。

美国人的运气比较好。1945年5月2日,“德国导弹之父”冯·布劳恩向美军投降,巧合的是,他遇到的正是前来此地区搜罗人才的“回形针行动”的专门团队。在美国拟定的“黑色名单”(美国必须抢到的德国工程师和科学家)上,冯·布劳恩是排名第一的人才,而审讯他的则是日后成为“中国导弹之父”的钱学森。当时,钱学森任美国陆军航空队上校,专门负责深入前线搜索德国导弹人才。

An image to describe post 系统问题应当如何排查?看看NASA著名的“10厘米发射”吧

1945年,美军上校钱学森在德国前线。来源:网络

最终,美国从德国搜罗了超过1600名德国科学家、工程师、技术人员,全部带回美国,其中就包括维纳·冯·布劳恩和他的V-2火箭研究团队。在美国,他们的任务是训练军方的、工业界的、科学界的人才,带领他们试射运到美国的V-2导弹,传授导弹和火箭相关的知识,让美国人迅速掌握。冯·布劳恩博士和他的德国团队始终处于被监视的状态,没有监控不得外出,所以冯·布劳恩博士戏称自己是“和平囚徒”(PoPs,Prisoners of Peace)。

An image to describe post 系统问题应当如何排查?看看NASA著名的“10厘米发射”吧

刚向美军投降的冯·布劳恩博士,他刚刚经历了一场车祸,手臂还打着石膏。来源:网络

1950年朝鲜战争爆发,冯·布劳恩博士和他的团队转移到了阿拉巴马州的亨茨维尔市。在那里的“红石兵工厂”,冯·布劳恩领导美国的火箭团队研制了“红石”(Redstone)火箭。1956年,“红石”火箭完成了美国第一颗弹道核导弹的试射。1958年,冯·布劳恩博士在“红石”火箭的基础上改进出了“朱庇特-C”(Jupiter-C)火箭,又进一步改进出了“朱诺1”(Juno 1)火箭。1958年1月31日,“朱诺1”火箭将美国第一颗人造卫星“探索者-1”(Explorer 1)送入了太空。

An image to describe post 系统问题应当如何排查?看看NASA著名的“10厘米发射”吧

美国第一颗卫星发射成功之后的冯·布劳恩博士。来源:NASA

今天我们看来,研制工作就是这样顺利成章走下来的,其实不是这样。一开始火箭总是爆炸,冯·布劳恩博士的团队花了很多时间,才能做到“发射场比目标靶场更安全”。除此之外,冯·布劳恩博士还要接受“和平囚徒”的待遇。

1954年5月5日,“红石”第三次发射,火箭点火1秒之后就熄火了,导弹砸到发射台上爆炸了。美军少将Holger Tolftoy质问冯·布劳恩是什么原因,博士回答说,目前还不知道,要检查各项数据之后才能回答。Toftoy不依不饶:“维纳,火箭为什么爆炸?” 这下子博士也爆炸了:

火箭爆炸了,就是因为狗娘养的混蛋搞砸了!

“红石”火箭最终成功了,但时间已经是1958年。美国人本可以在1957年8月发射第一颗卫星的,不过艾森豪威尔政府从名声考虑,搭载美国第一颗卫星的应该是美国工程师研制的民用火箭,而不能是源自“回形针计划”抢来的德国工程师制造的军用火箭。

不幸的是,1957年10月4日,苏联发射了第一颗人造地球卫星“伴侣”号。美国人在航天上落后了,当局受到巨大的压力。

1958年7月29日,艾森豪威尔总统签署了《美国公共法案85-568》,成立了NASA(美国航空航天局),要在太空竞赛中取得领先。美国官方也要求冯·布劳恩博士和他的团队加入NASA,让他们的经验服务于航天任务。实际上,冯·布劳恩博士在1954年已经提出过这个想法,但是被拒绝了。

如今大家都知道了,美国的载人航天计划代号“水星”,其实原本拟定的代号是“航天员”(Astronaut),但艾森豪威尔政府总是希望更含蓄一点,以太张扬为理由否决了这个名字,于是项目代号改成了“水星”。

NASA成立之后选定了佛罗里达州的卡纳维拉尔角作为发射基地,在四处抽调人员来到这里,成立各种机构,其中就包括“水星计划指挥中心”(MCC,Mercury Control Center)。

虽然NASA备受关注,但早期的工作环境相当恶劣。按照后来的回忆,那时候卡纳维拉尔角是一片荒地,到处都是低矮的灌木丛,一不留神就会迷路,而且四周不时有鳄鱼出没。虽然搞的是航天,但大家基本都没有专门的公寓,一开始都只能住在汽车旅馆里……

当时各建筑距离主要道路都有一公里远,每天的三餐只能靠一辆皮卡拉着餐车在各建筑之间游动——大家把这种车叫做“蟑螂货车”。每次“蟑螂货车”停下来的时候,就会用大喇叭通知所有人。哪怕你平时工作累了想弄点牛奶喝,也得等一天三次的大喇叭响起才可以。一直要到1968年“阿波罗8号”任务期间,才设立了一个自动售货机。据当时的员工回忆,在这个售货机前永远排着长长的队伍,要等很久才能买上一份三明治。

An image to describe post 系统问题应当如何排查?看看NASA著名的“10厘米发射”吧

卡纳维拉尔角,NASA早期建筑。来源:DailyPress

困难还不只这些,NASA在做的是前无古人的事情,没有任何东西可以参照,必然出现各种意想不到的问题。当时困扰大家的问题之一是,如何在航天任务中保持天地联系?解决方案是通过计算,在全球各地设立通讯站,“接力”通讯。

这看起来是个技术问题,其实并不是,后来成为著名飞行总指挥的Gene Kranz就犯过一回大错。尼日利亚的通讯站建完之后,Gene询问当地的情况,在通讯站的工作人员回答“这里简直一团糟,人民很穷困,政府很差劲……”

NASA没有想到的是,尼日利亚官方截获了这条信息,认为这是对尼日利亚的严重侮辱,要求美国政府为此事给个说法,否则就撤除通讯站。结果,美国政府不得不道歉。

An image to describe post 系统问题应当如何排查?看看NASA著名的“10厘米发射”吧

传奇飞行总指挥Gene Kranz,是不是帅气十足?电影《阿波罗13》中Ed Harris饰演的角色就是以他为原型。来源:NASA

而且,因为美国政府希望在航天竞赛中胜出来证明“自由世界”更优越,所以NASA的活动是高度公开的,这也就意味着很难保密。

20世纪60年代末的一个小故事可以充分说明这点:据肯尼迪航天中心第一位女工程师JoAnn Morgan回忆,有天她和丈夫想放松,于是租了条船去深海钓鱼。忽然,海面出现浮现一艘潜艇。正昏昏欲睡的她吓了一跳,惊慌失措,大喊大叫。她丈夫则很镇静:“亲爱的,这是一艘潜艇,我们来拍几张照片。”只听见潜艇上的人大喊“Nyet! Nyet!(俄语的‘不’)”。JoAnn和丈夫赶紧调转船头离开了。

更可怜的是宇航员。虽然美国选出了“水星七人”,但飞船还在紧张的设计和制造过程中,他们根本没有像样的模拟器可以训练。据Gene Kranz回忆,他们大概只能“对着儒勒·凡尔纳的科幻小说”来想象:模拟器是蒸汽动力的,目视跟踪用的是普通的潜望镜,定位用的是电动地球仪。可以说,一半的设备今天看来异常原始,另一半的设备根本就是头次使用。

总之,NASA的工作就在这样的环境下蹒跚前行,1960年11月21日,Mecury-Restone 1(简称MR-1)要发射了。从代号可以知道,这是用“红石”火箭完成“水星”任务的第一次发射。计划在卡纳维拉尔角的空军基地进行,本次发射是实验性质的,并不搭载宇航员。原计划是11月7日发射,因为飞船的问题,最后时刻发射任务被取消了,延迟到11月21日进行。

发射的日子终于到来了,早上9点,火箭准时点火。从监控上看,火箭底部按计划冒了烟,箭身晃了晃,然后就没声音了,原来发动机熄火了——事后调查发现,火箭升空10公分之后,又“坐”回了发射台,矗立原地。霎时间指挥中心警报声大作,但火箭没有爆炸,只是静静立在那里。

大家正纳闷,转瞬之间发射台上又有了动静,“轰”的一声,火箭顶部冒出浓烟,原来是顶端的逃逸火箭发射出去了。按之前的设计,如果在发射阶段出现险情,火箭顶端还有一枚逃逸火箭,它负责把飞船“拉”出去,然后飞船会通过降落伞降落。

An image to describe post 系统问题应当如何排查?看看NASA著名的“10厘米发射”吧

“阿波罗”飞船和“土星-5”火箭的示意图,可供参考。最前端的就是逃逸火箭,如果在发射阶段出现意外,它可以带着太空舱(飞船)脱离火箭主体,以便宇航员和飞船安全降落。来源:NASA

逃逸火箭此时点火已经是意外,但更诡异的是,飞船并没有跟随逃逸火箭飞出去,仍然留在MR-1上。但已经有铝箔条在满天飘散,按原计划,飞船正常降落时会抛出铝箔条,增强无线电反射,方便雷达追踪。逃逸火箭升高到了1200米的高度,然后坠落在距离发射台400米左右的地方。但诡异的事情还没有完,在逃逸火箭点火之后3秒,飞船打开了主降落伞,竖起了无线电天线。就在大家目瞪口呆的时候,飞船的备降落伞也打开了……

想象一下那画面:真正发射出去的只有尖顶那枚小小的逃逸火箭,MR-1火箭升空了10公分然后“坐落”下来,没有倾倒,头部飘着两朵降落伞,尖顶已经不见。飞船没有升空,却已经完成了正常降落的程序(飞船与火箭的分离是发射阶段的步骤,与降落无关)。同时火箭的自毁装置已经启动,却没有按预定程序自毁。更重要的是,现在发射塔与火箭连接的所有脐带都已经脱开,地面已经失去了控制能力。

MR-1发射视频。来源:CharlieDeanArchives

这时候该怎么办?

指挥中心乱成一团,所有人都在喊叫。火箭推进部分由冯·布劳恩团队的德国工程师负责,他们谁也没见过这种情况,情急之下这些人连番地说起了德语。总指挥Chris Kraft一再打电话询问情况,德国工程师根本无心顾及。不得已,暴怒的Kraft冲到一名德国工程师面前,揪起他的衣领:

混蛋,快回答我的问题!在指挥中心,所有人都必须听我指挥!

An image to describe post 系统问题应当如何排查?看看NASA著名的“10厘米发射”吧

NASA第一任飞行总指挥,同时也是指挥中心的概念提出者和设计师,Christopher Kraft,早期为美国的航天任务立下了汗马功劳,后来的休斯顿飞行指挥中心即以他的名字命名。他身后在点烟的家伙是就上图中的Gene Kranz。来源:NASA

但是大家能做的太有限了,他们手里只有一本薄薄的,汽车说明书那样的操作手册。技术数据是新收集的,指挥中心是新成立的,通讯网络是新建好的,发射程序是新制定的,所有职位都是新设置的…… 一句话,这是前无古人的工程,即便集中了最优秀的人才,大家仍然无可参照。

无奈归无奈,问题还是得解决。

现场提出的第一个建议是,派人去把发射台和火箭之间的脐带重新连上。但是火箭已经加注了燃料,堪比一个大炸弹,谁都不敢冒生命危险去干这个,也不敢让其他人去这么干,所以被否决了。

第二个建议是派人开长臂挖掘机,去把降落伞绳割断,这样至少避免了大风吹来降落伞把飞船“拽”走的风险,但这同样有人身危险,所以也被否决了。

这时候又有人提出了第三个建议:找支步枪朝燃料罐开枪,打一个洞,让燃料泄漏,这样就消除了爆炸的风险。听到这个建议,Kraft咆哮了:

蠢货,不是这样干的!你们是第一天来这里的菜鸟吗?

好在不久又有人提出了建议:按照天气预报,当天不会有大风,所以不必担心降落伞会把飞船拽走。火箭上的电池容量有限,如果大家耐心等待一天,电池的电力就会耗尽。电力耗尽之后,燃料罐的阀门就会打开进行泄压,那么燃料会自动释放。如果电池耗尽,燃料泄完,再接近火箭就没有危险了。

这个方案终于让Kraft点头了,他大声告诉所有人:

请记住,这就是飞行指挥的第一原则:如果你不清楚要做什么,那就什么也不要做(If you do not know what to do, don't do anything)。

“静静等待24小时”的建议被采纳了,大家提心吊胆等待了24小时之后,电力果然耗尽,燃料罐果然泄压。确认没有危险之后,NASA的工作人员登上火箭,现场处理,大家终于可以放心了。

但是事情还没完,发射失败当然是系统故障,但为什么意外的事情接二连三发生?NASA的工作人员顶着巨大的压力仔细调查,终于搞清楚了“4英寸发射”的来龙去脉。

首先,火箭为什么意外熄火?

查出来这是发射时两根电缆的断开顺序错乱导致。在火箭尾部有一根信号电缆和一根动力电缆,按计划,信号电缆应该先断开,动力电缆然后断开。不幸的是,本次发射使用的信号电缆是之前导弹发射所用的,所以反而更长。

之前已经有人想到了这一点,所以把电缆夹住了一段,希望能够解决问题。然而火箭发射时夹子并没有起到作用,反而是动力电缆先断开,过了29毫秒,信号电缆才断开。火箭发动机当即停车。

其次,飞船为什么没有分离?而逃逸火箭发射出去了?

按照正常流程,火箭发动机熄火之后,飞船会收到“正常断开”的信号,这时候已经用不上逃逸火箭了,所以逃逸火箭点火与飞船分离。在本次发射中,逃逸火箭正常点火分离的原因就在这里。

但飞船并没有和火箭分离,因为飞船与火箭分离的判断标准是“飞船的重力加速度为0”。如果一切正常,飞船应当在火箭失去动力时分离,此时已经进入高空,重力加速度接近于0。如果飞船一直停留在地面,重力加速度永远是1,当然不会与火箭分离。

还有,降落伞为什么在原地打开?

按原有设计,降落伞的打开是由气压决定的,如果逃逸火箭已经发射出去,飞船会时刻检查气压,如果当前高度低于海拔3000米则打开降落伞。

既然火箭一直留在地表,逃逸火箭弹射之后飞船当然要打开降落伞,抛出铝箔条了。而主降落伞打开之后,传感器并没有感受到拉力,所以认为主降落伞打开不成功,于是打开备降落伞。

最后,为什么系统没有进行自毁?

因为当时飞控系统工作在开环模式,所谓开环模式,就是不会根据反馈进行调整的控制模式(没有“防夹手”功能的车窗升降就是这样)。所以尽管收到了发动机停车的信号,飞控系统也“一意孤行”不启动自毁。不过系统确实报告当时符合自毁条件,在这一点上,系统确实是正常运作了。

了解了所有这些情况,NASA做了众多针对性的改进。比如专门设置了一条30公分长的控制电缆,确保点火之后其它所有控制电缆的信号都已经正常传输,这条电缆才会断开;又比如用程序保证在火箭点火129.5秒(预计熄火时间之后10秒)之后,火箭才能向飞船发送“正常断开”的信号……

至于本次发射遗留的火箭和飞船,因为本次发射中飞船没有损坏,所以它被直接用于改进的MR-1A发射任务并取得成功。而那枚倒霉的火箭则被送马歇尔太空飞行中心备用,但一直也没有派上用场,如今作为展品展出。

An image to describe post 系统问题应当如何排查?看看NASA著名的“10厘米发射”吧

2004年9月7日的飓风过后,展出“红石”火箭成了这样,顶部的逃逸塔真的“逃逸”了。来源:NASA

至于Kraft给飞行指挥中心确定的第一原则,它一直留传下来,并被一代代人遵守。我在《 try SCE to AUX,挽救登月的传奇指令》里提到过,NASA是如何遵循这条原则的。——在“阿波罗12号”升空遭雷击的事故中,宇航员本来可以启动逃生程序的,但关键时刻他们想到了这条原则,所以什么也没有做,最终在指挥中心的Aaron给出了明确的指令,登月行动得以顺利进行。

对今天的IT人来说,差不多60年前的“4英寸发射”的故事不仅仅是一段趣事,也能收获不少启发。

首先,关于事业和拼搏。

传统上不少人总认为,美国佬就是好逸恶劳,与艰苦奋斗是绝缘的。但是阅读当时的回忆录,看看NASA成立早期卡纳维拉尔角的情况,用“艰苦奋斗”来描述也不为过。我的观点是,美国人更重视个人兴趣和职业道德,所以即便物质条件没有那么丰厚,也有持续的动力。同时不可忽略的是冷战的大背景,无论美苏,普通人都有强烈的使命感。许多NASA员工回忆,支撑当时拼命工作的一个信念就是:我们一定不能输给苏联,一定要证明我们的社会制度更优越。

而且,美国人似乎更在意科学的方法论,懂得依靠科学技术来解决问题。

如果你留意就会发现,从一开始,美国的“水星”飞船的返回舱就是钝头形的,而苏联的“东方”飞船的返回舱是球形的,这是为什么呢?返回舱要做成什么形状,很大程度上是考虑再入大气层的影响。NASA早就建造了超音速风洞,通过实验发现钝头形状在进入大气层时稳定性最好。而苏联没有这个条件,所以他们另辟蹊径,把飞船做成球形——这样无论怎么滚转都没有大问题,只是苦了飞行员。

An image to describe post 系统问题应当如何排查?看看NASA著名的“10厘米发射”吧

左:“水星”飞船。右上:“水星”的风洞试验。右下:“东方”飞船。来源:Wikipedia

实际上这一点有许多例证支撑。罗尔斯·罗伊斯(简称“罗·罗”)是英国主要的航空发动机公司,其著名设计师Stanley Hooker在回忆录中提到过一件趣事:二战期间,英国战斗机的主力发动机是“梅林”(Merlin),但英国工厂的产量跟不上需求。于是英国人向福特汽车公司英国工厂求援,并提供全套图纸,福特的工程师们看过设计图之后说生产不了,因为“图纸的精度低、公差大,零件无法替换,生产效率上不来”。福特花了一年左右的时间改造整套设计,最终像“竹筒倒豆子”一样生产了大量的“梅林”发动机,有力支援了盟军空军的战斗。

其次,在遇到突发情况时怎么办。

在MR-1发射失败的紧要关头,大家七嘴八舌给了很多的建议,今天来看有一些当然不靠谱。但是在当时,必须有人一锤定音,给出最终决策,并对此负责。我经历过不少堪称重大的IT故障,其中也有不少混乱的场合。想来想去,缺乏一锤定音的“总指挥”是个重要的原因。

虽然没有清楚记录到底是谁提出“静待24小时”的,但这个建议确实体现了很高的技术素养。有天气预报作为现实证据而不是单纯依靠空想,有完整的逻辑链条而不只停留在简单的一两个环节,而且能在那样紧急的情况下提出,没有训练有素而冷静的头脑,是绝对做不到的。

再次,故障调查的时候,能不能把每个环节都搞清楚。

我参与过不少次故障调查,虽然故障的现象是接二连三的一长串,但故障调查往往是令人难堪的过程,所以大家都想早点得到一个“过得去”的简单结论,同时撇清自己的责任:起码我这里是没有问题的。

在MR-1的调查中我们看到,根本原因是两条电缆的断开顺序出错了,但是NASA并没有止步于此,而是把整个发射过程的来龙去脉都摸清楚了——当然这确实很难,NASA关于几次重大灾难的调查,也被总统调查委员会认为是“缺乏诚意,不够坦诚”。

我们还应当注意到,发动机停车之后的种种异常,都可以找出“我没错”的理由,但是这些“我没错”只是满足于“按道理”的所谓“正常”情况,如果从更整体的视角来看,这些“我没错”在当时都造成了难以理解的情况,增加了风险,也增加了大家的紧张,而且负责人在当时也说不出个所以然。

IT系统中也经常出现类似的情况,一个小小的异常引发链式反应,造成诸多问题,事后调查时又互相扯皮,大家都认为自己是“正确的”。在我看来,很多时候原因就在于各环节、模块在设计时偷懒“想当然”,没有考虑异常情况,也没有从更高层面进行全局思考——当然,这很难。

作为对比,1960年10月24日,苏联发生了与“4英寸发射”类似的航天事故,结局要惨痛许多。当时苏联要第三次发射火星探测器,前两次都失败了,如果此次再失败,就必须再等两年才会出现行星连线的机会。火箭已经加注了燃料,但仍然出现了一些问题,为了不错过发射时机,也为了向十月革命纪念日献礼,苏联战略火箭军总司令聂杰林(Mitrofan Nedelin)元帅坚持要求在发射台上对火箭进行全面检查,他本人亲临现场督战。

科研人员暂停了发射任务,在发射台上忙碌。没有想到的是第二级火箭有自己独立的时钟,它按原计划点火了,结果引发整枚火箭爆炸,包括聂杰林元帅在内的在场人员全部遇难。这就是航天史上著名的“聂杰林大劫难(Nedelin Catastrophe)”。

我总觉得,IT和航天其实有很多共通之处。大家常说,IT之所以有这么多问题,因为行业太年轻,没有多少经验可以借鉴。既然如此,为什么不多从其它行业借鉴点经验呢?

如果你赞同这个观点,欢迎赞赏或/和留言,鼓励我继续写这方面的文章。

巧合的是,就在几个月前(2018年10月11日),俄罗斯发射“联盟”飞船运送两名宇航员前往国际空间站。然而就在发射之后119秒的一二级火箭分离时,意外发生了。虽然目前尚不清楚原因,但现场视频可以看到大量烟雾和碎片。所幸这时逃逸机制顺利启动,在50公里的高度,逃逸火箭带领飞船脱离。最终,飞船降落在哈萨克斯坦,两名宇航员安然无恙。

An image to describe post 系统问题应当如何排查?看看NASA著名的“10厘米发射”吧

如果您认为本文说的有道理,欢迎长按识别上面二维码订阅。

“余晟以为”虽是个人号,但只用心做原创,不虚张声势,不故弄玄虚,不带节奏,力求定期更新,只为和你一同探索世界,分享致中平和的观点。