Перейти к содержанию
    

BLDC мотор. Неравномерное вращение по синусоиде.

5 минут назад, Alex_Malder сказал:

То есть получается, что производитель драйвера говорит пользователю: подавай на микросхему от 7 до 52в, но вот ТУТ должно быть на 10в больше! Что, померил мультиметром, и там 7в всего? Аааа.. вот сам теперь решай эту проблему =)
Так выходит?

....Вы что велосипед сами никогда не чинили? 

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

--------------

Вот пример "помпы" (удвоитель напряжения) -

scale_1200_1.jpg.81731bf1f17abf5311e5990737d4d2e3.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может дело в диодах?

Ну ладно, а если просто поднять напряжение питания до 20в, это поможет общему горю?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, Alex_Malder сказал:

но у меня нет задачи ускоряться под нагрузкой с максимальным моментом

То есть отрабатывать пульсации момента уже не нужно, и так сойдет? Ну и ладно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 минут назад, Alex_Malder сказал:

Ну ладно, а если просто поднять напряжение питания до 20в, это поможет общему горю?

...Не поможет... Если "помпа" не работает то верхние драйверы не будут работать...Поймите  ( на схему смотрите ) - когда верхний ключ ОТКРЫТ то на его ИСТОКЕ будет Vs (питание) , чтобы открыть верхний ключ на затворе должно быть Vs+10 Вольт...(напомню - напряжение открывания полевого транзистора затвор-исток должно быть 10-20 Вольт) .... При неиспраной помпе вехний ключ отрыть нечем...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ну плохо, я не знаю почему это может не работать. Кондеры точно по номиналу. Диоды я точно такие не нашел, но

Есть какой-то способ понять, что там не работает? Там всего два диода и кондеры.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 минуты назад, Alex_Malder сказал:

Есть какой-то способ понять, что там не работает? Там всего два диода и кондеры.

Если все заменить и оно не заработает, то микросхема драйвера неисправна. Можно верхние драйверы от отдельного БП  на 10-12 Вольт запитать, но вторичная обмотка должна быть изолированной. Минус БП подключить к +Vs, а +10 Вольт к Vboot.... Или внешнюю помпу собирать, но гарантий нет - что там в микросхеме не так - не известно...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ладно, пока что возьму тайм-аут, надо все разобрать и понять что не так..

Спасибо за совет, сам бы я точно не нашел эту хрень.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А может проблема заключаться в диодах? Судя по даташиту, необходимо использовать быстрые диоды 1n4148 (reverse recovery time - скорость переключения 4ns).

Я же поставил обычные выпрямительные 1n4007, а у них время переключения похоже 30микросекунд, то есть овер дофига.

В аппл. ноуте на L6234D написано, что переключение для накачки charge pump происходит на частоте 1.2MHz.....

Похоже, я присобачил не те диоды, да?

L6234 appl_note.pdf

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

14 часов назад, Alex_Malder сказал:

Кондеры

 

6 часов назад, Alex_Malder сказал:

Похоже, я присобачил

Вот до тех пор, пока Вы будете "присобачивать" и всякие "кондёры", так оно и работать будет...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Заменил диоды, опишу промежуточный результат. Vboot вырос до 12.4 (при Vs = 7.9в), т.е. процесс пошел..

Однако Vref на уровне 6в (при том, что на схеме он должен быть 10в).

Возможно, если поднять Vs хотя бы до 12в, Vref станет как раз 10в..

В любом случае, ток потребляемый мотором, вырос с 0.7А до 1.14, при этом драйвер существенно меньше греется, что на мой взгляд свидетельствует о более полном открытии ключей (я где-то читал, что при неполном открытии ключи больше греются).

А еще движение ротора стало визуально более равномерным.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Уже хорошо... Но, Vboot-Vs = 12,4V-7,9V=4,7V - размах импульсов в затворе на грани необходимого минимума... Но драйвер - живой - уже хорошо... Да, надо Vs повышать. 

Спасибо, что рассказали. Удачи.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Такс, публикую что-то навроде отчета о проделанной работе.

Взял другую батарею (3-баночную, напряжением около 12,5в), соответственно драйвер работает так, или почти так, как написано в даташите и апликейшн ноуте на L6234D.
Vs = 12.6в, Vboot = 20.4в, Vref = 4.6в, Vref = 9.25в

When it rises to 10V, D1 is reverse biased and the charge flows from C3 to C4 through D2, so the Vboot pin after a few cycles reaches the maximum voltage of Vs + 10V - VD1- VD2.

Судя по этой фразе из аплик. ноута Vboot должно быть равно в моем случае 12.6 + 9.25 - 0.6 - 0.6 = 20.65в, а у меня 20.4в. Ладно, с этим понятно. Работает.

Двигатель для экспериментов - gimbal motor, Turnigy 5208.

Дальше я попробовал изменять скважности ШИМ в соответствии с графиком значений, записанных в массив. Немного о массиве, что это:

Этот массив на 256 элементов содержит в себе дискретные значения от 1 до 255 включительно, выстроенные в виде какой-то зависимости (допустим по синусу).

Эти числа определяют заполнение периода ШИМ по каждой из трех фаз, причем для трех фаз берется три последовательных значения со смещением 120 электрических градусов. Т.е. если в массиве 256 элементов, то изначально ШИМ по фазам равны значениям из [0], [85], [171] элементов массива соответственно, затем (при вращении ручки энкодера, или в цикле с задержкой), берутся [1], [86], [172] значения, и так далее... Эти числа прописываются в регистры сравнения CCR1, 2, 3 таймера TIM1, а сам таймер работает в режиме PWM, осуществляя счет от 0 до 255, и затем снова до 0 (вверх и потом вниз - так реализуется режим phase correct pwm в STM32). Обновление регистров CCR происходит по окончанию счета очередного периода ШИМ (включена их буферизация).

Собственно, меня заинтересовало, как повлияет изменение управляющего сигнала (записанного в этот массив) на поведение ротора. Я провел 4 эксперимента, и могу сказать сразу, что равномерность хода ротора без нагрузки все равно меня НЕ УСТРАИВАЕТ! Несмотря на то, что вращение происходит ОТНОСИТЕЛЬНО ровно, все равно на каждом полюсе статора ротор движется то чуть медленнее, то чуть быстрее (это можно заметить на низкой скорости, если задать перебор значений массива в цикле). Понятно, что на высоких скоростях это вообще никак не заметно, но если говорить о медленном вращении (в моем случае это один оборот ротора за 9сек) эта неравномерность видна! При этом момент, возникающий на роторе, относительно постоянен (насколько это можно выяснить методом торможения его об палец), и каких-то особых рывков там нет. То есть он просто вращается, и делает это не особо равномерно, что под нагрузкой, что без нее. Да, теперь драйвер работает в штатном режиме, и неравномерности НЕ ТАКИЕ, как изначально были, но они все же есть, и я связываю их с самой конструкцией двигателя..

Теперь об экспериментах. На картинке изображено 4 варианта управляющего сигнала. Сразу отмечу, что нижняя красная линия на графиках - это значения CCR = 0. Верхняя - это CCR = 255. То есть STM32 формирует ШИМ-сигнал с заполнением, соответствующим числу из графика, и отправляет его на драйвер L6234D. Драйвер интерпретирует это так: если значение равно 256/2 = 128, то заполнение ШИМ соответствущей фазы = 50%, т.е. верхний ключ полумоста фазы открыт 50% времени, и затем нижний ключ полумоста открыт 50% времени (драйвер обеспечивает deadtime сам, чтобы не было КЗ). Т.е. на графиках можно мысленно провести горизонтальную линию посередине, это как бы нейтральное состояние полумоста (не знаю как объяснить понятнее).

И еще важный момент - все формы управляющих сигналов я сделал симметричными. Т.е. две фазы всегда уравновешивают третью.

Ну или если одна из фаз 50%, то две другие уравновешивают друг друга (кстати именно в этих точках происходит некоторое замедление вращения ротора).

1. Синус. Просто синус. Потребляемый ток на всей схеме 0,37А. Момент постоянен, насколько я могу судить.

2. Трапеция с полкой в 1/6 периода ШИМ. Потребляемый ток колеблется в зависимости от положения ротора в диапазоне 0,37 - 0,48А. Причем 0,48А схема потребляет именно там, где график сильно отличается от синуса (это все точки, начиная с нуля градусов, с шагом 1/6 периода ШИМ).

3. Трапеция с полкой в 1/3 периода ШИМ. Ток также колеблется в зависимости от положения ротора в диапазоне 0,48 - 0,64А. Конкретные точки не скажу, но видимо как в предыдущем варианте, все связано с разницей между синусом и трапецией..

4. Седловидный график. Получен сложением синуса (1-й эксперимент) с немного увеличенной амплитудой с пилой. Оба графика показаны на картинке, результат (который зеленого цвета) - это и есть управляющий массив данных. Методу я взял из книги "Моделирование в электроприводе" (автор Ю.Н. Калачев), стр. 62 (см. скрин). Потребление тока схемой 0,48А (постоянное), и в сравнении с чистым синусом (1-й эксперимент) возрос момент на роторе (ну ток возрос, логично что это отразилось на моменте).

Как-то интерпретировать все это мне трудно, могу только отметить, что синусоидальные управляющие сигналы (1-й и 4-й эксперименты) работают на стабильных токах - в отличие от трапециевидных сигналов (2-й и 3-й эксперименты), обеспечивая вроде как стабильный момент на роторе. При этом для ВСЕХ экспериментов вращение ротора без нагрузки происходит одинаково - ПОЧТИ равномерно. Вот это ПОЧТИ, к сожалению, я не знаю как исправить. Так то гимбал мотор обязан вращаться равномерно. Да, возможно это поправимо, если внести механизм обратной связи по положению, но это уже другая история.

ПЫСЫ: Проведя эти эксперименты, я пришел к мысли, что для моих целей наверное больше подойдет асинхронный двигатель с высокой управляющей частотой (поскольку там поле меняется с существенно более высокой скоростью, и нет необходимости отслеживать его положение по отношению к ротору, см. описание моей задачи выше в треде). А конкретнее, ЦЛАД - цилиндрический линейный асинхронный двигатель, навроде того, что показан вот в этом ролике https://www.youtube.com/watch?v=7zwsX68lCTM

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

 

06.jpg

07.jpg

ghgh.jpeg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо за большой отчёт. Про цифры - ничем не помогу..., но уверен - с ними сами разберётесь. Но пользы для опишу один мысленный эксперимент, который в своё время сильно помог в осмылении прицесса... Без него - ничего не срасталось в единую картину...

Представьте - Вы едете на электрическом велосипеде. Им движет мотор-колесо - то есть BLDC мотор в датчиками Холла, которые отслеживают положение ротора с магнитами. 

Далее - вы едете сначала по горизонтали, а за тем - начинаете ехать в гору, крутизна которой постепенно НАРАСТАЕТ. Важное условие - в процессе движения Вы не изменяете положение "ручки газа", то есть, заполнение ШИМ остаётся неизменным.

Вопрос - как при этом будет изменяться число оборотов мотор-колеса (BLDC мотора)? Ответ очевидный, но очень ВАЖНЫЙ - число оборотов будет уменьшаться по мере увеличения крутизны горы. Интересен момент времени перед самым прекращением вращения - число оборотов может стать меньше одного оборота в минуту... - то есть ротор до самого момента остановки будет пытаться сместиться в следующее (из шести) положение...Понятно, что когда моменты сил генерируемым мотором и момент сил противодействующих ему (от гравитации) сравняются - вращение прекраться. 

Зачем я об этом говорил? А вот зачем... Когда имеешь дело с двигателем BLDC с датчиками положения ротора, и полагаешь, что управляешь числом оборотов двигателя, и надо решить вопрос, а какую же частоту врашения ему задать..., надо всегда вспоминать приведённый выше пример - есть ситуации, когда вопросы про обороты двигателя решать вообще не надо... - BLDC с датчиками положения сам подскажет КОНТРОЛЛЕРУ с какой частотой ему вращаться при данной нагрузке... Представляете - он всё сделает сам, без сложных математических расчётов, и отдаст МАКСИМУМ из доступной в данный момент мощности. 

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

Изменено пользователем варп

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

А в асинхронных двигателях поле статора всегда находится во вращении, причем скорости там по сути могут быть любые, если речь не идет о банальных асинхронниках от 50Гц сети. Так что тут скорее вопрос эффективности самого двигателя.

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

В общем, надо сделать тестовый ЛАД, прогнать по нему синус на частоте 5-10кГц, и посмотреть как он будет работать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...