1969-阿波羅登月#
案件摘要#
1969 年 7 月 20 日,世界標準時間 20:17,一台只有駕駛員膝蓋高的登月艙降落在月球靜海(Sea of Tranquility)。Apollo 11 的太空人 Neil Armstrong 與 Buzz Aldrin 踏上月球,Michael Collins 留在指令艙待命。這樁案子的「機器主嫌」有三:土星五號火箭(Saturn V)、登月艙(LM, Lunar Module)、以及Apollo 導航電腦(AGC, Apollo Guidance Computer)。而幕後的總設計師,是 NASA 的首席工程師 Owen Maynard 的軌道方案、MIT 儀器實驗室(MIT Instrumentation Lab)的 Charles Stark Draper 與 Eldon Hall,以及系統工程管理大師 George Mueller。本偵探要查的是:一台只有 4 KB 記憶體的電腦,憑什麼把兩個人送上月球再帶回來?答案藏在軌道交會的數學、積體電路的訂單,與系統工程的紀律裡。
前因 -- 為什麼會有這個案子#
1961 年 5 月 25 日,甘迺迪總統在國會宣布:「在這十年結束前,把人送上月球並安全帶回地球。」這不是科學提案,是冷戰宣示——1957 年蘇聯的 Sputnik 與 1961 年的 Vostok 讓美國顏面無光。
工程上的核心難題:怎麼去月球再回來?當時有三大方案: 1. 直接登月(Direct Ascent):造一枚巨型火箭直接往返,需要 Nova 級火箭,風險高。 2. 地球軌道交會(Earth Orbit Rendezvous, EOR):在地球軌道上組裝再出發。 3. 月球軌道交會(Lunar Orbit Rendezvous, LOR):一枚火箭把小型登月艙送到月球軌道,登月艙單獨降落,再升空與指令艙交會。
LOR 的推手是 NASA Langley 的 John Houbolt,他力排眾議(包括馮布朗本人的疑慮),於 1961–62 年間說服 NASA 採用。1962 年 7 月,NASA 正式拍板 LOR——月球軌道交會成為整個 Apollo 計畫的數學骨架。系統工程管理(system engineering management)同步到位:George Mueller 於 1963 年掌管載人太空飛行辦公室,推行「全升級測試」(all-up testing)——每一枚土星五號從第一次飛行就搭載全部級段與太空船,把測試次數砍半。
線索與推理 -- 數學式、程式、理論#
線索一:軌道交會動力學——霍曼轉移與速度增量#
月地往返的本質是速度增量(delta-v)預算問題。霍曼轉移軌道(Hohmann transfer)從低地球軌道(LEO, 200 km)到月球所需的變化:
其中 \(\mu\) 是地球重力參數( \(3.986 \times 10^5\) km³/s²), \(r_1\) 是 LEO 半徑, \(r_2\) 是月球軌道半徑(約 384,400 km)。全程 delta-v 預算(發射、制動、降落、返回)約 18 km/s,土星五號三級段的總 delta-v 必須覆蓋前段(發射到 LOR 約 13 km/s),登月艙與指令艙引擎負責後段。LOR 的天才之處:降落與上升用小登月艙完成,不必把沉重的指令艙與隔熱罩一起降到月面再拉起來,省下的質量呈指數級放大(因為火箭方程是對數關係)。
線索二:齊奧爾科夫斯基火箭方程——土星五號的質量帳#
土星五號:起飛質量約 2,970 噸,第一級(S-IC,五具 F-1 引擎,總推力約 3,400 萬牛頓)燒掉約 2,150 噸 RP-1/液氧推進劑。逐級計算:
import math
# 土星五號各級 delta-v 估算
ve_ic = 2600 # m/s S-IC 有效排氣速度 (海平面)
ve_ii = 4130 # m/s S-II (J-2 引擎, 真空)
ve_ivb = 4130 # m/s S-IVB
# 質量比 (近似): m0/mf 各級
dv1 = ve_ic * math.log(2970/820)
dv2 = ve_ii * math.log(700/230)
dv3 = ve_ivb * math.log(140/70) # 含 TLI 燃燒
print(f"S-IC: {dv1:,.0f} m/s")
print(f"S-II: {dv2:,.0f} m/s")
print(f"S-IVB: {dv3:,.0f} m/s")
print(f"總計: {dv1+dv2+dv3:,.0f} m/s (需約 13,000 m/s 至 LOR)")
三級相加約 13–14 km/s,足以把 Apollo 太空船送入月球軌道——這正是為什麼非「三級」不可:單級的 \(\ln(m_0/m_f)\) 上不去,結構重量把質量比鎖死。
線索三:AGC 與積體電路——4 KB 記憶體的奇蹟#
Apollo 導航電腦(AGC)由 MIT 儀器實驗室打造(首席設計師 Eldon Hall),Block II 版重約 32 kg,記憶體僅 4 KB 可抹除記憶體(erasable rope core memory)+ 72 KB 固定記憶體(core rope memory,程式由織工把電線「織」進磁環)。處理器為 16 位元、時脈約 2 MHz。
關鍵歷史細節:NASA 是 1960 年代積體電路(IC)的最大買主。MIT 在 1962 年為 AGC 選用了 Fairchild 的微邏輯晶片(micrologic, RTL 邏輯),AGC 每台使用約 5,000 顆 IC,Apollo 計畫總共下單逾百萬顆——這筆訂單把 IC 良率與價格曲線硬生生拉下來,是摩爾定律早期最重要的需求側推手。電腦的可靠性由三重模組冗餘(triplicated inertial measurement)與軟體的優先權調度(priority scheduling, 設計師 Hal Laning 與 J. Halcombe Laning 的執行程式)保障——1969 年登月過程中 AGC 兩度報出 1202 警報(執行溢位),優先權調度自動捨棄低優先任務,保住了降落程式,這正是即時系統設計的教科書案例。
線索四:登月降落的最優控制——燃料夠不夠?#
登月艙降落是燃料最優控制問題(fuel-optimal landing),近似解為重力轉彎(gravity turn)。降落所需速度增量:
登月艙下降級(Descent Stage)攜帶約 8,200 公斤推進劑,邊際餘裕極薄——Armstrong 在 1202 警報與亂石區之間手動接管,最後以約 25 秒的燃油餘裕落地。返回段:上升級(Ascent Stage)以約 1.8 km/s 升回月球軌道,與指令艙交會( rendezvous radar + 數位自適應濾波器,由 Allan Klumpp 等人設計的導航演算法)。整個「去而復返」閉環,全部收斂在 LOR 的數學框架內。
破案時刻#
1969 年 7 月 16 日,土星五號(AS-506)自甘迺迪太空中心 39A 發射台升空;7 月 20 日,老鷹號登月艙降落靜海;Armstrong 說出「這是我個人的一小步,卻是人類的一大步」;7 月 24 日,三名太空人安全濺落太平洋。甘迺迪的期限(1970 年前)達成,LOR 方案 + AGC 軟體 + 系統工程管理三證俱全。土星五號至今仍是史上成功飛行過的最大火箭(高 110.6 公尺、起飛推力 3,400 萬牛頓),13 次發射零失敗。
後果 -- 改變了什麼#
- 積體電路產業起飛:Apollo 導航電腦的百萬顆 IC 訂單是摩爾定律早期最關鍵的需求側引擎,直接催生了美國半導體產業的規模化與成本下降。
- 即時嵌入式系統典範:AGC 的優先權調度、容錯設計與軟體工程實踐( Margaret Hamilton 領導的軟體團隊,首創「軟體工程」一詞的普及)成為嵌入式系統的教科書。
- 系統工程管理:全升級測試、組態管理、風險管理成為大型工程計畫的標準方法論,影響太空梭、國際太空站乃至今日的商用航太。
- 冷戰與科學:月岩樣本(382 公斤)重塑了行星科學;太空競賽催生了 1972 年的阿波羅-聯盟測試計畫與後續國際合作。
- 工程管理遺產:Apollo 計畫巔峰時期動用約 40 萬人、2 萬家企業與大學,是史上最大的和平時期工程動員——「系統工程」從此成為一門顯學。