Контроллер бесколлекторного двигателя

Контроллер бесколлекторного двигателя

Контроллер бесколлекторного двигателя

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

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

 Я начинал изучение схемотехники драйвера бесколлекторного двигателя по апноте Atmel "AVR492: Управление бесколлекторным электродвигателем постоянного тока с помощью AT90PWM3" Она есть на русском языке. Немного пояснений: "Для управления БКЭПТ используется силовой каскад, состоящих из 3 полумостов. Схема силового каскада показана на рисунке 4."
Здесь силовой каскад - это 6 транзисторов, схематично показанных ключами CmdSW, полумост - пара транзисторов, соединенных последовательно между "+" и "-" питания, например CmdSW1, CmdSW2. A, B, C - выводы обмоток двигателя, соединение обмоток между собой как у асинхронных двигателей. Эта схема позволяет току протекать между фазами A, B, C в любом направлении. Например если замкнуть ключ CmdSW1 и CmdSW4, то ток потечет от вывода A к выводу B, а если замкнуть CmdSW3 и CmdSW2 - от вывода В к выводу A. А если замкнуть CmdSW1 и CmdSW2 - получится короткое замыкание с выгоранием транзисторов, так что управлять транзисторами нужно осторожно. Кстати для управления коллекторым двигателем с реверсом нужно 2 полумоста, без реверса - 1 транзистор.
  Для регулирования силы тока в фазе используют широтно-импульсную модуляцию (ШИМ). Например часть времени открывают ключи CmdSW1, CmdSW4 и ток начинает течь от "A" к "B", затем закрывают CmdSW1 и открывают CmdSW2 и за счет индуктивности обмоток ток продолжить течь по кольцу  A-B-CmdSW4-"земля"-CmdSW2. Кстати в транзисторы встроены диоды, проводящие ток в обратном направлении. Так что если во второй фазе ШИМ разомкнуть все транзисторы, то в обмотке начнет расти напряжение и через эти диоды энергия из обмоток начнет возвращаться в сеть.
   Эта схема из 6 транзисторов называется трехфазным инвертором и применяется для преобразования постоянного тока в трехфазный переменный для питания как бесколлекторных, так и асинхронных двигателей. Для бесколлекторных двигателей применяются низковольтные полевые транзисторы (MOSFET), для асинхронных двигателей - высоковольтные биполярные транзисторы с изолированным затвором (IGBT). С помощью этой схемы можно осуществлять и рекуперацию. Её используют все и лучше не сделать.

  Как инвертор бывает оформлен в зависимости от мощности двигателя:

Для управления двигателями очень маленькой мощности используются специализированные микросхемы, в которой уже находятся 6 транзисторов и логика для управления ими. Это решение для двигателей дисководов и вентиляторов. Следующий шаг - микросхема,  управляющая транзисторами и транзисторы отдельно. И для высоких мощностей микросхема или контроллер управляет микросхемами драйверов транзисторов, а драйвера уже управляют самими транзисторами. Зачем такие сложности? Мощные транзисторы имеют управляющий вход с большей емкостью, слабая электроника не в состоянии обеспечить токи до нескольких ампер для быстрого их открытия. А у полуоткрытого транзистора большое сопротивление, он в этот момент греется или даже сгорает :) Поэтому используют микросхемы-драйверы, внутри которых кстати тоже транзисторы, только менее мощные. Получается такой каскад из транзисторов.

Вот первый пример реализации инвертора - авиамодельный, самый дешевый. Фото с двух сторон.

 На одной стороне видно 6 транзисторов в корпусах SOIC. (3 N-канальных, 3 P-канальных), на другой стороне микроконтроллер ATMEGA8 и линейный стабилизатор для получения 5В питания. Ещё есть электролитический конденсатор и всякая мелочь - резисторы с конденсаторами. И всё. Дешево и сердито. Цена в рознице около 1000р. Микроконтроллер напрямую управляет затворами транзисторов. Греется такой контроллер довольно сильно, но так как он устанавливается на авиамодели, то хорошо обдувается. Разумеется есть более продвинутые модели, это просто пример упрощения и миниатюризации.

А вот фотография демо-платы от Atmel

 
Предполагается, что можно купить её и сразу начать программировать контроллер, пытаться крутить двигатель. Я решил не покупать, возможно зря. Во всяком случае к ней неплохо бы продавать сразу запасные транзисторы, я их сжег не один раз. И контроллер пару раз. Собственно 6 транзисторов справа, контроллер слева, драйвера транзисторов на другой стороне.

Схема моего драйвера с пояснениями
Я решил не делать простейший драйвер с тем, чтобы расширить возможности его применения, при необходимости несложно будет упростить. Схема разбита на 3 части. Она не такая наглядная, как в апноте Atmel, но постараюсь всё пояснить.

Первая часть - силовая

 
Силовые транзисторы VT1-VT6 управляются микросхемами-драйверами DA1-DA3. Транзисторы я выбрал IRLR3705 как одни из наиболее мощных в корпусе D-Pak на напряжение 55V с сопротивлением 8мОм. Я рассчитывал на напряжение работы 36В плюс запас. В принципе можно ставить транзисторы на радиаторы и использовать корпуса TO-220, но я решил не усложнять монтаж и паять транзисторы на плату. В таком случае для меньших мощностей можно ставить транзисторы в корпусе soic, а для больших - в D2-Pak.  Драйвера взял самые мощные из полумостовых от фирмы International Rectifier - irf2186s с током управления до 4A. Получился большой запас, но самые простые драйвера ir2101 из апнота атмел (ток 130/270мА) с мощными транзисторами справлялись плохо, разница в нагреве транзисторов была ощутима. Полумостовой драйвер управляет двумя транзисторами - верхним и нижним, для управления верхним транзистором нужно высокое напряжение, которое получается по бустрепной схеме питания с помощью диода и конденсатора (например C6, DD7), эта схема наиболее проста и принцип её можно легко найти в интернете. Можно было взять одну микросхему full-brige для управления сразу шестью транзисторами, но у меня разводка с ней получалась хуже. Между затворами транзисторов и драйверами - резисторы с диодом. Они ограничивают ток затвора, причем ток зарядки почти в 2 раза больше. Тут следующая логика - чем больше ток, тем меньше греются транзисторы при переключении, но растут всплески напряжения. Поэтому номинал резисторов нужно уменьшать до какого-либо разумного предела. Причем транзистор открывается медленнее, чем закрывается, поэтому ток зарядки я сделал больше. Сигнальные выводы драйверов подтянуты к земле на всякий случай, чтоб не сработали когда нет сигналов управления. В целом здесь всё почти так же, как в апноте атмел. Датчики холла также подключил как в апноте, здесь ничего интересного. Питание, силовые Выводы транзисторов и выводы датчиков холла выведены на клеммник X1. Для защиты от короткого замыкания нужно контролировать ток. Для этого служат резисторы R19, R21 суммарным сопротивлением 0,005Ом (в апноте был резистор 0,1Ом), падение напряжение на них усиливается микросхемой LM358 и идет на компаратор и АЦП контроллера. Реализация у меня получилась не очень удачной, но в большинстве случаев защита срабатывает. Неплохо было бы ставить переменный резистор, чтобы пользователь мог задавать порого срабатывания защиты, но это как-нибудь потом ). Также в контроллер заведен сигнал V_IN_MEAS, пропорцональный входному напряжению. Сделано это, чтобы не давать работать драйверу при входном напряжении более 36В, но защиту я пока не включил.  

Следующая часть схемы - питание логических элементов.

Из входного питания 24..36В нужно получить 12В для питания драйверов транзисторов и 5В для  остальной логики

Для получения 12В я использовал линейный стабилизатор MC78M12. Лишнее напряжение он просто рассеивает в виде тепла, но так как драйверы транзисторов поребляют не очень много нагрев приемлемый.
Для 5В питания линейный стабилизатор уже применить не получилось, потому что 5В ещё задумывалось использовать для питания внешнего экрана индикации и нагрев оказался слишком большим. Поэтому применил понижающий преобразователь L5973AD. Он не очень дорогой, но в отличии от ещё более дешевых вариантов имеет защиту от короткого замыкания на выходе. Внешняя обвязка для него и разводка дорожек выполнена по соответствующей апноте.
Обе эти микросхемы имеют максимально допустимое напряжение 35В. Для гашения возможного излишнего напряжения предназначена конструкция из транзисторов VT7, VT8 и стабилитрона VD3.

Последняя часть схемы - микроконтроллер AT90PWM3B с обвязкой.

  • 6 выводов PSCOUT_XX используются для управления драйверами транзисторов.
  • 3 вывода HALL_X используются для отслеживания датчиков холла двигателя.
  • 3 вывода задействованы на микропереключатель SA1 - он служит для переключения интерфейсов  драйвера (RS485 либо переменный резистор с кнопками), выбора числа пар полюсов подключенного двигателя (2 либо 4) и для проведения калибровки двигателя (определение положения датчиков холла)
  • 3 вывода задействованы для управления микросхемой-драйвером RS485
  • 6 выводов задействованы под вариант традиционного управления драйвером - с кнопками и переменным резистором. 4 кнопки служат для включения/выключения (Enable), реверса(F/R), тормоза(Brake) и выбора режима поддержания скорости(Mode). Еще один вывод Speed(analog) для переменного резистора задания скорости и на последний выход Hall_out подаются импульсы при срабатывании датчиков холла. Эти выводы и выводы интерфейса RS485 выведены на клеммник X3.
  • 2 вывода задействованы для контроля сигнала токового шунта ERROR_ADC. Один для быстрого срабатывания защиты, другой для грубой оценки потребляемого тока.
  • 1 вывод для контроля входного напряжения V_IN_MEAS
  • 1 вывод для светодиода VD5, полезного для индикации различных событий.
Также на схеме есть разъем программирования контроллера X2

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


Источник: http://v-kudryashov.livejournal.com/842.html

Контроллер бесколлекторного двигателя

Контроллер бесколлекторного двигателя

Контроллер бесколлекторного двигателя

Контроллер бесколлекторного двигателя

Контроллер бесколлекторного двигателя

Контроллер бесколлекторного двигателя

Контроллер бесколлекторного двигателя

Контроллер бесколлекторного двигателя

Контроллер бесколлекторного двигателя

Контроллер бесколлекторного двигателя

Контроллер бесколлекторного двигателя

Контроллер бесколлекторного двигателя


X