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