Скрипт CSS (эффективность цилиндров) для диагностики двигателя.

“Скрипт CSS (efficiency cylinders)” в контексте диагностики — это не про красивую визуализацию, а про измеряемую разницу эффективности между цилиндрами по нагрузочным режимам. Когда мотор “вроде тянет”, а расход уже ползет вверх, причина часто в деградации компрессии/воспламенения/наполнения, и это видно именно по разбросу вклада цилиндров в работу. Грамотный CSS-скрипт переводит сырые данные (IMEP/угловые коррекции/индикаторные оценки) в сравнимый показатель, который можно валидировать по коррекциям, MAF/MAP и по трендам во времени.

Что такое CSS и почему он работает

CSS (Cylinder Efficiency Score/Script) — рабочая методика оценки “эффективности цилиндров”. Суть: вместо того чтобы гадать по пропускам зажигания и одиночным пропускам, мы оцениваем вклад каждого цилиндра в создание крутящего момента. На практике источники данных различаются:

  • по факту: коррекции по топливу (STFT/LTFT и per-cylinder fuel trims),
  • по искре: вариации dwell/катушек и наличие misfire events,
  • по механике: признаки потери объема (падение наполнения) и различия в реакциях на нагрузку,
  • по датчикам давления/индикаторным моделям (если есть): вычисленная IMEP по цилиндрам или приближенная “эффективность”.

Эффективность цилиндра обычно падает при трех группах причин: воспламенение (катушка/свеча/форсунка/топливо/давление), механика (компрессия/утечка/клапан), наполнение (EGR/впуск/турбина/прокладки/PCV). CSS помогает отсечь “просто шум” и вывести систематику.

Какие данные нужны для CSS-диагностики

Минимальный набор для полезного результата:

  • развертка по цилиндрам: per-cylinder misfire counts или per-cylinder fuel trim (лучше, если есть и то и другое);
  • режим: обороты, нагрузка (TPS/MAF или MAP), положение распределительных (если доступно), температура ОЖ/впускного;
  • временные метки/лог-окна: чтобы правильно усреднять (например, по циклам ускорения);
  • данные по коррекциям: STFT/LTFT, адаптации форсунок (если доступны), коррекция по ХХ;
  • диагностические флаги: пропуски зажигания, детонация/Knock, режим отсечки, работа EVAP, EGR.

Идеально, когда CSS-скрипт привязывает оценку цилиндров к “похожим” условиям: одинаковая нагрузка в пределах ±3–5%, стабильные обороты (например, 2100–2600 rpm в течение окна), температура в коридоре ±10°C.

Скрипт CSS (эффективность цилиндров) для диагностики двигателя.

Принцип расчета “эффективности цилиндров” в скрипте

Типовая модель CSS строится вокруг нормализованного отклика цилиндра. Если у вас нет индикаторного давления по цилиндрам, используют коррекционные индикаторы:

  • при снижении эффективности цилиндра ЭБУ обычно увеличивает топливоподачу (в пределах лимитов) и/или накапливает адаптацию,
  • пропуски зажигания растут на конкретных цилиндрах в определенных нагрузочных зонах,
  • при проблемах наполнения падение будет более “глобальным”, но с разной чувствительностью цилиндров из-за геометрии впуска/форсунок/теплового режима.

Практическая формула для одного окна (упрощенная, но рабочая):

  • CSI[c] (Cylinder Score) = w1 * (abs(FCorr[c])) + w2 * (MisfireRate[c]) + w3 * (KnockPenalty[c]) + w4 * (TrimDelta[c])
  • где FCorr — относительная топливная/угловая коррекция по цилиндру (нормализованная к базовой зоне), MisfireRate — пропуски/сек или на 1000 циклов, TrimDelta — разница адаптации относительно среднего.

Затем скрипт делает ранжирование и рассчитывает метрики:

  • Spread = max(CSI) — min(CSI)
  • CV = std(CSI)/mean(CSI)
  • Consistency = доля окон, где один и тот же цилиндр входит в “хвост” (например, худшие 20%).

Именно Consistency снижает ложные срабатывания из-за разовых событий (например, плохой бензин, разовый пропуск из-за сырой свечи после холодного старта, кратковременный провал давления топлива).

Пошаговый алгоритм CSS-диагностики в логах

Ниже — рабочий порядок действий, который реально экономит время на разборе причин.

  1. Выберите режим съемки: короткое “пилообразное” ускорение без детонации и без переходов по режимам (например, 2000→2600 rpm, дроссель 25–45%). Окна по 8–15 секунд.
  2. Фильтр по качеству: исключите окна с активной EVAP purge, активной регенерацией (если дизель), сильным обогащением по IAT (ниже -10…+10°C порога по вашей машине), режимом отсечки.
  3. Нормализация: для каждого окна нормализуйте CSI к среднему по цилиндрам (чтобы компенсировать “глобальный” фактор типа низкого давления топлива).
  4. Агрегация по времени: сложите 5–10 окон, вычислите Spread и CV.
  5. Классификация:
    • Если 1 цилиндр “уходит” стабильно (Consistency > 0.7) — вероятнее локальная причина: свеча/катушка/форсунка/клапан.
    • Если провал распределен группой (например, 2-4 цилиндры) — вероятнее залив/низкое давление топлива/впускной коллектор с утечкой/подсос в общем тракте.
    • Если разброс растет с оборотами, но исчезает на холостом — ищите проблемы искры под нагрузкой или динамику наполнения.
  6. Перекрестная проверка:
    • сопоставьте “плохие” цилиндры с per-cylinder fuel trim (обычно коррекция положительная на проблемном),
    • сопоставьте с датчиками температуры головки/цилиндра (если есть термодатчики) или косвенными признаками теплового разгона (IAT/ECT),
    • посмотрите STFT/LTFT: при механике коррекции часто “упираются” в лимит, при топливе — будут более ровные изменения по всем цилиндрам.
  7. Тест подтверждения:
    • для свечей/катушек: swap компонентов между цилиндрами и повтор CSS;
    • для форсунок: форсунки чаще дают сдвиг в fuel trim и иногда в misfire в конкретной зоне;
    • для компрессии: делайте замер после подтверждения (dry/wet test), но CSS экономит время на выборе “какой цилиндр мерить”.

Цифры и пороги, которые используются в цехе

Пороги зависят от модели ЭБУ и формата данных, но практические ориентиры такие:

  • Spread CSI:
    • до 0.20 (нормально для адекватного бензина и корректных свечей),
    • 0.20–0.40 (зона диагностики: часто катушка/форсунка/свеча или EGR “подвисает”),
    • > 0.40 (почти всегда есть конкретный проблемный цилиндр или реальная топливная/механическая просадка).
  • CV CSI:
    • < 0.15 — разница статистически слабая,
    • 0.15–0.25 — вероятна частичная деградация (надо проверять рядом стоящие параметры),
    • > 0.25 — симптом локальной неисправности с высокой долей вероятности.
  • Consistency (доля окон, где цилиндр в топ-20 по “плохости”):
    • < 0.4 — шум/случайные события (например, разовый пропуск),
    • 0.4–0.7 — “на грани”, возможны плавающие проблемы (контакт, утечка вакуума, нестабильное давление),
    • > 0.7 — почти всегда можно идти в “адресную” проверку компонента.

Сравнение сценариев неисправностей по “паттернам CSS”

Паттерн по цилиндрам Вероятная причина На что смотреть в логах
1 цилиндр стабильно хуже свеча/катушка/форсунка/подвисание клапана/утечка per-cylinder misfire/fuel trim, стабильное смещение CSI
Слабее 2 цилиндра на одной стороне форсунки одной рампы/катушки блока/тепловая зона синхронные коррекции STFT и цилиндровые, провал при прогреве
Провал группы (2–4 цилиндра) низкое давление топлива, подсос во впуске, EGR/DPF режим STFT/LTFT одновременно, MAF/MAP несоответствие расчету, рост CV
Разброс растет под нагрузкой, на ХХ меньше искра под нагрузкой, динамика форсунки, турбулентность впуска рост misfire rate с оборотами, коррекции “догоняют” при TPS > 30%
Сильно “скачет” между окнами контакт/плавающая утечка/нестабильное давление топлива Consistency низкая, но Spreads всплесками

Частые ошибки при внедрении CSS-скрипта

  • Смешивание режимов: брать окна вперемешку с ХХ, ускорением и частичной отсечкой. В итоге CSI “ловит” режимы ЭБУ, а не цилиндры.
  • Отсутствие нормализации: если CSI считается без учета среднего по цилиндрам в окне, глобальная проблема топлива/впуска маскирует локальную.
  • Слишком короткие окна: < 3–4 секунд дает статистический шум. На практике 8–15 секунд на окно дают стабильнее CV.
  • Игнорирование температуры: на холодную топливные коррекции и воспламенение меняются нелинейно; “плохие цилиндры” могут меняться по факту прогрева.
  • Недооценка EGR: на двигателях с EGR провал по наполнению может быть “временным” и не равномерным по цилиндрам из-за распределения в коллекторе.
  • Сведение misfire к нулю: на некоторых ЭБУ misfire логируется с задержкой или в пределах допусков. CSS должен опираться не только на misfire counts.

Практический лайфхак из опыта

Когда CSS показывает один “самый плохой” цилиндр, прежде чем мерить компрессию, сделайте короткий повторный заезд с тем же профилем нагрузки, но с принудительной сменой теплового состояния: 2–3 минуты подержать 1800–2000 rpm без резких разгонов, затем тот же участок 2000→2600 rpm. Если цилиндр “плывет” вместе с температурой (Consistency падает), это чаще указывает на плавающую искру/свечу/контакт или нестабильную форсунку, а не на жесткую компрессию. Если же цилиндр остается худшим при разной температуре впуска/головки (Consistency держится > 0.7), тогда компрессию и утечки уже меряйте адресно — экономите 30–60 минут и не ломаете распорядок по очереди автомобилей.

Как выглядит “скрипт” по инженерному смыслу (без привязки к конкретному ПО)

С технической стороны CSS-скрипт обычно реализует такие этапы:

  • Парсинг лога в единый временной базис (выравнивание по timestamp или по шагу частоты данных).
  • Сегментация на окна по критериям режима (rpm band, load band, стабильность TPS/MAF/MAP).
  • Извлечение per-cylinder сигналов и расчет нормализованных метрик.
  • Фильтрация по детонации/ограничениям (если есть knock activity, помечайте окна).
  • Ранжирование цилиндров, расчет Spread/CV/Consistency.
  • Сводная таблица “окно → метрики → цилиндры-хвост” и вывод паттерна неисправности.

Реальный пример разбирательства по CSS

Ситуация: автомобиль “тянет”, но при 80–120 км/ч расход +0.8–1.2 л/100 км. В логе под нагрузкой CSS дал: цилиндр №3 имеет CSI на 0.45–0.62 выше остальных в 8 из 10 окон (Consistency 0.8). CV всего набора 0.29. При этом STFT был в положительном диапазоне +6…+10% и пер-цилиндровая fuel trim на цилиндре №3 стабильно выше среднего.

Тест подтверждения: заменили местами катушки между №3 и №1. Повтор CSS: худший цилиндр “переехал” на №1. Компрессию мерить не пришлось — у катушки был пробой под нагрузкой, который misfire-лог мог фиксировать не всегда из-за порогов ЭБУ, а CSS стабильно ловил разброс эффективности.

Протокол применения CSS в автосервисе

  • Снимать 1–2 “серии” лога в день (утро/вечер или после легкого прогрева), чтобы отсечь температурную модуляцию.
  • Всегда фиксировать качество топлива: октановое число/бренд/последний долив (детонация и качество могут “рисовать” паттерн, который похож на механику).
  • Не смешивать скрипт CSS с “ручной оценкой на слух”: если Spread > 0.40 и Consistency > 0.7 — это не субъективщина, это адресный поиск.
  • После замены компонента повторить короткий цикл — CSS должен измениться по ожидаемому цилиндру (или по ожидаемому паттерну).

CSS-скрипт для диагностики цилиндров — это способ превратить хаотичный набор признаков (пропуски, коррекции, поведение по режимам) в измеримый “отпечаток” неисправности. Правильно сегментируете окна, нормализуете данные и отслеживаете Consistency — и вместо угадывания получаете прицельную проверку: от катушки и свечи до клапана и утечек.

CSS-скрипт для диагностики цилиндров оценка эффективности работы цилиндров цилиндровый баланс (вклад по цилиндрам) анализ пропусков зажигания (misfire) коррекция топливоподачи (STFT/LTFT)
индикатор тепловой нагрузки цилиндров временные окна датчиков и синхронизация кластеризация аномалий по цилиндрам фильтрация шумов и нормализация сигналов оценка степени деградации двигателя

Что показывает CSS-скрипт при диагностике эффективности цилиндров?

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

На какой стадии диагностики использовать CSS: до проверки форсунок/свечей или после?

В начале как скрининг: CSS помогает быстро локализовать проблемный цилиндр/группу цилиндров. После определения “подозреваемых” проверяют конкретные причины (свечи, катушки, форсунки, компрессию, подсос воздуха, утечки выхлопа).

Почему результаты CSS могут быть “размыты” и не совпадать с ощущением по работе двигателя?

Из-за неустойчивых условий: низкая температура, просадка напряжения, активные регенерации/нагрузка, неправильный режим записи, нестабильная подача топлива или подсос. Скрипт требует повторяемого прогрева и одинаковых условий теста по времени и нагрузке.

Какой режим двигателя и длительность записи считаются корректными для CSS-оценки?

Обычно используют прогретый двигатель и стабильный режим без резких манёвров: постоянная нагрузка/оборот в течение достаточного интервала, чтобы усреднить кратковременные возмущения. Точная длительность зависит от доступных каналов, но принцип один: “стабильно и достаточно долго для усреднения”.

Можно ли использовать CSS для отличия пропусков зажигания от проблем с топливоподачей?

Да, но только косвенно: характер отклонений, коррекций и динамика реакции на изменения указывают, куда “тянет” проблему. Для подтверждения всё равно нужна проверка — по данным пропусков/коррекций, затем по электрической части и механике (форсунки/давление/компрессия).