Контроллер трехфазного бесколлекторного двигателя постоянного тока с минимальными ресурсами
Каковы должны быть минимальные ресурсы микроконтроллера, работающего в составе привода трехфазного BLDC-мотора? Для ответа на этот вопрос необходимо соотнести возможности чипсета с принципами управления указанного двигателя и предъявляемыми к устройству функциональными требованиями. Если мы рассматриваем рынок простых и дешевых схем управления скоростью в таких применениях, как вентиляторы и насосы, то проблема может быть существенно упрощена. Эти устройства работают при наличии или отсутствии датчиков (необходимых для определения положения ротора), что имеет ряд аргументов «за» и «против». Однако по количеству контактов I/O существенный выигрыш получается в случае, если сигнал положения ротора может быть снят с одного вывода. Кроме того, наличие многофункциональных выходов в пользовательском интерфейсе позволяет изменять их назначение. Благодаря этому, используя определенную технику минимизации, можно сократить количество задействованных контактов процессора и снизить таким образом требования к его ресурсам.
Система управления BLDC-мотором
На рис. 1 приведена блок-схема управления BLDC-мотором, содержащая датчик Холла для формирования обратной связи по положению ротора (как правило, используется три датчика), потенциометр задания скорости, кнопки включения и выключения системы, датчик перегрузки по току и трехфазный силовой каскад, соединенный с мотором.
Общее количество независимых подключений контроллера составляет 11 (пять входов и шесть выходов). Это число можно минимизировать в случае, если микроконтроллер поддерживает многофункциональность выводов и имеет развитую периферию.
Технология минимизации ресурсов
В случае, если используется стандартный шестиступенчатый алгоритм управления BLDC-мотором, в каждый момент времени только два транзистора инвертора (один в верхнем плече и один в нижнем) находятся во включенном состоянии. Управление ключами трехфазного силового каскада не является комплиментарным, транзисторы открываются в т. н. «диагональном режиме». С точки зрения минимизации логики это является преимуществом, поскольку два из трех ключей верхнего уровня закрыты при нормальной работе привода. Сигнал управления третьим транзистором может быть извлечен из двух других с помощью нескольких резисторов и транзисторного инвертора, подключенного к третьему входу верхнего уровня моста (см. рис. 4 — принципиальная схема). Таким образом удается сократить количество использованных выводов контроллера с шести до пяти.
Существует несколько различных путей оптимизации количества системных входов, предназначенных для подключения датчиков Холла, потенциометра, сенсоров тока перегрузки и ключей «Пуск/ Стоп». Датчики Холла, как правило, встраиваются в BLDC-двигатель, поэтому целесообразно интегрировать в мотор и схему, формирующую цифровой интерфейс для их связи с микроконтроллером. Выход подобной схемы выполняется в виде откры- того коллектора с «подтягивающим» резистором. В этом случае требуется один датчик Холла и один цифровой вход микросхемы семейства PIC12F.
Для запуска мотора и задания скорости при включении системы один из входов верхнего плеча трехфазного инвертора может быть сконфигурирован как аналоговый вход. Для реализации данной задачи этот вывод подключается к резистивному делителю и потенциометру уставки, что позволяет задать и считать значение скорости перед пуском мотора.
Ключ «Пуск» кроме основной задачи может нести и дополнительную функцию снижения уставки скорости ниже минимального значения. В аналоговом режиме работы входа, несмотря на то, что один из транзисторов верхнего плеча открывается, это не приводит к появлению тока в двигателе, поскольку все ключи нижнего плеча закрыты. Далее, при пуске мотора, данный контакт конфигурируется как выход управления транзистором верхнего плеча, а резисторы делителя начинают выполнять функцию «подтягивающих» или заземляющих.
Функцию остановки запущенного двигателя удобно выполнять в комбинированном режиме «Пуск/Стоп» в ходе цикла коммутации. Таким образом, остановка мотора реализуется программно-аппаратным методом в процессе выбега. Когда ключ «Стоп» нажимается при вращении, все сигналы управления транзисторами верхнего уровня блокируются, программа анализирует состояние мотора и запускает режим торможения. В простейшем случае функция остановки может выполняться нормально-разомкнутым тумблером, подключенным параллельно описанной выше цепи защиты от токовой перегрузки.
В схеме защиты от перегрузки по току не задействован ни один из выводов I/O микроконтроллера, для этой цели используется цепь подключения питания микросхемы семейства PIC12, позволяющая включить схему в режим перезагрузки при возникновении аварии. Этот тип PIC-контроллера имеет встроенный параллельный стабилизатор, соединенный с источником питания через резистор, номинал которого выбирается в зависимости от условий работы. Таким образом, в случае перегрузки питание микросхемы может быть отключено схемой защиты по току, подключенной параллельно стабилизатору.
В результате проведенной оптимизации системе требуется один выделенный цифровой вход, а также один цифровой/аналоговый и четыре цифровых вывода, выполняющих функции выходов. Здесь не учтен тот факт, что для управления скоростью необходима широтно-импульсная модуляция напряжения, поступающего на BLDC-мотор. В нашем случае контрольные импульсы должны поступать на транзисторы нижнего уровня. В реальности, поскольку в системе используется режим шестиступенчатого управления, ШИМ-сигнал в любой момент времени подается только на один из трех нижних ключей инвертора.
Некоторые PIC-контроллеры обладают особой периферией, способной формировать программный «моторный» ШИМ-сигнал, в то время как другие могут вырабатывать ШИМ-напряжение только на одном из n выходов. В последнем случае полный сигнал управления формируется с помощью, например, периферии ECCP (Enhanced Capture/ Compare Peripheral). В микросхеме PIC12F допускается комбинированное формирование ШИМ-сигнала посредством периферии ECCP или в режиме альтернативной конфигурации выводов (APCFG). Подобная возможность представляется очень удобной, поскольку импульсы могут вырабатываться через ECCP только по двум выводам, в то время как для работы схемы их требуется три, что доступно в режиме APCFG. На сегодняшний день в описанном режиме могут работать два контроллера семейства: PIC12F615 и PIC12HV615 (рис. 2).
Программа управления использует сигнал одного датчика Холла для синхронизации импульсов управления транзисторами инвертора, а также для определения моментов времени коммутации по так называемой технологии точного расчета траектории. Помимо всего прочего, это позволяет сформировать замкнутый контур управления скоростью при помощи простейшего ПИД-регулятора, на который поступает сигнал ошибки по скорости (рис. 3).
Выход PI-контроллера загружается в регистр коэффициента заполнения импульсов CCPR1, занимая восемь старших разрядов. Выход подсистемы формирования ШИМ-сигнала коммутируется вместе с одним из трех транзисторов нижнего плеча инвертора, что позволяет осуществлять управление мотором и контроль скорости.
Три встроенных таймера PIC12 используются для измерения скорости двигателя по сигналу датчика Холла (TMR1), задания периода коммутации (TMR2) и генерации прерывания после окончания периода предварительного расчета (TMR0).
При включении питания считывается уставка скорости, после чего система может быть запущена с помощью ключа «Пуск». После подачи команды на запуск привода происходит оценка положения ротора и активируется программа формирования короткой разомкнутой петли регулирования. Она работает до тех пор, пока не будет продетектировано появление следующего сигнала датчика Холла. С этого момента времени коммутация инвертора синхронизируется с положением ротора. После успешной обработки двух сигналов датчика Холла программа переключается в режим работы с замкнутой обратной связью по скорости. При возникновении перегрузки по току активируется режим перезапуска питания POR (Power On Reset).
Аппаратная реализация системы управления включает трехфазный BLDC-мотор, низковольтный силовой модуль инвертора и контроллер PIC12F615, подключенный к модифицированной демо-плате Microchip. Было показано, что данная топология схемы позволяет использовать шесть I/O контактов микроконтроллера с многофункциональными выводами. Гибкая внутренняя периферия PIC12HV615 и встроенный параллельный регулятор дают возможность создать схему (рис. 4), выполняющую все необходимые для данного применения функции. Таким образом, создана основа для проектирования простых и дешевых систем управления скоростью в случаях, когда не требуется высокая точность работы привода.