Управление бесколлекторными двигателями
Сафронов Алексей, Компания Гамма Санкт-Петербург
Данная статья сфокусирована на применении микроконтроллера с минимальными ресурсами для управления вентильным двигателем и скорости его вращения.
Введение
Как микроконтроллер может управлять трехфазным БДПТ двигателем? Для того, чтобы ответить на этот вопрос требуется, чтобы были определены ресурсы микросхемы, которые в данном приложении будут взаимодействовать с внешней топологией и функциями управления двигателя БДПТ. Существуют сенсорные и безсенсорные конфигурации двигателей (для определения положения ротора), которые имеют свои за и против. В данной статье мы рассмотрим управление двигателем с одним датчиком Холла.
Схема управления бесколлекторным двигателем
Рис. 1. Структурная схема управления БДПТ двигателем
Структурная схема на рис.1. иллюстрирует систему, использующую единичный датчик Холла для возврата положения ротора (многие системы используют три датчика для этой цели), потенциометр для установки скорости, выключатель "старт-стоп", защиту от токовой перегрузки и трехфазный силовой каскад для запуска двигателя. Результирующее количество независимых соединений с микроконтроллером, показанное между субкомпонентами системы равно 11 (5 входов и 6 выходов). Однако, минимизация может быть получена в случае, если микроконтроллер поддерживает многофункциональность выводов и повсеместно встречающуюся периферию.
Техника оптимизации ресурсов
Учитывая, что выходные сигналы микроконтроллера подсоединены к трехфазному силовому мосту, и при условии, что применен шестиступенчатый алгоритм управления БДПТ задействован, получаем, что только два транзистора включены в любое время в течение нормальной работы. То есть, включенными являются один транзистор верхнего плеча и один транзистор нижнего плеча. Таким образом, нижние и верхние ключи находятся в разных половинах моста и включены в так называемом диагональном режиме. Это является преимуществом с точки зрения минимизации, потому что, когда два из трех устройств верхнего плеча выключены, третий должен быть включен. Однако, третий сигнал верхнего плеча может быть восстановлен из других двух посредством нескольких резисторов и транзисторного инвертора, который подсоединяется ко входу третьего верхнего плеча силового моста (см. рис 4 - Принципиальная схема). Это приводит к сокращению количества выводов микроконтроллера. Таким образом, мы перешли от системы требующей 6 выводов к системе требующей 5.
Что касается пяти системных входов, т.е. входов для датчика Холла, потенциометра, защиты от токовых перегрузок, и переключателей "старт-стоп" существуют различные возможности. Чаще всего датчик Холла встроен в корпус двигателя и обычно имеет схему согласования с логическим выходом. Т.к. в данном применении требуется один датчик Холла, а контроллеры семейства PIC12F имеют один цифровой вход, то он может быть использован для этой цели.
Для запуска двигателя и выполнения функции установки скорости, при включении питания один из выводов верхнего драйвера трех фазного силового моста может быть сконфигурирован как аналоговый вход. Этот вывод подсоединяется к делителю напряжения или потенциометру. Следовательно, еще до того, как мотор придет в движение скорость может быть установлена и считана. Дополнительно, может быть использован стартовый включатель, который может уменьшить скорость ниже минимума, а также в состоянии запустить мотор. В этом аналоговом режиме ввода, хотя подсоединенный транзистор верхнего драйвера и включен, это не дает результата в активизации мотора т.к. все транзисторы нижнего драйвера в это время выключены. Впоследствии, в рабочем режиме вывод конфигурируется как выход для перемещения транзистора верхнего драйвера, и затем цепь делителя напряжения эффективно начинает выполнять функцию подтяжки вверх/в
Функция остановки двигателя может быть реализована используя нормально открытый ключ параллельно с защитой от токовой перегрузки, описанной ниже.
Защита от токовой перегрузки не использует какие-либо порты микроконтроллера; вместо этого, она использует схему источника питания PIC12 для того, чтобы перезагрузить устройство при возникновении токовой перегрузки. Этот тип PIC имеет внутренний шунтовый регулятор, который подсоединен к источнику питания схемы посредством резистора. Резистор выбирается в соответствии с требованиями приложения. Следовательно, питание может быть отключено от PIC посредством цепи защиты от токовых перегрузок, которая фактически подсоединена параллельно с внутренним регулятором питания.
Таким образом, теперь мы имеем систему, которая требует микроконтроллер со следующими функциями входов/выходов: один выделенный цифровой вход, один цифро-аналоговый выход и четыре цифровых выхода. Однако, мы проигнорировали тот факт, что, для управления скоростью нам будет необходимо модулировать приложенное к БДПТ двигателю напряжение и для этого нам потребуются применить ШИМ сигналы, в данном случае, к транзисторам нижнего драйвера. На самом деле, ввиду того, что, выполняется шестиступенчатое управление, достаточно иметь любой один из трех нижних драйверов, запитанный ШИМ сигналом в любой момент времени в течение цикла переключения двигателя. Некоторые микроконтроллеры имеют специальную периферию ШИМ для этой цели, в то время как другие имеют возможность управления ШИМ сигналами от одного до n выходов, и в основном достигают того же самого посредством, например, ECCP (усовершенствованный модуль захвата, сравнения, ШИМ). В PIC12F мы имеем в наличии комбинацию как управления ШИМ сигналом в режиме ECCP, так и альтернативные режимы конфигурации выводов (APCFG). Это крайне удобно, ввиду того, что управление ШИМ может быть сделано всего на двух выводах посредством ECCP, а приложение требует три (посредством APCFG режима). В настоящее время, только PIC12F615 и PIC12HV615 имеют такую возможность.
Программное обеспечение
В программном обеспечении реализовано управление скоростью с обратной связью используя PI регулирование. Для организации обратной связи используется один датчик Холла. Данное PI регулирования загружаются в регистр CCPR1 (скважность ШИМ), старшие 8 бит. Выход ШИМ подается на один из трех транзисторов нижнего плеча силового моста для того, чтобы коммутировать двигатель и управлять скоростью.
Структура программного обеспечения
Три внутренних таймера PIC12 используются для измерения скорости двигателя, полученной из сигнала датчика Холла (TMR1), установки ШИМ периода (TMR2) и генерирования коммутационных прерываний (TMR0). При включении питания установленная скорость считывается и когда стартовый переключатель нажат - рабочий режим начинается.
Когда рабочий режим двигателя стартовал, положение ротора предварительно оценено и обратная связь коммутационной последовательности разорвана до обнаружения следующего сигнала от датчика Холла, во время которого время последовательности коммутаций синхронизировано с позицией ротора. После определения двух успешных переходов сигналов датчика Холла прошивка приложения переходит в режим замкнутой петли контроля скорости.
Схема защиты от токовых перегрузок вызывает сброс по включению питания устройства.
Выводы
Этот набросок дизайна контроллера двигателя продемонстрировал как можно работать с вентильным двигателем, источником питания и PIC12HV615, собранных на стартовой плате. Как видно, данная форма управления двигателем может быть осуществлена с использованием микроконтроллера с малым количеством выводов. Гибкая периферия PIC12HV615 и внутренний регулятор позволяют построить комплексные решения, пример показан на рис.4. Этот пример может быть основой для дешевых дизайнов некоторых применений управления двигателем, где в действительности не требуется высокой производительности.