Меню

Bldc контроллер 220в своими руками

Открытый проект модуля управления электрическими моторами. Начало

Основное назначение модуля — управление синхронными бесколлекторными двигателями (BLDC, BLAC, PMSM . ) с трапецеидальной или синусоидальной формой напряжения, с сенсорами скорости-положения или без сенсоров. Кроме этого модуль имеет небольшие габариты, достаточно широкий диапазон питающих напряжений, разнообразные каналы отладки, проводную и беспроводную связь.

Мощность управляемых модулем двигателей может быть в пределах нескольких сотен ватт и напряжение до 30В. Это двигатели различных механизмов и устройств, таких как: 3D-принтеры, автоматические двери, автоматические роллеты, автономные насосы, вентиляторы, замки, электроинструмент, стабилизаторы положения, моторы и сервомеханизмы RC моделей, роботов и проч.

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

Все эти свойства модуля получаются благодаря классической 3-х фазной полумостовой схеме с датчиками тока и напряжения и производительному микроконтроллеру.

Для ускорения процесса разработки схемы силовой части был взят за основу один из типовых проектов, предлагаемых фирмой TI.

Я остановился на проекте платы TIDA-00901.

Плата обладает хорошими характеристиками: ток до 20 A, мощность двигателя до 200 Вт, номинальное напряжение 12 В. Предназначена для эксплуатации в автомобиле.

В качестве драйвера силовых ключей используется микросхема DRV8305. Некоторые поиски привели к выводу, что это одна из лучших микросхем драйверов для таких приложений.

Плата имеет специфическую круглую форму, в качестве управляющего элемента применен контроллер C2000 LaunchPad. К сожалению программное обеспечение предоставляется не полностью открытым в части библиотек управления моторами. C2000 LaunchPad выполнен на базе DSP процессора семейства F2802x Piccolo. Это семейство процессоров специализировано для разработки несложных преобразователей энергии, и не отличается большой универсальностью и объемом ресурсов.

Архитектура модуля.

В данном проекте решено было выполнить модуль в виде составной конструкции из 2-х плат. Основная плата содержит силовой драйвер, подсистему питания и некоторые периферийные функции. На основную плату устанавливается плата процессора. В качестве процессорной выбрана
плата проекта K66BLEZ1 (ещё статьи по этому проекту — 1, 2, 3, 4 ) с микроконтроллером семейства Kinetis фирмы NXP на базе ядра ARM Cortex-M4. (180 МГц, 2 МБ Flash память, 256 КБ ОЗУ + micro SD карта, часы реального времени с автономным питанием, USB device/host high speed, отдельный чип Bluetooth LE 4/ZigBee )

Модуль питается в диапазоне напряжений от 8.5 до 30 В. Несколько датчиков температуры — в микроконтроллере, вблизи силовых ключей и один внешний предохраняют модуль и мотор от опасных перегревов. Вся элементная база подобрана для работы при температуре до -40 град. С.

Силовые ключи управления мотором рассчитаны на ток в импульсе до 200 А. Измерение тока производится резистивными шунтами с сопротивлением 0.001 Ом. Благодаря встроенным в микросхему драйвера DRV8305 регулируемым усилителям, модуль способен измерять токи от 300 А и до 0.1 А.

Шина CAN дает возможность объединять множество подобных модулей в общую синхронизированную сеть.

Микросхема MPU-9250 полезна в случае если требуется управление ориентацией модуля в пространстве и инерциальная навигация, а также для мониторинга вибраций и ударов.

Встроенный в модуль DС-DC преобразователь с выходным напряжением 5В рассчитан на ток до 3.5 А. Сам модуль потребляет от этого преобразователя не более 150 мА, остальной запас тока может быть отдан на внешнюю нагрузку с разъема X4. Разъем X4 удобно использовать для подключения элементов освещения и индикации, таких как светодиодные RGB ленты на основе чипов WS2812B и аналогичных. Процессором аппаратно поддерживается формирование на цифровых выходах протокола кодирования бит в формате WS2812B, а также PPM, PCM, PWM кодирование. Аналогично без труда с минимальной загрузкой процессора модуль может принимать PPM и PCM сигналы.

Расчет максимальной частоты переключения и обоснование выбора силовых транзисторов

Перепроверим таблицу сравнения транзисторов, предлагаемую в документе от TI. Все параметры заново выписаны из даташитов.

Здесь у меня, как и у специалистов TI выбор пал на CSD1854Q5B. По величине максимального тока это лучший выбор. А частота переключения в 122 КГц далеко уходит за разумный предел достижимый при управлении от семейства Kinetis.

Расчет максимальной пульсации тока и обоснование выбора фильтрующих конденсаторов

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

Пользуясь этой формулой следует проверять способен ли модуль управлять данным мотором без превышения максимальных токов конденсаторов.

Как подсчитали специалисты TI при указанных на схеме конденсаторах модуль на частоте ШИМ 40 КГц может долгое время питать застопоренный мотор с током через обмотки более 80 А.

Источник

МОДУЛЬ ДРАЙВЕРА МОТОРА BLDC

Эта статья предоставит важную теорию и полезные схемы драйверов двигателей жестких дисков, которые можно заставить крутиться с разной скоростью и разных направлениях, а уж где это использовать — решайте сами. Прежде всего обратите внимание, что обычный двигатель шпинделя жесткого диска (HDD) на самом деле является бездатчиковым трехфазным бесколлекторным двигателем постоянного тока BLDC.

Как следует из названия, в бесщеточном (бесколлекторном) двигателе щетки не используются. Бесщеточный двигатель преодолевает потребность в механическом коммутаторе, меняя настройку на обратную, то есть катушки становятся статором, а постоянные магниты становятся частью ротора. Вращение двигателя достигается за счет изменения направления магнитных полей, создаваемых неподвижными катушками. Поскольку ротор представляет собой постоянный магнит, ему не нужен ток, что устраняет необходимость в щетках и коммутаторе. Чтобы контролировать вращение можно регулировать величину и направление тока в этих неподвижных катушках извне.

Читайте также:  Датчик освещенности для включения своими руками

Типичный бесколлекторный двигатель постоянного тока с тремя катушками на статоре будет иметь шесть проводов, но в большинстве конструкций три провода будут подключены внутри, а остальные три выходят наружу. Также обратите внимание, что трехфазный бесщеточный двигатель требует трех датчиков Холла для определения положения ротора. В зависимости от физического положения этих датчиков, существует два типа выходных сигналов — фазовый сдвиг 60 ° и фазовый сдвиг 120 °. Комбинируя сигналы трех датчиков Холла, можно определить точную последовательность электронной коммутации. Но в бессенсорном бесщеточном моторе сигналы обратной электродвижущей силы (BEMF) контролируются драйвером для коммутации сигнала вместо положения, определяемого датчиками Холла. Вот поперечное сечение трехфазного бесщеточного двигателя на изображении ниже.

Это 4-х проводный двигатель BLDC от жесткого диска. HDD BLDC имеет четыре соединительных провода вместо трех упомянутых проводов ABC (часто обозначаемых как UVW). И 4-х контактный двигатель BLDC — это обычный трехфазный двигатель BLDC с выведенным центральным отводом. Если у двигателя есть фазы сопротивлением по 1 Ом каждая, то он должен давать 1 Ом от центрального ответвления до каждой фазы, 2 Ом между фазами. Хотя некоторые драйверы двигателей BLDC используют центральный отвод для измерения BEMF для коммутации.

Существует два типа мотора BLDC. Первый имеет встроенные датчики Холла для определения положения ротора, а второй — бессенсорный — не имеет датчика. Коммутация бессенсорного типа обычно основана на BEMF, генерируемой в обмотках статора.

Как запустить двигатель HDD 4-х проводной

Так как можно управлять двигателем HDD BLDC? Чтобы вращать его, нужно контролировать направление и синхронизацию тока в катушках статора, но этот метод управления более сложен. В продаже доступен широкий спектр бессенсорных микросхем драйверов двигателей BLDC, например DRV10866, цена модуля вполне доступная в интернет-магазинах. Двигатель работает с ним довольно хорошо — правда крутящий момент невысокий, что не удивительно, учитывая вход от источника питания 5 В.

DRV10866 — довольно популярная микросхема драйвера трехфазного бесщеточного двигателя без датчиков, интегрированная с шестью МОП-транзисторами с пиковыми токами до 680 мА. Она также предлагает синхронное выпрямление с широтно-импульсной модуляцией (PWM) и бессенсорную запатентованную схему управления обратной ЭДС (BEMF). Но есть и другое решение — универсальная плата драйвера двигателя BLDC для жестких дисков. Плата может использоваться для управления как 3-проводными, так и 4-проводными трехфазными бесщеточными двигателями постоянного тока. Кроме того тут есть несколько полезных опций, таких как управление скоростью и направлением вращения двигателя.

Описание платы драйвера двигателя

Контроллер платы драйвера бесщеточного двигателя 5 В — 12 В постоянного тока для двигателя жесткого диска.

  • Подходит для бесколлекторных моторов без датчика.
  • Защита от обратного напряжения
  • Защита от повышенного тока
  • Напряжение привода: 5-12 В
  • Рабочий ток: до 1,2 А
  • Диапазон скорости: 0-100%
  • Управление вращением: CW и CCW

Плата сконструирована так, что требуются проводные соединения только с двигателем и источником питания. Минимальное рекомендуемое Vin составляет 5 В, а максимальное — 12 В постоянного тока. Потенциометр встроенного регулятора меняет скорость двигателя. Кроме того, есть две перемычки для выбора 3-проводного / 4-проводного мотора и выбора прямого / обратного направления. Для нормальной работы все перемычки должны быть установлены. В общем вполне удобное решение для управления трехфазными бессенсорными бесщеточными двигателями.

Плата использует комбинацию стабилизатора напряжения с низким падением напряжения (LDO), микроконтроллера для генерации сигналов с широтно-импульсной модуляцией (PWM) для трехфазного бесщеточного двигателя BLDC. Основная часть — драйвер двигателя — это DRV11873, один трехфазный бессенсорный драйвер BLDC от Texas Instruments. Вот типичная схема включения DRV11873.

16-контактный микроконтроллер (U1) настроен для подачи сигнала ШИМ (чуть ниже 25 кГц) на DRV11873 (U2) с потенциометром (W1) для регулировки скорости мотора путем изменения рабочего цикла ШИМ. Выход сигнала ШИМ может быть отведен от точки пайки, как показано на следующем изображении. Встроенная перемычка P1 соединена с выводом FR DRV11873, так что по умолчанию вывод остается в низком состоянии для вращения вперед (при переставлении вывод поднимается по потенциалу, и двигатель вращается в обратном направлении).

Следующая перемычка P4, подключенная к контакту COM DRV11873, предназначена для выбора 3-проводного / 4-проводного привода. На плате припаяны три дополнительных резистора (R4-R5-R6) для создания виртуального центрального отвода / нейтральной точки (для получения последовательности коммутации) для реализации 3-проводного привода двигателя BLDC.

Если выбирать вариант «сделай сам», стоит отметить, что оба чипа TI (DRV10866 и DRV11873) не сложно собирать. Для упрощения в качестве генератора ШИМ было бы лучше взять таймер 555 как широтно-импульсный модулятор, способный выдавать выходной сигнал примерно 25 кГц с рабочим циклом, который может изменяться от 5% до 95%.

И вот еще одна плата, похожая на описанную, но с небольшими изменениями в компоновке деталей. Микросхема драйвера двигателя — DRV11873, микроконтроллер — STC15W404A, регулятор напряжения — HT7550-1.

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

Источник

Электробайк. Контроллер двигателя своими руками

Как вы уже знаете из прошлых постов, у нас в компании есть DIY-движение. В свободное от работы время коллеги занимаются фрезеровкой печатных плат в домашних условиях, делают тепловизор на FLIR Lepton, а также решают семейные разногласия с помощью 4 контроллеров и 2 умных часов. Продолжим серию увлекательный историй! Сегодня я расскажу, как сделать контроллер к трехфазному двигателю электровелосипеда своими руками. Целью создания такого контроллера было:

  1. Изучение работы трехфазного мотора под управлением контроллера.
  2. Большинство контроллеров для электровелосипедов, представленных на рынке, — китайские. Они хоть и относительно дешевые (около 2.000 руб в зависимости от мощности), но являются неведомой коробкой, в которой неизвестно что происходит. И сразу к ней возникает очень много вопросов — экономично ли она потребляет и распределяет ток, какой у нее запас мощности, почему так сильно перегревается, преждевременно срабатывает защита по току и т.д.
Читайте также:  Как сделать рваные шорты своими руками

В тоже время на рынке представлены европейские качественные контроллеры для электробайков. Они оснащаются расширенными функциями, работают на разных напряжениях и токах и их можно программировать. Устанавливаются они на сверхмощные электровелосипеды. Но цена у них кусается — 10-20 тыс. рублей.

В итоге я решил пойти своим путем: разобраться в устройстве контроллера, сделать его прототип, а затем попытаться сделать контроллер качественнее китайского контроллера. На текущий момент проект у меня в разработке только и на уровне прототипа, готового варианта пока нет. Буду рад услышать ваши комментарии и советы.

Применение

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

  • Бытовая техника
  • Оргтехника
  • Электротранспорт
  • Промышленность

Устройство двигателя

Для разработки контроллера необходимо разобраться с принципом работы самого электродвигателя.

Электродвигатель состоит из фазных обмоток, магнитов и датчиков Холла, отслеживающих положение вала двигателя.

Конструктивно электродвигатели делятся на два типа: инраннеры и аутраннеры.

У инраннеров магнитные пластины крепятся на вал, а обмотки располагаются на барабане (статоре), в этом случае в движение приводится вал. В случае аутраннера всё наоборот: на валу — фазные обмотки, а в барабане — магнитные пластины. Это приводит в движение барабан.

Так как у велосипеда колесо крепится валом на раму, то здесь применителен тип аутраннера.

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

В двигатель устанавливаются три датчика Холла. Датчики реагируют на магнитное поле, тем самым определяя положение ротора относительно статора двигателя. Устанавливаются с интервалами в 60 или 120 электрических градусов. Эти градусы относятся к электрическому фазному обороту двигателя. Необходимо учитывать, что чем больше в двигателе обмоток на каждую фазу, тем больше происходит электрических оборотов за один физический оборот мотор-колеса.

Обмотки трёх фаз в большинстве случаев соединяются между собой по двум схемам: звезда и треугольник. В первом случае ток проходит от одной из фаз к другой, во втором — по всем трём фазам в разной степени. Иногда эти две схемы подключения комбинируют в одном двигателе, например в электромобилях. При старте и наборе скорости идёт соединение фаз по звезде: она даёт больший момент при относительно низких оборотах; далее, после набора скорости, происходит переключение на треугольник, в результате количество оборотов увеличивается, когда уже не нужен большой крутящий момент. По сути, получается условно автоматическая коробка передач электродвигателя.

Цикл работы

Чтобы привести в движение трёхфазный двигатель, нужно рассмотреть цикл его работы за электрический оборот. Итак, имеем три фазы — A, B, C. Каждая из фаз получает положительную и отрицательную полярности в определённый момент времени. Поочерёдно по шагам пропускается ток от «плюса» одной фазы к «минусу» другой фазы. В итоге получается шесть шагов = три фазы × две полярности.

Рассмотрим эти шесть шагов цикла. Предположим, что положение ротора установлено в точке первого шага, тогда с датчиков Холла мы получим код вида 101, где 1 — фаза А, 0 — фаза B, 1 — фаза С. Определив по коду положение вала, нужно подать ток на соответствующие фазы с заданными полярностями. В результате вал проворачивается, датчики считывают код нового положения вала — и т. д.

В таблице указаны коды датчиков и смена комбинаций фаз для большинства электродвигателей. Для обратного хода колеса (реверса) достаточно перевернуть знаки полярности фаз наоборот. Принцип работы двигателя довольно прост.

Цикл двигателя представлен в gif-анимации.

Транзисторы и Н-мост

Но чтобы поочерёдно подавать ток на каждую из фаз и менять их полярность, необходимы транзисторы. Ещё нам нужна передача больших токов, высокая скорость переключения и чёткость открытия/закрытия затворов. В данном случае удобнее управлять затворами по напряжению, а не по току. Поэтому оптимальны полевые (MOSFET) транзисторы. Чаще всего их используют в контроллерах. Очень редко можно встретить комбинированный вариант транзисторов.

Для переключения фаз со сменой их полярностей используют классическую схему Н-моста (H-Bridge) из полевых транзисторов.

Он состоит из трёх пар транзисторов. Каждая из пар подключается к соответствующей фазе обмотки двигателя и обеспечивает подачу тока со значением (+ или –). Транзисторы, отвечающие за включение фазы с положительным значением, называют верхними ключами. С отрицательным — нижними. Для каждого шага открывается пара ключей: верхний одной фазы и нижний соседней фазы. В результате ток проходит от одной фазы к другой и приводит электродвигатель в движение.

Из схемы видно, что мы не можем включить одновременно верхний и нижний ключ у одной и той же фазы: произойдёт короткое замыкание. Поэтому очень важно быстрое переключение верхних и нижних ключей, чтобы в переходных процессах не появилось замыкание. И чем качественнее и быстрее мы обеспечим переключения, тем меньше у нас будет потерь и нагрева/перегрева транзисторов H-моста.

Читайте также:  Изо для школы своими руками

Для запуска остаётся обеспечить управление затворами ключей H-моста. Для управления H-мостом нужно:

  1. Считать показания датчиков Холла.
  2. Определить, в каком положении какую пару ключей включать.
  3. Передать сигналы на соответствующие затворы транзисторов.

Прототип на Ардуино

Под рукой у меня была Arduino UNO, и я решил собрать контроллер на её основе.

Первым делом я подал на датчики Холла питание 5 вольт от Ардуино (его достаточно для датчиков). Сигнальные провода от датчиков подключил на цифровые пины Ардуино, написав простейшую программу для считывания и обработки сигналов с датчиков.

Затем собрал Н-мост из полевых NPN-транзисторов. Подвёл к мосту независимое питание на 12 вольт. Но при отладке, чтоб убедиться в работоспособности, я подключил напрямую шесть пинов 5V из Ардуино на затворы H-моста. У большинства полевых транзисторов затвор работает на 20 вольт. Так делать нельзя, потому что Н-мост будет плохо работать и перегреваться. Но для кратковременных тестов это пойдёт. Кое-как, с сильными перегревами и страшными звуками, вибрациями и толчками колесо медленно закрутилось. Начало положено.

Мостовые драйверы

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

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

В это же время я наткнулся на два варианта мостовых драйверов:

  • HIP4086
  • IR2101

Что касается HIP4086, то это полноценный мостовой драйвер, предназначенный для трёхфазного электродвигателя. Мне он показался несколько замороченным, и мои попытки использовать его в контроллере не увенчались успехом: он у меня так и не заработал. Углублённо разбираться в причинах не стал.

А взял я IR2101 — полумостовой драйвер, обеспечивающий работу нижнего и верхнего ключей для одной фазы. Несложно догадаться, что таких драйверов нужно три. К слову, драйвер очень прост в использовании, его подключение происходит безболезненно и легко. Получилась такая схема:

И готовый результат

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

Аппаратное прерывание

И тут я понял, в чём дело: Ардуино не успевает обрабатывать показания датчиков Холла! Поэтому необходимо было использовать пины Ардуино с аппаратным прерыванием. Так как у Ардуино УНО таких пинов всего два, а под датчики нужно три пина, надо взять Ардуино Леонардо или Искра Нео, где таких пинов — четыре штуки.

Переписав программу под прерывания и подключив Искру Нео вместо УНО, я повторил испытания.

Колесо наконец-то заработало чётко, без вибраций, шумов, отлично стало набирать обороты без рассинхронизации. Прототип оказался жизнеспособным. Но это ещё не полноценный контроллер, поскольку в нём не было обвязки с защитами и обеспечением качественного ШИМ-сигнала.

Прототип на базе микросхемы MC33035

Параллельно с разработкой контроллера на Ардуино я рассматривал альтернативные варианты логической части контроллера. И это привело меня к микросхеме MC33035. Это старая разработка от Motorola, сейчас её выпускает ON Semiconductor. Создана специально для мощных трёхфазных двигателей.

  • Отвечает за всю логическую часть контроллера
  • Считывает показания с датчиков Холла
  • Определяет положения вала
  • Выдаёт сигналы для затворов Н-моста на их драйверы
  • Имеет возможность подключения индикатора ошибок, перегрева
  • Обрабатывает и передает ШИМ-сигнал (PWM)
  • Осуществляет реверс (обратный ход колеса)

Одним словом, микросхема содержит всё необходимое для управления электродвигателем. Её стоимость очень низкая: на Алиэкспрессе — около 50 рублей. Для сборки полноценного контроллера на её основе потребуется микросхема MC33035, полумостовые драйверы и Н-мост из полевых транзисторов. Я также собрал контроллер на этой микросхеме. Работает отлично, стабильно, колесо крутится как надо на различных оборотах. Но функционал микросхемы ограничен, если необходимо наворотить различные функции, вывод на дисплей скорости, одометр, расход батареи, то опять же возникает необходимость дополнительно подключить Ардуино или что-то аналогичное.

Схема с MC33035

Главное преимущество контроллера на базе MC33035 — это простота в использовании. Просто покупаете микросхему, собираете Н-мост, спаиваете всё на плату с небольшой обвязкой — и контроллер готов. Если нужно просто запустить двигатель с ШИМ-сигналом и управлять им — оптимальный вариант.

Контроллер на базе Ардуино — вариант сложнее, понадобится писать логику, обеспечивать дополнительные защиты контроллера. Но для экспериментов, прототипов, дополнительного функционала, использования различных режимов работы двигателя — подходящий вариант. Поэтому я решил пока отложить MC33035 и продолжить работу с Ардуино.

Планы на будущее контроллера

Продолжая работу над контроллером, планирую сделать следующее:

  • IGBT-транзисторы для H-моста вместо полевых транзисторов.
  • Обвязку с защитами по току, перегреву и т. п.
  • Полноценный круиз-контроль с возможностью выставлять необходимую скорость движения.
  • Расходомер. Когда задаётся необходимое расстояние, а контроллер, исходя из этого значения и заряда аккумулятора, дозирует разряд аккумулятора на всём протяжении маршрута так, чтобы зарядки хватило.

Источник

Adblock
detector