Как промышленный робот, я проводил большую часть своего времени, работая с роботами и машинами, которые использовали бесщеточные двигатели постоянного тока или линейные двигатели, поэтому у меня большой опыт настройки параметров ПИД для этих двигателей.
Теперь я перехожу к хобби-робототехнике с использованием шаговых двигателей (я строю свой первый RepRap ), мне интересно, что мне нужно делать по-другому.
Очевидно, что без обратной связи с энкодером мне нужно быть гораздо более консервативным в запросах к двигателю, следя за тем, чтобы я всегда оставался в пределах возможного, но как мне определить, является ли моя настройка оптимальной, субоптимальной или (в худшем случае) незначительно нестабильный?
Очевидно, что для данной нагрузки (в моем случае головки экструдера) мне нужно генерировать последовательности шаговых импульсов, которые вызывают требуемое ускорение и скорость, с которыми может справиться двигатель, без пропусков шагов.
Моя первая мысль - сделать несколько тестовых последовательностей, например:
- Домашний мотор именно по домашнему датчику.
- Переместить в нескольких шагах от дома медленно.
- Отодвиньте шагов от дома с консервативным профилем движения.
- Переместите шагов с тестом профиля ускорения / скорости.
- Переместите шагов назад к началу тестового хода с помощью консервативного профиля движения.
- Переместите шагов назад к дому с консервативным профилем движения.
- Медленно переместите назад к домашнему датчику, убедившись, что датчик сработал в правильном положении.
- Повторите для различных профилей , , ускорения / скорости и нагрузки.
Это должно надежно обнаруживать пропущенные шаги в движении тестового профиля, но, тем не менее, кажется, что пространство для тестирования достаточно большое, поэтому мне интересно, какие методы были разработаны для оптимизации параметров управления шаговым двигателем.