- Схема регулятора скорости бесколлекторного двигателя (ESC)
- Схема регулятора
- Питание
- ШИМ и сигналы для ключей
- Обратная связь (контроль напряжения фаз двигателя)
- Датчики Холла
- Измерения аналоговых сигналов
- Задающие сигналы
- UART интерфейс
- Прочее
- Силовая часть
- Возможности прошивки
- Работа регулятора
- Включение
- Запуск
- Настройка регулятора
- «Бесколлекторные двигатели» ЛикБез и проектирование
Схема регулятора скорости бесколлекторного двигателя (ESC)
Схема условно разделена на две части: левая — микроконтроллер с логикой, правая — силовая часть. Силовую часть можно модифицировать для работы с двигателями другой мощности или с другим питающим напряжением.
Контроллер — ATMEGA168. Гурманы могут сказать, что хватило бы и ATMEGA88, а AT90PWM3 — это было бы «вааще по феншую». Первый регулятор я как раз делал «по феншую». Если у Вас есть возможность применять AT90PWM3 — это будет наиболее подходящий выбор. Но для моих задумок решительно не хватало 8 килобайт памяти. Поэтому я применил микроконтроллер ATMEGA168.
Эта схема задумывалась как испытательный стенд. На котором предполагалось создать универсальный настраиваемый регулятор для работы с различными «калибрами» бесколлекторных двигателей: как с датчиками, так и без датчиков положения. В этой статье я опишу схему и принцип работы прошивки регулятора для управления бесколлекторными двигателями с датчиками Холла и без датчиков.
Схема регулятора
Питание
ШИМ и сигналы для ключей
Обратная связь (контроль напряжения фаз двигателя)
Датчики Холла
Измерения аналоговых сигналов
На вход ADC3(PC3) поступает аналоговый сигнал от датчика тока. Датчик тока ACS756SA. Это датчик тока на основе эффекта Холла. Преимущество этого датчика в том, что он не использует шунт, а значит, имеет внутреннее сопротивление близкое к нулю, поэтому на нем не происходит тепловыделения. Кроме того, выход датчика аналоговый в пределах 5В, поэтому без каких-либо преобразований подается на вход АЦП микроконтроллера, что упрощает схему. Если потребуется датчик с большим диапазоном измерения тока, Вы просто заменяете существующий датчик новым, абсолютно не изменяя схему.
Если Вам хочется использовать шунт с последующей схемой усиления, согласования — пожалуйста.
Задающие сигналы
Кроме того, есть вход 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 В. При необходимости можно выполнить калибровку входного сигнала, что позволяет использовать раные диапазоны управляющих напряжений. По умолчанию настроен демпфер задающего сигнала. При резком скачке задающего сигнала обороты двигателя будут расти плавно. Демпфер имеет несимметричную характеристику. Сброс оборотов происходит без задержки. При необходимости демпфер можно настроить или вовсе отключить.
Запуск
При опрокидывании двигателя или механическом заклинивании ротора срабатывает защита, и регулятор пытается перезапустить двигатель.
Запуск двигателя с датчиками Холла также выполняется с применением настроек для старта двигателя. Т.е. если для запуска двигателя с датчиками дать полный газ, то регулятор подаст напряжение, которое указано в настройках для старта. И только после того, как двигатель начнет вращаться, будет подано полное напряжение. Это несколько нестандартно для двигателя с датчиками, поскольку такие двигатели в основном применяются как тяговые, а в данном случае достичь максимального крутящего момента на старте, возможно, будет сложно. Тем не менее, в данном регуляторе присутствует такая особенность, которая защищает двигатель и регулятор от выхода со строя при механическом заклинивании двигателя.
Во время работы регулятор выдает данные об оборотах двигателя, токе, напряжении батарей через порт 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
«Бесколлекторные двигатели» ЛикБез и проектирование
Принцип работы электрического двигателя:
В основу работы любой электрической машины положено явление электромагнитной индукции. Поэтому если в магнитное поле поместить рамку с током, то на неё подействует сила Ампера, которая создаст вращательный момент. Рамка начнет поворачиваться и остановится в положении отсутствия момента, создаваемого силой Ампера.
Устройство электрического двигателя:
Любой электрический двигатель состоит из неподвижной части — Статора и подвижной части — Ротора. Для того чтобы началось вращение, нужно по очереди менять направление тока. Эту функцию и выполняет Коллектор (щетки).
Бесколлекторный двигатель — это двигатель ПОСТОЯННОГО ТОКА без коллектора, в котором функции коллектора выполняет электроника. (Если у двигателя три провода, это не значит что он работает от трехфазного переменного тока! А работает он от «порций» коротких импульсов постоянного тока, и не хочу вас шокировать, но те же двигатели которые используются в кулерах, тоже бесколлекторные, хоть они и имеют всего два провода питания постоянного тока)
Устройство бесколлекторного двигателя:
Inrunner (произносится как «инраннер»). Двигатель имеет расположенные по внутренней поверхности корпуса обмотки, и вращающийся внутри магнитный ротор.
Outrunner (произносится как «аутраннер»). Двигатель имеет неподвижные обмотки (внутри) вокруг которых вращается корпус с помещенным на его внутреннюю стенку постоянными магнитами.
Принцип работы:
Для того чтобы бесколлекторный двигатель начал вращаться, напряжение на обмотки двигателя надо подавать синхронно. Синхронизация может быть организованна с использованием внешних датчиков (оптические или датчики холла), так и на основе противоЭДС (бездатчиковый), которая возникает в двигателе при его вращении.
Бездатчиковое управление:
Существуют бесколлекторные двигатели без каких либо датчиков положения. В таких двигателях определение положения ротора выполняется путем измерения ЭДС на свободной фазе. Мы помним, что в каждый момент времени к одной из фаз (А) подключен «+» к другой (В) «-» питания, одна из фаз остается свободной. Вращаясь, двигатель наводит ЭДС (т.е. в следствии закона электромагнитной индукции в катушке образуется индукционный ток) в свободной обмотке. По мере вращения напряжение на свободной фазе (С) изменяется. Измеряя напряжение на свободной фазе, можно определить момент переключения к следующему положению ротора.
Что бы измерить это напряжение изпользуется метод «виртуальной точки». Суть заключается в том, что, зная сопротивление всех обмоток и начальное напряжение, можно виртуально «переложить провод» в место соединения всех обмоток:
Регулятор скорости бесколлекторного двигателя:
Бесколлекторный двигатель без электроники — просто железка, т.к. при отсутствии регулятора, мы не можем просто подключить напряжение на него, чтоб он просто начал нормальное вращение. Регулятор скорости — это довольно сложная система радиокомпонентов, т.к. она должна:
1) Определять начальное положение ротора для запуска электродвигателя
2) Управлять электродвигателем на низких скоростях
3) Разгонять электродвигатель до номинальной (заданной) скорости вращения
4) Поддерживать максимальный момент вращения
Принципиальная схема регулятора скорости (вентильная):
Бесколлекторные двигатели были придуманы на заре появления электричества, однако систему управления к ним никто не мог сделать. И только с развитием электроники: с появлением мощных полупроводниковых транзисторов и микроконтроллеров, бесколлекторные двигатели стали применятся в быту (первое промышленное использование в 60-х годах).
Достоинства и недостатки бесколлекторных двигателей:
Достоинства:
-Частота вращения изменяется в широком диапазоне
-Возможность использования во взрывоопасной и агрессивной среде
-Большая перегрузочная способность по моменту
-Высокие энергетические показатели (КПД более 90 %)
-Большой срок службы, высокая надёжность и повышенный ресурс работы за счёт отсутствия скользящих электрических контактов
Недостатки:
-Относительно сложная система управления двигателем
-Высокая стоимость двигателя, обусловленная использованием дорогостоящих материалов в конструкции ротора (магниты, подшипники, валы)
Разобравшись с теорией, перейдем к практике: спроектируем и сделаем двигатель для пилотажной модели МХ-2.
Список материалов и оборудования:
1) Проволока (взятая из старых трансформаторов)
2) Магниты (купленные в интернете)
3) Статор (барашек)
4) Вал
5) Подшипники
6) Дюралюминий
7) Термоусадка
8) Доспуп к неограниченному техническому хламу
9) Доступ к инструментам
10) Прямые руки 🙂
Ход работы:
1) С самого начала решаем:
Для чего делаем двигатель?
На что он должен быть рассчитан?
В чем мы ограничены?
В моем случае: я делаю двигатель для самолета, значит пускай он будет внешнего вращения; рассчитан он должен на то, что он должен выдать 1400 грамм тяги при трех-баночном аккумуляторе; ограничен я в весе и в размере. Однако с чего же начать? Ответ на этот вопрос прост: с самой трудной детали, т.е. с такой детали, которую легче просто найти, а все остальное подгонять под неё. Я так и поступил. После многих неудачных попыток сделать статор из листовой мягкой стали, мне стало понятно, что лучше найти её. Нашел я её в старой видеоголовке от видеорекоудора.
2) Обмотка трехфазного бесколлекторного двигателя выполняется изолированным медным проводом, от сечения которого зависит значение силы тока, а значит и мощность двигателя. Незабываем что, чем толще проволока, тем больше оборотов, но слабее крутящий момент. Подбор сечения:
1А — 0.05мм; 15А — 0.33мм; 40А — 0.7мм
3А — 0.11мм; 20А — 0.4мм; 50А — 0.8мм
10А — 0.25мм; 30А — 0.55мм; 60А — 0.95мм
3) Начинаем наматывать на полюса проволоку. Чем больше витков (13) намотано на зуб, тем большее магнитное поле. Чем сильнее поле, тем больший крутящий момент и меньшее количество оборотов. Для получения высоких оборотов, необходимо мотать меньшее количество витков. Но вместе с этим падает и крутящий момент. Для компенсации момента, обычно на мотор подают более высокое напряжение.
4) Дальше выбираем способ соединения обмотки: звездой или треугольником. Соединение звездой дает больший крутящий момент, но меньшее количество оборотов, чем соединение треугольником в 1.73 раз. (впоследствии было выбрано соединение треугольник)
5) Выбираем магниты. Количество полюсов на роторе должно быть четным (14). Форма применяемых магнитов обычно прямоугольная. Размер магнитов зависит от геометрии двигателя и характеристик мотора. Чем сильнее применяемые магниты, тем выше момент силы, развиваемый двигателем на валу. Также чем больше количество полюсов, тем больше момент, но меньше оборотов. Магниты на роторе закрепляются с помощью специального термоклея.
Испытания данного двигателя я проводил на созданной мной витномоторной установке, которая позволяет измерить тягу, мощность и обороты двигателя.
Чтобы увидеть отличия соединений «звезда» и «треугольник» я соединял по разному обмотки:
В итоге получился двигатель соответствующий характеристикам самолета, масса которого 1400 грамм.
Характеристики полученного двигателя:
Потребляемый ток: 34.1А
Ток холостого хода: 2.1А
Сопротивление обмоток: 0.02 Ом
Количество полюсов: 14
Обороты: 8400 об/мин
Видеоотчет испытания двигателя на самолете. Мягкой посадки 😀
Расчет КПД двигателя:
Очень хороший показатель. Хотя можно было еще выше добиться.
Выводы:
1) У бесколлекторных двигателей высокая эффективность и КПД
2) Бесколлекторные двигатели компактны
3) Бесколлекторные двигатели можно использовать во взрывоопасных средах
4) Соединение звездой дает больший крутящий момент, но меньшее количество оборотов в 1.73 раза, чем соединение треугольником.
Таким образом, изготовить собственный бесколлекторный мотор для пилотажной модели самолета- задача выполнимая
Если у вас есть вопросы или вам что-то не понятно, задавайте мне вопросы в комметариях этой статьи. Удачи всем)