Физика и схемотехника бесколлекторных моторов и драйверов


С трехфазными моторами можно встретиться абсолютно везде. Если покопаться в своих вещах, то уверен у каждого дома найдётся пара-тройка разного вида экземпляров. Применений у них бесконечное множество: от детских гироскутеров и ненавистных лично мне электросамокатов, до моторов для всего, что летает, подвесов камер и т.д. Очень много применений у одной технологии. В этой статье ставлю перед собой цель рассмотреть BLDC и драйверы к ним на уровне, когда становится понятной схемотехника устройства и физика процессов.
Прелесть BLDC в универсальности архитектуры: для перехода от обмоток FPV-мотора к высокоточной механике gimbal требуется лишь точечная перенастройки параметров.
Физика мотора:
Чтобы лучше разобрать вопрос устройства и физики буду сравнивать между собой три разных применения моторов со своими характеристиками и свойствами: Мотор-колесо с большим моментом силы – такие используются в электросамокатах, мотор с небольшим моментом, но очень оборотистым – для коптеров, и высокоточный gimbal – подвесы камер, стабилизаторы (тут стоит оговориться, что gimbal тоже чаще всего с большим моментом силы, чтобы хватало мощности вращать и удерживать камеру, однако я буду его рассматривать только с точки зрения точности. Силовые свойства рассмотрю на примере мотор-колеса).
В чём сила?
Сила, вопреки желанию сказать про «правду» - в магнитных полях. А точнее в «желании» постоянных магнитов на роторе и обмоток, на которые подали ток на статоре совместиться. Чтобы быть технически точным сформулирую так: если поле ротора и поле статора не совпадают по направлению, то возникает момент силы, пытающийся их совместить.
Формула момента:
M = Kt * I = Kt * (U / R)
Момент силы есть произведение константы (Kt) момента на ток в обмотках. Константа момента зависит целиком от конструкции мотора.

Константу момента можно увеличить путями: увеличения числа витков (больше витков – сильнее поле), силой постоянных магнитов на статоре, c увеличением количества пар полюсов, или с увеличением радиуса колеса (увеличенное плечо M(Момент в ньютон*метрах = F(ньютонов) * R(метров)))
Увеличение же самого тока, для возрастания момента будет приводить к повышенному нагреву. Бороться с нагревом можно, увеличив сечение проволоки в обмотках (толще провод - больше тока может проглотить без перегрева) или добавив охлаждение. Получается, что увеличивая константу момента или ток, или играясь с отношением напряжение/сопротивление можно прийти к увеличению момента.
Однако было бы ошибкой предположить, что для достижения максимальной эффективности нужно собрать изделие с максимальным моментам (огромное колесо, с толстыми проводами, кучей магнитов) и пустить через него огромный ток. Хороший с инженерной точки зрения мотор – это компромисс между массой, потреблением, нагревом и итоговой производительностью.
Точность и плавность.
В вопросах точности и плавности конструкционные изменения имеют меньший вклад в результат. Для gimbal чаще всего ограничиваются увеличением пар полюсов (14 и более) (у полётных моторов их 7), больше витков тонкого провода для увеличения момента, с высоким сопротивлением для плавности хода. Точность зависит от алгоритма коммутации фаз и датчиков положения.
В своей предыдущей статье про позиционный привод я проверял может ли FPV-шный мотор, работать, как gimbal, если к нему добавить 12ти битный энкодер. FOC-алгоритм и AS5600 дали возможность выставлять угол в 0.5, и даже 0.2 градуса. Что для столь неоптимального под эти задачи мотора – отличный показатель. Но это было баловство.
FOC (field oriented control) - это алгоритм коммутации фаз. В отличии от шестишаговой модели, где под напряжением одновременно только две фазы, алгоритм FOC подаёт ток на все три фазы одновременно, но с разными значениями. Плавное изменение напряжение на фазах позволяет очень точно подбирать углы поворота ротора даже на неподходящих для этого моторах.
В упрощённом виде таблица коммутации фаз может выглядеть так:
Угол ротора | Фаза A | Фаза B | Фаза C |
|---|---|---|---|
0° | +10А | −5А | −5А |
60° | +5А | +5А | −10А |
120° | −5А | +10А | −5А |
180° | −10А | +5А | +5А |
240° | −5А | −5А | +10А |
300° | +5А | −10А | +5А |
FOC де-факто является стандартом для высокоточных устройств типа gimbal. Но, как говорится, не одним FOC будем живы. Нужны системы позиционирования. В качестве подобного используются энкодеры разного устройства и точности, датчики Холла и прочее. В зависимости от задач и бюджета.

В общем‑то датчики Холла, как на фото выше не используются для точных изделий, однако это уже система с обратной связью.
В случае с подвесами камер используется целая система отслеживания положения IMU (Inertial Measurement Unit) — инерциальный измерительный модуль. В него включается гироскоп и акселерометр. Исходя из данных, полученных, от датчиков о положении устройства и данных от энкодера (энкодер, к примеру, типа AS5048A) о положении мотора камеры, контроллер рассчитывает положение докручивает мотор до нужного угла. Система работает настолько слажено и плавно, что на глаз невозможно заметить малейших движений (дерганий) в долях градусах, когда система постоянно догоняет подвес до нужного угла. Речь идёт о тысячах измерениях и подгонках в секунду.
В любой реализации BLDC мотор неотделим от управляющей электроники. Но если в силовых приводах электроника — лишь обслуживающий слой, то в системах стабилизации и точного позиционирования она выходит на первый план: датчики положения, ИМУ и контроллер становятся определяющими элементами системы.
"Оборотистость"
В отличии от силовых и высокоточных (от слова точность, а не высокий ток) плавных моторов, свойство "оборотистости" имеет самую простую природу. Устройство таких моторов чаще всего сводится к небольшому числу пар полюсов (у FPV-моторчиков 7 пар - это де-факто стандарт), малому количеству обмоток толстым проводом и отсутствию любых датчиков. Чисто технически для скоростных моторов можно было бы уменьшить количество пар магнитов до двух, и они бы отлично держали высокие обороты, но были бы проблемы при запуске такого мотора. Поэтому производители придерживаются конфигурации 12N14P - 12 зубцов на статоре и 14 магнитов на роторе (7 пар)
Чтобы заставить крутиться трёхфазный мотор, нужно поочерёдно подавать ток на фазы (т.н. шестишаговая модель). Чем быстрее чередуешь фазы, тем быстрее мотор делает оборот. Ток течёт через две фазы, на третью наводится напряжение (противо-ЭДС).
A + | B - | C противоЭДС |
B + | C - | A противоЭДС |
C + | A - | B противоЭДС |
В системах типа FPV (и во остальных всех коптерах) контроль положения ротора осуществляется через величину противо-ЭДС, точнее по скорости её изменения. ESC (Electronic Speed Controller) смотрит пороговые значения напряжений на неподключенной фазе, считает скорость достижения этих пороговых значений и их количество на круг - так вычисляет количество оборотов в минуту. ESC даёт обратную связь о положении ротора, позволяя эффективно коммутировать фазы.

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

Драйверов существует великое множество. Каждый для своей задачи, каждый для своего тока. Но у каждого из них можно найти общие элементы на которых строится вся система. Ниже я разберу весь путь течения тока от контроллера до моторов. Разбирать буду на примере FOC-контроллера, т.к. на нём наиболее наглядно с одной стороны платы расположены все ключевые компоненты.
Почти все драйверы построены на одних и тех же компонентах: микроконтроллер, полумостовые драйверы, MOSFET-транзисторы по два на каждую фазу - верхний и нижний ключи полумоста. Обо всём по порядку:
Первое, что нужно для запуска мотора от микроконтроллера - согласовать уровни напряжения. Микроконтроллер использует источник питание 3,3 вольта, а мотору нужно от 12 вольт и больше - второй источник.
В дело вступает драйвер полумоста. Пин 4 микроконтроллера держит вывод SD(3) IR2104S в состоянии HIGH - драйвер включен. Пины 16,17 и 5 генерируют ШИМ 40кГц, идущие на свои выводы IN (2). IR2104S, считывая уровни сигнала ШИМ, переключает MOSFET'ы, подавая силовые 12 (или более) вольт на моторы.

40 000 раз в секунду микроконтроллер "щелкает" ШИМ уровни сигнала на входе IN IR2104S, то в свою очередь открывает MOSFET, при +12В открывается HO - верхний ключ, при 0В - LO и нижний ключ.
Теперь дело за малым - нужно вовремя включать/отключать ШИМ на пинах микроконтроллера.
A(+12) -> B(GND); B(+12) ->C(GND); C(+12) -> A(GND) и далее по кругу.
И если бы мы так сделали, то получили дергающийся кошмар, который от вибраций сам бы разбирал весь свой крепежный набор. По схеме выше мы получаем смещение фаз на 120 электрических градусов: На каждом шаге ротор «догоняет» поле, прыгнувшее на 120о -> в момент переключения момент силы падает (ротор и поле не совпадают по углу) -> возникают рывки и вибрации. Теряем весь момент силы в процессе пока ротор пытается догнать фазу.
Как оптимизировать работу системы? Увеличить количество шагов, разбив 360о электрических на 6 шагов. В таблице ниже представлена последовательность коммутации фаз (шестишаговая модель упоминалась выше).
Шаг | Фаза A | Фаза B | Фаза C |
|---|---|---|---|
1 | +12В (ШИМ) | GND | висит |
2 | +12В (ШИМ) | висит | GND |
3 | висит | +12В (ШИМ) | GND |
4 | GND | +12В (ШИМ) | висит |
5 | GND | висит | +12В (ШИМ) |
6 | висит | GND | +12В (ШИМ) |
Если в качестве примера взять FPV-шный мотор, фото которого приводил выше, можно заметить, что у него 12 зубцов (12 обмоток на 3 фазы) и 14 магнитов, чередующихся NSNSNSNSNSNSNS. Получается, что каждая фаза имеет по 4 обмотки, к примеру: Фаза А: 1, 4, 7, 10; Фаза Б: 2, 5, 8, 11; Фаза Ц: 3, 6, 9, 12. Над каждой фазой сразу несколько магнитов, и каждый немного смещён. Такая геометрическая конфигурация и электрическая логика делают вращение ротора намного плавнее, увеличивают КПД.
Также выше я упоминал шести фазную модель BLDC. Если переместить на неё эту математику, станет ясно насколько плавнее и эффективнее она.
Скважность ШИМ определяет среднее напряжение на фазе, регулируя момент.
И тут мы снова возвращаемся к формуле момента силы из начала:
M = Kt * I
I = (U(среднее) - противо-ЭДС) / R - для одной фазыIсумм = 2 / 3 * Im * ejωt - суммарная всех фаз
Ток в этой системе определяется средним напряжением, поученным посредством ШИМ (при скважности 50% от 12 вольт получается 6 вольт) из которого вычитается величина противо-ЭДС, который возникает на свободной фазе (если не используется FOC-алгоритм, там нет свободной фазы) и делится всё на сопротивление.
Важно утончить, что момент сил не сумма токов в фазах, так как сумма токов всегда будет равна нулю (по первому закону Кирхгофа — сколько втекает, столько вытекает), но векторная сумма токов. Три тока в обмотках создают три магнитных поля, поля складываются векторно в одно результирующее поле, и именно это результирующее поле взаимодействует с ротором и создаёт момент.
Здесь мы подошли к объяснению ключевого различия FOC-алгоритма и шестишаговой модели с противо-ЭДС.
В FOC движение ротора осуществляется как раз за счёт изменения направления вектора. Момент пропорционален длине этого вектора, а направление вектора — угол поля статора. И именно поэтому FOC даёт плавное вращение: вектор непрерывно вращается, а не «прыгает» между 6 позициями.
И так, мы рассмотрели особенности устройства двигателей, и логику компоновки драйверов. Надеюсь данный материал был Вам полезен и интересен.
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.