这是“阿波罗8号”连载的第二篇,第一篇是: 阿波罗8号,NASA的惊险大跃进
按照预定计划,“阿波罗”登月计划采用“土星5号”运载火箭搭载飞船升空。“土星5号”是至今为止最大的火箭,如果你留意过,就会发现如今的火箭在自我宣传时都必须加上“现役”的前缀,那是因为“土星5号”已经退役了。
“土星5号”这个大家伙可以把140吨的负载送入近地轨道,对现役的大多数火箭来说,这个数字只有不到30吨——可以想象太空竞赛的当时,双方有多么疯狂。
虽然有传说“土星5号”的图纸已经全部遗失或销毁,但NASA驳斥了这一说法。按照官方解释,所有设计资料仍然保存在微缩胶卷上,只是如今对应的零件和生产线已经不再生产和使用了,花费巨资重建“土星5号”没有意义。
“土星5号”有多大呢?加上顶部的阿波罗飞船,高度一共有111米,差不多是36层楼的高度。燃料加注完成之后,总重量超过3000吨。在起飞阶段,五台巨大的F-1发动机每秒钟都要烧掉13吨燃料。
如果你对这个数字没有感觉,我们可以做个形象的对比。1927年,美国飞行家查尔斯·林白驾驶“圣·路易斯精神”号飞机从纽约飞抵巴黎,完成了人类历史上的创举。但是林白整趟航程消耗的燃料只有2750磅(约1.3吨),只是“土星5号”一秒钟消耗燃料的十分之一。如今,土星5号一秒内烧掉这些燃料产生的功率高达1.2亿千瓦,堪比当时整个英国在高峰时期的耗电量。
“土星5号”由原纳粹德国的火箭科学家冯·布劳恩担任总设计师(在《 系统问题应当如何排查?看看NASA著名的“10厘米发射”吧》里,我详细介绍过冯·布劳恩)。虽然冯·布劳恩有丰富的火箭经验,但“土星5号”的研制毕竟是前所未有的挑战,要解决的问题层出不穷。
典型的例子是土星五号第一级中的F-1发动机燃烧稳定性问题。F-1发动机堪称“出师不利”,刚开始测试就出现了燃烧不稳定的情况,44次测试中竟然出现了20次。燃烧不稳定会导致发动机抖动和火箭烧蚀,属于不可接受的情况。
为解决这个问题,NASA专门启动了“一号项目”(Project First),来解决燃烧稳定性的问题。工程师仔细对比了F-1发动机的燃烧情况和纳粹德国V-2导弹的燃烧情况,发现了玄机:V-2导弹是多喷嘴设计,而F-1发动机是单喷嘴设计。打个不那么恰当的比方,V-2好像是燃气灶的火眼,而F-1好像是单根的蜡烛,前者明显更稳定。
解决之道是改变燃烧室的构造,增加隔离,这样修改之后燃烧果然稳定了。但工程师仍然不敢放心,为了确保解决问题,他们又在喷嘴里放了一些炸药随机引爆。
经过测试,确认燃烧是稳定可靠的。燃烧稳定性的问题今天看起来简单,但航天任务中没有哪个任务是简单的,整个“一号计划”从1962年持续到1965年,花费了四年时间,进行了超过2000次全尺寸测试,才算最终完成。
即便如此,“阿波罗8号”也是“土星5号”的第三次发射,之前的两次任务分别是“阿波罗4号”和“阿波罗6号”,其中“阿波罗6号”堪称失败,因为火箭第二级的J-2发动机出现了故障,好在控制系统延长了其它发动机的工作时间,终于把飞船送入了轨道,但这也足够让人担惊受怕的了。如今,“阿波罗8号”是“土星5号”火箭的第一次载人发射,到底有多少成功把握,谁也不知道。
实际上,直到1968年9月16日,冯·布劳恩和他的团队才确认,“土星5号”的问题已经全部解决,他们有足够把握用“土星5号”执行载人航天任务了——这时候距离“阿波罗8号”的预计发射时间只剩下3个月。
除了火箭,计算机系统也是一大挑战。之前绕地球飞行的“水星”和“双子星”任务中,计算机扮演的角色都很边缘,最早上天的“自由七号”几乎没有计算机。这一方面是因为当时计算机还处在相当原始的阶段,不让人信任。另一方面,在大多数人的观念里,飞行到底更多属于人工操作,还是更多属于非人工操作,这个问题一直没有定论。
按照历史学家Harvard Gibbs-Smith的命名,一直以来,关于飞行控制,存在着两大流派:chauffeurs和airmen。
前者希望飞机是静态稳定的,只要飞行员不动作,飞机就一直保持当前的稳定状态,这种理念类似三轮车。对飞行器来说,飞行员是“置身事外”的,他更关心的是“让飞行器干什么”;后者希望飞机是静态不稳定的,飞行是需要随时去关注、去操作、去体验的活动,理念类似自行车。飞行员是“置身其中”的,他需要懂得“怎么操作飞行器”。
长期以来,欧洲尤其是法国人,都偏爱chauffeurs,而美国人一直喜欢airmen,他们相信飞行是技能,也是属于飞行员的荣耀。但是二战以后,随着飞行器性能和复杂度的不断提升,即便是长期偏爱airmen理念的美国人,也不得不接受“飞行必须由技术装备辅助”的现实。
有个突出的例子就是NASA的X-15试验机。NASA在20世纪50年代通过X-15试验机完成了大量航空航天测试,为后来的载人航天积累了大量的经验。该机由B-52轰炸机携带到高空投放,速度最高可达7马赫(7倍音速),高度最高可达108公里。
X-15试验机在飞行 来源:NASA
与传统飞机不同的是,X-15身兼航空(大气层内飞行)和航天(接近大气层外)的两大任务。通常认为,“适航大气层”的高度不超过31千米,更高的高度上环境已经与太空相同,所以X-1的飞行分为两部分,操控原理截然不同。在航空飞行时,只需要操作对应舵面,流过机身的空气就发生会变化,从而改变飞机的姿态。在航天飞行时没有空气,只能依靠反作用力(向外喷射)来改变飞行姿态。
按照传统的设计,X-15上配备了三根操纵杆,分别对应不同的情境。这样确实有效,但增加了飞行员的负担,因为飞行员不那么关心现在到底是在大气层内还是大气层外,他只希望飞机的操纵逻辑是不变的。
X-15的座舱,可以看到左、中、右三根操纵杆 来源:NASA
这个问题直到1960年制造出第三架X-15才得到解决,当时Honeywell为X-15开发了名为MH-96的控制系统,解放了飞行员。阿姆斯特朗事后评价说,有了MH-96,飞机“稳定得不可思议,我才真正有时间去看看四周,望出窗外”。
另一方面,操作理念的选择也与飞行员的年代有关,比如老一代的飞行员都很“传统”,更喜欢“真刀真枪”地体验飞行,不喜欢使用模拟器,而以阿姆斯特朗为代表的飞行员则很容易接纳模拟器训练。(多说一句,这两派理念的影响至今仍然深远,典型的例子就是空客和波音截然不同的操作理念)。
到了“阿波罗”任务期间,系统的复杂性已经足够高,高到手工操作已经不能胜任的程度。哪怕是airmen的绝对拥趸也不得不承认,“阿波罗”飞船离不开计算机。
与X-15试验机不同,X-15虽然可以在适航大气层之外飞行,外形仍然类似传统的飞机,有机头、机翼、机尾等结构,大部分时候仍然“朝前飞”,滚转之类是应当避免的。“阿波罗”飞船则完全不同,360度旋转对它毫无问题,甚至有时候是任务必须,其姿态调整是借助喷嘴完成的。飞船一共配备了四组喷嘴,每组四个,一共十六个喷嘴。每次飞行姿态的调整都需要多个喷嘴协同。同时控制十六个喷嘴配合工作,显然是人工不可能完成的任务。
“阿波罗”飞船的指令舱和服务舱,红圈处即为调整姿态的喷嘴 来源:NASA
NASA找到了MIT,让他们负责设计对应的计算机系统。有趣的是,尽管当时的计算机还处在发展的早期,开发人员的思维却和如今是一致的:既然要登月,程序只要提供两个按钮,一个是“去月球”一个是“回地球”,就好了。其他的,“你们都不必操心”。
但是这个想法必然得到宇航员和航天工程师的大力反对。要知道,上世纪60年代计算机还处在发展的早期,不但速度缓慢、体积巨大,更要命的是可靠性也很差。今天大家都认为计算机比手工要可靠,但是在当时,计算机远没有如今那么普遍和值得信赖,谁也不敢把自己的身家性命交给计算机来管理。
用来进行技术验证、训练宇航员的X-15试验机的事故也加深了这种印象。1967年11月15日,飞行员Michael J. Adams驾驶的第三架X-15飞行时遭遇意外,在进入大气层时进入尾旋,数次尝试改出无果之后,因为剧烈震动,飞机在空中解体。
事后调查发现,此次事故并非单一原因,人工操作和MH-96都有责任。无论如何,这加深了飞行员们对“黑盒子”(因为大家认为其运行原理无法观测)的恐惧,后来不再强调计算机系统的绝对权威,而要将其设定为“灰色系统”,人工需要有绝对的介入权。实际上,所有的六次登月(从“阿波罗11号”到“阿波罗17号”,中间“阿波罗13号”未能登月)任务中,虽然计算机提供了对应的程序,但降落月球全都是宇航员手工操作的。
我们同样不能忽略当时的时代背景。在上世纪五十年代,飞行器大量引入计算机等辅助设备之后,因为几乎没有人意识到“人机工程”的重要性,所以飞行员抱怨“操控感很差”、“飞行品质很差”,而“操控感”和“飞行品质”在当时是无法用理性认识的。最终的办法是:飞行员必须参与到飞行器的设计当中来,飞行器的设计也必须听取飞行员的意见。到了“阿波罗”飞船的设计中,宇航员的意见必须得到尊重。
最后的结果,就是如今基本已经成为标配的“线传飞行控制”(FBW,Fly-By-Wire),简单说:电脑成了驾驶员(飞行员、宇航员)与飞行器的中介,驾驶员通过电脑来操作飞行器。在飞行中,驾驶员的动作先被电脑感知,变成信号,由电脑综合飞行器的状态,在闭环中作出决策,再把对应信号通过线缆传递到对应机构,采取具体行动。
尽管早先已经有飞机开始使用线传飞控,但大家都信不过它,还是留了一套液压操控机构备份(如今波音的大部分飞机仍然保留一套液压操控系统,这种机械也深得检修人员喜爱,因为简单直观,方便维护)。线传飞控技术第一次作为完整的方案,正是在“阿波罗”飞船上。另一个重要原因是,这些冗余系统的重量对飞机来说尚且可以接受,对航天器来说就太奢侈了。
“阿波罗”飞船上的计算机(AGC,Apollo Guidance Computer,虽然名字是“导航”,但其实包括了飞行控制的全套功能)采用了当时最先进的技术,集成电路。这可是名副其实的“先驱”,如今许多人把世界上第一个微处理器4004的诞生当成集成电路的诞生,但是4004芯片要等到1971年才面世,那可是“阿波罗8号”上天3年之后的事情了。
“阿波罗”飞船用到的集成电路,由MIT的媒体实验室和“仙童半导体”合作提供,售价不菲
我们时刻要记得,上世纪60年代的计算机系统和如今差异巨大。集成电路只是其中一个方面,“阿波罗”的存储也与今天的大不相同,它用的不是磁盘,也不是芯片,而是独特的Core Rope Memory(磁芯-线缆存储器)。
制造这种存储器需要的不是如今流行的生产流水线,而是精于缝纫的女性,有人戏称她们为“小老太太(Little Old Ladies)”。存储器里有多个磁环,每个磁环对应一个bit。如果磁环里穿有导线,就代表1,如果没有,就代表0。这项工作只能交给耐心细致的“小老太太”,她们根据编写好的程序,仔细将导线穿过对应的磁芯,再焊接完成。“编好”的程序封存在这样的存储器里(成为只读),简陋但绝对可靠。
AGC上的ROM(Core Rope Memory)
磁芯存储器的制作画面,和如今的服装厂很像吧?
你可以想象,这样制造出来的计算机,其性能一定非常“低下”,事实也确实如此。“阿波罗”飞船搭载的AGC,主频2MHz,RAM容量为2048个字(字长16位,采用磁芯存储器),ROM容量为36K(采用磁芯-线缆存储器)。随便哪一项参数都远远逊于当今随处可见的手机,甚至连计算器都不如。所以也有一些人质疑说,以当时的计算机水平,登月是不可能的。
AGC的RAM使用磁芯存储器,它长得有点像上面的ROM,但其实是可写的
不过这类质疑大多站不住脚。要知道,前些年上天的我国“天宫一号”空间站,其主计算机也不过相当于20世纪80年代的386水平。实际上,各种航天设备的计算机水平“普遍很低”,主要原因有两个:第一,航天任务极端在意可靠性,太空辐射很强,高能粒子穿透电子设备会导致内容翻转(0变1,1变0),普通民用设备遇到这种情况多半会死机,所以需要大量的冗余来进行校验;第二,电子设备的频率越高,工作时越容易受外界干扰,所以降低频率是保证可靠性的重要手段。
所以,尽管如今常见的计算机系统确实很强大,但我们不能想当然,以通用的民用技术来推断专门领域的应用情况。专门领域往往有独特的环境和限制,强行推断会得到许多错误的结论。再举个例子:坦克主炮开火时会产生巨大的震动和电磁脉冲,一般的计算机根本承受不了,暂时停机还是其次,数据丢失的危险更加重大,所以从硬件到软件都需要专门考虑。
回到“阿波罗”飞船的技术准备。有了计算机还不够,还必须解决宇航员操作计算机的问题。当时可没有触摸屏,也没有指望宇航员像今天的人一样熟悉电脑,甚至是键盘。在整个任务期间,宇航员要给电脑的指令有几百种,怎样让宇航员能够方便地下达指令,并观察电脑的状态,这是一大挑战。
解决方案是MIT的仪器测量实验室(Instrumentation Library)提供的DSKY,它读作dis-key,是Display Keyboard的缩写。
AGC和DSKY的合影
DSKY操作界面
MIT的DSKY是为了能输入太空飞行所需的大量指令而设计的,它的设计相当巧妙,所有的指令都分为两部分:动词、名词。
不同的动词对应不同的数字,不同的名词也对应不同的数字。比如动词37(输入3-7-Enter)表示“准备执行指令”,再输入名词31(3-1-Enter)表示“对接”,飞船就会开始准备对接,这条指令在手册上记作V37N31E(最后的E表示Enter)。
所以,调整飞船姿态的指令是50 18,显示姿态变化的指令是06 18,为下一次调整姿态改变速度的指令是06 84。当然也有一些指令不需要名词,它们对应的动词编码是44-49。而动词编码00-37用于日常的指令,必须搭配名词。总的来说,只需要一个小小的键盘,就足够输入几百种指令。
“阿波罗”飞船上的DSKY操控面板包含三部分:
第一部分是左上部分的十盏报警灯,比如TEMP表示温度超出正常范围,UPLINK ACTY表示正在从地面接收数据;
第二部分是右上部分的状态显示屏,PROG、VERB、NOUN分别显示当前正在执行的指令,对应的动词指令、名词指令,下面还可以显示3个五位数值;
第三部分是下面的键盘,左边有VERB、NOUN两个键,中间是0-9,右边是ENTER、CLEAR等操作键。
据统计,在整个任务期间,宇航员需要在这个小小的面板上按键超过一万次。
更不可思议的是,“阿波罗”飞船诞生的时候,许多人对“软件”(software)根本没有概念。在“阿波罗”的项目需求文档中,甚至都没有包含“软件”这个词,更不用说为它保留预算了——至少在一开始,事实就是如此。
随着项目持续开展,大家才逐渐意识到软件的重要性。1965年,软件开发的工作被单独列出来,交给MIT的Margret Hamilton负责。
Hamilton当时只有24岁,在MIT取得数学学士学位之后,她偶然踏入了软件开发的世界,然后深深爱上了这个职业,“(做软件开发)就好像开发西部的蛮荒地带一样”。
当时的软件开发流程也相当简陋,在模拟器上完成各种情况的测试,程序定型之后,交给雷声(Raytheon)公司的“小老太太”们,由她们把程序“编织”完成。与如今不同的是,当时的电脑基本没有“运行内存”(Working Memory),当然,也异常坚固。
Margret Hamilton在“编程”
Margret Hamilton在展示AGC的源代码
有趣的是,“阿波罗”飞船的源代码已经在前些年公开在Github上,而且有一群爱好者真的找来设备让它跑起来了,并录制了系列视频。有兴趣的朋友可以在YouTube上搜索“Apollo AGC Restoration”。
Apollo AGC系列节目非常有意思,各种不可思议,值得一看
除了电脑,“阿波罗”飞船还有些“古老”的设备,比如比如六分仪就是。
从大航海时代开始,水手们就使用这种仪器来测量恒星和地平线之间的角度,用来确定自己的经纬度。在“阿波罗”飞船上同样装备了六分仪,在飞行期间,宇航员需要用它测量恒星与地球月球连线之间的角度,把得到的数据输入计算机,然后才可以知道自己所处的位置,接着电脑才可以正确操控推进器,保证飞行路线的准确。
说起用六分仪定位,Lovell可是行家。对他来说,查看六分仪,把数据录入电脑,这就好像钢琴家弹钢琴一样舒服熟练自然。Lovell甚至因此获得了“金手指”的美誉。不过恰恰就是在飞行途中,Lovell差点酿成大祸,只是之前谁也不知道。
当然,航天发射是一件大事,要准备的不只是技术方面。按计划,“阿波罗8号”返回必须要求海军出动航空母舰和直升机来打捞。不幸的是,“阿波罗8号”的预计返回时间正好是圣诞期间,按照惯例,海军已经有假日安排。
更不凑巧的是,前不久,太平洋舰队司令John Sidney McCain将军的儿子驾驶的飞机在越南上空被击落,他成了俘虏,所以现在将军的情绪并不好。不过Kraft等不了那么多,他直接飞到檀香山,闯进了海军的会议室:
将军,我知道海军圣诞节有自己的安排,我现在请求您做出变更。 我今天前来是寻求海军的支援,在发射之前一直到圣诞假期。 我们需要你的支持。
这真是我听过最给力的汇报了。那个年轻人要什么,就给他安排什么!
在Kraft说话之后,会议室里一片寂静,别说陌生人,熟人也不敢这么对太平洋舰队的司令说话。但是,44岁的Kraft面对57岁的McCain毫无畏惧。最终,他得到了需要的支援。
未完待续……
延伸阅读:
加班越狠,出成绩就越多吗?在NASA,这叫做Go Fever
参考资料:
Digital Apollo: Human and Machine in Spaceflight by David A. Mindell
Rocket Men: The Daring Odyssey of Apollo 8 and the Astronauts Who Made Man's First Journey to the Moonby Robert Kurson
Failure Is Not an Option: Mission Control from Mercury to Apollo 13 and Beyondby Gene Kranz
Genesis: The Story of Apollo 8: The First Manned Mission to Another World by Robert Zimmerman
Apollo 8: The Thrilling Story of the First Mission to the Moonby Jeffrey Kluger
如果您认为本文有意思,欢迎长按识别上面的二维码订阅。
“余晟以为”虽是个人号,但只用心做原创,不虚张声势,不故弄玄虚,不带节奏,力求定期更新,只为和你一同探索世界,分享致中平和的观点。