Разное (Miscellaneous)

Русскоязычный форум SECU-3 по общим вопросам. General discussion in Russian language. English sub-forum.

Moderator: STC

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 »

насколько я понял автора - до включения секу 3 хх было в норме , после включения секу 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

//вычисляем значение ошибки, ограничиваем ошибку (если нужно), а также, если мы в зоне
 //нечувствительности, то используем расчитанную ранее коррекцию.
 error = d->param.idling_rpm - d->sens.frequen;
 restrict_value_to(&error, -200, 200);
 if (abs(error) <= d->param.MINEFR)
  return idl_prstate.output_state;
считаю не верным выход делать с прежним значением коректировки , так как ситуация может уже изменилась , и обороты пошли например вверх а в момент обработки как раз попали в зону не чувствительности , и тем самым мы загоняем УОЗ вверх и держим там .
нужно тут поставить выход с 0 коректировкой , ну логично веть - мы в зоне не чувствительности , значит коректировать ничего не нужно .
вобщем буду пробовать ставить 0
SТС не подскажеш где задается скорость работы рхх ? чтото я пока не понял . таймер вроде а как его подстроить пока не понятно . нужно увеличить скорость раза в два минимум

вот тут тоже

Code: Select all

 idl_prstate.output_state = idl_prstate.output_state + (error * factor) / 4;
берут сомнения что нужно к прерыдущему добавлять корекцию , считаю правильнее просто ставить новую корекцию каждый раз . тогда скорость работы повыситься в несколько раз , и она не будет зависить от прежних состояний , и тогда "раскачки" двух рхх не будет

тут я так понял скорость "изменений" угла функцией РХХ

Code: Select all

#define IDLE_PERIOD_TIME_VALUE        50    //!< used by idling regulator
тоесть алгоритм такой - запущен таймер , программа "крутится" , в обработку РХХ возможно попадает несколько раз , но пока таймер не до считает регулировка не производится ...
замечательно!!!!!
кажется я понял как оноработает , не сомвсем понятно как это описано языком Си , но в общих чертах понятно ... буду пробовать!!!!
вот скорость работы рхх можно было бы вынести в менеждер , ну ограничить какимит пределами , но будмаю будет полезно ее менять

для статичной системы - карбюратор - это все верно . но для динамичной системы , моновпрыск , это не верно , так как предущее состояние уже меняется моновпрыском , и опираясь на него мы заводим систему в тупик . только мгноменое вычисление и регулировка , и тогда все будет как часы работать :)

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

зы офф :) все больше ибольше начинаю понимать структуру программы , и чуть чуть лучше значть СИ .. что радует )
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 »

Stranger21 Поэксперементируй конечно. Но я готов тебя предупредить что не все так просто. Сильное увеличение или замедление скорости может приводить к потере устойчивости или колебаниям. Мы с Vpsem перетирали эту тему еще 2 года назад. В самом начале был просто П-регулятор и он вообще не работал.
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 »

вы все это перетерали для условия медленой , статичной системы - карбюратор . у меня же иная задача , подружить две динамичные быстрые системы )))) но рхх моновпрыска все же имеет свою скорость и довольно медленую , опередив его , можно все красиво наладить .
в вашем случае с карбюратором секу 3 выполняет все функции рхх , мне же нужна лиш коректировка моновпрыска в очень узком диапазоне + _ 100 оборотов не более!!! , даже меньше . все остальное моновпрыск сам выставит .
очень быстрая коректировка небольших колебаний , вот что нужно инжектору . большие изменения в инжекторе регулируються механо рхх.
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 »

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 = 200;

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

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

 //выбираем необходимый коэффициент регулятора, в зависимости от знака ошибки
 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;
}
вот так хочу попробовать , и поподбирать время таймера в сторону уменьшения
по сути это и будет П регулятор , можно думаю даже вообще убрать таймер . ну экспиримент раставит точки над И

Попробовал , таймер из процедуры вообще выкинул , ограничил диапазон 100 оборотов , ну и как выше в коде выход с 0 если в зоне нечувствительности , и новое значение всегда только новое, а не прибавление к предидущему.
результат , уже нравится больше чем то что было . так как она уже "пляшет" вокруг 0 корекции , а не загоняет в крайности как было до . однако если поставить слишком большие коэфициенты , все входит в резонанас и начинается раскачка(( . вроде более менее подобрал коэфициент так чтобы и раскачки не было , и "эфект" от включения тоже был .
у меня еще изза глубокого тюнинга , на хх горение не всегда стабильно , поэтому выравнять такое как хреново сгорешвний цилиндр вообще нельзя ) . попробую запустить для теста на статике , может будет толк .
Вобщем пока оставляю так , единственный косяк это с определением границ , наверное верхнюю еще уменьшу , так как при сбросе оборотов , после 900 он начинает уже снижать УОЗ чтоб поставить 800 , что не есть хорошо . нужно чтоб сперва дошло до 800 а уже потом только включался алгоритм потдержки ...да так и нужно сделать .. ввести еще одно условие , пока обороты текущие не станут равными или меньше 800 не включать регулятор

сделал через дополнительную переменную признак включения режима РХХ , считаю это нужно внести и в карбюраторную версию , так как при текущем алгоритме , 800 оборотом начинают выставлятся сразу после 1000 , что приводит к существеному понижению УОЗа , что не верно . возможно в этом месте будет не ровное падения оборотов , карбюратор канешно все старания уничтожит . но истина дороже!! поэтому добавив переменую каторая будет переключатся в true только после падения оборотов до 800+10 например и тем самым разрешать включение РХХ , будет правильно . диапазон же 200 так же остается верным

сейчас посетила еще одна мысль - так как ножек в мега32 свободных еще большое количество (имею ввиду версию для инжектора) то можно попробовать завести механический РХХ в нее , например в моем случае это всего лиш коллекторный электродвигатель . два вывода , в оригинале управляется микросхемой от УНЧ по мостовой схеме ее же можно поставить и в секу , управление путем смены полярности и времени включения , не уверен что меняется само напряжение. хотя не факт
WAZ21051 gti 1.7i SECU3Ts + mm1.2.3(1)
ВАЗ21310 1.7i Я7.2 2001г
ivnsrg
QFP80 - Contributor
Posts: 44
Joined: Wed Aug 17, 2011 10:04 am

Re: Разное

Post by ivnsrg »

Подскажите,где-то описано как проводить компиляцию проекта? Пробовал не выходит.Запускаю configure.bat, появляется makefile,пустая папка output.
АЗЛК 2137 ,2*(0729.3734 + 406.3705)
Stranger21
LQFP144 - On Top Of The Game
Posts: 1664
Joined: Fri Jul 01, 2011 2:10 pm
Location: г Уфа

Re: Разное

Post by Stranger21 »

да не совсем описано)
для компиляции нужно установлен WinAVR и IAR4.21a , IAR не обязателен . конфигуре бат нужно запускать с ключами M32 GCC например для мега32 и WinAVR
WAZ21051 gti 1.7i SECU3Ts + mm1.2.3(1)
ВАЗ21310 1.7i Я7.2 2001г
ivnsrg
QFP80 - Contributor
Posts: 44
Joined: Wed Aug 17, 2011 10:04 am

Re: Разное

Post by ivnsrg »

Stranger21 wrote:да не совсем описано)
для компиляции нужно установлен WinAVR и IAR4.21a , IAR не обязателен . конфигуре бат нужно запускать с ключами M32 GCC например для мега32 и WinAVR
Спасибо!!! Получилось!!! А я писал ключ IAR - и ничего.IAR 4.21A взял в ed2k сети.
АЗЛК 2137 ,2*(0729.3734 + 406.3705)
Post Reply