avatar_amaora

Открытый контроллер BLDC

Автор amaora, 11 Май 2019 в 02:30

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

amaora

Делаю уже несколько лет векторный контроллер BLDC. Исходная цель была в контроллере ВМГ для коптеров но сейчас появился интерес и к легкому электротранспорту. Плата получается компромиссной и подходящей под разные задачи.



Основные аппаратные параметры (REV5A):

  • Размеры: 82мм x 55 мм x 35мм;
  • Вес: 40 г (платы) или ~400 г (с проводами и радиатором);
  • Напряжение питания от 5в до 50в;
  • Фазный ток до 120А (IPT007N06N, 60в, ~0.75 мОм);
  • Частота ШИМ: от 20 кГц до 60 кГц;
  • Датчики на плате:
    - два шунта (0.5 мОм) с усилителями (диапазон +/- 165А, частоты до 250 кГц);
    - измерение напряжения питания (фильтр tau=25мкс, от 0 до 60в);
    - измерение напряжения на выходных терминалах (фильтр tau=25мкс, от 0 до 60в);
    - датчик температуры силовой платы NTC резистор 10к;
  • Интерфейсы к мотору:
    - дискретные датчики Холла;
    - инкрементальный энкодер;
    - абсолютный энкодер (по SPI);
    - внешний NTC резистор;
  • Интерфейсы управления:
    - CAN;
    - USART;
    - servo PWM;
    - STEP/DIR;
    - два аналоговых входа (от 0 до 6в);
    - дискретные входы;
  • Дополнительные интерфейсы: SPI, I2C, SWD, ADC/DAC, GPIO, FAN;
  • Питание (можно взять с платы):
    - 5в ~500мА;
    - 12в ~50мА;
    - 3.3в ~200мА;
  • Управляющий микроконтроллер: STM32F405RG;

Программные возможности:

  • Бездатчиковое векторное управление PMSM (BLDC) по измерениям фазных токов;
  • Сложная схема векторной ШИМ:
    - уменьшение потерь на переключении, полное использование напряжения питания;
    - отслеживание фронтов переключения для получения чистых измерений тока;
    - отслеживание разряда бутстрепной цепи;
    - дополнительный режим пониженной пульсации для сервопривода;
  • Бездатчиковый наблюдатель обеспечивает работу на низкой скорости (в зависимости от мотора до ~0.05в ЭДС);
  • Измерение напряжения на терминалах (TVM):
    - компенсация влияния Dead-Time на работу бездатчикового наблюдателя;
    - подхват уже вращающегося при включении контроллера двигателя;
    - самотестирование целостности силовой части;
    - самотестирование параметров бутстрепной цепи;
  • Ослабление поля (для повышения максимальной скорости за пределы напряжения питания) и MTPA;
  • Возможность работы с двухфазной машиной (например биполярный шаговый двигатель);
  • Поддержка разных плат контроллеров (в том числе клоны VESC);
  • Интерфейс командной строки для управления и настройки (автодополнение, история команд);
  • Графический интерфейс для управления и настройки;
  • Сохранение всех параметров во flash память микроконтроллера;
  • Автоматическое определение всех требуемых параметров мотора:
    - DC сопротивление (R) и AC импеданс (L1, L2, R) обмоток;
    - потокосцепление ротора (lambda или Kv);
    - механический момент инерции (Ja);
    - углы установки датчиков Холла;
    - параметры энкодера;
  • Сетевое взаимодействие (CAN):
    - до 30 узлов сети, все равноценны;
    - автоматическое назначение адресов (по запросу);
    - обновление прошивки по сети;
    - доступ к интерфейсу удалённого узла сети;
    - настраиваемые каналы передачи данных;
  • Варианты работы на нулевой скорости:
    - форсированное управление без обратной связи (подходит когда нет нагрузки на старте, для воздушного винта например);
    - свободное вращение;
    - инжекция ВЧ (HFI) по анизотропии индуктивности (работает не со всеми моторами);
    - датчики Холла;
    - инкрементальный энкодер;
    - абсолютный энкодер (AS5047);
  • Контуры управления:
    - контур тока работает всегда (в нем же реализованы основные ограничения);
    - контур скорости (реконструкция момента нагрузки с учётом момента инерции для быстрого отклика);
    - сервоконтур (управление положением);
  • Настраиваемые ограничения:
    - фазный ток, отдельно в прямую и обратную стороны, максимальный ток в режиме HFI, ток при перегреве;
    - батарейный ток (мощность), отдельно потребление и регенерация;
    - напряжение звена постоянного тока, максимальное и минимальное;
    - скорость и ускорение (есть отличия при управлении током или скоростью);
  • Измерение пройденного расстояния и потраченной энергии [Вт*ч], заряда [А*ч].

Планируемые и возможные доработки:

  • Улучшение документации и инструкций по использованию;
  • Дальнейшее развитие бездатчиковых методов;
  • Добавить зарядку аккумулятора через фазные провода (или общий режим boost);
  • Исследование возможности работы с другими типами двигателей, применение в других областях;
  • Начать новую ревизию платы с напряжением питания на уровне 120в;

Все исходники схема и pcb в mercurial репозитории. А так же на github.

Видео на youtube
Бездатчиковый векторный контроллер PMC

biv4

#1
Очень перспективная разработка!

Добавьте еще ссылку на блог http://we.easyelectronics.ru/my/amaora/




SkeptiK

#2
Низкий поклон, видео впечатляет! Но такой вопрос - вот Flipsky VESC уже есть. Цены в открытом доступе. Как планируете конкурировать?

biv4

VESC этому контроллеру не конкурент. Здесь более продвинутая математика, элементная база, топология. :wow:

SkeptiK

Потребителю интересны только свойства продукта, а не его составляющие.

i

Я потребитель схемотехники. Мне интересно какие микрухи применены и смогу ли я их приспособить для своих нужд. Так же мне интересны программные трюки и примеры использования либ.  :pardon:

SkeptiK

На вас одном бизнес не сделать. Даже на ста таких как вы.

Gychbbty

[user]amaora[/user], буду весьма признателен если вы загляните в мою тему, она на несколько пунктов выше, увеличение кол-ва мосфет... Суть собсно в чем, biv4 предложил довольно интересное, а самое главное практически готовое решение... Я конечно понимаю что ваш продвинутый контроллер довольно далек от управления столь деревянными вещами, но все же, ИМХО мысль довольно интересная, что вы думаете по этому поводу? Насколько я пронформирован данный сабж расчитан на 48s, это около 177 вольт, на данный момент я больше ничем не располагаю, не сочтите за грубость, но я человек далекий от софта, да и с мк в принципе не особо дружу, так что заранее простите за такие глупые вопросы, да конечно я понимаю что подружить это дело стоит коллосального труда в плане доводки алоритмов, но надеюсь на ваше трудолюбие)

amaora

Цитата: SkeptiK от 11 Май 2019 в 10:39Низкий поклон, видео впечатляет! Но такой вопрос - вот Flipsky VESC уже есть. Цены в открытом доступе. Как планируете конкурировать?
Открытый это значит каждый может взять все исходники и собирать этот контроллер или сделать модифицированный. У меня нет цели конкурировать, хотя слежу за другими проектами, интересно же. По ценам у меня похоже получается, но не планирую заниматься производством и продажей. Только разработка, и на данный момент лишь в интересных мне направлениях.
Бездатчиковый векторный контроллер PMC

amaora

Цитата: Gychbbty от 14 Май 2019 в 20:31
[user]amaora[/user], буду весьма признателен если вы загляните в мою тему, она на несколько пунктов выше, увеличение кол-ва мосфет... Суть собсно в чем, biv4 предложил довольно интересное, а самое главное практически готовое решение... ...
Хотите взять управляющую часть у меня и этот модуль? Я с высокими напряжениями и IGBT/SiC не работал, могут быть неожиданные проблемы. И сейчас приоритет на своем контролере, там много идей было реализовано но мало из них по хорошему протестировано. Лучше сначала все отладить на низких мощностях.
Бездатчиковый векторный контроллер PMC

edw123

Цитата: amaora от 14 Май 2019 в 20:46
Открытый это значит каждый может взять все исходники и собирать этот контроллер или сделать модифицированный. У меня нет цели конкурировать, хотя слежу за другими проектами, интересно же. По ценам у меня похоже получается, но не планирую заниматься производством и продажей. Только разработка, и на данный момент лишь в интересных мне направлениях.
Настройку параметров позволяет? каких?

amaora

Цитата: edw123 от 14 Май 2019 в 21:06Настройку параметров позволяет? каких?
Да позволяет, их много. Ограничения тока, мощности, скорости. Пороги срабатывания снижения тока/мощности по перегреву или переразряду. Режимы работы на низкой скорости. Преобразование управляющего сигнала в параметр, можно назначать управление фазным током или скоростью (или еще чем-то).
Бездатчиковый векторный контроллер PMC

amaora

Вот схема в pdf, если кому лень идти в репозиторий и смотреть через KiCad.

Бездатчиковый векторный контроллер PMC

amaora

Сейчас есть такая задача. Найти  удобный способ конфигирования управляющих входов в применении к электротранспорту. Вариантов много, и хочется охватить все. То есть можно настроить торможение и разгон с одной ручки поделив диапазон на две части. Можно торможение включать отдельной кнопкой, можно для плавности отдельной ручкой. Еще кнопка реверса, или же реверс с одной ручки? И вот как-то все хотелось бы соединить, чтобы все просто настраивалось. Но похоже это не реализуемо простым путем.
Бездатчиковый векторный контроллер PMC

edw123

Цитата: amaora от 14 Май 2019 в 21:45
И вот как-то все хотелось бы соединить, чтобы все просто настраивалось. Но похоже это не реализуемо простым путем.
"На ходу" можно параметры менять? Или только заранее? Беспроводную связь можно организовать? Логи можно писать?

amaora

Цитата: edw123 от 14 Май 2019 в 22:56"На ходу" можно параметры менять? Или только заранее? Беспроводную связь можно организовать? Логи можно писать?

На ходу все и меняется, если надо сохранить то пишется во флешь. Беспроводная связь через любой Bluetooth-USART преобразователь. Логи какие? Сейчас только критические ошибки пишутся в RAM, чтобы после рестарта можно было понять причину.
Бездатчиковый векторный контроллер PMC

Gychbbty

[user]amaora[/user], на сколько я понял вас не интересует доводка софта и железа для применения в мощных конфигах... Ну что ж, тогда буду с интересом наблюдать за вашим проектом, удачи!

amaora

Цитата: Gychbbty от 15 Май 2019 в 18:37на сколько я понял вас не интересует доводка софта и железа для применения в мощных конфигах... Ну что ж, тогда буду с интересом наблюдать за вашим проектом, удачи!
Да, на все сил не хватает.
Бездатчиковый векторный контроллер PMC