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

Обновлено: 03.07.2024

Привет Хабровчане!
Решил я рассказать «всему свету» о проблеме, с которой столкнулся при постройке своего проекта, и как мне удалось её решить.

А речь сегодня пойдет о бесколлекторных двигателях, о регуляторах хода и как ими управлять.
Что же такое бесколлекторный двигатель, я не буду долго расписывать (сами можете посмотреть Wiki), а скажу в 2х словах, это 3х фазный двигатель постоянного тока.

image

И приводится в движение сие чудо благодаря специальному регулятору, который последовательно переключает обмотки с определенной частотой.
Управляя частотой переключения обмоток мы управляем скоростью вращения ротора.
Ну что же, надеюсь тут все понято, идем дальше.

Первые проблемы
Были закуплены 2 комплекта двигатель + регулятор, ждал около месяца, пришли.

Мною овладел приступ безудержного веселья по этому поводу, но, к сожалению, это было ненадолго….
Рассмотрев эти чудеса техники я решил подключить их к источнику питания, и тут то первое разочарование, тихий хлопок (как от КЗ) и тишина, светодиоды не горят, писка нет (а он должен быть), только крутится кулер на регуле, беда…
Побежал в ближайший Хобби магазин, и добрый консультант вынес вердикт: сгорел!

Со вторым такая же история, в общем ребята, не повезло, оба бракованные…
Ну хоть кошечка порадовалась:

image

Пришлось раскошелиться и купить у них регулятор по цене обоих комплектов (поджимали сроки).
Купил, подключил, все пищит, горит, работает, прям аж душа радуется! (на фото он выделен):

image

image

Проблема номер два
Теперь настала пора покрутить двигателем.
А покрутить нужно не с сервотестера или аппы радиоуправления, а с микроконтроллера, а точнее вот с такой платки:


Залил, ноль эмоций…

Бился 2 дня, пока не наткнулся на случайный пост, о том, что у регулятора есть защита, и он начинает функционировать только при подаче на его вход ШИМ сигнала 1,5 мс.
Окей, будет сделано.

Дальше я подцепил обыкновенный резистор через АЦП, и опытным путем подобрал крайние значения ШИМ регулятора.
Код получившийся в итоге:

И все заработало.
Теперь все крутиться, шумит, пищит и просто радует.
P.S. Это код для управления сразу 2мя двигателями.

image

И последняя проблема, питание…
Здесь расскажу немного, а именно, от регулятора идет 3 провода:

Центральная колодка, по порядку Черный — минус, Красный — плюс и Белый — провод управления.

И загвоздка в том, что в отличие от сервоприводов, это не входы под питание, а выходы, т.е. питаемся от них.
К чему я это, да к тому, что подключив регулятор как серву, я чуть не спалил порты на ноутбуке, ибо плата в это время была запитана от USB.
Но к счастью у моего старичка сработала защита и все обошлось перезагрузкой…

Спасибо большое за внимание.
Надеюсь мой опыт будет полезен для вас.
До скорых встреч.

В настоящее время наблюдается небывалый интерес к конструированию различных летающих механизмов – дронов, планеров, глайдеров, вертолетов и т.д. Сейчас их можно легко сконструировать самостоятельно благодаря большому количеству материалов по ним в сети интернет. Все эти летающие механизмы используют для своего движения так называемые бесщёточные (бесколлекторные) электродвигатели постоянного тока (BLDC - Brushless DC Motor). Что представляют собой подобные двигатели? Почему именно они сейчас используются в различных летающих дронах? Как правильно купить подобный двигатель и подключить его к микроконтроллеру? Что такое ESC и почему мы будем его использовать? Ответы на все эти вопросы вы найдете в данной статье.


В этой статье мы рассмотрим управление скоростью вращения бессенсорного бесколлекторного электродвигателя постоянного тока A2212/13T (Sensorless BLDC outrunner motor), часто используемого для конструирования дронов, с помощью ESC (Electronic Speed Controller – электронный контроллер скорости) и платы Arduino.

Необходимые компоненты

  1. Плата Arduino Uno (купить на AliExpress).
  2. A2212/13T BLDC Motor (бесколлекторный электродвигатель постоянного тока).
  3. ESC (20A) (электронный контроллер скорости) (купить на AliExpress).
  4. Источник питания (12V 20A).
  5. Потенциометр 10 кОм (купить на AliExpress).

Принцип действия BLDC двигателей

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

Хотя BLDC относятся к двигателям постоянного тока они управляются с помощью последовательности импульсов. Для преобразования напряжения постоянного тока в последовательность импульсов и распределения их по трем проводникам используется контроллер ESC (Electronic speed controller). В любой момент времени питание подается только на две фазы, то есть электрический ток заходит в двигатель через одну фазу, и покидает его через другую. Во время этого процесса запитывается катушка внутри двигателя, что приводит к тому, что магниты выравниваются по отношению к запитанной катушке. Затем контроллер ESC подает питание на другие два провода (фазы) и этот процесс смены проводов, на которые подается питание, продолжается непрерывно, что заставляет двигатель вращаться. Скорость вращения двигателя зависит от того как быстро подается энергия на катушку двигателя, а направление вращения – от порядка смены фаз, на которые поочередно подается питание.

Существуют различные типы BLDC двигателей – давайте рассмотрим основные из них. Различают Inrunner и OutRunner BLDC двигатели. В Inrunner двигателях магниты ротора находятся внутри статора с обмотками, а в OutRunner двигателях магниты расположены снаружи и вращаются вокруг неподвижного статора с обмотками. То есть в Inrunner (по этому принципу конструируется большинство двигателей постоянного тока) ось внутри двигателя вращается, а оболочка остается неподвижной. А в OutRunner сам двигатель вращается вокруг оси с катушкой, которая остается неподвижной. OutRunner двигатели особенно удобны для применения в электрических велосипедах, поскольку внешняя оболочка двигателя непосредственно приводит в движение колесо велосипеда, что позволяет обойтись без механизма сцепления. К тому же OutRunner двигатели обеспечивают больший крутящий момент, что делает их также идеальным выбором для применения в электрических движущихся средствах и дронах. Поэтому и в этой статье мы будем рассматривать подключение к платы Arduino двигателя OutRunner типа.

Внутреннее устройство и внешний вид Inrunner и OutRunner BLDC двигателей

Примечание : существует еще такой тип BLDC двигателей как бесстержневой (coreless), который находит применение в "карманных" дронах. Эти двигатели работают по несколько иным принципам, но рассмотрение принципов их работы выходит за рамки данной статьи.

BLDC двигатели с датчиками (Sensor) и без датчиков (Sensorless). Для BLDC двигателей, которые вращаются плавно, без рывков, необходима обратная связь. Поэтому контроллер ESC должен знать позиции и полюса магнитов ротора чтобы правильно запитывать статор. Эту информацию можно получить двумя способами: первый из них заключается в размещении датчика Холла внутри двигателя. Датчик Холла будет обнаруживать магнит и передавать информацию об этом в контроллер ESC. Этот тип двигателей называется Sensor BLDC (с датчиком) и он находит применение в электрических движущихся транспортных средствах. Второй метод обнаружения позиции магнитов заключается в использовании обратной ЭДС (электродвижущей силы), генерируемой катушками в то время когда магниты пересекают их. Достоинством этого метода является то, что он не требует использования каких либо дополнительных устройств (датчик Холла) – фазовый провод самостоятельно используется в качестве обратной связи благодаря наличию обратной ЭДС. Этот метод используется в двигателе, рассматриваемом в нашей статье, и именно он чаще всего применяется в дронах и других летающих устройствах.

Почему дроны и вертолеты используют именно BLDC двигатели?

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

Внешний вид бесколлекторного электродвигателя постоянного тока A2212/13T

Существует несколько причин для этого:

  • большой крутящий момент, который очень важен для того чтобы оторвать летающее средство от земли;
  • эти двигатели доступны в формате OutRunner, что позволяет обойтись без сцепления в конструкции дрона;
  • маленький уровень вибраций во время работы, что очень важно для неподвижного зависания дрона в воздухе;
  • хорошее соотношение мощности к весу двигателя. Это очень важно для использования на летающих механизмах чтобы все элементы его конструкции имели как можно меньший вес. Обычный двигатель постоянного тока, обеспечивающий такой же крутящий момент как и BLDC двигатель, будет как минимум в два раза тяжелее него.

Зачем нужен контроллер ESC

Как мы уже знаем, для функционирования BLDC двигателей необходим какой-нибудь контроллер, который преобразует напряжение постоянного тока от батарейки в последовательность импульсов, подаваемую в определенном порядке на провода (фазы) двигателя. Этот контроллер называется ESC (Electronic Speed Controller – электронный контроллер скорости). Основной обязанностью данного контроллера является правильная подача питания на провода BLDC двигателя чтобы двигатель вращался в нужном направлении. Это осуществляется с помощью считывания обратной ЭДС (back EMF) с каждого провода и подачи питания на катушку в то время когда магнит пересекает ее. Внутри себя контроллер ESC содержит достаточно много разнообразной электроники и при желании вы можете подробно изучить его устройство по соответствующим материалам в сети интернет. Здесь же мы кратко рассмотрим рассмотрим только основные компоненты его конструкции.

Типовые провода для подключения контроллера ESC

Управление скоростью вращения на основе ШИМ (широтно-импульсной модуляции, в англ. PWM) . Контроллер ESC может управлять скоростью вращения BLDC двигателя при помощи считывания сигнала ШИМ подаваемого на его оранжевый провод. Принцип управления им очень похож на управление сервомоторами. Сигнал ШИМ, подаваемый на контроллер ESC, должен иметь период 20ms, а коэффициент заполнения этого ШИМ сигнала будет определять скорость вращения BLDC двигателя. Поскольку точно такой же принцип используется для управления углом поворотом сервомотора, то для управления BLDC двигателем мы можем использовать библиотеку для управления сервомоторами. Если вы не сталкивались с этим принципом ранее, то вы можете прочитать статью о подключении сервомотора к плате Arduino.

Battery Eliminator Circuit (BEC) – цепь, исключающая батарею . Почти все контроллеры ESC поставляются с этой схемой. Как следует из ее названия, данная схема устраняет потребность в использовании отдельной батареи для питания микроконтроллера, то есть в данном случае нам не понадобится отдельный источник питания для платы Arduino – контроллер ESC сам обеспечит плату Arduino регулируемым напряжением питания +5V. В различных контроллерах ESC используются различные схемы регулировки данного напряжения, но в большинстве случаев распространена схема с линейной регулировкой.

Встроенное ПО . Каждый контроллер ESC содержит в своем ПЗУ встроенную прикладную программу, написанную производителем контроллера. Эта программа во многом определяет логику функционирования контроллера. Наиболее популярными встроенными программами для контролеров ESC являются Traditional, Simon-K и BL-Heli. Эта программа может изменяться пользователем, однако мы в этой статье не будем рассматривать данный вопрос.

Некоторые термины, используемые в тематике BLDC и ESC

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

Braking (торможение) – определяет насколько быстро BLDC двигатель может остановить свое вращение. Это особенно актуально для летающих средств (дронов, геликоптеров и т.д.) поскольку они вынуждены часто изменять количество оборотов двигателя в минуту чтобы маневрировать в воздухе.

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

Motor Direction (направление вращения двигателя) – обычно направление вращения BLDC двигателей не изменяется в процессе эксплуатации, однако во время сборки и тестирования работы изделия может потребоваться изменение направления вращения двигателя, обычно это можно сделать просто поменяв местами любые два провода двигателя.

Low Voltage Stop (остановка при низком напряжении питания) . Обычно BLDC двигатели калибруют так, чтобы при одинаковом уровне управляющего воздействия скорость его вращения была постоянной. Однако этого трудно достигнуть потому что со временем напряжение питающей батареи уменьшается. Чтобы предотвратить это обычно контроллеры ESC программируют таким образом чтобы они останавливали работу BLDC двигателя когда напряжение питающей батареи опускается ниже определенной границы. Особенно эта функция полезна при использовании BLDC двигателей в дронах.

Response time (время отклика, время реакции, время ответа) . Означает способность двигателя быстро изменять скорость вращения при изменении управляющего воздействия. Чем меньше время реакции, тем лучше контроль над двигателем.

Advance (движение вперед) . Эта проблема является своеобразной "ахиллесовой пятой" для BLDC двигателей. Все BLDC двигатели имеют хотя бы небольшой подобный баг. Эта проблема вызвана тем, что когда катушка статора запитана ротор движется вперед поскольку на нем есть постоянный магнит. И когда управляющее напряжение с этой катушки снимают (чтобы подать его на следующую катушку) ротор продвигается вперед немного дальше чем предусмотрено логикой функционирования двигателя. Это нежелательное продвижение двигателя вперед в англоязычной литературе называют “Advance” и оно может приводить к нежелательным вибрациям, нагреву и шуму при работе двигателя. Поэтому хорошие контроллеры ESC стараются по возможности устранить этот эффект в работе BLDC двигателей.

Работа схемы

Схема подключения BLDC двигателя и контроллера ESC к плате Arduino представлена на следующем рисунке.

Схема подключения BLDC двигателя и контроллера ESC к плате Arduino

Как видите, схема достаточно проста. Контроллеру ESC необходим источник питания с напряжением 12V и током как минимум 5A. Для питания схемы можно использовать адаптер или Li-Po батарейку. Три фазы (провода) BLDC двигателя необходимо подсоединить к трем выходным проводам контроллера ESC – неважно в каком порядке.

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

Схема BEC (Battery Eliminator circuit) в контроллере ESC будет самостоятельно обеспечивать (регулировать) постоянное напряжение +5V, поэтому его можно непосредственно использовать для питания платы Arduino. Для управления скоростью вращения двигателя в схеме используется потенциометр, подключенный к контакту A0 платы Arduino.

Внешний вид собранной конструкции показан на следующем рисунке.


Объяснение программы для Arduino

Полный код программы приведен в конце статьи, здесь же мы рассмотрим только его основные фрагменты.

Для управления BLDC двигателем мы будем формировать ШИМ сигнал с частотой 50 Гц и изменяемым от 0 до 100% коэффициентом заполнения. Значение коэффициента заполнения будет управляться с помощью потенциометра. То есть, вращая потенциометр, мы будем управлять скоростью вращения двигателя. Как уже указывалось, управление BLDC двигателем очень похоже на управление сервомотором с помощью ШИМ 50 Гц, поэтому в данном случае мы будем использовать ту же самую библиотеку, которую использовали для управления сервомотором. Если вы начинающий в изучении платформы Arduino, то перед дальнейшим прочтением данной статьи рекомендуем вам изучить принципы формирования ШИМ сигнала в Arduino и подключение сервомотора к плате Arduino.

ШИМ сигнал можно генерировать только на тех цифровых контактах платы Arduino, которые обозначены символом

. В нашей схеме мы будем управлять контроллером ESC с контакта 9 платы Arduino, поэтому следующей командой мы прикрепим контроллер ESC к этому контакту:



Какой тип маломощного двигателя постоянного тока выбрать из трех существующих? Это определяется поставленной задачей, но, вне зависимости от выбора, у STMicroelectronics найдется микросхема драйвера для любого из них.

Диапазон применений маломощных двигателей постоянного тока (DC) расширился в результате многих факторов. Во-первых, двигатели стали более эффективными и мощными благодаря новым магнитным материалам. Во-вторых, в связи с использованием интеллектуальных микросхем с интегрированными полевыми транзисторами (FET) управление двигателями стало более легким. В-третьих, несмотря на то, что в большинстве приложений интернета вещей (IoT) лишь регистрируются те или иные состояния, а потребности в движении не возникает, рост разнообразия приложений IoT привел к необходимости малогабаритных двигателей.

Что такое маломощный двигатель постоянного тока? Официального определения или стандарта нет, но универсальное понимание в индустрии таково: двигатель со среднеквадратичным (RMS) значением тока привода до 1 А и пиковым значением тока 2 А считается маломощным устройством. Эти цифры могут показаться достаточно большими по сравнению с потреблением соответствующей электроникой миллиамперных токов. Однако многие из вышеуказанных двигателей используются в приложениях с малым коэффициентом заполнения, чьи совокупные потребности в энергии довольно скромны, даже если собственные требования приложений к максимальной мощности намного больше, чем необходимо их электронной составляющей.

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

Три основные топологии двигателя

Три часто используемые конфигурации маломощных DC-двигателей – коллекторные, бесколлекторные (BLDC) и шаговые. Каждый из них работает благодаря взаимодействию между токами в катушках (или обмотках) и постоянными магнитами (в большинстве конструкций), что приводит к притяжению/отталкиванию магнитного поля, вызывающему вращение. Все три вида двигателей имеют некоторые сходства, но отличаются методом управления переключением тока, протекающего через обмотки ротора и статора.

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

  • Исторически первым был двигатель коллекторного типа. По мере вращения ротора контактные щетки, представляющие собой сплошные контакты, состоящие, как правило, из графита, касаются соответствующих областей на роторе (рисунок 1). По мере вращения ротора изменение точек контакта щетки вызывает изменение направления потока тока и, следовательно, магнитного поля. Затем взаимодействие магнитного поля между ротором и статором меняется на противоположное, что вынуждает ротор продолжать движение.

Рис. 1. Коллекторный двигатель постоянного тока

Рис. 1. Коллекторный двигатель постоянного тока

Данная механическая схема концептуально проста. Однако ее недостаток в том, что щетки изнашиваются и нуждаются в замене, реализация интеллектуального управления сложна, потому что переключить данный двигатель довольно трудно, к тому же, щетки создают электромагнитные помехи (EMI), также известные как радиочастотные помехи (RFI).

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

  • В двигателе BLDC механическая коммутация заменена электрической с использованием транзисторов. Чаще всего используются МОП-транзисторы (MOSFET), которые управляются драйвером затвора (в некоторых конструкциях используются биполярные транзисторы с изолированным затвором – IGBT). Отдельный контроллер управляет точным переключением катушки в момент, необходимый для поддержания вращения двигателя на желаемой скорости (рисунок 2).

Рис. 2. Бесколлекторный двигатель постоянного тока

Рис. 2. Бесколлекторный двигатель постоянного тока

Примечание: двигатели BLDC иногда называют электронно-коммутируемыми (EC) двигателями, что является более точным определением.

В BLDC магнитное поле ротора присутствует всегда, оно генерируется постоянными магнитами. Когда ток направляется от одной фазы двигателя к другой, магнитные поля объединяются, генерируя изменяющееся поле статора.

Управление двигателем производится не только при помощи электроники. Вместо этого переключение может быть сформировано в драйвере затвора с контролируемым временем нарастания и спада для уменьшения EMI/RFI. Основная проблема заключается в том, что более мягкое переключение приводит к потере мощности и снижению КПД двигателя, и в этой ситуации разработчику необходимо найти максимально компромиссное решение. Некоторые новые драйверы затвора используют множество сложных и тонких трюков, чтобы облегчить эту задачу.

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

Рис. 3. Шаговый двигатель

Рис. 3. Шаговый двигатель

Полюсов может быть и 16, и 128 (или более), в зависимости от требуемой точности вращения, прямо пропорциональной их количеству. Шаговые двигатели доступны в однополярных двухфазных и биполярных двух-, трех- и пятифазных конфигурациях. Самый распространенный из них – биполярный двухфазный двигатель.

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

Шаговый двигатель хорошо подходит для задач, где необходимы быстрые остановка/запуск, позиционирование или движение назад/вперед, однако он не подойдет для долговременной непрерывной работы. Он часто используется в принтерах и приборах с поэтапным позиционированием (это только два из его многочисленных применений). Несмотря на то, что точность позиционирования зависит от числа полюсов, использование усовершенствованного метода, в котором смежные полюсы включаются частично (так называемый «микрошаг»), позволяет более точно управлять переключением и позиционированием.

Для управления двигателем необходима как мощность, так и стратегия

Полная система управления двигателем состоит из нескольких функциональных блоков (рисунок 4):

Рис. 4. Путь сигнала управления двигателем

Рис. 4. Путь сигнала управления двигателем

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

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

  • Выходной сигнал контроллера подается на драйвер управления затвором, который преобразует низковольтные и слаботоковые команды включения/выключения в более высокие токи (и часто более высокие напряжения), необходимые МОП-транзистору (или IGBT). Довольно часто драйвер гальванически изолирован.
  • МОП-транзисторы (или IGBT) являются фактическими ключами питания, которые управляют подачей тока на катушки двигателя.
  • Катушки двигателя. Ток, протекающий через обмотки катушки двигателя, создает электромагнитное поле, которое взаимодействует со стационарными магнитами в двигателе, заставляя его начать вращение.

Сходства и различия интегральных схем для управления двигателем

Преимущество маломощных двигателей, помимо их скромных потребностей в токе и напряжении, заключается в том, что драйверы затвора MOSFET могут быть интегрированы с контроллерами и оптимизированы для конкретных потребностей. Рассмотрим трио соответствующих предложений от STMicroelectronics. Эти три микросхемы от ST имеют множество базовых характеристик, которые позволяют применять их совместно с различными типами двигателей. Помимо этого, они облегчают моделирование и просты в изучении.

Вот несколько преимуществ, которыми обладают эти изделия:

  • максимальная интеграция с использованием интерфейса микроконтроллера (MCU), логики управления, драйвера и моста МОП-транзистора (требуется только несколько пассивных компонентов и нет необходимости во внешних активных компонентах);
  • малое рабочее напряжение 1,8…10 В, которое хорошо подходит для низковольтных двигателей, в особенности – для работающих от небольших аккумуляторных батарей;
  • высокий выходной ток до 1,3 A (RMS) и 2 A (пиковое значение) для каждого выхода;
  • энергопотребление в режиме ожидания до 80 нA;
  • повышенная надежность благодаря блокировке при падении напряжения (UVLO), тепловой защите и защите от перегрузки по току;
  • небольшой QFN-корпус размером 3×3 мм.

Рассмотрим сходства и различия трех данных микросхем для управления двигателем. STSPIN220, предназначенная для шаговых двигателей, объединяет в себе логику управления, высокую эффективность и малое сопротивление «сток-исток» открытого канала RDS(ON) (рисунок 5). Контроллер реализует управление токовым режимом с помощью широтно-импульсной модуляции (PWM) с программируемым временем выключения. STSPIN220 поддерживает разрешение 256 микрошагов на один полный шаг, что позволяет сделать движение максимально плавным.

Рис. 5. Микросхема STSPIN220 для управления шаговым двигателем

Рис. 5. Микросхема STSPIN220 для управления шаговым двигателем

Микросхемы, аналогичные модели STSPIN220:

    – монолитный драйвер для трехфазных двигателей BLDC; – монолитный драйвер для двух независимых двигателей постоянного тока; – монолитный драйвер для одного двигателя постоянного тока.

Примечание: драйвер STSPIN250 предназначен для одного двигателя в отличие от двухмоторного драйвера STSPIN240. STSPIN250 может обеспечивать более высокий ток 2,6 А (среднеквадратичное значение) и 4 А (пиковое значение).

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

Делаем выбор

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

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

  • коллекторные двигатели имеют меньший срок службы, чем двигатели BLDC; в первом случае срок службы зависит от износа подшипников и щеточного механизма, во втором срок ограничен только износом подшипников. Кроме того, щетки, быстро собирающие проводящую пыль, могут загрязнять другие поверхности;
  • высококачественные коллекторные двигатели могут достигать скорости 10 000 об/мин, в то время как конструкции двигателей BLDC позволяют увеличить эту скорость в 5 или даже в 10 раз;
  • коллекторные двигатели могут работать непосредственно от источника питания и, следовательно, нуждаются только в двух проводах, в то время как двигатели BLDC нуждаются в электронной коммутации, и в этом случае необходимо не менее трех проводов плюс провода датчика;
  • КПД обоих типов примерно одинаков, а вот источники потерь в них различаются. Для коллекторных двигателей большая их часть возникает в обмотках и при трении, связанном со щеточным механизмом, в то время как двигатели BLDC испытывают те же потери в обмотках, плюс дополнительные потери от вихревых токов, которые растут с увеличением скорости;
  • схема управления для шаговых двигателей изначально является гораздо более сложной, чем для коллекторных, но новые интегральные схемы, например, разработки STMicroelectronics, практически устраняют эти различия;
  • маломощный коллекторный двигатель, например, для недорогой игрушки, может быть наиболее экономичным решением в плане электропроводки и электроники управления (если она есть), но при этом он может обеспечить весьма ограниченную производительность.

Заключение

Бессчетное количество информационных справок о двигателях охватывает академическую теорию, возможные реализации, варианты использования, механические, электрические и термические проблемы, функции привода и элементы управления от простейших до продвинутых. Одним из полезных источников является «An Introduction to Electric Motors» от ST. Для более глубокого ознакомления с шаговыми двигателями и микрошагами, которые не так интуитивно понятны, как коллекторные и бесколлекторные двигатели, смотрите «Application Note AN4923 STSPIN220: Step-Mode Selection and On-the-Fly Switching to Full-Step».


Ниже речь пойдёт про управление низкооборотными трёхфазными бесколлекторными моторами в статичном режиме с использованием трёхфазного моста L6234.

Но сначала немного теории.

Что такое бесколлекторные моторы?

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

Трёхфазные моторы

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


Эти моторы также подразделяются по количеству электромагнитов и количеству полюсов. Наиболее распространённая компоновка 12N14P что означает наличие 12 обмоток статора и 14 магнитных полюсов на роторе. Число полюсов всегда кратно 2: ведь полюса бывают только двух типов – северный и южный. Число обмоток кратно трём, поскольку двигатель трёхфазный. На схеме показана намотка обмоток. A B C – намотка соответствующей обмотки в одну сторону, -a -b -c – в противоположную.


В большинстве случаев обмотки соединяются «звездой», как показано на схеме. Подавая попарно на выходы напряжение той или иной полярности, контроллер мотора пробегает полный электрический цикл, состоящий из 6 смен полярностей. За этот цикл ротор проворачивается на два магнитных полюса. То есть, в нашем случае, чтобы мотор совершил один оборот, электрические фазы должны пройти 7 полных циклов.

Трёхфазный мост

Для электрической коммутации используются трёхфазные мосты, представляющие из себя три блока (полумоста), в каждом из которых по два транзистора – на плюс и на минус. Для управления мотором на одном из трёх полумостов выбирается «плюс», на другом «минус», а третий остаётся отключенным. При помощи ШИМ, транзисторы импульсами коммутируют фазу двигателя к выбранной полярности, пока он не провернётся на нужный угол. Затем схема коммутации меняется. Микроконтроллер в плате управления двигателем определяет моменты, когда фазы должны быть переключены. Для этого используются либо установленные на моторе датчики Холла, либо же ЭДС, возникающая в проводе свободной фазы.
Для управления маломощными моторами годится трёхфазный мост L6234.


L6234 представляет собой сборку в одном корпусе трёх полумостов, на двух n-МОП транзисторах каждый, драйверов к ним и схемы подкачки напряжения для верхнего ключа. Каждый полумост управляется значениями на двух входах: один из них выбирает полярность (коммутировать плюс, или минус), а второй включает, или отключает полумост. Для управления высокоскоростными моторами вход включения можно использовать для контроля мощности при помощи ШИМ.


Максимальный ток, на который рассчитана микросхема — 4 Ампера.


Низкоскоростные моторы

Обмотки высокооборотистых моторов наматываются пучком толстой проволки, небольшим числом витков, порядка 10-20. Они обладают очень маленьким сопротивлением постоянному току, сила тока достигает десятков Ампер, и если мотор не вращается, обмотка может перегретсья и перегореть.
Но существует разновидность таких моторов, которые предназначены для работы в статичном положении. Их обмотки наматываются большим числом витков (порядка 100) тонкой проволкой. Подавая различные значения напряжений на входы, можно создать в его обмотках магнитное поле нужной полярности, и тем самым зафиксировать его в нужном положении.


Такие моторы представляют собой промежуточное звено между шаговыми двигателями и высокоскоростными моторами: они позволяют статично фиксировать произвольное положение, но не ограничены определёнными «шагами». Используются, в основном, в стабилизирующих подвесах для видеокамер в аэровидеосъёмке. По-английски такие подвесы называются gimbal (=универсальный шарнир), а моторы так и называют gimbal motor.

Управление gimbal-мотором

GTCCR = (1 « TSM) | (1 « PSRASY) | (1 « PSRSYNC); // Блокировка счёта
OCR0A = 0;
OCR0B = 0;
OCR1A = 0;
OCR1B = 0;
OCR2A = 0;
OCR2B = 0;

TCCR0A = 0b10100001;
TCCR0B = 0b00000001;
TCNT0 = 0;

TCCR1A = 0b10100001;
TCCR1B = 0b00000001;
TCNT1 = 0;

TCCR2A = 0b10100001;
TCCR2B = 0b00000001;
TCNT2 = 0;

(1 « TSM); // Разблокировка и одновременный запуск таймеров

Если на все 3 ШИМ выхода, управляющие одним мотором, подаётся одно и то же значение, то, хотя полярность каждого моста быстро меняется почти 16 тысяч раз в секунду, поскольку это происходит одновременно, ток через обмотки не идёт. Но если значение ШИМ хоть одного вывода отличается от остальных, то появляется небольшой промежуток времени, когда разные фазы коммутируются с разной полярностью, и через обмотки идёт ток. Чем больше разница значений ШИМ, тем большую часть времени ток будет идти.
Для того, чтобы зафиксировать мотор в нужном положении, значения ШИМ должны быть пропорциональны синусу, со смещением на треть периода (т.е. на 2/3*Pi).
Иначе говоря, значение ШИМ для i-й (от 0 до 2) фазы мотора можно вычислить по формуле:
PWM(i) = 128 + sin(A+ i * 2 / 3 * Pi) * P
Где P – выдаваемая мощность (до 127), A – электрический угол. Изменяя A можно добиться поворота мотора на определённый угол. Напомню, что изменение электрического угла на полный цикл, приводит к повороту мотора на два магнитных полюса. В схеме с 14 магнитами для целого оборота потребуется 7 циклов смены электрического угла
Если вещественную арифметику заменить на целочисленную, а значения синуса хранить в таблице, то скорости МК вполне хватит на управление такими моторами.

Читайте также: