Автомобили уже давно обросли всякой электроникой, так обросли, что просто жуть: в дверях контроллер, в фарах контроллер, в тормозах контроллер, ну и в двигателе, как без него. Обычно, когда речь заходит о блоке управления двигателем (ECU) представляется бензиновый мотор, обвешанный датчиками, исполнительными элементами и жгутами проводов. Блок управления чутко считывает параметры датчиков, корректирует смесь и начало искрообразования. Сложно! Но энтузиасты создают свои блоки управления, пишут альтернативные прошивки чтобы выжать лишнюю «пони», обойти какую-то неисправность или просто для повышения навыков. Причем, как правило, на такой шаг авторов толкают обстоятельства, к примеру недовольство контактной системой зажигания у бензиновых моторов, легкий некомплект электрики и так далее.

Именно о таких обстоятельствах и о дизельном двигателе и пойдет речь.

Итак, постановка задачи:

Дано:
  • Дизельный двигатель с механическим насосом DW8, производства концерна PSA, 2000 г.в. Насос издох от времени.
  • Новый топливный насос, приобретенный по случаю, с электронным управлением опережения впрыска от модификации мотора DW8B (Те самые обстоятельства).
  • Полное отсутствие проводки под электронное управление, самого блока управления.
  • Желание разобраться с нехитрой электроникой насоса, поднять навык, поглубже изучить работу таких насосов.

Требуется: исправный двигатель после «сращения».

Немного теории

Раньше, когда дизельные двигатели были большие, они управлялись рядными насосами высокого давления. Всё очень просто — на каждый цилиндр плунжер, который давит топливо через форсунку. На плунжер давит кулачковый вал, который имеет изменяемую высоту подъема кулачков, так получается управление двигателем.

Потом стали делать насосы посложнее, распределенного типа. Плунжеров там один-два, топливо под давлением уже распределяется по цилиндрам специальным механизмом. Управление посложнее, но всё же механическое — рычаг газа и всё.

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

Мой насос застрял где-то между механическим распределительным и электронным. По сути — распределительный насос роторного типа (производитель Lucas-Delphi), с одним единственным исполнительным элементом: клапаном опережения впрыска.
Когда я только приобретал насос, я не придал значения странному соленоиду в боку насоса, и решил «станет».

Что за опережение впрыска? Как выяснилось позже, необычайно важный параметр в работе двигателя. От него зависит и приемистость, и максимальные обороты, и расход двигателя. Аналог на бензиновых моторах — УОЗ (угол опережения зажигания).

Суть этого самого угла опережения впрыска проста: чтобы сгореть топливу в цилиндре требуется время. Чем выше обороты двигателя, тем меньше времени есть у топлива, и поэтому его надо впрыснуть в цилиндр пораньше, чтобы после прохождения поршня через ВМТ топливо уже горело и отдавало энергию маховику. На низких оборотах наоборот, впрыскивать топливо надо сразу у ВМТ, чтобы оно начало гореть не заранее, и не создавало нагрузку на идущий вверх поршень. На холодном двигателе впуск надо делать раньше, на горячем — позже. Под нагрузкой — раньше (топлива больше), без — позже. Вот такая вот наука в одном параметре.

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

Понимание начало строиться с этой диаграммы:



Ну, за исключением отсутствия абсолютных значений, ничего сложного.

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

Проще всего с последними. Их ровно одна штука, клапан опережения впрыска, два провода. Представляет из себя соленоид, который отпирает топливную магистраль, тем самым понижая давление на кольцо опережения в насосе. Полностью открытый клапан соответствует минимальному опережению, закрытый — максимальному. Регулирование производится при помощи ШИМ на частоте около 50Гц. Степень регулировки высока, этим клапаном можно вытянуть целый зуб на ремне ГРМ, диапазон около 25-30 градусов. Это из плюсов. Из минусов — одному углу соответствуют разные значения заполнения управляющего сигнала в зависимости от температуры топлива. Это автоматически исключает открытую систему регулирования, и значит, пора посмотреть на датчики.

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

Датчики в моем двигателе выполнены индуктивными. Вот картинка, которая примерно соответствует датчику положения коленвала:



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

Однако, на дизельных автомобилях, датчик этот выполнен немного иначе — на картинке датчик взаимодействует с зубцами на маховике, в моем случае на маховике есть два углубления напротив датчика по диаметру. Они дают два импульса на оборот маховика, что означает 4 импульса на один оборот вала топливного насоса. Эту нехитрую мудрость я познал, получив сигнал, в 4 раза превышающий по частоте расчетный. В этом подходе есть плюс: так как импульса 4, можно снимать сигнал с любой форсунки.



Датчик подъема иглы выполнен так же, но в корпусе форсунки. Топливо, под давлением подрывает иглу распылителя, одновременно наводя в катушке форсунки слабый импульс.

Итак, для минимальной работоспособности системы необходимо два датчика. В моем атомобиле был (к счастью) один — датчик положения коленвала. Форсунку с датчиком пришлось приобрести отдельно, благо, на разборке стоит она совсем ничего.

Теперь сигналы надо обработать и ввести в контроллер, очередная трудность. Трудность потому, что готовой схемотехники входных цепей что-то в интернете не видать. В угаре конструирования был собран на коленке простейший формирователь сигнала: дифференциальный усилитель на LM358 и триггер Шмидта. Коэффициент усиления был выбран наобум, и равнялся примерно 50. Какова же была радость, когда с обоих датчиков я получил вполне нормальный сигнал!

Самое время было оценить реальные параметры двигателя. Так же на коленке была собран простейший измеритель угла между двух сигналов с приемлемой точностью в 1 градус. Конструкция — микроконтроллер ATMEGA8A и семисегментный индикатор для наглядности.

Данные получились немного странными. Итак, максимальное опережение согласно моему прибору — 25 градусов, минимальное, при котором двигатель не глохнет — 8. Это не вязалось с графиком из начала статьи, где фигурируют отрицательные величины угла опережения. Пришлось сделать стробоскоп, чтобы проверить, а не брешет ли кто. Выяснилось что не брешет, просто метки на маховике сдвинуты относительно ВМТ примерно на 10 градусов.
Ох, что-то многовато «примерно» для регулировки одного параметра. Сначала график зависимости в попугаях, а потом неизвестная константа. На помощь пришла настройка двигателя «на слух», «на запах» и по реакции на педаль. Радости добавило то, что бывалые дизелисты на форумах дают прямо противоположные советы по настройке. У многих звон поршней и громкая работа двигателя — это запаздывание впрыска, а на деле как раз наоборот. Безумная, дизельная тяга «на низах» — следствие чрезмерного опережения впрыска, на деле — наоборот. Из собственного опыта были вынесены такие умозаключения:

На низких оборотах угол должен быть минимальным, границу можно обнаружить при запуске полностью холодного двигателя. Если глохнет после отключения свечей накала — слишком поздний угол, увеличиваем опережение. В моих попугаях это 8-9 градусов. При такой установке двигатель не глохнет при резком отпускании педали сцепления, тянет на холостых даже на 4-й передаче, ну в общем красота. Такой статический угол не подходит для комфортной работы по одной причине — двигатель невозможно раскрутить выше 1500 оборотов, и при этом он жутчайше греется, выкидывая солярку в выхлопную трубу.

Верхняя граница также обнаружилась экспериментально, угол около 25 градусов позволяет двигателю на высоких оборотах не просто крутиться, а еще и ускорять машину. При этом отсутствует характерный цокот поршней, запах выхлопа имеет здоровый, слегка «камазовый» запах, никакой кислятины и чёрного дыма. Это косвенно означает, что солярка сгорела полностью, при этом не при слишком высоких температурах.

Пришло время собрать всё это воедино, красиво оформить и откатать блок управления. Однако, радость была кратковременной. Сначала я выяснил, что простейший формирователь сигнала с форсунки очень сильно сбоит и даёт пачку импульсов вместо одного при повышении оборотов до 1800-2000 об/мин, совершенно не помогли в борьбе с этим ни защитные диоды, ни экранировка кабелей, ни игра с коэффициентом усиления, ни сборка типовой схемы формирователя из бензинового ECU. Поиск решения данной проблемы периодически всплывает на просторах рунета. Там же и был подсказан правильный ход мыслей — воспользоваться специализированной микросхемой.



Зовется она MAX9926, это целая линейка специализированных ИС для датчиков положения коленвала, датчиков ABS и прочих индуктивных. По отзывам — ну просто панацея, вытягивает полезный сигнал с уровня шумов и при наличии помех. Однако, ни найти её по месту жительства (даже не слышали), ни заказать из Китая (дорого и только крупные партии) я её не смог. Но есть ведь даташит с внутренней структурой, чего бы не повторить?

В результате родилась вот такая схема:



Небольшие пояснения

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

Интересная часть собрана на компараторе U6. По сути, это базовый компаратор-одновибратор с защелкой. Гистерезис вводится резистором R24, а резистор R23 и диод D10 задерживают задний фронт сигнала примерно на 5мс, что позволяет игнорировать все сигналы с частотой повторения выше 200 гц.

Опорный вход компаратора висит под изменяемым потенциалом, благодаря диоду D11 и резисторам R26, R27. Чем выше уровень сигнала на входе компаратора, тем выше порог его срабатывания. Это решает проблему разного уровня полезного сигнала в зависимости от частоты вращения двигателя.

Это заработало! Теперь без помех принимается сигнал и от форсунки, и от датчика коленвала. Самое время регулировать опережение впрыска. Очевидно, что для регулирования просто таки напрашивается ПИД-регулятор. Сложность, как всегда, в его настройке.

Какие-то численные методы для вычисления ПИД-коэффициентов разбиваются о полное отсутствие любых данных по реакции насоса на управление. Значит надо подбирать. Начинают все с пропорционального коэффициента, попробовав значение 1 я уже увидел работу регулятора. Время реакции такого регулятора удручает, заданный угол устанавливается примерно за 3-4 секунды и имеет склонность к колебаниям. Всё бы ничего, но в данном применении можно допустить ошибку регулирования в сторону опережения, но нельзя ни градуса в сторону запаздывания. Особенно болезненно запаздывание угла сказывается на высоких оборотах, машина вроде только ехала 100 км/ч, а вот уже тормозит двигателем как тормозами. Тогда я ввёл прямой пропорциональный коэффициент и обратный, в 4 раза больший. При уходе угла в запаздывание контроллер быстро возвращает его в безопасные величины.
П- и И- коэффициенты подбирались «на глазок» по критерию отсутствия автоколебаний.

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

Датчик педали газа в насосе выполнен в виде переменного резистора на оси рычага насоса, ползунок резистора подключен к АЦП микроконтроллера. Нажатие педали «в пол» изменяет заданный угол на 2 градуса. По ощущениям — самое то, приемистость и набор оборотов двигателем хорошие.

О железе

Так так процессы в данном регуляторе текут медленно, то и особого быстродействия не требуется. С задачей справился AVR-микроконтроллер MEGA8A на частоте всего 1МГц. Он комфортно успевает считать ПИД, обрабатывать прерывания по датчикам, отображать текущий угол на семисегментном индикаторе и выводить отладочную информацию в последовательный порт.

Устройство, сначала собранное на чем попало и висевшее на проводах у мотора, перекочевало в культурный корпус блока управления тахометром, который так кстати освободился. Освободился не просто так, а вместе с герметичным 15-и контактным разъемом, куда и была подведена «коса» мотора, а штатный тахометр теперь получает сигнал с нового формирователя.



В общем, можно и нужно подводить итоги.

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

Навыков было получено бессчетное множество, как по теории топливной аппаратуры, так и по программированию микроконтроллеров.

Планы на будущее

Несмотря на закон жизни «лучшее враг хорошего», блоку управления светят доработки. Во-первых, в алгоритме никак не учитываются несколько параметров, а именно: температура двигателя и количество впрыскиваемого топлива. С первым параметром всё понятно, лишь стоит подключить штатный датчик температуры ОЖ, то со вторым придется сильно менять схему контроллера. Дело в том, что нагрузку на двигатель можно отловить, анализируя отрицательный выброс на сигнале с форсунки. Он соответствует запиранию форсунки, а значит посчитав длину открытого состояния форсунки можно прикинуть как расход топлива, так и нагрузку. Только для этого текущего микроконтроллера уже мало, не хватает входов прерывания.

UPD:


В статье забыл упомянуть важное отличие дизельного двигателя от бензинового. В бензиновом моторе приготовление топливной смеси начинается с воздуха. Отсюда обязательные атрибуты любого ЭБУ для безнина: датчик давления воздуха (относительного или абсолютного), расходомер, датчик температуры. Регулировка двигателя тоже воздухом — дроссель.

На дизеле же смесь всегда обеднена, ни о каком стехиометрическом составе смеси нет и речи. В любом режиме воздуха хватает, это заложено самой конструкцией дизельного двигателя. Регулировка исключительно количеством топлива, и учитывать воздух при работе ЭБУ не нужно. Ситуация поменялась у Common Rail дизелей, там воздух считается так же как и на бензинках, хотя ошибки по количеству воздуха дизелям не критичны.

Ресурсы:

1. Жаркие дебаты на форуме по поводу угла опережения с крупицами информации
2. Аналогичные заботы владельцев бензиновых моторов, подсмотрена схемотехника
3. Программирование ПИД-регулятора
4. Графики с живой форсунки
5. Исходники на GitHub
6. Схема контроллера целиком

Комментарии (40)


  1. Noliki
    25.05.2015 10:25
    +22

    Жесть.


  1. ToSHiC
    25.05.2015 10:40
    +1

    Судя по датам на форуме, вы 3 года угрохали в эту затею. Похвальная уверенность в результате!


    1. VTH Автор
      25.05.2015 10:44
      +6

      Это не мои сообщения, что вы. Я потратил около двух месяцев на всю затею от установки нового насоса до «финиша».


  1. Dark_Purple
    25.05.2015 11:05
    +12

    Но есть ведь даташит с внутренней структурой, чего бы не повторить?

    Гвозди бы делать из этих людей… ©


    1. abrakada
      25.05.2015 11:57

      Статья очень интересная, читал с удовольствием. По поводу микросхемы — вот она на диджикее, в Минск оттуда возят без проблем за месяц. А как у вас там с поставками?


      1. VTH Автор
        25.05.2015 12:40
        +2

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


      1. Muzzy0
        25.05.2015 13:03

        И на mouser есть :)


      1. revector
        27.05.2015 12:39

        А вот на Али тоже есть www.aliexpress.com/popular/max9926.html


    1. avas
      25.05.2015 21:03

      напомнило наши лабы в университете по «узлам и устройствам ЭВМ»:
      собираешь бороду из проводочков — включаешь — не работает :(
      подходит добрый лаборант и говорит «аааа, тут этот счетчик перегорел — синтезируйте на логике!»


  1. Muzzy0
    25.05.2015 11:57
    +2

    Если у вас были под руками донорские контроллеры, что мешало выдрать MAX9926 из них?

    Лично я рекомендую вам сделать, протестировать и положить в бардачок второй экземпляр. А то случись чего и встанете в чистом поле с недвижимостью.


    1. VTH Автор
      25.05.2015 12:44

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


      1. Muzzy0
        25.05.2015 13:01

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


  1. Flexz
    25.05.2015 12:00

    Коллега просит написать, что у вас на схеме диод D11 включен обратной полярностью. Конденсатор С11 зарядится до напряжения питания и компаратор работать не будет.


    1. VTH Автор
      25.05.2015 12:45

      Спасибо, на схеме пропал резистор, параллельный C11, сейчас поправлю.


  1. Alex013
    25.05.2015 12:12
    +2

    Респект и уважуха :)!!!
    Вопрос не в плане критики, а ради понимания: А почему бы не использовать «мозги» от того же двигателя, от которого «новый» насос?


    1. VTH Автор
      25.05.2015 12:52
      +3

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


  1. VladSavitsky
    25.05.2015 15:57
    +1

    Эту статью бы на drive2.ru — там бы многие обрадовались.


  1. makecode
    25.05.2015 16:18
    +2

    Просто ради интереса, а что за машина?


    1. VTH Автор
      25.05.2015 16:31

      Citroen Berlingo 2000г. Очень рабочая лошадка.


  1. sluge
    25.05.2015 17:09

    При таких модификациях могут быть проблемы с ТО или ГИБДД?


    1. WorksIsGone
      25.05.2015 17:38

      Если про них узнают.


    1. vvzvlad
      25.05.2015 18:23

      Перед прохождением ТО снять.


    1. Valar386
      25.05.2015 20:12

      Каким образом гаишник поймёт, что что-то менялось, и что оно еще и не родное? Никто не станет заморачиваться с запросом на завод изготовитель.


      1. encyclopedist
        25.05.2015 21:47
        +1

        С ТО могут быть сложности с уровнем выбросов. Так что перед ТО надо проверить датчиком CO и NO.


        1. Valar386
          25.05.2015 22:09

          Согласен, но это в любом случае надо делать на не новой машине.


    1. serafims
      25.05.2015 21:48

      Вряд ли, такая фигня не регулируется техрегламентом на транспортные средства (где есть требования к световым приборам, тормозному пути и т.п.), а на экологичность, скорее всего, даже лучше влияет.
      А ГИБДД вообще не должно быть дела до движка, кроме его номера.


      1. Muzzy0
        26.05.2015 00:22
        +1

        А ГИБДД вообще не должно быть дела до движка, кроме его номера.

        Ещё модель, рабочий объём и мощность :)


      1. WorksIsGone
        26.05.2015 08:12

        У ГИБДД есть запрет на любое переоборудование автомобиля
        autorambler.ru/journal/events/24.02.2015/560990724

        Это свежая волна, но вообще, еще в советские времена было запрещено внесение изменений в конструкцию автомобиля.
        Можно было узаконить изменения через получение бумажек во всяких НАМИ,
        предоставив расчёты и пройдя «защиту». Сейчас вот отменили этот механизм.

        oppozit.ru/article1619.html — вот примерно так было с мотоциклами.


        1. Muzzy0
          26.05.2015 08:36
          +1

          Всё упирается в то, как это вычислить при техосмотре. Так глубоко в потроха ни при ТО, ни при регистрации не полезет никто.


          1. WorksIsGone
            26.05.2015 12:46

            Если нормально сделано, никто и не увидит.
            Если прикручено проволочкой, да синей изолентой примотано, так что в глаза бросается — могут и прицепиться


            1. Muzzy0
              26.05.2015 14:53

              На половине машин сигнализация именно так и установлена. Однако, как-то же ТО проходят


  1. VTH Автор
    25.05.2015 19:27
    +1

    ТО у нас в стране нет, ГАИ не настолько придирчивы, чтобы найти подозрительной коробочку с проводами — сделано всё максимально похоже на заводскую проводку.

    Другое дело следующий владелец машины, не столь подкованный в электронике.


    1. Muzzy0
      26.05.2015 00:23

      Вот для следующего это будет очень любопытный сюрприз :)

      Его, по-любому, надо снабдить резервным блоком и кратким напутствием инструктажем.


    1. mark_ablov
      26.05.2015 13:42

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


  1. lightman
    26.05.2015 15:38
    +3

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


    1. Muzzy0
      26.05.2015 17:43

      Вы недалеки от истины. Я промышленной автоматикой занимаюсь, так процесс пусконаладки (оно же — запуск, и, в общем, дебаг) примерно в таком духе и проходит :)


  1. andrey239
    27.05.2015 02:21
    +1

    Очень круто, и очень познавательная статья.

    Я как раз что-то похожее с бензиновыми двигателями делаю.


  1. mrsom
    10.06.2015 11:19

    Отличная работа!
    Могу лишь отметить, что обедненная смесь в дизеле присутствует далеко не всегда, а только в режимах частичных нагрузок.
    Частичная нагрузка это когда текущие обороты двигателя больше или равны заданным. Задаете вы их положением педали газа.
    Так вот, если обороты меньше заданных — наступает даже не стехиометрия а самый настоящий «мощностной» состав(богаче стехиометрии). Собственно для точного регулирования этого состава и ставится ДМРВ на коммон рэйл.


  1. mrsom
    10.06.2015 11:19

    Отличная работа!
    Могу лишь отметить, что обедненная смесь в дизеле присутствует далеко не всегда, а только в режимах частичных нагрузок.
    Частичная нагрузка это когда текущие обороты двигателя больше или равны заданным. Задаете вы их положением педали газа.
    Так вот, если обороты меньше заданных — наступает даже не стехиометрия а самый настоящий «мощностной» состав(богаче стехиометрии). Собственно для точного регулирования этого состава и ставится ДМРВ на коммон рэйл.


  1. mrsom
    10.06.2015 11:31

    Не спрашивайте ничего у ремонтников… Они никогда не вдаются в подробности.
    Читайте первоисточники! Я рекомендую книгу john heywood internal combustion engine fundamentals. В гугле найдется и pdf. Вот там я всегда находил любые ответы на все вопросы по двигателям.