Меню

Схема управления бесколлекторный мотор

Управление бездатчиковыми бесколлекторными двигателями (Sensorless BLDC)

Существуют бесколлекторный двигатели без каких либо датчиков положения или энкодеров. В таких двигателях определение положения ротора выполняется путем измерения ЭДС на свободной фазе. Мы помним, что в каждый момент времени к одной из фаз подключен «+» к другой «-« питания, одна из фаз остается свободной. Вращаясь, двигатель наводит ЭДС в свободной обмотке. По мере вращения напряжение на свободной фазе изменяется. Измеряя напряжение на свободной фазе, можно определить момент переключения к следующему положению ротора. Обычно определяют момент перехода напряжения на свободной фазе через нулевую точку (половину питающего напряжения). Т.е. нужно отследить момент, когда напряжение на свободной фазе сравняется со средней точкой. Разумеется, для работы этого метода двигатель должен вращаться. Этот метод хорошо работает при сравнительно высоких оборотах двигателя. При низких оборотах наводимая ЭДС может оказаться недостаточной для четкого определения положения ротора. Тем не менее, этот метод применяется. Один из методов определения положения ротора при невращающемся двигателе будет рассмотрен в следующей статье. Способы запуска беcколлекторного бездатчикового двигателя также будут рассматриваться в следующей статье.

Схема со средней точкой

Виртуальная средняя точка

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

Если Ваш двигатель питается напряжением 24 вольта, то в средней точке напряжение может находиться в пределах от 0 до 24 Вольт. Микроконтроллеры обычно имеют предел измерения 5 В. Без схем согласования уровней сигналов не обойтись. Учтите, что повысив напряжение питания двигателя, следует изменить и делители напряжения в цепях согласования. В противном случае напряжение может превысить допустимое и вывести со строя микроконтроллер. Для предотвращения таких ситуаций дополнительно применяют схемы защиты.

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

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

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

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

Алгоритм коммутаций

На первом этапе P1 на фазу V подается «+», минус — на фазу U. При этом напряжение на фазе W начинает расти и в середине периода P1 пересекает нулевую точку — половину напряжения между фазами V и U, т.е. половину питающего напряжения. Как видно из диаграммы, изменение состояния ключей нужно выполнить на половине периода между событием пересечения нулевой точки (ZC). После переключения состояния ключей (этап P2) измерения выполняем на свободной фазе V. Обратите внимание на то, что напряжение на свободной фазе может расти или падать. Это придется учитывать при работе компараторов. Таким образом, наш регулятор должен помнить на каком шаге от P1 до P6 находится, и переходить к следующему состоянию, исходя из расчетов времени, вычисленных между событиями ZC.

Читайте также:  Фрикционный двигатель для швейных машин ремонт

Ниже приведена таблица соответствия состояния ключей и свободных фаз для каждого из 6 положений ротора:

Этап Питание + Питание — Открытые ключи Измерения на фазе
P1 V U SW1, SW5 W↑
P2 W U SW3, SW5 V↓
P3 W V SW3, SW4 U↑
P4 U V SW2, SW4 W↓
P5 U W SW2, SW6 V↑
P6 V W SW1, SW6 U↓

Итак, нам понадобится подсчитывать время между ZC. И отмерять время от события ZC до переключения ключей. Это время должно учитывать угол опережения фазы.

Выбор частоты ШИМ

Предположим ситуацию, когда, частота ШИМ 8 кГц, скважность 100% (полный газ), двигатель вращается со скоростью, при которой частота коммутаций тоже равняется 8 кГц. Т.е. от момента переключения ключей до следующего переключения проходит ровно один период ШИМ сигнала. Если скорость вращения возрастёт и частота коммутаций превысит частоту ШИМ, возникнет ситуация, при которой ШИМ сигнал будет удерживать ключи открытыми дольше необходимого и противодействовать вращению двигателя. Кроме того, измерение напряжения на свободной фазе синхронизированы частотой ШИМ сигнала, поэтому нет технической возможности вычислить скорость коммутации выше частоты ШИМ. Другими словами контролер теоретически не сможет управлять двигателем, если тот вращается со скоростью, при которой частота коммутаций превышает частоту ШИМ сигнала. Это только теоретические расчеты. На практике, желательно чтобы частота ШИМ в несколько раз превышала частоту коммутаций.

Например, имеем регулятор с частотой ШИМ 8 кГц, и двигатель с 14 магнитами. Максимальная теоретически возможная частота вращения вала двигателя будет:

V=(Q/6/(N/2)*60);

Q — частота ШИМ в герцах 6 — количество коммутаций за один электрический оборот N — количество магнитов 60 — количество секунд в минуте

V=((8000/6/(14/2))*60) = 11428 об/мин.

Двигатель с 28 магнитами: V=((8000/6/(28/2))*60) = 5714 об/мин.

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

Например, чтобы раскрутить двигатель с 24 магнитами до 10000 об/мин понадобится регулятор с частотой ШИМ не ниже 24кГц. Нужно так же помнить, что чем выше частота ШИМ, тем больше переходных процессов происходит на ключах за единицу времени. Это может привести к увеличению потерь и к увеличению тепловыделения на ключах.

Схема регулятора скорости бесколлекторного двигателя (ESC)

Схема условно разделена на две части: левая — микроконтроллер с логикой, правая — силовая часть. Силовую часть можно модифицировать для работы с двигателями другой мощности или с другим питающим напряжением.

Контроллер — ATMEGA168. Гурманы могут сказать, что хватило бы и ATMEGA88, а AT90PWM3 — это было бы «вааще по феншую». Первый регулятор я как раз делал «по феншую». Если у Вас есть возможность применять AT90PWM3 — это будет наиболее подходящий выбор. Но для моих задумок решительно не хватало 8 килобайт памяти. Поэтому я применил микроконтроллер ATMEGA168.

Эта схема задумывалась как испытательный стенд. На котором предполагалось создать универсальный настраиваемый регулятор для работы с различными «калибрами» бесколлекторных двигателей: как с датчиками, так и без датчиков положения. В этой статье я опишу схему и принцип работы прошивки регулятора для управления бесколлекторными двигателями с датчиками Холла и без датчиков.

Схема регулятора

Питание

ШИМ и сигналы для ключей

Обратная связь (контроль напряжения фаз двигателя)

Датчики Холла

Измерения аналоговых сигналов

На вход ADC3(PC3) поступает аналоговый сигнал от датчика тока. Датчик тока ACS756SA. Это датчик тока на основе эффекта Холла. Преимущество этого датчика в том, что он не использует шунт, а значит, имеет внутреннее сопротивление близкое к нулю, поэтому на нем не происходит тепловыделения. Кроме того, выход датчика аналоговый в пределах 5В, поэтому без каких-либо преобразований подается на вход АЦП микроконтроллера, что упрощает схему. Если потребуется датчик с большим диапазоном измерения тока, Вы просто заменяете существующий датчик новым, абсолютно не изменяя схему.

Читайте также:  Ремонт раздаточной коробки автомобиля зил 131

Если Вам хочется использовать шунт с последующей схемой усиления, согласования — пожалуйста.

Задающие сигналы

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

UART интерфейс

Прочее

Светодиод, сигнализирующий о состоянии регулятора, подключен к выводу PD4.

Силовая часть

Ключи нужно выбирать в зависимости от максимального тока и напряжения питания двигателя (выбору ключей и драйверов будет посвящена отдельная статья). На схеме обозначены IR540, в реальности использовались K3069. K3069 рассчитаны на напряжение 60В и ток 75А. Это явный перебор, но мне они достались даром в большом количестве (желаю и Вам такого счастья).

Конденсатор С19 включается параллельно питающей батареи. Чем больше его емкость — тем лучше. Этот конденсатор защищает батарею от бросков тока и ключи от значительной просадки напряжения. При отсутствии этого конденсатора Вам обеспечены как минимум проблемы с ключами. Если подключать батарею сразу к VD — может проскакивать искра. Искрогасящий резистор R32 используется в момент подключения к питающей батарее. Сразу подключаем «» батареи, затем подаем «+» на контакт Antispark. Ток течет через резистор и плавно заряжает конденсатор С19. Через несколько секунд, подключаем контакт батареи к VD. При питании 12В можно Antispark не делать.

Возможности прошивки

  • возможность управлять двигателями с датчиками и без;
  • для бездатчикового двигателя три вида старта: без определения первоначального положения; с определением первоначального положения; комбинированный;
  • настройка угла опережения фазы для бездатчикового двигателя с шагом 1 градус;
  • возможность использовать один из двух задающих входов: 1-аналоговый, 2-RC;
  • калибровка входных сигналов;
  • реверс двигателя;
  • настройка регулятора по порту UART и получение данных от регулятора во время работы (обороты, ток, напряжение батареи);
  • частота ШИМ 16, 32 КГц.
  • настройка уровня ШИМ сигнала для старта двигателя;
  • контроль напряжения батарей. Два порога: ограничение и отсечка. При снижении напряжения батареи до порога ограничения обороты двигателя понижаются. При снижении ниже порога отсечки происходит полная остановка;
  • контроль тока двигателя. Два порога: ограничение и отсечка;
  • настраиваемый демпфер задающего сигнала;
  • настройка Dead time для ключей

Работа регулятора

Включение

После включения двигатель издает 1 короткий сигнал (если звук не отключен), включается и постоянно светится светодиод. Регулятор готов к работе.

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

Запуск

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

Запуск двигателя с датчиками Холла также выполняется с применением настроек для старта двигателя. Т.е. если для запуска двигателя с датчиками дать полный газ, то регулятор подаст напряжение, которое указано в настройках для старта. И только после того, как двигатель начнет вращаться, будет подано полное напряжение. Это несколько нестандартно для двигателя с датчиками, поскольку такие двигатели в основном применяются как тяговые, а в данном случае достичь максимального крутящего момента на старте, возможно, будет сложно. Тем не менее, в данном регуляторе присутствует такая особенность, которая защищает двигатель и регулятор от выхода со строя при механическом заклинивании двигателя.

Читайте также:  Сборка мотора ява 638

Во время работы регулятор выдает данные об оборотах двигателя, токе, напряжении батарей через порт UART в формате:

Данные выдаются с периодичностью примерно 1 секунда. Скорость передачи по порту 9600.

Настройка регулятора

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

Регулятор воспринимает следующие команды (в разных версиях прошивки набор настроек и команд может отличаться):

h — вывод списка команд; ? — вывод настроек; c — калибровка задающего сигнала; d — сброс настроек к заводским настройкам.

команда «?» выводит в терминал список всех доступных настроек и их значение. Например: Изменить нужную настройку можно командой следующего формата:

pwm.start=15

Если команда была дана корректно, настройка будет применена и сохранена. Проверить текущие настройки после их изменения можно командой «?«.

Измерения аналоговых сигналов (напряжение, ток) выполняются с помощью АЦП микроконтроллера. АЦП работает в 8-ми битном режиме. Точность измерения занижена намеренно для обеспечения приемлемой скорости преобразования аналогового сигнала. Соответственно, все аналоговые величины регулятор выдает в виде 8-ми битного числа, т.е. от 0 до 255.

Список настроек, их описание:

Параметр Описание Значение
motor.type Тип мотора 0-Sensorless; 1-Sensored
motor.magnets Кол.во магнитов в роторе двигателя. Изпользуется только для расчета оборотов двигателя. 0..255, шт.
motor.angle Угол опережения фазы. Используется только для Sensorless двигателей. 0..30, градусов
motor.start.type Тип старта. Используется только для Sensorless двигателей. 0-без определения положения ротора; 1-с определением положения ротора; 2-комбинированный;
motor.start.time Время старта. 0..255, мс
pwm Частота PWM 16, 32, КГц
pwm.start Значение PWM (%) для старта двигателя. 0..50 %
pwm.min Значение минимального значения PWM (%), при котором двигатель вращается. 0..30 %
voltage.limit Напряжение батареи, при котором следует ограничивать мощность, подаваемую на двигатель. Указывается в показаниях ADC. 0..255*
voltage.cutoff Напряжение батареи, при котором следует выключать двигатель. Указывается в показаниях ADC. 0..255*
current.limit Ток, при котором следует ограничивать мощность, подаваемую на двигатель. Указывается в показаниях ADC. 0..255**
current.cutoff Ток, при котором следует выключать двигатель. Указывается в показаниях ADC. 0..255**
system.sound Включить/выключить звуковой сигнал, издаваемый двигателем 0-выключен; 1-включен;
system.input Задающий сигнал 0-потенциометр; 1-RC сигнал;
system.damper Демпфирование входного сигнала 0..255, условные единицы
system.deadtime Значение Dead Time для ключей в микросекундах 0..2, мкс

* — числовое значение 8-ми битного аналого цифрового преобразователя. Рассчитывается по формуле: ADC = (U*R6/(R5+R6))*255/5 Где: U — напряжение в Вольтах; R5, R6 — сопротивление резисторов делителя в Омах.

** — числовое значение 8-ми битного аналого цифрового преобразователя. Рассчитывается по формуле: ADC = U*255/5 Где: U — напряжение датчика тока в Вольтах, соответствующее требуемому току.

Фьюзы микроконтроллера должны быть выставлены на работу с внешним кварцем. Строка для программирования фьюзов с помощью AVRDUDE:

-U lfuse:w:0xFF:m -U hfuse:w:0xDC:m

Adblock
detector