Поиск по сайту: |
|
По базе: |
|
Главная страница > Применение > Микроконтроллеров > AVR |
|
||||||||||||||||||||||||||||||||||||
AVR492: Управление бесколлекторным электродвигателем постоянного тока с помощью AT90PWM3Отличительные особенности:
Введение В данных рекомендациях по применению описывается, как реализовать устройство управления бесколлекторным электродвигателем постоянного тока (БКЭПТ) с использованием датчиков положения на основе AVR-микроконтроллера AT90PWM3. Высокопроизводительное AVR-ядро микроконтроллера, которое содержит контроллер силового каскада, позволяет реализовать устройство управления высокоскоростным бесколлекторным электродвигателем постоянного тока. В данном документе дается короткое описание принципа действия бесколлекторного электродвигателя постоянного тока, а в деталях рассматривается управление БКЭПТ в сенсорном режиме, а также приводится описание принципиальной схемы опорной разработки ATAVRMC100, на которой основаны данные рекомендации по применению. Обсуждается также программная реализация с программно-реализованным контуром управления на основе ПИД-регулятора. Для управления процессом коммутации подразумевается использование только датчиков положения на основе эффекте Холла. Принцип действия Области применения БКЭПТ непрерывно увеличиваются, что связано с рядом их преимуществ:
Двигатели такого типа характеризуются небольшой инерционностью ротора, т.к. обмотки расположены на статоре. Коммутация управляется электроникой. Моменты коммутации определяются либо по информации от датчиков положения, либо путем измерения обратной э.д.с., генерируемой обмотками. При управлении с использованием датчиков БКЭПТ состоит, как правило, из трех основных частей: статор, ротор и датчики Холла. Статор Статор классического трехфазного БКЭПТ содержит три обмотки. Во многих двигателях обмотки разделяются на несколько секций, что позволяет уменьшить пульсации вращающего момента. На рисунке 1 показана электрическая схема замещения статора. Он состоит из трех обмоток, каждая из которых содержит три последовательно включенных элемента: индуктивность, сопротивление и обратная э.д.с.
Ротор Ротор БКЭПТ состоит из четного числа постоянных магнитов. Количество магнитных полюсов в роторе также оказывает влияние на размер шага вращения и пульсации вращающего момента. Чем большее количество полюсов, тем меньше размер шага вращения и меньше пульсации вращающего момента. Могут использоваться постоянные магниты с 1..5 парами полюсов. В некоторых случаях число пар полюсов увеличивается до 8 (рисунок 2).
Обмотки установлены стационарно, а магнит вращается. Ротор БКЭПТ характеризуется более легким весом относительно ротора обычного универсального двигателя постоянного тока, у которого обмотки расположены на роторе. Датчик Холла Для оценки положения ротора в корпус двигателя встраиваются три датчика Холла. Датчики установлены под углом 120° по отношению друг к другу. С помощью данных датчиков возможно выполнить 6 различных переключений. Коммутация фаз зависит от состояния датчиков Холла. Подача напряжений питания на обмотки изменяется после изменения состояний выходов датчиков Холла. При правильном выполнении синхронизированной коммутации вращающий момент остается приблизительно постоянным и высоким.
Коммутация фаз В целях упрощенного описания работы трехфазного БКЭПТ рассмотрим только его версию с тремя обмотками. Как было показано ранее, коммутация фаз зависит от выходных значений датчиков Холла. При корректной подаче напряжения на обмотки двигателя создается магнитное поле и инициируется вращение. Наиболее распространенным и простым способом управления коммутацией, используемый для управления БКЭПТ, является схема включения-отключения, когда обмотка либо проводит ток, либо нет. В один момент времени могут быть запитаны только две обмотки, а третья остается отключенной. Подключение обмоток к шинам питания вызывает протекание электрического тока. Данный способ называется трапецеидальной коммутацией или блочной коммутацией. Для управления БКЭПТ используется силовой каскад, состоящих из 3 полумостов. Схема силового каскада показана на рисунке 4.
По считанным значениям датчиков Холла определяется, какие ключи должны быть замкнутыми. Таблица 1. Коммутация ключей по часовой стрелке
У двигателей с несколькими полями электрическое вращение не соответствует механическому вращению. Например, у четырехполюсных БКЭПТ четыре цикла электрического вращения соответствуют одному механическому вращению. От силы магнитного поля зависит мощность и частота вращения двигателя. Регулировать частоту вращения и вращающий момент двигателя можно за счет изменения тока через обмотки. Наиболее распространенный способ управления током через обмотки является управление средним током. Для этого используется широтно-импульсная модуляция (ШИМ), рабочий цикл которой определяет среднее значение напряжения на обмотках, а, следовательно, и среднее значение тока и, как следствие, частоту вращения. Скорость может регулироваться при частотах от 20 до 60 кГц. Вращающееся поле трехфазного, трехобмоточного БКЭПТ показано на рисунке 5.
Процесс коммутации создает вращающееся поле. На ступени 1 фаза А подключается к положительной шине питания ключом SW1, фаза В подключается к общему с помощью ключа SW4, а фаза С остается неподключенной. Фазами А и В создаются два вектора магнитного потока (показаны красной и синий стрелками, соответственно), а сумма этих двух векторов дает вектор магнитного потока статора (зеленая стрелка). После этого ротор пытается следовать магнитному потоку. Как только ротор достигает некоторого положения, в котором изменяется состояние датчиков Холла со значения "010" на "011", выполняется соответствующим образом переключение обмоток двигателя: фаза В остается незапитанной, а фаза С подключается к общему. Это приводит к генерации нового вектора магнитного потока статора (ступень 2). Если следовать схеме коммутации, показанной на рисунке 3 и в таблице 1, то получим шесть различных векторов магнитного потока, соответствующих шести ступеням коммутации. Шесть ступеней соответствуют одному обороту ротора. Стартовый набор ATAVRMC100 В следующей части данных рекомендаций по применению будет рассмотрена аппаратная и программная реализация на основе стартового набора ATAVRMC100 с микроконтроллером AT90PWM3. Принципиальная электрическая схема представлена на рисунках 21, 22, 23 и 24 в конце документа. Программа содержит контур управления скоростью с помощью ПИД-регулятора. Такой регулятор состоит из трех звеньев, каждый из которых характеризуется собственным коэффициентом передачи: Kп, Kи и Kд. Кп - коэффициент передачи пропорционального звена, Kи - коэффициент передачи интегрирующего звена и Kд - коэффициент передачи дифференцирующего звена. Отклонение заданной скорости от фактической (на рисунке 6 называется "сигнал рассогласования") обрабатывается каждым из звеньев. Результат данных операций складывается и подается на двигатель для получения требуемой частоты вращения (см. рисунок 6).
Коэффициент Кп влияет на длительность переходного процесса, коэффициент Ки позволяет подавить статические ошибки, а Кд используется, в частности, для стабилизации положения (см. описание контура управления в архиве с программным обеспечением для изменения коэффициентов). Описание аппаратной части Как показано на рисунке 7 микроконтроллер содержит 3 контроллера силового каскада (PSC). Каждый PSC можно рассматривать как широтно-импульсный модулятор (ШИМ) с двумя выходными сигналами. Во избежание возникновения сквозного тока PSC поддерживает возможность управления задержкой неперекрытия силовых ключей (см. документацию на AT90PWM3 для более детального изучения работы PSC, а также рисунок 9). Аварийный вход (Over_Current, токовая перегрузка) связан с PSCIN. Аварийный вход разрешает микроконтроллеру отключить все выходы PSC.
Для измерения тока можно использовать два дифференциальных канала с программируемым усилительным каскадом (Ку=5, 10, 20 или 40). После выбора коэффициента усиления необходимо подобрать номинал шунтового резистора для наиболее полного охвата диапазона преобразования. Сигнал Over_Current формируется внешним компаратором. Пороговое напряжение компаратора можно регулироваться с помощью внутреннего ЦАП. Переключение фаз должно выполняться в соответствии со значением на выходах датчиков Холла. ДХ_A, ДХ_B и ДХ_C подключаются к входам источников внешних прерываний или к трем внутренним компараторам. Компараторы генерируют такой же тип прерываний, что и внешние прерывания. На рисунке 8 показано, как используются порты ввода-вывода в стартовом наборе.
VMOT (Vдв.) и VMOT_Half (1/2 Vдв.) реализованы, но не используются. Они могут использоваться для получения информации о напряжении питания двигателя. Выходы H_x и L_x используются для управления силовым мостом. Как было сказано выше, они зависят от контроллера силового каскада (PSC), который генерирует ШИМ-сигналы. В таком применении рекомендуется использовать режим с выравниванием по центру (см. рисунок 9), когда регистр OCR0RA используется для синхронизации запуска преобразования АЦП для измерения тока.
Пауза неперекрытия между PSCn0 и PSCn1:
Блок PSC тактируется сигналов CLKPSC. Для подачи ШИМ-сигналов в силовой каскад может использоваться один из двух способов. Первый заключается в приложении ШИМ-сигналов к верхним и нижним частям силового каскада, а второй - в приложении ШИМ-сигналов только к верхним частям. Описание программного обеспечения Atmel разработала библиотеки для управления БКЭПТ. Первый шаг их использования заключается в конфигурации и инициализации микроконтроллера. Конфигурация и инициализация микроконтроллера Для этого необходимо использовать функцию mc_init_motor(). Она вызывает функции инициализации аппаратной и программной части, а также инициализирует все параметры двигателя (направление вращения, частота вращения и останов двигателя). Структура программной реализации После конфигурации и инициализации микроконтроллера может быть выполнен запуск двигателя. Для управления двигателем необходимо только несколько функций. Все функции определены в mc_lib.h:
На рисунке 11 показаны четыре переменные mc_run_stop (пуск/стоп), mc_direction (направление), mc_cmd_speed (заданная скорость) и mc_measured_speed (измеренная скорость). Они являются основными программными переменными, доступ к которым может выполняться посредством ранее описанных пользовательских функций. Программную реализацию можно рассматривать как черный ящик с наименованием "Управление двигателем" (рисунок 12) и несколькими входами (mc_run_stop, mc_direction, mc_cmd_speed, mc_measured_speed) и выходами (все сигналы управления силовым мостом).
Большинство функций доступны в mc_drv.h. Только некоторые из них зависят от типа двигателя. Функции можно разделить на четыре основных класса:
Контур стабилизации Контур стабилизации выбирается с помощью двух функций: разомкнутый (mc_set_Open_Loop()) или замкнутый контур (mc_set_Close_Loop()). На рисунке 13 показан программно-реализованный контур стабилизации.
Замкнутый контур представляет собой контур стабилизации скорости на основе ПИД-регулятора. Далее будет показано, как настроить коэффициенты Кп и Ки. Коэффициент присутствует в контуре стабилизации, но не используется. Как было показано ранее, коэффициент Кп используется для стабилизации времени отклика двигателя. Вначале установите Ки и Кд равными 0. Для получения требуемого времени отклика двигателя необходимо подбирать значение Кп.
Параметр Ки используется для подавления статической погрешности. Оставьте коэффициент Кп неизменным и установите параметр Ки.
На рисунках 14 и 15 показаны примеры выбора правильных параметров регулятора Кп = 1, Ки = 0.5 и Kд = 0. Настройка параметра Кд:
Еще одним существенным параметром является время преобразования. Его необходимо выбирать относительно времени реагирования системы. Время преобразования должно быть, по крайней мере, в два раза меньше времени отклика системы (по правилу Котельникова). Для конфигурации времени преобразования предусмотрены две функции (обсуждались выше). Их результат отображается в глобальной переменной g_tick, которая устанавливается каждые 250 мкс. С помощью данной переменной возможно настроить время преобразования. ЦПУ и использование памяти Все измерения выполняются при частоте генератора 8МГц. Они также зависят от типа двигателя (количество пар полюсов). При использовании двигателя с 5 парами полюсов частота сигнала на выходе датчика Холла в 5 раз ниже частоты вращения двигателя. Все результаты, приведенные на рисунке 16, получены при использовании трехфазного БКЭПТ с пятью парами полюсов и максимальной частотой вращения 14000 об/мин.
В худшем случае уровень загрузки микроконтроллера около 18% с временем преобразования 80 мс и частотой вращения 14000 об/мин. Первую оценку можно выполнить для более быстрого двигателя и с добавлением функции стабилизации тока. Время выполнения функции mc_regulation_loop() находится между 45 и 55мкс (необходимо принять во внимание время преобразования АЦП около 7 мкс). Для оценки был выбран БКЭПТ с временем отклика тока около 2-3 мс, пятью парами полюсов и максимальной частотой вращения около 2-3 мс. Максимальная частота вращения двигателя равна около 50000 об/мин. Если ротор использует 5 пар полюсов, то результирующая частота на выходе датчиков Холла будет равна (50000 об/мин/60)*5 = 4167 Гц. Функция mc_estimation_speed() запускается при каждом нарастающем фронте датчика Холла А, т.е. каждые 240 мкс при длительности выполнения 31 мкс. Функция mc_switch_commutation() зависит от работы датчиков Холла. Она выполняется при возникновении фронтов на выходе одного из трех датчиков Холла (нарастающий или падающий фронты), таким образом, за один период импульсов на выходе датчика Холла генерируется шесть прерываний, а результирующая периодичность вызова функции равна 240/6 мкс = 40 мкс. Наконец, время преобразования контура стабилизации должно быть, по крайней мере, в два раза меньше чем время реагирования двигателя (около 1 мс). Результаты приведены на рисунке 17.
В таком случае уровень загрузки микроконтроллера около 61%. Все измерения выполнялись с использованием одного и того же программного обеспечения. Коммуникационные ресурсы не используются (УАПП, LIN...). При таких условиях используется следующий объем памяти:
Конфигурация и использование ATAVRMC100 На рисунке 18 представлена полная схема различных режимов работы стартового набора ATAVRMC100.
Режим работы Поддерживается два различных режима работы. Установите перемычки JP1, JP2 и JP3 в соответствии с рисунком 19 для выбора одного из этих режимов. В данных рекомендациях по применению используется только режим с использованием датчиков. Полное описание аппаратной части приведено в руководстве пользователя к набору ATAVRMC100.
На рисунке 19 показаны исходные установки перемычек, которые соответствуют использованию программного обеспечения, связанного с данными рекомендациями по применению. Программа, которая поставляется вместе с платой ATAVRMC100, поддерживает два режима работы:
Заключение В данных рекомендациях по применению представлено аппаратное и программное решение устройства управления бесколлекторным электродвигателем постоянного тока с использованием датчиков. Помимо данного документа, доступен для скачивания полный исходный код. В состав программной библиотеки входит функции запуска и управления скоростью любого БКЭПТ со встроенными датчиками. Принципиальная схема содержит минимум внешних компонентов, необходимых для управления БКЭПТ со встроенными датчиками. Возможности ЦПУ и памяти микроконтроллера AT90PWM3 позволят разработчику расширить функциональные данного решения.
Документация:
Фантастический евроремонт квартир и ремонт коттеджей за большие деньги.
Главная - Микросхемы - DOC - ЖКИ - Источники питания - Электромеханика - Интерфейсы - Программы - Применения - Статьи |
|
Впервые? | Реклама на сайте | О проекте | Карта портала тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru ©1998-2023 Рынок Микроэлектроники |
|