1999年,NASA損失了一個價值3.27億美元的火星探測器。原因不是軟體錯誤或硬體故障,而是一件更平凡的事:有人忘記了轉換單位。
3.27億美元的錯誤
火星氣候探測器的設計目的是研究火星大氣並作為通訊中繼。經過9個月的旅程,它於1999年9月23日接近火星。然後它消失了。
調查揭示了一個令人尷尬的真相:洛克希德·馬丁公司的地面軟體用磅力計算推進器的力,而NASA的系統期望的是牛頓。沒有人發現這個差異。
誤差如何累積
航天器在旅途中需要小的航向修正。每次推進器點火時,力的計算都是錯誤的——相差4.45倍(磅力和牛頓之間的轉換系數)。
九個月來,這些微小的誤差不斷累積。當探測器到達火星時,它比計劃低了170公里。它可能在大氣層中燃燒殆盡,或者彈回太空。
人為因素
這場災難引人注目之處在於它是多麼可以避免的:
- NASA的規範明確說明應該使用公制單位
- 多個團隊審查了導航資料
- 警告訊號在墜毀前幾個月就存在了
- 簡單的轉換檢查就能發現錯誤
然而探測器還是墜毀了。為什麼?因為各團隊假設其他人已經驗證了單位。因為"以前一直都行"。因為檢查單位似乎太基礎了,不重要。
不是孤立事件
火星氣候探測器不是單位混淆的唯一受害者:
加拿大航空143航班(1983年):因為地勤人員在加油時混淆了千克和磅,飛機在飛行中燃料耗盡。飛行員成功地將波音767滑翔降落到安全地點。
東京迪士尼樂園太空山(2003年):一根斷裂的車軸被追溯到元件公制和英制規格的混淆。
哥倫布的航行(1492年):哥倫布低估了到亞洲的距離,因為他使用的是羅馬英里而不是阿拉伯英里——羅馬英里更短。
更深層的問題
真正的問題不是存在不同的單位系統。而是我們假設轉換是簡單和明顯的。它們不是。
考慮這些常見的混淆:
- 液量盎司 vs 盎司(體積 vs 重量)
- 美噸 vs 公噸 vs 英噸
- 海里 vs 法定英里
- 馬力(機械) vs 馬力(公制)
每個系統在其原始背景下都是有意義的。問題出現在系統沒有明確轉換就碰撞的時候。
吸取的教訓
災難發生後,NASA實施了新的協議:
啟示
下次有人認為單位轉換是微不足道的事情時,記住火星氣候探測器。一個旅行了6.7億公里的航天器,被一個任何計算器都能解決的方程式摧毀了。
單位很重要。始終明確它們。始終驗證它們。檢查的成本微不足道。不檢查的成本可能是3.27億美元——或更多。