Готовый перевод A Subie Newbie Tuning Guide v0.6 / A Subie Newbie Tuning Guide v0.6 на русском: Timing

Используемые материалы:
Subaru’s Knock Control Strategy Explained (RR)
Cobb’s Tuning Guide

ДЕТОНАЦИЯ
Детонация (так же известная как pinging или knock) происходит, когда AF смесь взрывается в цилиндре. Топливо не должно взрываться, лучше, чтобы оно быстро сгорало, создавая равномерную волну давления, которая приводит в движение поршень. Когда машина детонирует, взрыв AF смеси создаёт скачёк давления, давление которого превышает все, что только способен выдержать двигатель. Для противостояния детонированию, вам будет нужен литой блок цилиндров двигателя + коленвал и подшипники способные выдержать это = дизельная машина. Итак, когда машина детонирует, взрыв давления давит на поршень вниз намного сильнее, чем должен. Эти удары расшатывают подшипники и изнашивают их. После этого вам потребуется новый укороченный блок. Не хочу сказать, что ваш двигатель взорвется, если машина будет детонировать, но дайте ей однажды хорошо сдетонировать и двигатель может поджариться.

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

Чтобы получить максимум мощности с двигателя, нам надо, чтобы в цилиндре возник максимум давления, когда поршень будет на 15° ниже по отношению к TDC (верхняя мёртвая точка, или позиция на 12 часов). Чтобы достичь этого, AF смесь воспламеняют раньше, обычно до TDC. Затем она еще немного сжимается, достигнув TDC, ускоряя горение. Затем, после TDC происходит бОльшая часть горения, которая давит на поршень.

Когда мы настраиваем timing, мы устанавливаем количество градусов до TDC так, как мы хотим, чтобы свеча зажигания воспламенила AF смесь. Чем более опережающее, тем раньше AF смесь воспламенится. Здесь многое может пойти не так. Но к счастью система детонации Subaru достаточно сложна, чтобы предотвратить катастрофу.

Ещё одна заметка о детонации. Сенсор детонация – по сути, аудио сенсор. Это означает, что фактически он слушает общий звук двигателя. Двигатель может быть шумным местом, поэтому он отфильтровывает большинство звуков, за исключением определённых частот, характеризующих детонацию. Итак, если сенсор слышит звук на определённом частотном диапазоне, он рапортует о детонации. Да, датчик детонации может поймать ложный сигнал. Бывали случаи, когда кто-то случайно ронял болтик прямо за сенсором и не замечал этого. Во время езды, болт гремел, заставляя сенсор думать что, машина детонирует как сумасшедшая. Конечно, это происходит не часто, но это не значит, что вы можете игнорировать сигнал детонации. Это просто ограничение датчика детонации.

УПРАВЛЕНИЕ ДЕТОНАЦИЕЙ SUBARU
У ECU, вместо одной таблицы со значениями тайминга, их несколько и они объединяются для подведения итогового значения. Причиной этому является то, что это дает ECU возможность снизить или повысить тайминг в ответ на информацию, которую он получает от своих сенсоров и на отчеты от сенсора детонации. Поэтому нам нужно изучить различные параметры, которые составляют итоговое значение. Оно подсчитывается следующим образом:

Total Timing = Base Timing + (IAM*Timing Advance) + Corrections + Compensations

Base Timing: Значение в таблице Base Timing для заданной ячейки RPM/Load
IAM: Текущее значение IAM хранящееся в RAM
Timing Advance: Значение в таблице Timing Advance для заданной ячейки RPM/Load
Corrections: Значение, которое ECU узнал из предыдущего опыта и различных отчётов
Compensations: Корректировки сделанные для температуры впуска, ECT в цилиндре и т.п.

Давайте посмотрим, откуда взялся каждый из этих параметров и как они определены. Base Timing пришёл из карты base timing в ECU. У настройщика есть полный контроль над этой картой. Значения Timing Advance пришли из похожей карты, которую настройщик так же может изменять. Так зачем же нужны две карты, если их значения всё равно будут сложены вместе? Ответ в значении IAM. Ignition Advanced Multiplier здесь для того, чтобы добавлять полный TA к base timing, если двигатель счастлив, и только часть TA, если нет. Двигатель счастлив, если ваш сенсор детонации не слышит ничего (детонации нет). Вы, как настройщик, можете очень легко выставить все значения TA на 0s и сделать значение Base timing = Base Timing + Timing Advance. Это не будет проблемой, если ваш двигатель счастлив всегда, но «безопасней» иметь возможность разделять это. Они разделены на случай если с вашей машиной возникнут проблемы. В этом случае, ECU может понизить IAM и таким образом TA, чем спасёт ваш двигатель.

IAM так же известен как “Rough Correction” (грубая коррекция). Это так, потому что, если он понижен, применена будет только часть TA, и таким образом, тайминги будут занижены по всему диапазону RPM и Load. Говоря иначе, если машина детонирует только при определённой комбинации rpm и load, IAM будет понижен, и вы не будете добиваться полной TA, пока не выйдите из «опасной зоны». Но должен же быть лучший путь, чтобы компенсировать детонацию, которая происходящую в определённых местах.

Вот здесь и вступают другие коррекции. Другими коррекциями являются Feedback Knock Correction (FBKC) и Fine Learning Knock Correction (FLKC). FBKC это коррекция таймингов, которая применяется во время WOT (wide open throttle) заездов, FLKC, как правило, применяется во время обычной езды. Но сначала, посмотрим на изменённое уравнение.

Total Timing = Base Timing+(IAM*Timing Advance)+FBKC+FLKC+Other Compensations

КАК ECU ОПРЕДЕЛЯЕТ КОРРЕКЦИИ?
Все просто, ECU корректирует одну форму коррекций в один момент времени через маршрут и ошибку. Это значит, что у нас есть 3 формы коррекций (FBKC, IAM, FLKC) и мы можем корректировать только одну в любой момент. Так как же это происходит? В ECU устанавливаются параметры, которые диктуют, какие коррекции ECU будет корректировать в любой момент. Обобщая, можно сказать, что FBKC является коррекцией по умолчанию, но если достигнуты определённые условия, ECU переключается на одну из других двух коррекций. Обычно это происходит во время спокойной езды по трассе. Как только определённое значение load и rpm достигнуто, ECU начинает корректировать FLKC. Однако, как только эти условия перестают соблюдаться, ECU переключается обратно к коррекции FBKC. Тем не менее, если ECU корректирует FLKC и делает там значительные исправления (-4° или больше), ECU это не нравится, и он и переключается к коррекции IAM. Это происходит, потому что ECU думает, что что-то не так с машиной, и для того чтобы защитить двигатель понижает тайминги по всей таблице. Именно поэтому многие говорят, что IAM это показатель того насколько счастлив ECU.

Давайте подведём итог в виде псевдокода:

If (in FBKC) {
If (Engine Conditons are stable) {
Goto (FLKC)
}
} else {
Keep Listening for knock and make corrections.
Stay in FBKC correction mode
}

If (in FLKC mode) {
While (engine load and rpm are steady) {
Check for knock and pull timing if needed
If (pulled more than 4° or the ECU is unhappy) {
Goto (IAM correction)
}
}
Go back to FBKC
}

If (in IAM correction) {
Find optimal IAM
Go back to FLKC mode
}

Изначально ECU настроен на грубые коррекции. Это имеет смысл, так как он сперва находит оптимальный IAM, затем переходит к регулировке FBKC и остаётся там пока не понадобится пересчитывать IAM или привести в соответствие FLKC. Более того, ECU, по-видимому, даёт приоритет FBKC над другими режимами. В таком случае с него и начнём.

FEED BACK KNOCK CORRECTION
FBKC активно в течение определённых величин области "feedback knock correction range". В это время, ECU непрерывно "слушает" датчик детонации в ожидании услышать детонацию. Если в этот период детонации не происходит, FBKC остаётся на 0. Однако, если ECU слышит детонацию, то из FBKC вычитается значение Feedback Correction Retard Value. Это значение может быть любым, но обычно это 1.4°. Итак, когда детонация слышна в первый раз, FBKC = -1.4°. Это означает, что 1.4° будут вычтены из ваших финальных значений тайминга. Затем ECU возвращается к прослушиванию. Если коррекции помогли, и ECU не слышит больше детонации, с этого момента он начинает постепенно возвращать тайминги обратно. Это означает, что ваше значение FBKC начинает уменьшаться обратно до 0. Но оно уменьшается постепенно, а не полностью за один раз. К примеру, если уменьшение на 1.4° помогло, через некоторое время ECU опустит FBKC до -1°, затем .6°, затем .2° и в итоге обратно до 0. Но если во время этого ECU слышит ещё детонацию, он вычитает ещё 1.4° из любого текущего значения FBKC. Итак, если ECU слышит детонацию ещё раз, сразу после первой, ваш FBKC = 2.8°. Или если он слышит детонацию немного позже, когда FBKC = .6°, ваш FBKC = -2°. Он делает это снова и снова, пока вы едете.

На этой стадии, это кажется неплохой идеей, если бы ECU обучался тому, когда автоматически уменьшать тайминги. Обучение должно зависеть от того, как ведёт себя двигатель. Если двигатель работает плохо и очень много детонирует, для его безопасности тайминги должны быть уменьшены везде. Если слышна только небольшая детонация местами, то ECU должен сконцентрироваться на тех областях, где происходит детонация, чтобы отчистить их и не трогать все остальное.

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

Вот они:

• Температура охлаждающей жидкости выше 140F.
• A/C отключен или не был включен только что.
• Load и RPM в диапазоне "Rough Correction Ranges" или "Fine Correction Ranges".
• Ближайшие изменения в load меньше чем +/- .05 g/rev.
• ECU не в режиме обслуживания.
• ECU не в режиме limp-home из-за включения определённых групп CELs.
• Неизвестные компенсации таймингов основанные на изменениях дроссельной заслонки не активны (т.е. компенсаций нет).

Нет гарантий, что это полный список. Он часто обновлялся, поэтому лучше всего поискать обновления на сайте RR. Я привёл его здесь только для того чтобы показать вам саму идею этого, и что может потребоваться выхода из режима FBKC.

РЕЖИМ FLKC
Давайте предположим, что условия двигателя постоянны, и мы переходим из FBKC в режим FLKC. FLKC создан для того, чтобы производить регулировки в таймингах при определённых комбинациях load и RPM, предпочтительнее, чем коррекции по всей таблице, как при грубой корректировке. Полученные значения, хранящиеся в RAM, применяются во всех режимах, но изменения к значениям могут быть произведены только если

• Текущий режим fine correction.
• FBKC отключен.
• RPM и load в пределах областей заданных таблицами “Fine Correction Range”.
• Limp-home режим не активен.

Если эти условия выполнены, ECU прислушивается к детонации. Если детонации нет, ECU либо ничего не делает, либо может добавить положительные коррекции (advance timing further). ECU так же будет бездействовать, если ваш IAM на максимуме. Но ECU так же может попробовать добавить тайминги, если ваш IAM понизился в каком-то месте. Идея в том, чтобы увеличивать тайминги, насколько только возможно, в свободных от детонации комбинациях rpm/load, даже если тайминги были уменьшены по всей таблице. Взамен того чтобы добавлять тайминги по всей таблице, ECU пытается увеличивать тайминги только в определённых диапазонах rpm/load. Чтобы сделать это, следующие условия должны быть выполнены:

• Положительная и/или отрицательная FBKC коррекция не была применена во время последнего выполнения.
• Если вышесказанное верно, тогда предыдущий диапазон FLKC load/RPM так же должен быть таким же, как в прошлый раз.
• Текущий диапазон load/rpm в таблице FLKC такой же, как и прошлый диапазон.

Как и с другими коррекциями, здесь существует задержка, перед тем как значения каждой из FLKC могут быть увеличены (Fine Correction Advance Delay). Эта задержка основывается на счётчике, который увеличивается, когда детонация отсутствует, и обнуляется, когда были произведены изменения в таблице FLKC или поступил сигнал о детонации.

Если вышеуказанное выполнено и счётчик пройден, значение FLKC для текущей ячейки load/RPM будет увеличено. Тем не менее, оно не может быть увеличено, если (Timing Advance Value * IAM) + FLKC больше текущего значения в таблице "Timing Advance (Maximum)". Опять же, FLKC может быть положительным, только если ваш IAM не находится на 100%.

Если ECU слышит детонацию, fine correction в текущей ячейке FLKC понижается где-то на 1° ("Fine Correction Retard Value").

Итак, если всё хорошо, то IAM находится на 100% и FLKC везде на 0.

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

• RPM и load должны быть в пределе областей, определённых в таблицах “Rough Correction Range”
• Значение карты Timing advance (maximum) больше 4.9°.
• Некоторые значения FLKC изменены (в положительную или отрицательную сторону) с последнего выполнения.
• Последнее применённое значение FLKC (|x|) выше 3.9° (это абсолютная коррекция  к примеру -4 = 4).
• Последнее сырое значение FLKC (|y| * 2.84) выше последнего значения карты last timing advance (maximum).
• (IAM > 1) или (IAM <= 1 и последний применённый FLKC был положительным)

Перед тем, как мы перейдем к режиму Rough Correction, давайте подведём итог FLKC в виде псевдокода:

If (conditions for adjustments are met)
{
Listen for Knock
If (Knock) {
Set Counter to 0
Subtract Fine Correction Retard Value from current RPM/Load cell
If(totalCorrection < -4){
Transition to Rough Correction
}
} Else //no knock {
If (IAM < 100% max value)
If (No knock for period of 'Fine Correction Advance Delay’) {
Increment Counter
If (Counter > Delay Target && (TA*IAM)+FLKC < TAmaximum) {
Add Fine Correction Advance Value to RPM/Load Cell
Set Counter to 0
}
}
} else //IAM is maxed out {
Do nothing
}}

ROUGH CORRECTION / IAM CORRECTION
Итак, давайте предположим, что мы вошли в режим IAM (rough) коррекции. Мы попали в этот режим либо из-за обнуления (reset) ECU или из-за большой детонации в двигателе. Как только мы в нём, мы можем либо корректировать IAM, либо нет. Если следующие условия выполнены, IAM может быть откорректирован.

• Текущее значение карты timing advance (maximum) > 3.9° ("Rough Correction Minimum Timing Advance Map Value").
• Limp-home режим ECU не активен (IAM был бы на 0 в таком случае).
• FBKC отключен.
• Значение шага IAM > 1.
(опять же, поищите эти условия на сайте RR)

Теперь, давайте предположим, что IAM может быть откорректирован, для того чтобы сделать это, сперва надо сделать следующее (но только каждый раз как мы входим в режим rough correction)

• Значение IAM находится на уровне “Advance Multiplier (Initial)”.
• Значение шага IAM равно 4 “Advance Multiplier Step Value”.
• Счётчик задержки обучения IAM (IAM learning delay) на 0.
• Таблица FLKC отчищена.

Это сделано, для того чтобы убедиться в том, что мы не работаем в любой другой коррекции.

Теперь мы подсчитываем новое значение IAM слушая активность детонации. Всё это можно свести к следующему псевдокоду:

If(conditions for adjustment are met)
IAM = initial Value (usually half the max)
IAM Step Value = Max Step Value
Counter = 0;

While (IAM Step Value > (1 or .25)) {
Listen for knock
If (Knock) {
Set Counter to 0
Decrease the IAM step value in half
} else {// There is no knock
If (No knock for period of 'Rough Correction Learning Delay') {
Increment Counter
If (Counter > Delay Target) {
Increase IAM by Advanced Multiplier Step Value
Set Counter to 0
}
}
}
If(IAM = max or IAM = 0){
Go back to FLKC
}}

НЕКОТОРЫЕ ВАЖНЫЕ ТАБЛИЦЫ ТАЙМИНГОВ, О КОТОРЫХ МЫ ГОВОРИЛИ

BASE TIMING
Это начальное значение использующиеся для подсчётов. Все коррекции и компенсации будут применены к этому значению.

TIMING ADVANCE MAXIMUM (TA)
ECU будет пытаться добавить это значение к Base Timing.

ADVANCE MULTIPLER (INITIAL)
Исходное значение, на котором будет находиться IAM.

IAM STEP VALUE
Величина, для корректировки исходного IAM. Это стартовое значение, которое сбрасывается когда IAM подсчитан.

FEEDBACK CORRECTION RETARD VALUE
Это величина, которая должна быть уменьшена, чтобы перейти в режим FBCK, если слышна детонация.

НЕКОТОРЫЕ ВАЖНЫЕ ЗНАЧЕНИЕ ХРАНЯЩИЕСЯ В RAM

IAM (IGNITION ADVANCE MULTIPLIER)
Вкратце, это процент TA (Timing Advance) который будет добавлен к Base Timing. Если ваша машина счастлива, это значение ровно 100% и будет использован весь TA.

FBKC (FEEDBACK KNOCK CORRECTION)
Это значение тайминга вычитаемое из total timing основанное на краткосрочном отклике (short term feedback) от сенсора детонации.

FLKC (FINE LEARNING KNOCK CORRECTION)
Количество тайминга вычтенное из total timing основанное на долгосрочной постоянной обратной связи (long-term steady feedback) от сенсора детонации.

Переведено на Нотабеноиде
http://notabenoid.org/book/8516/25672

Переводчики: in1t

Настройки

Готово:

100.00% КП = 1.0