Page 51 of 107

Re: Добавл. в прошивку возможностей одновременного/моно впры

Posted: 16 Dec 2014, 07:48
by izolyator
Как там новая Сека впрысковая, видна на горизонте? Очень ждем. я себе под нее купил ГБЦ с коллектором и форсунками от впрыскового мотора 2-х литрового 2Е,
1anJX0BGkuU.jpg
она на мой 1,8 подходит без проблем. вот только все форсы сделаны параллельно, буду колхозить переходники под свою рампу, сделанную пока для родного коллектора
DSCN8226.JPG

Re: Добавл. в прошивку возможностей одновременного/моно впры

Posted: 16 Dec 2014, 16:01
by STC
STC wrote:
Судя по тишине, это никого не интересует?!
Нет, просто все заняты разработкой прошивки :)

Re: Добавл. в прошивку возможностей одновременного/моно впры

Posted: 10 Jan 2015, 02:32
by STC
AlxSh wrote:Судя по тишине, это никого не интересует?!
Вот то что сейчас работает у меня. Попутно скорректировал код для статического вычисления положения РДВ. Ранее он вызывался с передачей в него флага crank_state. Это приводит к тому, что после пуска происходит переход на EM_IDLE и рабочие таблицы расчета топлива, но в течении времени cranktorun_time положение РДВ продолжает вычисляться как для режима пуска. Возможно это и приводило к тому что двигатель глох. Сегодня двигатель запустился и мягко набрал обороты.
Спасибо за наводку! Посмотрел код, действительно сделано неправильно. Сейчас crank to run time задает время просто сколько РДВ находится в пусковом режиме после блокировки стартера, а нужно чтобы он задавал время сколько РДВ будет переходить из пускового положения в рабочее после блокировки стартера, обеспечивая таким образом плавный переход.

Re: Добавл. в прошивку возможностей одновременного/моно впры

Posted: 10 Jan 2015, 03:08
by STC
Тоже самое видимо касается afterstart enrichment - должен спадать не резко, а плавно.

Re: Добавл. в прошивку возможностей одновременного/моно впры

Posted: 11 Jan 2015, 03:26
by STC
Исправил переход с пускового положения РДВ на рабочее. Теперь используется интерполяция.
Осталось решить что делать с afterstart enrichment (оставить как сейчас сделано - убирается резко или тоже плавно убирать его).
Идет тестирование ПО для предстоящего релиза.

Re: Добавл. в прошивку возможностей одновременного/моно впры

Posted: 11 Jan 2015, 22:54
by AlxSh
STC wrote:Спасибо за наводку! Посмотрел код, действительно сделано неправильно. Сейчас crank to run time задает время просто сколько РДВ находится в пусковом режиме после блокировки стартера, а нужно чтобы он задавал время сколько РДВ будет переходить из пускового положения в рабочее после блокировки стартера, обеспечивая таким образом плавный переход.
Посмотрел вашу реализацию. Красиво! Надо переносить в свою железяку и пробовать. Когда работает afterstart_enrichement двигатель уже работает и производится корректный расчет состава смеси и резкое изменение состава смеси после окончания обогащения не приводит к его остановке.

Re: Добавл. в прошивку возможностей одновременного/моно впры

Posted: 13 Jan 2015, 16:09
by STC
AlxSh, у тебя priming pulse на пуске не реализован? Просто интересно как запуск с ним и как без него.

Re: Добавл. в прошивку возможностей одновременного/моно впры

Posted: 13 Jan 2015, 20:27
by AlxSh
STC wrote:AlxSh, у тебя priming pulse на пуске не реализован? Просто интересно как запуск с ним и как без него.
Реализован, но настроить легкий пуск холодного двигателя пока не удалось. В гараже стало слишком холодно. При пуске проваливается бортовое напряжение, ШДК остывает и показания перестают быть достоверными. Надо приходить с внешним блоком питания, запитывать от него ШДК и смотреть, что происходит со смесью во время пуска. Холодный - это ниже +5 градусов. Разницы с priming pulse и без него пока не почувствовал.

Code: Select all

uint16_t inj_prime_pulse(struct ecudata_t* d){
  int32_t i, i1, t = d->sens.cool_temp;

  if (d->errors & ERROR_COOL_TEMP) return IT(10.0);

  //-30 - минимальное значение температуры
  if (t < TEMPERATURE_MAGNITUDE(-30)) t = TEMPERATURE_MAGNITUDE(-30);

  //10 - шаг между узлами интерполяции по температуре
  i = (t - TEMPERATURE_MAGNITUDE(-30)) / TEMPERATURE_MAGNITUDE(10);

  if (i >= 15) i = i1 = 15;
  else i1 = i + 1;
  return simple_interpolation(t, efi.ttbl.inj_prime_pulse_time[i],
                              efi.ttbl.inj_prime_pulse_time[i1],
                              (i * TEMPERATURE_MAGNITUDE(10)) + TEMPERATURE_MAGNITUDE(-30),
                              TEMPERATURE_MAGNITUDE(10), 64) >> 6;
}
Я думаю, что prime pulse стоит сделать, ведь в других системах везде это есть, по-логике нужно и реализовать легко. При изменении счетчика зубьев, если стоит флажок prime pulse, устанавливаемый после остановки двигателя, сбрасываем флажок и запускаем асинхронный впрыск.

Вот только я так и не понял сколько надо лить?!
Я рассуждал так: пуск идет в одновременном режиме впрыска, т.е. до того момента когда произойдет воспламенение смеси в одном из цилиндров будет произведено как минимум 2 синхронных впрыска. Вот я и решил, что prime pulse должен асинхронно доливать недостающую часть топлива. Но в таком случае последующие цилиндры будут перелиты. Есть мысли как это должно быть реализовано правильно и главное сколько надо лить?

Re: Добавл. в прошивку возможностей одновременного/моно впры

Posted: 13 Jan 2015, 21:48
by STC
Смысл prime pulse в том чтобы впрыскнуть один раз до запуска двигателя, а не тогда, когда уже начинает работать стартер.
Я думаю у себя сделать 3 параметра для prime pulse: длительность при -30°C, длительность при 70°C (между ними линейная интерполяция) и задержка импульса - кол-во секунд после вкл. зажигания, чтобы топливный насос успел накачать давление. У тебя я вижу таблица из 16 значений.

Re: Добавл. в прошивку возможностей одновременного/моно впры

Posted: 13 Jan 2015, 22:34
by STC
Чтобы намочить стенки впуска и клапаны еще до начала вращения коленвала, чтобы последующие впрыски при вращении коленвала пошли больше в цилиндры, а не на стенки.