Прогнозное обслуживание (PdM) — это способ замены деталей точно до того, как они выйдут из строя. Цель заключается в расчете остаточного срока службы (RUL) двигателя на основеПрогнозное обслуживание (PdM) — это способ замены деталей точно до того, как они выйдут из строя. Цель заключается в расчете остаточного срока службы (RUL) двигателя на основе

Прогнозирование отказа реактивного двигателя с помощью Python и AutoML

2025/12/22 16:43

В авиации «ломать вещи» — не вариант.

Если сервер зависает, вы его перезагружаете. Если реактивный двигатель выходит из строя в полёте, последствия катастрофичны. Именно поэтому авиационная промышленность переходит от Профилактического обслуживания (замена деталей по графику, независимо от необходимости) к Прогнозируемому обслуживанию (PdM) (замена деталей точно до их поломки).

Для специалистов по данным это идеальная задача регрессии временных рядов. Цель — рассчитать Остаточный срок службы (RUL) двигателя на основе данных датчиков (температура, давление, вибрация).

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

В этом руководстве, основанном на анализе с использованием набора данных NASA C-MAPSS, мы создадим конвейер для прогнозирования отказа двигателя с использованием двух мощных open-source инструментов: 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, разработчики могут сократить время разработки с недель до часов, достигая при этом превосходной точности.

Ключевой вывод для разработчиков: При создании приложений Industrial IoT сосредоточьте свои усилия на Фазе 1 (Инженерия данных) — очистке журналов датчиков и расчёте правильного RUL. Позвольте AutoML заняться выбором модели.

\

Возможности рынка
Логотип Cyberlife
Cyberlife Курс (LIFE)
$0.0354
$0.0354$0.0354
-1.66%
USD
График цены Cyberlife (LIFE) в реальном времени
Отказ от ответственности: Статьи, размещенные на этом веб-сайте, взяты из общедоступных источников и предоставляются исключительно в информационных целях. Они не обязательно отражают точку зрения MEXC. Все права принадлежат первоисточникам. Если вы считаете, что какой-либо контент нарушает права третьих лиц, пожалуйста, обратитесь по адресу service@support.mexc.com для его удаления. MEXC не дает никаких гарантий в отношении точности, полноты или своевременности контента и не несет ответственности за любые действия, предпринятые на основе предоставленной информации. Контент не является финансовой, юридической или иной профессиональной консультацией и не должен рассматриваться как рекомендация или одобрение со стороны MEXC.