Два года спустя ... Я хотел бы добавить некоторые детали о типичной скорости против вибрации / шума для любого шагового двигателя.
При очень медленном шаге, например, один раз в секунду, вал будет перемещаться в новое место и перегоняться, а затем многократно падать, пока не стабилизируется на этом шаге. Процесс повторяют на каждом новом шаге.
Электрическое напряжение / ток должны быть достаточными для нагрузки, а размер двигателя должен быть выбран в соответствии с требуемым крутящим моментом.
Когда двигателю не нужно двигаться, напряжение / ток можно уменьшить примерно на 50-75%, чтобы сохранить это положение. В случаях, когда трение является доминирующим, или при использовании какого-либо типа шестерни, двигатель может быть полностью обесточен. Это похоже на реле, которым необходимо, например, 12 вольт для активации, но затем легко поддерживать активированный контакт только 9 вольт.
При увеличении скорости примерно до 20 в секунду вибрация / шум достигают максимума. Это скорость, которую большинство инженеров постарается избежать.
При увеличении скорости вибрация / шум также уменьшаются благодаря крутящему моменту. Если вы построите график зависимости шума от частоты, форма покажет четкое направление вниз с некоторыми локальными максимумами, часто на частоте гармоники.
Предположим, что при типичном значении выше 100 шагов в секунду вибрация достаточно низкая, чтобы быть допустимой, и допустим, что крутящий момент становится слишком слабым для надежной работы выше 500 Гц.
Вы можете сразу запустить шаговый двигатель, используя любую из этих частот, не увеличивая скорость от 100 Гц до 500 Гц. Точно так же вы можете резко останавливать шаги независимо от частоты. Ток удержания достаточен для блокировки двигателя на этом этапе.
Рампинг необходим, когда вы хотите превысить максимальную частоту. Учитывая приведенное выше «типичное» число, вы можете обнаружить, что ваш двигатель при плавном ускорении все еще имеет достаточный крутящий момент для работы от 500 Гц до 700 Гц. Хитрость для надежной работы состоит в том, чтобы запустить рампу где-то около 400 Гц, а затем увеличить ее до 700 Гц. Держите его на такой скорости, пока не достигнете целевой позиции.
Затем плавно снизьте скорость с 700 Гц до 450 Гц. Если заданное положение все еще не достигнуто, держите двигатель на этой скорости. Затем с 450 Гц вы можете остановиться. Держите двигатель под напряжением при максимальном токе / напряжении в течение от 0,1 секунды до 1 секунды, чтобы убедиться, что все источники вибрации рассеиваются.
Линейную рампу проще создать. Но оптимальной является форма "S". Вы начинаете с безопасной частоты, сначала медленно повышаетесь и меняете скорость увеличения скорости экспоненциально до достижения максимума.
Когда наступает время замедления, применяется тот же алгоритм, медленно уменьшая скорость и экспоненциально изменяя скорость снижения скорости, останавливая уменьшение скорости при достижении безопасной скорости, что позволяет резко остановить двигатель.
Фактический код, выполняющий все это с использованием микроконтроллера Motorola 68HC05, занимал около 500 байтов (внутренняя СППЗУ составляла всего 8 КБ, а объем оперативной памяти составлял 128 байтов). Это было написано на ассемблере.
Если у вас есть оборудование для микроперехода, тогда вы можете игнорировать все упоминания о шуме и вибрации. Вам все еще нужно ускорение в форме буквы «S», если вы хотите превысить обычную максимальную скорость. Но поскольку нет вибрации, независимо от скорости, вы можете позволить замедлению идти так низко, как захотите.
Уроки, извлеченные из движения прямоугольной волны, все еще сохраняются. То есть для наиболее эффективного способа достижения цели вы хотите, чтобы замедление находилось на частоте чуть ниже точки, где крутящий момент двигателя достаточен для резкого останова и запуска.