Регулятор оборотов ДВС на Arduino. Система запуска и прогрева ДВС. Счетчик мото-часов. ШИМ-регулятор вентиллятора.

Модераторы: новичок, Володька Николаев, argon84, Вопрос, mmcl200

OLD
Сообщения: 6
Зарегистрирован: 13 янв 2018, 17:04
Имя: Евгений
Откуда: Мещовск, Калужская область
Возраст: 47

Регулятор оборотов ДВС на Arduino. Система запуска и прогрева ДВС. Счетчик мото-часов. ШИМ-регулятор вентиллятора.

Сообщение OLD »

Приветствую всех!

Хочу представить свою разработку. Код готов. На двигателе еще не испытывал. Идет процесс установки на двигатель.

1. Что это такое.

1.1 Регулятор оборотов .
Поддерживает постоянные обороты вне зависимости от нагрузки. Не нужна педаль "газа". Обороты выставляются потенциометром. Привод дроссельной заслонки от мощной серво-машинки. По сути, это PID-регулятор. Используется метод Зиглера-Никольса. Реагирование на внешние события. Например, поднятая навеска и КПП на нейтрали — перевод двигателя на ХХ.

1.2 Система запуска и прогрева ДВС. (Не нужна для инжекторных и дизельных двигателей)
1.2.1 "Автоподсос".Управление воздушной заслонкой в зависимости от температуры двигателя. Привод воздушной заслонки от мощной серво-машинки. Температура берется с цифрового датчика.
1.2.2 Обогащение топливной смеси. Эмуляция нескольких нажатий на педаль "газа" при запуске холодного двигателя.

1.3 Счетчик моточасов.

1.4 ШИМ-регулятор оборотов вентиллятора охлаждения.
Плавное управление вентиллятором. Растет температура — растут обороты вентиллятора.

2. Область применения.

2.1. Самодельные трактора, вездеходы, стационарные генераторы электроэнергии, мотопомпы и т.п.
2.2 Синхронизация работы нескольких ДВС.
2.3 Беспилотные ТС.


3. Готовность кода проекта.

3.1 Регулятор оборотов ДВС 95% (остался датчик нейтрали)
3.2 Система запуска и прогрева ДВС 100%
3.3 Счетчик моточасов 0%
3.4 ШИМ-регулятор оборотов вентиллятора 95%

4. Испытания на ДВС.

4.1 Регулятор оборотов ДВС 20%
4.2 Система запуска и прогрева ДВС 0%
4.3 Счетчик моточасов 0%
4.4 ШИМ-регулятор оборотов вентиллятора 0%

5. Содержимое репозитория bitbucket.org/OLD1976/throttle-control

5.1 Директория libraries Библиотеки Arduino необходимые для компиляции проекта.
5.2 Директория throttle-control Директория проекта
5.2.1 Файл throttle-control.ino Код программы для Arduino (Mega).
5.2.2 Файл pitches.h Заголовочный файл для воспроизведения мелодии при старте Arduino.
5.2.3 Файл throttle-control.fzz Макетная плата проекта для программы Fritzing. (fritzing.org/download/)
5.2.4 Файл my_parts.fzbz Файл электронных компонентов для программы Fritzing, которые отсутствуют в Базе Элементов программы.
5.2.5 Файл readme.txt Файл описания проекта

6. Список компонентов.

6.1 Предохранитель в корпусе, 10А 1 шт.
6.2 БП DC/DC 12В --> 5В 10-12А 1 шт. ali.onl/O0r
6.3 Arduino Mega 2560 1 шт.
6.4 Плата расширения для Mega 2560 R3 (Шилд) 1 шт. ali.onl/O0q
6.5 Потенциометр-слайдер (можно крутилку) 1 шт. ali.onl/O0p
6.6 ИК датчик препятствий для тахометра и датчик нейтрали 2 шт. ali.onl/O0o
6.7 Датчик температуры DS18B20 1 шт. (для карбовых ДВС) ali.onl/NZE
6.8 Сервопривод MG996R 2 шт. (для ижекторов и дизелей — 1шт.) ali.onl/NZC
6.9 Дисплей LCD1602 + I2C ЖК 1 шт. ali.onl/NZA
6.10 Зуммер на 5В. ЗП-5, например. 1 шт.
6.11 2-х позиционный переключатель 2 шт.
6.12 Концевой переключатель для навески трактора 2 шт.
6.13 Провода для макетирования 1 набор ali.onl/NZv
6.14 Светодиоды. Красный, желтый, зеленый 3 шт.
6.15 Резистор 200-240 Ом для светодиодов 3 шт.
6.16 Резистор 4.7 кОм для датчика темперетуры 1 шт.

7. Управление и индикация.

7.1 Тумблер выбора режима.
7.1.1 Режим регулирования оборотов.
7.1.2 Режим принудительного ХХ/прогрева ДВС (зависит от температуры).
7.2 Кнопка обогащения (без фиксации). При нажатии, если двигатель холодный и включен режим прогрева, сработает сервопривод дросселя и 4 раза "нажмет на педаль газа".
7.3 Потенциометр. Можно задать рабочие обороты ДВС, которые будут поддерживаться постоянными. В пределах от ХХ до 3000 (переменная RPMmax).
7.4 Тумблер включения автоматического перехода на ХХ при поднятой навеске (концевик) и (или) положении КПП в нейтрали (концевик или датчик). Либо любые другие события.
7.5 Красный светодиод. Горит, если выбран режим ХХ/прогрева.
7.6 Желтый светодиод. Горит, если выбран режим ХХ/прогрева и температура ниже 40 градусов. Мигает 4 раза, если нажали кнопку обогащения.
7.7 Зеленый светодиод. Горит, если выбран режим регулирования оборотов.
7.8 Дисплей. Показывает обороты ДВС (RPM), температуру ДВС (T), начальную температуру ДВС ™, угол открытия дроссельной заслонки (Out).

8. Алгоритм работы системы.

Включаем зажигание. Подается питание на контроллер и сервоприводы. Контроллер готов к работе. Звучит мелодия. Производится замер начальной температуры ДВС. Перед запуском холодного двигателя нужно выбрать режим ХХ/прогрева. Если температура ниже 40гр (TempMax), включается режим прогрева ДВС (желтый светодиод). Возможно нажать кнопку обогащения смеси (только если ДВС не вращается) для уверенного пуска. Заводим двигатель. С первыми оборотами закрывается воздушная заслонка. Далее, по мере пррогрева, она приоткрывается. Желтый светодиод погас, красный горит — ДВС работает на ХХ. Переключаем тумблер в режим регулирования. Обороты устанавливаются согласно положению потенциометра. По необходимости, вторым тумблером включаем автоматический переход на ХХ. Например, если остановились и включили "нейтраль", ДВС сам перешел на ХХ.
Аватара пользователя
argon84
Недобрый
Сообщения: 2354
Зарегистрирован: 11 апр 2013, 15:26
Имя: Андрей
Откуда: Москва

Регулятор оборотов ДВС на Arduino. Система запуска и прогрева ДВС. Счетчик мото-часов. ШИМ-регулятор вентиллятора.

Сообщение argon84 »

Идея интересная! Желаю удачи! Обратите внимание на применяемую элементную базу и исполнение узлов/блоков!! У меня уже есть грабли с применением "бытовухи" в промышленности и транспорте. Температура, помехи, вибрация, грязь, время жизни(наработка на отказ)
Правила, инструкции, как вставить фото и видео: viewforum.php?f=330
mmcl200
Администратор
Сообщения: 9618
Зарегистрирован: 24 фев 2009, 13:29
Имя: Денис
Откуда: Санкт-Петербург

Регулятор оборотов ДВС на Arduino. Система запуска и прогрева ДВС. Счетчик мото-часов. ШИМ-регулятор вентиллятора.

Сообщение mmcl200 »

OLD, пару вопросов имею,
Почему исполнительным механизмом приняты сервоприводы? а не шаговый двигатель?
Почему на МЕГЕ? уно не хватает?
OLD
Сообщения: 6
Зарегистрирован: 13 янв 2018, 17:04
Имя: Евгений
Откуда: Мещовск, Калужская область
Возраст: 47

Регулятор оборотов ДВС на Arduino. Система запуска и прогрева ДВС. Счетчик мото-часов. ШИМ-регулятор вентиллятора.

Сообщение OLD »

mmcl200 писал(а): 24 май 2018, 12:46 Почему исполнительным механизмом приняты сервоприводы? а не шаговый двигатель?
1. Быстродействие. Нагрузка на ДВС может меняться быстро. Реакция регулятора должна быть еще быстрее.
2. Шаговому двигателю нужен драйвер. Сервопривод уже является цифровым устройством с обратной связью.
Почему на МЕГЕ? уно не хватает?
Все дело в аппаратных внешних прерываниях. У УНО их 2, у Меги - 6. Только для регулятора оборотов хватит и Уно. Датчик тахометра должен быть подключен к пину 2 или 3.
Но я решил использовать Мегу потому ,что хочу навешать на Ардуину много функций. Любая Ардуина - весьма мощная штука. И ее не следует затормаживать опросом состояния тумблера или кнопки миллион раз в секунду. В моем проекте используется пока 3 внешних прерывания. И еще 1 или 2 - планирую.

Еще один момент - память. Большая программа может просто не поместится в УНО.
Аватара пользователя
val_001
Сообщения: 860
Зарегистрирован: 15 июл 2014, 02:20
Имя: Валерий
Откуда: Санкт-Петербург

Регулятор оборотов ДВС на Arduino. Система запуска и прогрева ДВС. Счетчик мото-часов. ШИМ-регулятор вентиллятора.

Сообщение val_001 »

Так и не понял, для чего все это нужно. Область применения понятна, способы решения - тоже. Но для чего это все в вездеходной тематике - не понимаю.
Переходные процессы в виде запуска, прогрева - это вроде как нужно. Хотя и не обязательно. Только это не главное в вездеходах.
Почта: val_001@mail.ru
Локаут до 24.06.2020
Дмитрий78
Сообщения: 3204
Зарегистрирован: 19 мар 2010, 08:43
Откуда: Ленинград

Регулятор оборотов ДВС на Arduino. Система запуска и прогрева ДВС. Счетчик мото-часов. ШИМ-регулятор вентиллятора.

Сообщение Дмитрий78 »

OLD,
Задумать и написать, это треть дела. Ещё две трети отладить на практике. Например на низкой передаче добиться движения с изменяющейся нагрузкой без рывков. Ведь нога человека по сигналу от головы заранее уберёт газ, в то время как жесткий алгоритм при увеличении нагрузки поддаст газу, при достижении оборотов убавит, а мотор по инерции обороты превысит. Придется уменьшить газ, обороты по инерции упадут ниже заявленных, придется опять поддать газу. И так далее.
Ну и если это будет комерческий продукт, то важно что бы он адаптировался на любой мотор без танцев с бубном. Не устанавливался, а адаптировался под управление конкретным мотором, ведь даже два идентичных мотора могут по разному реагировать на педаль газа.
Аватара пользователя
argon84
Недобрый
Сообщения: 2354
Зарегистрирован: 11 апр 2013, 15:26
Имя: Андрей
Откуда: Москва

Регулятор оборотов ДВС на Arduino. Система запуска и прогрева ДВС. Счетчик мото-часов. ШИМ-регулятор вентиллятора.

Сообщение argon84 »

В своё время один товарищ делал круиз контроль на УАЗ Патриот под электронную педаль. Всё получилось, проект дорос до коммерческого. На этапе отстройки ПИД регулятора пришлось поиграться.. сильно всё зависит от тяговооруженности конкретной машины. В большие тягуны проседает(заранее не разгоняется, глаз нет) и с горки продолжает разгоняться какое-то время. Где мощности движка хватает - идёт ровно. Бонусом получили работу КК и на пониженной. Вот тут есть определенная прелесть! 1-я пониженная, 1000-1200 об/мин и поперли! Держит ровно, лишнего газа не дает и не проседает. Несколько раз только так и вылезал из чачи. Мне очень понравился этот режим.
В расчетах регулятора учитывали включенную передачу иначе не получалось нормально. Передачу вычисляли из показаний тахометра и спидометра.
Правила, инструкции, как вставить фото и видео: viewforum.php?f=330
Аватара пользователя
val_001
Сообщения: 860
Зарегистрирован: 15 июл 2014, 02:20
Имя: Валерий
Откуда: Санкт-Петербург

Регулятор оборотов ДВС на Arduino. Система запуска и прогрева ДВС. Счетчик мото-часов. ШИМ-регулятор вентиллятора.

Сообщение val_001 »

argon84 писал(а): 25 май 2018, 11:54Бонусом получили работу КК и на пониженной. Вот тут есть определенная прелесть! 1-я пониженная, 1000-1200 об/мин и поперли! Держит ровно, лишнего газа не дает и не проседает. Несколько раз только так и вылезал из чачи. Мне очень понравился этот режим.
То есть, речь фактически идет об ограничении тяги двигателя. Вполне схожий режим устанавливается гораздо более простым способом при помощи ручного газа с фиксацией положения. А на карбюраторных автомобилях и просто ручкой предпускового режима.
А вот если на Ардуино сделать не ограничение оборотов небольшим устойчивым значением и соответственно ограничение тяги двигателя, а ПБС, вот то да, было бы мегаполезно и очень востребовано.
Почта: val_001@mail.ru
Локаут до 24.06.2020
Аватара пользователя
argon84
Недобрый
Сообщения: 2354
Зарегистрирован: 11 апр 2013, 15:26
Имя: Андрей
Откуда: Москва

Регулятор оборотов ДВС на Arduino. Система запуска и прогрева ДВС. Счетчик мото-часов. ШИМ-регулятор вентиллятора.

Сообщение argon84 »

val_001 писал(а): 25 май 2018, 12:31То есть, речь фактически идет об ограничении тяги двигателя. Вполне схожий режим устанавливается гораздо более простым способом при помощи ручного газа с фиксацией положения. А на карбюраторных автомобилях и просто ручкой предпускового режима.
А вот если на Ардуино сделать не ограничение оборотов небольшим устойчивым значением и соответственно ограничение тяги двигателя, а ПБС, вот то да, было бы мегаполезно и очень востребовано.
Да ничего подобного! Диапазон открытия дроссельной заслонки при поддержании любого режима 0-100% Возможность ручного газа тоже предусмотрена и у меня потенциометр выведен. Это ерунда по сравнению с движением на КК, даже сравнивать смысла нет.
Фактически у нас и есть регулятор оборотов. Система поддерживает обороты двигателя на выбранной передаче. Т.к. коробка механическая этого достаточно чтоб двигаться с заданной скоростью.
Правила, инструкции, как вставить фото и видео: viewforum.php?f=330
Аватара пользователя
Санха
Сообщения: 412
Зарегистрирован: 15 дек 2010, 14:55
Откуда: Пермь

Регулятор оборотов ДВС на Arduino. Система запуска и прогрева ДВС. Счетчик мото-часов. ШИМ-регулятор вентиллятора.

Сообщение Санха »

Год прошел.
интересно., как развивается проект???...есть необходимость в такой "штуковине".....
не надо выдумывать велосипед, посмотри как делают другие, и сделай лучше ..
меня можно найти здесь (ник э..эх):
http://www.fishing.perm.ru/forum/
OLD
Сообщения: 6
Зарегистрирован: 13 янв 2018, 17:04
Имя: Евгений
Откуда: Мещовск, Калужская область
Возраст: 47

Регулятор оборотов ДВС на Arduino. Система запуска и прогрева ДВС. Счетчик мото-часов. ШИМ-регулятор вентиллятора.

Сообщение OLD »

Санха писал(а): 23 апр 2019, 19:10 Год прошел.
интересно., как развивается проект???...есть необходимость в такой "штуковине".....
Мелкими шажками. Урывками. Нет времени. Причем, осталось-то соединить провода. :(
Но думаю, в этом году доделаю.
Евгений 010
Сообщения: 234
Зарегистрирован: 13 фев 2018, 11:55
Имя: Евгений
Откуда: Сыктывкар

Регулятор оборотов ДВС на Arduino. Система запуска и прогрева ДВС. Счетчик мото-часов. ШИМ-регулятор вентиллятора.

Сообщение Евгений 010 »

Есть саит alex guver , попробуйте там задать вопросы, очень многое у него сделано на Ардуино.
OLD
Сообщения: 6
Зарегистрирован: 13 янв 2018, 17:04
Имя: Евгений
Откуда: Мещовск, Калужская область
Возраст: 47

Регулятор оборотов ДВС на Arduino. Система запуска и прогрева ДВС. Счетчик мото-часов. ШИМ-регулятор вентиллятора.

Сообщение OLD »

Евгений 010 писал(а): 23 апр 2019, 21:38 Есть саит alex guver , попробуйте там задать вопросы, очень многое у него сделано на Ардуино.
У меня нет вопросов, но есть недостаток времени. Сомневаюсь, что alex мне поможет с ним. :no:
gkirk
Сообщения: 116
Зарегистрирован: 25 янв 2012, 17:21
Имя: Артем
Откуда: Москва

Регулятор оборотов ДВС на Arduino. Система запуска и прогрева ДВС. Счетчик мото-часов. ШИМ-регулятор вентиллятора.

Сообщение gkirk »

Я тоже как-то занялся вопросом реализации регулятора оборотов.

У меня на вездеходе карбюраторный двигатель ВАЗ-2108, на нем висит тандемный гидронасос хода, питающий гидромоторы.
Скорость движения регулируется расходом насосов. А вот обороты ДВС я хотел регулировать переменным резистором на панели приборов, выставляя требуемое значение для текущего режима движения.

Очевидно, что в зависимости от нагрузки на гидромоторы потребуется так называемый "автомат газа" для ДВС. Дополнительной функцией необходимо ограничивать обороты ДВС на максимальных для гидравлики 3400 об/мин.

Реализовал на Ардуино Уно, управляю дроссельной заслонкой сервомашинкой, обороты "читаю" с катушки зажигания. Требуемые обороты - потенциометр.
На данный момент осталось подобрать коэффициенты ПИД-регулятора. Делаю это с помощью трех переменных резисторов, которые онлайн меняют эти коэффициенты.

Регулирование осуществляется, как задумано, но не удалось полностью избавиться от перерегулирования и колебательности переходного процесса.
Сейчас я не уверен, что на карбюраторном двигателе это реализуемо. Очень уж сложно прогнозируем отклик и скорость отклика ДВС на подачу топливно-воздушной смеси из карбюратора, т.к. зависимость оборотов вращения двигателя от угла открытия дроссельной заслонки гуляет в очень широких пределах.

А вот для движков с электронной дроссельной заслонкой, на мой взгляд, это интересная и реализуемая идея для двигателей без штатного центробежного механического регулятора.
OLD
Сообщения: 6
Зарегистрирован: 13 янв 2018, 17:04
Имя: Евгений
Откуда: Мещовск, Калужская область
Возраст: 47

Регулятор оборотов ДВС на Arduino. Система запуска и прогрева ДВС. Счетчик мото-часов. ШИМ-регулятор вентиллятора.

Сообщение OLD »

Я думаю, брать обороты с катушки - не правильно. Только с коленвала. И меток (отверстий, магнитов и т.п.) должно быть больше одной. Минимум 3, лучше - 6 или 8. У любого двигателя есть неравномерность вращения. Например, из-за разности компрессии по цилиндрам. Значение этой неравномерности нужно исключить из процесса регулирования. Скачут обороты +- 50, значит не регулируем в пределах 100.

Вернуться в «Электроника»