Реализация AI-предиктивного обслуживания IoT-устройств в мобильном приложении
Предиктивное обслуживание — разница между «насос сломался, производство стоит» и «через 2 недели подшипник выйдет из строя, запланируйте замену». ML-модели, обученные на вибрационных данных, токе двигателя и температуре, распознают деградацию задолго до отказа. Мобильное приложение — интерфейс, в котором инженер видит прогнозы, получает задания на обслуживание и подтверждает выполнение.
Модели прогнозирования: что реально работает
Классический подход для предиктивного обслуживания вращающегося оборудования (насосы, компрессоры, двигатели):
- RMS вибрации с акселерометра — рост указывает на дисбаланс или износ подшипника
- Спектр FFT — характерные частоты дефектов подшипников (BPFI, BPFO, BSF, FTF по геометрии подшипника)
- Температура обмоток — тренд роста при деградации изоляции
- Ток двигателя (MCSA — Motor Current Signature Analysis) — изменение гармоник при механических дефектах
Модели: Isolation Forest или LSTM Autoencoder для детекции аномалий на временных рядах, XGBoost или LightGBM для классификации типа дефекта, Survival Analysis (Weibull regression) для оценки оставшегося ресурса (RUL — Remaining Useful Life).
Обучение — на серверной стороне (Python, scikit-learn, PyTorch). В мобильное приложение выгружается либо REST API, либо скомпилированная модель для локального инференса.
Локальный инференс: TFLite и Core ML
Для случаев нестабильной связи (промышленные объекты) — модель на устройстве.
// Android: TFLite модель RUL prediction
class RULPredictor(context: Context) {
private val interpreter: Interpreter
init {
val model = loadModelFromAssets(context, "rul_model.tflite")
val options = Interpreter.Options().apply {
addDelegate(NnApiDelegate()) // аппаратное ускорение
setNumThreads(2)
}
interpreter = Interpreter(model, options)
}
fun predictRUL(sensorFeatures: FloatArray): PredictionResult {
// Входной тензор: [1, 24] — 24 признака (статистики временных рядов)
val inputBuffer = ByteBuffer.allocateDirect(4 * sensorFeatures.size)
.order(ByteOrder.nativeOrder())
sensorFeatures.forEach { inputBuffer.putFloat(it) }
// Выходной тензор: [1, 2] — [rul_days, confidence]
val outputBuffer = Array(1) { FloatArray(2) }
interpreter.run(inputBuffer, outputBuffer)
return PredictionResult(
rulDays = outputBuffer[0][0].toInt(),
confidence = outputBuffer[0][1]
)
}
}
Feature engineering перед инференсом: из сырых временных рядов считаем статистики (mean, std, RMS, peak, crest factor, kurtosis, skewness) за скользящее окно. Это делается на устройстве в реальном времени.
На iOS — Core ML с .mlpackage форматом. Конвертация из scikit-learn через coremltools.convert(). MLModel Pipeline: StandardScaler + XGBClassifier конвертируется в единый Core ML граф.
Карточка устройства и прогноз
Главный экран — список оборудования с цветовыми индикаторами здоровья. Тап на устройство открывает карточку:
- Health Score (0-100) — агрегированный показатель состояния
- RUL — прогноз оставшегося ресурса в днях/часах работы с доверительным интервалом
- Активные аномалии — с описанием: «Аномально высокая вибрация по оси X, характерно для дисбаланса ротора»
- Тренды — графики ключевых параметров за 7/30/90 дней со стрелками трендов
- История обслуживания — когда последний раз обслуживалось, что делали
Push-уведомление при резком ухудшении Health Score: «Насос ЦН-2, здание 5: вибрация выросла на 40% за 24 часа. RUL снижен до 12 дней». Приоритетный пуш через FCM PRIORITY_HIGH — не теряется в Doze Mode.
Work Order Integration
Прогноз без действия бесполезен. При достижении порога RUL — автоматическое создание заявки на техобслуживание в CMMS (Computerized Maintenance Management System): SAP PM, IBM Maximo, Infor EAM, 1С:ТОиР.
Мобильное приложение позволяет механику: принять Work Order, отсканировать QR с оборудования для подтверждения местонахождения, зафиксировать выполненные работы и замененные запчасти, закрыть WO с подписью.
После обслуживания — сброс счётчиков наработки, обновление baseline для модели.
Разработка AI-компонента предиктивного обслуживания поверх существующего IoT-приложения: 6-10 недель (без ML-разработки). Полный цикл включая ML-модели, мобильное приложение и CMMS-интеграцию: 4-6 месяцев. Стоимость рассчитывается индивидуально.







