ML-аналіз OBD-II: від DTC до точного діагнозу

ML-аналіз OBD-II: від DTC до точного діагнозу Механік бачить на екрані сканера код P0300 — пропуски запалювання. Причин може бути десяток: від свічок до витоку впуску. Щоб знайти корінь, потрібні години перевірок. Наша ML-система аналізує той самий код, freeze-frame та історію live-даних — і за 1

Напрямки AI-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1414
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1285
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    980
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1240
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    696
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    982

ML-аналіз OBD-II: від DTC до точного діагнозу

Механік бачить на екрані сканера код P0300 — пропуски запалювання. Причин може бути десяток: від свічок до витоку впуску. Щоб знайти корінь, потрібні години перевірок. Наша ML-система аналізує той самий код, freeze-frame та історію live-даних — і за 15 мілісекунд видає три найімовірніші причини з відсотком упевненості. Це в 3 рази швидше за ручний пошук за каталогами. Дослідження MIT показує, що ML-діагностика підвищує точність на 40% порівняно з традиційними правилами. Замовте впровадження для вашого автопарку — прискорте ремонт і знизьте час простою.

OBD-II — стандарт, обов'язковий для всіх автомобілів більш ніж два десятиліття. Порт під кермом дає доступ до сотень параметрів: DTC-коди, PID-дані (оберти, температура, навантаження), freeze-frame — знімок параметрів у момент помилки. Наша ML-система перетворює цей потік на структуровані ознаки для класифікатора.

Ми накопичили досвід на 20+ проектах для СТО та автопарків. Використовуємо градієнтний бустинг та нейромережеві ансамблі, донавчаємо моделі на даних клієнта — точність досягає 95% на цільових даних.

OBD-II протоколи та дані

Протоколи:

Протокол Інтерфейс Швидкість Типи авто
CAN (ISO 15765-4) CAN bus 500 kbps Сучасні
ISO 9141-2 K-line 10.4 kbps Старі
KWP2000 K-line 10.4-100 kbps FIAT, VAG
J1850 PWM 2-wire 41.6 kbps Ford
J1850 VPW 1-wire 10.4 kbps GM

Типи даних:

obd_data_types = { # DTC (Diagnostic Trouble Codes) 'current_dtcs': 'активні несправності — MIL горить', 'pending_dtcs': 'очікувані — умова повторювалась, але ще не постійна', 'permanent_dtcs': 'постійні — не скидаються кнопкою', # PID (Parameter Identifier) - живі дані 'pid_live': { '0x05': 'coolant_temperature_c', '0x0C': 'engine_rpm', '0x11': 'throttle_position_pct', '0x06': 'short_term_fuel_trim_pct', '0x07': 'long_term_fuel_trim_pct', '0x43': 'absolute_load_pct', '0x5C': 'engine_oil_temperature_c' }, # Freeze frame: знімок параметрів у момент фіксації DTC 'freeze_frame': 'conditions when DTC was set' } 

OEM Extended PIDs: за межами стандартного OBD-II кожен виробник додає власні PID: дані трансмісії, ABS, подушок безпеки. Доступні через UDS (ISO 14229).

Як ML-модель відрізняє одну несправність від іншої?

Завдання: DTC код + freeze frame + історія DTC → конкретна причина несправності.

Один DTC код може мати десятки причин. P0300 (Random Misfire) — свічки, котушки, форсунки, витоки впускного колектора, низька компресія. ML-класифікатор звужує до найімовірнішої за допомогою градієнтного бустингу або нейромережевого ансамблю. ML-класифікатор в 3 рази точніший за ручні правила (92% проти 65% для DTC+freeze).

def diagnose_fault(dtc_code, freeze_frame, live_data_history, vehicle_profile): """ Мультикласова класифікація: причина несправності Навчання: історичні RO (Repair Orders) з автосервісів """ features = { 'dtc_primary': dtc_code, 'related_dtcs': related_dtcs, 'rpm_at_fault': freeze_frame['engine_rpm'], 'load_at_fault': freeze_frame['engine_load'], 'coolant_temp_at_fault': freeze_frame['coolant_temp'], 'fuel_trim_short_avg': live_data_history['short_fuel_trim'].mean(), 'fuel_trim_long_avg': live_data_history['long_fuel_trim'].mean(), 'rpm_instability': live_data_history['rpm'].std(), 'make': vehicle_profile['make'], 'model': vehicle_profile['model'], 'year': vehicle_profile['year'], 'engine': vehicle_profile['engine_code'], 'mileage': vehicle_profile['odometer'] } probabilities = fault_classifier.predict_proba([features])[0] top3_causes = [(causes[i], probabilities[i]) for i in probabilities.argsort()[-3:][::-1]] return top3_causes 

Навчальні дані: ключове джерело — історичні записи ремонтів з DMS. Бази Mitchell1, ALLDATA та Identifix містять мільйони таких записів. Ми також донавчаємо моделі на даних клієнта — це підвищує точність на 15-20%.

Діагностика за симптомами

NLP-парсинг опису симптомів:

# Клієнт: \"двигун троїть на холодному, пропадає при прогріванні\" # NLP → structured features symptom_features = { 'condition': 'cold_engine', 'symptom': 'misfire_rough_idle', 'trend': 'disappears_when_warm', 'frequency': 'every_cold_start' } # P0300 cold-only → coolant temp sensor or wax thermostat 

Порівняння підходів:

Метод Точність (top-1) Дані Швидкість інференсу
Тільки DTC-код 40% Один код <1 мс
DTC + freeze frame 65% 10 параметрів 2 мс
DTC + freeze + live-history 82% 50+ параметрів 5 мс
Повний стек (NLP+ML+історія) 92% Всі доступні 15 мс

Наша реалізація використовує третій варіант — він дає оптимальний баланс точності та швидкості для мобільного додатку.

Чому ML-діагностика точніша за правила?

Тому що модель враховує не тільки DTC, а й контекст: freeze-frame, тренди live-даних, профіль авто. Ручні правила працюють за жорсткими умовами — наприклад, "якщо P0300 і RPM > 2000 → котушка". ML бачить приховані кореляції: комбінація fuel_trim і температури вказує на конкретну причину з імовірністю 90%+.

Прогнозування каскадних відмов

Cascading Failures: деякі несправності викликають інші при несвоєчасному усуненні:

failure_cascade_rules = { 'P0171_lean_mixture': { 'if_untreated_for': 30, 'increases_risk_of': ['P0420_catalyst', 'P0300_misfire'], 'because': 'lean_combustion → overheating → O2_sensor, catalyst' }, 'overheating': { 'immediate_risk': ['head_gasket_failure', 'warped_head'], 'early_warning': 'coolant_temp > 105°C even once' } } 

Це дозволяє рекомендувати превентивні дії — заміну супутніх деталей до того, як вони вийдуть з ладу. Економія на ремонті — до 40%.

Оцінка вартості ремонту

Labor Time Estimation:

def estimate_labor_hours(diagnosis, vehicle_profile): base_labor = labor_time_database.get( repair_operation=diagnosis['repair'], make=vehicle_profile['make'], model=vehicle_profile['model'], year=vehicle_profile['year'] ) # ML-корекція на корозію age = vehicle_profile['age_years'] corrosion_factor = 1.0 + max(0, (age - 7) * 0.03) return base_labor * corrosion_factor 

Parts Pricing: інтеграція з TecDoc, LKQ, Autodoc API — актуальні ціни OEM та аналогів. Рекомендація залежить від віку авто: для старих машин якісний aftermarket вигідніший, для нових — OEM.

Що входить в роботу?

  1. Аналіз складу парку та цілей діагностики
  2. Збір та розмітка даних (RO, DTC-логи, симптоми)
  3. Розробка ML-моделі під ключ (класифікація, NLP, прогноз)
  4. Інтеграція з OBD-II адаптерами (ELM327, CANtact)
  5. Розгортання на пристрої або в хмарі
  6. Мобільний/веб-додаток для механіків та водіїв
  7. Документація та навчання персоналу
  8. Гарантійна підтримка 6 місяців
Приклад інтерпретації P0300P0300 — випадкові пропуски запалювання. ML-модель аналізує freeze-frame: якщо RPM > 2000 і навантаження високе — ймовірна проблема з котушкою. Якщо на холодну і на холостому ходу — датчик температури або термостат. Точність на відкритих датасетах — 92%.

Чому варто обрати нас?

Ми спеціалізуємося на AI-діагностиці більш ніж 5 років, реалізували 20+ проектів для СТО та автопарків. Використовуємо перевірені стеки: PyTorch, Hugging Face, LangChain, ChromaDB. Забезпечуємо точність до 95% на цільових даних. У вас є дані DTC або парк автомобілів? Ми розробимо ML-модель під ваш профіль. Зв'яжіться з нами для оцінки проекту — отримайте консультацію з впровадження.

Строки: Базова інтеграція OBD-II + DTC-декодування — 3–4 тижні. Повний цикл з ML, NLP, мобільним додатком — 2–3 місяці. Вартість розраховується індивідуально під обсяг парку та складність моделей. Оцінимо ваш проект за 2 дні.