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

Обсуждаем прошивки, алгоритмы работы в разных режимах (например, алгоритм работы автоподсоса).
Наборы тюнингованых прошивок МПСЗ SECU (заточенных под конкретную конфигурацию двигателя)
Post Reply
alvikagal
Posts: 4657
Joined: 18 Sep 2013, 01:58
Your CAR: ВАЗ-21099 1,5л.
SECU version: official SECU-3i TBZ
Location: Украина, Павлоград
Has thanked: 624 times
Been thanked: 1020 times
Contact:

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

Post by alvikagal »

STC wrote:Еще замечания и дополнения:
- функцию stpatt_dir нужно вызывать перед stpmot_run(), а не после (опять таки если по аналогии с моей);
Спасибо.
Во вложении правильно это сделано или нужно сделать как я исправил в предыдущем своём сообщении?
60-2/SECU-3iTBZ-v4.9/бенз-газ/ДПДЗ/ДТВ/УДК/ГБО-4/ВЗ.
Отчёт ГБО-4 на карбюратор с SECU-3i - http://secu-3.org/forum/viewtopic.php?f=19&t=1549
Продаю бортовой компьютер - viewtopic.php?p=47182#p47182
User avatar
STC
Posts: 13843
Joined: 30 Apr 2013, 23:41
Your CAR: AZLK 2140
SECU version: DIY SECU-3
Location: North Korea
Has thanked: 2160 times
Been thanked: 4335 times
Contact:

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

Post by STC »

В сам код я глубоко вникать не буду. в исправленном варианте что-то добавилось, но проблема осталась та же.
Тот код что ты написал не учитывает реальные условия. Функция gasdos_control, в которую я вставил твой код, будет вызываться из основного цикла прошивки (это каждые 4-6мс примерно). После каждого вызова stpatt_run нужно устанавливать флаг что начался отсчет шагов и при каждом вхождении проверять не занят ли мотор, если занят, то не выполнять следующую команду пока он не закончит. У меня это сделано через так называемую машину состояний:

Code: Select all

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
Posts: 328
Joined: 10 May 2013, 14:23
Your CAR: I go on foot
SECU version: DIY SECU-3
Location: Запорожье
Has thanked: 6 times
Been thanked: 89 times

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

Post by KOT »

Немного влезу в программирование)) У меня вместо Case (что сравнивает переменную и выполняет одно из условий) есть переменная двухбайтовая, по значению которой выполняется безусловный переход.
Т.е подпрограмма работает быстрей, хотя может и не смысла в этом.
Знаю что такое же есть на СИ и IAR умеет так компилировать, но как это написать на СИ увы не знаю((
Машина ЗАЗ 1103i, ГБО4. Управление ДВС: аналог Secu-3 и MegasquirtAVR модифицированное железо и своя прошивка.
User avatar
STC
Posts: 13843
Joined: 30 Apr 2013, 23:41
Your CAR: AZLK 2140
SECU version: DIY SECU-3
Location: North Korea
Has thanked: 2160 times
Been thanked: 4335 times
Contact:

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

Post by STC »

Т.е подпрограмма работает быстрей, хотя может и не смысла в этом.
Знаю что такое же есть на СИ и 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
Posts: 4657
Joined: 18 Sep 2013, 01:58
Your CAR: ВАЗ-21099 1,5л.
SECU version: official SECU-3i TBZ
Location: Украина, Павлоград
Has thanked: 624 times
Been thanked: 1020 times
Contact:

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

Post by alvikagal »

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

Вот кусок этого кода с комментариями:

Code: Select all

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-3iTBZ-v4.9/бенз-газ/ДПДЗ/ДТВ/УДК/ГБО-4/ВЗ.
Отчёт ГБО-4 на карбюратор с SECU-3i - http://secu-3.org/forum/viewtopic.php?f=19&t=1549
Продаю бортовой компьютер - viewtopic.php?p=47182#p47182
User avatar
STC
Posts: 13843
Joined: 30 Apr 2013, 23:41
Your CAR: AZLK 2140
SECU version: DIY SECU-3
Location: North Korea
Has thanked: 2160 times
Been thanked: 4335 times
Contact:

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

Post by STC »

Да, что-то типа этого.
Я так понимаю, что нужно будет ещё делать реализацию управления шаговым двигателем как ты сделал в 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
Posts: 4657
Joined: 18 Sep 2013, 01:58
Your CAR: ВАЗ-21099 1,5л.
SECU version: official SECU-3i TBZ
Location: Украина, Павлоград
Has thanked: 624 times
Been thanked: 1020 times
Contact:

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

Post by alvikagal »

Сделать копию файла smcontrol и внести в нём изменения и назвать его по-другому или в один файл всё скопировать лучше?
60-2/SECU-3iTBZ-v4.9/бенз-газ/ДПДЗ/ДТВ/УДК/ГБО-4/ВЗ.
Отчёт ГБО-4 на карбюратор с SECU-3i - http://secu-3.org/forum/viewtopic.php?f=19&t=1549
Продаю бортовой компьютер - viewtopic.php?p=47182#p47182
KOT
Posts: 328
Joined: 10 May 2013, 14:23
Your CAR: I go on foot
SECU version: DIY SECU-3
Location: Запорожье
Has thanked: 6 times
Been thanked: 89 times

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

Post by KOT »

STC wrote:
Т.е подпрограмма работает быстрей, хотя может и не смысла в этом.
Знаю что такое же есть на СИ и IAR умеет так компилировать, но как это написать на СИ увы не знаю((
Компилятор делает следующим образом. Если количество case не превышает нескольких штук (например 3...5), то просто последовательно сравниваются значения, если кол-во case больше, то формируется таблица переходов, индексом в которой является значение case. IAR особенно хорош.
Абалдеть, не знал.
Машина ЗАЗ 1103i, ГБО4. Управление ДВС: аналог Secu-3 и MegasquirtAVR модифицированное железо и своя прошивка.
User avatar
STC
Posts: 13843
Joined: 30 Apr 2013, 23:41
Your CAR: AZLK 2140
SECU version: DIY SECU-3
Location: North Korea
Has thanked: 2160 times
Been thanked: 4335 times
Contact:

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

Post by STC »

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 (вступаем!)
User avatar
STC
Posts: 13843
Joined: 30 Apr 2013, 23:41
Your CAR: AZLK 2140
SECU version: DIY SECU-3
Location: North Korea
Has thanked: 2160 times
Been thanked: 4335 times
Contact:

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

Post by STC »

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 (вступаем!)
Post Reply

Return to “Прошивки”