Управление вентильным электродвигателем
Слово «вентильный» в названии двигателя происходит от слова «вентиль», обозначающего полупроводниковый ключ. Таким образом, привод в принципе можно назвать вентильным, если режим его работы регулируется специальным преобразователем на управляемых полупроводниковых ключах.
Непосредственно вентильный привод представляет собой электромеханическую систему, состоящую из синхронной машины с постоянными магнитами на роторе и электронного коммутатора (при помощи которого питаются обмотки статора) с системой автоматического управления на базе датчиков.
В тех многочисленных областях техники, где раньше традиционно устанавливали асинхронные двигатели или машины постоянного тока, сегодня часто можно встретить именно вентильные двигатели, поскольку магнитные материалы дешевеют, а база силовой полупроводниковой электроники и систем управления очень быстро развивается.
Синхронные двигатели с постоянными магнитами на роторе отличаются рядом преимуществ:
нет щеточно-коллекторного узла, поэтому ресурс двигателя больше, а надежность его выше, чем у машин со скользящими контактами, к тому же диапазон рабочих скоростей выше;
широкий диапазон питающих напряжений обмоток; допускается значительная перегрузка по моменту — более 5 раз;
высокая динамика момента;
возможна регулировка скорости с сохранением момента на низких скоростях или с сохранением мощности на высоких скоростях;
минимальные потери на холостом ходу;
небольшие массогабаритные характеристики.
Магниты состава «неодим-железо-бор» вполне способны создавать индукцию в зазоре порядка 0,8 Тл, то есть на уровне асинхронных машин, причем основные электромагнитные потери в таком роторе отсутствуют. Значит линейная нагрузка на ротор может быть повышена без повышения общих потерь.
Этим и обуславливается более высокая электромеханическая эффективность вентильных двигателей по сравнению с другими бесколлекторными машинами, например с асинхронными двигателями. По этой же причине вентильные двигатели занимают сегодня достойное место в каталогах ведущих зарубежных и отечественных производителей.
Управление ключами инвертора вентильного электродвигателя традиционно выполняется в функции положения его ротора. Высокие эксплуатационные характеристики, достигаемые таким образом, делают вентильный привод весьма перспективным в диапазоне малых и средних мощностей для систем автоматики, станков, роботов, манипуляторов, координатных устройств, линий обработки и сборки, систем наведения и слежения, для авиации, медицины, транспорта и т.д.
В частности, выпускаются тяговые дисковые вентильные двигатели мощностью более 100 кВт для городского электротранспорта. Здесь применяются магниты «неодим-железо-бор» с легирующими добавками, увеличивающими коэрцитивную силу и повышающими рабочую температуру магнитов до 170°С, чтобы мотор мог легко выдерживать кратковременные пятикратные перегрузки по току и по моменту.
Приводы рулевого управления подводных, наземных и летательных аппаратов, мотор-колеса, стиральные машины — много где сегодня находят полезное применение вентильные двигатели.
Вентильные двигатели бывают двух видов: постоянного тока (BLDC — brushless DC) и переменного тока (PMAC — permanent magnet AC). В двигателях постоянного тока трапециевидная ЭДС вращения в обмотках обусловлена расположением магнитов ротора и обмоток статора. В двигателях переменного тока ЭДС вращения синусоидальная. В рамках данной статьи мы поговорим об управлении вентильными двигателями очень распространенного вида — BLDC (постоянного тока).
Вентильный двигатель постоянного тока и принцип управления им BLDC моторы отличает наличие полупроводникового коммутатора, выступающего вместо щеточно-коллекторного узла, свойственного машинам постоянного тока с обмоткой на статоре и с магнитным ротором.
Переключение коммутатора вентильного мотора происходит в зависимости от текущего положения ротора (в функции положения ротора). Чаще всего обмотка статора трехфазная, такая же как у асинхронного двигателя с соединением звездой, а конструкция ротора с постоянными магнитами может быть различной.
Движущий момент в BLDC образуется в результате взаимодействия магнитных потоков статора и ротора: магнитный поток статора все время стремится как бы развернуть ротор в такое положение, чтобы магнитный поток установленных на нем постоянных магнитов совпал по направлению с магнитным потоком статора.
Аналогичным образом магнитное поле Земли ориентирует стрелку компаса — оно разворачивает ее «по полю». Датчик положения ротора позволяет сохранить угол между потоками постоянным на уровне 90±30°, в таком положении вращающий момент оказывается максимальным.
Полупроводниковый коммутатор для питания обмоток статора BLDC – это управляемый полупроводниковый преобразователь с жестким алгоритмом 120° коммутации напряжений или токов трех рабочих фаз.
Пример функциональной схемы силовой части преобразователя с возможностью генераторного торможения приведен на рисунке выше. Здесь инвертор с амплитудно-импульсной модуляцией выхода выполнен на IGBT-транзисторах, причем амплитуда регулируется благодаря широтно-импульсной модуляции на промежуточном звене постоянного тока.
Вообще для данной цели используются: тиристорные преобразователи частоты с автономным инвертором напряжения или тока с управлением по питанию и транзисторные преобразователи частоты с автономным инвертором напряжения с управлением в режиме ШИМ или с релейным регулированием тока на выходе.
В итоге электромеханические характеристики двигателя получаются аналогичными традиционным машинам постоянного тока с магнитоэлектрическим или независимым возбуждением, потому системы управления BLDC и строятся по классическому принципу подчиненного регулирования координат привода постоянного тока с контурами частоты вращения ротора и тока статора.
В качестве датчика для правильной работы коммутатора может применяться емкостной либо индуктивный дискретный сенсор, согласованный с мотором по полюсам, или система на базе датчиков Холла с постоянными магнитами.
Так или иначе, наличие датчика часто усложняет конструкцию машины в целом, к тому же в некоторых применениях датчик положения ротора вообще невозможно установить. Поэтому нередко на практике прибегают к использованию «бездатчиковых» систем управления. Алгоритм «бездатчикового» управления (sensorless) основывается на анализе данных прямо с клемм преобразователя и текущей частоты ротора или питания.
Наиболее популярный «бездатчиковый» алгоритм основан на вычислении ЭДС для одной из отключенных от питания в данный момент фаз двигателя. Фиксируется переход ЭДС отключенной фазы через ноль, определяется сдвиг в 90°, вычисляется момент времени, на который должна прийтись середина следующего токового импульса. Преимущество этого способа заключается в его простоте, однако есть и недостатки: на малых скоростях определить момент перехода через ноль достаточно непросто; задержка окажется точной только при постоянной скорости вращения.
Между тем, для более точного управления применяют усложненные методы оценки положения ротора: по потокосцеплению фаз, по третьей гармонике ЭДС на обмотках, по изменениям индуктивностей фазных обмоток.
Рассмотрим пример с наблюдением за потокосцеплениями. Известно, что пульсации момента BLDC при питании двигателя прямоугольными импульсами напряжения, достигают 25%, что приводит к неравномерности вращения, создает ограничение для регулировки скорости снизу. Поэтому в фазах статора при помощи замкнутых контуров регулирования формируются токи близкие по форме к прямоугольным.
AVR275
Управление трехфазовым вентильным электродвигателем на основе датчиков с помощью семейства AT90USB
Основные особенности:
- ответ на изменение показаний датчика Холла менее 3 мкс,
- теоретический максимум 3478К RPM (оборотов в минуту) (имеется в виду электрических RPM),
- поддержка замкнутого контура регулирования тока, остановки двигателя и обнаружения перегрузки,
- возможность связи по интерфейсам USB, UART, TWI и SPI.
Использование вентильных электродвигателей постоянно увеличивается. Причина очевидна: у вентильных электродвигателей хорошее соотношение между весом/размером и мощностью, отличные характеристики ускорения, они практически не требуют технического обслуживания и генерируют меньше акустического и электрического шумов по сравнению с универсальными (щеточными) электродвигателями постоянного тока.
В универсальных электродвигателях постоянного тока щетки управляют коммутацией посредством физического подключения обмоток в нужный момент. В вентильных электродвигателях коммутацией управляет электроника. Контролирующая электроника может иметь специальные входы для датчиков положения, показания которых и определяют время подключения, или может использовать противоэлектродвижущую силу, возникающую в самих обмотках. Датчики положения используются наиболее часто в приложениях, где пусковой момент сильно варьируется или где начальный пусковой момент должен быть большим. Датчики положения также часто используются в приложениях, где электродвигатель используется для позиционирования. Управление вентильными двигатели без помощи датчиков часто используется, если пусковой момент сильно не варьируется или если контроль положения не является целью, например, в вентиляторах.
Рис. 1.1. AT90USB управляет вентильным электродвигателем с помощью датчиков Холла
2. Логика работы
Управление вентильными электродвигателем с помощью датчиков может быть осуществлено на основе достаточно мощного микроконтроллера со следующей базовой аппаратной периферией: аналогово-цифровым преобразователем (АЦП) и таймером с ШИМ-выходом. Микроконтроллер Atmel AT90USB удовлетворяет всем требованиям для управления вентильным электродвигателем, причем еще остаются ресурсы для других задач. Другими задачами, например, могут быть: связь по протоколам USB, SPI, UART или TWI.
Трехфазный вентильный электродвигатель состоит из стартера, у которого есть несколько обмоток. У классического вентильного электродвигателя три обмотки (см. Рисунок 2-1). Обычно их называют U, V и W. Во многих электродвигателях классическое число обмоток удваивается с целью уменьшения шага вращения и уменьшения колебания момента вращения.
Ротор в вентильных электродвигателях состоит из четного числа постоянных магнитов. Число магнитов в роторе тоже влияет на шаг и колебания момента вращения электродвигателя. Чем больше суммарное число полюсов магнитов, тем меньше шаг и меньше колебания момента вращения. На рисунке 2-1 показаны различные конфигурации электродвигателей с числом обмоток, большим, чем в классическом варианте, и с несколькими парами магнитных полюсов в роторе.
Рис. 2.1. Различные типы вентильных электродвигателей
У электродвигателя (а) два набора классических обмоток и 4 магнитных полюса, у (b) три набора классических обмоток и 8 магнитных полюсов, у (c) четыре набора классических обмоток и 8 магнитных полюсов.
Тот факт, что обмотки неподвижны пока магнит вращается, делает ротор вентильного электродвигателя легче, чем у обычного универсального электродвигателя, в котором обмотки помещены в ротор.
2.1. Принцип работы классического вентильного электродвигателя
Для облегчения объяснения принципа работы вентильных электродвигателей будет рассмотрен классический вентильный электродвигатель с тремя обмотками и двумя магнитными полюсами.
Для того, чтобы мотор вращался, на обмотки подается ток в определенной последовательности, что заставляет мотор вращаться в определенном направлении, например по часовой стрелке. Если подавать ток в обратной последовательности, то и мотор будет вращаться в другую сторону. Нужно понимать, что последовательность подачи тока определяет направление тока в обмотках и посредством этого магнитное поле, генерируемое в каждой из обмоток. Направление тока определяет ориентацию магнитного поля, генерируемого обмоткой. Магнитное поле притягивает или отталкивает постоянные магниты ротора. Изменение направления тока в обмотках, и, тем самым, изменение полярности магнитного поля в нужный момент в нужной последовательности приводит к вращению электродвигателя. Изменение направления тока в обмотках, которое приводит к вращению двигателя, называется коммутацией.
У трехфазного вентильного электродвигателя шесть состояний коммутации. Когда все шесть состояний последовательно пройдены, последовательность повторяется для продолжения вращения. Такая последовательность представляет собой полное электрическое вращение. В двигателях с числом магнитных полюсов больше двух электрическое вращение не соответствует механическому. В четырехполюсном вентильном электродвигателе 2 электрических вращения соответствуют одному механическому.
Простейшим методом осуществления коммутации в вентильных электродвигателях является метод «включено-выключено» (on-off): обмотка в одном из направлений является проводящей, в другом — нет. Включение обмотки между питанием и землей приводит к возникновению тока (подразумевается использование задающего каскада). Такой способ коммутации называется коммутацией прямоугольными импульсами или блочной коммутацией. В другом методе коммутации используется синусоидальный управляющий сигнал. В этих «рекомендациях» рассматривается блочный способ коммутации.
Величина магнитного поля определяет вращающий момент и скорость электродвигателя. Изменяя ток через обмотки можно изменять вращающий момент и скорость вращения электродвигателя. Наиболее распространенный метод управления током — управление (средним) током через обмотку. Суть этого метода в подключении и отключении питания обмотки, причем соотношение между временем, когда питание включено и когда отключено, определяет среднее напряжение на обмотке и, тем самым, средний ток.
Рис. 2.2. Протекание тока через обмотки/магнитное поле, генерируемое обмотками U, V и W в шести состояниях коммутации вентильного электродвигателя. Также показаны выходы датчика Холла
В вентильных электродвигателях управление коммутацией осуществляется электроникой. Простейшим способом коммутации является коммутация в соответствии с показаниями набора датчиков положения, находящихся внутри электродвигателя. Обычно используются датчики Холла. Показания датчиков Холла изменяются, когда должно измениться состояние коммутации (см. рис. 2-2).
Вторая функция электроники в устройстве управления вентильным электродвигателем — проверка скорости вращения на соответствие желаемой с помощью замкнутого или разомкнутого контуров. В каждом из этих случаев рекомендуется наличие возможности обнаружения остановки (блокировки двигателя) и обнаружения перегрузки.
2.2 Реализация управления вентильным электродвигателем с помощью датчиков Холла
Реализация, описанная в этом документе, управляет вентильным электродвигателем с помощью разомкнутого контура. Чтобы отслеживать останов и перегрузку электродвигателя постоянно измеряется скорость двигателя и может измеряться ток (но в рассматриваемой реализации это не осуществлено). На рис. 2-3 изображен типичный задающий каскад для вентильного электродвигателя.
Рис. 2.3. Типичный задающий каскад для вентильного электродвигателя
На практике задающий каскад немного другой, чтобы обеспечить необходимый ток для управления стороной высокого напряжения (high-side) полевых транзисторов непосредственно с выводов AVR. Рисунок 2-4 показывает реальную реализацию задающего каскада для каждой из обмоток. При желании реализация может быть другой.
Рис. 2.4. Схемы задающих каскадов для обмоток U, V и W (показан только задающий каскад для обмотки U)
Три ШИМ-канала, , OC1A, OC1B иOC1C управляют стороной низкого напряжения (low-side) задающего каскада (например, UL на рис 2-4). Такая система позволяет управлять током аппаратно с помощью ШИМ с минимальным использованием ресурсов таймеров. Так происходит управление скоростью электродвигателя: изменение коэффициента заполнения ШИМ сигнала позволяет управлять током, а, следовательно, и скоростью (и вращающим моментом) электродвигателя.
Также возможно с помощью ШИМ управлять стороной высокого напряжения (high-side) задающего каскада, что потребует использование в дополнение к таймеру 1 таймера 3 микроконтроллера AT90USB. В реализации управляющего устройства, описанной в этих «рекомендациях», управление стороной высокого напряжения (high-side) осуществляется линиями ввода/вывода общего назначения.
Для более эффективного распределения мощности между транзисторами при использовании активного выключения (active breaking) можно использовать ШИМ для управления как стороной высокого напряжения (high-side) , так и стороной низкого напряжения (low-side) задающего каскада. Как бы то ни было, в большинстве приложений этого не требуется.
Один канал АЦП может быть использован для измерения тока (в данной реализации не сделано). АЦП имеет разрешение 10 разрядов и может использовать внутреннее опорное напряжение 2.56В; которое дает точность порядка 2.4 мВ, что достаточно для обнаружения перегрузки по току, т.к. напряжение на 0.22 Омном шунтирующем резисторе составляет 220мВ при протекании тока 1 А. Если есть необходимость, АЦП можно включать по сигналу ШИМ для измерения тока не в момент переключения, или АЦП может работать постоянно с заданной частотой выборки. Второй канал АЦП может использоваться для измерения напряжения на потенциометре для установки скорости электродвигателя (полезно, если для управления скоростью электродвигателя не используется цифровой интерфейс).
Выводы датчика Холла соединены с 3 выводами порта E (PORTE), которые настроены как внешние прерывания по изменению уровня. При изменении логического уровня на выходах датчиков Холла возникает прерывание и изменяется состояние коммутации согласно новым показаниям датчиков Холла.
Обзор использованных ресурсов приведен в таблице «Ресурсы, использованные для управления электродвигателем».
Таблица 1. Ресурсы, используемы для управления электродвигателем
Ресурс | Использование |
PORTB[5, 6, 7] — Timer Counter 1: OC1[A, B ,C] | Управление стороной низкого напряжения задающего каскада (UL, VL, WL) |
PORTB[2,3,4] | Управление стороной высокого напряжения задающего каскада (UН, VH, WH) |
PORTE[5,6,7] | Входы для показаний датчиков Холла (A, B, C) |
Стоит отметить, что аппаратные ресурсы для связи по USB, UART, SPI и TWI доступны при необходимости. Заметьте, что для реализации связи по этим интерфейсам не рекомендуется использовать прерывания, т.к в этом случае возможно изменение времени отклика при коммутации.
2.3. Интерфейс USB
Для управления скоростью и направлением вращения электродвигателя используется класс HID, также есть возможность запуска и останова двигателя. Еще есть специфические фреймы для отправки измеренной скорости электродвигателя по шине USB.
Таблица 2. Фреймы, используемые для связи по USB
Тип | 1-й байт | 2-ой байт | 3-ий байт | 4-ый байт | 5-ый байт | Действие |
OUT | 01 | безразлично | безразлично | безразлично | безразлично | Запуск электродвигателя |
OUT | 02 | безразлично | безразлично | безразлично | безразлично | Остановка электродвигателя |
OUT | 03 | 0xHH | 0xLL | безразлично | безразлично | Установка скорости электродвигателя (скорость=0xHHLL) |
OUT | 04 | 0xXX | безразлично | безразлично | безразлично | Установка направления вращения электродвигателя (DD=0=против часовой стрелки или DD=1=по часовой стрелке) |
IN | 05 | 0xHH | 0xLL | Направление 0xDD | Запуск/останов | Получение статуса Измеренная скорость=0xHHLL Направление (DD=0=против часовой стрелки или DD=1=по часовой стрелке) Запуск/останов (Status=0xff=запущен, Status=0x00=остановлен) |
2.4 Описание программного обеспечения
Весь код разработан на языке Си с использованием компилятора IAR EWAVR 4.20A (бесплатный, с ограничением на размер выходного бинарного файла 4Кбайт). Это программное обеспечение основано на реализации HID-устройства, описанной в AVR328 (AVR328: Реализация устройства класса HID).
Основные функции приведены ниже. Приведены лишь самые главные функции, используемые для управления электродвигателем. Обработчик внешнего прерывания, обеспечивающий изменение состояния коммутации при изменении выходов датчиков Холла, описан блок-схемой.
void Init_MC_timer1_pwm( void )
инициализирует таймер 1 (Timer 1 ) для работы в ШИМ режиме. OCRx сбрасывается при совпадении.
void Init_MC_pin_change_interrupt ( void )
Настраивает выводы, используемые для обработки сигналов датчиков Холла, как внешние прерывания по изменению уровня сигнала (и по фронту и по спаду).
void Set_Direction( unsigned char direction )
Настраивает указатель таблицы коммутации на использование таблицы для обеспечения вращения двигателя по часовой стрелке или против. Заметьте, что не рекомендуется изменять направление вращения двигателя без предварительного уменьшения скорости вращения, а лучше полной остановки.
void Set_Speed( unsigned int speed )
Изменяет содержимое регистров сравнения таймера 1, который управляет коэффициентом заполнения ШИМ, и, таким образом, скоростью электродвигателя. Используемый метод обеспечивает одновременное изменение ШИМ каналов (и поддержку одинаковых коэффициентов заполнения)
Инициализирует таймер 0 (timer 0) для работы на частоте Clkio/1024 до переполнения, таймер 0 (8 бит) переполняется каждые 32мс при тактовой частоте микроконтроллера 8 МГц. Этот отрезок времени используется для измерения скорости электродвигателя.
_interrupt void TIMER0_0VF_ISR(void)
Прерывание от таймера 0 возникает каждые 32 мс при тактовой частоте 8 МГц, здесь же изменяется переменная Measured_speed .
Разрешает работу вывода OCRx для запуска двигателя.
Запрещает работу вывода OCRx для останова двигателя, переводит выводы AVR, подключенные к задающему каскаду, в плавающее состояние. Это останавливает работу задающего каскада, чтобы обеспечить отсутствие тока в обмотках электродвигателя.
Изменяет выводы ШИМ, управляющие стороной низкого напряжения (low-side) задающего каскада и линии ввода/вывода, управляющие стороной высокого напряжения (high-side) задающего каскада. Для обеспечения оптимальной скорости обработки прерываний переменные, используемые в обработчике, располагаются в специальных регистрах (которые используются только для этого). Далее, информация, необходимая для коммутации расположена в таблицах, доступ к которым легко осуществляется при использовании показаний датчиков Холла в качестве смещения. Алгоритм обработки прерывания приведен на рис 2-5.
Рис. 2-5 Алгоритм обработки внешнего прерывания, обеспечивающий коммутацию
2.5. Реализация программного обеспечения для ПК
ПО для ПК (с ОС Windows 2K и XP) позволяет управлять скоростью и направлением вращения электродвигателя, а также отображает измеренную скорость (см. рис ниже).
2.6. Особенности рассмотренной реализации
- Управление скоростью с 10 битным разрешением,
- размер кода порядка 3500 байт,
- время отклика на изменение показаний датчика Холла меньше 5 мкс.
Обработка внешнего прерывания занимает около 23 циклов ЦПУ. При частоте работы 8 МГц это позволяет осуществлять электрическое вращение за 17,25 мкс (50 циклов*6состояний коммутации). Что дает 3478K электрических вращений в минуту при использовании электродвигателя с 4 парами полюсов, это, в свою очередь, дает теоретический максимум 869K механических вращений в минуту (если не принимать во внимание контроль за перегрузкой по току и связь по USB).