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

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

Moderator: STC

Stranger21
LQFP144 - On Top Of The Game
Posts: 1664
Joined: Fri Jul 01, 2011 2:10 pm
Location: г Уфа

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

Post by Stranger21 »

Сегодня , попробовал вернуть ПИ регулятор как сделано в офицальной версии , получил тотже плачевный результат

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

по правильному нужна таблица Обороты Vs температура и в менеджере в онлайн режиме
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 »

Сегодня , попробовал вернуть ПИ регулятор как сделано в офицальной версии , получил тотже плачевный результат
Я хочу обратить твое мнимание что в официальной версии прошивки реализован не П и не ПИ-регулятор, а некое подобие.
Почитай ту статью, на которую я дал ссылку и попробуй сделать классический ПИ-регулятор (как в статье).

Кроме этого. Как я уже говорил ранее, проблема твоей ситуации в том, что ты пытаешься рулить 1-м объектом управления от двух разных систем (SECU-3 и моновпрыск :? ). Возможно есть какие-то исследования на такую тему, нужно поискать.
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 .
хорошо , попробую класический ПИ . простой П почти устраивает . на прогретой можно сказать что результат даже чуть лучше чем просто сам моновпрыск , с прогревом пока есть нюансы
спасибо


обдумал .
появилась мысль . для добавления к моему П регулятору Интегральной составляющей , мне нужно всего лиш , ввести переменную в которой будет считаться сумма ошибок , и прибавлять ее к выходной переменной в томже виде как и делаеться это в П регуляторе .
обнуление суммы ошибок сделать при нахождении в зоне нечувствительности , и при первом входе в процедуру рхх после рабочего режима .
думаю , что данное добавление , добавит скорости работы алгоритма . и тем самым еще больше убыстрит его работу . что несомненно хорошо ... буду пробовать
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: Алгоритмы РХХ и не только (Algorithms of idling regulato

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: Алгоритмы РХХ и не только (Algorithms of idling regulato

Post by Stranger21 »

так .... напишу наверное тут
Итак . я задумал , отобрать у моновпрыска РХХ ))))
что он из себя представляет --- просто коллекторный двигатель , червячная передача , и шток , шток двигает непосредственно заслонку . на конце штока микровыключатель - концевик ХХ .
в моновпрыске он подключен через два TDA2003 вроде , ну или одну но "стерео" по мостовой схеме .
чем точно управляется пока не выяснял , возможно ШИМ.
может есть микросхемы готовые для этого дела или такой же реализации достаточно будет .
алгоритм работы , примерно следующий
включаем зажигание , рхх выдвигается по значению температуры. обратную связь придется ввести с ДПДЗ . заводим машину , первую секунду две он должен "под газануть" до 2000 оборотов , потом вернутся в положение соответствующее температуре , но тут уже думаю что просто по оборотам достаточно . ООО пока писал -- убрать обратную связь и связь только по оборотам!!! . Значит так . выдвинуть РХХ на макс , ну засечь время да выдвинуть даже пусть не до конца выползет , это как раз приоткроет заслонку что и даст нам "под газануть" первую секунду , как только пошли импульсы зажигания и машина завелась сразу же двигать рхх уменьшая обороты до тех пор пока не выйдем на заданные температурой обороты . далее поддерживать обороты заданные по таблице . вроде все ) и все просто ) Ан нет )))) Нужно еще умудриться выползать вперед вслед за дросельной заслонкой , чтобы ее подловить при сбросе газа и плавно спустить на ХХ ... возможно можно сделать это только одним концевиком хх , но наверное лучше по ДПДЗ все таки ...
вот такие мысли у меня в голове ))))
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: Алгоритмы РХХ и не только (Algorithms of idling regulato

Post by Stranger21 »

Уже добавил измерение ДПДЗ на ножке PA5 на входе делитель такой же как на ДТОЖ.
теперь обдумываю дальнейшее с РХХ.
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: Алгоритмы РХХ и не только (Algorithms of idling regulato

Post by Stranger21 »

Ребят . программеры , подмогите мыслью ) просто мыслью )
ситуация
РХХ на конце его штока микрик - нажато на дроссель - включен . двигает дроссель , дроссель имеет дпдз.
нужно сделать
1 при включении зажигания рхх должен вылезти чуть ли не на максимум
предпологая это сделать по дпдз , измерить напряжение в нужной мне точке, а это так чтобы было 1800 оборотов , и сразу после запуска программы запустить цикл , где будет измеряться напряжение дпдз , и пока оно не достигнет нужно держать включенным РХХ, после достижения перевести переменную на вход в цикл в false. чтобы более в него не попадать.
где лучше расположить данный цикл? или лучше сделать не цикл и просто проверка условия - если не достигло - то включить рхх , если достигло - переменная на вход = фальш и стоп рхх . тогда я смогу двигать его и одновременно заводить авто ) ..
ок

и так далее
2 нужно организовать потдержку оборотов ХХ
предполагаю сделать так -- в существующем алгоритме рхх по уоз , вставляется следующее - смотрим на ошибку по оборотам , если она меньше чем 20 например или даже 30 то стоп РХХ , иначе - если ошибка больше 0 то включить рхх на выдвигание , иначе на задвигание
ну и собственно все )) . так как это грубая корректировка то что либо изобретать тут с П ПИ ПИД не стоит мне кажется . точно будет УОЗ регулировать как раз в этом диапазоне где РХХ будет стоять.

3 - и самое сложное ))) Рхх должен выполнять роль демпфера! . то есть при сбросе газа должен подлавливать дроссель и плавно спускать на ХХ.
предполагаю реализовать так ---
так как ДПДЗ линейный , то хоть и скорости открытия дросселя в начале и в конце хода РХХ будет отличатся , то введем некую константу - например для изменения положения дпдз на 0.1 вольт нужно 10 мс времени работы РХХ. Теперь как только мы от ХХ перешли в рабочий режим попадаем в такой алгоритм - если таймер досчитал то РХХ стоп , измерить текущее напряженения ДПДЗ Ut - Ubuf (запомненное напряжение , нужно предусмотреть в алгоритме ХХ) поделить на 0.1 == время работы РХХ чтобы получить текущее напряжение . задаем это время таймеру . запоминаем текущее напряжение в буфере , включаем РХХ на выдвижение. через 2мс рабы основной программы мы попадаем опять сюда , но так как таймер еще не досчитал - то новых измерений не произойдет и рхх продолжит двигаться . как только таймер досчитает , мы зададим новое время ему , и если оно будет =0 то рхх стоп . конечно нужно время уменьшать чуть , чтобы рхх не газовал сам .
теперь как только микрик замкнулся - то есть перешли в режим ХХ нужно включить РХХ на задвигание пока обороты не станут равны нужным нам ХХ +200 или 100 (ну диапазон работы РХХ) это уже в алгоритме ХХ вставить ...

вооот .. вроде все красиво ) кто что думает ) подскажите если че не так )
WAZ21051 gti 1.7i SECU3Ts + mm1.2.3(1)
ВАЗ21310 1.7i Я7.2 2001г
nikll
LQFP144 - On Top Of The Game
Posts: 553
Joined: Sun Nov 06, 2011 9:20 pm
Location: Russia, Yekaterinburg
Contact:

Re: Алгоритмы РХХ и не только (Algorithms of idling regulato

Post by nikll »

Начальное выдвижение не стоит делать через цикл (забьешь все ресурсы контроллера тупой операцией), лудше в таймер добавь проверку и обработку.

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

По поводу алгоритма демпфера не подскажу т.к. слабо себе представляю как и для чего оно работает, тут ты уж сам какнибудь :)
Stranger21
LQFP144 - On Top Of The Game
Posts: 1664
Joined: Fri Jul 01, 2011 2:10 pm
Location: г Уфа

Re: Алгоритмы РХХ и не только (Algorithms of idling regulato

Post by Stranger21 »

ну так поддержание хх у меня так и реализовано так вроде как ... каждые 2-2.5 мс прога попадает в процедуру РХХ , а в ней уже смотрится где обороты и стоит ли двигать РХХ или только УОЗ ...

думаешь выдвижение РХХ на старте много съест?
код вот такой

Code: Select all

//Процедура устаовки РХХ в стартовую позицию для запуска и задания 1800 оборотов
void idlregul_control(struct ecudata_t* d)
{
  // Если старт разрешен , и напряжение на дпдз меньше нужного то включить РХХ
 // иначе стоп РХХ и запрет старта
 if ((idl_start_en)&&(d->sens.v_tps < V_TPS_MAGNITUDE(TPS_V_START)))
 
   idlregul_set_state(1,d); 
 
 else
 {
   idlregul_set_state(3,d);
   idl_start_en = 0;
   
 }
АЦп мериет и без меня , я только порты буду защелкивать .... таймер мне кажется больше ресурсов съест )

демпфер нужен для плавного сброса газа ... ну так везде реализовано , даже на вакуумных РХХ

первые два пункта реализовал вроде . ограничение по дпдз на минимальное и максимальное положении рхх поставил .. чтобы не сломать его )))
WAZ21051 gti 1.7i SECU3Ts + mm1.2.3(1)
ВАЗ21310 1.7i Я7.2 2001г
nikll
LQFP144 - On Top Of The Game
Posts: 553
Joined: Sun Nov 06, 2011 9:20 pm
Location: Russia, Yekaterinburg
Contact:

Re: Алгоритмы РХХ и не только (Algorithms of idling regulato

Post by nikll »

Туть суть в том что через таймер вызов функции получается асинхронный, тогда как запустив циклический вызов этой функции в основном цикле ты забьеш все кроме прерываний.
Тебе же не надо каждую милисекунду вызывать функцию, правильно? ты ее стартуй и вешай в таймер, милисекунд на 100-150, ну или сколько там примерно надо на вскидку это хорошо бы знать хотябы примерно. Замеряй скорость работы своего РХХ, накинь простенкое уровнение вычесления времени выдвежения РХХ в зависимости от его стартового положения, и ближе к концу этого времени с вызовом через таймер перепроверь положение РХХ.
Кстати, я надеюсь у тебя там предусмотренны выключатели в крайних положениях РХХ? а то всякое бывает, глюкнет от какойнибудь наводки контроллер и будет РХХ выкручиваться до победного, такое лудьше аппаратно ограничивать.
Post Reply