Бесколлекторные моторы BLDC

Создано 23.03.2020 15:29, автор DiEitch

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

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

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

Отечественная плата управления шаговыми и бесколлекторными моторами:

Несложно догадаться, что в панельке стояла UV-EPROM память с таблицей состояний (когда я хотел разобрать эту плату, то вынял микросхему, теперь же - верну, и плата перекочует в мой личный музей электронных раритетов). На К561ЛА7 собран генератор прямоугольных импульсов, К561ИЕ16 используется как многоразрядный двоичный счётчик-делитель для переключения адреса EEPROM, К561ЛН2 используется как усилитель и инвертор. Также, на плате можно увидеть уникальный "доморощенный" отечественный диодный мост. Транзисторы осуществляют непосредственно коммутацию обмоток.

Говоря о BLDC, нужно отметить, что чаще всего встречаются 3х-фазные моторы (как необходимый минимум для плавной и надёжной работы), однако, я лично видел и 2х-, и 4х-фазные.

Как упрощённо работает 3х-фазный BLDC можно прочитать хотя бы здесь (hall sensor) или здесь (back electromotive force sensor). Ничего сложного: переключаем фазы, и ротор "бежит" за полем. Однако, на практике не всё так просто. Во-первых, встречаются несколько видов BLDC в зависимости от датчика положения ротора (ДПР): на датчиках Холла, и на BEMF (самоиндукции обмоток статора). "Тьфу, да зачем все эти датчики положения?" - скажете вы, - "И так всё нормально вращается". А вот, нагрузите ротор, или попробуйте резко увеличить скорость мотора: синхронизация поля с положением ротора сорвётся, и мотор остановится.

Итак, развенчаем один миф о работе BLDC: "меняем фазы - мотор вращается". Нет. Подаём на фазовые обмотки нужный ток, мотор вращается с нужным усилием и скоростью, ДПР фиксирует смену положения ротора, по датчику переключаем фазы. Нужный ток для обмоток генерируется (если это нужно) с помощью ШИМ-контроллера (описание его работы можно прочитать здесь).

Теперь запустим мотор на Arduino Nano (сначала попробуем в Proteus).

Для симуляции BLDC в Proteus77 есть почти всё, кроме самой Arduino Nano - качаем. Всё делаем по-серьёзному, датчики положения, ШИМ, АЦП для регулировки скорости (мощности на валу), кнопка переключения направления - реверс. Изначально я хотел применить полевые транзисторы в качестве ключей (как и положено), однако, для симуляции это оказалось слишком накладно, в итоге хорошо сработали каскады на инверторах с ОК для "нижнего ключа" и инверторах с диодами для "верхнего ключа".

Несмотря на всю свою "серьёзность", этот контроллер тоже несколько упрощён, в нём заложена (пины D6,D5 и D3 имеют возможность генерировать ШИМ-сигналы), но не запрограммирована возможность электронного тормоза. При определённых сигналах (верхние ключи замыкаются, а нижние - генерируют ШИМ) на выводах обмоток, BLDC-мотор становится тормозом-генератором с рекуперацией электричества в источник (аккумулятор).

В современных контроллерах МК (мотор-колеса) в электротранспорте применяют специализированные микросхемы контроллеров (например, Infineon XC8xx и подобные), которые содержат в себе специальные модули CCU6 (CAPTURE-COMPARE UNIT) для управления мощными моторами. Эти модули позволяют избавить микроконтроллер от лишних вычислений и полностью автоматизируют управление BLDC-мотором.

Ещё один миф про BLDC: они всегда с внешним ротором (outrunner). Неправда. Встречаются также моторы inrunner, но немного реже.

Проект для исследования с прошивкой для Arduino можно скачать здесь.