Инструменты пользователя

Инструменты сайта


spм:stepmotors

Про шаговые моторы

Движение мотором с компенсацией люфта

На картинке представлено, как управлять мотором с компенсацией люфта при наезде на концевик.

A - Мотор, "находясь внутри детали", обычно имеет некоторый люфт. Чтобы люфт не сказывался на точности перемещения, необходимо приезжать в заданную координату так, чтобы мотор толкал деталь с одной и той-же стороны. (справа или слева)

"Мотор внутри детали" - это условно. Понятно, что вал мотора крутит некие рычаги/приводы, которые собственно и перемещают деталь. Все эти механические части привода дают суммарный люфт, которые иногда требуется компенсировать для перемещения с точностью в микрометры.

Б - Перемещаясь вправо или лево мотор может наехать на концевик

В - Наехав на концевик, мотор должен остановиться. Остановка может происходить не на самом концевике, особенно если движение происходит с плавным разгоном-торможением (по S-профилю / линейно / по экспоненте / по синусу).

Иногда требуется отъезжать от концевика на некоторое расстояние LimRemove, а не "стоять на концевике". Например, с датчиком Холла возможно намагничивание ответной части и концевик начнет срабатывать с более дальнего расстояния. Т.е. точность определения концевика снизится.

Г - Возвращаем мотор в обратную сторону, пока концевик не отключится.

Да - Если компенсация люфта не требуется, то отходим от концевика на LimRemove. Обработка концевика закончена.

Дб - Если перемещаемся с компенсацией люфта, то в зависимости от концевика и того, с которой стороны толкает деталь мотор

  1. отматываемся на LimRemove + BacklashSteps
  2. отматываемся на LimRemove. Обработка концевика закончена.

Е - В случае Дб1, возвращаемся на BacklashSteps, чтобы выбрать люфт и вернуть контакт мотора и детали с нужной стороны. Обработка концевика закончена.

В приведенном примере важно, чтобы:

  • Расстояние BacklashSteps было больше, чем реальный люфт в моторе.
  • Отмотка от концевика LimRemove была больше чем BacklashSteps.

Перемещение в заданную координату с компенсацией люфта

Т.е. при смене стороны контакта мотора с деталью, необходимо сделать на BacklashSteps шагов больше в заданном направлении, чтобы выбрать люфт и реально сдвинуть деталь на заданное расстояние. А затем сменить направление и выбрать люфт в обратную сторону. Перемещение BacklashSteps должно быть больше чем реальный люфт "мотора в детали".

spм/stepmotors.txt · Последнее изменение: 2023/04/21 13:46 — vasco