roboforum.ru

Технический форум по робототехнике.

Управление вентильным(BLDC) двигателем с регенерацией

Re: Управление вентильным(BLDC) двигателем с регенерацией

boez » 21 апр 2011, 12:47

Ну раз есть датчики Холла - полюбому надо делать свою схему, при наличии датчиков во-первых упрощается алгоритм, во-вторых улучшается управляемость при малых скоростях - мотор сможет выдавать полный момент на нулевой скорости. Бездатчиковый (скажем, модельный) контроллер вряд ли это сможет.
Вообще то, что нужно сделать - это по схемотехнике стандартный контроллер китайского электровелосипеда, только с другой программой. Но закладываться на готовый китайский я бы не стал, не знаю как другие, а свой я разбирал - он выглядит довольно кустарно, драйвера полевиков на рассыпухе, верхние полевики p-канальные, дорожки чтобы как-то жили усилены оловом...

Надо делать свой. За основу можно взять схему open-bldc, она по сути классическая, n-канальные полевики, IR2101 как драйверы и аллегровские датчики тока на выходах. Судя по вот этому http://open-bldc.org/wiki/Circuit - это практически то, что нужно, надо только транзисторы заменить и схему немного переделать. Примененные там IRF3704 - это корпус D2-Pak, сопротивление 9 мОм, ток 77 А. Ищем такие же по току и сопротивлению, но на 75 вольт. На IRF по запросу в parametric search "n-канальные D2Pak VBRDSS=75V" выдало 13 результатов. Подходят из них десяток, ИРовцы рекомендуют IRFS3307Z/3207Z/3107, вроде подходят, вопрос в доставабельности. Единственное, чем они сильно отличаются - зарядом затвора, он на порядок больше. Но раз мы применяем IR2101 - они и не такое потянут, нужно просто пересчитать затворные резисторы и увеличить емкости на верхних плечах. Ну и при проектировании питания драйверов это учитывать.

Главный недостаток платы open-bldc - они сильно завязяли питание драйверов и нагрузки, у них оно общее и называется +12V. Нам надо получить до 45V, но драйверы таким питать уже нельзя. Значит надо все-таки переделывать. Я бы применил понижающий импульсный на 33063 с исходных 36-45 до 15 вольт, от 15 запитал IR2101, а с него уже простым линейным стабилизатором делать +5 и +3.3.

А, ну и раз уж такая пьянка и указанные транзисторы будет трудно купить - то можно и среди TO-220 корпусов поискать, все равно плату переделывать. Просто для д2паков переделки могут быть менее обширными.

Добавлено спустя 7 минут 57 секунд:
abuharsky писал(а):1) При вращении появляется ток, транзистор Т5 при этом открыт, ток идет вокруг и находится в обмотках двигателя
2) Когда Т5 закрыт, то ток высвобождается через обратно включенные диоды и заряжает аккумуляторную батарею

В этом случае нагрузка на генератор будет максимальна и весь генерируемый ток пойдет в батарею, как его регулировать?


А очень просто - 1) и 2) чередуются с достаточно большой частотой, это называется ШИМ - Широтно-Импульсная Модуляция. Частота постоянна, а вот процент времени, занимаемого состояниями 1 и 2 меняется. В состоянии 1 ток растет (за счет ЭДС мотора, она прикладывается к индуктивности мотора и вызывает рост тока по закону U=L*dI/dt), в состоянии 2 ток падает (U батареи выше, чем ЭДС мотора, напряжение на индуктивности меняет знак). Поэтому, меняя времена 1 и 2, можно рулить током в широких пределах, в том числе его знаком (в одну сторону будет генерация, в другую - обычный режим двигателя). Для этого и нужны датчики тока на фазах, чтобы иметь ОС по току.

Re: Управление вентильным(BLDC) двигателем с регенерацией

avr123.nm.ru » 21 апр 2011, 19:47

boez писал(а):Взять его да перепрограммировать?
Зачем ?

abuharsky писал(а):как его регулировать?
так как вам написали выше. читайте.

Re: Управление вентильным(BLDC) двигателем с регенерацией

linvinus » 07 май 2011, 20:03

добавлю свои пять копеек.
bldc изучаю больше года. попутно сопутствующую электронику, механику, фрезерование и т.д. (поэтому долго)
Моя задача собрать 3х колёсную телегу (два ведущих BLDC + редуктор от электро отвёрток).
На данный момент есть одно полностью собранное крыло (контроллер+ драйвер+мотор+датчики холла+редуктор + колесо)
Драйвер сделал на базе http://wladislaw-sl.narod.ru/BLMC-SL30A ... l-30a.html + добавил диоды
+ датчики холла + ардуино (спрятался от помидор) ШИМ на нижних транзисторах.
Двигатель "авиационный" (авиа модельный =) ) 300W 12 на 14, перемотал из треугольника в звезду.

Питаюсь пока от компьютерного БП максимальный ток который поднимал нагрузкой 5А.
Сорри за длинное вступление, теперь по теме,

>А очень просто - 1) и 2) чередуются с достаточно большой частотой, это называется ШИМ - Широтно-Импульсная Модуляция. ...

если считать что с железом особых проблем нет, то вот с программой есть.
Т.к. я писал программу с нуля наступил почти на все грабли :),
1 реализовать регенерацию + стабильность вращения для BLDC сложно, т.к. в отличие от обычного DC у нас не две стадии а 6ть, и чем быстрее вращается тем меньше времени думать, а ещё команды посылать нужно (хотя непонятно нужно ли это автору).
т.е. есть стадии когда между текущей и следующей нижний транзистор не переключается, и в идеале там шим не нужно трогать, в этой стадии и и при этом условии регенерация не возможна, т.к. ток периодически пойдёт через землю.
Таких стадий 3 шт, т.е. рекуперация (полноценная) возможна только половину времени/шим.
Хотя я сторонник идеи в программировании возможно всё, было бы желание.
Но если выбирать стабильность вращения или рекуперация то я бы выбрал первое т.к. нам ещё работу делать нужно.
Скорее лучше смотреть в сторону зарядки только во время торможения, т.е. когда двигатель сам не крутит.

Идея взять готовый и перепрограммировать тоже была, теоретически ничего не мешает, но это скорее возможно только после полноценной отладки аналогичной схемы на макете.

з.ы. если у кого есть вопросы по BLDC, пишите в личку, или тыркайте носом в тему, готов помочь решать вопросы.
главная идея моего проекта изучить возможность использования авиамодельных бесколлекторников в робототехнике.
плюсы:
коэффициент мощность/вес практически максимальный среди прочих.
доступность/цена, по сравнению с промышленными
минус один, сложно, особенно с нуля, но если вместе топать ;-) тропинку сделаем
всю свою работу я документировал, но пока не публиковал, вот можно оценить рабочий экземпляръ http://www.youtube.com/watch?v=4qpP-iVxQfM
Программа для atmega168 на GCC Си (не ардуино), в разработке (начиная с установки датчиков, и заканчивая программированием) использую только линукс.

Re: Управление вентильным(BLDC) двигателем с регенерацией

HarryStar » 28 май 2011, 20:58

boez писал(а):Хотя у модельных обычно еще один недостаток - низковольтные. Или бывают и высоковольтные, к примеру на 10S лития?

Конечно бывают. У них в маркировке буквы "HV" - "High Voltage".
Вот например http://hobbyking.com/hobbyking/store/uh_viewItem.asp?idProduct=9130
boez писал(а):Да, а датчики Холла (положения ротора) на моторе есть?

Большинство модельных моторов без датчиков. Контроллеры вычисляют положение на основе анализа наведенной ЭДС в обмотках, как я понял. Но есть модельные моторы и с датчиками. Они существенно дороже. Есть соотв. контроллеры со входом под датчики. А какой мотор у ТС я не знаю. Вроде он уже писал что есть.

Re: Управление вентильным(BLDC) двигателем с регенерацией

abuharsky » 16 июн 2011, 14:59

Если я правильно понимаю, то самым простым и надежным вариантом решения проблемы будет разделение модулей генерации и вращения мотора.
С вращением проблем нет, есть готовые схемы (zilog, openBLDC), есть рабочий китайский контроллер, думаю, не составит проблем подключить его к Arduino и управлять им.

Насчет работы в режиме генератора, я посмотрел схемы автомобильных генераторов по Вашим советам. Есть несколько вопросов.
1) мне нужна управляемая генераторная нагрузка, я поэкспериментировал немного, получается, что ее можно получить поставив регулятор тока на выходе генератора, чем больше потребляемый ток, тем больше нагрузка, но в этом случае будет сильно меняться напряжение, как быть?
2) есть разные схемы: с обмоткой самовозбуждения, с конденсаторным самовозбуждением и тп, какую лучше использовать?

Re: Управление вентильным(BLDC) двигателем с регенерацией

boez » 16 июн 2011, 16:00

abuharsky писал(а):Если я правильно понимаю, то самым простым и надежным вариантом решения проблемы будет разделение модулей генерации и вращения мотора.

ИМХО неоправданное усложнение. Для генерации нужен точно такой же ток, как для движения, только сдвинутый на 180 градусов. Выдать его может та же самая схема, не нужно никаких дополнительных деталей, вообще. И точно так же величиной этого тока определяется мощность генерации, как при движении величиной тока определяется вращательная мощность.

Автомобильный генератор - плохой пример, он в другом режиме работает, у него магнитный поток переменный и задается током в обмотке, поэтому с него можно просто диодами выпрямлять напряжение и заряжать аккум, регулируя обмоткой режим. А с постоянными магнитами такое не пройдет, напряжение будет зависеть от оборотов, и плюс оно у нас _всегда_ ниже напряжения на аккумуляторе, его повышать надо. А у автомобильного напряжение всегда немного выше напряжения на аккуме. поэтому и происходит заряд. В инверторном приводе в генераторном режиме процессы немного другие.

Re: Управление вентильным(BLDC) двигателем с регенерацией

abuharsky » 16 июн 2011, 16:10

что означает "Для генерации нужен точно такой же ток, как для движения, только сдвинутый на 180 градусов."?
То есть необходимо включить генераторный режим подав на мотор ток от батареи 1 раз?

Добавлено спустя 4 минуты 54 секунды:
У автомобильного напряжение не всегда выше, при малых оборотах - оно маленькое, но есть регулятор напряжения, который увеличивает напряжение путем уменьшения тока

Re: Управление вентильным(BLDC) двигателем с регенерацией

HarryStar » 16 июн 2011, 17:51

Насколько я знаю, напряжение на любых генераторах зависит от скорости вращения. Коллекторных или безколлектроных абсолютно не важно. Напряжение с безколлекторного 3х фазного двигателя так же выпрямляется 6-ю диодами и может использоваться для подзарядки аккумуляторов (если напряжение подходит). Если оно сильно больше(меньше), то соотв. нужно ставить преобразователь.

Re: Управление вентильным(BLDC) двигателем с регенерацией

boez » 17 июн 2011, 11:07

Не совсем понял - что значит "один раз". Ты планируешь работу без батареи? Хотя даже в этом случае у тебя все равно есть на инверторе емкость, если начать вращать мотор - конденсатор зарядится через обратные диоды инвертора и дальше можно начинать управление.

По сути, программа просто должна по состоянию датчиков Холла выбрать, какие фазы будут подключены к одному проводу питания, (назовем его A), а какие-к другому (B). Ну типа такой таблицы:
No сетора Входы холла Выходные фазы
0 001 AAB
1 011 ABB
2 010 ABA
3 110 BBA
4 100 BAA
5 101 BAB
x 000 ---
x 111 ---

А уже регулятор тока должен выбрать, в зависимости от требуемого тока (его величины и знака) - будет ли A=+, B=GND или наоборот, а также величину ШИМ, на какую часть цикла подключать фазы к + и -, а на какую - закорачивать. Кстати, знак тока и выбор полярности выхода - это разные вещи! С достаточной точностью можно рассматривать управление вот этими виртуальными выводами А и В как управление обычным коллекторным DC мотором. Просто коллектор у нас программный.

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

Re: Управление вентильным(BLDC) двигателем с регенерацией

abuharsky » 20 июн 2011, 12:30

Ну вроде более-менее понятно, спасибо за разъяснения.
Осталось как-то собрать экспериментальную модель и пробовать.

Добавлено спустя 11 минут 30 секунд:
Вопрос: как регулировать полученное с генератора напряжение в этом случае, ведь для заряда аккумулятора потребуется напряжение около 40В?

Добавлено спустя 1 минуту 51 секунду:
С ограничением выходного тока нет проблем - можно поставить пороговый ограничитель на транзисторах с возможностью регулирования, это и будет регулировать "генераторную нагрузку".

Re: Управление вентильным(BLDC) двигателем с регенерацией

boez » 20 июн 2011, 13:25

abuharsky писал(а):Вопрос: как регулировать полученное с генератора напряжение в этом случае, ведь для заряда аккумулятора потребуется напряжение около 40В?

С ограничением выходного тока нет проблем - можно поставить пороговый ограничитель на транзисторах с возможностью регулирования, это и будет регулировать "генераторную нагрузку".


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

И именно этим током будет определяться "генераторная нагрузка", она же вращающий момент. У двигателя ротор с постоянными магнитами. Эти магниты создают постоянный магнитный поток. А момент двигателя как раз равен произведению потока на ток статора. Вообще говоря там векторное произведение, но мы при помощи нашего виртуального коллектора держим угол между потоком и током в районе 90, так что можно просто множить модули. Вообщем все ровно так же, как в ДПТ.

А вот регулировать что-то за пределами инвертора - плохая идея. Инвертор задает фазные токи, этими токами определяется величина и направление потока энергии. Если что-то будет ограничивать поток энергии из инвертора в батарею в генераторном режиме - эта энергия будет тупо заряжать буферную емкость. Если есть защита Udmax - она сработает. Если нет - напряжение будет расти до взрыва ключей.

Re: Управление вентильным(BLDC) двигателем с регенерацией

abuharsky » 20 июн 2011, 13:39

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

Re: Управление вентильным(BLDC) двигателем с регенерацией

linvinus » 20 июн 2011, 13:59

Мне кажется нет смысла вести разговор без расчётов,
тут есть несколько проектов по рекуперации http://jnaudin.free.fr/html/qedynmnu.htm
от одного аккумулятора двигатель проработал 6ть дней http://jnaudin.free.fr/ossiemotor/indexen.htm
но двигатель работал в точно заданном режиме!

2 boez, abuharsky говорит о скачке напряжения которое появляется при отключении питания , тема сложная, без точных расчётов толку не будет.
при отключении питания ток в катушке стремится продолжить своё движение в том же направлении, если мы замыкаем его на батарею, ему нужно превысить напряжение батареи чтобы потечь через неё, это из теории. Но всё зависит от скорости вращения ротора, если скорость огромная то напряжение противо ЭДС будет превышать напряжение батареи, причём величина может быть колоссальной, проблема хорошо рассмотрена тут http://www.youtube.com/user/DadHav#p/u/2/nlO8UDsc-Fc

Re: Управление вентильным(BLDC) двигателем с регенерацией

abuharsky » 20 июн 2011, 14:14

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

1) Имеется вентильный мотор 500 Вт 36В. В качестве генератора он выдает напряжение, которое сильно зависит от оборотов и оно может варьироваться от 0В до 50В и даже больше, но в таких режимах он работать никогда не будет.
2) Если я правильно понимаю, то для зарядки батарей (в данном случае LiFePO4) требуется постоянное напряжение около 40В.

Как запустить мотор - более-менее понятно.
Как использовать мотор в гачестве генератора и при этом иметь возможность регулировать ток нагрузки - более-менее понятно.
Мне не понятно, как полученным током эффективно заряжать батареи и при этом не вывести их из строя.

Добавлено спустя 3 минуты 13 секунд:
linvinus писал(а):нужно превысить напряжение батареи чтобы потечь через неё, это из теории. Но всё зависит от скорости вращения ротора, если скорость огромная то напряжение противо ЭДС будет превышать напряжение батареи, причём величина может быть колоссальной



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

Re: Управление вентильным(BLDC) двигателем с регенерацией

linvinus » 20 июн 2011, 14:40

>Мне не понятно, как полученным током эффективно заряжать батареи и при этом не вывести их из строя.

Это многим непонятно :)

>2) Если я правильно понимаю, то для зарядки батарей (в данном случае LiFePO4) требуется постоянное напряжение около 40В.
да, и ещё более важен ток заряда!

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

Давайте разобьём задачу на два участка
1) напряжение от батареи приложено к мотору, он крутится
2) напряжение отключается, при этом катушка накопившая энергию, начинает разряжаться.

ШИМ-чередование этих двух режимов.
Задача ШИМ регулировать частоту вращения двигателя или поддержание заданного момента.

Рекуперация это повторное использование энергии которая накоплена катушкой.
Понятно что если шим всего 10% то тока будет накапливаться мало, и выловить его сложнее.
Поэтому рассмотрим третий режим.

3) шим 100% но катушки у нас всё равно переключаются, чтобы вращался двигатель.
Я рассматриваю именно этот режим, т.к. шим всё запутывает.
считаем что в этом режиме катушка успевает накопить максимальное количество энергии, и в момент очередного переключения катушек нам нужно быстро собрать эту энергию.
А вот как это сделать нужно рассчитывать, всё зависит от параметров двигателя и частоты.
Как видно в ролике, даже на малых оборотах огромное напряжение, оно возникает в следствии того что цепь разомкнута и ток стремится поднять напряжение на столько на сколько сможет чтобы преодолеть разрыв.
Например если в место разрыва замкнём на батарею, то
а) напряжение повысится до величины большей чем напряжение питания
б) ток потечёт со скоростью ограниченной внутренним сопротивлением батареи, что скорее всего будет больше чем батарея в состоянии выдержать.

и вот тут всё самое интересное начинается, как собрать энергию и плавно залить её обратно в батарею, при этом потратив на этот процесс меньше чем даст противо эдс?
Тут нужно точно знать сколько энергии выдаст двигатель, чтобы прикинуть как её переварить.
И нужно понимать когда нам это выгодно а когда лучше пустить её на обогрев.


ps
не стоит рассматривать мои слова как абсолютную истину, я описал ситуацию так как я её понимаю на данный момент.


Rambler\'s Top100 Mail.ru counter