American English British English Български Čeština Français Deutsch (Du) Magyar Italiano 日本語 Lietuvių Polski Српски Slovenčina Español (Tú) Türkçe Українська
Select language:

Предложение: добавить лямбда контроль для газового редуктора

<<

alvikagal

User avatar

Posts: 2765

Joined: 18 Sep 2013, 01:58

Location: Украина, Павлоград

Your CAR: ВАЗ-21099 1,5л.

SECU version: DIY SECU-3T


Has thanked: 334 times
Been thanked: 449 times

Post 11 May 2014, 00:01

Re: Предложение: добавить лямбда контроль для газового редук

STC wrote:Еще замечания и дополнения:
- функцию stpatt_dir нужно вызывать перед stpmot_run(), а не после (опять таки если по аналогии с моей);

Спасибо.
Во вложении правильно это сделано или нужно сделать как я исправил в предыдущем своём сообщении?
60-2/SECU/ДКЗ/бенз-газ/ДД/ДТВ/УДК/ШДГ/ВЗ
Отчёт - viewtopic.php?f=6&t=236
Бортовой компьютер 20*04 - viewtopic.php?p=19996#p19996
SD card logger - viewtopic.php?f=12&t=1029
<<

STC

User avatar

Posts: 6539

Joined: 30 Apr 2013, 23:41

Location: Ukraine

Your CAR: AZLK 2140

SECU version: DIY SECU-3


Has thanked: 800 times
Been thanked: 1317 times

Post 11 May 2014, 00:18

Re: Предложение: добавить лямбда контроль для газового редук

В сам код я глубоко вникать не буду. в исправленном варианте что-то добавилось, но проблема осталась та же.
Тот код что ты написал не учитывает реальные условия. Функция gasdos_control, в которую я вставил твой код, будет вызываться из основного цикла прошивки (это каждые 4-6мс примерно). После каждого вызова stpatt_run нужно устанавливать флаг что начался отсчет шагов и при каждом вхождении проверять не занят ли мотор, если занят, то не выполнять следующую команду пока он не закончит. У меня это сделано через так называемую машину состояний:
  Code:
switch(state)
{
 case 0:
  ...
 case 1:
 ...
}
Author of the SECU-3™ project http://SECU-3.org. An open source engine control unit / Ignition control system, (C) 2007.
Клуб проекта в Facebook https://www.facebook.com/groups/secu3club
Клуб проекта ВКонтакте https://vk.com/secu3club (вступаем!)
<<

KOT

User avatar

Posts: 328

Joined: 10 May 2013, 14:23

Location: Запорожье


Has thanked: 6 times
Been thanked: 85 times

Post 11 May 2014, 20:55

Re: Предложение: добавить лямбда контроль для газового редук

Немного влезу в программирование)) У меня вместо Case (что сравнивает переменную и выполняет одно из условий) есть переменная двухбайтовая, по значению которой выполняется безусловный переход.
Т.е подпрограмма работает быстрей, хотя может и не смысла в этом.
Знаю что такое же есть на СИ и IAR умеет так компилировать, но как это написать на СИ увы не знаю((
Машина ЗАЗ 1103i, ГБО4. Управление ДВС: аналог Secu-3 и MegasquirtAVR модифицированное железо и своя прошивка.
<<

STC

User avatar

Posts: 6539

Joined: 30 Apr 2013, 23:41

Location: Ukraine

Your CAR: AZLK 2140

SECU version: DIY SECU-3


Has thanked: 800 times
Been thanked: 1317 times

Post 12 May 2014, 10:58

Re: Предложение: добавить лямбда контроль для газового редук

Т.е подпрограмма работает быстрей, хотя может и не смысла в этом.
Знаю что такое же есть на СИ и IAR умеет так компилировать, но как это написать на СИ увы не знаю((

Компилятор делает следующим образом. Если количество case не превышает нескольких штук (например 3...5), то просто последовательно сравниваются значения, если кол-во case больше, то формируется таблица переходов, индексом в которой является значение case. IAR особенно хорош.
Author of the SECU-3™ project http://SECU-3.org. An open source engine control unit / Ignition control system, (C) 2007.
Клуб проекта в Facebook https://www.facebook.com/groups/secu3club
Клуб проекта ВКонтакте https://vk.com/secu3club (вступаем!)
<<

alvikagal

User avatar

Posts: 2765

Joined: 18 Sep 2013, 01:58

Location: Украина, Павлоград

Your CAR: ВАЗ-21099 1,5л.

SECU version: DIY SECU-3T


Has thanked: 334 times
Been thanked: 449 times

Post 12 May 2014, 16:12

Re: Предложение: добавить лямбда контроль для газового редук

STC, голова квадратная становится.
Условия к алгоритму ставлю следующие:
1. Делаю проверку занятости ШД, если свободен, то делаю следующую проверку условий, а если занят, то выход.
Останавливать ШД не вижу смысла, т.к. нужно выполнить регулировку, а затем проверку по завершении регулировки. Пока так.
2. Проверка условий по оборотам, температуре и концевику, если выполняются, то тогда проверка УДК, если не выполняются условия, то выход.
3. Проверка УДК, если смесь бедная или богатая, то регулировка и выход, если в норме, то выход.

Вот кусок этого кода с комментариями:
  Code:
void gasdos_control(struct ecudata_t* d)
{
 if (!stpatt_is_busy())   //проверка занятости ШД, если свободен, то делаем проверку условий.
 {
  if (d->sens.frequen > 1100) && (d->sens.temperat > TEMPERATURE_MAGNITUDE(70.0)) && (d->sens.carb != 0)   //проверка выполнения условий
  {
   if (d->sens.add_i1 < VOLTAGE_MAGNITUDE(0.1))   //если смесь бедная, то открываем ШД на 3%
   {
    stpatt_dir(ATT_DIR_CW);
    stpatt_run(ATT_STEP >> 5);
   return;
   }
   else if (d->sens.add_i1 > VOLTAGE_MAGNITUDE(0.8))   //если смесь богатая, то закрываем ШД на 3%
   {
    stpatt_dir(ATT_DIR_CCW);
    stpatt_run(ATT_STEP >> 5);
    return;
   }
  }
 }
 else
{
 return;
}


Я так понимаю, что нужно будет ещё делать реализацию управления шаговым двигателем как ты сделал в SMCONTROL и ещё много чего. И похоже что сами мы это не осилим. :?
60-2/SECU/ДКЗ/бенз-газ/ДД/ДТВ/УДК/ШДГ/ВЗ
Отчёт - viewtopic.php?f=6&t=236
Бортовой компьютер 20*04 - viewtopic.php?p=19996#p19996
SD card logger - viewtopic.php?f=12&t=1029
<<

STC

User avatar

Posts: 6539

Joined: 30 Apr 2013, 23:41

Location: Ukraine

Your CAR: AZLK 2140

SECU version: DIY SECU-3


Has thanked: 800 times
Been thanked: 1317 times

Post 12 May 2014, 16:42

Re: Предложение: добавить лямбда контроль для газового редук

Да, что-то типа этого.

Я так понимаю, что нужно будет ещё делать реализацию управления шаговым двигателем как ты сделал в SMCONTROL и ещё много чего. И похоже что сами мы это не осилим. :?


Делайте по аналогии 1:1, copy-paste :)
Author of the SECU-3™ project http://SECU-3.org. An open source engine control unit / Ignition control system, (C) 2007.
Клуб проекта в Facebook https://www.facebook.com/groups/secu3club
Клуб проекта ВКонтакте https://vk.com/secu3club (вступаем!)
<<

alvikagal

User avatar

Posts: 2765

Joined: 18 Sep 2013, 01:58

Location: Украина, Павлоград

Your CAR: ВАЗ-21099 1,5л.

SECU version: DIY SECU-3T


Has thanked: 334 times
Been thanked: 449 times

Post 12 May 2014, 20:43

Re: Предложение: добавить лямбда контроль для газового редук

Сделать копию файла smcontrol и внести в нём изменения и назвать его по-другому или в один файл всё скопировать лучше?
60-2/SECU/ДКЗ/бенз-газ/ДД/ДТВ/УДК/ШДГ/ВЗ
Отчёт - viewtopic.php?f=6&t=236
Бортовой компьютер 20*04 - viewtopic.php?p=19996#p19996
SD card logger - viewtopic.php?f=12&t=1029
<<

KOT

User avatar

Posts: 328

Joined: 10 May 2013, 14:23

Location: Запорожье


Has thanked: 6 times
Been thanked: 85 times

Post 12 May 2014, 21:17

Re: Предложение: добавить лямбда контроль для газового редук

STC wrote:
Т.е подпрограмма работает быстрей, хотя может и не смысла в этом.
Знаю что такое же есть на СИ и IAR умеет так компилировать, но как это написать на СИ увы не знаю((

Компилятор делает следующим образом. Если количество case не превышает нескольких штук (например 3...5), то просто последовательно сравниваются значения, если кол-во case больше, то формируется таблица переходов, индексом в которой является значение case. IAR особенно хорош.

Абалдеть, не знал.
Машина ЗАЗ 1103i, ГБО4. Управление ДВС: аналог Secu-3 и MegasquirtAVR модифицированное железо и своя прошивка.
<<

STC

User avatar

Posts: 6539

Joined: 30 Apr 2013, 23:41

Location: Ukraine

Your CAR: AZLK 2140

SECU version: DIY SECU-3


Has thanked: 800 times
Been thanked: 1317 times

Post 12 May 2014, 22:44

Re: Предложение: добавить лямбда контроль для газового редук

alvikagal wrote:Сделать копию файла smcontrol и внести в нём изменения и назвать его по-другому или в один файл всё скопировать лучше?


Да, только названия переменных и функций поменяй. Все 1:1. И не забудь внести изменения в файле vstimer.c (смотри #ifdef SM_CONTROL)
Author of the SECU-3™ project http://SECU-3.org. An open source engine control unit / Ignition control system, (C) 2007.
Клуб проекта в Facebook https://www.facebook.com/groups/secu3club
Клуб проекта ВКонтакте https://vk.com/secu3club (вступаем!)
<<

STC

User avatar

Posts: 6539

Joined: 30 Apr 2013, 23:41

Location: Ukraine

Your CAR: AZLK 2140

SECU version: DIY SECU-3


Has thanked: 800 times
Been thanked: 1317 times

Post 12 May 2014, 22:46

Re: Предложение: добавить лямбда контроль для газового редук

alvikagal, советую зарегистрироваться на github, сделать fork master бранча репозитория прошивки и тренироваться. Я думаю что ты освоишь GIT.
Author of the SECU-3™ project http://SECU-3.org. An open source engine control unit / Ignition control system, (C) 2007.
Клуб проекта в Facebook https://www.facebook.com/groups/secu3club
Клуб проекта ВКонтакте https://vk.com/secu3club (вступаем!)
PreviousNext

Return to Прошивки

Who is online

Users browsing this forum: No registered users and 9 guests

cron
Powered by phpBB® Forum Software © phpBB Group.