Детектор детонации в Я5.1 построен на микросхеме
HIP9010.
Для настройки фильтров доступны 4 основных программируемых параметра (стр. 9 в указанном даташите):
1) время интегрирования Tin;
2) постоянная времени Tc;
3) коэффициент усиления G (ослабления, кому как нравится);
4) частота полосового фильтра.
В упрощенном виде формула (полная - на стр. 4 по ссылке) расчета значения интегратором имеет вид:
Выходной_Сигнал_HIP = Входной_Сигнал_ДД * G * Tin /Tc.
Время интегрирования определяет длительность работы встроенного в HIP интегратора и судя по всему рассчитывается исходя из калибровок "Фаза начала измерения детонации" и "Фаза окончания измерения детонации". Либо жестко задано в коде, а на конечное значение интегратора влияют лишь моменты запуска и остановки оного.
Разумеется, чем шире окно измерения, тем выше (но вряд ли пропорционально, впрочем, это показали опыты) выходной с интегратора сигнал. В стоке ширина и расположение начала фазы - переменные (зависят от оборотов). Но мы пока остановились на определенных значениях не зависящих от оборотов, хотя в целом это не сильно правильно, но это уже довольно глубокая тема...
Постоянная времени интегрирования недоступна для настройки в СТР, и где-либо еще. Ее значение выбрано по умолчанию = 80 мкс (8 режим программирования для данной функции). Изменяется данное значение при адаптации по Среднему_Шуму либо в значение = 40 или 160 мкс (зависит от того "шумный" или "тихий" мотор в точках адаптации) сразу (т.е. ровно в 2 раза в обе стороны от значения по умолчанию), либо путем инкремента/декремента значения режима программирования для данной функции при выходе значения Среднего_Шума за пороги (было мнение, что первый вариант, но оно выглядит несколько глупо).
Коэффициент усиления ("Точка переключения аттенюатора" является индексом режима программирования, а не непосредственным значением), зависящий от оборотов, при постоянной времени = 80 мкс настроить хоть как-то логично не получалось, т.к. для нормализации выходного сигнала использовался довольно скудный набор режимов. Такой набор на средних и высоких оборотах при смене индекса режима (а соответственно и коэффициента усиления) давал довольно высокий сигнал, который был еще и "рваным". Причина: чем ниже индекс режима, тем сильнее разница между коэффициентами усиления для соседних режимов. А с ростом оборотов индексы были около 2...3.
Путем изменения значения постоянной времени в коде прошивки на нужное и (временного) отключения механизма адаптации по шуму (т.к. в случае если значение Среднего_Шума выйдет за пороги вместо инкрементной/декрементной смены индекса режима, что даст постепенную нормализацию уровня сигнала, можно вывалиться в режимы с постоянной времени = 40 или 160 мкс, что скорее всего ни к чему хорошему не приведет :lol: ) удалось сравнительно (со стоком) неплохо настроить цилиндровые уровни шума. Значение постоянной времени логично выбирать исходя из краевых условий при максимальном коэффициенте усиления (индекс режима = 63) для режимов работы мотора около ХХ, где уровни шума - минимальны (на исправном двигателе, разумеется). Далее, накатать лог с зафиксированным значением постоянной времени и настроить коэффициент усиления в разрезе оборотов (при минимальных нагрузках, т.к. уровни шума зависят как от оборотов, так и от нагрузок). Полученный набор коэффициентов усиления будет куда больший, с минимально возможными разбросами между "соседями". Во всяком случае у нас вышло именно так.
Постоянная времени благодаря CM_GT вынесена в карте под нашу прошивку, за что ему огромное человеческое спасибо. :roll:
Что в результате (в логах) вышло - выложу позже.