После написания 1-й части этого опуса прошло почти полгода, двигатель который использовался в прошлых тестах успешно эволюционировал и теперь опыты проводятся над 16в мотором объемом 1.7л.
Представление о связи циклового наполнения воздухом с температурой охлаждающей жидкости и воздуха до сих пор не вписывалось ни в одну модель реализованную в различных ЭБУ, проведенные ранее опыты и накопленная в процессе настройки различных автомобилей информация не могла быть систематизирована на основе имеющихся знаний. Первоначально проблему пытались искать в месте установки датчика. Однако практический анализ заводских двигателей показывал, что этот путь ошибочен. Так же для поиска решения постоянно производился анализ алгоритмов работы различных систем управления с VE based моделями (использующими MAP сенсор для оценки расхода воздуха двигателем) в основном реализуемых ими алгоритмов расчета расхода воздуха. Это была продукция таких производителей как: Motec, GEMS, Абит, Mikas (dad), Megasquirt и VEMS. Однако какие либо изящные решения в них на прочь отсутствовали. Модели используемые этими ЭБУ, либо уже были отвергнуты как неадекватные, либо были реализованы в системе управления в настоящий момент. Смущало, что во многих из этих ЭБУ связь с температурой воздуха была пропорциональна абсолютной Т, либо представляла довольно эмпирический кривой график стремящийся распрямится в зоне 20-60 градусов (нивелирование влияния в зоне рабочих температур), а поправка по температуре охлаждающей жидкости зачастую вообще отсутствовала, либо так же представляла собой эмпирический и кривой график. Опыты с ШДК быстро позволили понять несостоятельность всех этих решений. Американцы (Ford) строили многомерные поправки в которых по осям X Y располагались температуры ОЖ и воздуха а Z - коэффициенты компенсации топливоподачи, фактически это был тот же самый "подгон под ответ". В конечном счете многие системы управления были адаптивными (работали с лямбда - зондами) и невозможно было оценить насколько их решения на самом деле адекватны. Многие из этих систем никогда не стояли на гражданских машинах, и не понятно волновали ли их разработчиков подобные проблемы вообще. Но вот кажется в конце тоннеля появился лучик света. Решение подсказала реальная система управления двигателем установленная на автомобиле daewoo esperro.
В конечном счете именно в этой машине "доноре ДТВ" (который там установлен в алюминиевом ресивере) с самого начала стоило искать правильные ответы на все возникшие вопросы!
Инженеры Delphi имеющие многолетний опыт в проектировании систем управления придумали кажется вполне разумную модель, возможно достаточно заумную для настройки, но простую в реализации и на первый взгляд более менее реально описывающую происходящие в двигателе процессы. И что самое главное - не противоречащую теоретической физике. При реализации такой модели в программу ЭБУ вводится эмпирический параметр, который получил название "температура заряда". Он определяет влияние температур как двигателя так и воздуха на конечную температуру смеси в конце такта впуска. Идея Delphi состоит в том, что температура заряда во всех возможных случаях лежит в промежутке между температурой ОЖ и температурой воздуха поскольку определяется в основном начальной температурой (воздуха) и теплопередачей от различных поверхностей двигателя, причем чем больше воздуха расходует двигатель, тем медленнее идут процессы теплопередачи и тем меньше на него влияет температура ОЖ и больше влияет температура воздуха и наоборот. Такая модель одновременно адекватно описывает и пуск и прогрев и работу на около нормальных температурах как атмосферного так и турбокомпрессорного двигателя.
Расчет температуры заряда производится следующим образом:
Tcharge = ((Tintake - Tcoolant) * Fcharge(massairflow) + Tcoolant )* Fcorrection(Tcharge)
Очевидно, что если Fcharge(massairflow) стремится к 0, то Tcharge = Tcoolant а если к 1 то, Tcharge = Tintake
Корректирующая функция Fcorrection(Tcharge) работает при глубоких отрицательных температурах, ее значения как правило лежат в диапазоне 0.85-1.00
Влияние Tcharge на GBC описывается формулой связи температуры по шкале Цельсия с абсолютной, причем приведенной к нормальным условиям.:
GBC = * ( 273 + 20 ) / (273 + Tcharge ).
В этом алгоритме все табличные поправки по температурам ОЖ и воздуха полностью отменяются, что довольно привлекательно с точки зрения практической реализации в загруженном цикле вычислений тактовой топливоподачи двигателя.
В настоящий момент подобные модели были использованы только в системах управления Delphi и Аутроник, однако у Аутроника таблица функции Fcharge выстраивается полностью в ручную, что абсолютно неприемлемо при реальной настройке системы управления и приводит к тому что 99% настройщиков ее попросту не тронут вообще, в результате чего поведение ЭБУ не будет адекватным.
Вариант Delphi с функцией массового расхода для aftermarket системы, которая должна быстро перенастраиваться с одного двигателя на другой тоже выглядит недостаточно приемлемым, поскольку настраиваемые двигатели могут иметь почти на порядок различающиеся массовые расходы воздуха. Поэтому первоначально на вооружение был принят оригинальный вариант функции с табличным заданием функции Fcharge от оборотов и положения дросселя. Построение табличной 3D функции как и обычно было поручено ПАК "Матрица" по следующей формуле:
Fcharge(rpm,thr) = Kmin + ((Fgbcbs(rpm,thr)*rpm - AIRmin) / (AIRmax - AIRmin )) * (Kmax - Kmin)
Kmin - коэффициент влияния температуры воздуха на низких расходах воздуха (стремится к 0, задан калибровщиком).
Kmax - коэффициент влияния температуры воздуха на высоких расходах воздуха (стремится к 1, задан калибровщиком).
Fgbcbs(rpm,thr)*rpm - массовый расход воздуха в текущей точке (в основе таблицы "базовое цикловое наполнение" откатанной ранее на ПАК "Матрица" или функцией автообучения ЭБУ).
AIRmin - минимальный массовый расход воздуха. (пересчитывается из бцн).
AIRmax - максимальный массовый расход воздуха. (пересчитывается из бцн).
Фактически построение идет на основе массового расхода, как функции Циклового наполнения воздухом и оборотов двигателя, все необходимые данные уже есть в прошивке, остается экспериментально подобрать 2 коэффициента, первый влияет на поведение алгоритма на холостом ходу а второй на максимальном расходе воздуха (максимальных оборотах) а затем нажатием одной кнопки выстроить табличку поправки. Причем как показывает практика для различных двигателей эти коэффициенты не сильно различаются.
Вот такая табличка получается при Kmin=0.4 Kmax=0.9. - Эти значения были выбраны для первоначального тестирования алгоритма.
После перестройки логи показали следующее: Отклонение состава смеси не имеет корреляции с температурой воздуха при высоких расходах, где влияние этой температуры наибольшее. Следовательно коэффициент 0.9 был выбран правильно.
Проявляется некоторая тенденция обеднения при снижении температуры охлаждающей жидкости на холостом ходу - по-видимому следует несколько уменьшить Kmin.
Новое Kmin было выбрано = 0,25
Позже опционально был реализован и оригинальный вариант Delphi c функцией коэффициента от массового расхода - как показала практика, только этот вариант коррекции при довольно простой настройке может более менее адекватно работать на автомобилях с верхним расположением интеркуллера (Subaru WRX STI) либо жидкостным интеркуллером, поскольку в этих автомобилях колебание температур воздуха возможно в очень широких пределах.
Двигатель 16v сразу же обнаружил несколько интересных проблем. Выяснилось, что после примерно 15-ти минутного стояния в пробке, когда температура охлаждающей жидкости достигнет 95-98 а воздуха 40-50 градусов цикловое наполнение воздухом на ХХ и низких нагрузках вдруг начинает медленно расти, причем после того, как рост достигнет 10-12% он замедляется и останавливается. Если бы не режим широкополосного лямбда - регулирования, этот рост наполнения мог бы доставить некоторые проблемы в работе двигателя на ХХ... Стоит проехать немножко с высокими оборотами и наполнение плавно, но достаточно быстро возвращается к своим старым значениям. Первоначально я пытался искать причину такого поведения в температуре воздуха на впуске, однако это полностью противоречило здравому смыслу, поскольку рост температуры приводит к уменьшению плотности воздуха и следовательно уменьшению наполнения. Объяснение роста было в скоре найдено и оказались достаточно банальным - причина такого поведения скрывалась в гидрокомпенсаторах зазоров клапанного механизма.
В пробке на ХХ масло достаточно сильно прогревается, поскольку циркуляции воздуха в подкапотном пространстве и в поддоне нет, кроме того низкое давление масла, компенсаторы стравливают масло и подъем клапанов уменьшается. Вместе с подъемом сужается фаза впуска и выпуска, становиться меньше перекрытие, на широких валах все это приводит к росту циклового наполнения. При этом, чтоб обеспечить подобный рост наполнения на режимах ХХ с подобными валами вполне достаточно уменьшения подъема всего на 0.1-0.15мм. Честно говоря ситуация достаточно тупиковая, поскольку события происходящие в двигателе изменяют его VE, однако не могут быть учтены системой управления. Конечно можно было бы завести в ЭБУ температуру масла, давление и построить сложную модель связывающую эти параметры во времени с наполнением, но что-то мне подсказывает, что это будет сугубо индивидуальная модель для сугубо индивидуального двигателя - следовательно целесообразность таких действий туманна.
Проанализировав конструкцию заводских двигателей с ДАД я пришел к интересному выводу, как то упущенному мною ранее - ни на одном из серьезных атмосферных моторов оснащенных ДАД (honda, toyota levin, renault) нет гидрокомпенсаторов зазоров ГРМ подобного типа (подвижных стаканчиков), а на многих их нет вообще.
В общем все в порядке в Датском Королевстве. Этим фактом даже можно объяснить тенденцию применения масс метров на выпускаемых относительно современных двигателях - ведь практически все они снабжены гидрокомпенсаторами, работать с которыми с использованием ДАД довольно проблематично.
После одной из дискуссий на megasquirt форуме я задумался над тем, что разрешение сигнала канала АЦП ДАД и математики его фильтра на самом деле недостаточно удовлетворительно, диапазон значений ограничен 8-ми битами входного сигнала, что на турбо двигателях давало разрешение порядка 1 кПа с датчиком MPX4250AP. Переменная давления в микропрограмме имела разрешение аж в сто раз больше - 0.01кпа. Фактически это приводило к перегрузке микропрограммы лишними вычислениями с большой разрядностью. Возникло решение переключить АЦП в 10-ти битный режим и использовать 16-ти битную математику как при фильтрации сигнала так и в калибровках наклона и смещения для ДАД. Что позволило повысить точность вычислений давления в 4 раза, и без проблем применять датчики с диапазоном 400кПа даже на атмосферных двигателях. И хотя фактически такое повышение было вызвано больше субъективными причинами - хуже от этого уж точно не стало. Здесь как в математике - лишние разряды в числе Pi никому еще не мешали. ;)
На момент создания микропрограммы J5LS_V46 уже имелся большой опыт настройки автомобилей разных конфигураций, на базе данных с этих автомобилей произведены анализы целью которых являлся выбор оптимальных ограничений в карте "Поправка циклового наполнения". В старой программе значения в этой калибровке могли находится в диапазоне 0-2 и шаг их изменения был 0.0078 соответственно. Как показала практика у 100% настроенных автомобилей поправку можно было вписать в диапазон 0.25-1.25, что позволило уменьшить шаг поправки в 2 раза (0.0039) и таким образом не увеличивая загрузку микропрограммы и размер таблицы повысить точность расчета топливоподачи и настройки автомобиля в 2 раза.
Подобные преобразования были сделаны для многих таблиц участвующих в расчете топливоподачи, в частности для температурной коррекции. В дальнейшем при вводе новых калибровок тщательно анализировались возможные их физические диапазоны и необходимые для получения высокой точности вычислений шаги, и выбирались оптимальные варианты которые позволяли достигать лучшего соотношения точности с быстродействием микропроцессора и размером таблиц.
Опыт настройки так же показал некоторую неадекватность поведения системы при замене форсунок с соответствующей сменой коэффициентов статической производительности, в случае использования форсунок с большой статической производительностью. Фактически система требовала обязательной подстройки при замене одних форсунок другими хотя в оригинале не должна была этого делать.
Один из корней такого поведения заключался в том что для форсунок 600сс и более нельзя было задать статическую производительность без некоторой ошибки, значение которой могло достигать 2-3%. Усугублял ситуацию разброс производительности который у подобных форсунок как правило всегда выше 5%.
В результате было принято решение уменьшить дискретность задания статической производительности форсунок в 256 раз, что позволило в 256 раз увеличить точность задания этого аргумента (теперь она до 3-го знака после запятой у форсунок 630сс).
Так же были пролиты абсолютно все используемые нами форсунки и определена их истинная статическая производительность.
При создании этой версии прошивки была полностью восстановлена физико-математическая модель расчета топливоподачи двигателя с расчетом всех фигурирующих коэффициентов. Насущная необходимость такой работы вытекала из вопроса - "Почему на многих стандартных серийных автомобилях при настройке поправка циклового наполнения принимает определенные и очень близкие значения, в то же время отличные от 1!?". Кроме того обнаружились и другие несоответствия - например в модуле имитатора расхода топлива для МК после всех расчетов по реализованным формулам и перехода от массовых аргументов к объемным, "плотность топлива" получалась примерно равной 702г/л (реально при многочисленных измерениях мы получали значения около 745-755г/л), это давало ошибку в виде завышения расхода топлива имитатором примерно на 7% над реальным, что в принципе можно было бы списать на прочие несовершенства алгоритма имитатора, если бы не другие мелкие коллизии.
Одним из звеньев цепи в котором была обнаружена проблема - коэффициент 355.555555, который фигурирует при выборе производительности форсунок в прошивке. Это число известно еще со времен появления 1-х версий CTP для Января-4 и с тех пор никак не изменялось. Используя Еxcel и имея данные полученные из прошивки и формулы преобразований цепочки не сложно посчитать каким оно должно быть: 256/(14.7*6*0.008)=362.8117914, где:
256 - Множитель используемый в микропрограмме при изменении разрядности данных.
14.7 - Множитель используемый при пересчете переменной состава смеси в физическое представление.
6 - Множитель используемый при пересчете переменной циклового расхода воздуха в физическое представление.
0.008 - Множитель используемый при пересчете переменной времени впрыска в физическое представление.
Как видим и здесь имеется ошибка. Исходное число могло бы получатся если в качестве стехиометрического коэффициента использовалось число "15" (256/(15*6*0.008)=355.55555) однако тогда все калибровки состава смеси должны иметь в формуле преобразования также значение 15 и соответственно другие значения в аргументах, а это вполне очевидно не так.
Еще одна подобная ошибка ноги у которой растут из того же места есть во всех калибровках связанных с асинхронной и пусковой подачей топлива. Калибровки цикловой подачи должны использовать при перерасчете коэффициент 256/(14.7*6) = 2.9024, в программе же ранее был установлен коэффициент 2.844=256/(15*6).
Большая работа была проведена над моделью расчета воздуха с ДАД с целью приведения "Поправки циклового наполнения" к фактической волюметрической эффективности ДВС, что позволило использовать эту калибровку при сравнительном анализе трактов ВПУСК-ВЫПУСК-ГБЦ-ВАЛЫ для различных ДВС либо рассчитывать ее моделируя процессы происходящие в ДВС. Для этого в Excel была воссоздана модель расчета воздуха с использованием ДАД, после чего определена правильная формула пересчета для калибровки "Цилиндровый объем двигателя", учитывающая все неявные коэффициенты и коррекции (например такие, как плотность воздуха при нормальных условиях), создана функция преобразования цилиндрового объема для ПАК "Матрица", функция автоматического приведения калибровок старых форматов к новым, убрано одно лишнее деление на 2 в цепочке расчета ЦНВ за счет изменения пересчета цилиндрового объема, что в свою очередь позволило увеличить диапазон задания цилиндрового объема в 2 раза. В ближайшее время эта модель будет уточнятся с применением датчика влажности воздуха и проводится исследовательские работы по вопросам корреляции вариаций VE с влажностью воздуха.
Наблюдение за механизмами расчета дополнительной топливоподачи с использованием современных средств мониторинга (высокоскоростной протокол J5LS_V46) показало некоторую неадекватность функции расчета дополнительного топлива в контроллерах Январь-5 и 7, основная проблема сводилась к недостаточной чувствительности алгоритма расчета топливоподачи и частым пропускам импульсов асинхронного впрыска, даже при резком разгоне автомобиля, в результате чего возникало кратковременное (0.3-0.5c) обеднение топливовоздушной смеси приводящее к задержкам реакции на дроссель. В существующем алгоритме, расчет дополнительного топлива производится в случае, если программой обнаружено увеличение дросселя за 180 градусный поворот dTHR=THR1-THR0 более чем на 2%, при одновременной достаточно большой положительной разнице dGBCBS=GBCBS1-GBCBS0, которая собственно и пересчитывается в дополнительное топливо. Необходимо было обеспечить более высокую чувствительность алгоритма, причем без потери скорости реакции. Для этого влияние функций расчета базовых параметров dTHR и dGBCBS было распространено на четыре 180 градусных цикла двигателя с поиском максимума этих параметров в каждом из этих циклов, что позволило сохранить скорость реакции, четырехкратно повысив чувствительность. Новая формула расчета выглядит так:
dTHR= Max (THR1-THR0,THR2-THR-0,THR3-THR-0,THR4-THR-0)
dGBCBS = Max (GBCBS1-GBCBS0,GBCBS2-GBCBS-0,GBCBS3-GBCBS-0,GBCBS4-GBCBS-0)
Реакция на дроссель после такого изменения радикально улучшилась. Кроме того пропали кратковременные всплески обеднения смеси, пришлось даже уменьшить экстраполирующие коэффициенты участвующие в расчете топливоподачи.
Так же изменения были внесены в алгоритм убывания дополнительного топлива, статические коэффициенты убывания заменены табличными функциями от оборотов двигателя. Одна из полезных функций - автоматическая блокировка дополнительного топлива при прикрытии дросселя.
Все эти изменения не замедлили сказаться на качестве управлении двигателем особенно на низких оборотах. Впервые прошивка с таким алгоритмом была установлена на автомобиле 21083 Костаса, от которого немедленно последовали положительные резюме на данную методику расчета ускорилки.
Опыты с настройками фазы впрыска показали сильное влияние этого параметра на реакцию автомобиля на дроссель на низких оборотах двигателя. Если топливо впрыскивается в момент открытия впускного клапана - реакция на дроссель у системы очень хорошая но в некоторых зонах на частичных нагрузках могут появляться рывки и провалы. В случае впрыска в момент закрытого клапана эти проблемы уходят но двигатель становится более пенсионерским что ли, при этом на многих двигателях еще и резко увеличивается расход топлива.
Не многие знают, что в стандартном п.о. есть достаточно серьезные проблемы с быстродействием алгоритма установки фазы впрыска. Фактически скорость изменения фазы впрыска искусственно ограничена значением 300 градусов в секунду (при 720 градусах диапазона). На ХХ скорость установки еще меньше - около 200 градусов в сек. Очевидно, что для правильного функционирования системы (мягкая работа двигателя на частичных нагрузках и более точная настройка топлива) фаза должна меняться только в случае реальной необходимости такого изменения и причем это изменение должно происходить достаточно быстро.
Для анализа проблемы в ПАК "Матрица" была добавлена переменная определяющая текущую ошибку (разницу желаемой табличной и реальной) установки фазы впрыска, связанную с недостаточным быстродействием системы. Как показала практика в некоторых режимах всплески ошибки были выше 200 градусов.
Обычно фаза впрыска в таблице задается по GBC/RPM, что некоторым образом не правильно, поскольку само GBC косвенным образом может зависеть от фазы впрыска (алгоритм фильтрация ДМРВ-ДАД), таким образом при определенном стечении обстоятельств (определенный режим работы двигателя и калибровки фазы) возможно возникновение автоколебательного процесса в определенной режимной области, что не лучшим образом сказывается на качестве управления двигателем. Кроме того как уже ранее показывала практика при настройке очень сложно стабилизировать точку нагрузки по GBC, поэтому все параметры заданные по GBC должны быть получены не экспериментальным путем а методом математического моделирования.
Для решения данных проблем было решено проделать следующее:
1) Добавить в прошивку возможность задания в качестве фактора нагрузки для таблички фазы не GBC а положение дросселя (что дает более высокое быстродействие задания уставки и ее стабильность). Поскольку положение дросселя определяется только углом поворота дросселя - возникновение автоколебательного процесса в этом случае не возможно. Для этого в флаги комплектации добавлен пункт "Фаза впрыска по дросселю". И еще одна трехмерная калибровка. "Фаза впрыска по дросселю"
2) Насколько возможно увеличить скорость установки фазы. Для этого механизм установки максимально возможно оптимизирован и перенесен в задачу обработчика реперного диска 60-2. Что позволило обеспечить скорость установки фазы до 6 градусов на такт двигателя.
После проделанной работы пиковые значения ошибки фазы резко уменьшились (практически пиковые всплески ошибки не превосходят 60градусов). Качество управления двигателем на частичных нагрузках радикально улучшилось.
В программу "Матрица" были добавлены 2 новых алгоритма расчета фазы впрыска, первый является аналогом алгоритма, который используется в турбокомпрессорных автомобилях Mitsubishi и был реализован "до кучи" , 2-й разработан самостоятельно на основе практического опыта построения таблиц фазы впрыска различными методами на различных двигателях. Он сочетает 2 взаимоисключающие модели поведения, первая реализует точное центрирование смеси в момент максимальной скорости потока воздуха на срезе форсунки, для чего используются не только фазы распределительных валов но и расчеты по динамике впускного тракта ГБЦ 16v ВАЗ включая расстояние среза форсунок и скорость топливовоздушной смеси - что позволяет добиться очень низкого эксплуатационного расхода топлива и очень четкой реакции на дроссель, вторая используется для низких оборотов и частичных нагрузок и позволяет получить достаточно стабильный ХХ.
Как известно при использовании ДАД существует некоторая проблема работы алгоритма адаптации положения РХХ по расходу воздуха, связанная с невозможностью точно определить расход воздуха в условиях регулирования ХХ, поэтому всегда рекомендуется его запрещать. Однако при этом возникает другая проблема - эксплуатационное рассогласование уставки РХХ и фактического положения РХХ в режиме ХХ вызванное изменением атмосферных условий и засорением канала РХХ. Что в свою очередь приводит к провалу или рывку при переходе с режима ХХ на частичные нагрузки в области малых значений дросселя. Решение возникшей проблемы лежит на поверхности - почему бы не адаптировать саму "Уставку РХХ"!? Просто подгоняя ее к положению РХХ на холостом ходу автоматически самой микропрограммой, при этом как бы заведомо обеспечивая нам нужное положение РХХ при входе в ХХ и выходе из ХХ. Таким образом в микропрограмму j5ls была добавлена адаптивная калибровка (39 точек по ТОЖ), которая представляет собой знаковою компенсацию (смещение) уставки РХХ, в зависимости от температуры ОЖ двигателя. А в программу "Матрица" функция, которая позволяет автоматически настраивать уставку РХХ при прогреве с использованием этой корректирующей таблички (путем добавки значений из памяти адаптации). Таким образом сразу убиваются 2 зайца - решается и проблема автоматической настройки "Уставки РХХ" комплексом "Матрица" и компенсации ее возможного эксплуатационного ухода со временем в процессе эксплуатации автомобиля.
to be continued.
(c) Maxi(РПД) 2007-2008 Копирование материалов ресурса без разрешения автора запрещено.