Схема бесколлекторного двигателя датчик холла

3-фазное бесщеточное управление двигателем постоянного тока с датчиками холла — Новости — 2020

Инверторный мотор LG Direct Drive (прямой привод) (Ноябрь 2020).

Трехфазное бесшумное управление двигателем постоянного тока с датчиками Холла

В этой статье описывается, как управлять трехфазным бесщеточным двигателем постоянного тока с использованием GreenPAK.

Бесщеточные электродвигатели постоянного тока (BLDC), также известные как электронно-коммутируемые двигатели (ECM, EC двигатели) или синхронные двигатели постоянного тока, являются синхронными двигателями, питаемыми от постоянного тока через инвертор или импульсный источник питания, который производит электрический ток переменного тока для управления каждой фазой двигателя через контроллер замкнутого контура. Контроллер обеспечивает импульсы тока к обмоткам двигателя, которые управляют скоростью и крутящим моментом двигателя.

Преимущества бесколлекторного двигателя на щетковом двигателе — это отношение высокой мощности к весу, высокая скорость и электронное управление. Бесщеточные двигатели находят применение в таких местах, как компьютерная периферия (дисковые накопители, принтеры), ручные электроинструменты и транспортные средства, которые варьируются от моделей самолетов до автомобилей.

Принцип построения и эксплуатации

Конструкция и работа двигателя BLDC очень похожи на асинхронные двигатели переменного тока и моторы постоянного тока. Как и все другие двигатели, двигатели BLDC также состоят из ротора и статора, что видно на рисунке 1.

Рисунок 1. Конструкция двигателя BLDC

Статор двигателя BLDC изготовлен из многослойной стали, сложенной для переноса обмоток. Обмотки в статоре могут быть расположены в двух шаблонах: звездный рисунок (Y) или дельта-шаблон (Δ). Основное различие между двумя шаблонами заключается в том, что Y-образная диаграмма дает высокий крутящий момент при низких оборотах, а диаграмма Δ дает низкий крутящий момент при малой скорости вращения. Это связано с тем, что в конфигурации Δ половина напряжения подается на обмотку, которая не приводится в движение, что увеличивает потери и, в свою очередь, эффективность и крутящий момент. Двигатели BLDC управляются с использованием электрических циклов. Один электрический цикл имеет 6 состояний. На фиг. 2 показана последовательность коммутации двигателя на основе датчика Холла.

Рисунок 2. Временная диаграмма последовательности коммутации двигателя на датчике Холла

Основополагающие принципы работы двигателя BLDC такие же, как и с мотором постоянного тока. В случае мостового двигателя постоянного тока обратная связь реализуется с использованием механического коммутатора и щетки. В двигателе BLDC обратная связь достигается за счет использования нескольких датчиков обратной связи. Наиболее часто используемые датчики — датчики Холла и оптические датчики.

В трехфазном BLDC количество зубьев (полюсов) кратно 3, а количество магнитов кратно 2. В зависимости от количества магнитов и зубьев каждый двигатель имеет различное количество зубцов (т.е. магнитные аттракционы между роторы и статоры), шаг за ход. Чтобы вычислить количество шагов (N), нам нужно знать, сколько зубов и сколько магнитов используется в двигателе. Мотор, используемый в этой заявке, имеет 12 зубьев (полюсов) и 16 магнитов.

Итак, чтобы сделать 1 оборот, нам нужно сгенерировать 48 электрических шагов.

Проектирование трехфазного бесщеточного двигателя постоянного тока

Основная блок-схема и типичная схема приложения показаны на рис. 3 и рис. 4 соответственно.

Рисунок 3. Блок-схема

Рисунок 4. Типичная схема приложения

Эта конструкция имеет 2 входа для управления скоростью и направлением двигателя. PIN № 8 контролирует направление; уровень HIGH на выводе № 8 показывает, что вращение двигателя по часовой стрелке, а уровень LOW указывает, что он против часовой стрелки. PIN № 2 используется для управления скоростью через входную частоту. Отсутствие сигнала частоты на этом контакте отключит драйвер, и двигатель остановится. Применяя частоту к этому выводу, он запустит двигатель в течение первых 500 мс. Использование входной частоты позволяет очень точно контролировать скорость двигателя. Для расчета RPM нам нужно знать, сколько электрических шагов содержит мотор:

Двигатель в этом приложении имеет 48 шагов, поэтому на частоте 5 кГц двигатель будет работать со скоростью 6250 об / мин.

Конструкцию можно разделить на 4 части (рисунок 5): блок обработки датчиков Холла, блок управления затвором, блок управления PWM или блок управления скоростью и блок защиты.

Рисунок 5. Дизайн

Блок обработки датчиков Холла включает в себя ACMP (ACMP0, ACMP3, ACMP4), фильтры деформирования (DLY1, DLY5, DLY6) и DFF (DFF6, DFF7, DFF8). Датчики Холла, используемые в этом проекте, имеют 4 контакта; VDD, GND и 2 дифференциальных выхода, которые подключены к входам IN + и IN для ACMP. Внутренний компонент Vref, установленный в 1, 2 В, используется как VDD для датчиков Холла. Отфильтрованные сигналы от ACMP поступают в D-входы DFF. Входная частота синхронизирует эти DFF и устанавливает скорость вращения. Сигналы от этих DFF переходят к драйверу ворот и 3-бит LUT14, который настроен как XNOR. Результат состоит в том, что выход чередуется на уровень каждый раз, когда любой датчик Холла меняет свою полярность. Оба краевых детектора генерируют фактическую частоту частоты (частота Холла), которая сравнивается с входной частотой для генерации сигнала ШИМ для управления скоростью вращения.

Блок драйвера ворот включает 12 3-битных LUT, которые коммутируют внешние транзисторы в зависимости от обратной связи датчиков Холла. 6 для LUT (3-бит LUT8 — 3-бит LUT13) используются для направления CW, а для переключения в направлении CCW используются еще 6 (3-бит LUT1 — 3-бит LUT6). Этот блок также включает 3 2-битных LUT (2-бит LUT4, 2-бит LUT5 и 2-бит LUT6) для смешивания сигналов для PMOS-транзисторов каждой фазы с PWM, чтобы гарантировать, что скорость вращения не зависит от нагрузки.

Контроллер PWM включает в себя компонент PWM2, счетчик CNT8, конечный автомат FSM1, 3-бит LUT15, 2 DFF (DFF0 и DFF1), детектор переднего фронта PDLY0 и инвертор INV0. DFF0 и DFF1 вместе работают как частотный компаратор; Выход DFF0 nQ выходит за пределы LOW, когда входная частота выше, чем частота Холла, а выход DFF1 nQ выходит за пределы LOW, когда входная частота ниже частоты Холла.

На уровне LOW на входе «+» выход PWM2 OUT + генерирует сигнал ШИМ с рабочим циклом, который колеблется от 256/256 до 1/256. На уровне LOW на входе «-» PWM2 OUT + генерирует PWM с изменяющимся рабочим циклом от 1/256 до 256/256. Частота ШИМ составляет

100 кГц, а рабочий цикл IC установлен на 0% при запуске.

Двигатель останавливается до тех пор, пока не будет применена входная частота до PIN2. После подачи частоты на PIN2 выход DFF0 nQ будет гореть LOW, а PWM увеличит рабочий цикл от 0 до 99, 6%. Двигатель будет продолжать вращаться, пока датчики Холла превысят входную частоту. На этом этапе вывод DFF0 nQ будет ВЫСОКИЙ, и выход DFF1 nQ будет гореть LOW. Эта инверсия приводит к тому, что рабочий цикл PWM уменьшается до приемлемого значения при непосредственном VDD и нагрузке, наблюдаемой на двигателе. Эта система будет постоянно работать, чтобы сбалансировать рабочий цикл ШИМ. Функциональность FSM1, CNT8, 3-бит LUT15 и PWM2 описана более подробно в примечании к применению AN-1052.

Читайте также:  Двигатель на холодную шелестит

Защитный блок включает в себя 2 задержки (DLY2 и DLY9), счетчик CNT0 и 2-бит LUT0, сконфигурированный как вентиль XOR. Эта часть конструкции используется для защиты от выгорания двигателя и внешних полевых транзисторов. Если двигатель застревает или не может запуститься, датчики Холла не смогут дать обратную связь, необходимую для выключения двигателя. Если после 100 мс DLY2 выход не поступит, то обратный сигнал LOW и 2-бит LUT0 отключит двигатель. Если это происходит, CNT0 и DLY9 пытаются запустить двигатель каждые 500 мс в течение 8 мс. Этот период достаточен для запуска двигателя, но он недостаточно длинный, чтобы вызвать повреждение двигателя.

Рисунок 6. Объем работы двигателя BLDC

Вывод

В этой статье показано, как пользователи могут управлять трехфазным бесщеточным двигателем постоянного тока с использованием SLG46620 GreenPAK CMIC и датчиков эффекта Холла. SLG46620 также содержит другие функции, которые могут быть использованы для этого проекта. Например, АЦП внутри GreenPAK может интерпретировать входное напряжение постоянного тока и генерировать импульс ШИМ от значения, а не использовать входную частоту.

Раньше, если разработчик хотел бы управлять двигателем BLDC, они были бы ограничены как электрическими характеристиками, так и функциями выделенных готовых решений IC. Это вынудило дизайнеров выбирать фиксированную функцию и потенциально избыточное или дорогостоящее решение, которое часто ограничивало бы IO своей системы.

Диалог GreenPAK отменяет этот процесс проектирования, возвращая конфигурацию обратно в руки дизайнера. Используя это приложение GreenPAK как универсально-применимую (и настраиваемую) трехфазную схему управления двигателем BLDC, дизайнер может выбрать распиновку и внешние полевые транзисторы, которые отвечают уникальным электрическим характеристикам своего проекта. Кроме того, даже учитывая внешние полевые транзисторы, решение Dialog GreenPAK по-прежнему достаточно мало, чтобы дизайн системы и стоимость спецификации были чрезвычайно конкурентоспособными по сравнению с выделенными ИС.

Рекомендации

Для соответствующих документов и программного обеспечения вы можете посетить страницу Гринпака.

Загрузите бесплатное программное обеспечение GreenPAK Designer (1), чтобы открыть .gp-файлы (2) и просмотреть предлагаемый дизайн схемы. Используйте инструменты разработки GreenPAK (3), чтобы заморозить дизайн в индивидуальную микросхему за считанные минуты. Dialog Semiconductor предоставляет полную библиотеку примечаний к приложениям (4) с примерами дизайна, а также объяснения функций и блоков в IC Dialog.

(1) Программное обеспечение GreenPAK Designer, Загрузка программного обеспечения и руководство пользователя

(2) .gp, файл дизайна GreenPAK (загрузка файла zip)

(3) Инструменты разработки GreenPAK

(4) Замечания по применению GreenPAK

Отраслевые статьи — это форма контента, которая позволяет отраслевым партнерам делиться полезными новостями, сообщениями и технологиями с читателями All About Circuits таким образом, что редакционный контент не очень подходит. Все отраслевые статьи подчиняются строгим редакционным правилам с целью предоставления читателям полезных новостей, технических знаний или историй. Точки зрения и мнения, выраженные в отраслевых статьях, являются точками партнера, а не обязательно для All About Circuits или его авторов.

Источник

AVR492: Управление бесколлекторным электродвигателем постоянного тока с помощью AT90PWM3

  • Общие сведения о БКЭПТ
  • Использует контроллер силового каскада
  • Аппаратная реализация
  • Пример программного кода

В данных рекомендациях по применению описывается, как реализовать устройство управления бесколлекторным электродвигателем постоянного тока (БКЭПТ) с использованием датчиков положения на основе AVR-микроконтроллера AT90PWM3.

Высокопроизводительное AVR-ядро микроконтроллера, которое содержит контроллер силового каскада, позволяет реализовать устройство управления высокоскоростным бесколлекторным электродвигателем постоянного тока.

В данном документе дается короткое описание принципа действия бесколлекторного электродвигателя постоянного тока, а в деталях рассматривается управление БКЭПТ в сенсорном режиме, а также приводится описание принципиальной схемы опорной разработки ATAVRMC100, на которой основаны данные рекомендации по применению.

Обсуждается также программная реализация с программно-реализованным контуром управления на основе ПИД-регулятора. Для управления процессом коммутации подразумевается использование только датчиков положения на основе эффекте Холла.

Области применения БКЭПТ непрерывно увеличиваются, что связано с рядом их преимуществ:

  1. Отсутствие коллекторного узла, что упрощает или даже вообще исключает техническое обслуживание.
  2. Генерация более низкого уровня акустического и электрического шума по сравнению с универсальными коллекторными двигателями постоянного тока.
  3. Возможность работы в опасных средах (с воспламеняемыми продуктами).
  4. Хорошее соотношение массогабаритных характеристик и мощности.

Двигатели такого типа характеризуются небольшой инерционностью ротора, т.к. обмотки расположены на статоре. Коммутация управляется электроникой. Моменты коммутации определяются либо по информации от датчиков положения, либо путем измерения обратной э.д.с., генерируемой обмотками.

При управлении с использованием датчиков БКЭПТ состоит, как правило, из трех основных частей: статор, ротор и датчики Холла.

Статор классического трехфазного БКЭПТ содержит три обмотки. Во многих двигателях обмотки разделяются на несколько секций, что позволяет уменьшить пульсации вращающего момента.

На рисунке 1 показана электрическая схема замещения статора. Он состоит из трех обмоток, каждая из которых содержит три последовательно включенных элемента: индуктивность, сопротивление и обратная э.д.с.


Рисунок 1. Электрическая схема замещения статора (три фазы, три обмотки)

Ротор БКЭПТ состоит из четного числа постоянных магнитов. Количество магнитных полюсов в роторе также оказывает влияние на размер шага вращения и пульсации вращающего момента. Чем большее количество полюсов, тем меньше размер шага вращения и меньше пульсации вращающего момента. Могут использоваться постоянные магниты с 1..5 парами полюсов. В некоторых случаях число пар полюсов увеличивается до 8 (рисунок 2).


Рисунок 2. Статор и ротор трехфазного, трехобмоточного БКЭПТ

Обмотки установлены стационарно, а магнит вращается. Ротор БКЭПТ характеризуется более легким весом относительно ротора обычного универсального двигателя постоянного тока, у которого обмотки расположены на роторе.

Для оценки положения ротора в корпус двигателя встраиваются три датчика Холла. Датчики установлены под углом 120° по отношению друг к другу. С помощью данных датчиков возможно выполнить 6 различных переключений.

Коммутация фаз зависит от состояния датчиков Холла.

Подача напряжений питания на обмотки изменяется после изменения состояний выходов датчиков Холла. При правильном выполнении синхронизированной коммутации вращающий момент остается приблизительно постоянным и высоким.


Рисунок 3. Сигналы датчиков Холла в процессе вращения

В целях упрощенного описания работы трехфазного БКЭПТ рассмотрим только его версию с тремя обмотками. Как было показано ранее, коммутация фаз зависит от выходных значений датчиков Холла. При корректной подаче напряжения на обмотки двигателя создается магнитное поле и инициируется вращение. Наиболее распространенным и простым способом управления коммутацией, используемый для управления БКЭПТ, является схема включения-отключения, когда обмотка либо проводит ток, либо нет. В один момент времени могут быть запитаны только две обмотки, а третья остается отключенной. Подключение обмоток к шинам питания вызывает протекание электрического тока. Данный способ называется трапецеидальной коммутацией или блочной коммутацией.

Для управления БКЭПТ используется силовой каскад, состоящих из 3 полумостов. Схема силового каскада показана на рисунке 4.


Рисунок 4. Силовой каскад

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

Таблица 1. Коммутация ключей по часовой стрелке

Значение датчиков Холла (Hall_CBA) Фаза Ключи
101 A-B SW1; SW4
001 A-C SW1; SW6
011 B-C SW3; SW6
010 B-A SW3; SW2
110 C-A SW5; SW2
100 C-B SW1; SW4

У двигателей с несколькими полями электрическое вращение не соответствует механическому вращению. Например, у четырехполюсных БКЭПТ четыре цикла электрического вращения соответствуют одному механическому вращению.

Читайте также:  Как определить код двигателей форд сиерра

От силы магнитного поля зависит мощность и частота вращения двигателя. Регулировать частоту вращения и вращающий момент двигателя можно за счет изменения тока через обмотки. Наиболее распространенный способ управления током через обмотки является управление средним током. Для этого используется широтно-импульсная модуляция (ШИМ), рабочий цикл которой определяет среднее значение напряжения на обмотках, а, следовательно, и среднее значение тока и, как следствие, частоту вращения. Скорость может регулироваться при частотах от 20 до 60 кГц.

Вращающееся поле трехфазного, трехобмоточного БКЭПТ показано на рисунке 5.


Рисунок 5. Ступени коммутации и вращающееся поле

Процесс коммутации создает вращающееся поле. На ступени 1 фаза А подключается к положительной шине питания ключом SW1, фаза В подключается к общему с помощью ключа SW4, а фаза С остается неподключенной. Фазами А и В создаются два вектора магнитного потока (показаны красной и синий стрелками, соответственно), а сумма этих двух векторов дает вектор магнитного потока статора (зеленая стрелка). После этого ротор пытается следовать магнитному потоку. Как только ротор достигает некоторого положения, в котором изменяется состояние датчиков Холла со значения «010» на «011», выполняется соответствующим образом переключение обмоток двигателя: фаза В остается незапитанной, а фаза С подключается к общему. Это приводит к генерации нового вектора магнитного потока статора (ступень 2).

Если следовать схеме коммутации, показанной на рисунке 3 и в таблице 1, то получим шесть различных векторов магнитного потока, соответствующих шести ступеням коммутации. Шесть ступеней соответствуют одному обороту ротора.

Стартовый набор ATAVRMC100

В следующей части данных рекомендаций по применению будет рассмотрена аппаратная и программная реализация на основе стартового набора ATAVRMC100 с микроконтроллером AT90PWM3.

Принципиальная электрическая схема представлена на рисунках 21, 22, 23 и 24 в конце документа.

Программа содержит контур управления скоростью с помощью ПИД-регулятора. Такой регулятор состоит из трех звеньев, каждый из которых характеризуется собственным коэффициентом передачи: Kп, Kи и Kд.

Кп — коэффициент передачи пропорционального звена, Kи — коэффициент передачи интегрирующего звена и Kд — коэффициент передачи дифференцирующего звена. Отклонение заданной скорости от фактической (на рисунке 6 называется «сигнал рассогласования») обрабатывается каждым из звеньев. Результат данных операций складывается и подается на двигатель для получения требуемой частоты вращения (см. рисунок 6).


Рисунок 6. Структурная схема ПИД-регулятора

Коэффициент Кп влияет на длительность переходного процесса, коэффициент Ки позволяет подавить статические ошибки, а Кд используется, в частности, для стабилизации положения (см. описание контура управления в архиве с программным обеспечением для изменения коэффициентов).

Описание аппаратной части

Как показано на рисунке 7 микроконтроллер содержит 3 контроллера силового каскада (PSC). Каждый PSC можно рассматривать как широтно-импульсный модулятор (ШИМ) с двумя выходными сигналами. Во избежание возникновения сквозного тока PSC поддерживает возможность управления задержкой неперекрытия силовых ключей (см. документацию на AT90PWM3 для более детального изучения работы PSC, а также рисунок 9).

Аварийный вход (Over_Current, токовая перегрузка) связан с PSCIN. Аварийный вход разрешает микроконтроллеру отключить все выходы PSC.


Рисунок 7. Аппаратная реализация

Для измерения тока можно использовать два дифференциальных канала с программируемым усилительным каскадом (Ку=5, 10, 20 или 40). После выбора коэффициента усиления необходимо подобрать номинал шунтового резистора для наиболее полного охвата диапазона преобразования.

Сигнал Over_Current формируется внешним компаратором. Пороговое напряжение компаратора можно регулироваться с помощью внутреннего ЦАП.

Переключение фаз должно выполняться в соответствии со значением на выходах датчиков Холла. ДХ_A, ДХ_B и ДХ_C подключаются к входам источников внешних прерываний или к трем внутренним компараторам. Компараторы генерируют такой же тип прерываний, что и внешние прерывания. На рисунке 8 показано, как используются порты ввода-вывода в стартовом наборе.


Рисунок 8. Использование портов ввода-вывода микроконтроллера (корпус SO32)

VMOT (Vдв.) и VMOT_Half (1/2 Vдв.) реализованы, но не используются. Они могут использоваться для получения информации о напряжении питания двигателя.

Выходы H_x и L_x используются для управления силовым мостом. Как было сказано выше, они зависят от контроллера силового каскада (PSC), который генерирует ШИМ-сигналы. В таком применении рекомендуется использовать режим с выравниванием по центру (см. рисунок 9), когда регистр OCR0RA используется для синхронизации запуска преобразования АЦП для измерения тока.


Рисунок 9. Осциллограммы сигналов PSCn0 и PSCn1 в режиме с выравниванием по центру

  • Время вкл. 0 = 2 * OCRnSA * 1/Fclkpsc
  • Время вкл. 1 = 2* (OCRnRB — OCRnSB + 1) * 1/Fclkpsc
  • Период PSC = 2 * (OCRnRB + 1) * 1/Fclkpsc

Пауза неперекрытия между PSCn0 и PSCn1:

Блок PSC тактируется сигналов CLKPSC.

Для подачи ШИМ-сигналов в силовой каскад может использоваться один из двух способов. Первый заключается в приложении ШИМ-сигналов к верхним и нижним частям силового каскада, а второй — в приложении ШИМ-сигналов только к верхним частям.

Описание программного обеспечения

Atmel разработала библиотеки для управления БКЭПТ. Первый шаг их использования заключается в конфигурации и инициализации микроконтроллера.

Конфигурация и инициализация микроконтроллера

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

Структура программной реализации

После конфигурации и инициализации микроконтроллера может быть выполнен запуск двигателя. Для управления двигателем необходимо только несколько функций. Все функции определены в mc_lib.h:

void mc_motor_run(void) — Используется для запуска двигателя. Вызывается функция контура стабилизации для установки рабочего цикла ШИМ. После этого выполняется первая фаза коммутации. Bool mc_motor_is_running(void) — Определение состояния двигателя. Если ‘1’, то двигатель работает, если ‘0’, то двигатель остановлен. void mc_motor_stop(void) — Используется для остановки двигателя. void mc_set_motor_speed(U8 speed) — Установка заданной пользователем скорости. U8 mc_get_motor_speed(void) — Возвращает заданную пользователем скорость. void mc_set_motor_direction(U8 direction) — Установка направления вращения ‘CW’ (по часовой стрелке) или ‘CCW’ (против часовой стрелки). U8 mc_get_motor_direction(void) — Возвращает текущее направление вращения двигателя. U8 mc_set_motor_measured_speed(U8 measured_speed) — Сохранение измеренной скорости в переменной measured_speed. U8 mc_get_motor_measured_speed(void) — Возвращает измеренную скорость. void mc_set_Close_Loop(void) void mc_set_Open_Loop(void) — Конфигурация контура стабилизации: замкнутый контур или разомкнутый (см. рисунок 13).


Рисунок 10. Конфигурация AT90PWM3


Рисунок 11. Структура программного обеспечения

На рисунке 11 показаны четыре переменные mc_run_stop (пуск/стоп), mc_direction (направление), mc_cmd_speed (заданная скорость) и mc_measured_speed (измеренная скорость). Они являются основными программными переменными, доступ к которым может выполняться посредством ранее описанных пользовательских функций.

Программную реализацию можно рассматривать как черный ящик с наименованием «Управление двигателем» (рисунок 12) и несколькими входами (mc_run_stop, mc_direction, mc_cmd_speed, mc_measured_speed) и выходами (все сигналы управления силовым мостом).


Рисунок 12. Основные программные переменные

Большинство функций доступны в mc_drv.h. Только некоторые из них зависят от типа двигателя. Функции можно разделить на четыре основных класса:

    Инициализация аппаратной части void mc_init_HW(void); Инициализация аппаратной части полностью выполнена в этой функции. Здесь выполняется инициализация портов, прерываний, таймеров и контроллера силового каскада.

void mc_init_SW(void); Используется для инициализации программного обеспечения. Разрешает все прерывания.

void mc_init_port(void); Инициализация порта ввода-вывода путем задания через регистры DDRx, какие выводы функционируют как вход, а какие как выход, а также с указанием, на каких входах необходимо включить подтягивающие резисторы (через регистр PORTx).

void mc_init_pwm(void); Данная функция запускает ФАПЧ и устанавливает все регистры PSC в исходное состояние.

void mc_init_IT(void); Модифицируйте данную функцию для разрешения или запрета типов прерываний.

Читайте также:  Сколько сливается масло с двигателя приора

void PSC0_Init ( unsigned int dt0, unsigned int ot0, unsigned int dt1, unsigned int ot1); void PSC1_Init ( unsigned int dt0, unsigned int ot0, unsigned int dt1, unsigned int ot1); void PSC2_Init (unsigned int dt0, unsigned int ot0, unsigned int dt1, unsigned int ot1); PSCx_Init позволяет пользователю выбрать конфигурацию контроллера силового каскада (PSC) микроконтроллера.
Функции коммутации фаз U8 mc_get_hall(void); Считывание состояния датчиков Холла, соответствующее шести ступеням коммутации (HS_001, HS_010, HS_011, HS_100, HS_101, HS_110).

_interrupt void mc_hall_a(void); _interrupt void mc_hall_b(void); _interrupt void mc_hall_c(void); Данные функции выполняются, если выявлено внешнее прерывание (изменение выхода датчиков Холла). Они позволяют выполнить коммутацию фаз и вычислить скорость.

void mc_duty_cycle(U8 level); Данная функция устанавливает рабочий цикл ШИМ в соответствии с конфигурацией PSC.

void mc_switch_commutation(U8 position); Коммутация фаз выполняется в соответствии со значением на выходах датчиков Холла и только в случае, если пользователь запустит двигатель.

  • Конфигурация времени преобразования void mc_config_sampling_period(void); Инициализация таймера 1 для генерации прерывания каждые 250 мкс. _interrupt void launch_sampling_period(void); После активизации 250 мкс-ого прерывания устанавливает флаг. Он может использоваться для управления временем преобразования.
  • Оценка скорости void mc_config_time_estimation_speed(void); Конфигурация таймера 0 для выполнения функции вычисления скорости.

    void mc_estimation_speed(void); Данная функция вычисляет частоту вращения двигателя на основе принципа измерения периода следования импульсов датчика Холла.

    _interrupt void ovfl_timer(void); При возникновении прерывания выполняется приращение 8-разрядной переменной для реализации 16-разрядного таймера с помощью 8-разрядного таймера.
    Измерение тока _interrupt void ADC_EOC(void); Функция ADC_EOC выполняется сразу после завершения преобразования усилителя для установки флага, который может использоваться пользователем.

    void mc_init_current_measure(void); Данная функция инициализирует усилитель 1 для измерения тока.

    U8 mc_get_current(void); Считывание значения тока, если преобразование завершено.

    Bool mc_conversion_is_finished(void); Индицирует завершение преобразования.

    void mc_ack_EOC(void); Сброс флага завершения преобразования.

  • Детекция токовой перегрузки void mc_set_Over_Current(U8 Level); Устанавливает порог определения токовой перегрузки. В качестве порога выступает выход ЦАП, связанный с внешним компаратором.
  • Контур стабилизации выбирается с помощью двух функций: разомкнутый (mc_set_Open_Loop()) или замкнутый контур (mc_set_Close_Loop()). На рисунке 13 показан программно-реализованный контур стабилизации.


    Рисунок 13. Контур стабилизации

    Замкнутый контур представляет собой контур стабилизации скорости на основе ПИД-регулятора.

    Далее будет показано, как настроить коэффициенты Кп и Ки. Коэффициент присутствует в контуре стабилизации, но не используется.

    Как было показано ранее, коэффициент Кп используется для стабилизации времени отклика двигателя. Вначале установите Ки и Кд равными 0. Для получения требуемого времени отклика двигателя необходимо подбирать значение Кп.

    • Если время отклика слишком мало, то увеличьте Кп.
    • Если время отклика быстрое, но не стабильное, то снизьте Кп.


    Рисунок 14. Настройка Кп

    Параметр Ки используется для подавления статической погрешности. Оставьте коэффициент Кп неизменным и установите параметр Ки.

    • Если погрешность отличается от нуля, то увеличьте Ки.
    • Если подавлению погрешности предшествовал колебательный процесс, то уменьшите Ки.


    Рисунок 15. Настройка Ки

    На рисунках 14 и 15 показаны примеры выбора правильных параметров регулятора Кп = 1, Ки = 0.5 и Kд = 0.

    Настройка параметра Кд:

    • Если быстродействие низкое, то увеличьте Кд.
    • При нестабильности Кд необходимо снижать.

    Еще одним существенным параметром является время преобразования. Его необходимо выбирать относительно времени реагирования системы. Время преобразования должно быть, по крайней мере, в два раза меньше времени отклика системы (по правилу Котельникова).

    Для конфигурации времени преобразования предусмотрены две функции (обсуждались выше).

    Их результат отображается в глобальной переменной g_tick, которая устанавливается каждые 250 мкс. С помощью данной переменной возможно настроить время преобразования.

    ЦПУ и использование памяти

    Все измерения выполняются при частоте генератора 8МГц. Они также зависят от типа двигателя (количество пар полюсов). При использовании двигателя с 5 парами полюсов частота сигнала на выходе датчика Холла в 5 раз ниже частоты вращения двигателя.

    Все результаты, приведенные на рисунке 16, получены при использовании трехфазного БКЭПТ с пятью парами полюсов и максимальной частотой вращения 14000 об/мин.


    Рисунок 16. Использование быстродействия микроконтроллера

    В худшем случае уровень загрузки микроконтроллера около 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.


    Рисунок 17. Оценка загрузки микроконтроллера

    В таком случае уровень загрузки микроконтроллера около 61%.

    Все измерения выполнялись с использованием одного и того же программного обеспечения. Коммуникационные ресурсы не используются (УАПП, LIN. ).

    При таких условиях используется следующий объем памяти:

    • 3175 байт памяти программ (38,7% от всего объема флэш-памяти).
    • 285 байт памяти данных (55,7% от всего объема статического ОЗУ).

    Конфигурация и использование ATAVRMC100

    На рисунке 18 представлена полная схема различных режимов работы стартового набора ATAVRMC100.


    Рисунок 18. Назначение портов ввода-вывода микроконтроллера и коммуникационные режимы

    Поддерживается два различных режима работы. Установите перемычки JP1, JP2 и JP3 в соответствии с рисунком 19 для выбора одного из этих режимов. В данных рекомендациях по применению используется только режим с использованием датчиков. Полное описание аппаратной части приведено в руководстве пользователя к набору ATAVRMC100.


    Рисунок 19. Выбор режима управления с использованием датчиков

    На рисунке 19 показаны исходные установки перемычек, которые соответствуют использованию программного обеспечения, связанного с данными рекомендациями по применению.

    Программа, которая поставляется вместе с платой ATAVRMC100, поддерживает два режима работы:

    • запуск двигателя на максимальной скорости без внешних компонентов.
    • регулировка скорости двигателя с помощью одного внешнего потенциометра.


    Рисунок 20. Подключение потенциометра

    В данных рекомендациях по применению представлено аппаратное и программное решение устройства управления бесколлекторным электродвигателем постоянного тока с использованием датчиков. Помимо данного документа, доступен для скачивания полный исходный код.

    В состав программной библиотеки входит функции запуска и управления скоростью любого БКЭПТ со встроенными датчиками.

    Принципиальная схема содержит минимум внешних компонентов, необходимых для управления БКЭПТ со встроенными датчиками.

    Возможности ЦПУ и памяти микроконтроллера AT90PWM3 позволят разработчику расширить функциональные данного решения.


    Рисунок 21. Принципиальная электрическая схема (часть 1)


    Рисунок 22. Принципиальная электрическая схема (часть 2)


    Рисунок 23. Принципиальная электрическая схема (часть 3)


    Рисунок 24. Принципиальная электрическая схема (часть 4)

    Источник

    Adblock
    detector