Konserwacja predykcyjna (PdM) to sposób wymiany części dokładnie przed ich uszkodzeniem. Celem jest obliczenie pozostałego okresu użytkowania (RUL) silnika na podstawieKonserwacja predykcyjna (PdM) to sposób wymiany części dokładnie przed ich uszkodzeniem. Celem jest obliczenie pozostałego okresu użytkowania (RUL) silnika na podstawie

Przewidywanie awarii silnika odrzutowego za pomocą Pythona i AutoML

2025/12/22 16:43

W lotnictwie „psucie rzeczy" nie wchodzi w grę.

Jeśli serwer się zawiesza, restartujemy go. Jeśli silnik odrzutowy odmówi posłuszeństwa w trakcie lotu, konsekwencje są katastrofalne. Dlatego przemysł lotniczy przechodzi od Konserwacji Prewencyjnej (wymiany części zgodnie z harmonogramem, niezależnie od tego, czy jest to potrzebne) do Konserwacji Predykcyjnej (PdM) (wymiany części dokładnie zanim ulegną awarii).

Dla Data Scientists jest to ultimatywny problem regresji szeregów czasowych. Celem jest obliczenie Pozostałego Okresu Użytkowania (RUL) silnika na podstawie danych z czujników (temperatura, ciśnienie, wibracje).

Tradycyjnie wymagało to złożonych modeli fizycznych lub ręcznie dostrajanych architektur Deep Learning (LSTM). Jednak ostatnio Zautomatyzowane Uczenie Maszynowe (AutoML) dojrzało do punktu, w którym może przewyższać ręczne dostrajanie.

W tym przewodniku, opartym na analizie z wykorzystaniem zbioru danych NASA C-MAPSS, zbudujemy potok do przewidywania awarii silnika za pomocą dwóch gigantów open-source: AWS AutoGluon i H2O.ai.

Potok PdM

Nie klasyfikujemy tu tylko obrazów; mamy do czynienia z wielowymiarowymi danymi szeregów czasowych. Potok wymaga przekształcenia surowych logów z czujników w cel regresji (RUL).

Faza 1: Dane (NASA C-MAPSS)

Używamy słynnego zbioru danych NASA Commercial Modular Aero-Propulsion System Simulation (C-MAPSS). Zawiera on symulowane dane działania do awarii.

  • Dane wejściowe: 21 Czujników (Temperatura całkowita, Ciśnienie na wlocie wentylatora, Prędkość rdzenia, itp.).
  • Cel: Pozostały Okres Użytkowania (RUL).

Obliczanie RUL

Zbiór danych nie podaje nam bezpośrednio RUL; podaje nam aktualny cykl. Musimy obliczyć cel.

Logika: RUL = MaksymalnyCyklSilnika - AktualnyCykl

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())

Faza 2: Metryka (Dlaczego Dokładność Jest Błędna)

W konserwacji predykcyjnej prosta „Dokładność" nie działa. Musimy zmierzyć, jak daleko jest nasza predykcja.

Polegamy na RMSE (Root Mean Square Error - Pierwiastek Błędu Średniokwadratowego).

  • Jeśli silnikowi zostało 50 dni, a przewidujemy 45, błąd wynosi 5.
  • Jeśli przewidujemy 100, błąd wynosi 50 (Ogromna kara).

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)

Uwaga: Analiza podkreśla również RMSLE (Błąd Logarytmiczny). Jest to kluczowe, ponieważ niedoszacowanie okresu użytkowania (przewidywanie wcześniejszej awarii) jest bezpieczne, ale przeszacowanie (przewidywanie późniejszej awarii niż w rzeczywistości) jest niebezpieczne. RMSLE lepiej radzi sobie z błędami względnymi w różnych skalach.

Faza 3: Pojedynek AutoML

Przetestowaliśmy dwa frameworki, aby sprawdzić, który lepiej poradzi sobie ze złożonymi, zaszumionymi danymi z czujników bez szerokiego ręcznego dostrajania.

Kandydat 1: AutoGluon (Zwycięzca)

AutoGluon (opracowany przez AWS) wykorzystuje strategię łączenia i zespołów wielu modeli (Sieci Neuronowe, LightGBM, CatBoost) automatycznie.

Kod:

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']}")

Kandydat 2: H2O AutoML

H2O to weteran w tej dziedzinie, znany ze swoich skalowalnych możliwości obliczeniowych rozproszonych.

Kod:

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()}")

Faza 4: Wyniki

Analiza ujawniła ogromną różnicę w wydajności zastosowanej do tego konkretnego zbioru danych z czujników.

| Biblioteka | Metryka | Cel: RUL | Wynik (Niższy jest lepszy) | |----|----|----|----| | AutoGluon | RMSE | RUL | 14.07 | | H2O | RMSE | RUL | 44.85 |

**Analiza: \ AutoGluon znacząco przewyższył H2O (14.07 vs 44.85). W kontekście silników odrzutowych margines błędu 14 cykli jest akceptowalny do planowania konserwacji. Margines błędu 44 cykli czyni model bezużytecznym.

Dlaczego wygrał AutoGluon?

  1. Stacking: AutoGluon wyróżnia się wielowarstwowym stackingiem, łącząc mocne strony modeli opartych na drzewach i sieci neuronowych.
  2. Obsługa Cech: Lepiej radził sobie z surowym szumem czujników bez konieczności ręcznego odszumiania.

Wniosek: Przestań Dostrajać, Zacznij Stackować

W przypadku zastosowań przemysłowych obejmujących złożone dane wielowymiarowe, AutoML nie jest już tylko narzędziem do prototypowania—to możliwość produkcyjna.

Przechodząc od ręcznego wyboru modeli do zautomatyzowanego podejścia zespołowego takiego jak AutoGluon, programiści mogą skrócić czas inżynieryjny z tygodni do godzin, osiągając jednocześnie lepszą dokładność.

Kluczowy Wniosek dla Programistów: Budując aplikacje Industrial IoT, skup swoje wysiłki na Fazie 1 (Inżynieria Danych) czyszczeniu logów z czujników i obliczaniu prawidłowego RUL. Pozwól AutoML zająć się wyborem modelu.

\

Okazja rynkowa
Logo Cyberlife
Cena Cyberlife(LIFE)
$0.0376
$0.0376$0.0376
-1.05%
USD
Cyberlife (LIFE) Wykres Ceny na Żywo
Zastrzeżenie: Artykuły udostępnione na tej stronie pochodzą z platform publicznych i służą wyłącznie celom informacyjnym. Niekoniecznie odzwierciedlają poglądy MEXC. Wszystkie prawa pozostają przy pierwotnych autorach. Jeśli uważasz, że jakakolwiek treść narusza prawa stron trzecich, skontaktuj się z service@support.mexc.com w celu jej usunięcia. MEXC nie gwarantuje dokładności, kompletności ani aktualności treści i nie ponosi odpowiedzialności za jakiekolwiek działania podjęte na podstawie dostarczonych informacji. Treść nie stanowi porady finansowej, prawnej ani innej profesjonalnej porady, ani nie powinna być traktowana jako rekomendacja lub poparcie ze strony MEXC.