Тема рассказа стоит на стыке аппаратного и программного аспектов. И в прошивке для контроллера я имел дело не с какими-то абстрактными понятиями или данными, а со вполне реальными «физическими» устройствами: реле, электродвигателем, транзисторами итп. Так что приведу кратенькую характеристику технической части, тот состав который был на момент всех танцев с бубном.
Основные узлы
Тяговый двигатель — коллекторный универсальный. Может работать как от постоянного, так и от переменного напряжения. Рабочее напряжение 220 вольт.
Аккумуляторная батарея — 25 свинцово-кислотных ячеек по 6 вольт фирмы Casil, соединённых последовательно, по итогу получаем батарею 150-160 вольт. Она установлена сзади и перемотана синей изолентой, всё как положено :)
Двигатель приводил колёса в движение через червячный редуктор с передаточным числом i=10. На фото видно, что двигатель сочленен с редуктором с помощью небольшого валика, он был выточен специально.
Системы торможения, то есть тормозного диска с суппортом не было в принципе. Поставить физический тормоз на тот момент не получалось. Поэтому торможение двигателем оставалось единственным реальным вариантом, так что управление торможением машины тоже пришлось брать на себя контроллеру.
Контроллер для блока управления
В принципе простой контроллер для электромобиля можно собрать и на «рассыпухе». Но хотелось бы, чтоб была возможность всё красиво настраивать с помощью программы, 21 век всё-таки. Путём долгих высоконаучных рассуждений за ужином я решил, что за основу контроллера стоит взять чип фирмы Microchip — pic16f877a, вот его краткие характеристики:
На тот момент я не очень шарил в электронике, и изначально хотел делать схему до безобразия тупой — двигатель включён или двигатель отключен, но вместо реле поставить транзисторный ключ, дабы ничего не щёлкало и не горело. Но решил, что риск оправдан, я ничего не терял да и просто хотелось сделать что-то стоящее. Так что остановился на связке микроконтроллер + силовой полевой транзистор в качестве ключа. Ручку газа и кнопку реверса вывел на руль.
Особенности схемы
При выборе транзистора я не скупился и выбрал IRFP4227PBF — N-канальный полевой транзистор (открывается положительным импульсом) на напряжение 200 вольт и максимальный ток 130 ампер. Корпус TO-247AC. Но, забегая вперед скажу — я смог сжечь и его.
PWM — что это такое и с чем её едят
Раз я использовал микроконтроллер в связке с полевым транзистором, то грех было не попробовать использование pwm/шим в схеме. Что такое шим? Широтно-импульсная модуляция (ШИМ, англ. pulse-width modulation (PWM)) — процесс управления мощностью методом пульсирующего включения и выключения прибора. — спасибо Википедии.
Достоинство такого способа управления транзистором: он во время работы находится в двух состояниях — либо полностью закрыт, тока нет и ничего не греется, либо он полностью открыт и сопротивление его составляет несколько милиом, соответственно в тепло на самом транзисторе рассеиваются какие-то доли ватта тепла, ну или единицы ватт, схема едва тёплая при таком режиме работы. И такой процесс — отрыть/закрыть происходит тысячи раз в секунду. Это называется частотой шим. Так же есть такая вещь, которая называется «скважность». Переводя на человеческий язык — эта цифра показывает какую долю времени открыт транзистор. Если чуть углубиться — допустим у нас частота ШИМ-синала 1000 Герц. Значит транзистор открывается и закрывается 1000 раз за секунду, и процесс переключения между включено и выключено 1/1000 доля секунды. Величина 1/1000 — это период частоты. А с помощью скважности мы показываем какую часть времени от периода транзистор открыт и через него течет ток. Для примера: в программе скважность 255 — это максимальная мощность, 127 — 50%, 0 — транзистор закрыт.
Для генерации такой частоты применялся встроенный в чип «физический» контроллер, хотя есть возможность программной реализации, но в этом случае контроллер только и будет делать, что генерировать на выводе частоту с заданным периодом и скважностью. А с использованием контрллера из переферии МК можно было и генерировать сигнал, и чтоб программа делала что-то ещё.
Чем дальше в лес, тем злее волки — от частоты ШИМ зависит и то, на сколько будет эффективно работать электропривод. Я пробовал разные частоты, от 2 до 15 килогерц, каждый раз это менялось программно. Честно говоря особой разницы не успел заметить, но уверен что она есть. К сожалению данных по этому вопросу не удалось получить в достаточном количестве. Единственное, что заметил — с разной частотой пищала машина во время работы. Кстати, если кто-то замечал в метро, электробусах и поездах, что во время старта слышно гул, писк, завывание — это как-раз таки пищат обмотки двигателя из-за работы на частотах контроллера. Очень это заметно на поезде «Ласточка», который по МЦК ходит, во время старта.
Подводные камни в алгоритме работы
Следующая проблема была с реверсом двигателя. Двигатель коллекторный, у него две обмотки — неподвижная — статор, на корпусе, и вращающаяся — ротор. Для изменения направления вращения необходимо развернуть направление тока в одной из обмоток, не меня направления в другой. Для этого использовались два реле, срабатывали они одновременно, «перекидывая» схему на реверс при подаче на них питания. Но в первом варианте прошивки была ошибка — реле переключились под нагрузкой. Как итог теста под нагрузкой — два сгоревших реле, так как двигатель — индуктивная нагрузка и на контактах реле была нехилая такая дуга, контакты просто расплавились и сгорели во время переключения.
Выход из ситуации — вводим в программу условие, что перед переключением снимаем нагрузку выкручивая скважность PWM-сигнала на 0, перекидываем реле, и опять включаем мощность на заданный уровень. Именно так и работали тормоза на машине — реверсом. Только хардкор — никаких датчиков и энкодеров, ничего. А вот и фото релюшки, это вроде как реле стартера от жигулей. Если переключать их не под нагрузкой, то вполне работают и с высокими напряжениями, 160 вольт при 15 амперах держали, но допускаю, что контакты грелись ввиду малого сечения.
После я допилил прошивку и мощность поднималась плавно до заданного уровня. А это уже исключает удары в трансмиссии и нагрузку на узлы. Вот так одна строчка в программе может увеличить срок службы агрегата.
Соединяем контроллер с транзистором правильно
Оставалось только правильно сочленить транзистор с контроллером. Сделал я это несколько не правильно, через оптическую пару, напрямую. Но эта схема прокатывает при работе с низкими напряжениями, при высоких рабочих напряжениях постоянно сгорал затвор транзистора, да и для управления нужен двухтактный драйвер. Нормальная схема приведена ниже. Но тем не менее на один раз схемы с оптической парой хватило, каким то чудом на тест драйве она работала, а выгорать начала сразу после него. Вот схема «правильного» драйвера, только в моём варианте ещё была развязка оптикой от контроллера. Картинка взята с Drive2:
Несколько интересных моментов
- При старте электродвигатель потребляет в разы больше электричества даже без нагрузки. А при заторможенном во время старта роторе графитовые щётки начинали дымиться.
- В тот момент, когда на машине сгорает транзистор — она начинает ехать сама, ибо батарею от двигателя отделяет только транзистор. Так что введение схем защиты оправдано, если не хочешь бежать за машиной и молиться, чтоб она никого не сбила.
- Двигатель, который я использовал, взят из стиральной машинки. Обороты без нагрузки у него заявлены 14000 — вериться слабо, но на шильдике была именно эта цифра. Хотя он прекрасно тянет «с низов».
- Напряжение на батарее проседает, без нагрузки у меня оно было около 150 вольт, под нагрузкой спокойно может быть 140. А если батарея подсевшая то и 130, из-за этого на свежих батареях первые несколько минут машина могла ехать очень хорошо, потом когда батареи тратили где-то 20-30% энергии, то начинался более менее рабочий режим, машина ехала медленнее, медленнее разгонялась, но это было не так заметно. Когда батареи съедали примерно 70% заряда, то езда превращалась в черепаший ход.
- У меня получилось сжечь даже довольно мощный транзистор из-за перенапряжения на его затворе. Для защиты от этого нужно зашунтировать затвор транзистора диодом на + источника питания драйвера транзистора.
- Реле подключались к МК с помощью маломощных транзисторных ключей на небольших полевичках.
В конце концов получилось то, что на видео
Вообще мои опыты с электроприводом начались ещё в школе и я испробовал много разных конструкций, но это самая удачная схема на тот момент. Если материал понравится, то напишу отдельный пост про всю эпопею.
Комментарии (62)
Fox_Alex
30.10.2019 00:54+3Надо было использовать штатный ремень от стиралки и выточить под него ведомый шкив под редуктор. Эти моторы гораздо лучше работают на высоких оборотах. Там и токи сразу ниже будут и КПД выше.
dimka_chudic Автор
30.10.2019 01:06+1Спасибо) это я в курсе) но удобнее такая кинематическая схема, я со шкивом пробовал — проскальзывает
drWhy
30.10.2019 08:11Проскальзывает при недостаточном натяжении ремня, при перетянутом подтормаживает. Ещё можно цепь поставить. А можно червячный редуктор — у них высокие передаточные числа.
Грэм Обри позаимствовал из стиралки только подшипники ради создания рекордного велосипеда, вы пошли дальше. Зачётная машинка.NetBUG
30.10.2019 17:49Движок от стиралки всё же ни разу не оптимален для карта. Его основное достоинство — доступность и более-менее приемлемая мощность.
gleb_l
30.10.2019 00:58+11. При ШИМ-управлении мощность, рассеиваемая на ключевом элементе, сильно зависит от длительности нахождения его в линейном режиме — то есть от длительности фронтов управляющих импульсов относительно длительности их горизонтальных полок. Оптопара в цепи управления затвором даже при частоте ШИМ в 1 кГц может существенно затянуть фронты.
2. Все индуктивное нужно шунтировать обратно-включенными диодами Шоттки, расположенными как можно ближе к концам обмоток, не полагаясь на таковые, встроенные в полевики. Больше шансов, что полевик выживет, и тепловой режим у него будет легче.
3. Все индуктивное, что переполюсовывается мостовой схемой, нужно также шунтировать диодами так, как нарисовано в первом комментарии
4. Если управлять по отдельности магнитным полем ротора и статора, можно сделать пусковую и ходовую характеристику мотора более мягкой и предотвратить излишнее искрение щеток и активный ток через ротор при старте — то есть можно программно имитировать моторы с последовательным возбуждением (отличаются мягким стартом), параллельным (отличаются резким стартом, ровным моментом от оборотов и низкими максимальными оборотами), и смешанным (компромисс и того, и того). В любом случае, желательно в основном управлять магнитным полем ротора, практически всегда поддерживая поле статора вблизи максимума (кроме совсем маломощных режимов), чтобы предотвратить ослабление магнитной связи ротор-статор, приводящий к увеличению активной составляющей тока ротора, нагреву обмотки, щеток и коллектора, и потере КПД — про это написано очень много в теоретических книгах и на форумах конструкторов электромобилей — эта инфа могла бы оказаться очень полезной еще на этапе проектирования электротележкиdimka_chudic Автор
30.10.2019 01:07Спасибо за замечания, шунтирующий диод на моторе там стоял, по поводу раздельного управления полями катушек — подумаю, пока что там просто последовательное соединение.
tbl
30.10.2019 01:21По второму пункту у меня вопрос: не нужно ли ограничивать ток через шунтирующий диод резистором? Иначе, я думаю, при слишком большом обратном токе можно пробить диод, и тогда каскадом должен полететь на свалку силовой транзистор. Вроде бы при сильных токах правильно рассчитанный RC-демпфер выглядит более выгодным решением по сравнению с диодом.
egigd
30.10.2019 19:40+1Не только не нужно, но и ни в коем случае нельзя!
Суть индуктивной нагрузки в том, что хоть ты тресни, при отключении она сохранит ток точно таким же, какой был до отключения. Если нужно, она создаст напряжение в десятки или даже сотни тысяч вольт, но ток этот течь заставит.
Потому-то и шунтируют Шоттки: они пропускают весь ток очень легко, не давая напряжению подняться даже до одного вольта. Поставишь резистор — тут же подскочит напряжение, а ток никак не изменится.
А чтобы диоды целы были надо просто их брать на ток, равный максимальному току через индуктивную нагрузку, или выше.
8street
30.10.2019 10:10По пункту 4. Все верно, но есть кое-что добавить. В идеале, конечно, сделать нечто похожее на современные системы управления, применяемые в промышленности. Например применить программные ПИД регуляторы скорости и тока якоря, включенные последовательно, а перед ними включить еще задатчик интенсивности. Таким образом, убивается 4 зайца: контроль тока, защита по току (долговременная, не от КЗ), контроль скорости и плавный пуск. Более подробно есть в документации на Siemens Simoreg DC или Sinamics DCM. Но это очень специфические знания, если вы не специалист по электроприводу, то разобраться будет сложно.
An_private
30.10.2019 11:20Оптопара в цепи управления затвором даже при частоте ШИМ в 1 кГц может существенно затянуть фронты.
Для высоковольтных цепей хорошо брать драйверы с опторазвязкой. Я использовал HCPL-3120 — у них время переключения 500нс. Правда к нему надо еще и изолированный DC-DC для питания.
ofStatic
30.10.2019 03:15+2Абсолютно неверно.
Первопричиной является именно сам ток. При попытке его «ограничить» резистором, индуктивность не даст это сделать, а продолжит пихать его в получившуюся цепочку любой ценой, что выльется в рост напряжения. Что приближает схему с резистором по характеристикам к схеме с полным отсутствием диода.
Ток там будет не абы какой запредельный, а ровно такой же, который тёк до этого через транзистор. Диод должен быть подобран соответствующим образом.tbl
30.10.2019 03:17тогда диод должен быть как можно ближе к индуктивной нагрузке
ofStatic
30.10.2019 03:21Зависит от схемы. С одним транзистором — да, ближе к нагрузке. С четырьмя в мостовой схеме — как нарисовано.
Fox_Alex
30.10.2019 04:27+1Вообще все силовые компоненты должны быть как можно ближе к нагрузке. А все управляющие (особенно драйверы затворов) как можно ближе к силовым. Ну а сам микроконтроллер можно и по-дальше, в более тихом месте установить.
stanced
30.10.2019 04:16Надо над дизайном и эргономикой поработать :)
Сначала ждал «выстрела» теслы в точку и автора в закате, но ближе к концу видео стало радостно, что этого не произошло)Fox_Alex
30.10.2019 04:35Для начала над прочностью конструкции. Дизайн в таких вещах вторичен) Я тоже в детстве строил всякие самоходные корчи (правда из велосипедов). Потом купил сварочный аппарат, но детство к тому моменту уже кончилось и я стал курочить мотоциклы. Может когда-нибудь дойдут руки снова до электротранспорта. Сейчас компоненты в доступе и намного круче, чем лет 15 назад, можно уже довольно серьезные вещи строить.
dimka_chudic, покупай сварочник и все у тебя будет круто!
Или еще круче — собери инвертор Негуляева, и сварку освоишь и силовую электронику заодно)
Javian
30.10.2019 05:55На видео максимальная скорость?
dimka_chudic Автор
30.10.2019 07:19+1нет, тк на полную не давал + ей нужно место для разгона, метров за 100 ровной дороги она более менее разгонялась
rudinandrey
30.10.2019 09:56по первому скриншоту подумал что боком валишь :))))) вообще молодец, побольше бы такого было. кружки по интересам и вот это вот все.
vlreshet
30.10.2019 11:50Кстати, вопрос к автору — не было мысли сделать из этого дрифт-кар? Как раз таки чтобы зимой на парковке развлекаться. И привод задний очень в тему сразу)
AllexIn
30.10.2019 11:51Мощности надо вагон.
Плюс зимой поверхность очень фиговая. Даже на 15 колесах чувствуешь каждый ком снега подмерзший. На мелких колесах вообще ад будет…lgorSL
30.10.2019 12:54Катался зимой на карте на 13л.с. — мощности хватало даже на шипованной резине, почти все повороты проходились немножко боком. На мелких колесах и без подвески было жестковато, но у карта и скорость не автомобильная, на 20-30 км/ч уже весело по льду скользить.
Tarakanator
30.10.2019 10:19Почему руль круглый, а не палка как на велосипеде? С палкой рычаг больше будет. Да и тянуть\толкаль легче, чем крутить.
vvm13
30.10.2019 10:52Насколько я понимаю, эта тележка называется «карт» (cart), ну, а «картинг» — это занятия (в смысле соревнования) с тележками, а не сами тележки.
vladvul
30.10.2019 11:59можно заменить щетки коллектора на токосъемники на валу, коммутируя ток ротора Н мостом
Nikita_64
30.10.2019 12:27По поводу транзистора. 130 А впечатляет, но это ведь максимальный импульсный ток при невысоком напряжении. В даташите на стр. 4 (Fig 12. Maximum Safe Operating Area) для 110 В при скважности 10000 (?) максимальный ток менее 1 А. Или я неправильно читаю?
An_private
30.10.2019 14:06Где вы там такое прочитали? Скважности там на графике вообще нет — есть лишь 3 графика для разной длительности единичного импульса. И обращаю внимание, что шкала напряжения логарифмическая. То есть следующая линия после 100В — это не 110, а 200В.
Ну и 130А — это не тот ток, конечно. В данном случае надо смотреть на Continuous Drain Current, то есть тот ток, который ключ может держать постоянно. И он в несколько раз меньше Irp (repetitive peak).Nikita_64
30.10.2019 16:20Действительно, ошибся, там 200В, и насчет скважности в Fig 12 не сказано, но это ведь ток импульсами по 100 микросекунд? Про Continuous Drain Current спасибо, там он дан для напряжения 10В, для 200В будет ниже или если суметь охлаждать, то неважно какое напряжение? Мне только кажется, что максимальный импульсный ток для 200В в Fig 12. Maximum Safe Operating Area не может быть меньше постоянного тока при том же напряжении. Заранее спасибо, если поможете разобраться.
An_private
30.10.2019 16:57насчет скважности в Fig 12 не сказано
Естессно не сказано, так как там внизу прямо указано — Single pulse — единичный импульс.
там он дан для напряжения 10В, для 200В будет ниже
facepalm
10В — это напряжение НА ЗАТВОРЕ (Gate-source voltage). Напряжение сток-исток при этом будет определяться током и сопротивлением открытого канала, при чём здесь 200В вообще?
максимальный импульсный ток для 200В в Fig 12. Maximum Safe Operating Area не может быть меньше постоянного тока при том же напряжении
Этот график вообще не о том. Он показывает — что будет, если при неизменном напряжении СТОК-ИСТОК открыть транзистор с заданным током на заданное время.
Максимальный ток в импульсе от начального напряжения не зависит вообще.
А если точнее, то надо смотреть две фазы — фазу линейной работы (переход из открытого состояния в закрытое и обратно) и фазу ключевой работы (полностью открытый ключ). В общем — там всё сложно и рассказывать про работу полевика в ключевом режиме можно долго.
zac04
30.10.2019 12:44почему не разогнался в ролике хотя бы разок до 20-30 км/ч? явно же на 150 В коллекторный может выдать больше мощности. )
думаю очень много народу ждало хотя бы скорости бытового самоката. )
LevOrdabesov
30.10.2019 14:14Лавры kreosan не дают автору покоя.
AllexIn
30.10.2019 14:31+3Помоему Креосан какую-то дичь делал. А здесь вполне адекватные проекты.
unwrecker
30.10.2019 16:48+2Вообще-то в последних видео у него электровелосипед на коллекторном моторе от стиралки, аккумуляторами на большое напряжение и самодельным шим-контроллером. То есть по сути то же самое что тут.
gurux13
30.10.2019 15:48ШИМ + индкутивность — шунтирование = -полевик.
Пусковые токи у таких движков тоже офигенные. Неплохо бы на график тока посмотреть. Осциллографом. Проверить, что шим с вертикальными фронтами, что батарейка и полевик не выходят за ТТХ.
Ну и что полевик закрывается полностью.
Тормозить реверсом? Почему-то мне кажется, что это как минимум неэффективно, как максимум — опасно. У Вас же есть прекрасное место для хранения энергии — аккум. Почему бы не рекуперировать? Тем же ШИМом.romanetz_omsk
30.10.2019 16:09Хм, идея интересная. Если замыкать движку ключом (накопительная индуктивность = индуктивность обмоток), ждать нарастания тока до номинала, потом размыкать ключ, и сливать через диод в аккумулятор. Может чего и получится. Естественно, управление в токовом режиме, что-то типа 3842.
VANSCoder
30.10.2019 16:50Существуют специальные драйверы для транзисторов, много места не занимают и работают идеально. Подбирайте нужный
VasiliSker
30.10.2019 18:02+1Знакомая схема драйвера… полез смотреть… да точно — моя же! :)
Управление мосфетами
GeorgKDeft
30.10.2019 19:21А колеса от чего? Обычно самоделки чуть ли не на велосипедных передвигаются, а тут прям с запасом… кузовом обрастать «ТеслаРус» будет на будущее?)
semennikov
30.10.2019 20:29Извините, если у Вас червячный редуктор, то если с мотора просто снять напряжение, то колеса встанут намертво и без всякого тормоза. Или я чего то не понял?
Grey83
30.10.2019 21:57Только если ротор жёстко сцепленный с винтом редуктора моментально остановится.
А он скорее всего ещё какое-то время по инерции будет вращаться (ведь передаточное число довольно маленькое для такого типа редуктора), если его специально не затормозить каким-либо образом.
steanlab
30.10.2019 22:12+2а ведь молодец паренёк.
dimka_chudic — желаю пронести технический задор через всю жизнь :). путь в тысячу ли начинается с первого шага. ждем продолжения.
мне, в самые продуктивные для кружков моделистов годы, возня с картингами не зашла, ну а потом, потом начали девицы больше интересовать :)
9a75sd
30.10.2019 22:49-1Управлять таким мотором с помощью ШИМ'а — не очень хорошая идея — из-за пульсаций момент слабый на низких оборотах. Гораздо лучше управлять с помощью частотного преобразования. Было бы интересно увидеть эксперименты со свои или готовым частотником над таким мотором.
И это, червячный редуктор лучше убрать, а может и вовсе заменить этот мотор от стиралки на 3-фазный асинхронный электродвигатель, например, от вытяжки
Grey83
Чтобы уменьшить пусковые токи нужно либо постепенно увеличивать напряжение при пуске.
Туда бы временно поставить амперметр на пару сотен ампер. Чтобы определиться со стартовыми, тормозными и рабочими токами. Ну или замерить эти токовыми клещами для постоянного тока.
Так и должно быть. Если я не ошибаюсь, то при размыкании реле будет тянуться дуга из-за слишком маленького зазора м/у контактами, т.к. оно расчитано на напряжение на порядок меньшее, чем используется в Вашем электромобиле. А нагрев зависит только от тока, текущего по проводнику.
Можно вместо реле задействовать транзисторное управление по мостовой схеме (т.е. вместо 1 транзистора, диода и 2 реле поставить 4 транзистора и 4 диода).
Примерно так:
А для аварийного отключения поставить бытовой автомат постоянного тока с соответствующими параметрами.
Кстати, а реализована хоть какая-то защита двигателя и цепей управления им при заклинивании редуктора?
dimka_chudic Автор
Спасибо за комментарий и информацию, по поводу защиты — та машина уже давно разобрана, я сейчас новую собираю, ставится амперметр + энкодер, алгоритм учтет заклинивание, ну отсутствие вращения + большой ток
p0gank
Схема плохая, негодная. В верхнем плече транзисторы стоят неправильные, если это биполярные, то эмиттер должен быть на питании, если полевые, то должны быть N-типа. И самое главное не забывать, что при переключение плеч учитывать емкость переходов, и делать переключение с задержкой, иначе феерверк и пробитые транзисторы обеспечены.
An_private
Вообще-то, это IGBT. И сверху и снизу. И это стандартная схема Full bridge.