Статья с Хабрахабра. В заметке пойдет речь о работе «мозгов», управляющих двигателем вашего автомобиля или мотоцикла. Попытаюсь на пальцах и в общем объяснить что же и как происходит.
Чем занимаются те самые «мозги» и для чего они нужны? Электроника — альтернатива другим системам, выполняющим те же функции. Дозированием топлива занимался карбюратор, зажиганием управлял механический или вакуумный корректор угла опережения зажигания. В общем не электроникой единой возможно реализовать все это и достаточно продолжительное время именно так и было. На автомобилях, мотоциклах, бензопилах, бензогенераторах и во многих многих других местах работали и продолжают работать те самые системы, которые призван заменить инжектор. Зачем же понадобилось что-то менять? Зачем сносить существующие проверенные и весьма надежные системы? Все просто - гонка за экономичностью, экологичностью и мощностью. Точность работы описанных выше систем недостаточна для обеспечения желаемого уровня экологичности и мощности, а сами по себе электронные системы управления двигателем начали появляться достаточно давно. Я опущу принцип работы поршневых ДВС, многие знакомы с тем как работает двигатель, а те кто не знакомы - не слишком пострадают. В разрезе работы системы питания и системы зажигания двигатель это просто преобразователь воздушно-топливной смеси в механическую энергию. Можно рассматривать его как черный ящик, с некоторыми особенностями. Итак, у нас есть топливо (бензин, этанол, пропан или метан), есть воздух и желание получить из этого механическую энергию. Сложность состоит в том, что для получения интересующих нас характеристик надо смешивать топливо и воздух в точно определенных пропорциях и поджигать их в достаточно точно определенный момент времени. Более того - при недостаточной точности мы получим ухудшение характеристик. Вся суть работы "мозгов" сводится к дозированию топлива и поджигом смеси в цилиндрах двигателя. Это основные функции. Кроме них есть еще и дополнительные - управление турбиной, управление трансмиссией. Подсистема, занимающаяся дозированием топлива называется инжектор, поджигом топлива занимается зажигание. Воздух в двигатель поступает "естественным" порядком. Двигатель сам всасывает воздух, его количество только может ограничиваться, для снижения мощности двигателя. Нам не нужна максимальная мощность все время, бОльшую часть времени мощность как раз ограничивается. В случае с турбиной воздух попадает в двигатель принудительно, но это не меняет сути. Воздуха столько сколько есть и мы управляем его количеством при помощи педали. Сколько топлива нам надо подать в двигатель и как его дозировать? Есть так называемое стехиометрическое отношение, показывающее, что для полного сжигания килограмма топлива нам нужно вполне определенное количество воздуха. Для бензина это соотношение равно 14,7:1. также его называют AFR (Air Fuel Rate по английски) Это не аксиома, это некий оптимум. Смесь может быть "беднее", в ней может быть меньше топлива. Такая смесь хуже горит, двигатель сильнее греется, но сгорает все полностью. Это значения в большую сторону - AFR 15 и более. Может быть и "богаче", когда топлива больше - AFR 14 или меньше. При таком соотношении смесь сгорает не полностью, но мощность двигателя максимальна. И в ту и в другую сторону есть ограничения - если слишком увлечься, работать двигатель не будет. Нельзя просто налить 20 частей топлива и ожидать пропорционального прироста мощности. Итак, чтобы определить сколько же топлива нам надо подать в двигатель нам надо знать сколько воздуха в него поступает. Дальше все просто - из количества воздуха по соотношению определяем количество бензина и дело сделано! Погодите-ка, а как же нам определить сколько воздуха поступает в двигатель? Для этого есть несколько путей. Обычно используют один из следующих датчиков: ДМРВ или MAF - датчик массового расхода воздуха. Датчик этот измеряет количество проходящего через него воздуха. Как подсказывает википедия - "Датчик состоит из двух платиновых нитей, нагреваемых электрическим током. Через одну нить, охлаждая её, проходит воздух, вторая является контрольной. По изменению тока проходящего через охлаждаемую воздушным потоком платиновую нить вычисляется количество воздуха, поступающего в двигатель.". Датчики такого типа зачастую устанавливаются в гражданские автомобили. В общем то все достаточно просто. Похоже, это именно то, что нужно! Примерно так и есть. Другой тип датчиков - ДАД или MAP - датчик абсолютного давления. Этот датчик подключен к впускному коллектору и измеряет разряжение (или же избыточное давление, в случае с наддувом) в коллекторе. На основании показаний этого датчика и датчиков температуры, частоты вращения коленвала тоже можно вычислить объем поступающего воздуха, что нам и требуется. Для корректировки его показаний надо еще знать давление окружающего воздуха. Для измерения атмосферного давления либо ставят еще один такой же датчик, который непрерывно его измеряет, либо просто до запуска двигателя измеряют давление. Во втором случае может выйти неприятность, если вы с берега моря рванули прямиком на Эверест. MAP часто ставят на спортивные автомобили. Устанавливается один из этих датчиков, наличие одного из них - обязательно. Ну что же, сколько воздуха поступает в двигатель мы примерно можем вычислить.
Другой обязательный датчик - ДПКВ или датчик положения коленвала. Этот датчик позволяет мозгам точно знать, в каком положении находится коленвал. Зачем нам это нужно? Мало знать сколько топлива надо подать в двигатель, надо подавать его в определенный момент времени. Да и зажигать смесь в цилиндрах тоже надо строго вовремя. Так что без этого датчика - никак. Есть несколько типов таких датчиков, но большинство из них - либо индукционные, либо датчики Холла, либо подобные им. В общем - бесконтактные датчики, подобные тем, которые трудятся, например, в двигателе вашего винчестера. Или в кулерах. Следующий датчик, который вместе с ДПКВ дает еще больше информации о том, что же происходит в двигателе в данный конкретный момент - ДПРВ - датчик положения распредвала. Также его называют датчиком фаз. При помощи этого датчика можно понять в каком из цилиндров в данный момент такт впуска, куда же нам надо подавать топливо, в каком цилиндре у нас такт сжатия и время поджигать смесь. По принципу работы он подобен ДПКВ, но зачастую несколько проще. В общем то тоже самое, но на распредвале. Этого набора датчиков нам должно хватить для запуска двигателя. Худо бедно, но этого достаточно, чтобы примерно понять сколько надо подавать топлива, когда это делать и когда поджигать полученный коктейль. Так давайте же тогда подавать и поджигать! Исполнительные механизмы Топливо дозируется форсунками или другими словами "инжекторами". Да да, именно по названию этого узла все это безобразие нами так и называется. Форсунка из себя ничего особо интересного не представляет. Просто электромеханический клапан. Два провода и трубопровод с топливом под давлением. Подали напряжение на выводы - форсунка открылась, прекратили пропускание тока - форсунка закрылась. Для простоты давайте сначала примем, что форсунка открывается и закрывается моментально. Тогда для оценки объема проходящего через нее топлива нам достаточно знать ее статическую производительность. Это просто объем топлива, который пройдет через форсунку за минуту. Открыли форсунку, измерили объем бензина, который через нее за минуту вытек - получили основной параметр. Теперь нам для точного дозирования надо просто открывать и закрывать форсунку на определенное время. Получается что дозирование производится "выдержкой", если говорить терминами фотографов. Чем длиннее время на которое мы открываем форсунку, тем больше топлива мы нальем в двигатель. А поджиг смеси осуществляет все та же бессменная свеча зажигания, которая верой и правдой служила для этой цели. И катушка зажигания тоже на месте. Вот только управляется она уже "мозгами". Зажигание не изменилось, но для его работы важен ДПКВ и ДПРВ, так что без этих датчиков дела не будет. В общем то это, можно считать, и есть в общих чертах как работает инжектор. Смотрим на показания датчиков, отмеряем нужное количество топлива и открываем форсунку на вычисленное время. И так каждый такт. Т.е. в зависимости от частоты - 100 раз в секунду на частоте в 6000об/мин коленвала. Часто? Да не так чтобы и очень.
Идем дальше? В реальных двигателях все несколько сложнее. Точно вычислить сколько же воздуха попадает в двигатель не так просто. Для корректировки значений нужны датчики температуры охлаждающей жидкости - просто термодатчик, аналогичный тому, что показывает температуру на приборной панели. И датчик температуры поступающего воздуха. В целом незначительно отличающийся от первого, а функционально и вовсе его брат близнец - тоже просто меряет температуру, но уже не двигателя, а воздуха, поступающего в двигатель. Зачем нам что-то корректировать? Дело в том, что пока двигатель холодный, пока он не нагреется до определенной температуры - топливо испаряется не так хорошо, а горят именно пары. Соответственно нам нужно топлива подавать больше, чтобы двигатель работал. Значит берем наше значение для оптимального соотношения, меряем двигателю температуру и корректируем это наше значение. Также нужно откорректировать момент зажигания смеси в цилиндрах - по тем же причинам. И тут тоже корректируем. Другой не совсем приятный момент - форсунка, которую мы приняли идеальной - на самом деле таковой не является. Во первых нужно время, чтобы она открылась, а потом закрылась. Соответственно в этом время она тоже подает топливо, но в меньшем количестве. На это тоже делается поправка. Само время открытия и закрытия зависит от напряжения бортовой сети. Одно дело когда генератор шпарит на всю и в сети 14В, а другое дело, когда генератор умер, а аккумулятор разряжен до неприличных 10В. Время открытия форсунки меняется и его надо корректировать. Мало умершего генератора, ехать то надо и двигатель не должен перестать работать в таких условиях. Мало нам было исполнительных механизмов, для работы на холостом ходу, когда педаль мы совсем не трогаем - двигатель не должен глохнуть, его работу надо поддерживать. Для этого есть специальное исполнительное устройство - РХХ - регулятор холостого хода. Это такой шаговый двигатель (реже просто электромагнит), который через специальный канал дает двигателю "вздохнуть" мимо перекрывающей воздух дроссельной заслонки. Умный мозг не дает двигателю зачахнуть и приоткрывает этот клапан, когда обороты снижаются. Но и разойтись не дает - прикрывает его, когда обороты возрастают уж слишком сильно. Хорошо бы нам также знать на сколько сильно водитель давит на педаль акселератора. Для этих целей смотрят не на положение педали, а на положение заслонки, которой эта педаль управляет. Датчик так и называется - ДПДЗ - датчик положения дроссельной заслонки. Технически это просто потенциометр, который измеряет на какой угол повернута ось дроссельной заслонки. Это зачем это нам надо знать, как сильно водитель давит в пол, спросите вы? Все просто, нам надо знать когда включать режим холостого хода (помним про РХХ), когда водитель жаждет острых ощущений и энергично давит на педаль - не время экономить, льем от души! Экологические нормы достаточно строго контролируют что же "выдыхает" (пускай уж выдыхает) наш двигатель. Так что при всем желании лить "на глазок" - нельзя. нужно контролировать состав выхлопных газов. Как это сделать? Для этой цели есть так называемый лямбда зонд или датчик кислорода - датчик, показывающий сгорела ли смесь целиком, есть ли в выхлопных газах топливо либо же свободный кислород. По показаниям этого датчика инжектор может корректировать свое поведение, либо увеличивая либо уменьшая количество подаваемого топлива. Нужно это достаточно часто - бензин везде разный и даже просто хранясь в канистре или баке - стареет. А уж о заправках наших можно легенды слагать. Соответственно и режимы его горения совсем не постоянны. Ко всему прочему и производительность форсунок может "плавать". Ведь как вы поняли - расчет ведется исходя из их постоянной производительности, а форсунка со временем может забиться, производительность ее может снизиться. А нормы строгие, а бензин дорогой, да и ехать же надо. Внимательный читатель заметил, что одного этого датчика достаточно для обеспечения обратной связи. Смотрим на состав выхлопных газов, если сгорело не все - льем меньше. Если сгорело дочиста - льем больше. Лямбда зонды бывают двух видов - узкополосные и широкополосные. Отличаются они точностью. Первые только показывают богатая или бедная у нас смесь, вторые показывают на сколько она богатая или бедная. Даже точно указывают тот самый AFR упоминаемый в начале статьи. Ну и цена, конечно. Первые стоят 25$, вторые - 200$. С лямбдами тоже не все просто - они достаточно капризны, требуют определенной температуры для работы, а это не всегда возможно, в некоторых типах зондов рабочий элемент специально подогревают от бортовой сети. Да, лямбда может быть не одна, но это уже тонкости. Еще один сенсор, применяемый для анализа происходящего в двигателе - датчик детонации. Детонация это процесс сгорания топлива, который протекает взрывообразно. В нормальном режиме топливо просто сгорает, при детонации топливо взрывается. Это вредно для двигателя - все равно что бить по поршню молотком. Никто не любит когда не нему бьют молотком - поршень не исключение. Явление это крайне нежелательное и для определения того, что смесь детонирует и применяют такой датчик. Он по принципу работы похож на микрофон, который "слушает" двигатель (датчик закреплен на блоке цилиндров) и по услышанному пытается отфильтровать шум работы двигателя и понять где же детонация, а где нормальная работа. Все не просто и здесь. Для облегчения работы этого датчика ставят еще датчик неровной дороги, который покажет, что это наши дороги так шумят, а не двигатель. Востребованность этого датчика возрастает на турбированых двигателях. В итоге сами по себе мозги работают примерно следующим образом: есть так называемая топливная карта - таблица, в которой записано какого состава должна быть смесь. У таблицы три измерения - частота вращения коленвала двигателя, нагрузка на двигатель и собственно AFR. Просто берем из таблицы значение, положенное туда опытным товарищем. Корректируем это значение в соответствии с показаниями датчиков температур, лямбда зонда, датчика детонации, изменением положения дроссельной заслонки и в соответствии со всеми этими поправками (часть из них тоже в табличках) вычисляем необходимое количество топлива. Пересчитываем объем топлива во время открытия форсунки в соответствии с ее производительностью, корректируем время в соответствии с напряжением бортовой сети и в момент впуска - открываем форсунку на вычисленное время. Как видите - ничего сложного и заумного здесь нет. Просто таблицы, может быть местами ПИД регулятор, коэффициенты влияния тех или иных факторов и в итоге просто время открытия форсунки. С зажиганием тоже самое, только там карта углов, аналогичная топливной карте (тоже таблица) и тоже корректировки в соответствии с показаниями датчиков. В штатном режиме все работает, но что делать, если один из датчиков вышел из строя? И как это понять? Если датчик температуры, например, показывает что двигатель нагрет до 200 градусов, или что смесь детонирует несмотря на все корректировки? В этом и заключается продуманность мозгов. Вычислить, что датчик врет, не принимать во внимание его показания, зажечь "check engine" на панели и продолжить работу. Благодаря такому поведению двигатель сохранит работоспособность при выходе из строя некоторых датчиков (не всех, как вы понимаете) и позволит доехать до СТО. Да, многие из вас заметят, что инжектор по сути достаточно простое устройство. И схематически там нет ничего военного - входящие значения считываются по АЦП, выходящие так и вовсе чисто бинарные. Ну выходные транзисторы, ну достаточно жесткие условия работы. Но это не космос далеко. Касательно работы прошивки - тоже вроде как все не так и сложно. На мой взгляд проще всяких алгоритмов распознавания изображений и всякое такое. В процессе настройки саму прошивку никто не трогает обычно. В том смысле, что открывать исходники, корректировать алгоритмы, оптимизировать что-то - такого нет. Просто софт который позволяет изменять те самые топливные карты и другие коэффициенты. А прошивками занимаются уже инженеры на заводах. Или простые смертные, которым это интересно. Да-да, не каждый готов платить за "мозги" космические деньги, а кому-то может быть просто хочется больше контроля над происходящим. Все это привело к тому, что есть несколько проектов вполне доступных "мозгов". Есть megasquirt - для этой аппаратной базы в последствии была написана и поддерживается кастомная прошивка с расширенным функционалом - клац. На последнем сайте есть даже схемы этих "мозгов", может быть кому-то из электронщиков будет интересно. А программистам может быть интересно глянуть на код. Если не ошибаюсь, то он есть здесь. Есть еще VEMS - который сначала назывался megasquirtAVR, но теперь сам по себе. Видел еще вот таких ребят - там у них какой-то свой проект FreeEMS. На мой взгляд все это показывает, что все не так уж сложно и местами даже очень даже доступно. Надеюсь получилось достаточно интересно и в меру понятно. Об опечатках прошу писать в личку. Если где ошибся - поправьте.
|