Как я могу оптимизировать параметры управления для шагового двигателя?

9

Как промышленный робот, я проводил большую часть своего времени, работая с роботами и машинами, которые использовали бесщеточные двигатели постоянного тока или линейные двигатели, поэтому у меня большой опыт настройки параметров ПИД для этих двигателей.

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

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

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

Моя первая мысль - сделать несколько тестовых последовательностей, например:

  • Домашний мотор именно по домашнему датчику.
  • Переместить в нескольких шагах от дома медленно.C
  • Отодвиньте шагов от дома с консервативным профилем движения.M
  • Переместите шагов с тестом профиля ускорения / скорости.N
  • Переместите шагов назад к началу тестового хода с помощью консервативного профиля движения.N
  • Переместите шагов назад к дому с консервативным профилем движения.M
  • Медленно переместите назад к домашнему датчику, убедившись, что датчик сработал в правильном положении.C
  • Повторите для различных профилей , , ускорения / скорости и нагрузки.NM

Это должно надежно обнаруживать пропущенные шаги в движении тестового профиля, но, тем не менее, кажется, что пространство для тестирования достаточно большое, поэтому мне интересно, какие методы были разработаны для оптимизации параметров управления шаговым двигателем.

Марк Бут
источник
В RepRap World диагноз - печать выглядит ужасно. Это обнаружение пропущенных шагов, насколько я знаю. Но я думаю, что ток, используемый степпером, мог бы использоваться в качестве обратной связи, если бы степпер мог сделать движение. Но не слышал, чтобы кто-то действительно делал это.
Ларс Пёттер
(Эти темы становятся популярными на этой неделе. Должно быть, из-за этой статьи с оружием.) Лучший / самый простой способ - это сделать тестовые распечатки, такие как Torture Test thingiverse.com/thing:33902

Ответы:

1

«Математический» способ сделать это - сгенерировать кривую скорость / крутящий момент для вашего шагового двигателя при заданном напряжении и определить максимальное усилие, которое будет применено к движущемуся объекту (в этом случае наибольшая сила, вероятно, будет ускорение).

Обратите внимание, что большинство 3d-принтеров для хобби настолько неубедительны, что из-за ускорения изгиб рамы ухудшит качество печати задолго до того, как вы пропустите шаги. В этом случае вы можете смоделировать прогиб рамы под нагрузкой.

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

Чрезмерно агрессивные скорости и ускорения должны быть видны (и слышны) на 3D-принтере задолго до остановки шаговых двигателей.

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

user65
источник