Алгоритм определения детонации

Про байтики и логику ЭБУ
Post Reply
User avatar
Sergey89
contributor
contributor
Posts: 839
Joined: Wed Sep 25, 2013 5:30 pm
Location: Russia, Velikiy Novgorod

Алгоритм определения детонации

Post by Sergey89 »

Допустим HIP9011 уже работает как надо. Умеем запускать и останавливать интегрирование в нужные
моменты времени. Теперь нужен алгоритм обнаружения детонации. Моё видение того, что можно для начала
реализовать.

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

После завершения интегрирования обрабатываем полученное из АЦП значение.

Факт детонации определяем по следующему условию: текущее значение интегратора больше значения уровня шума с учётом допустимого разброса. Если факт детонации не установлен, то обновляем значение уровня шума.

Code: Select all

if ((value > noise) 
    && ((value - noise) > threshold)
) {
    knock_count++;
} else {
    noise = noise + (value - noise) * k
}
Все параметры определяются отдельно для каждого цилиндра.

Что касается настройки интегратора и усилителя HIP9011.

Устанавливаем максимальный коэффициент усиления и затем на работающем на холостом ходу двигателе подбираем постоянную времени интегрирования так, чтобы средний уровень шума был в районе половины допустимого напряжения на входе АЦП. После этого составляем табличку коэффициентов усиления для разных оборотов, чтобы выполнялось озвученное ранее условие.

Для определения допустимого разброса считаем среднеквадратическое отклонение и умножаем на некий (нужно подобрать) коэффициент (https://ru.wikipedia.org/wiki/%D0%A1%D1%80%D0%B5%D0%B4%D0%BD%D0%B5%D0%BA%D0%B2%D0%B0%D0%B4%D1%80%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BE%D1%82%D0%BA%D0%BB%D0%BE%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5#.D0.9F.D1.80.D0.B0.D0.B2.D0.B8.D0.BB.D0.BE_.D1.82.D1.80.D1.91.D1.85_.D1.81.D0.B8.D0.B3.D0.BC), чтобы избежать ложных срабатываний.

Возможно, что допустимый разброс будет иметь зависимость от другим параметров. Это всё надо смотреть на практике.
XPbIM3
Posts: 6
Joined: Sat Feb 21, 2015 12:51 am

Re: Алгоритм определения детонации

Post by XPbIM3 »

Не столько важно что и насколько сильно слушать, сколько ГДЕ и КОГДА.
На некоторых моторах несколько ДД. - ну это ладно.
Насколько я знаю стоковые ECU пользуются такой штукой как knock window - тот отрезок времени, когда имеет смысл детектировать детон.
Image
типа того.
puff
contributor
contributor
Posts: 2961
Joined: Mon Nov 11, 2013 11:28 am
Location: Moskau

Re: Алгоритм определения детонации

Post by puff »

реперный диск на 180 зубьев?
судя по рисунку окно привязано к TDC. хотя по идее должно быть связано с искрой и происходить до tdc (или я заблуждаюсь?)
User avatar
Sergey89
contributor
contributor
Posts: 839
Joined: Wed Sep 25, 2013 5:30 pm
Location: Russia, Velikiy Novgorod

Re: Алгоритм определения детонации

Post by Sergey89 »

Это я делал картинку. Родной ЭБУ с моей машины. Сигналы с ножен процессора были захвачены. Триггерный диск с 360 прорезями стоит на распредвале.
puff wrote:судя по рисунку окно привязано к TDC. хотя по идее должно быть связано с искрой и происходить до tdc (или я заблуждаюсь?)
Окно детонации от 0 до 60 градусов после ВМТ. Нас интересует область с наивысшим давлением в камере сгорания, а она как раз после ВМТ.
mivaol
Posts: 260
Joined: Thu Jan 30, 2014 6:00 pm

Re: Алгоритм определения детонации

Post by mivaol »

Залезу тут с логикой, на многих ресурсах при турбировании боятся недохода поршня говорят вы что это-ж детонационная щель.
Когда как если детонация может возникнуть после вмт то шель будет как ни крути и до вмт тоже есть щель причем довольно большой промежуток времени.

То есть детонация может возникнуть и до вмт?
puff
contributor
contributor
Posts: 2961
Joined: Mon Nov 11, 2013 11:28 am
Location: Moskau

Re: Алгоритм определения детонации

Post by puff »

Sergey89 wrote:Это я делал картинку. Родной ЭБУ с моей машины. Сигналы с ножен процессора были захвачены. Триггерный диск с 360 прорезями стоит на распредвале.
puff wrote:судя по рисунку окно привязано к TDC. хотя по идее должно быть связано с искрой и происходить до tdc (или я заблуждаюсь?)
Окно детонации от 0 до 60 градусов после ВМТ. Нас интересует область с наивысшим давлением в камере сгорания, а она как раз после ВМТ.
предположим, что искра случилась немного раньше. поршень еще не дошел до ВМТ, а внутри уже начинается сгорание с соответствующим увеличением давления и детонацией. не?
User avatar
Sergey89
contributor
contributor
Posts: 839
Joined: Wed Sep 25, 2013 5:30 pm
Location: Russia, Velikiy Novgorod

Re: Алгоритм определения детонации

Post by Sergey89 »

mivaol wrote:Залезу тут с логикой, на многих ресурсах при турбировании боятся недохода поршня говорят вы что это-ж детонационная щель.
Когда как если детонация может возникнуть после вмт то шель будет как ни крути и до вмт тоже есть щель причем довольно большой промежуток времени.

То есть детонация может возникнуть и до вмт?
Не могу авторитетно что-то заявлять, но вероятно это связано с тем, что при недоходе перестают эффективно работать сквиш зоны в ГБЦ и детонационный порог снижается.
User avatar
Sergey89
contributor
contributor
Posts: 839
Joined: Wed Sep 25, 2013 5:30 pm
Location: Russia, Velikiy Novgorod

Re: Алгоритм определения детонации

Post by Sergey89 »

puff wrote:
Sergey89 wrote:Это я делал картинку. Родной ЭБУ с моей машины. Сигналы с ножен процессора были захвачены. Триггерный диск с 360 прорезями стоит на распредвале.
puff wrote:судя по рисунку окно привязано к TDC. хотя по идее должно быть связано с искрой и происходить до tdc (или я заблуждаюсь?)
Окно детонации от 0 до 60 градусов после ВМТ. Нас интересует область с наивысшим давлением в камере сгорания, а она как раз после ВМТ.
предположим, что искра случилась немного раньше. поршень еще не дошел до ВМТ, а внутри уже начинается сгорание с соответствующим увеличением давления и детонацией. не?
Скажем так, при адекватных углах зажигания такого не должно происходить.
User avatar
XDA
Posts: 441
Joined: Wed Oct 23, 2013 7:28 pm

Re: Алгоритм определения детонации

Post by XDA »

расскажу, как просходит "в одном из стоковых ЕЦУ"
есть таблица, по одной оси обороты, по другой - фактор нагрузки (айрмасса)
в ячейках - чувствительность алгоритма определения детонации
Теория хороша в том и только том случае, если она может достоверно предсказать результаты каждого нового опыта
XPbIM3
Posts: 6
Joined: Sat Feb 21, 2015 12:51 am

Re: Алгоритм определения детонации

Post by XPbIM3 »

Влезу еще раз:

где-то на форумах посвященных толи хондата, толи нистюну человек задавал аналогичный вопрос: "а почему кнок виндоу ПОСЛЕ ВМТ? Может ведь случится и такая ситуцаия что кночить будет до ВМТ?"
Ответ был в духе: "может, но только один раз." Вмысле если рванет до ВМТ - это уже просто адово деструктивный режим работы.
XPbIM3
Posts: 6
Joined: Sat Feb 21, 2015 12:51 am

Re: Алгоритм определения детонации

Post by XPbIM3 »

Sergey89 wrote:Это я делал картинку. Родной ЭБУ с моей машины. Сигналы с ножен процессора были захвачены. Триггерный диск с 360 прорезями стоит на распредвале.

Слушай, а как ты смог снять лог knock window ? всмысле...чем ECU себя выдает что начинается обработка детона.. напряжение смещения на ДД чтоли подается в этот момент?
И еще, чтобы не плодить темы, касательно именно твоих картинок про SR, я вижу что 180 градусные прорези сделаны одинаковой ширины, все кроме одной. Это значит что мотор перед запуском ждет одного полного оборота CAS сенсора для синхронизации, и только потом запускается. Я верно мыслю?
И второй вопрос: как считаешь, какова логика выбора начала отсчета 180 градусных меток? Всмысле вот почему именно большая метка - 110 гр до ВМТ. На RB моторах аналогично - 120 градусные метки ниразу с ВМТ не совпадают.
User avatar
Sergey89
contributor
contributor
Posts: 839
Joined: Wed Sep 25, 2013 5:30 pm
Location: Russia, Velikiy Novgorod

Re: Алгоритм определения детонации

Post by Sergey89 »

XPbIM3 wrote:Слушай, а как ты смог снять лог knock window ? всмысле...чем ECU себя выдает что начинается обработка детона.. напряжение смещения на ДД чтоли подается в этот момент?
Этот сигнал был снят с ножки микросхемы, которая его генерирует. Он подаётся в плату обработки датчика детонации. Плата скорее всего является не чем иным как интегратором. На неё приходит ещё импульс сброса с микроконтроллера после чтения результата АЦП.
И еще, чтобы не плодить темы, касательно именно твоих картинок про SR, я вижу что 180 градусные прорези сделаны одинаковой ширины, все кроме одной. Это значит что мотор перед запуском ждет одного полного оборота CAS сенсора для синхронизации, и только потом запускается. Я верно мыслю?
Эта конфигурация прорезей применялась совместно с механическим распределителем зажигания, поэтому ждать полного оборота не надо. В конфигурациях с индивидуальными катушками все прорези разной длины.
И второй вопрос: как считаешь, какова логика выбора начала отсчета 180 градусных меток? Всмысле вот почему именно большая метка - 110 гр до ВМТ. На RB моторах аналогично - 120 градусные метки ниразу с ВМТ не совпадают.
В прерывании при захвате переднего фронта этого сигнала выполняются некоторые расчёты. В частности фильтруется УОЗ, потом из него вычитается смещение по детонации и в конце записывается значение в регистр сравнения таймера, чтобы выдать искру. Поэтому удобно, чтобы этот сигнал располагался раньше чем максимальный УОЗ.
XPbIM3
Posts: 6
Joined: Sat Feb 21, 2015 12:51 am

Re: Алгоритм определения детонации

Post by XPbIM3 »

Sergey89 wrote:...
Весьма признатален за разьяснения! Действительно, логично обработать передний фронт REF метки прерыванием.
Всегда удивляло как древнейшие микроконтроллеры в конце 80ых без проблем обрабатывали инфу с диска с 1 градусными прорезями а у вемса в свое время были с этим проблемы. Хотя я конечно в историю вопроса не вдавался, может они прерывание на вемсе вешали на каждый градус? тогда конечно все раком вставало.
User avatar
Sergey89
contributor
contributor
Posts: 839
Joined: Wed Sep 25, 2013 5:30 pm
Location: Russia, Velikiy Novgorod

Re: Алгоритм определения детонации

Post by Sergey89 »

Просто датчик обрабатывался на аппаратном уровне. МК считал импульсы сигнала положения и сбрасывал счётчик по опорному сигналу. В прошивке только обновлялись регистры сравнения, чтобы событие происходило на нужном углу. Это единственный способ с таким слабым процессором (производительность меньше 1 MIPS).

В vems думаю был захват по одному из фронтов сигнала положения, что даёт интервал в 2 градуса. STM32 с этим должен справиться без проблем, а вот для атмеги это не такая простая задача.
Post Reply