Прогнозоване обслуговування (PdM) — це спосіб заміни деталей безпосередньо перед їх виходом з ладу. Мета полягає в розрахунку залишкового корисного строку служби (RUL) двигуна на основіПрогнозоване обслуговування (PdM) — це спосіб заміни деталей безпосередньо перед їх виходом з ладу. Мета полягає в розрахунку залишкового корисного строку служби (RUL) двигуна на основі

Прогнозування відмови реактивного двигуна за допомогою Python та AutoML

2025/12/22 16:43

У авіації «ламати речі» — не варіант.

Якщо сервер зависає, ви його перезавантажуєте. Якщо реактивний двигун виходить з ладу в польоті, наслідки катастрофічні. Ось чому авіаційна промисловість переходить від профілактичного обслуговування (заміна деталей за графіком, незалежно від того, потрібно це чи ні) до прогнозованого обслуговування (PdM) (заміна деталей точно перед їх виходом з ладу).

Для дата-сайєнтистів це найскладніша задача регресії часових рядів. Мета — розрахувати залишковий термін експлуатації (RUL) двигуна на основі даних датчиків (температура, тиск, вібрація).

Традиційно це вимагало складних фізичних моделей або архітектур глибинного навчання з ручним налаштуванням (LSTM). Але нещодавно автоматизоване машинне навчання (AutoML) досягло рівня, коли воно може перевершити ручне налаштування.

У цьому посібнику, заснованому на аналізі з використанням набору даних NASA C-MAPSS, ми побудуємо конвеєр для прогнозування відмов двигуна за допомогою двох важливих інструментів з відкритим кодом: AWS AutoGluon та H2O.ai.

Конвеєр PdM

Ми не просто класифікуємо зображення; ми працюємо з багатовимірними даними часових рядів. Конвеєр вимагає перетворення необроблених журналів датчиків у цільову регресію (RUL).

Фаза 1: дані (NASA C-MAPSS)

Ми використовуємо відомий набір даних NASA Commercial Modular Aero-Propulsion System Simulation (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 проти 44.85). У контексті реактивних двигунів похибка в 14 циклів прийнятна для планування технічного обслуговування. Похибка в 44 цикли робить модель непридатною.

Чому переміг AutoGluon?

  1. Стекінг: AutoGluon відмінно справляється з багаторівневим стекінгом, поєднуючи переваги деревоподібних моделей і нейронних мереж.
  2. Обробка ознак: він краще обробляв необроблений шум датчиків без необхідності ручного шумозаглушення.

Висновок: припиніть налаштовувати, починайте стекувати

Для промислових додатків, що включають складні багатовимірні дані, AutoML більше не просто інструмент прототипування — це виробнича можливість.

Перейшовши від ручного вибору моделі до автоматизованого ансамблевого підходу, як-от AutoGluon, розробники можуть скоротити час розробки з тижнів до годин, досягаючи кращої точності.

Ключовий висновок для розробників: при створенні промислових IoT-додатків зосередьте свої зусилля на фазі 1 (інженерія даних) — очищенні журналів датчиків і розрахунку правильного RUL. Дозвольте AutoML впоратися з вибором моделі.

\

Ринкові можливості
Логотип Cyberlife
Курс Cyberlife (LIFE)
$0.0367
$0.0367$0.0367
-3.42%
USD
Графік ціни Cyberlife (LIFE) в реальному часі
Відмова від відповідальності: статті, опубліковані на цьому сайті, взяті з відкритих джерел і надаються виключно для інформаційних цілей. Вони не обов'язково відображають погляди MEXC. Всі права залишаються за авторами оригінальних статей. Якщо ви вважаєте, що будь-який контент порушує права третіх осіб, будь ласка, зверніться за адресою service@support.mexc.com для його видалення. MEXC не дає жодних гарантій щодо точності, повноти або своєчасності вмісту і не несе відповідальності за будь-які дії, вчинені на основі наданої інформації. Вміст не є фінансовою, юридичною або іншою професійною порадою і не повинен розглядатися як рекомендація або схвалення з боку MEXC.