☉〔美〕奧贊·瓦羅爾
◎李文遠 譯

在日常生活中,“冗余”一詞是貶義的,但在火箭科學中,是否有冗余可能就決定了火箭發射的成敗,而成敗關乎生死。航空航天領域中的“冗余”是指創建備份,以避免因某個故障點而危及整個任務的情況發生。宇宙飛船的設計要滿足一個條件:即使出了故障,它也能正常運行,也就是“有故障而不失效”。你開的汽車后面有備用輪胎,前面有緊急制動裝置,也是同樣的道理。如果你的車胎沒氣或者剎車失靈,就得靠這些備用裝置維持正常運轉。
例如,美國太空探索技術公司的獵鷹9號火箭配備了9個引擎。這些引擎彼此之間有充足的隔離空間,即使某個引擎發生故障,航天器也能完成任務。最重要的是,引擎的設計決定了它只會失效,不會損害其他組件或者危及航天任務。2012年,獵鷹9號在一次發射中,其中1個引擎在飛行過程中失靈,其他8個引擎卻持續轟鳴。飛行計算機關閉了有故障的引擎,并調整了火箭的飛行軌道,把引擎故障也考慮在內。火箭繼續爬升,將需要運送的貨物送入軌道。
航天器上的計算機也配備冗余裝置。在地球上,計算機往往無法避免崩潰或死機,而在太空環境中,計算機發生故障的概率有增無減,因為計算機在太空中要經歷無數次振動、沖擊,電流變化和溫度波動。正因如此,有的航天飛機的計算機是4倍冗余,即飛機上有4臺計算機在運行著同樣的軟件。這4臺計算機會通過一個多數投票系統就下一步動作進行單獨投票。如果其中一臺計算機發生故障,開始輸出錯誤的數據,其他3臺計算機就會投票將其排除在外。
冗余裝置要正常工作,就必須獨立運行。一架航天飛機配備4臺計算機,這聽起來非常棒,但由于它們運行著相同的軟件,所以只要一個軟件出現錯誤,4臺計算機就會同時癱瘓。因此,航天飛機還配備了第5個備用飛行系統。該系統安裝有一款不同的軟件,這款軟件由不同的分包商提供。如果某個一般性的軟件錯誤使4臺相同的主計算機癱瘓,備用系統會啟動,并將航天飛機送回地球。
盡管冗余是一種很好的保險措施,但它同樣遵循收益遞減定律。額外的冗余增加到某種程度之后,就會無謂地增加設備的復雜性、重量和成本。波音747客機當然可以有24臺引擎而不是4臺引擎,但這樣你就得花上1萬美元才能買到從洛杉磯到圣弗朗西斯科的狹窄經濟艙座位。
過度的冗余還會適得其反,不僅無法提高可靠性,反而會對其造成影響。冗余設備增加了額外的故障點。如果波音747客機上的各臺引擎沒有正確隔離,那么一臺引擎發生故障就有可能損害其他引擎;而每增加一臺引擎,風險就會隨之增加。這樣的風險促使波音公司得出一個結論:引擎數量越少,事故發生的風險就越低。于是波音777客機上只安裝了2臺引擎。
冗余所提供的安全性能是顯而易見的,但人們可能會錯誤地假設:即使出了問題,也會有一個故障保護裝置保駕護航。換句話說,冗余不能代替優秀的設計。