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: 2766

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 10 May 2014, 10:38

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

Хотелось бы продолжить развитие темы управления шаговым дозатором (ШД) газа.

alex9999 wrote:Дозатор газа (он же аттуатор, шагов там 255) продается отдельно от системы лямбда контроля.

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

alvikagal wrote:а вот ДПДЗ зачем?

Для реализации функции отсечки подачи газа т.е. отпустил педаль газа - аттуатор закрыл заслонку и пропан не подается пока обороты не упадут до оборотов подхвата (возобновления подачи газа). Допустим обороты до включения нейтральной передачи были 3000-3500 и обороты подхвата 1500 (задаются в программе) получается, что 3000-3500 до 1500 пропан не подается. Таким образом снижается расход.

Пока можно опустить этот момент, т.к. использую отключение газового клапана управлением ЭПХХ через реле.
Меньше дёрганий ШД и остаётся управление от концевика, т.е. не нужно ставить ДПДЗ.

При появлении в выхлопе кислорода (увеличении напряжения на лямбде) блок управления увеличивает подачу газа т.е. приоткрывает (на несколько шагов) заслонку аттуатора. При излишке подачи газа (уменьшении напряжения на лямбде) блок управления уменьшает подачу газа т.е. закрывает (на несколько шагов) заслонку аттуатора. Таблицы не применяются.

Алгоритм похож на тот который используется в secu-3 для контроля оборотов холостого хода. При увеличении оборотов увеличивается УОЗ и наоборот.

Уже установлен узкополосный датчик кислорода и есть несколько записаных логов. Проанализировал их и сделал следующие выводы и мысли по алгоритму:
1. При пуске открывать полностью ШД или сделать настраиваемое положение для старта. Механические дозаторы для 2-х камер будут ограничивать перелив газа в том же режиме, как работают без ШД. Инициа.лизация - полностью открытый ШД.
2. Включать управление ШД после 70 или 80 градусов ДТОЖ. Температура газового редуктора примерно такая же.
3. Не менять положение ШД если сигнал УДК в диапазоне 0,1-0,8В.
4. В диапазоне ХХ регулировать смесь когда обороты ниже 1100 и не использовать регулировку ХХ с помощью УОЗ, чтобы избежать качелей от регулировки смеси. Для газа не использую регулятор, т.к. от всё зависит от смеси и иногда увеличение УОЗ уменьшает обороты. Почему так - пока не понял.
5. При нажатии на педаль (концевик размыкается) открывать на определённое настраиваемое положение, чтобы избежать провалов при старте.

Управлять ШД пока планирую в ручную кнопками из салона со светодиодной индикацией сигнала УДК.
Программу управления буду писать для PIC16F676 (уже написан код индикации УДК) на ассемблере.
Возможно даже попробую сделать автоматическое управление ШД по описанному алгоритму, но немного позже - сначала ручное попробую осилить. Управлять ШД будет такой же драйвер как управление ВЗ.

Может кто напишет код в SECU для реализации управления шаговым дозатором (ШД) газа?
Возможно ли вообще такое совместить в SECU?
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: 801 times
Been thanked: 1317 times

Post 10 May 2014, 11:20

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

Если управлять из SECU-3, то получается нужно еще 2 выхода кроме выходов для ВЗ.
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: 2766

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 10 May 2014, 11:27

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

У меня сейчас в резерве 4 выхода ещё осталось. STEP и DIR для ШД есть куда подключить.
Я имел ввиду програмно возможно сделать или есть подводные камни по добавлению этой функции?
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: 801 times
Been thanked: 1317 times

Post 10 May 2014, 12:27

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

alvikagal wrote:Я имел ввиду програмно возможно сделать или есть подводные камни по добавлению этой функции?

Не вижу подводных камней.
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: 2766

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 10 May 2014, 15:45

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

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

Уже даже попросил, чтобы несколько условий проверить и сделать определённые действия.
Например:
Проверить обороты больше 1100, температура больше 70, состояние концевика разомкнут (можно игнорировать), напряжение УДК меньше 0,1В. или больше 0,8В.. Если условие выполняется, то тогда регулировать ШД по состоянию сигнала УДК.
Если условия не выполняются, то полное открытие.

Говорит, что это займёт очень много времени и нужно иметь контакт с автором.
Вот так. :(
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: 801 times
Been thanked: 1317 times

Post 10 May 2014, 17:17

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

Разбираться в чужих исходных текстах всегда тяжело (независимо от уровня подготовки). Контакт с автором безусловно ускоряет процесс.

Например:
Проверить обороты больше 1100, температура больше 70, состояние концевика разомкнут (можно игнорировать), напряжение УДК меньше 0,1В. или больше 0,8В.. Если условие выполняется, то тогда регулировать ШД по состоянию сигнала УДК.
Если условия не выполняются, то полное открытие.


  Code:
if (d->sens.frequen > 1100)
{ }


  Code:
if (d->sens.temperat > TEMPERATURE_MAGNITUDE(70.0))
{ }


  Code:
if (d->sens.carb != 0)
{
 //дроссельная заслонка открыта
}


  Code:
//Если ДК подключен ко входу ADD_IO1 (для ADD_IO2 аналогично)
if (d->sens.add_i1 < VOLTAGE_MAGNITUDE(0.1))
{
 //напряжение на входе ADD_IO1 меньше 0.1В
}


Ничего сложно. Только не забыть передавать указатель d (смотреть по аналогии с другими функциями).
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: 801 times
Been thanked: 1317 times

Post 10 May 2014, 17:28

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

Если посмотреть на большинство модулей прошивки, например choke.c, то они достаточно отвязаны от других частей прошивки и содержат относительно простой внешний интерфейс, что нужно сделать и вам. Как вписать свой модуль в прошивку я могу подробно рассказать. Если кратко, то есть функция инициализации, установки настроек и функция, которая вызавается в основном цикле (примерно каждые 4-6мс). Последняя функция должна быть построена автором так, чтобы ее выполенне не не было слишком долгим. Например ожидание чего-то. В этом случае нужно не ждать в самой функции, а проверить состояние и выйти, при необходимости запоминать состояние в переменных. Таким образом реализуется многозадачность.
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: 2766

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 10 May 2014, 18:23

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

Спасибо, ты уже половину кода написал.
Придёт ШД, посмотрю сколько у него полных шагов, а к этому времени может уже разберёмся как управлять ШД.
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
<<

alvikagal

User avatar

Posts: 2766

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 10 May 2014, 22:33

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

STC, вот что у нас пока получилось:
  Code:
#define ATT_STEP 255            //кол-во шагов ШД

/** открытие ШД */
#define ATT_DIR_CW   0

/** закрытие ШД */
#define ATT_DIR_CCW  1

stpatt_dir(ATT_DIR_CW);
if (d->sens.frequen < 1100)
{   
 stpatt_run(ATT_STEP + (ATT_STEP >> 5);
}
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_run(ATT_STEP >> 5); 
  stpatt_dir(ATT_DIR_CCW); 
  else if (d->sens.add_i1 > VOLTAGE_MAGNITUDE(0.8))   //если смесь богатая, то закрываем ШД на 3%
  { 

   stpatt_run(ATT_STEP >> 5);
   return;
}}}

Поправь пожалуйста.

ПС
Уже вижу, что каждый цикл если обороты будут ниже 1100, то будет в открытом положении жужжать на месте, а нужно один раз выполнять такое действие, если условия не изменялись.
И 100+3% нужно будет сделать только перед пуском, дальше нужно будет считать шаги и возвращать на их кол-во до полного открытия.
Last edited by alvikagal on 10 May 2014, 23:55, edited 1 time in total.
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: 801 times
Been thanked: 1317 times

Post 10 May 2014, 23:54

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

Оформил твой код в виде модуля, в стиле прошивки. Но, твой код не будет правильно работать, так как после вызова функции stpatt_run (а она как я понял делается по аналогии с моей stpmot_run()) нужно подождать пока шаговик не закончит движение прежде чем вызывать эту функцию снова. Еще замечания и дополнения:
- функцию stpatt_dir нужно вызывать перед stpmot_run(), а не после (опять таки если по аналогии с моей);
- функции модуля вызывать из основного кода по аналогии с функциями из choke.c;
- не забыть добавить gasdoser.c в Makefile;
- не забыть добавить -DGAS_DOSER
Attachments
gasdoser1.zip
(1.95 KiB) Downloaded 61 times
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 2 guests

Powered by phpBB® Forum Software © phpBB Group.