冗余不是多余

在日常生活中,“冗余”一词是贬义的,但在火箭科学中,是否有冗余可能就决定了火箭发射的成败,而成败关乎生死。航空航天领域中的“冗余”是指创建备份,以避免因某个故障点而危及整个任务的情况发生。宇宙飞船的设计要满足一个条件:即使出了故障,它也能正常运行,也就是“有故障而不失效”。你开的汽车后面有备用轮胎,前面有紧急制动装置,也是同样的道理。如果你的车胎没气或者刹车失灵,就得靠这些备用装置维持正常运转。

例如,美国太空探索技术公司的猎鹰9号火箭配备了9个引擎。这些引擎彼此之间有充足的隔离空间,即使某个引擎发生故障,航天器也能完成任务。最重要的是,引擎的设计决定了它只会失效,不会损害其他组件或者危及航天任务。2012年,猎鹰9号在一次发射中,其中1个引擎在飞行过程中失灵,其他8个引擎却持续轰鸣。飞行计算机关闭了有故障的引擎,并调整了火箭的飞行轨道,把引擎故障也考虑在内。火箭继续爬升,将需要运送的货物送入轨道。

航天器上的计算机也配备冗余装置。在地球上,计算机往往无法避免崩溃或死机,而在太空环境中,计算机发生故障的概率有增无减,因为计算机在太空中要经历无数次振动、冲击,电流变化和温度波动。正因如此,有的航天飞机的计算机是4倍冗余,即飞机上有4台计算机在运行着同样的软件。这4台计算机会通过一个多数投票系统就下一步动作进行单独投票。如果其中一台计算机发生故障,开始输出错误的数据,其他3台计算机就会投票将其排除在外。

冗余装置要正常工作,就必须独立运行。一架航天飞机配备4台计算机,这听起来非常棒,但由于它们运行着相同的软件,所以只要一个软件出现错误,4台计算机就会同时瘫痪。因此,航天飞机还配备了第5个备用飞行系统。该系统安装有一款不同的软件,这款软件由不同的分包商提供。如果某个一般性的软件错误使4台相同的主计算机瘫痪,备用系统会启动,并将航天飞机送回地球。

尽管冗余是一种很好的保险措施,但它同样遵循收益递减定律。额外的冗余增加到某种程度之后,就会无谓地增加设备的复杂性、重量和成本。波音747客机当然可以有24台引擎而不是4台引擎,但这样你就得花上1万美元才能买到从洛杉矶到圣弗朗西斯科的狭窄经济舱座位。

过度的冗余还会适得其反,不仅无法提高可靠性,反而会对其造成影响。冗余设备增加了额外的故障点。如果波音747客机上的各台引擎没有正确隔离,那么一台引擎发生故障就有可能损害其他引擎;而每增加一台引擎,风险就会随之增加。这样的风险促使波音公司得出一个结论:引擎数量越少,事故发生的风险就越低。于是波音777客机上只安装了2台引擎。

冗余所提供的安全性能是显而易见的,但人们可能会错误地假设:即使出了问题,也会有一个故障保护装置保驾护航。换句话说,冗余不能代替优秀的设计。