Структура регулятора скорости бесколлекторного двигателя (ESC)
Перед тем, как приступить непосредственно к разработке схемы регулятора, составим его блок-схему. Это упростит последующий выбор элементной базы.
Регулятор скорости бесколлекторного двигателя (ESC - Electronic Speed Controller) иногда называют контроллер бесколлекторного двигателя или привод бесколлекторного двигателя.
Условно разделим регулятор на следующие модули: Модуль контроллера - принимает задающие сигналы, сигналы датчиков, выдает управляющие сигналы на ключи Модуль силовых ключей - управляет силовыми ключами Модуль датчиков - совокупность различных датчиков и схем согласования.
Модуль контроллера
Регулятор должен гарантировать основные выходные сигналы:- ШИМ сигнал на 6 ключей (UH_PWM, UL_PWM, VH_PWM, VL_PWM, WH_PWM, WL_PWM).
- напряжение от трех фаз U1, V1, W1 (для регулятора, работающего с двигателем с датчиками положения - сигналы от датчиков положения H1, H2, H3);
- напряжение средней точки или половинного напряжения питания Z1 (для регулятора работающего с двигателем с датчиками положения не требуется);
- сигнал датчика тока двигателя (Id1);
- напряжение питания двигателя (Vd1);
- управляющий сигнал, задающий обороты двигателя (Va).
- сигналы для управления, контроля индикации. Например, светодиодный индикатор (LED), сигналы для настройки регулятора с использованием терминала (Tx, Rx).
Техническая реализация
ШИМ сигнал на 6 ключей
Поскольку наш регулятор двигателя будет строиться на микроконтроллере, он должен гарантировать ШИМ сигнал на 6 ключей (для трехфазного бесколлекторного двигателя). Существует два способа:- генерировать на выходах микроконтроллера 6 ШИМ сигналов: отдельно на каждый ключ;
- генерировать один ШИМ сигнал и разводить на ключи дополнительными логическими элементами "И".
Второй способ легко реализуется с помощью любого микроконтроллера хотя бы с одним PWM выходом + 6 дискретных выходов для каждого из ключей. В этом случае дополнительно потребуются микросхемы логики.
Если требуется выбрать способ подачи ШИМ на ключи (только верхние / только нижние / верхние и нижние) в первом случае придется предусмотреть программные установки. Во втором можно обойтись двумя перемычками на плате.
Напряжение от трех фаз, напряжение средней точки
Напряжение от трех фаз двигателя нужно привести к уровню, приемлемому для входов компараторов. Это делается с помощью простого делителя напряжения.Такая же схема - для напряжения средней точки. После делителя эти сигналы поступают на вход компаратора. Можно использовать отдельные схемы компараторов. После компараторов дискретные сигналы поступают на входы микроконтроллера. Многие микроконтроллеры имеют встроенные компараторы, которые можно использовать. Сигналы после делителя будут подаваться непосредственно на входы микроконтроллера. По большому счету, в каждый момент времени нас интересует напряжение только на одной, измеряемой фазе. Поэтому можно построить схему с одним компаратором и аналоговым мультиплексором. Собственно, внутри микроконтроллера примерно так и происходит.
Датчик тока и контроль напряжения питания
Датчик тока и контроль напряжения питания двигателя потребуют 2 АЦП входа. Предполагается, что датчик тока выдает сигнал в диапазоне питания микроконтроллера (0..5В). Мы будем использовать датчик тока на основе датчика Холла из серии ACS758.Можно использовать классический шунт, с операционным усилителем. Датчик тока на основе датчика Холла выбран, поскольку планируется управлять двигателями с большими токами, где применение шунта приведет к значительному тепловыделению.
Контроль напряжения питания необходим при использовании батарей. Он позволит избежать глубокого разряда батарей.
Сигнал, задающий обороты двигателя.
Способов указать регулятору, с какой скоростью должен вращаться двигатель множество. Это может быть как аналоговый, так и цифровой сигнал. Будем применять простой аналоговый сигнал, формируемый потенциометром.Дополнительные сигналы
Хотелось бы сделать более-менее универсальный регулятор, который можно настроить для управления широким разнообразием бесколлекторных двигателей. Поэтому, потребуется интерфейс для настройки регулятора. Я остановился на наиболее простом варианте - подключить к Tx, Rx выходам микроконтроллера FT232 преобразователь и подключить его к компьютеру. Это универсальный способ, поскольку позволяет передавать информацию в обе стороны. К Tx, Rx выходам можно подключить специально разработанный дисплей или через Bluetooth модуль к смартфону или другому устройству имеющему Bluetooth интерфейс.Поскольку Tx, Rx выходы предполагается использовать только для настройки регулятора, нам потребуется еще индикатор состояния. Наиболее простой - обычный светодиод.
Модуль силовых ключей
Для управления трехфазным бесколлекторным двигателем необходимо 6 ключей, включенных по мостовой схеме (см. Управление бездатчиковыми бесколлекторными двигателями). Параметры силовых ключей выбираются в зависимости от характеристик управляемого двигателя. Основные характеристики силовых ключей - напряжение и коммутируемый ток. Модуль ключей состоит из самих транзисторных ключей и драйверов ключей. Задача драйвера ключей преобразовать логические уровни микроконтроллера в сигналы, управляющие силовыми транзисторами. Для мощных полевых транзисторов требуются достаточно мощные управляющие сигналы. В противном случае время открытия ключа может увеличиться, что вызовет увеличение тепловых потерь на транзисторах. Схемы драйверов могут строиться на транзисторах или с применением специализированных микросхем.Драйверы ключей следует проектировать так, чтобы те не допускали возможности одновременного открытия ключей верхнего и нижнего плеча. Кроме того, должны реализовывать временную задержку между закрытием одного ключа и открытием другого. Эта задержка может быть реализована драйвером, если у используемого драйвера имеется такая функция, или - микроконтроллером. При выходе со строя ключей, драйверы ключей должны препятствовать прохождению напряжения, питающего двигатель, в цепь микроконтроллера. Именно поэтому я предпочитаю использовать специальные микросхемы драйвера MOSFET ключей.
Для систем с большими токами не всегда удается подобрать подходящий транзистор для ключа. Параллельное включение транзисторов может решить эту задачу. Если включить два одинаковых полевых транзистора параллельно, можно получить сборку, пропускающую в 2 раза больший ток. Рекомендуется включать затворы транзисторов через резисторы номиналом 2-100 Ом, как показано на схеме. Номиналы резисторов выбираются с учетом емкости затвора транзистора, максимального тока, который может обеспечить драйвер ключа и необходимого времени открытия ключа.
Модуль датчиков
Модуль датчиков занимается непосредственно измерением и формированием сигналов, преобразуя их к виду, удобному для модуля контроллера.Разделение регулятора на модули - мера условная и направлена в первую очередь на упрощение дальнейшего проектирования. Она не обязывает нас физически разделять регулятор на разные части. Конечная реализация зависит от конкретной поставленной задачи.
На блок-схеме присутствуют датчики Холла H1, H2, H3. Разумеется, они нужны только для двигателей с датчиками Холла. В следующей статье будет рассматриваться схема простого универсального регулятора, который разрабатывался для управления двигателями с датчиками Холла и без таковых.
Защита
Особое внимание прошу уделить безопасности. Поскольку неосторожные эксперименты с двигателями даже небольшой мощности около 100-200 Ватт, напряжением питания всего 12 вольт могут привести к неприятностям. На начальном этапе изучения бесколлекторных двигателей я сжег не один комплект силовых ключей и драйверов. Взрывались и дорожки на плате ключей и шарики расплавленной меди катались по столу. Шоу, конечно, яркое, но процесс устранения последствий тяготит не только душу, но и карман. Основная масса происшествий пришлась на этап разработки. И связаны, в основном, с тривиальными ошибками, но иногда происходили случаи, над которыми приходилось поломать голову. Чтобы Вы не повторяли моих ошибок, отнеситесь к этому разделу с ответственностью.В регуляторах бесколлекторного двигателя всегда присутствует конденсатор. Его емкость обычно не маленькая и при подключении питания двигателя будет проскакивать искра. При питании до 12 вольт этот эффект можно проигнорировать. Но при большом напряжении питания вспышка искры может быть не только пугающе яркой и громкой, но и вызывать микро повреждения контактов, которые в последующем могут вызвать их более существенную эрозию. Для устранения этого эффекта я использовал простейшую схему с токоограничивающим резистором. Подключение к питающему напряжению выполняется в два действия. Сразу к батарее подключается вспомогательный контакт. Через резистор конденсаторы плавно заряжаются, через несколько секунд напряжение на конденсаторах практически достигает напряжения питания, после чего подключается основной контакт.
Следует предусмотреть возможность выхода со строя потенциометра, задающего обороты двигателя (или другого задающего устройства). В реальных условиях банальный обрыв провода может привести к неуправляемому изменению оборотов двигателя. Поэтому, крайне целесообразно так же предусмотреть аварийное отключение двигателя.
Регулятор должен препятствовать возникновению нештатных ситуаций и в критических случаях отключать двигатель. Например, в следующих случаях:
- превышение допустимого тока;
- заклинивание двигателя;
- превышение двигателем допустимых оборотов. Регулятор имеет свои технические возможности и не сможет корректно управлять двигателем, который вращается быстрее, чем сможет отследить регулятор;
- снижения питающего напряжения ниже допустимого уровня (предотвращение глубокого разряда батарей).
В завершение
Составим таблицу сигналов с которыми придется работать нашему микроконтроллеру:Сигнал | Описание |
---|---|
UH_PWM | Дискретный |
UL_PWM | Дискретный |
VH_PWM | Дискретный |
VL_PWM | Дискретный |
WH_PWM | Дискретный |
WL_PWM | Дискретный |
H1 | Дискретный (при наличии датчиков положения) |
H2 | Дискретный (при наличии датчиков положения) |
H3 | Дискретный (при наличии датчиков положения) |
U1 | Аналоговый (компаратор) |
V1 | Аналоговый (компаратор) |
W1 | Аналоговый (компаратор) |
Z1 | Аналоговый (компаратор) |
Id1 | Аналоговый (АЦП) |
Vd1 | Аналоговый (АЦП) |
Va | Аналоговый (АЦП) |
LED | Дискретный |
Rx,Tx | Дискретный (UART) |
Успехов!
Статті по безколекторним двигунам:
- Бесколлекторный мотор постоянного тока. Что это такое?
- Устройство бесколлекторного мотора
- Управление бесколлекторным мотором с датчиками Холла (Sensored brushless motors)
- Управление бесколлекторными моторами без бездатчиков (Sensorless BLDC)
- Запуск бесколлекторного мотора без бездатчиков (Sensorless BLDC)
- Определение положения ротора бесколлекторного мотора в остановленном состоянии
- Регулятор бесколлекторного мотора. Структура (ESC)
- Схема регулятора бесколлекторного мотора (Схема ESC)
- Силова частина регулятора BLDC двигунів
- Література по безколекторним двигунам.
- Безколекторні двигуни. Приклади програм для мікроконтролера
- Схема регулятора BLDC на STM32
- STM32. Приклад. Керування безколекторним двигуном (BLDC)
- STM32. Приклад. Керування PMSM. Приклади програм
- Видео о бесколлекторных моторах. BLDC, PMSM, векторное управление (російською)
На самом интересном месте) когда продолжение?
На этой неделе планируется статья со схемой, прошивкой и описанием работы. Возможно, если успею, будет и видео. Чуть позже будет завершающая статья посвящена силовой части.
Недавні записи
- Text to speech. Українська мова
- LCD Display ST7567S (IIC)
- Розпізнавання мови (Speech recognition)
- Selenium
- Комп'ютерний зір (Computer Vision)
- Деякі думки про точність вимірювань в електроприводі
- Датчики Холла 120/60 градусів
- Модуль драйверів напівмосту IGBT транзисторів
- Драйвер IGBT транзисторів на A316J
- AS5600. Варіант встановлення на BLDC мотор
Tags
docker sensors rtc led timer wifi remap sms css websocket mongodb bme280 rfid bluetooth esp8266 nodemcu bkp piezo bmp280 i2c mpu-6050 encoder examples avr brushless ngnix nvic displays bldc java-script pmsm barometer pwm lcd ethernet stm32 raspberry-pi capture usart gpio exti atmega meteo solar smd dma adc eeprom eb-500 flask python ssd1306 uart options flash mpx4115a html gps st-link 3d-printer servo dc-dc foc git books battery hih-4000 watchdog dht11 web tim programmator ssd1331 mpu-9250 usb rs-232 motor max1674 soldering
Архіви