Меню

Бесколлекторный двигатель с одним датчиком холла

Датчики Холла для бесколлекторного двигателя: возвращение квадратурных энкодеров

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

  • Статья первая: принцип работы квадратурного декодера + код для ардуино.
  • Статья вторая: квадратурный декодер на stm32.

Задача: есть обычный китайский бесколлекторник, нужно его подключить к контроллеру Copley Controls 503. В отличие от копеечных коптерных контроллеров, 503й хочет сигнал с датчиков холла, которых на движке нет. Давайте разбираться, для чего нужны датчики и как их ставить.

Ликбез: принцип работы бесколлекторного двигателя

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

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

На датчики холла пока не обращайте внимания, их всё равно нет 🙂

Что будет, если подать плюс на вывод V, а минус на вывод W (вывод U не подключаем ни к чему)? Очевидно, будет течь ток в катушках, намотанных зелёным проводом. Катушки намотаны в разном направлении, поэтому верхние две катушки будут притягиваться к магнитам 1 и 2, а нижние две к магнитам 8 и 9. Остальные катушки и магниты в такой конфигурации роли практически не играют, поэтому я выделил именно магниты 1,2,8 и 9. При такой запитке мотора он очевидно крутиться не будет, и будет иметь семь устойчивых положений ротора, равномерно распределённых по всей окружности (левая верхняя зелёная катушка статора может притягивать магниты 1, 3, 5, 7, 9, 11, 13).

Давайте записывать наши действия вот в такую табличку:

Угол поворота ротора U V W
n.c. +

А что будет, если теперь подать плюс на U и минус на W? Красные катушки притянут к себе магниты 3,4,10 и 11, таким образом чуть-чуть повернув ротор (я по-прежнему выделяю магниты, за которые ротор тянет):

Давайте посчитаем, на сколько повернётся ротор: между щелями магнитов 1-2 и 3-4 у нас 51.43° (=360°*2/7), а между соответствующими щелями в статоре 60° (=360°/12*2). Таким образом, ротор провернётся на 8.57°. Обновим нашу табличку:

Угол поворота ротора U V W
8.57° + n.c.

Теперь сам бог велел подать + на U и — на V!

Угол поворота ротора U V W
17.14° + n.c.

Теперь опять пора выровнять магниты с зелёными катушками, поэтому подаём напряжение на них, но красный и синий магниты поменялись местами, поэтому теперь нужно подать обратное напряжение:

Угол поворота ротора U V W
25.71° n.c. +

C оставшимися двумя конфигурациями всё ровно так же:

Угол поворота ротора U V W
34.29° n.c. +

Угол поворота ротора U V W
42.85° + n.c.

Если мы снова повторим самый первый шаг, то наш ротор провернётся ровно на одну седьмую оборота. Итак, всего у нашего мотора три вывода, мы можем подать напряжение на два из них шестью разными способами 6 = 2*C 2 3, причём мы их все уже перебрали. Если подавать напряжение не хаотично, а в строгом порядке, который зависит от положения ротора, то двигатель будет вращаться.

Запишем ещё раз всю последовательность для нашего двигателя:

Угол поворота ротора U V W
n.c. +
8.57° + n.c.
17.14° + n.c.
25.71° n.c. +
34.29° n.c. +
42.86° + n.c.

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

Датчики Холла

Теперь давайте поставим три датчика холла в те чёрные точки, обозначенные на схеме. Давайте договоримся, что датчик выдаёт логическую единицу, когда он находится напротив красного магнита. Всего существует шесть (сюрприз!) возможных состояний трёх датчиков: 2 3 — 2. Всего возможных состояний 8, но в силу расстояния между датчиками они не могут все втроём быть в логическом нуле или в логической единице:

Читайте также:  007206 датчик кпп zf

Обратите внимание, что они генерируют три сигнала, сдвинутые друг относительно друга на 1/3 периода. Кстати, электрики используют слово градусы, говоря про 120°, чем окончательно запутывают нубов типа меня. Если мы хотим сделать свой контроллер двигателя, то достаточно читать сигнал с датчиков, и соответственно переключать напряжение на обмотках.

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

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

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

Ещё бы! Единственная разница, что инкрементальные энкодеры дают два сигнала, сдвинутые друг относительно друга на 90°, а у нас три сигнала, сдвинутые на 120°. Что будет, если завести любые два из них на обычный квадратурный декодер, например, той же самой синей таблетки? Мы получим возможность определять положение вала с точностью до четырёх отсчётов на одну седьмую оборота, или 28 отсчётов на оборот. Если вы не поняли, о чём я, прочтите принцип работы квадратурного декодера в первой статье.

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

Видно, что при каждом событии у нас увеличиваются два из них, поэтому сложив три счётчика, и поделив на два, мы получим равномерно тикающий определитель положения вала, с точностью до 6*7 = 42 отсчёта на оборот!

Вот так выглядит макет подключения датчиков Холла к синей таблетке:

А почему на двигателе сразу нет датчиков?

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

Мой контроллер хочет на вход PPM сигнал: это импульс с частотой 50Гц, длина импульса задаёт обороты: 1мс — останов, 2мс — максимально возможные обороты (считается как KV двигателя * напряжение).

Вот здесь я выложил исходный код и кубовские файлы для синей таблетки. Таймер 1 генерирует PWM для ESC, таймеры 2,3,4 считают соответствующие квадратурные сигналы. Поскольку в прошлой статье я крайне подробно расписал, где и что кликать, то здесь только даю ссылку на исходный код.

На вход моему ESC я даю пилообразное задание скорости, посмотрим, как он его отработает. Вывод синей таблетки лежит тут, а код, который рисует график, тут.

Поскольку у меня двигатель имеет номинал 400KV, а питание я подал 10В, то максимальные обороты должны быть в районе 4000 об/мин = 419 рад/с. Ну а вот и график подоспел:

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

Подводим итог

Я провёл детство в обнимку с этой книжкой, но раскурить принципы работы бесколлекторников довелось только сейчас.

Оказывается, что шаговые моторы и вот такое коптерные моторчики — это (концептуально) одно и то же. Разница лишь в количестве фаз: шаговики (обычно, бывают исключения) управляются двумя фазами, сдвинутыми на 90°, а бесколлекторники (опять же, обычно) тремя фазами, сдвинутыми на 120°.

Читайте также:  Предохранитель кислородного датчика логан

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

Update: красивая анимация от Arastas:

Источник

Управление бесколлекторным двигателем с датчиками Холла (Sensored brushless motors)

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

Мостовая схема ключей

Диаграмма включения ключей

Таблица включения ключей в зависимости от сигналов датчиков Холла:

Анимированная демонстрация работы 4 полюсного двигателя:

ШИМ (PWM), частота, переходные процессы

Некоторые микроконтроллеры могут аппаратно формировать ШИМ сигнал на нескольких своих выводах. Можно формировать ШИМ для каждого из ключей программно. В этом случае схему можно упростить, и не использовать логических элементов. Частота ШИМ сигнала обычно бывает от 4 до 80 килогерц.

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

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

Потери на ключах

P — теряемая мощность, которая выделяется в виде тепла R — прямое сопротивление открытого ключа I — ток, протекаемый через ключ.

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

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

1. Питание: 50В, ток: 100А, сопротивление ключей: 0,001 Ом. Потери на ключах = 0,001 * 100 2 = 10 Вт

2. Питание: 100В, ток: 50А, сопротивление ключей: 0,001 Ом. Потери на ключах = 0,001 * 50 2 = 2,5 Вт

Т.е. снизив ток вдвое потери на ключах падают в 4 раза.

Угол опережения фаз (timing)

Чтобы компенсировать эту задержку управляющий сигнал на ключи подают с опережением. Опережение управляющего сигнала выражают в угле опережения. Угол опережения может быть от 0 до 30 градусов. Речь идет об электрических градусах (см. Бесколлекторные двигатели постоянного тока. Устройство бесколлекторного двигателя). Угол опережения может отличаться для каждой модели двигателя. Точность установки угла опережения сильно влияет на работу высоко-оборотистых двигателей. На малых скоростях точность установки угла опережения не столь критична.

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

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

Источник

БЕСКОЛЛЕКТОРНЫЕ ДВИГАТЕЛИ BLDC

Бесколлекторные двигатели постоянного тока (BLDC — Brushless DC electric motor) часто используется в мотор-колесе электросамокатов и электровелосипедов. Его первые версии появились в 1960-х годах. Двигатели BLDC намного эффективнее и имеют гораздо больший крутящий момент.

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

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

Двигатели BLDC считаются двигателями с электронной коммутацией (ECM) в отличие от щеточных двигателей с механической коммутацией.

Общий принцип управления двигателем BLDC

Для двигателей BLDC требуются современные электронные контроллеры, которые могут определять положение ротора. Для этой цели можно использовать датчик Холла, реагирующий на положение каждой из катушек якоря при работающем двигателе. Скорость двигателя BLDC больше не может регулироваться напряжением, как в щеточных двигателях, а только путем изменения частоты переключения. Эти двигатели питаются от сигнала ШИМ, как показано на рисунке.

Двигатели BLDC делятся на 1-фазные, 2-фазные и 3-фазные, но принцип работы является общим для всех типов. Вместо механического коммутатора, изменяющего направление магнитного поля катушек ротора, используются транзисторы, которые непрерывно изменяют фазу напряжения подаваемого на катушку статора, что заставляет ротор непрерывно вращаться.

Однофазные бесколлекторные (бесщеточные) двигатели используются в устройствах с низким энергопотреблением, в то время как двухфазные чаще в устройствах средней мощности. Типичные области применения 3-фазных двигателей — устройства чтения компакт-дисков.

Читайте также:  Датчик давления масла двигатель камминз 285

Управление однофазными двигателями BLDC

Однофазные двигатели BLDC имеют две параллельные обмотки якоря, управляемые напряжением ШИМ через мост H. Выходной сигнал одного датчика Холла постоянно меняет полярность тока, протекающего через обмотку якоря, таким образом поддерживая непрерывное вращение ротора. Однофазные двигатели BLDC очень просты в управлении. Для их работы достаточно одной интегральной микросхемы, например LB11970RV (однофазный двухполупериодный драйвер).

Принцип управления однофазным двигателем BLDC

Управление двухфазными двигателями BLDC

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

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

Управление 3-фазными двигателями BLDC

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

Конструкция двигателя BLDC с датчиками Холла

Тут тоже сигналы от датчиков Холла определяют моменты переключения. Эти сигналы через соответствующую систему подключения включают транзисторы, которые напрямую управляют катушками двигателя. Конечно, переключение в трехфазных двигателях происходит в 3 раза быстрее, чем в однофазных. Это приводит к снижению вибрации (дёргания) и более точному контролю скорости. Примером трехфазного драйвера двигателя BLDC с датчиками Холла является микросхема LB1976.

Принцип управления мотором BLDC с использованием датчиков Холла

Двигателями также можно управлять без датчиков Холла, используя сигнал BEMF (Back EMF) от каждой катушки. Этот сигнал получается путем сравнения напряжения, индуцированного в каждой из трех катушек, с центральным напряжением (точка COM). Результат такой связи усиливается и передается в систему определения положения ротора.

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

Принцип управления двигателем BLDC с помощью сигнала BEMF

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

Форум по обсуждению материала БЕСКОЛЛЕКТОРНЫЕ ДВИГАТЕЛИ BLDC

Умный аварийный резервный светодиодный источник света — простая схема автоматически включающейся LED подсветки.

Усилитель мощности звука на транзисторах, из радиоконструктора DJ200. Проверка работы схемы.

Справочная информация по микросхеме 555 — характеристики, схема подключения, распиновка и аналоги таймера.

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

Источник

Adblock
detector