預測性維護(PdM)是一種在零件損壞之前準確更換零件的方法。其目標是根據引擎計算剩餘使用壽命(RUL)預測性維護(PdM)是一種在零件損壞之前準確更換零件的方法。其目標是根據引擎計算剩餘使用壽命(RUL)

使用 Python 和 AutoML 預測噴射引擎故障

在航空領域,「故障」並非選項。

如果伺服器當機,你可以重新啟動。但如果噴射引擎在飛行途中故障,後果將是災難性的。這就是為什麼航空業正從 預防性維護 (無論零件是否需要更換都按時程表更換)轉向 預測性維護(PdM) (在零件故障前精確更換)。

對資料科學家而言,這是終極的時間序列回歸問題。目標是根據感測器資料(溫度、壓力、震動)來計算引擎的 剩餘使用壽命(RUL)

傳統上,這需要複雜的物理模型或手動調整的深度學習架構(LSTM)。但最近,自動化機器學習(AutoML) 已經成熟到可以超越手動調整的程度。

在本指南中,基於使用 NASA C-MAPSS 資料集 的分析,我們將建構一個管道來預測引擎故障,使用兩個開源重量級工具: AWS AutoGluon 和 H2O.ai

PdM 管道

我們不僅僅是在分類圖像;我們處理的是多變量時間序列資料。管道需要將原始感測器日誌轉換為回歸目標(RUL)。

階段 1:資料(NASA C-MAPSS)

我們使用著名的 NASA 商用模組化航空推進系統模擬(C-MAPSS) 資料集。它包含運行至故障的模擬資料。

  • 輸入: 21 個感測器(總溫度、風扇入口壓力、核心轉速等)。
  • 目標: 剩餘使用壽命(RUL)。

計算 RUL

資料集並未明確給出 RUL;它給出的是 當前 循環週期。我們必須計算目標。

邏輯: RUL = 引擎最大循環週期 - 當前循環週期

import pandas as pd # Load dataset (Simulated example structure) # Columns: ['unit_number', 'time_in_cycles', 'sensor_1', ... 'sensor_21'] df = pd.read_csv('train_FD001.txt', sep=" ", header=None) # 1. Calculate the maximum life of each engine unit max_life = df.groupby('unit_number')['time_in_cycles'].max().reset_index() max_life.columns = ['unit_number', 'max_life'] # 2. Merge back to original dataframe df = df.merge(max_life, on='unit_number', how='left') # 3. Calculate RUL (The Target Variable) df['RUL'] = df['max_life'] - df['time_in_cycles'] # Drop columns we don't need for training (like max_life) df = df.drop(columns=['max_life']) print(df[['unit_number', 'time_in_cycles', 'RUL']].head())

階段 2:指標(為何準確率是錯誤的)

在預測性維護中,簡單的「準確率」無法奏效。我們需要衡量預測 偏差多少

我們依賴 RMSE(均方根誤差)

  • 如果引擎還剩 50 天,而我們預測 45,誤差為 5。
  • 如果我們預測 100,誤差為 50(巨大懲罰)。

import numpy as np def calculate_rmse(y_true, y_pred): """ y_true: The actual Remaining Useful Life y_pred: The model's prediction """ mse = np.mean((y_true - y_pred)**2) return np.sqrt(mse)

注意: 分析還強調了 RMSLE(對數誤差)。這很關鍵,因為低估壽命(預測較早故障)是安全的,但高估(預測比實際更晚故障)是危險的。RMSLE 在不同尺度上更好地處理相對誤差。

階段 3:AutoML 對決

我們測試了兩個框架,看哪個能在不需大量手動調整的情況下更好地處理複雜、有雜訊的感測器資料。

競爭者 1:AutoGluon(獲勝者)

AutoGluon(由 AWS 開發)使用自動堆疊和集成多個模型(神經網路、LightGBM、CatBoost)的策略。

程式碼:

from autogluon.tabular import TabularPredictor # AutoGluon handles feature engineering automatically # 'RUL' is our target label calculated in Phase 1 predictor = TabularPredictor(label='RUL', eval_metric='root_mean_squared_error').fit( train_data=df_train, time_limit=600, # Train for 10 minutes presets='best_quality' ) # Inference y_pred = predictor.predict(df_test) results = predictor.evaluate(df_test) print(f"AutoGluon RMSE: {results['root_mean_squared_error']}")

競爭者 2:H2O AutoML

H2O 是該領域的老手,以其可擴展的分散式運算能力聞名。

程式碼:

import h2o from h2o.automl import H2OAutoML h2o.init() # Convert pandas df to H2O Frame hf_train = h2o.H2OFrame(df_train) hf_test = h2o.H2OFrame(df_test) # Train aml = H2OAutoML(max_models=20, seed=1) aml.train(y='RUL', training_frame=hf_train) # Inference preds = aml.predict(hf_test) perf = aml.leader.model_performance(hf_test) print(f"H2O RMSE: {perf.rmse()}")

階段 4:結果

分析揭示了應用於此特定感測器資料集時效能的巨大差異。

| 函式庫 | 指標 | 目標: RUL | 結果(越低越好) | |----|----|----|----| | AutoGluon | RMSE | RUL | 14.07 | | H2O | RMSE | RUL | 44.85 |

**分析: \ AutoGluon 顯著超越了 H2O(14.07 vs 44.85)。在噴射引擎的背景下,14 個循環週期 的誤差範圍對於安排維護是可接受的。44 個循環週期 的誤差範圍使模型變得無用。

為什麼 AutoGluon 獲勝?

  1. 堆疊: AutoGluon 擅長多層堆疊,結合基於樹的模型和神經網路的優勢。
  2. 特徵處理: 它更好地處理了原始感測器雜訊,無需手動去噪步驟。

結論:停止調整,開始堆疊

對於涉及複雜多變量資料的工業應用,AutoML 不再只是原型工具——它是生產能力。

透過從手動模型選擇切換到像 AutoGluon 這樣的自動化集成方法,開發者可以將工程時間從數週減少到數小時,同時實現更優越的準確性。

給開發者的關鍵要點:在建構工業物聯網應用時,將精力集中在 階段 1(資料工程) 清理感測器日誌並計算正確的 RUL。讓 AutoML 處理模型選擇。

\

市場機遇
Cyberlife 圖標
Cyberlife實時價格 (LIFE)
$0.0363
$0.0363$0.0363
+0.83%
USD
Cyberlife (LIFE) 實時價格圖表
免責聲明: 本網站轉載的文章均來源於公開平台,僅供參考。這些文章不代表 MEXC 的觀點或意見。所有版權歸原作者所有。如果您認為任何轉載文章侵犯了第三方權利,請聯絡 service@support.mexc.com 以便將其刪除。MEXC 不對轉載文章的及時性、準確性或完整性作出任何陳述或保證,並且不對基於此類內容所採取的任何行動或決定承擔責任。轉載材料僅供參考,不構成任何商業、金融、法律和/或稅務決策的建議、認可或依據。