- •Структура регулятора скорости бесколлекторного двигателя (esc)
- •Техническая реализация шим сигнал на 6 ключей
- •Напряжение от трех фаз, напряжение средней точки
- •Датчик тока и контроль напряжения питания
- •Сигнал, задающий обороты двигателя.
- •Дополнительные сигналы
- •Модуль силовых ключей
- •Модуль датчиков
- •В завершение
- •Питание
- •Обратная связь (контроль напряжения фаз двигателя)
- •Датчики Холла
- •Измерения аналоговых сигналов
- •Возможности прошивки
- •Работа регулятора Включение
- •Настройка регулятора
- •Назначение настроек:
Настройка регулятора
Для настройки регулятора его следует подключить к компьютеру с помощью USB-UART переходника. Скорость передачи по порту 9600.
Переход регулятора в режим настройки происходит при включении регулятора, когда задающий сигнал потенциометра больше нуля. Т.е. Для перевода регулятора в режим настройки следует повернуть ручку задающего потенциометра, после чего включить регулятор. В терминале появится приглашение в виде символа “>“. После чего можно вводить команды.
Регулятор воспринимает следующие команды (в разных версиях прошивки набор настроек и команд может отличаться):
h – вывод списка команд; ? – вывод настроек; c – калибровка задающего сигнала; d – сброс настроек к заводским настройкам.
команда “?” выводит в терминал список всех доступных настроек и их значение. Например:
motor.type=0
motor.magnets=12
motor.angle=7
motor.start.type=0
motor.start.time=10
pwm=32
pwm.start=15
pwm.min=10
voltage.limit=128
voltage.cutoff=120
current.limit=200
current.cutoff=250
system.sound=1
system.input=0
system.damper=10
system.deadtime=1
Изменить нужную настройку можно командой следующего формата:
<настройка>=<значение>
Например:
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
P.S. Данная схема получила дальнейшее развитие. Был добавлен внешний компаратор, который позволил избавиться от необходимости переключать аналоговую часть микроконтроллера из режима ADC в режим компаратора и обратно (в Atmega одновременно компаратор и ADC работать не могут). Что в свою очередь позволило несколько ускорить измерение аналоговых сигналов. Кроме того, внешний компаратор стал генерировать аварийный сигнал при превышении предельного значения тока. Что существенно увеличило защищенность регулятора в нештатных ситуациях. Вместе с тем осталась универсальность, позволяющая использовать широкий выбор драйверов, в том числе и специальных для 3-х фазных двигателей.
Примеры ESC:
