阿麗亞娜V88飛行(Ariane flight V88)[1]是1996年6月4日阿麗亞娜航天公司阿麗亞娜-5運載火箭首次失敗的發射,該枚編號為501的運載火箭搭載了四顆由歐洲航天局研究衛星所組成的衛星群。

Quick Facts 任務類型, 運營方 ...
星簇衛星
Thumb
測試中的星簇衛星
任務類型磁層探測
運營方歐空局
航天器屬性
發射質量1200千克(2600磅)
任務開始
發射日期1996年6月4日 12:34:06 (UTC) (1996-06-04T12:34:06Z)
運載火箭阿麗亞娜5G型火箭
發射場庫魯航天中心3號發射台
任務結束
丟棄形式發射失敗
毀損日期1996年6月4日 (1996-06-04)
Close

由於軟件設計中的多個錯誤,發射以失敗告終:對整數溢出保護不足的死代碼(其運行僅有效於阿麗亞娜4號運載火箭),導致異常處理不當—停止整個慣性導航系統(否則就不會受到影響)。使火箭在發射37秒後偏離飛行軌道,在高空氣動力作用下開始解體,最後通過自動飛行終止系統自毀。這一慘痛的失敗成為歷史上最著名、代價最昂貴的軟件漏洞之一[2],這次失敗造成的損失超過3.7億美元[3]

發射失敗

Thumb
搭載了四顆星簇衛星的501號阿麗亞娜運載火箭示意圖
Thumb
發射失敗的501號阿麗亞娜火箭碎片散落區
Thumb
拾回的衛星結構支撐柱

阿麗亞娜5型火箭沿用了阿麗亞娜4型慣性導航平台代碼,但兩者的不同之處在於阿麗亞娜5型火箭早期飛行階段的水平速度更高,這導致校準函數計算出的內部水平偏差值(BH)出乎意料地高。根據阿麗亞娜4型的需求,校準函數可運行約40秒的飛行時間。阿麗亞娜5號升空後校準函數實際不起任何作用[4],但更高的水平偏差值導致數據被從64位浮點數轉換成16位符號整數值,引發數據溢出和硬件異常[5]

P_M_DERIVE(T_ALG.E_BH) := UC_16S_EN_16NS (TDB.T_ENTIER_16S
                                   ((1.0/C_M_LSB_BH) *
                                   G_M_INFO_DERIVE(T_ALG.E_BH)))

由於擔心星載計算機運算能力的限制,軟件開發前,程序員僅保護了七個關鍵變量中的四個免於溢出,並依賴三個未保護變量錯誤的假定取值範圍(儘管這些假設對阿麗亞娜4型火箭軌跡是正確的)[6]。該異常使兩個慣性導航系統模塊停止運行,雖然它們原本為冗餘的。主動模塊向星載計算機提交了被解釋為飛行數據的診斷數位模式,尤其引起固體助推器和武爾坎主引擎噴嘴完全偏轉,使攻角超過20度,進而造成助推器與主火箭分離,觸發火箭自毀系統並中斷飛行[4]

根據威廉·卡漢的說法,如果使用默認的IEEE 754異常處理策略(「預替代」),就可避免501號發射的損失,因為它不會中止計算[7]。關於墜毀事件的官方報告(由雅克·路易斯·利昂領導的調查委員會進行)指出,「阿麗亞娜5號開發的一個基本思路是傾向減少隨機故障慣性導航系統(SRI)的供應商只是遵循了給定的規範,即一旦檢測到任何異常,就立即停止處理器工作。但這次發生的異常並非由於隨機故障而是設計錯誤所產生。異常雖被檢出,但處理並不恰當,因為直到故障出現前,該軟件一直被認為是正確的[...]。儘管故障是由於系統軟件設計錯誤造成,但可以引入機制來緩解此類問題。例如,慣性導航系統內的電腦應能繼續提供所需姿態信息的最佳估測。允許甚至要求在軟件異常時停止正在處理任務關鍵設備處理器的這一模式令人擔憂。事實上,失去適當的軟件功能非常危險,因為相同的軟件在兩台慣導單元中運行。在阿麗亞娜501火箭的案例中,它導致了兩台仍正常的關鍵設備被關閉」 [4]

報告確認的有關測試的其他問題[4]

  • 對所有參與阿麗亞娜5型運載火箭計劃主要合作方的審查只是驗證其設計決策並獲得飛行資格。在此過程中,並未充分分析校準軟件的局限性,也未意識到它在飛行過程中繼續運行產生的可能影響。
  • 慣性導航系統的規範和在設備層面進行的測試並未具體包括阿麗亞娜5型軌道數據。因此,沒有在模擬阿麗亞娜5型飛行條件下對重新校準功能進行測試,也沒有發現設計錯誤。
  • 將慣性導航系紡全部納入整個系統仿真在技術上是可行的,但出於多種原因,最終決定只使用慣導系統的模擬輸出,而非真實系統或對其詳細模擬。如果當時將整個系統包含在內,則故障就可能被檢出。後來在計算機中利用慣性導航系統軟件和包括阿麗亞娜501號實際飛行軌跡數據等模擬環境進行的仿真飛行,真實地再現了導致慣性導航系統失效的事件過程。

系統工程角度分析的故障原因[8]

  • 水平速度和由此計算出的水平偏差數值等變量範圍應明確量化,而實際情況是,僅假定為16位範圍。
  • 校準任務應在適當的時候停用,實際情況是,起飛後就開始運行。
  • 應分析慣性導航平台的故障模型,以確保在整個飛行過程中能持續服務,而非只假定最多一台儀器會失效。現實情況是兩台儀器都出現了故障,輸出的診斷信息被解釋為飛行數據,而不是正常終止飛行。

有效載荷

星簇衛星由四顆重1200公斤(2600磅)、安裝有224瓦供電太陽能板的圓柱形自旋穩定航天器組成。四顆衛星將以四面體的形式飛行,旨在對地球磁層進行研究。衛星將被插入到17200x120600公里(10700x74900英里),朝赤道傾斜90度的高橢圓軌道上[9]

後果

故障發生之後,又建造了四顆替代的星簇2號衛星。2000年,它們搭載在聯盟-U/佛蓋特火箭上被成對發射升空。

發射失敗使與複雜計算系統相關的高風險引起了公眾、政界人士和高管層的重視,從而增加了對確保安全攸關系統可靠性研究的支持。隨後對阿麗亞娜代碼(用Ada語言編寫)的自動分析是首個通過抽象解釋進行大規模靜態代碼分析的示例[10]

這一失敗也損害了歐洲航天局火箭系列的優異發射記錄,這是由阿麗亞娜4型的高成功率所創造的。直到2007年,阿麗亞娜5型火箭才被公認為與以前的型號一樣可靠[11][查證請求]

另請查看

  • 火星氣候探測者號從早期火星氣候軌道器改編的軟件在發射前沒有經過充分測試。
  • 阿波羅制導計算機—阿波羅主要制導、導航和控制系統(PGNCS)故障,航天器導航計算機因子系統不適當地保持運行而受到影響。

參考文獻

延伸閱讀

外部連結

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.