本篇信息密度較高。建議在安靜的環境下,用十分鐘時間,跟著邏輯走一遍。
剎車片完好。液壓管路完好。輪胎完好。跑道干燥。
一切硬件都處于正常工作范圍之內。但飛機就是停不下來。
在我們的傳統認知里, " 剎不住 " 這三個字通常意味著某個零件壞了 ——
剎車片磨穿了,液壓漏了,輪胎爆了。這是人對 " 制動失效 " 最本能的理解
一定是什么東西壞了。
但是在空客 A350 上,讓我們停不下來的,不是任何一個 " 壞了 " 的零件。是兩組數據對不上。
來類比一下,你的 iPhone 里有一個微型慣性測量單元,行業術語叫 IMU 。它負責告訴手機 "你現在是橫著還是豎著 " 。
屏幕旋轉、地圖導航、步數記錄,全部依賴這顆芯片提供的姿態數據。假如這顆芯片精神錯亂了,給屏幕旋轉模塊傳了一個自相矛盾的信號, 比如同時說你在橫屏和豎屏, iOS系統 會怎么處理?
它會直接鎖死屏幕旋轉。寧可不轉,也不亂轉。
![]()
手機里的IMU:當數據互相矛盾時,系統會選擇“什么都不做”。
現在,把這個邏輯放大一萬倍。把手機換成一架最大起飛重量 280 噸的寬體客機。把 "屏幕旋 轉 " 換成 " 剎車 " 。
歡迎來到空客電傳飛控最深處的邏輯陷阱。
一、飛機的"小腦"
A350 的駕駛艙里沒有一根連接到剎車片的鋼纜。飛行員踩下腳蹬時,腳底接觸的是一塊傳感器薄片。它把你的踩踏力度轉化為一個電信號,發送給剎車控制系統。系統收到信號后,自行計算應該施加多大的液壓壓力、分配到哪幾個輪子、保留多少防滑裕度,然后才指揮液壓作動器去夾緊碳剎車盤。
從你的腳到實際制動力之間,隔著一整套計算機。
這套計算機要正常工作,前提是它知道飛機現在的速度、姿態、加速度。這些最基礎的物理參數,由一個叫 ADIRU 的東西提供 —— 全稱" 大氣數據與慣性參考系統 " ( Air Data Inertial Reference Unit )。
![]()
![]()
![]()
ADIRU:飛機的“小腦”,負責提供姿態、速度、加速度等基礎數據。
ADIRU 不是 GPS 。 GPS 依賴衛星信號,信號丟了就等于被蒙上了眼。 ADIRU 靠的是內部的激光陀螺儀和加速度計,自主計算飛機在三維空間中的一切,像 俯仰角、滾轉角、航向、垂直速度、水平加速度。它相當于人的小腦。
A350 裝了三套,完全獨立。編號 IR1 、 IR2 、 IR3 。
裝三套不只是為了備份,更重要的目的是為了投票, 少數服從多數。
![]()
![]()
三個獨立的傳感器組,各自計算,各自進行輸出。
飛控計算機拿到三組數據后進行交叉比對:
如果兩組說飛機在平飛,第三組如果說飛機在倒飛,那第三組會被判定為故障并隔離。這叫"三余度表決",航空電子學里最經典的容錯架構。
ADIRU 的數據不僅同時喂給飛控和導航。它還沿著數據總線向下灌入一個我們可能想不到的子系統—— 剎車。
A350 的剎車控制單元需要知道飛機的地速和加速度,才能判斷輪子有沒有打滑、要不要松開剎車。
剎車踩下去之后,輪子的轉速和飛機的實際地速之間如果出現偏差,說明輪子在打滑,系統必須瞬間釋放那個輪子的制動壓力,等它恢復抓地力再重新進行施壓。整個過程在毫秒級別完成。
而 " 飛機的實際地速 " 這個關鍵參數,來自 ADIRU 。
一個姿態傳感器的數據質量,直接決定了這 200 多噸的飛機能不能停下來。
![]()
三余度表決:三套系統互相“投票”,多數決定真相。
二、偏執的校驗
空客的工程師對數據質量有一種近乎病態的潔癖。
在 A350 的剎車控制單元內部,所有的計算都被分成兩條獨立的通道。一條叫 COM——Command ,指令通道,負責計算和下達制動指令。
另一條叫 MON——Monitor ,監控通道,用完全不同的代碼、獨立重新計算一遍同樣的結果。
![]()
![]()
COM / MON 雙通道:同一結果,兩套系統分別計算,再互相校驗。
兩條通道持續交叉比對。每一個計算周期, COM 說 " 我算出來應該施加 1000 PSI" , MON 說 " 我獨立驗算的結果也是 1000 PSI" ,數據一致,指令放行。如果 COM 說 1200 , MON 說 800,這樣的情況 超過了預設的安全閾值, 系統就會立刻亮紅燈。
這個紅燈的后果不是 " 降級運行 " ,不是 " 給飛行員彈個警告讓他們自己看著辦 " 。
是直接切斷( cut off )。
系統宣布這條通道 " 失效 " ,將控制權切換到冗余通道。如果冗余通道也出了同樣的問題,那就繼續cut off,直到切到沒有可用的通道為止。
搞分布式系統的工程師看到這里應該會覺得眼熟。這就是拜占庭容錯的工業級實現 —— 當系統無法確定哪個節點在說真話時,寧可停止服務,也不執行一個可能是錯的指令。
區別在于:你的微服務集群停服,用戶刷不出外賣頁面,罵兩句也就過去了。飛機的剎車停服, 200 多噸的飛機會用事實教你什么叫牛頓第一定律。
ADIRU 的內部也有同樣的 COM/MON 校驗。剎車控制單元接收 ADIRU 數據時,會同時檢查 ADIRU 自己的 COM 和 MON 是否一致。
這意味著一件事,如果 ADIRU 在某個特定時刻的數據重構過程中, COM 和 MON 之間出現了哪怕非常短暫的不一致,這個 " 不一致 " 會沿著數據總線像病毒一樣傳播 —— 從 ADIRU 擴散到剎車控制單元,觸發 BCU 的保護性切斷。
三、減重的代價
看到這,如果你理解了 COM/MON 的偏執邏輯之后,還需要理解 A350 在硬件層面做的一個重大取舍。
A320 和 A330 裝了三套液壓系統,分別是 Green 、 Blue 、 Yellow 。
剎車用 Green 驅動正常制動, Yellow 驅動備用制動。即使 Green 完全掛了, Yellow 還在; Yellow 也掛了, Blue 還能給飛控面提供最低限度的操縱力。三層,層層兜底。
![]()
![]()
![]()
A350:從傳統集中液壓,逐漸轉向更分散的電液驅動邏輯。
到A350這 砍掉了一套。
只剩 Green 和 Yellow 。第三套液壓的功能交給了分散部署的局部液壓驅動裝置( EHA ) —— 小型化的、裝在各個舵面旁邊的獨立液壓泵,哪個舵面需要就給哪個舵面供壓,不再鋪設貫穿全機的第三條液壓管路。
為什么砍?當然是為了夢想——減重。
一條貫穿 A350 那 65 米長機身的液壓管路,加上液壓油、泵站、閥門、管路支架,重量以噸計。砍掉它,換成幾十個小型局部液壓驅動裝置分散布置,總重量能省下幾百公斤。
省出來的重量變成了航程,變成了載客量,變成了運營經濟性。每公斤省下來的都是money。
空客還把液壓工作壓力從傳統的 3000 PSI 拉到了 5000 PSI—— 壓力更高,管路就可以做到更細更輕,作動器也更緊湊。
A380也是 用的同一套思路。兩套液壓, 5000 PSI 。
代價是冗余裕度天生比三套液壓少一層。三套的飛機壞一套還剩兩套交叉覆蓋,兩套的飛機壞了一套就只剩最后的底牌。
而 5000 PSI 的細管路一旦發生泄漏,液壓油的流失速度比 3000 PSI 的粗管路要快得多。
這是航空工程里永恒的交易:在安全裕度和商業競爭力之間走鋼絲。
A350 不是簡單地 " 少了一套液壓 ", 它是把一部分風險從油管里挪進了數據鏈。管路輕了,系統聰明了,但故障的傳導路徑也從物理世界蔓延到了代碼世界。以前你怕的是一根管子漏油,現在你還得怕一組數據讓整套邏輯自我懷疑。
四、物理死局
把前面三塊拼圖拼在一起,基于公開的系統架構和已知的空客設計哲學,我們來推演一個純理論的場景, 不是復述某一起事故,而是拆解這套邏輯走到盡頭時的樣子。
一架 A350 在正常飛行中, 3 號慣性參考單元 IR3 出現了數據異常。駕駛艙彈出 NAV IR 3 FAULT 。機組按標準程序關閉 IR3 。操作本身沒有任何爭議, QRH (快速檢查單)上白紙黑字寫著的處置步驟。
三余度變成雙余度。 IR1 和 IR2 繼續工作。飛機正常降落。到目前為止,一切都在 SOP 的范圍內。
問題出在落地之后。
![]()
![]()
![]()
現代客機的剎車,不只是“踩下去”這么簡單。
IR3 被關閉后,系統需要在只剩兩套 ADIRU 的條件下進行數據重構。重構過程中,剎車控制單元發現剩余 ADIRU 發送的 COM 數據與 MON 數據出現了不一致。
可能只是微秒級的時序偏差。可能是兩套 ADIRU 在重構瞬間輸出了輕微不同步的加速度值。但對于那段偏執到骨子里的 COM/MON 校驗代碼來說,不一致就是不一致。沒有 " 差不多行了 " 這個選項。
BCU 觸發 Fail-Safe 。 BRAKES CTL 1+2 FAULT—— 兩套剎車控制單元同時告警。正常制動,沒了。
如果故事到這里就結束,飛機還有一條退路:蓄壓器。
Green 和 Yellow 液壓系統各有一個高壓蓄壓器,預充了液壓能量,專門在液壓泵失效時提供備用制動力。理論上,蓄壓器里的存量足夠飛機在地面剎停幾次。
但 COM/MON 校驗的崩潰不是發生在液壓層面,而是發生在數據層面。底層的 ADIRU 數據鏈出了系統性問題。蓄壓器的再充氣邏輯同樣依賴這條數據鏈是否正常。
BRAKES G/Y ACCU REINFLATE FAULT—— 綠 / 黃蓄壓器再充氣故障。
正常剎車沒了。備用剎車的壓力也上不來。自動剎車早就在第一輪告警中宣布失效。
碳剎車盤完好無損。 Safran 提供的碳纖維盤片沒有任何磨損。液壓管路里的油壓充沛。 5000 PSI 的 Green 和 Yellow 系統本身運轉正常。但介于你的腳和那些完好剎車盤之間的計算機,因為兩組數據對不上,攤手不干了。
一個純粹的 " 軟件潔癖 " 導致的物理癱瘓。
五、前世:印度洋上空的50.625度
ADIRU 數據污染引發的系統級災難,空客家族已經經歷過一次。
2008 年 10 月 7 日。澳洲航空 QF72 ,空客 A330-303 ,新加坡飛珀斯。巡航高度約 11300 米。機長 Kevin Sullivan ,前美國海軍戰斗機飛行員。
12 時 40 分 26 秒, 1 號 ADIRU 開始發瘋。
這臺由諾斯羅普 · 格魯曼制造的 LTN-101 慣性參考單元,其 CPU 發生了一種非常罕見的硬件級錯誤:它把一個代表 " 當前高度 11280 米( 37012 英尺) " 的二進制數據,重新標記成了 " 當前迎角 " 字段。
11280 米對應的二進制值,被飛控計算機解讀為:迎角 50.625 度。
![]()
![]()
QF72事件:錯誤數據觸發保護邏輯,飛機主動俯沖。
50.625 度意味著什么?正常巡航的迎角大約 2 到 3 度。超過 15 度就進入失速警戒區。
50 度 在飛控的代碼世界里,這意味著飛機已經完全失速,正在以一種不可能的姿態失速。
飛控計算機沒有理由懷疑這個數據。 ADIRU 是小腦,是一切物理感知的源頭。小腦說你在失速,飛控計算機就認為你在失速。
高迎角保護程序啟動。飛控向升降舵發出指令:推低機頭,改出失速。
12 時 42 分 27 秒。第一次俯沖。
飛機機頭下俯 8.4 度。機艙經歷了 -0.8g 的負過載 —— 接近零重力。沒系安全帶的乘客被甩向了天花板,餐車騰空,行李艙蓋彈開。兩秒內掉了接近 200 米。
Sullivan 抓住側桿試圖拉起機頭。但飛控電腦認為自己正在執行一個正確的保護動作, 你在失速,我正在救你,你為什么要拉桿?系統短暫地把 Sullivan 鎖在了控制回路之外。
12 時 45 分 08 秒。第二次俯沖。機頭下俯 3.5 度,掉落約 120 米。
兩次俯沖, 119 人受傷,其中 14 人重傷。
澳大利亞運輸安全局 ATSB 事后花了三年調查。最終報告里有一行讓所有航電工程師脊背發涼的結論:
飛控計算機的軟件,沒有被設計來處理"以精確1.2秒間隔反復出現"的異常數據脈沖。
1.2 秒是飛控計算機在檢測到一次異常 AOA 數據后的記憶緩沖期。
正常情況下,一次孤立的異常值會被緩沖期覆蓋,系統用上一次的有效數據頂過去。但 LTN-101 的故障模式太會找自己的位置了, 它剛好以 1.2 秒的間隔連續輸出錯誤數據。每一次偽造的 50.625 度迎角,精準踩在緩沖期刷新的邊界上。系統來不及用舊數據覆蓋,新一波錯誤數據就已經涌進來了。
這個時序上的巧合,在工程師編寫代碼的那一天,試問有誰能想到呢。
空客在事后給 A330 和 A340 機隊發布了軟件更新,增強了異常 AOA 數據的過濾能力。 LTN-101 硬件層面的根本原因,至今沒有被完全復現。 ATSB 在報告中給了它一個定性:黑天鵝。
六、同一個恐懼的兩張面孔
A330 和 A350 不是同一款飛機,出的也不是同一種毛病。但是它們的底層邏輯一模一樣:
當飛機越來越依賴數據,而數據本身也會撒謊時,系統會怎么辦?
空客的電傳飛控哲學從 1984 年 A320 首飛起就定了調:系統比人聰明,系統替人兜底。
這套哲學經過 A330 、 A340 、 A380 ,一路傳到 A350 ,底層架構從未重寫。 COM/MON 雙通道校驗、 ADIRU 三余度表決、 Fail-Safe 保護性關閉 —— 這些基因在空客的每一款電傳飛機里都能找到。
QF72 的飛控電腦做了一件事:基于被污染的數據,執行了正確的保護程序。數據說你在失速,保護程序就替你改出失速。保護本身沒錯,錯的只是前提。
A350 的剎車 BCU 走向了同一類結局,只是方向相反:基于 " 不可信 " 的數據判定,執行了正確的保護性關閉。
COM 和 MON 對不上, BCU 就切斷制動。切斷其實本身沒錯,錯的同樣是前提 ——ADIRU 在數據重構過程中出現了短暫的不同步,而這個短暫的不同步被 COM/MON 邏輯當成了不可容忍的系統性故障。
只不過 QF72 的系統選擇了 " 主動出手 ", 基于假數據猛推機頭;而 A350 的剎車選擇了 " 撒手不管 ", 既然數據不可信,那我就什么都不做。
一個是誤殺,一個是見死不救。底層邏輯是同一個:
當保護機制建立在一個會撒謊的數據源之上時,保護本身就變成了武器。
七、踏板之下
在空客的駕駛艙里踩剎車,腳底的觸感是均勻的、恒定的、人工模擬出來的輕微阻力感。
我們踩下去,傳感器薄片把信號發出去,然后等系統回應。你不知道液壓在不在工作,不知道蓄壓器還剩多少壓力,不知道防滑系統有沒有介入。
踏板給你的反饋和系統的真實狀態之間,隔著一個中間傳話人。
你說 " 我要減速 " ,中間傳話人把你的意思轉譯成 " 在當前速度、載荷、跑道摩擦系數下,施加多大的制動壓力,同時保持多少防滑裕度 " 。
這層轉譯通常情況下還是精確的。但當中間傳話人本身陷入了 COM/MON 數據矛盾的邏輯死循環,它就會沉默。
你的腳還在踩,踏板的阻力感還在(因為那是人工模擬的,和真實液壓狀態無關),但剎車盤那頭,什么都沒有發生。
![]()
![]()
波音 737 的駕駛艙又是另一個世界。
腳蹬的動作通過機械傳動和剎車計量機構,直接傳進液壓制動系統。中間當然也有防滑、自動剎車和液壓控制邏輯,但飛行員腳底得到的反饋,不是純粹模擬出來的 "腳 感 " 。
踏板的阻力是真實的液壓反推力,踩到底的時候,你的小腿肌肉能感知到系統正在以多大的力度夾緊剎車盤。
波音甚至在低制動力區間加了一個 " 剎車閥力感增強器 "—— 在你剛開始輕踩的時候主動增加踏板阻力,提前告訴你 " 剎車已經在工作了 " 。
這是為了彌補人類在低壓區間感知遲鈍的生理缺陷,用一個純機械的小伎倆給飛行員喂了一顆定心丸。
787 走了另一條路:全電剎車。
電動馬達驅動滾珠絲杠,直接夾緊碳剎車盤,連液壓管路都不往輪艙里鋪。但波音在踏板上依然保留了偏重的人工力感反饋,讓從 737 和 777 轉機型過來的飛行員不至于踩得太輕, 波音的飛行員被訓練成 " 緊急時踩到底 " ,這種肌肉記憶不能因為換了一款電傳飛機就丟掉。
反看A350 和 A380 的電傳踏板,輕觸即可。空客飛行員被訓練成 " 精確施壓 " ,讓系統去計算最優的制動分配。
兩種設計哲學沒有對錯, 空客的精確消除了人的粗暴操作的風險,波音的力感保留了人類對系統狀態最原始的感知通道。
但是當系統悄無聲息地 " 罷工 " 時,空客飛行員的腳底感覺不到任何變化。踏板的阻力還是那個阻力,因為那個阻力從來就和真實的制動力無關。
波音飛行員踩到底如果沒反應,腳底傳回來的那股不對勁,至少會多給他一個原始的判斷反饋,這是出大事了。
![]()
![]()
機械反饋 vs 電傳模擬:兩種完全不同的飛行哲學。
八、結尾
COM/MON 校驗在飛行員毫不知情的情況下,悄悄過濾掉了成千上萬次微小的數據偏差。 Fail-Safe 在故障發生的瞬間切斷了可能導致災難的錯誤指令。
這套體系在 99.9999% 的時間里,是一座精密到讓人窒息的安全堡壘。
但它有一個寫在基因里的盲區:
它假設自己接收到的數據,經過足夠層數的校驗之后,就是真的。它相信只要COM和MON一致,指令就可以執行。它相信只要COM和MON不一致,切斷就是正確的。
這個信仰在 QF72 的 11300 米高空被撕開了一道口子, COM 和 MON 都一致地選擇相信了一個偽造的 50.625 度迎角,然后保持一致地命令飛機俯沖。
而在地面上,同一套 COM/MON 邏輯可能因為 ADIRU 數據重構過程中的短暫失步,一致地判定 " 數據不可信 " ,然后一致地切斷所有制動。
一個在天上,讓飛機俯沖。一個在地上,讓飛機不肯剎車。看起來八竿子打不著,但都指向同一件事,這套系統不是突然變笨了,是它太相信自己那套判斷流程了。
空客四十年來一直在給電傳系統做加法。更多的傳感器、更復雜的表決、更嚴格的 Fail-Safe 閾值、更多層的 COM/MON 交叉校驗。每加一層都讓系統在面對已知故障時更加堅不可摧。
但是所有這些冗余,都建立在同一種架構哲學之上。同樣的 COM/MON 邏輯、同樣的 Fail-Safe 切斷策略、同樣的 ADIRU 數據依賴鏈路。
當一個足夠刁鉆的故障模式 ——
一個工程師在寫代碼那天沒有想到過的1.2秒間隔,一次數據重構期間的微秒級失步,穿透了這套設計哲學本身,所有的冗余會在同一個瞬間、以同一種方式、集體失效。
行業術語管這個叫共模故障。
![]()
![]()
共模故障:當所有冗余建立在同一邏輯之上。
通常它指的是同一個批次的硬件、同一份代碼里的同一個 bug 。
但空客面對的這種共模故障更高維一些,不是某一行代碼的錯,是整套安全哲學在特定邊界條件下的邏輯自洽性崩塌。
我們沒法用 " 再加一層冗余 " 來修復它。因為我們加的那層冗余,用的還是同一套東西。
就像一個偏執固執的審計員雇了一個助手來監督自己, 助手和他用的是同一本教材當標準。
關于「飛機的賬本」:拆飛機、拆系統、偶爾說說人。
往期系列:
麥道三部曲 ——
空客 A380 四部曲 ——
下一篇大概率聊點輕松一些的。最近航空圈還有通航圈有些有意思的事。
這類文章寫起來費時間,讀起來也比較費腦子。如果你身邊有搞系統工程或者飛行的朋友,丟給他看看, 要么他會覺得你很專業,要么他會來找你吵架。不管哪種,都挺有意思。
點贊、推薦、轉發,就是對這類內容最好的支持。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.