Разработка эффективных систем управления двигателем с использованием микроконтроллеров Pic
Обзор микроконтроллеров PIC для управления двигателем
Микроконтроллеры PIC, разработанные Microchip Technology, являются одними из наиболее широко используемых встроенных контроллеров в промышленной и потребительской электронике. Их интегрированные периферийные устройства — модули PWM, высокоскоростные таймеры, многоканальные ADC и гибкая обработка прерываний — делают их исключительно хорошо подходящими для приложений управления двигателем. Будь то управление небольшим вентилятором постоянного тока, точным шаговым двигателем в 3D-принтере или бесщеточным двигателем постоянного тока (BLDC) в беспилотнике, микроконтроллер PIC может служить ядром эффективной и отзывчивой системы управления.
Ключ к эффективному управлению двигателем заключается в способности динамически регулировать подачу мощности на основе обратной связи в реальном времени. PIC MCU обеспечивают необходимую вычислительную мощность и аппаратные функции для реализации алгоритмов замкнутого цикла, таких как PID (пропорционально-интегрально-производные), не требуя внешних компонентов. Кроме того, их низкое энергопотребление, широкий диапазон рабочего напряжения и обширная экосистема инструментов разработки и прикладных заметок снижают риск проектирования и время выхода на рынок.
Типы двигателей и их требования к управлению
Различные типы двигателей предъявляют различные требования к управлению. Понимание этих требований является первым шагом в выборе правильного микроконтроллера PIC и разработке соответствующего драйвера и алгоритма.
DC Brushed Motors в США
Двигатели с щеткой постоянного тока просты, недороги и просты в управлении. Скорость регулируется изменением среднего напряжения, обычно через импульсно-широтную модуляцию (PWM). Направление контролируется путем изменения полярности с помощью H-моста. Управление скоростью замкнутого цикла может быть достигнуто с помощью тахометра или кодера, подаваемого обратно на блок захвата входа PIC. Базовый PID-петля достаточен для большинства приложений, и модуль PWM любого PIC с периферийным CCP или ECCP может непосредственно управлять H-мостом.
Степпер Моторс
Шаговые двигатели движутся дискретными шагами, что делает их идеальными для управления положением без датчика обратной связи (открытый цикл). PIC должен генерировать точные последовательности импульсов для водителя двигателя (например, A4988 или DRV8825). Это требует точных таймеров и быстрого ответа на прерывание для предотвращения пропущенных шагов. Расширенное управление включает микрошаг (например, 1/16-й шаг) для более плавного движения. Модули PIC сравнения / захвата / PWM (CCP) могут быть сконфигурированы для вывода необходимых частот шага. Для приложений с высоким крутящим моментом часто добавляют управление током с использованием ADC и сенсорного резистора.
Бесщеточные двигатели DC (BLDC)
Двигатели BLDC более эффективны и долговечны, чем щеточные типы, но требуют электронной коммутации. PIC должен знать положение ротора (через датчики Холла или датчики обратной ЭМП) и питать правильные обмотки последовательно. Это включает в себя шестиступенчатую коммутацию или более продвинутое полевое управление (FOC). FOC требует высокоскоростной выборки ADC (для фазовых токов и угла ротора) и сложных математических вычислений (преобразования Кларка / Парка, контроллеры PI). PIC с высокопроизводительным ядром (например, PIC24H или dsPIC33) и выделенные модули PWM управления двигателем (MCPWM) и выделенные модули PWM управления двигателем (MCPWM). Многие устройства Microchip включают интегрированные операционные усилители и компараторы для упрощения измерения тока и обнаружения нулевого скрещивания.
Основные особенности PIC для управления двигателем
Для реализации эффективного управления двигателем разработчик должен полностью использовать периферийный набор микроконтроллера.
Пульс-ширина модуляции (PWM)
PWM является основой управления скоростью и крутящим моментом двигателя. Микроконтроллеры PIC предлагают несколько каналов PWM с регулируемой частотой, рабочим циклом и временем бездействия (для предотвращения прострела H-моста). Такие устройства, как PIC16F1789, имеют до четырех модулей PWM, в то время как семейства dsPIC33C обеспечивают PWM с высоким разрешением до 250 ps. Для двигателей BLDC необходимы дополнительные выходы PWM с программируемым мертвым повязкой.
Аналоговый цифровой преобразователь (ADC)
Управление замкнутым контуром требует обратной связи от датчиков: резисторов тока, делителей напряжения, датчиков Холла или оптических кодеров. Большинство ПИК-массивов включают 10-битные или 12-битные АЦП с несколькими входными каналами. Серия dsPIC33 предлагает 12-битные АЦП с коэффициентом преобразования до 3,5 мс/с, что позволяет одновременно отбирать два фазовых тока для ФОК. Многие устройства также имеют датчик температуры на кристалле и внутреннюю ссылку напряжения для калибровки.
Таймеры и входная захват
Тимеры генерируют точные задержки и базовые частоты PWM. Модуль захвата ввода может измерять ширину импульсов от кодеров или преобразователей частоты к напряжению. Это имеет решающее значение для измерения скорости двигателя (RPM) или для декодирования сигналов четырехугольного кодера. Некоторые PIC имеют выделенные модули QEI (интерфейс кодера квадратуры), которые автоматически обрабатывают положение, скорость и направление, выгружая процессор.
Прерывания
Реакция в реальном времени имеет важное значение в управлении двигателем. Овертоковые неисправности, события нулевого скрещивания и импульсы индекса кодера должны обрабатываться в течение микросекунд. Микроконтроллеры PIC поддерживают несколько приоритетов прерывания, позволяя критически важным по времени процедурам (например, обновление PWM) упреждать задачи с более низким приоритетом. Задержка прерывания современных PICs находится в диапазоне 5-20 тактовых циклов, достаточных для быстрых циклов коммутации.
Сравнительные приборы и Op-Amps
Многие современные ПИК-устройства интегрируют аналоговые компараторы и операционные усилители. Они могут использоваться для сверхтокового обнаружения, обратного электромагнитного зондирования для бессенсорного управления BLDC и для построения простых аналоговых фильтров. Настраиваемые аналоговые блоки уменьшают количество внешних компонентов и улучшают помехоустойчивость.
Выбор правильного микроконтроллера PIC
Выбор PIC зависит от типа двигателя, сложности алгоритма управления и требуемого периферийного набора. Microchip предлагает семейства, начиная от 8-битных базовых до 32-битных устройств на базе MIPS.
8-битные PIC для базового управления
Семейства PIC16F и PIC18F подходят для простых щеток постоянного тока и шаговых двигателей. PIC16F1847 обеспечивает два канала PWM, 10-битный ADC и внутренний осциллятор до 64 МГц. Для шаговых водителей PIC18F25K40 включает в себя несколько таймеров и выделенный модуль PWM. Это экономичные решения для игрушек, небольших насосов и простой автоматизации.
16-битный PIC24 и dsPIC33 для расширенного управления
Для двигателей BLDC и FOC оптимальным выбором являются цифровые контроллеры сигналов dsPIC33 (DSC). Они сочетают 16-битное ядро MCU с двигателем DSP для быстрой математики (многократно аккумулируемое, делимое). Ключевые функции включают PWM с высоким разрешением (250 ps), 12-битную ADC с до 6 MSPS и двухпортовую ОЗУ для одновременной выборки. DsPIC33CK256MP508 имеет 256 KB-вспышку, два модуля MCPWM и до шести операционных усилителей, что делает его идеальным для трехфазного управления двигателем. Серия PIC24F, при отсутствии DSP, по-прежнему предлагает достаточную производительность для многих шаговых и DC-моторов по более низкой цене.
32-разрядный PIC32 для сложных систем
Когда алгоритм управления становится чрезвычайно вычислительным (например, управление многоосевым роботом с EtherCAT), микроконтроллеры PIC32MZ с ядрами MIPS 200 МГц обеспечивают необходимую пропускную способность. Их высокоскоростная PWM (до разрешения 1 нс) и многоканальный ADC с автоматическим секвенированием делают их конкурентоспособными с аналогами ARM Cortex-M.
Проектирование системы управления двигателем
Система управления двигателем состоит из трех основных блоков: микроконтроллера PIC, этапа питания (водитель и H-мост) и датчиков обратной связи. В следующих разделах описаны практические варианты проектирования.
Реализация аппаратного обеспечения
Для двигателей с низким напряжением и током популярны L293D или TB6612FNG (до 1,2 A). Для двигателей с низким напряжением L293D или TB6612FNG (до 1,2 A) Для двигателей с низким напряжением используются трехфазные драйверы, такие как DRV8301 (до 2,5 A на фазу) интегрируют драйверы затвора и усилители тока. Всегда включают конденсаторы загрузочной стойки для высокобоковых MOSFET и сетей снуббера для подавления пиков напряжения. На стороне датчика датчики эффекта Холла (например, A3144) могут быть подключены непосредственно к цифровому I/O, в то время как четырехугольные кодеры требуют захвата ввода или модулей QEI. Для датчика тока подачу в ADC PIC обычного подхода.
Защитные цепи не подлежат обсуждению. Размещают диоды ТВС через моторные терминалы, быстродействующий предохранитель на входе питания и диод защиты обратной полярности. Аналоговые входные штифты ПИК должны быть зажаты диодами Шоттки, если они взаимодействуют с высоковольтными цепями. Оптическая изоляция (например, 6N137) рекомендуется между ПИК и шлюзовым драйвером для промышленных сред.
Программная архитектура
Прошивка управления обычно работает как машина состояния. Основной цикл инициализирует периферийные устройства, затем входит в бесконечный цикл. Обычные процедуры прерывания обслуживания (ISR) обрабатывают критически важные по времени задачи: обновление PWM, завершение преобразования ADC, переключение по току и подсчет импульсов кодера. Для контроллера скорости PID ISR вычисляет ошибку, вычисляет выход и обновляет рабочий цикл PWM. Скорость обновления должна быть по меньшей мере в 10 раз электрической постоянной времени двигателя; для типичного двигателя постоянного тока достаточно 1-10 кГц. Для BLDC FOC частота ISR выше - обычно 20-50 кГц для текущих циклов и 1-10 кГц для скоростных циклов.
Используйте Microchip Code Configurator (MCC) для генерации исходного периферийного кода настройки, который уменьшает ошибки ручного управления. MPLAB X IDE обеспечивает симулятор и отладчик для тестирования цикла управления без аппаратного обеспечения.
Реализация алгоритмов контроля
PID контроль
Алгоритм PID остаётся наиболее широко используемым методом замкнутого цикла для управления двигателем. Реализуйте дискретную форму:
Если e(k) - ошибка скорости при образце k, dt - период выборки, а Kp, Ki, Kd - настроенные коэффициенты усиления. Для предотвращения интегрального завершения зажимают интегральный термин до максимального значения. Производный удар минимизируется путем применения производного к измеренному сигналу, а не к ошибке. Выход u(k) масштабируется до диапазона рабочего цикла PWM (0-100%).
Бессенсорный BLDC контроль
Для бездатчикового BLDC положение ротора оценивается от задней ЭМП. Во время открытой фазы нулевое скрещивание фазового напряжения относительно нейтральной точки указывает на момент коммутации. Для обнаружения этих событий используется модуль компаратора PIC и таймеры. Специальная прикладная записка для зондирования задней ЭМП (]Microchip Motor Control Design Center) обеспечивает предварительно проверенную прошивку. АЦП также может использоваться для косвенного обнаружения обратной ЭМП путем измерения напряжения до нулевого скрещивания.
Полевой ориентированный контроль (FOC)
FOC разъединяет крутящий момент и поток, обеспечивая высокоэффективную работу BLDC. Для этого требуются преобразования Clarke и Park, контроллеры PI в системе отсчета dq и обратное преобразование Park. Двигатель DSP dsPIC33 выполняет эти преобразования за несколько микросекунд. Microchip предоставляет бесплатную библиотеку программного обеспечения FOC (] Reference Designs), которая включает в себя предварительно настроенные ток и контуры скорости. Прошивка работает на 40-80 MIPS dsPIC, оставляя зазор для связи и проверки безопасности.
Практические дизайнерские соображения
PCB Layout
Отдельные аналоговые и цифровые наземные плоскости, соединяющие их в одной точке под ПИК. Поместите разъединяющие конденсаторы (0,1 мкФ + 10 мкФ) близко к каждому штифту питания. Держите следы высокого тока (моторная мощность) в ширину и вдали от чувствительных аналоговых сигналов. Используйте наземную плоскость на нижнем слое для снижения индуктивности петли. Для конструкций BLDC направляйте трехфазные выходные следы с равной длиной, чтобы минимизировать несоответствие импеданса.
Смягчение шума
Моторное переключение генерирует высокочастотный шум, который может повредить показания ADC PIC и вызвать ложные прерывания. Используйте ферритовые бусины на линиях электропередач двигателя, экранные кодерные кабели и добавьте низкочастотные RC-фильтры на аналоговых входах (частота выключения ниже частоты переключения PWM). Внутренний ADC PIC имеет время приобретения; используйте время отбора проб, чтобы игнорировать переходные процессы оседания. Кроме того, включите модуль сброса выключенного (BOR) для предотвращения повреждения кода во время падения напряжения.
Термический менеджмент
Драйвер двигателя и сам ПИК могут нагреваться во время длительной эксплуатации. Обеспечить адекватную площадь меди для рассеивания тепла. Если температура окружающей среды превышает 85 °C, рассмотрите варианты ПИК с расширенным температурным диапазоном. Простая процедура термического отключения может быть реализована с использованием внутреннего температурного индикатора ПИК (если он доступен) для снижения нагрузки ПВМ или остановки двигателя.
Инструменты и ресурсы для развития
Компиляторы Microchip MPLAB X IDE и XC8/XC16/XC32 бесплатны для размеров кода до 1 КБ (XC8) или 30 КБ (XC16) и полностью функциональны для разработки управления двигателем. Графический инструмент Microsoft Code Configurator (MCC) позволяет быстро настраивать часы, таймеры, PWM, ADC и прерывания приоритетов. Предварительно построенные примеры приложений для управления DC, stepper и BLDC доступны с сайта Microchip Developer .
Для отладки эмулятор MPLAB ICE 4 обеспечивает мониторинг трассировки и напряжения в режиме реального времени. Осциллограф с изолированными зондами необходим для просмотра сигналов затвора PWM и фазовых токов. Совет по применению управления двигателем (PICDEM MCLV-2) является экономически эффективной платформой разработки, которая соединяется с устройством dsPIC33 и включает в себя трехфазный инвертор, датчик тока и входы датчика Холла.
Заключение
Разработка эффективных систем управления двигателем с микроконтроллерами PIC является практическим выбором для инженеров, начиная от любителей и заканчивая промышленными профессионалами. Обширная периферийная интеграция, низкая стоимость и зрелая экосистема разработки позволяют быстро создавать прототипы и надежное производство. Понимая конкретные требования различных типов двигателей, используя специализированные модули PIC PWM и ADC, внедряя надежные алгоритмы управления, такие как PID или FOC, и уделяя внимание аппаратной компоновке и управлению шумом, вы можете создавать системы, которые являются энергоэффективными и отзывчивыми. Ресурсы, предоставляемые Microchip - примечания приложений, эталонные конструкции и инструмент MCC - уменьшают кривую обучения и помогают вам достичь успешного дизайна с первой попытки.