Самодельный электромобиль — всё не так, как думаешь
- Анализ и проектирование систем,
- Энергия и элементы питания,
- DIY или Сделай сам,
- Транспорт,
- Электроника для начинающих
Всем привет. Учась в университете я собрал маленький электромобильчик, ну или картинг. Его фишкой было то, что всё управление электроприводом, включая тормоза было отдано самодельному контроллеру. И именно о том, как я делал этот маленький автомобильчик, и с какими подводными камнями столкнулся при постройке — хотелось бы рассказать в данном материале. Материал не претендует на уникальность, но для меня это был большой и интересный опыт.
![image](https://webcf.waybackmachine.org/web/20191031094806im_/https://habrastorage.org/getpro/habr/post_images/0d7/ba5/bcd/0d7ba5bcd39361bb01bdd48e517dfef1.jpg)
Тема рассказа стоит на стыке аппаратного и программного аспектов. И в прошивке для контроллера я имел дело не с какими-то абстрактными понятиями или данными, а со вполне реальными «физическими» устройствами: реле, электродвигателем, транзисторами итп. Так что приведу кратенькую характеристику технической части, тот состав который был на момент всех танцев с бубном.
Тяговый двигатель — коллекторный универсальный. Может работать как от постоянного, так и от переменного напряжения. Рабочее напряжение 220 вольт.
![image](https://webcf.waybackmachine.org/web/20191031094806im_/https://habrastorage.org/getpro/habr/post_images/e16/7d7/b68/e167d7b689f2550e86b9952e6a642125.jpg)
Аккумуляторная батарея — 25 свинцово-кислотных ячеек по 6 вольт фирмы Casil, соединённых последовательно, по итогу получаем батарею 150-160 вольт. Она установлена сзади и перемотана синей изолентой, всё как положено :)
![image](https://webcf.waybackmachine.org/web/20191031094806im_/https://habrastorage.org/getpro/habr/post_images/c0f/c4f/b13/c0fc4fb132bc5363c231df22b9ecb5c7.jpg)
Двигатель приводил колёса в движение через червячный редуктор с передаточным числом i=10. На фото видно, что двигатель сочленен с редуктором с помощью небольшого валика, он был выточен специально.
![image](https://webcf.waybackmachine.org/web/20191031094806im_/https://habrastorage.org/getpro/habr/post_images/d6f/38c/a83/d6f38ca83b6009735c06a4f0355ce1b4.jpg)
Системы торможения, то есть тормозного диска с суппортом не было в принципе. Поставить физический тормоз на тот момент не получалось. Поэтому торможение двигателем оставалось единственным реальным вариантом, так что управление торможением машины тоже пришлось брать на себя контроллеру.
В принципе простой контроллер для электромобиля можно собрать и на «рассыпухе». Но хотелось бы, чтоб была возможность всё красиво настраивать с помощью программы, 21 век всё-таки. Путём долгих высоконаучных рассуждений за ужином я решил, что за основу контроллера стоит взять чип фирмы Microchip — pic16f877a, вот его краткие характеристики:
На тот момент я не очень шарил в электронике, и изначально хотел делать схему до безобразия тупой — двигатель включён или двигатель отключен, но вместо реле поставить транзисторный ключ, дабы ничего не щёлкало и не горело. Но решил, что риск оправдан, я ничего не терял да и просто хотелось сделать что-то стоящее. Так что остановился на связке микроконтроллер + силовой полевой транзистор в качестве ключа. Ручку газа и кнопку реверса вывел на руль.
При выборе транзистора я не скупился и выбрал IRFP4227PBF — N-канальный полевой транзистор (открывается положительным импульсом) на напряжение 200 вольт и максимальный ток 130 ампер. Корпус TO-247AC. Но, забегая вперед скажу — я смог сжечь и его.
![image](https://webcf.waybackmachine.org/web/20191031094806im_/https://habrastorage.org/getpro/habr/post_images/c72/18c/3ea/c7218c3ea988d6fbb05736a0d83b1f57.jpg)
Раз я использовал микроконтроллер в связке с полевым транзистором, то грех было не попробовать использование pwm/шим в схеме. Что такое шим? Широтно-импульсная модуляция (ШИМ, англ. pulse-width modulation (PWM)) — процесс управления мощностью методом пульсирующего включения и выключения прибора. — спасибо Википедии.
Достоинство такого способа управления транзистором: он во время работы находится в двух состояниях — либо полностью закрыт, тока нет и ничего не греется, либо он полностью открыт и сопротивление его составляет несколько милиом, соответственно в тепло на самом транзисторе рассеиваются какие-то доли ватта тепла, ну или единицы ватт, схема едва тёплая при таком режиме работы. И такой процесс — отрыть/закрыть происходит тысячи раз в секунду. Это называется частотой шим. Так же есть такая вещь, которая называется «скважность». Переводя на человеческий язык — эта цифра показывает какую долю времени открыт транзистор. Если чуть углубиться — допустим у нас частота ШИМ-синала 1000 Герц. Значит транзистор открывается и закрывается 1000 раз за секунду, и процесс переключения между включено и выключено 1/1000 доля секунды. Величина 1/1000 — это период частоты. А с помощью скважности мы показываем какую часть времени от периода транзистор открыт и через него течет ток. Для примера: в программе скважность 255 — это максимальная мощность, 127 — 50%, 0 — транзистор закрыт.
Для генерации такой частоты применялся встроенный в чип «физический» контроллер, хотя есть возможность программной реализации, но в этом случае контроллер только и будет делать, что генерировать на выводе частоту с заданным периодом и скважностью. А с использованием контрллера из переферии МК можно было и генерировать сигнал, и чтоб программа делала что-то ещё.
Чем дальше в лес, тем злее волки — от частоты ШИМ зависит и то, на сколько будет эффективно работать электропривод. Я пробовал разные частоты, от 2 до 15 килогерц, каждый раз это менялось программно. Честно говоря особой разницы не успел заметить, но уверен что она есть. К сожалению данных по этому вопросу не удалось получить в достаточном количестве. Единственное, что заметил — с разной частотой пищала машина во время работы. Кстати, если кто-то замечал в метро, электробусах и поездах, что во время старта слышно гул, писк, завывание — это как-раз таки пищат обмотки двигателя из-за работы на частотах контроллера. Очень это заметно на поезде «Ласточка», который по МЦК ходит, во время старта.
Следующая проблема была с реверсом двигателя. Двигатель коллекторный, у него две обмотки — неподвижная — статор, на корпусе, и вращающаяся — ротор. Для изменения направления вращения необходимо развернуть направление тока в одной из обмоток, не меня направления в другой. Для этого использовались два реле, срабатывали они одновременно, «перекидывая» схему на реверс при подаче на них питания. Но в первом варианте прошивки была ошибка — реле переключились под нагрузкой. Как итог теста под нагрузкой — два сгоревших реле, так как двигатель — индуктивная нагрузка и на контактах реле была нехилая такая дуга, контакты просто расплавились и сгорели во время переключения.
Выход из ситуации — вводим в программу условие, что перед переключением снимаем нагрузку выкручивая скважность PWM-сигнала на 0, перекидываем реле, и опять включаем мощность на заданный уровень. Именно так и работали тормоза на машине — реверсом. Только хардкор — никаких датчиков и энкодеров, ничего. А вот и фото релюшки, это вроде как реле стартера от жигулей. Если переключать их не под нагрузкой, то вполне работают и с высокими напряжениями, 160 вольт при 15 амперах держали, но допускаю, что контакты грелись ввиду малого сечения.
![image](https://webcf.waybackmachine.org/web/20191031094806im_/https://habrastorage.org/getpro/habr/post_images/f1b/358/156/f1b35815670bb9af015657ad127eb8aa.jpg)
![image](https://webcf.waybackmachine.org/web/20191031094806im_/https://habrastorage.org/getpro/habr/post_images/3b7/773/5c6/3b77735c6de9a2be1be39ce765877dd5.jpg)
После я допилил прошивку и мощность поднималась плавно до заданного уровня. А это уже исключает удары в трансмиссии и нагрузку на узлы. Вот так одна строчка в программе может увеличить срок службы агрегата.
Оставалось только правильно сочленить транзистор с контроллером. Сделал я это несколько не правильно, через оптическую пару, напрямую. Но эта схема прокатывает при работе с низкими напряжениями, при высоких рабочих напряжениях постоянно сгорал затвор транзистора, да и для управления нужен двухтактный драйвер. Нормальная схема приведена ниже. Но тем не менее на один раз схемы с оптической парой хватило, каким то чудом на тест драйве она работала, а выгорать начала сразу после него. Вот схема «правильного» драйвера, только в моём варианте ещё была развязка оптикой от контроллера. Картинка взята с Drive2:
![image](https://webcf.waybackmachine.org/web/20191031094806im_/https://habrastorage.org/getpro/habr/post_images/723/f64/92d/723f6492daa996d517a83d2ad563376e.jpg)
Вообще мои опыты с электроприводом начались ещё в школе и я испробовал много разных конструкций, но это самая удачная схема на тот момент. Если материал понравится, то напишу отдельный пост про всю эпопею.
![image](https://webcf.waybackmachine.org/web/20191031094806im_/https://habrastorage.org/getpro/habr/post_images/0d7/ba5/bcd/0d7ba5bcd39361bb01bdd48e517dfef1.jpg)
Тема рассказа стоит на стыке аппаратного и программного аспектов. И в прошивке для контроллера я имел дело не с какими-то абстрактными понятиями или данными, а со вполне реальными «физическими» устройствами: реле, электродвигателем, транзисторами итп. Так что приведу кратенькую характеристику технической части, тот состав который был на момент всех танцев с бубном.
Основные узлы
Тяговый двигатель — коллекторный универсальный. Может работать как от постоянного, так и от переменного напряжения. Рабочее напряжение 220 вольт.
![image](https://webcf.waybackmachine.org/web/20191031094806im_/https://habrastorage.org/getpro/habr/post_images/e16/7d7/b68/e167d7b689f2550e86b9952e6a642125.jpg)
Аккумуляторная батарея — 25 свинцово-кислотных ячеек по 6 вольт фирмы Casil, соединённых последовательно, по итогу получаем батарею 150-160 вольт. Она установлена сзади и перемотана синей изолентой, всё как положено :)
![image](https://webcf.waybackmachine.org/web/20191031094806im_/https://habrastorage.org/getpro/habr/post_images/c0f/c4f/b13/c0fc4fb132bc5363c231df22b9ecb5c7.jpg)
Двигатель приводил колёса в движение через червячный редуктор с передаточным числом i=10. На фото видно, что двигатель сочленен с редуктором с помощью небольшого валика, он был выточен специально.
![image](https://webcf.waybackmachine.org/web/20191031094806im_/https://habrastorage.org/getpro/habr/post_images/d6f/38c/a83/d6f38ca83b6009735c06a4f0355ce1b4.jpg)
Системы торможения, то есть тормозного диска с суппортом не было в принципе. Поставить физический тормоз на тот момент не получалось. Поэтому торможение двигателем оставалось единственным реальным вариантом, так что управление торможением машины тоже пришлось брать на себя контроллеру.
Контроллер для блока управления
В принципе простой контроллер для электромобиля можно собрать и на «рассыпухе». Но хотелось бы, чтоб была возможность всё красиво настраивать с помощью программы, 21 век всё-таки. Путём долгих высоконаучных рассуждений за ужином я решил, что за основу контроллера стоит взять чип фирмы Microchip — pic16f877a, вот его краткие характеристики:
![image](https://webcf.waybackmachine.org/web/20191031094806im_/https://habrastorage.org/getpro/habr/post_images/3d4/775/d75/3d4775d758648f5590a09594e4c5389a.jpg)
На тот момент я не очень шарил в электронике, и изначально хотел делать схему до безобразия тупой — двигатель включён или двигатель отключен, но вместо реле поставить транзисторный ключ, дабы ничего не щёлкало и не горело. Но решил, что риск оправдан, я ничего не терял да и просто хотелось сделать что-то стоящее. Так что остановился на связке микроконтроллер + силовой полевой транзистор в качестве ключа. Ручку газа и кнопку реверса вывел на руль.
Особенности схемы
При выборе транзистора я не скупился и выбрал IRFP4227PBF — N-канальный полевой транзистор (открывается положительным импульсом) на напряжение 200 вольт и максимальный ток 130 ампер. Корпус TO-247AC. Но, забегая вперед скажу — я смог сжечь и его.
![image](https://webcf.waybackmachine.org/web/20191031094806im_/https://habrastorage.org/getpro/habr/post_images/c72/18c/3ea/c7218c3ea988d6fbb05736a0d83b1f57.jpg)
PWM — что это такое и с чем её едят
Раз я использовал микроконтроллер в связке с полевым транзистором, то грех было не попробовать использование pwm/шим в схеме. Что такое шим? Широтно-импульсная модуляция (ШИМ, англ. pulse-width modulation (PWM)) — процесс управления мощностью методом пульсирующего включения и выключения прибора. — спасибо Википедии.
Достоинство такого способа управления транзистором: он во время работы находится в двух состояниях — либо полностью закрыт, тока нет и ничего не греется, либо он полностью открыт и сопротивление его составляет несколько милиом, соответственно в тепло на самом транзисторе рассеиваются какие-то доли ватта тепла, ну или единицы ватт, схема едва тёплая при таком режиме работы. И такой процесс — отрыть/закрыть происходит тысячи раз в секунду. Это называется частотой шим. Так же есть такая вещь, которая называется «скважность». Переводя на человеческий язык — эта цифра показывает какую долю времени открыт транзистор. Если чуть углубиться — допустим у нас частота ШИМ-синала 1000 Герц. Значит транзистор открывается и закрывается 1000 раз за секунду, и процесс переключения между включено и выключено 1/1000 доля секунды. Величина 1/1000 — это период частоты. А с помощью скважности мы показываем какую часть времени от периода транзистор открыт и через него течет ток. Для примера: в программе скважность 255 — это максимальная мощность, 127 — 50%, 0 — транзистор закрыт.
Для генерации такой частоты применялся встроенный в чип «физический» контроллер, хотя есть возможность программной реализации, но в этом случае контроллер только и будет делать, что генерировать на выводе частоту с заданным периодом и скважностью. А с использованием контрллера из переферии МК можно было и генерировать сигнал, и чтоб программа делала что-то ещё.
Чем дальше в лес, тем злее волки — от частоты ШИМ зависит и то, на сколько будет эффективно работать электропривод. Я пробовал разные частоты, от 2 до 15 килогерц, каждый раз это менялось программно. Честно говоря особой разницы не успел заметить, но уверен что она есть. К сожалению данных по этому вопросу не удалось получить в достаточном количестве. Единственное, что заметил — с разной частотой пищала машина во время работы. Кстати, если кто-то замечал в метро, электробусах и поездах, что во время старта слышно гул, писк, завывание — это как-раз таки пищат обмотки двигателя из-за работы на частотах контроллера. Очень это заметно на поезде «Ласточка», который по МЦК ходит, во время старта.
Подводные камни в алгоритме работы
Следующая проблема была с реверсом двигателя. Двигатель коллекторный, у него две обмотки — неподвижная — статор, на корпусе, и вращающаяся — ротор. Для изменения направления вращения необходимо развернуть направление тока в одной из обмоток, не меня направления в другой. Для этого использовались два реле, срабатывали они одновременно, «перекидывая» схему на реверс при подаче на них питания. Но в первом варианте прошивки была ошибка — реле переключились под нагрузкой. Как итог теста под нагрузкой — два сгоревших реле, так как двигатель — индуктивная нагрузка и на контактах реле была нехилая такая дуга, контакты просто расплавились и сгорели во время переключения.
Выход из ситуации — вводим в программу условие, что перед переключением снимаем нагрузку выкручивая скважность PWM-сигнала на 0, перекидываем реле, и опять включаем мощность на заданный уровень. Именно так и работали тормоза на машине — реверсом. Только хардкор — никаких датчиков и энкодеров, ничего. А вот и фото релюшки, это вроде как реле стартера от жигулей. Если переключать их не под нагрузкой, то вполне работают и с высокими напряжениями, 160 вольт при 15 амперах держали, но допускаю, что контакты грелись ввиду малого сечения.
![image](https://webcf.waybackmachine.org/web/20191031094806im_/https://habrastorage.org/getpro/habr/post_images/f1b/358/156/f1b35815670bb9af015657ad127eb8aa.jpg)
![image](https://webcf.waybackmachine.org/web/20191031094806im_/https://habrastorage.org/getpro/habr/post_images/3b7/773/5c6/3b77735c6de9a2be1be39ce765877dd5.jpg)
После я допилил прошивку и мощность поднималась плавно до заданного уровня. А это уже исключает удары в трансмиссии и нагрузку на узлы. Вот так одна строчка в программе может увеличить срок службы агрегата.
Соединяем контроллер с транзистором правильно
Оставалось только правильно сочленить транзистор с контроллером. Сделал я это несколько не правильно, через оптическую пару, напрямую. Но эта схема прокатывает при работе с низкими напряжениями, при высоких рабочих напряжениях постоянно сгорал затвор транзистора, да и для управления нужен двухтактный драйвер. Нормальная схема приведена ниже. Но тем не менее на один раз схемы с оптической парой хватило, каким то чудом на тест драйве она работала, а выгорать начала сразу после него. Вот схема «правильного» драйвера, только в моём варианте ещё была развязка оптикой от контроллера. Картинка взята с Drive2:
![image](https://webcf.waybackmachine.org/web/20191031094806im_/https://habrastorage.org/getpro/habr/post_images/723/f64/92d/723f6492daa996d517a83d2ad563376e.jpg)
Несколько интересных моментов
- При старте электродвигатель потребляет в разы больше электричества даже без нагрузки. А при заторможенном во время старта роторе графитовые щётки начинали дымиться.
- В тот момент, когда на машине сгорает транзистор — она начинает ехать сама, ибо батарею от двигателя отделяет только транзистор. Так что введение схем защиты оправдано, если не хочешь бежать за машиной и молиться, чтоб она никого не сбила.
- Двигатель, который я использовал, взят из стиральной машинки. Обороты без нагрузки у него заявлены 14000 — вериться слабо, но на шильдике была именно эта цифра. Хотя он прекрасно тянет «с низов».
- Напряжение на батарее проседает, без нагрузки у меня оно было около 150 вольт, под нагрузкой спокойно может быть 140. А если батарея подсевшая то и 130, из-за этого на свежих батареях первые несколько минут машина могла ехать очень хорошо, потом когда батареи тратили где-то 20-30% энергии, то начинался более менее рабочий режим, машина ехала медленнее, медленнее разгонялась, но это было не так заметно. Когда батареи съедали примерно 70% заряда, то езда превращалась в черепаший ход.
- У меня получилось сжечь даже довольно мощный транзистор из-за перенапряжения на его затворе. Для защиты от этого нужно зашунтировать затвор транзистора диодом на + источника питания драйвера транзистора.
- Реле подключались к МК с помощью маломощных транзисторных ключей на небольших полевичках.
В конце концов получилось то, что на видео
Вообще мои опыты с электроприводом начались ещё в школе и я испробовал много разных конструкций, но это самая удачная схема на тот момент. Если материал понравится, то напишу отдельный пост про всю эпопею.
Комментарии 62
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.