[Из песочницы] Самодельный электромобиль — всё не так, как думаешь

Всем привет. Учась в университете я собрал маленький электромобильчик, ну или картинг. Его фишкой было то, что всё управление электроприводом, включая тормоза было отдано самодельному контроллеру. И именно о том, как я делал этот маленький автомобильчик, и с какими подводными камнями столкнулся при постройке — хотелось бы рассказать в данном материале. Материал не претендует на уникальность, но для меня это был большой и интересный опыт.

image
Тема рассказа стоит на стыке аппаратного и программного аспектов. И в прошивке для контроллера я имел дело не с какими-то абстрактными понятиями или данными, а со вполне реальными «физическими» устройствами: реле, электродвигателем, транзисторами итп. Так что приведу кратенькую характеристику технической части, тот состав который был на момент всех танцев с бубном.

Основные узлы


Тяговый двигатель — коллекторный универсальный. Может работать как от постоянного, так и от переменного напряжения. Рабочее напряжение 220 вольт.

image

Аккумуляторная батарея — 25 свинцово-кислотных ячеек по 6 вольт фирмы Casil, соединённых последовательно, по итогу получаем батарею 150–160 вольт. Она установлена сзади и перемотана синей изолентой, всё как положено :)

image

Двигатель приводил колёса в движение через червячный редуктор с передаточным числом i=10. На фото видно, что двигатель сочленен с редуктором с помощью небольшого валика, он был выточен специально.

image

Системы торможения, то есть тормозного диска с суппортом не было в принципе. Поставить физический тормоз на тот момент не получалось. Поэтому торможение двигателем оставалось единственным реальным вариантом, так что управление торможением машины тоже пришлось брать на себя контроллеру.

Контроллер для блока управления


В принципе простой контроллер для электромобиля можно собрать и на «рассыпухе». Но хотелось бы, чтоб была возможность всё красиво настраивать с помощью программы, 21 век всё-таки. Путём долгих высоконаучных рассуждений за ужином я решил, что за основу контроллера стоит взять чип фирмы Microchip — pic16f877a, вот его краткие характеристики:

image

На тот момент я не очень шарил в электронике, и изначально хотел делать схему до безобразия тупой — двигатель включён или двигатель отключен, но вместо реле поставить транзисторный ключ, дабы ничего не щёлкало и не горело. Но решил, что риск оправдан, я ничего не терял да и просто хотелось сделать что-то стоящее. Так что остановился на связке микроконтроллер + силовой полевой транзистор в качестве ключа. Ручку газа и кнопку реверса вывел на руль.

Особенности схемы


При выборе транзистора я не скупился и выбрал IRFP4227PBF — N-канальный полевой транзистор (открывается положительным импульсом) на напряжение 200 вольт и максимальный ток 130 ампер. Корпус TO-247AC. Но, забегая вперед скажу — я смог сжечь и его.

image

PWM — что это такое и с чем её едят


Раз я использовал микроконтроллер в связке с полевым транзистором, то грех было не попробовать использование pwm/шим в схеме. Что такое шим? Широтно-импульсная модуляция (ШИМ, англ. pulse-width modulation (PWM)) — процесс управления мощностью методом пульсирующего включения и выключения прибора. — спасибо Википедии.

Достоинство такого способа управления транзистором: он во время работы находится в двух состояниях — либо полностью закрыт, тока нет и ничего не греется, либо он полностью открыт и сопротивление его составляет несколько милиом, соответственно в тепло на самом транзисторе рассеиваются какие-то доли ватта тепла, ну или единицы ватт, схема едва тёплая при таком режиме работы. И такой процесс — отрыть/закрыть происходит тысячи раз в секунду. Это называется частотой шим. Так же есть такая вещь, которая называется «скважность». Переводя на человеческий язык — эта цифра показывает какую долю времени открыт транзистор. Если чуть углубиться — допустим у нас частота ШИМ-синала 1000 Герц. Значит транзистор открывается и закрывается 1000 раз за секунду, и процесс переключения между включено и выключено 1/1000 доля секунды. Величина 1/1000 — это период частоты. А с помощью скважности мы показываем какую часть времени от периода транзистор открыт и через него течет ток. Для примера: в программе скважность 255 — это максимальная мощность, 127 — 50%, 0 — транзистор закрыт.

Для генерации такой частоты применялся встроенный в чип «физический» контроллер, хотя есть возможность программной реализации, но в этом случае контроллер только и будет делать, что генерировать на выводе частоту с заданным периодом и скважностью. А с использованием контрллера из переферии МК можно было и генерировать сигнал, и чтоб программа делала что-то ещё.

Чем дальше в лес, тем злее волки — от частоты ШИМ зависит и то, на сколько будет эффективно работать электропривод. Я пробовал разные частоты, от 2 до 15 килогерц, каждый раз это менялось программно. Честно говоря особой разницы не успел заметить, но уверен что она есть. К сожалению данных по этому вопросу не удалось получить в достаточном количестве. Единственное, что заметил — с разной частотой пищала машина во время работы. Кстати, если кто-то замечал в метро, электробусах и поездах, что во время старта слышно гул, писк, завывание — это как-раз таки пищат обмотки двигателя из-за работы на частотах контроллера. Очень это заметно на поезде «Ласточка», который по МЦК ходит, во время старта.

Подводные камни в алгоритме работы


Следующая проблема была с реверсом двигателя. Двигатель коллекторный, у него две обмотки — неподвижная — статор, на корпусе, и вращающаяся — ротор. Для изменения направления вращения необходимо развернуть направление тока в одной из обмоток, не меня направления в другой. Для этого использовались два реле, срабатывали они одновременно, «перекидывая» схему на реверс при подаче на них питания. Но в первом варианте прошивки была ошибка — реле переключились под нагрузкой. Как итог теста под нагрузкой — два сгоревших реле, так как двигатель — индуктивная нагрузка и на контактах реле была нехилая такая дуга, контакты просто расплавились и сгорели во время переключения.

Выход из ситуации — вводим в программу условие, что перед переключением снимаем нагрузку выкручивая скважность PWM-сигнала на 0, перекидываем реле, и опять включаем мощность на заданный уровень. Именно так и работали тормоза на машине — реверсом. Только хардкор — никаких датчиков и энкодеров, ничего. А вот и фото релюшки, это вроде как реле стартера от жигулей. Если переключать их не под нагрузкой, то вполне работают и с высокими напряжениями, 160 вольт при 15 амперах держали, но допускаю, что контакты грелись ввиду малого сечения.

image

image

После я допилил прошивку и мощность поднималась плавно до заданного уровня. А это уже исключает удары в трансмиссии и нагрузку на узлы. Вот так одна строчка в программе может увеличить срок службы агрегата.

Соединяем контроллер с транзистором правильно


Оставалось только правильно сочленить транзистор с контроллером. Сделал я это несколько не правильно, через оптическую пару, напрямую. Но эта схема прокатывает при работе с низкими напряжениями, при высоких рабочих напряжениях постоянно сгорал затвор транзистора, да и для управления нужен двухтактный драйвер. Нормальная схема приведена ниже. Но тем не менее на один раз схемы с оптической парой хватило, каким то чудом на тест драйве она работала, а выгорать начала сразу после него. Вот схема «правильного» драйвера, только в моём варианте ещё была развязка оптикой от контроллера. Картинка взята с Drive2:

image

Несколько интересных моментов


  • При старте электродвигатель потребляет в разы больше электричества даже без нагрузки. А при заторможенном во время старта роторе графитовые щётки начинали дымиться.
  • В тот момент, когда на машине сгорает транзистор — она начинает ехать сама, ибо батарею от двигателя отделяет только транзистор. Так что введение схем защиты оправдано, если не хочешь бежать за машиной и молиться, чтоб она никого не сбила.
  • Двигатель, который я использовал, взят из стиральной машинки. Обороты без нагрузки у него заявлены 14000 — вериться слабо, но на шильдике была именно эта цифра. Хотя он прекрасно тянет «с низов».
  • Напряжение на батарее проседает, без нагрузки у меня оно было около 150 вольт, под нагрузкой спокойно может быть 140. А если батарея подсевшая то и 130, из-за этого на свежих батареях первые несколько минут машина могла ехать очень хорошо, потом когда батареи тратили где-то 20–30% энергии, то начинался более менее рабочий режим, машина ехала медленнее, медленнее разгонялась, но это было не так заметно. Когда батареи съедали примерно 70% заряда, то езда превращалась в черепаший ход.
  • У меня получилось сжечь даже довольно мощный транзистор из-за перенапряжения на его затворе. Для защиты от этого нужно зашунтировать затвор транзистора диодом на + источника питания драйвера транзистора.
  • Реле подключались к МК с помощью маломощных транзисторных ключей на небольших полевичках.


В конце концов получилось то, что на видео



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

© Habrahabr.ru