Реалізація 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 з підписом.
Після обслуговування — скид лічильників наробки, оновлення базової лінії для моделі.
Розробка AI-компоненту предиктивного обслуговування поверх існуючого IoT-додатку: 6–10 тижнів (без ML-розробки). Повний цикл включаючи ML-моделі, мобільний додаток та CMMS-інтеграцію: 4–6 місяців. Стоимість розраховується індивідуально.







