Управление бесколлекторным двигателем по сигналам обратной ЭДС – понимание процесса

Когда я начал разрабатывать блок управления бесколлекторным двигателем (мотор-колесом), было много вопросов о том, как сопоставить реальный двигатель с абстрактной схемой из трех обмоток и магнитов, на которой, как правило, все объясняют принцип управления бесколлекторными двигателями.

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

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

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



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

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

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

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

Запустив трехфазный двигатель в генераторном режиме, постоянным магнитным полем будет наводиться ЭДС на каждую из обмоток двигателя, обмотки двигателя распределены равномерно, на каждую из фаз будет наводиться синусоидальное напряжение и данные сигналы будут смещены между собой на 1/3 периода (рисунок 1). Форма ЭДС меняется по синусоидальному закону, период синусоиды равен 2П(360), поскольку мы имеем дело с электрическими величинами (ЭДС, напряжение, ток) назовем это электрическими градусами и будем измерять период в них.

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


                                                Рисунок 1. Вид сигнала трехфазного источника переменного тока.

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

                                                       Рисунок 2. Один электрический период трехфазного двигателя.

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

     Рисунок 3. Момент 1. Вектора магнитного поля каждой обмотки (слева) и результирующий вектор магнитного поля (справа).

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

      Рисунок 4. Момент 2. Вектора магнитного поля каждой обмотки (слева) и результирующий вектор магнитного поля (справа).

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

                                 Рисунок 5. Вид вращающегося магнитного поля формируемого обмотками на статоре двигателя.

За этим вектором электрического магнитного поля увлекается магнитное поле постоянных магнитов ротора в каждый момент времени (рисунок 6).

                            Рисунок 6. Постоянный магнит (ротор) следует направлению магнитного поля формируемого статором.

Так работает синхронная машина переменного тока.

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

Постоянное напряжение
Источник постоянного тока имеет только 2 провода «плюс питания» и «минус питания» это значит, что есть возможность подавать напряжение только на две из трех обмоток. Необходимо аппроксимировать рисунок 5 и выделить все моменты, при которых возможно скоммутировать 2 фазы из трех.

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

Электрический период будем отсчитывать от первого вектора.


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

На рисунке 5 видно, что при управлении трехфазным синусоидальным напряжением имеется множество векторов плавно проворачивающихся с течением времени, а при коммутации постоянным током возможно получить вращающееся поле только из 6 векторов, то есть переключение на следующий шаг должно происходить каждые 60 электрических градусов.
Результаты из рисунка 7 сведены в таблицу 1.

 Таблица 1. Полученная последовательность коммутаций обмоток двигателя.
Плюс питания Минус питания Обмотка не подключена
W U V
W V U
U V W
U W V
V W U
V U W

Вид получившегося управляющего сигнала в соответствии с таблицей 1 изображен на рисунке 8. Где -V коммутация на минус источника питания (GND), а +V коммутация на плюс источника питания.


    Рисунок 8. Вид управляющих сигналов от источника постоянного тока для бесколлекторного двигателя. Желтый – фаза W, синий – U, красный – V.

Однако реальная картина с фаз двигателя будет похожа на синусоидальный сигнал из рисунка 1. У сигнала образуется трапециевидная форма, так как в моменты, когда обмотка двигателя не подключена, постоянные магниты ротора наводят на нее ЭДС (рисунок 9).


                                    Рисунок 9. Вид сигнала с обмоток бесколлекторного двигателя в рабочем режиме.

На осциллографе это выглядит так:


                                 Рисунок 10. Вид окна осциллографа при измерении одной фазы двигателя.

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


                                       а.                                                                                              б.
                                      Рисунок 11. Модель двигателя с одной (a) и с двумя (б) парами полюсов.

Двигатель с двумя парами полюсов имеет 6 обмоток, каждая из обмоток парная, каждая группа из 3 обмоток смещена между собой на 120 электрических градусов. На рисунке 12б. отложен один период для 6 обмоток. Обмотки U1-U2, V1-V2, W1-W2 соединены между собой и в конструкции представляют 3 провода вывода фаз. Для простоты рисунка не отображены соединения, но следует запомнить, что U1-U2, V1-V2, W1-W2 одно и то же.

На рисунке 12, исходя из данных таблицы 1, изображены вектора для одной и двух пар полюсов.

                                       а.                                                                                              б.
                     Рисунок 12. Схема векторов магнитного поля для двигателя с одной (a) и с двумя (б) парами полюсов.

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


        Рисунок 13. Конечные положения ротора при шестиступенчатой коммутации бесколлекторного двигателя с одной парой полюсов.

В двигателях с N парами полюсов необходимо пройти N электрических периодов для полного механического оборота.
Двигатель с двумя парами полюсов будет иметь два магнита с полюсами S и N, и 6 обмоток (рисунок 14). Каждая группа из 3 обмотки смещены друг относительно друга на 120 электрических градусов.


        Рисунок 14. Конечные положения ротора при шестиступенчатой коммутации бесколлекторного двигателя с двумя парами полюсов.

Определение положения ротора бесколлекторного двигателя
Как было сказано ранее для работы двигателя необходимо в нужные моменты времени подключать напряжение на нужные обмотки статора. Подавать напряжение на обмотки двигателя нужно в зависимости от положения ротора, так чтобы магнитное поле статора всегда опережало магнитное поле ротора. Для определения положения ротора двигателя и коммутаций обмоток используют электронный блок управления.
Отслеживание положения ротора возможно несколькими способами:
      1. По датчикам Холла
      2. По обратной ЭДС
Как правило, датчиками Холла производители оснащают двигатель при выпуске, поэтому это самый распространённый метод управления.
Коммутирование обмоток в соответствии с сигналами обратной ЭДС позволяет отказаться от датчиков встроенных в двигатель и использовать в качестве датчика анализ свободной фазы двигателя, на которую будет наводиться магнитным полем противо-ЭДС.

Управление бесколлекторным двигателем с датчиками Холла
Чтобы коммутировать обмотки в нужные моменты времени необходимо отслеживать положение ротора в электрических градусах. Для этого применяются датчики Холла.
Поскольку имеется 6 состояний вектора магнитного поля необходимо 3 датчика Холла, которые будут представлять один абсолютный датчик положения с трехбитным выходом. Датчики Холла устанавливаются также как обмотки, смещенные между собой на 120 электрических градусов. Это позволяет использовать магниты ротора в качестве воздействующего элемента датчика.


                                Рисунок 15. Сигналы с датчиков Холла за один электрический оборот двигателя.

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

 Таблица 2. Сопоставление сигналов датчиков Холла с коммутацией фаз двигателя.
Положение двигателя HU(1) HV(2) HW(3) U V W
0 0 0 1 0 - +
1 0 1 + - 0
1 0 0 + 0 -
1 1 0 0 + -
0 1 0 - + 0
360/N 0 1 1 - 0 +

При равномерном вращении двигателя с датчиков поступает сигнал смещенный на 1/6 периода, 60 электрических градусов (рисунок 16).


                                                        Рисунок 16. Вид сигнала с датчиков Холла.

Управление с помощью сигнала обратной ЭДС
Существуют бесколлекторный двигатели без датчиков положения. Определение положения ротора осуществляется с помощью анализа сигнала ЭДС на свободной фазе двигателя. В каждый момент времени к одной из фаз подключен «+» к другой «-» питания, одна из фаз остается свободной. Вращаясь, магнитное поле ротора наводит ЭДС в свободной обмотке. По мере вращения напряжение на свободной фазе изменяется (рисунок 17).


                                                 Рисунок 17. Изменение напряжения на фазе двигателя.

Сигнал с обмотки двигателя разбит на 4 момента:
   1. Обмотка подключена к 0
   2. Обмотка не подключена (свободная фаза)
   3. Обмотка подключена к питающему напряжению
   4. Обмотка не подключена (свободная фаза)
Сопоставив сигнал с фаз с управляющим сигналом, видно, что момент перехода на следующее состояние можно детектировать пересечением средней точки (половины питающего напряжения) с фазой, которая в данный момент не подключена (рисунок 18).


                            Рисунок 18. Сопоставление управляющего сигнала с сигналом на фазах двигателя.

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

 Таблица 3. Алгоритм переключения обмоток двигателя
Текущее состояние U V W Следующее состояние
1 - Ожидание пересечения средней точки из + в - + 2
2 Ожидание пересечения средней точки из — в + - + 3
3 + - Ожидание пересечения средней точки из + в - 4
4 + Ожидание пересечения средней точки из — в + - 5
5 Ожидание пересечения средней точки из + в - + - 6
6 - + Ожидание пересечения средней точки из — в + 1

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


                                            Рисунок 19. Детектирование средней точки компаратором.

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

Обработка сигнала с фаз двигателя
Однако сигнал с фаз при регулировании скорости ШИМ отличается видом, и имеет импульсный характер (рисунок 21), в таком сигнале невозможно детектировать пересечение со средней точкой.


                                        Рисунок 20. Вид сигнала фазы при регулировании скорости ШИМ.

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


                                                   Рисунок 21. Схема делителя и фильтра сигнала с фазы двигателя.


                                            Рисунок 22. Огибающая сигнала при изменении скважности ШИМ.

Схема со средней точкой


                                                      Рисунок 23. Вид виртуальная средней точки. Картинка взята с avislab.com/

С фаз снимаются сигналы через токограничительные резисторы и объединяются, получается вот такая картина:


                                          Рисунок 24. Вид осциллограммы напряжения виртуальной средней точки.

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



После прохождения сигнала через фильтр колебания сглаживается и получается ровное напряжение относительно которого можно детектировать пересечение обратной ЭДС.


                                       Рисунок 26. Напряжение после делителя и фильтра низких частот.

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


Полученные сигналы с компараторов заводятся на микроконтроллер, который их обрабатывает по алгоритму выше.
Пока на этом все.
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

Комментарии 18

    –1
    Супер статья. Помнится мы попили с этими двигателями кровушки. Тогда не было дешёвых китайских драйверов, а из документации только аппнота от TI.
    Один вопрос: у вас управление получилось реализовать? Или этот так — выжимка теории из разных источников?
      0
      Да, получилось, воплотил это в железе и в данный момент настраиваю двигатели в качестве привода робота



        0
        Он точно не в шаговом режиме работают? На максимальую скорость запускали?
        Кстати, видео и куски кода можно было бы добавить в статью, она была бы полнее.
          0
          Не в шаговом, запускал — кажется все четко, с нагрузкой тоже справляется как положено двигателю. Схема и код, возможно еще будут, после более подробного исследования:) Если двигатель нагружать до полной остановки, то бывало что чтобы он обратно раскрутился надо его слегка подтолкнуть, анализируется же переход фазы, но думаю это дело программно, еще предстоит отладить.
            0
            При потере чёткого фронта BEMF он должен переходить в шаговый режим, собственно как и при старте, иначе будет постоянно глохнуть — для робота это особенно критично.
              0
              Да, алгоритм буду еще додумывать, надо заметить что даже при низкой скорости и внешней нагрузке переключения хорошо происходят.
              Это видео не пример этого, но все же:

      +1
      Спасибо большое за статью. Давно искал эту информацию)) Как думаете много можно сэкономить собирая драйвер бесколлеторного двигателя самому? Готовый с Китая на 30А стоит от 300 рублей
        0
        Думаю сэкономить не получится
        0
        Хорошее место у гитары)
          +2
          Ощутил дежавю, вспоминая свою статью Векторное управление электродвигателем «на пальцах» :)

          Есть некоторое замечания:

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

          На самом деле нужно переключать раньше. Гораздо раньше. Когда вектора магнитного поля ротора и статора сонаправлены — момент двигателя уже равен нулю. При таком управлении вы будете работать не в максимуме момента, а на его остатках. Кроме того, нужно учитывать, что после включения фазы под напряжение ток будет нарастать там не мгновенно, а значит на большой частоте вращения включать нужно ещё раньше. Нужно стремиться держать в среднем 90 градусов между потоком ротора и статора (током статора). Тогда двигатель будет работать в оптимуме.

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

          Кроме того, вы начали рассказ с синхронной машины с синусоидальной ЭДС, а управляете на самом деле BLDC машиной с трапециидальной ЭДС. Хотя для выбранного способа управления разницы нет, но стоило бы немного этот момент раскрыть.
            –1
            Можете подробнее описать, как датчики помогут лучше развить максимальный момент при старте в сравнении с бездатчиковым методом?
              +1
              Бездатчиковый метод, определяющий положение ротора на основе ЭДС, неработоспособен в некотором диапазоне низких частот вращения, где ЭДС мала. Там все простейшие бездатчиковые системы коммутируют фазы "вслепую", не зная положение ротора, и надеясь, что ротор будет следовать за коммутацией — шаговый режим работы, разомкнутый по положению. Так можно успешно запускать вентиляторы и пропеллеры авиамоделей, где на низкой частоте вращения момент нагрузки мал. Если нагрузка большая, инерционная — такая, как транспортное средство на уклоне — шаговый режим не подходит, момент будет дергаться туда-сюда, а машина не поедет, двигатель может выпасть из синхронизма. Если нужно уметь постоянно развить на нулевой частоте вращения максимальный момент, то нужно приложить вектор тока с нужной фазой относительно положения ротора. Тут и помогают датчики положения. Они дают сигнал на нулевой частоте вращения включительно, поэтому двигатель работает в оптимуме сразу, никакой шаговый режим запуска не нужен.
            0
            Появились ли готовые драйверы безщеточного двигателя со счетчиком оборотов (долей оборотов)? Если да, то где можно почитать про двигатель с таким двигателем в связке с редуктором, который бы мог заменить шаговый двигатель в руке робота?
              +1
              ИМХО, без внешнего датчика на валу такое невозможно в принципе — всегда будет накапливаться какая-то ошибка, сильно зависящая от нагрузки и скорости вращения — в статике и на малых оборотах обратная связь через ЭДС на обмотках просто не работает в принципе.
                +1
                Если с датчиком положения, то такой «драйвер» давно существует — это любой сервоусилитель (сервопривод). Можно задать по цифровому интерфейсу связи любое положение ротора в долях градуса в пределах точности датчика положения. Бездачиковые же варианты для околонулевой частоты вращения в теории тоже разрабатываются, основаны на использовании нелинейностей электродвигателя как датчика положения. Например, у синхронных двигателей с магнитами индуктивность вдоль оси с магнитами отличается от индуктивности вдоль оси, где нет магнитов (оси d, q). Подавая на двигатель тестовый высокочастотный сигнал (вместе с основным током) можно измерять индуктивности и определять положение осей d,q. Но как серийный продукт такое не годится, требует очень тонкой настройки и плохо работает при больших токах -железо насыщается, индуктивности меняются, наблюдатель положения ломается. Поэтому в руку робота — только с датчиком положения пока.
                0
                А зачем заменять шаговый двигатель в руке робота? Шаговик это ведь такой же BLDC просто с более мелким разбиением по шагам.
                  0

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

                    +1
                    Шаговые двигатели это подмножество bldc, не совсем правильно их противопоставлять. Просто у него полюсов намного больше.

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

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

                    А так, да, вы наверное, правы — массовые шаговики это моторы для настольных станков. Роботов чаще строят на сервах. Тут где-то была статья, как в бостон динамикс (кажется) проктировали специальные двигатели для роботов как раз.

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

              Самое читаемое