Comments 18
Супер статья. Помнится мы попили с этими двигателями кровушки. Тогда не было дешёвых китайских драйверов, а из документации только аппнота от TI.
Один вопрос: у вас управление получилось реализовать? Или этот так — выжимка теории из разных источников?
Один вопрос: у вас управление получилось реализовать? Или этот так — выжимка теории из разных источников?
-1
Да, получилось, воплотил это в железе и в данный момент настраиваю двигатели в качестве привода робота
0
Он точно не в шаговом режиме работают? На максимальую скорость запускали?
Кстати, видео и куски кода можно было бы добавить в статью, она была бы полнее.
Кстати, видео и куски кода можно было бы добавить в статью, она была бы полнее.
0
Не в шаговом, запускал — кажется все четко, с нагрузкой тоже справляется как положено двигателю. Схема и код, возможно еще будут, после более подробного исследования:) Если двигатель нагружать до полной остановки, то бывало что чтобы он обратно раскрутился надо его слегка подтолкнуть, анализируется же переход фазы, но думаю это дело программно, еще предстоит отладить.
0
При потере чёткого фронта BEMF он должен переходить в шаговый режим, собственно как и при старте, иначе будет постоянно глохнуть — для робота это особенно критично.
0
Спасибо большое за статью. Давно искал эту информацию)) Как думаете много можно сэкономить собирая драйвер бесколлеторного двигателя самому? Готовый с Китая на 30А стоит от 300 рублей
+1
Хорошее место у гитары)
0
Ощутил дежавю, вспоминая свою статью Векторное управление электродвигателем «на пальцах» :)
Есть некоторое замечания:
На самом деле нужно переключать раньше. Гораздо раньше. Когда вектора магнитного поля ротора и статора сонаправлены — момент двигателя уже равен нулю. При таком управлении вы будете работать не в максимуме момента, а на его остатках. Кроме того, нужно учитывать, что после включения фазы под напряжение ток будет нарастать там не мгновенно, а значит на большой частоте вращения включать нужно ещё раньше. Нужно стремиться держать в среднем 90 градусов между потоком ротора и статора (током статора). Тогда двигатель будет работать в оптимуме.
Кроме того, как заметили в комментариях выше, вы ничего не описали про запуск бездатчиковой системы и работу на низких частотах вращения, где ЭДС машины мала. Очень странно, как вы применили бездатчиковый способ управления для колес робота — это же электротяга, а там нужно уметь, в том числе, развивать максимальный момент уже на нулевой частоте вращения. Иначе в горку робот стартовать не сможет. Для тяги лучше бы датчики Холла оставить, как делают в автомоделях.
Кроме того, вы начали рассказ с синхронной машины с синусоидальной ЭДС, а управляете на самом деле BLDC машиной с трапециидальной ЭДС. Хотя для выбранного способа управления разницы нет, но стоило бы немного этот момент раскрыть.
Есть некоторое замечания:
Для вращения двигателя необходимо чтобы магнитное поле статора опережало магнитное поле ротора, положение, когда вектор магнитного поля ротора сонаправлен с вектором магнитного поля статора является конечным для данной коммутации, именно в этот момент должно происходить переключение на следующую комбинацию, чтобы не давать ротору зависать в стационарном положении.
На самом деле нужно переключать раньше. Гораздо раньше. Когда вектора магнитного поля ротора и статора сонаправлены — момент двигателя уже равен нулю. При таком управлении вы будете работать не в максимуме момента, а на его остатках. Кроме того, нужно учитывать, что после включения фазы под напряжение ток будет нарастать там не мгновенно, а значит на большой частоте вращения включать нужно ещё раньше. Нужно стремиться держать в среднем 90 градусов между потоком ротора и статора (током статора). Тогда двигатель будет работать в оптимуме.
Кроме того, как заметили в комментариях выше, вы ничего не описали про запуск бездатчиковой системы и работу на низких частотах вращения, где ЭДС машины мала. Очень странно, как вы применили бездатчиковый способ управления для колес робота — это же электротяга, а там нужно уметь, в том числе, развивать максимальный момент уже на нулевой частоте вращения. Иначе в горку робот стартовать не сможет. Для тяги лучше бы датчики Холла оставить, как делают в автомоделях.
Кроме того, вы начали рассказ с синхронной машины с синусоидальной ЭДС, а управляете на самом деле BLDC машиной с трапециидальной ЭДС. Хотя для выбранного способа управления разницы нет, но стоило бы немного этот момент раскрыть.
+2
Можете подробнее описать, как датчики помогут лучше развить максимальный момент при старте в сравнении с бездатчиковым методом?
-1
Бездатчиковый метод, определяющий положение ротора на основе ЭДС, неработоспособен в некотором диапазоне низких частот вращения, где ЭДС мала. Там все простейшие бездатчиковые системы коммутируют фазы "вслепую", не зная положение ротора, и надеясь, что ротор будет следовать за коммутацией — шаговый режим работы, разомкнутый по положению. Так можно успешно запускать вентиляторы и пропеллеры авиамоделей, где на низкой частоте вращения момент нагрузки мал. Если нагрузка большая, инерционная — такая, как транспортное средство на уклоне — шаговый режим не подходит, момент будет дергаться туда-сюда, а машина не поедет, двигатель может выпасть из синхронизма. Если нужно уметь постоянно развить на нулевой частоте вращения максимальный момент, то нужно приложить вектор тока с нужной фазой относительно положения ротора. Тут и помогают датчики положения. Они дают сигнал на нулевой частоте вращения включительно, поэтому двигатель работает в оптимуме сразу, никакой шаговый режим запуска не нужен.
+1
Появились ли готовые драйверы безщеточного двигателя со счетчиком оборотов (долей оборотов)? Если да, то где можно почитать про двигатель с таким двигателем в связке с редуктором, который бы мог заменить шаговый двигатель в руке робота?
0
ИМХО, без внешнего датчика на валу такое невозможно в принципе — всегда будет накапливаться какая-то ошибка, сильно зависящая от нагрузки и скорости вращения — в статике и на малых оборотах обратная связь через ЭДС на обмотках просто не работает в принципе.
+1
Если с датчиком положения, то такой «драйвер» давно существует — это любой сервоусилитель (сервопривод). Можно задать по цифровому интерфейсу связи любое положение ротора в долях градуса в пределах точности датчика положения. Бездачиковые же варианты для околонулевой частоты вращения в теории тоже разрабатываются, основаны на использовании нелинейностей электродвигателя как датчика положения. Например, у синхронных двигателей с магнитами индуктивность вдоль оси с магнитами отличается от индуктивности вдоль оси, где нет магнитов (оси d, q). Подавая на двигатель тестовый высокочастотный сигнал (вместе с основным током) можно измерять индуктивности и определять положение осей d,q. Но как серийный продукт такое не годится, требует очень тонкой настройки и плохо работает при больших токах -железо насыщается, индуктивности меняются, наблюдатель положения ломается. Поэтому в руку робота — только с датчиком положения пока.
+1
А зачем заменять шаговый двигатель в руке робота? Шаговик это ведь такой же BLDC просто с более мелким разбиением по шагам.
0
По удельной мощности bldc — рекордсмены, а шаговые моторы — антирекордсмены. Да и не бывает шаговых моторов выше некоторой весьма небольшой мощности.
Поправьте, если ошибаюсь.
0
Шаговые двигатели это подмножество bldc, не совсем правильно их противопоставлять. Просто у него полюсов намного больше.
Ну да ладно, это занудство. Но алгоритм бездатчикового управления «обычными бесколлекторниками» на малых оборотах обычно примерно соответствует таковому у шаговиков. Также если вы знаете число переключения фазы и физическое устройство мотора, то вы можете посчитать и число оборотов.
Если передаточное число редуктора достаточо велико, то этого может быть достаточно для позиционирования.
А так, да, вы наверное, правы — массовые шаговики это моторы для настольных станков. Роботов чаще строят на сервах. Тут где-то была статья, как в бостон динамикс (кажется) проктировали специальные двигатели для роботов как раз.
Ну да ладно, это занудство. Но алгоритм бездатчикового управления «обычными бесколлекторниками» на малых оборотах обычно примерно соответствует таковому у шаговиков. Также если вы знаете число переключения фазы и физическое устройство мотора, то вы можете посчитать и число оборотов.
Если передаточное число редуктора достаточо велико, то этого может быть достаточно для позиционирования.
А так, да, вы наверное, правы — массовые шаговики это моторы для настольных станков. Роботов чаще строят на сервах. Тут где-то была статья, как в бостон динамикс (кажется) проктировали специальные двигатели для роботов как раз.
+1
Sign up to leave a comment.
Управление бесколлекторным двигателем по сигналам обратной ЭДС – понимание процесса