Алгоритмы РХХ и не только (Algorithms of idling regulators)

Обсуждение прошивок SECU-3. Discussion of SECU-3 firmware.

Moderator: STC

Post Reply
User avatar
STC
LQFP144 - On Top Of The Game
Posts: 2420
Joined: Fri Oct 22, 2010 10:47 pm
Location: Ukraine, Kiev
Contact:

Алгоритмы РХХ и не только (Algorithms of idling regulators)

Post by STC »

Обсуждаем алгоритмы РХХ как отдельно для зажигания, так и для впрыска и совместно.
РХХ - Регулятор Холостого Хода. Регулирование ХХ божет производиться как одним УОЗ, так и одним только регулированием подачи топлива. Ну и конечно одновременно и при помощи первого и второго.
УОЗ позволяет быстро менять обороты, но в большинстве случаев только в меленьких пределах.
Регулирование подачи топлива позволяет менять обороты в широких пределах, но является достаточно медленным.
Author of the SECU-3 project. SECU-3 Engine control unit / Ignition control system
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
Stranger21
LQFP144 - On Top Of The Game
Posts: 1664
Joined: Fri Jul 01, 2011 2:10 pm
Location: г Уфа

Re: Алгоритмы РХХ и не только

Post by Stranger21 »

думаю что именно подачей топлива не регулируется , так как я не видел чтобы импульсы на форсе менялись . правильнее сказать регулировкой подачи воздуха , и как следствие повышение подачи топлива.
в моновпрыске это делает механический РХХ , просто електромотор колекторный ,он двигает сам дросель , открывая и закрывая его. например в ВАЗ это делается путем дополнительного воздушного канала регулируемым путем шагового двигателя , двух обмоточного.
WAZ21051 gti 1.7i SECU3Ts + mm1.2.3(1)
ВАЗ21310 1.7i Я7.2 2001г
Stranger21
LQFP144 - On Top Of The Game
Posts: 1664
Joined: Fri Jul 01, 2011 2:10 pm
Location: г Уфа

Re: Алгоритмы РХХ и не только

Post by Stranger21 »

сижу и думаю , что всеже быстрее - подвинуть заслонку , или УОЗ ... хм...
WAZ21051 gti 1.7i SECU3Ts + mm1.2.3(1)
ВАЗ21310 1.7i Я7.2 2001г
stealth
TO92 - Vaguely active
Posts: 3
Joined: Sat Aug 13, 2011 10:30 pm
Location: Russia, Saint-Petersburg

Re: Алгоритмы РХХ и не только

Post by stealth »

Известные мне варианты:
1. Шаговый двигатель - наиболее распространенный вариант и видимо самый оптимальный
2. Дискретный клапан(по типу форсунки) - спорный вариант, но на каких-то авто он применялся
3. УОЗ - наиболее надежный и простой вариант, многие(кто на альтернативные мозги переходит) выкидывают капризный 1 вариант и рулят углами. Кстате, большинство тюнячих дроссилей не имеют доп каналов для РХХ
Stranger21
LQFP144 - On Top Of The Game
Posts: 1664
Joined: Fri Jul 01, 2011 2:10 pm
Location: г Уфа

Re: Алгоритмы РХХ и не только

Post by Stranger21 »

ну одним УОЗ мне кажется не верно , на полновпрысках и один из вариантов механо РХХ и уоз
я вот сам пробовал уже один уоз регулировать , угол уже 30 град а обороты падают ( а рхх в довесок и все 800 встало
в моновпрыске ВАГ стоит просто до нельзя рхх , кратко суть - простой колекторный моторчик , через червяк передает врашение в поступательное движение штока , шток двигает собствено саму заслонку . на конце штока микро концевик - выключатель ХХ
управление моторчиком на принципе ШИМ и смены полярности импульсами 12 вольт
но в моем ММ1.2.3 он не только ХХ стабилизирует , поэтому я не хочу его оттуда убрать , он еще служит демпфером при сбросе газа , подлавливает дросель и плавно спускает , тем самым обороты падают плавно.
к томуже при первом включении (после обнуления мозга) он "ищет" начальное положение ДПДЗ , двигаясь в упор.

пока езжу на П регуляторе в секу3 , даже не сделал еще определение хх . некогда с машиной возиться , только на работе есть вот время по форумам лазить )
вроде ниче так отстроил . но эфектом не особо доволен , чуть лучше чем без УОЗ вообще .. но все равно както не так )
работает у меня он по такому алгоритму
каждый раз как считается УОЗ , смотрим на ошибку оборотов хх от установленых , и в зависимости от знака ошибки через коеэфициенты прибавляем или вычитаем к уоз поправочный коэфициент. при попадании в зону не чувствительности - выход с нулевым коэфициентом .
такое чувство что все равно мало скорости (((
или всеж верно мое предположение о том что мой моновпрыск , нацелившись двигать РХХ , двигает его независимо от ситауции в промежутке между нацеливаением и выставлением . тоесть пока моник двигает рхх я уже секу3 поправил хх , но моник еще не закончил двигать и двигает дальше , тем самым растраивая уже верные хх ... замкнутый круг (((
WAZ21051 gti 1.7i SECU3Ts + mm1.2.3(1)
ВАЗ21310 1.7i Я7.2 2001г
User avatar
STC
LQFP144 - On Top Of The Game
Posts: 2420
Joined: Fri Oct 22, 2010 10:47 pm
Location: Ukraine, Kiev
Contact:

Re: Алгоритмы РХХ и не только

Post by STC »

каждый раз как считается УОЗ , смотрим на ошибку оборотов хх от установленых , и в зависимости от знака ошибки через коеэфициенты прибавляем или вычитаем к уоз поправочный коэфициент. при попадании в зону не чувствительности - выход с нулевым коэфициентом .
Поправлю. Говорить "прибавление/вычитание поправочного коэффициента" некорректно. КоЭфФициент это множитель.
Если это П-регулятор, то нужно говорить "Прибавление к УОЗ ошибки умноженной на коэффициент".
Author of the SECU-3 project. SECU-3 Engine control unit / Ignition control system
SECU-3.org (Русский)
SECU-3.org (English)
SECU-3 Club ВКонтакте
SECU-3 EMS Project Facebook
Stranger21
LQFP144 - On Top Of The Game
Posts: 1664
Joined: Fri Jul 01, 2011 2:10 pm
Location: г Уфа

Re: Алгоритмы РХХ и не только

Post by Stranger21 »

да верно , спасибо
WAZ21051 gti 1.7i SECU3Ts + mm1.2.3(1)
ВАЗ21310 1.7i Я7.2 2001г
Stranger21
LQFP144 - On Top Of The Game
Posts: 1664
Joined: Fri Jul 01, 2011 2:10 pm
Location: г Уфа

Re: Алгоритмы РХХ и не только

Post by Stranger21 »

П - регулятор , тоже как то не очень мне нравится как стыкуется с моновпрыском . наверное идеальный вариант ,это отобрать у моновпрска еще и РХХ . и ввести его в секу3 . по сути нужно будет только две ножки вроде и усилитель мостовой на TDA , выкидывать подобие ШИМ . только придеться еще и ДПДЗ завести , так как нужна еще функция Демпфера ДЗ от рхх.

или !!! во идея !!! ввести просто дпдз в секу3 !!!! и по нему смотреть Что делает моновпрыск и принимать решение Как подвинуть УОЗ ... тогда по идее должна появиться синхронность действий
WAZ21051 gti 1.7i SECU3Ts + mm1.2.3(1)
ВАЗ21310 1.7i Я7.2 2001г
Stranger21
LQFP144 - On Top Of The Game
Posts: 1664
Joined: Fri Jul 01, 2011 2:10 pm
Location: г Уфа

Re: Алгоритмы РХХ и не только

Post by Stranger21 »

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

Code: Select all

int16_t idling_pregulator(struct ecudata_t* d, volatile s_timer8_t* io_timer)
{
 int16_t error,factor;
 //зона "подхвата" регулятора при возвращени двигателя из рабочего режима в ХХ
 uint16_t capture_range = 50;

 //если PXX отключен или обороты значительно выше от нормальных холостых оборотов
 // или двигатель не прогрет то выходим  с нулевой корректировкой
 if (!d->param.idl_regul || (d->sens.frequen >(d->param.idling_rpm + capture_range))
    || (d->sens.temperat < TEMPERATURE_MAGNITUDE(75) && d->param.tmp_use))
  return 0;

 //вычисляем значение ошибки, ограничиваем ошибку (если нужно), а также, если мы в зоне
 //нечувствительности, то используем расчитанную ранее коррекцию.
 error = d->param.idling_rpm - d->sens.frequen;
 restrict_value_to(&error, -200, 100);
 if (abs(error) <= d->param.MINEFR)
  return idl_prstate.output_state;

 //выбираем необходимый коэффициент регулятора, в зависимости от знака ошибки
 if (error > 0)
  factor = d->param.ifac1;
 else
  factor = d->param.ifac2;

 //изменяем значение коррекции только по таймеру idle_period_time_counter
 //if (s_timer_is_action(*io_timer))
 {
  //s_timer_set(*io_timer,IDLE_PERIOD_TIME_VALUE);
  idl_prstate.output_state = (error * factor) / 4;
 }
 //ограничиваем коррекцию нижним и верхним пределами регулирования
 restrict_value_to(&idl_prstate.output_state, d->param.idlreg_min_angle, d->param.idlreg_max_angle);

 return idl_prstate.output_state;
}
идя о том что нужно выходит с 0 при попадании в зону не чувствительности - провалилась.
отличите только в том что регулятор стал П -регулятором .

результат понравился и мне , и моновпрыску . так как моновпрыск действительно очень мало двигает РХХ. вся регулиовка на УОЗ имено малых воздействий. если мотреть диагностику моновпрыска то там есть параметр - УОЗ . так вот если выключить мой регулятор в секу 3 , то скачки этого УОЗ досточно большие . при включении регулятора - скачки уменьшаються = моновпрыск не хочет регулировать обороты = цель достигнута.

правильной работы регулятора пришлось добиваться еще одним способом - так как он теперь работает хорошо . видно в какую сторону он больше всего двигает Угол . = в уменьшение или в увеличение от заданного таблицей УОЗ на хх.
путем подбора угла в этой таблице . было получено значние угла на хх , при котором , РХХ и в + и в - делал примерно одинаковое поправление .

ну витоге я настроил работу двигателя на хх , оптимальным образом , чтобы угол соответсвовал оборотам 800 , и все стало боле менее удовлетворительно .... теперь осталась прогревочная карта ....
WAZ21051 gti 1.7i SECU3Ts + mm1.2.3(1)
ВАЗ21310 1.7i Я7.2 2001г
Stranger21
LQFP144 - On Top Of The Game
Posts: 1664
Joined: Fri Jul 01, 2011 2:10 pm
Location: г Уфа

Re: Алгоритмы РХХ и не только

Post by Stranger21 »

Есть одна идея . так как мне не нравяться прогревочные обороты .
попробую ввести следующий алгоритм
РХХ не отключать по температуре . НО
задать некую формулу , зависимость , целевых оборотов РХХ (н то что мы ставим в менеджере) , от температуры!!! . и тогда по мере прогрева , целевые обороты рхх будут меняться . но само регулирование угла будет работать , и не позволит оборотам плавать -- так сделано в моновпрыске. регулировка хх УОЗ там работает всегда . только целевые обороты меняються .

можно попробовать привызать форумулу к таблице УОЗ от температуры . ...

вот такая вот мысль .

так как я еще очень плохо понимаю Си то

Code: Select all

 
if (d->sens.temperat < TEMPERATURE_MAGNITUDE(75) && d->param.tmp_use)
   d->param.idling_rpm =(90 - d->sens.temperat)*2+100;
    else 
     d->param.idling_rpm = 800;

  if ((d->sens.frequen >(d->param.idling_rpm + 10)) && !idl_enable.output_state) 
    return 0;
  else 
    idl_enable.output_state = 1;
    
  if (!d->param.idl_regul || (d->sens.frequen >(d->param.idling_rpm + capture_range)))
    return 0;
1 что значит в этом месте символ -> ? я так понял что в переменную d передалась структура с параметрами . этот символ указатель чтоли получается или что?
2 это будет отображать в менеджере там где заданные обороты рхх расчитаные значения ? или нет?
3 и еще sens.temperat в чем получает температуру ? в градусах ? или в какойто своей величине?

что то ничего не вышло с температурой . менеджер вроде и чето поптался отобразить но явно не в реальном времени ( . и формула не заработала ( ... думаю....

но зато функция idl_enable заработала как часы!!! отлично работает !!! . никакого провала оборотов резкого нету . обороты с рабочего режима на демпфере плавно спускаються к 800 и лиш потом рхх не заметно начинает работать ) .. я доволен ))
WAZ21051 gti 1.7i SECU3Ts + mm1.2.3(1)
ВАЗ21310 1.7i Я7.2 2001г
Post Reply