Page 1 of 13

Выбираем оптимальный алгоритм управл. ВОЗДУШНОЙ ЗАСЛОНКОЙ

Posted: Sat Jan 05, 2013 9:53 pm
by STC
Итак, я научил прошивку крутить шаговый двигатель используя связку L297+L298. 2 выхода управляющие ШД должны быть переназначены как SM_DIR и SM_STP.
Теперь осталось все таки определиться с конкретным алгоритмом управление. Как и любому ленивому программисту мне не хочется долго переделывать программу в поисках оптимального решения. Хочу все и сразу! :lol:
Аппаратное обеспечение для управления ВЗ обсуждается тут viewtopic.php?f=70&t=965
В прошивке появился модуль smcontrol который отвечает за управления ШД. Если кратко, то есть 2 функции:

Code: Select all

void stpmot_dir(uint8_t dir);
void stpmot_run(uint16_t steps);
Первая устанавливает направление, вторая крутит мотор на указанное число шагов. Функция stpmot_run не блокирует вызвавший ее поток, а только запускает процесс вращения и выходит, а сам процесс протекает в фоне.

Обратной связи для оперделения крайних положений заслонки пока нет, но в будущем при желании можно будет ее сделать. Пока выдаем большее число шагов для инициализации и принимаем за крайнее положение.
Для меня очевидно что нужно делать открытие ВЗ не только от температуры но и следить за оборотами. По таблице зависимости положения ВЗ от температуры выставляется положение ВЗ. В менеджере есть параметр, назовем его WRMRPM (обороты прогрева). Система старается поддерживать заданные обороты прогрева дополнительно меняя положение ВЗ. Положение ВЗ = Положение из таблицы + корректировка по оборотам.
Выход из режима прогрева будет осуществляться по следующим условиям:
  • Температура охлаждающей жидкости выше 70°
  • Обороты кратковременно превысили значение, назовем его WLRPM (задается из менеджера, например 2500мин-1)
  • Вход ручника (можно переназначить). На первое время обойдемся без этого.
  • Вход датчика скорости (можно переназначить). На первое время обойдемся без этого.
В последних 3-х вариантах есть 2 сценария: 1- открывать ВЗ полностью и ничего с ней не делать; 2 - прекращать регулировку оборотов, а ВЗ продолжает устанавливаться по таблице температуры (пока она не превысит 70°).

Алгоритм предложенный dimonfish:
download/file.php?id=1188
viewtopic.php?f=70&t=965&start=220

[Добавлено 31.01.2012]
Видео уже работающей системы. download/file.php?id=1254

Re: Выбираем оптимальный алгоритм управл. ВОЗДУШНОЙ ЗАСЛОНКО

Posted: Sat Jan 05, 2013 10:33 pm
by dimonfish
Ай да STC, ай да МОЛОДЕЦ!!! Трудится аки пчела - Респект!!!
ну и моя позиция не изменна - по температуре по карте, со "стартовой" поправкой в сторону закрытия, и шоп число шагов можно было регулировать в определенных пределах.

Re: Выбираем оптимальный алгоритм управл. ВОЗДУШНОЙ ЗАСЛОНКО

Posted: Sun Jan 06, 2013 2:34 pm
by Vasili4
В последних 3-х вариантах есть 2 сценария: 1- открывать ВЗ полностью и ничего с ней не делать; 2 - прекращать регулировку оборотов, а ВЗ продолжает устанавливаться по таблице температуры (пока она не превысит 70°).
думаю 2 вариант надо реализовывать. на 1 варианте движение на непрогретом будет проблемным
Как заслонка при включении зажигания будет вести себя? выставляться по таблице?

Re: Выбираем оптимальный алгоритм управл. ВОЗДУШНОЙ ЗАСЛОНКО

Posted: Sun Jan 06, 2013 3:02 pm
by STC
Как заслонка при включении зажигания будет вести себя? выставляться по таблице?
Да. В таблице будет задано положение ВЗ от температуры.
думаю 2 вариант надо реализовывать. на 1 варианте движение на непрогретом будет проблемным
Мне тоже кажется что 2-й сценарий лучше.

Re: Выбираем оптимальный алгоритм управл. ВОЗДУШНОЙ ЗАСЛОНКО

Posted: Sun Jan 06, 2013 8:36 pm
by Dmitrich2
STC wrote: В менеджере есть параметр, назовем его WRMRPM (обороты прогрева).
[*] Температура охлаждающей жидкости выше 70°
[*] Обороты кратковременно превысили значение, назовем его WLRPM (задается из менеджера, например 2500мин-1)
[*] Вход ручника (можно переназначить). На первое время обойдемся без этого.
[*] Вход датчика скорости (можно переназначить). На первое время обойдемся без этого.[/list]
Желательно в менеджер кроме параметров оборотов прогрева вывести установочную температуру охлаждающей жидкости, т.к. не все выставляют 70°(это же будет температура переходом на РХХ)

Re: Выбираем оптимальный алгоритм управл. ВОЗДУШНОЙ ЗАСЛОНКО

Posted: Sun Jan 06, 2013 9:56 pm
by dimonfish
STC, у меня есть пожелание - закаменти подробней код в модуле заслонки, бо я категорично против регулятора заслонкой, и себе я в последствии етот кусок кода удалю, оставив температура\положение.

Re: Выбираем оптимальный алгоритм управл. ВОЗДУШНОЙ ЗАСЛОНКО

Posted: Mon Jan 07, 2013 12:29 am
by STC
STC, у меня есть пожелание - закаменти подробней код в модуле заслонки, бо я категорично против регулятора заслонкой, и себе я в последствии етот кусок кода удалю, оставив температура\положение.
Думаю что обойдешься несколькими кликами в менеджере :-)

Re: Выбираем оптимальный алгоритм управл. ВОЗДУШНОЙ ЗАСЛОНКО

Posted: Mon Jan 07, 2013 9:58 am
by dimonfish
а ну тогда круть :)
еще из хотелок - предусмотреть "ручной" режим. Сделать в менеджере крупные кнопки на главном екране (можно шоп в настройках менеджера их наличие включалось\выключалось) рядом с дашбоардом вольтажа температуры и по одиночному клику можно было закрывать\открывать заслонку (при етом оно выходило из режима авторегулирования и раобатало и после привешения температуры прогрева). Оно ведь бывают такие ситуации когда токо на подсосе и можеш ехать ну там например свечи кончаются, в край плохой бенз, etc.
про главный дашбоард, имхо место не рационально используется и если используем монитор с соотношением сторон отличным от 4\3. ноуты то например уже давно с таким отношением сторон мало попадаются и получается что по бокам пустует место, можно было бы "прилепить" несколько кнопочек :) заслонка, октан, запись лога.

Re: Выбираем оптимальный алгоритм управл. ВОЗДУШНОЙ ЗАСЛОНКО

Posted: Fri Jan 11, 2013 10:16 am
by Dmitrich2
STC wrote: В прошивке появился модуль smcontrol который отвечает за управления ШД.
Пока в прошивке не нашел.

Re: Выбираем оптимальный алгоритм управл. ВОЗДУШНОЙ ЗАСЛОНКО

Posted: Mon Jan 14, 2013 12:33 pm
by STC
Забыл их добавить в коммит. Уже добавил.