Найти тему
Heavy Fuel Tuning

Как работают современные ЭБУ двигателя?

Оглавление

Всем привет! Поскольку в моих статьях мы все ближе подбираемся к самой сути чип-тюнинга, пришло время поговорить об электронных блоках управления двигателем. Сразу скажу, что речь пойдет о дизельных блоках, но не спешите закрывать статью - логика работы у бензина максимально близкая.

Рассказывать о блоках я буду на примере EDC17 производства Bosch - именно эти блоки ставились на машины, выпущенные в последние лет 10 в Европе, штатах и части Азии, пока их не сменило следующее поколение - MD1, которое только набирает популярность, но все принципы работы и расчетов остаются теми же.

Электронный блок управления двигателем Bosch EDC17C74
Электронный блок управления двигателем Bosch EDC17C74

Электроника блока

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

Чтобы вся электроника работала, ее нужно запитать электричеством. Для этого в блоке организованы схемы питания и процессора и всех вспомогательных систем, в том числе датчиков. Стандартное напряжение в машине 12В, но на самом деле оно может очень сильно различаться. Это могут быть 10В на проседающем аккумуляторе, который пытается крутить стартер, 12.8В на полностью исправном аккумуляторе, 14.4В на заведенной машине при исправном генераторе, а может быть и выше, если с генератором что-то не то. При этом процессор питается напряжением 1-1.5В, датчики работают от 3 или 5 вольт, управляющие сигналы могут быть совершенно разными, но конечно не превышать 12В. Для обеспечения стабильного питания без помех, без проблем из-за просадки или превышения напряжения в бортовой сети, в каждом блоке питания есть свой преобразователь напряжения, который обеспечивает всю внутреннюю электронику нужным напряжением и током.

Как только появляется напряжение, можно запустить процессор. В блоках управления стоят мощные для своих задач 32 битные процессоры, которые приспособлены для работы в жестких условиях от -40 до +120 градусов, умеют читать данные по множеству каналов, передавать данные по не меньшему множеству каналов, а еще дополнительно имеют специальные автомобильные плюшки, например встроенные выходы для работы с CAN шиной. Кому интересно, почитайте спецификации процессора Infenion Tricore TC1793 - именно такой стоит в последних блоках EDC17. Штука реально мощная.

Сердце блока - процессор Infenion Tricore и обвязка вокруг него
Сердце блока - процессор Infenion Tricore и обвязка вокруг него

Процессор без программы, которую он должен выполнять - это ничто. Для этого в процессоре есть 4МБ (в более ранних меньше, в более поздних больше) Flash памяти, которая содержит программу управления и необходимые для работы этой программы настройки. Именно с этим участком памяти работают тюнеры при создании собственных программ управления или при корректировке стандартных карт управления. Карты - это наборы значений, на базе которых работает программа управления - считывает из них данные. А картами они зовутся потому что похожи на карты поверхности или высот. Есть ось или оси и значения, которые программа может взять из этой карты.

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

Когда процессор запущен и у него есть понятная программа, которую он выполняет, для ее работы нужны данные о том, что происходит с двигателем. Для этого используются входы процессора - он может обрабатывать значения напряжения, которое подводится к определенным “ножкам” и перевести его в цифровое значение, которое будет понятно программе. Чтобы это напряжение не сожгло процессор, было очищено от шумов и прочих возможных воздействий, между ножкой процессора и датчиками должна присутствовать правильная электронная обвязка, в зависимости от назначения этого канала - наборы правильно соединенных резисторов, конденсаторов, индуктивностей и других элементов. В общем вся необходимая для правильной работы электроника. Весь этот набор зовется каналом и он позволяет передать данные от разъема блока управления к процессору безопасно для него.

Пример обвязки для выхода процессора
Пример обвязки для выхода процессора

Входные каналы работают для считывания данных с датчиков. Есть еще выходные каналы, они работают для управления агрегатами двигателя. Например чтобы включить топливный насос или открыть форсунки. В выходных каналах, в зависимости от их назначения присутствуют еще усилители сигнала. Чтобы процессор, например, мог напряжением в 1.5В включать вентилятор двигателя, которому нужно не только 12В, но и еще большой ток. Выходных каналов, как и входных много, суммарно на двигатель процессору приходится обрабатывать данные по десяткам каналов. Под каждый выделены отдельные пины в разъеме блока управления, помимо отдельных пинов под питание, шины данных и прочие вещи.

Разъем ЭБУ EDC17. Каждая ножка - входящий, выходящий канал или питание. Посчитайте, сколько их?
Разъем ЭБУ EDC17. Каждая ножка - входящий, выходящий канал или питание. Посчитайте, сколько их?

Вся совокупность из процессора, схем питания, электронной обвязки входных и выходных каналов плюс дополнительных электронных схем и называется блоком управления двигателем. Иногда его называют “Мозги”, потому что он так же сложно устроен и обдумывает все происходящее с машиной. Как и у человека, у машины мозг иногда бывает и в заднице других агрегатах. Чем современнее машина, тем их больше - в двигателе, коробке, приборной панели, музыке и в каждом агрегате, который управляется электроникой. Даже в стеклоподъемниках свои отдельные мозги. Но мы ушли от темы.

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

Задачи программы управления

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

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

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

- Чек нужен? - У меня свой
- Чек нужен? - У меня свой

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

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

Все подобные данные от адаптаций наравне с данными из карт и от других агрегатов программа постоянно сравнивает с виртуальной моделью работы двигателя. Виртуальная модель - это сложная физическая модель двигателя, которая полностью эмулирует его работу. Программа сначала смотрит, как двигатель работает “в уме”, а потом сравнивает ожидаемые данные от его виртуальной работы с данными, которые получает с датчиков. Система диагностики использует эти данные, чтобы проверять корректность работы датчиков. А если какие-то датчики перестали работать, программа может заменить их значения виртуальными, чтобы двигатель мог продолжить свою работу, если эти данные, конечно, не критичные для работы.

Базовый алгоритм расчета значений при работе двигателя

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

Педаль газа. Это первый агрегат, с помощью которого водитель управляет машиной. Второй, если что, это руль и потом тормоз. К педали газа прикреплен датчик ее положения, который в зависимости от нажатия меняет напряжение, которое выходит от этого датчика. Раньше это были потенциометры, которые могли стереться, сейчас, насколько мне известно, чаще используются датчики Холла. В любом случае положение педали газа от 0 до 100% хода педали определяется без проблем и в виде напряжения передается на один из входов ЭБУ. Блок сверяет это напряжение с картой линеаризации педали и определяет, на сколько она нажата, уже в процентах. В этой карте есть две точки - напряжение при нулевом нажатии и напряжение при 100% нажатии. И рядом еще сотня карт, которые отвечают за сглаживание сигнала, очистку от шумов и все остальные искуственно созданные “затупы”. Например, в режиме Эко машина 100% нажатие педали может воспринимать как 70% и поэтому ехать спокойнее, раньше включать следующую передачу и т.д. - для этого режима используется другая карта линеаризации.

Карта запроса крутящего момента на маховике в зависимости от оборотов и положения педали
Карта запроса крутящего момента на маховике в зависимости от оборотов и положения педали

Запрос момента на маховике. Современные двигатели используют так называемую “моментную модель” управления. Означает это что водитель с помощью педали газа создает запрос по крутящему моменту, который должен дойти до маховика, а блок уже смотрит на все остальные моменты, которые возникают в двигателе, обычно моменты торможения, например от генератора или компрессора кондиционера, складывает их и дальше работает уже с “внутренним моментом” - это положительный крутящий момент, который должен создавать двигатель, чтобы компенсировать все внутренние потери момента и обеспечить запрос водителя. На картинке видно штатную карту запроса момента на маховике двигателя. Обратите внимание, что зависимость момента от нажатия педали не линейная и что запрос падает по мере роста оборотов при одном и том же нажатии газа. Зачем используют моментную модель? Чтобы вы не чувствовали торможение, когда у вас внезапно включится компрессор кондиционера - двигатель сам “добавит газ” у себя внутри, без вашего участия, чтобы на маховике крутящий момент остался без изменений.

Цикловая подача для обеспечения желаемого крутящего момента на заданных оборотах
Цикловая подача для обеспечения желаемого крутящего момента на заданных оборотах

После того как двигатель понял, какой момент просит водитель и прибавил к нему все сопутствующие потери, он может начать рассчитывать топливо и воздух, которые нужны для обеспечения этого крутящего момента. Помним, что дизель управляется топливом, бензин воздухом, поэтому мы дальше переходим к топливу и вводим такое понятие как цикловая подача топлива. Это масса топлива, которую двигатель будет подавать в цилиндры для начала каждого рабочего такта в цилиндре. Именно карты цикловой подачи являются главными в моментной модели двигателя - двигатель будет считать, что подавая указанное количество топлива на указанных оборотах, он будет создавать нужный крутящий момент в двигателе. Если в этой карте указать, например, что для получения на оборотах X момента Y надо подать не Z, а 0.5*Z топлива, то подавая эти 0.5Z топлива машина будет считать что внутри у нее сгорает достаточно для обеспечения этого момента, что не будет совпадать с реальностью. В программе двигателя есть механизм калибровки этих значений по весу машины и ускорению, которое обеспечивает указанный момент, но в два раза откалиброваться она не сможет. В общем момент переводим в массу топлива, которая должна сгореть. Базовая математика здесь кстати простая. 1мг цикловой подачи топлива обеспечивает 6 Нм крутящего момента в 4х цилиндровом двигателе, 9 Нм в V6, 12 в V8 и так далее. Напишите в комментарии, сколько момента будет выдавать дизель V10 с 1мг цикловой подачи?

Идем дальше. Программа знает, сколько топлива надо сжечь, дальше надо определить, сколько воздуха нужно загнать в цилиндры. Для этого существуют карты наполнения цилиндра. Указанное в этих картах наполнение будет запросом к воздушной подсистеме - Программа рассчитает, какое давление нужно попросить у турбины, чтобы получить желаемое давление, проверит что это давление не выходит за выставленные ограничения. Сравнит температуру воздуха до и после интеркулера, рассчитает плотность воздуха после интеркулера, расход воздуха и увидит, сколько воздуха получилось загнать в цилиндры. Если потребуется - внесет корректировки. Например попросит турбину больше дунуть или интеркулер сильнее включить насос/вентилятор, чтобы воздух был более холодным. Чтобы больше дунуть турбиной - посчитает, насколько надо подвинуть геометрию турбины и сколько вакуума надо для этого подать на ее актуатор. Это огромная цепочка действий, которая еще и раскладывается на разные режимы работы двигателя, имеет тысячи корректировок и перепроверок через обратную связь по качеству сгорания.

Диаграмма зависимости давления внутри цилиндра от поворота коленвала в дизельном двигателе
Диаграмма зависимости давления внутри цилиндра от поворота коленвала в дизельном двигателе

Дизелю для работы нужен только воздух и топливо, поэтому в нашей упрощенной схеме остается только подать это топливо и посмотреть, как оно будет гореть и что оставит после себя. Финальным штрихом остается расчет времени и момента подачи топлива. Для каждых оборотов и желаемого крутящего момента существуют карты основного поджига топлива - это аналог карт опережения зажигания для бензина. В дизеле важно, чтобы основной рост давления топлива случился уже после прохождения поршнем верхней мертвой точки. От угла поджига программа определяет, когда нужно завершить подачу топлива в цилиндр. Чтобы определить, на какое время нужно открыть форсунку, чтобы нужное количество топлива прошло через нее, программа сначала пересчитывает массу топлива в объем, дальше смотрит на производительность форсунки при разной подаче топлива и давлении топлива и выбирает, на какое время ей нужно открыться, чтобы обеспечить желаемый объем топлива. Когда известно время открытия, программа может уже расчитать и начало открытия и перевести его в угол опережения впрыска.

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

Надеюсь что базовые вещи получились понятными, а конкретную работу с этими параметрами мы рассмотрим уже в следующих статьях. Подписывайтесь, чтобы не пропустить их!