Разработка AI-системы предиктивного обслуживания оборудования

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1Все 1564 услуг
Разработка AI-системы предиктивного обслуживания оборудования
Сложный
~2-4 недели
Часто задаваемые вопросы

Направления AI-разработки

Этапы разработки AI-решения

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1348
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1247
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    949
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1183
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    642
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    921

Представьте: завод с тысячами электродвигателей, насосов и компрессоров. Один внезапный отказ — и конвейер встает на 4 часа. Потери — до 2 млн рублей за каждую остановку. Большинство предприятий живут по регламенту замены «через 1000 часов работы», хотя реальное состояние агрегатов — загадка до последнего. Мы строим AI-систему предиктивного обслуживания (PdM), которая снимает неопределённость.

Используем данные с датчиков вибрации, тока, температуры. Обучаем модели распознавать зарождающиеся дефекты за 2-6 недель до отказа. Подключаем к CMMS, чтобы Work Order создавался автоматически. Заказчик получает Health Index для каждого актива, рекомендации по времени ТО и прозрачный ROI. Наш опыт — 5+ лет в промышленном AI, десятки внедрённых систем. PdM сокращает внеплановые простои в 3-5 раз по сравнению с плановым обслуживанием.

Какие проблемы решает AI-система предиктивного обслуживания?

  • Неожиданные простои: традиционное ТО — по регламенту или после отказа. Мы прогнозируем остаточный ресурс (RUL) и выставляем точную дату ТО.
  • Неоптимальная частота обслуживания: слишком часто — перерасход, слишком редко — риск. Оптимизируем на основе FMEA и экономической модели.
  • Ложные тревоги: стандартные пороговые методы дают 30-60% ложных срабатываний. Ансамбль ML-моделей снижает FP до 5%.

Как мы строим систему: платформенная архитектура

Система охватывает все уровни от датчиков до бизнес-KPI:

Уровень 0: Edge (на оборудовании)
    Модули: vibration sensor, temperature sensor, current meter
    Протокол: Modbus RTU / OPC-UA
    Edge gateway: Raspberry Pi / Industrial PC

Уровень 1: Fog (цеховой уровень)
    OPC-UA Server → MQTT broker → Edge computing node
    Локальное хранение и первичная обработка

Уровень 2: Cloud (корпоративный уровень)
    Kafka → TimescaleDB / InfluxDB
    ML Training Pipeline (Airflow + MLflow)
    Inference Service (FastAPI)

Уровень 3: Business
    CMMS / ERP интеграция
    KPI Dashboard (Grafana / Tableau)
    Mobile app для техников

Для каждого актива заводится запись в Asset Registry:

@dataclass
class Asset:
    asset_id: str
    name: str
    type: AssetType  # motor, pump, compressor, conveyor, gearbox
    manufacturer: str
    model: str
    install_date: datetime
    rated_power_kw: float
    location: dict  # plant, line, cell
    criticality: int  # 1-5 (5 = most critical)
    sensors: list[SensorConfig]
    maintenance_history: list[WorkOrder]
    failure_modes: list[FailureMode]  # из FMEA документа

FMEA-driven анализ отказов: основа прогноза — разработка ai системы

Вместо чёрного ящика мы используем FMEA — документируем каждый ожидаемый отказ, его признаки и типичное время развития. Пример для электродвигателя:

failure_modes_motor = [
    FailureMode(
        name='bearing_outer_race_defect',
        detection_method='vibration_envelope_bpfo',
        leading_indicators=['kurtosis > 3', 'bpfo_amplitude_rise'],
        typical_development_days=30,
        severity=4
    ),
    FailureMode(
        name='stator_winding_degradation',
        detection_method='motor_current_signature_mcsa',
        leading_indicators=['current_imbalance > 5%', 'sideband_frequencies'],
        typical_development_days=60,
        severity=5
    ),
    FailureMode(
        name='misalignment',
        detection_method='vibration_1x_2x',
        leading_indicators=['high_1x_radial', '2x_axial_component'],
        typical_development_days=14,
        severity=3
    )
]

Иерархический Health Index: от датчика до завода

Health Index — от 0 (отказ) до 1 (идеально). Считается на каждом уровне: датчик → актив → линия → цех. Для каждого failure mode своя ML-модель, результат агрегируется с весом по severity:

class AssetHealthEnsemble:
    def __init__(self, failure_modes, weights=None):
        self.failure_modes = failure_modes
        self.models = {fm.name: load_model(fm) for fm in failure_modes}
        self.weights = weights or {fm.name: fm.severity for fm in failure_modes}

    def compute_health(self, sensor_data):
        fm_scores = {}
        for fm_name, model in self.models.items():
            features = extract_features_for_fm(sensor_data, fm_name)
            failure_prob = model.predict_proba([features])[0][1]
            fm_scores[fm_name] = 1.0 - failure_prob
        weighted_health = sum(score * self.weights[name] for name, score in fm_scores.items()) / sum(self.weights.values())
        min_score = min(fm_scores.values())
        if min_score < 0.3:
            weighted_health = min(weighted_health, min_score * 1.5)
        return weighted_health, fm_scores

Здоровье всего завода — взвешенное среднее по критичности активов. Критичный дефект на одном агрегате снижает общий индекс.

Оптимизация времени ТО: баланс затрат и риска

Ищем баланс между стоимостью ТО и риском отказа. Модель использует распределение остаточного ресурса (RUL) и решает задачу минимизации ожидаемых затрат:

from scipy.optimize import minimize_scalar

def optimal_maintenance_time(rul_distribution, maintenance_cost, failure_cost, holding_cost_per_day):
    def expected_cost(t_maintenance):
        p_failure_before_maintenance = rul_distribution.cdf(t_maintenance)
        cost_if_maintain = maintenance_cost + t_maintenance * holding_cost_per_day
        cost_if_fail = failure_cost * p_failure_before_maintenance
        return cost_if_maintain * (1 - p_failure_before_maintenance) + cost_if_fail

    result = minimize_scalar(expected_cost, bounds=(1, 180), method='bounded')
    return result.x  # оптимальное количество дней до ТО

Результат — Work Order с конкретным сроком и приоритетом. На одном цементном заводе такой алгоритм предсказал отказ подшипника мельницы за 18 дней, что позволило провести замену в плановый простой и избежать аварийной остановки. ROI системы составил 400% за первый год.

Сравнение подходов к обслуживанию

Характеристика Реактивное Плановое Предиктивное (PdM)
Затраты на ТО Низкие до отказа, высокие после Средние, часто избыточные Оптимизированные
Простои Максимальные Запланированные, но могут быть излишними Минимальные, только по необходимости
Точность прогноза Нет Нет 85-95% за 2 недели
Интеграция с CMMS Нет Да Автоматическая генерация WO
ROI Отрицательный Нулевой или слабый 200-500% за год

Что даёт предиктивное обслуживание на практике?

Типичные результаты через 6 месяцев после внедрения: снижение внеплановых простоев на 70-80%, увеличение межремонтного интервала на 30%, сокращение затрат на ТО на 20%. Система автоматически генерирует Work Order в CMMS (SAP, 1С) на основе прогноза, без участия человека.

Что входит в работу

  • Аудит оборудования и сбор данных (архив SCADA, логи, схема)
  • Проектирование архитектуры IoT-сети и edge-устройств
  • Создание Asset Registry и FMEA-модели
  • Разработка ML-моделей (вибрация, ток, температура) и ансамбля
  • Деплой модели на edge/cloud с inference сервисом
  • Интеграция с CMMS (SAP, 1С, собственные системы)
  • Dashboard Health Index и KPIs (Grafana / Tableau)
  • Обучение техников работе с системой
  • Поддержка в течение 6 месяцев после запуска

Какие гарантии мы даём?

Наша команда — 5+ лет в промышленном AI и IoT. 10+ внедрений на заводах России и СНГ. Гарантируем качество: если система не подтвердит свою эффективность в течение 3 месяцев — доработаем бесплатно.

Пример расчёта экономической эффективности Для завода с 50 критичными активами и средним убытком 1 млн руб. за час простоя система окупается за 4-6 месяцев. Детальный расчёт предоставляется на этапе аудита.

Сроки и стоимость

Базовое решение (до 10 активов) — 8-10 недель. Полномасштабная система (100+ активов) — 5-8 месяцев. Стоимость рассчитывается индивидуально. Свяжитесь с нами для оценки вашего проекта — получите консультацию инженера.

Получите расчёт для вашего завода. Закажите предварительный аудит.

Детекция аномалий: автоэнкодеры, Isolation Forest, PyOD

Мы сталкиваемся с этой болью постоянно: мониторинг сервера показывает CPU 85%, память 91% — это норма в час пик или начало атаки? Классификатор здесь не поможет: аномалии по определению редки, разнообразны и заранее не размечены. Supervised learning требует примеров аномалий в обучающей выборке — а значит, не работает для того, о чём вы ещё не знаете. Наш опыт показывает: без unsupervised-подхода детекция превращается в гадание.

Почему детекция аномалий требует unsupervised подхода?

Главная проблема — отсутствие разметки и дисбаланс классов в экстремальной форме. Фрод-транзакции составляют 0.01–0.1% от общего объёма. Производственный дефект — 0.5–3%. При таком соотношении даже наивный классификатор «всё нормально» даст accuracy 99.9% и precision/recall для аномального класса, близкие к нулю. Supervised-модели здесь бессильны.

Вторая проблема — «нормальность» всегда контекстна. Нормально ли, что пользователь логинится в 3 часа ночи? Зависит от его истории и временной зоны. Нормально ли вибрация подшипника 2.3 мм/с? Зависит от режима работы станка и его возраста. Поэтому мы встраиваем контекст в модель через feature engineering и временные окна.

Третья — оценка качества. Нет стандартного test set, AUC-ROC считается только если есть хотя бы немного размеченных примеров. На полностью неразмеченных данных — только domain expert validation и косвенные метрики.

Как отличить аномалию от шума в реальном времени?

Ответ — адаптивные пороги и мониторинг статистик модели. В разделе кейса покажем, как это работает.

Методы и инструменты

Метод Тип данных Скорость обучения Типичное применение
Isolation Forest Табличные, категориальные Высокая Baseline для первых гипотез
Autoencoder Изображения, временные ряды, логи Средняя Неструктурированные данные
LSTM-AE Многомерные временные ряды Низкая Промышленная телеметрия
PyOD (ансамбль) Табличные Высокая Быстрое сравнение 40+ методов

Isolation Forest — стандартный baseline для табличных данных. Идея: аномалии изолируются быстрее при случайном разбиении пространства признаков. Работает хорошо при contamination 0.01–0.1, устойчив к масштабу признаков, не требует нормализации. Реализация в sklearn.ensemble.IsolationForest.

Типичная ошибка: ставить contamination='auto' без понимания данных. Auto-режим предполагает порог -0.5, что не всегда соответствует реальной доле аномалий. Лучше: оцените ожидаемый процент аномалий через domain knowledge и задайте явно. Мы гарантируем подбор contamination под ваш кейс.

PyOD (Python Outlier Detection) — библиотека с 40+ алгоритмами под единым API. Включает: OCSVM, LOF, COPOD, ECOD, DeepSVDD, AutoEncoder. Удобно для быстрого сравнения методов на одних данных.

Автоэнкодеры — основной метод для неструктурированных данных (временные ряды, изображения, логи). Идея: обучаем сеть восстанавливать нормальные данные, аномалии дают высокую ошибку реконструкции. Порог аномальности — 95-й или 99-й процентиль ошибки на validation set из нормальных данных.

Практическая проблема автоэнкодеров: переобучение на «нормальных» паттернах, которые всё равно встречаются редко. Если в train set есть хоть несколько аномалий, модель может научиться их хорошо восстанавливать. Решение: тщательная очистка training data или использование Variational Autoencoder (VAE), который лучше обобщает.

LSTMAE для временных рядов — LSTM-автоэнкодер захватывает временные зависимости лучше, чем обычный AE. Особенно эффективен для мультивариантных временных рядов (10+ сенсоров одновременно). Реализация через PyTorch, обучение с MSELoss на скользящих окнах.

Детально: детекция аномалий в промышленных временных рядах

Задача: вибрационные датчики на 12 насосах химического предприятия, 6 сенсоров на насос, частота 100 Гц. Нужно предупредить о надвигающейся поломке за 4–24 часа.

Архитектура решения:

Сырые данные → feature extraction (RMS, кэртозис, пиковый фактор, FFT-амплитуды на резонансных частотах) → нормализация по скользящему окну 24ч → LSTMAE → reconstruction error → пороговая логика + алертинг.

Размер окна LSTM: 60 секунд (6000 точек на 100 Гц). Слишком маленькое окно — не захватывает медленные паттерны. Слишком большое — теряет чувствительность к быстрым изменениям.

Порог аномальности: не фиксированный, а адаптивный. threshold = mean(errors_last_7d) + 3 * std(errors_last_7d). При дрейфе нормального состояния (плановый износ) порог адаптируется, избегая false positives.

Результат на 6-месячном пилоте: обнаружено 4 из 5 реальных предотказных состояний (recall 0.8), 2 ложных тревоги за 6 месяцев (precision 0.67). До внедрения: 3 незапланированных остановки по $40k каждая. Экономия после внедрения — $120k за полгода (отчёт о пилоте на объекте клиента).

Фрод-детекция: специфика финансовых данных

Финансовые транзакции имеют несколько особенностей, усложняющих детекцию:

  • Concept drift: паттерны фрода меняются быстрее нормального поведения. Модель, обученная полгода назад, устаревает.
  • Adversarial adaptation: продвинутые мошенники адаптируются к обнаружению — делают транзакции похожими на нормальные.
  • Временная зависимость: серия нормальных транзакций, а потом один необычный перевод — это аномалия последовательности, а не одиночной точки.

Практический стек для фрод-детекции: LightGBM с SMOTE-oversampling для supervised части (по известным фрод-кейсам) + Isolation Forest для unsupervised (новые паттерны). Оба сигнала объединяются в ансамбль, финальное решение — через пороги, настроенные на приемлемый FPR (0.1–1% от транзакций на ручную проверку).

Как оценить качество без разметки?

Когда ground truth нет, для оценки используем:

  • Synthetic anomaly injection: добавляем искусственные аномалии (spike, level shift, point outlier) и смотрим, обнаруживает ли их модель
  • Expert validation: случайная выборка топ-K аномалий от модели → review эксперта → precision
  • Business metric: снизилось ли количество пропущенных инцидентов / ложных тревог после внедрения
Техническая деталь: настройка адаптивного порога

Порог вычисляется как mean(errors) + k * std(errors) на скользящем окне 7 дней. Коэффициент k подбирается на validation set с синтетическими аномалиями для достижения FPR < 0.1%. При дрейфе признаков окно автоматически сдвигается.

Процесс работы

  1. Интервью с доменными экспертами — понимаем, что такое «нормальность» и какие инциденты уже были.
  2. EDA и подготовка данных — очистка, создание признаков, временные окна.
  3. Baseline (Isolation Forest) — быстрая валидация на известных инцидентах.
  4. Выбор и кастомизация модели — Autoencoder / LSTM-AE / ансамбль.
  5. Обучение, валидация с синтетическими аномалиями.
  6. Развёртывание в production — пайплайн на Kafka + Flink / Airflow, алертинг в Telegram/Slack, мониторинг дрифта.
  7. Post-deployment сопровождение — мониторинг метрик модели, обновление порогов.

Что входит в работу

  • Аудит текущих данных и процессов
  • Разработка и обучение моделей (Isolation Forest / Autoencoder / LSTM-AE / ансамбль)
  • Настройка адаптивных порогов и алертинга
  • Панель мониторинга аномалий (Grafana / Streamlit)
  • Документация model card и pipeline
  • Обучение вашей команды (2–3 сессии)
  • Гарантийная поддержка 3 месяца

Сроки: baseline-система с одним методом — 2–4 недели. Production-система с адаптивными порогами, алертингом и мониторингом — 2–5 месяцев. Стоимость рассчитывается индивидуально под ваш кейс.

Наша команда имеет 8+ лет опыта в промышленной аналитике и 15+ успешных проектов по детекции аномалий в телеметрии, финансах и IT-мониторинге. Получите консультацию — расскажем, как решить вашу задачу.