Site Loader

Алгоритм управления двухполюсным шаговым двигателем в микрошаговом режиме

В статье приведен простой алгоритм, предполагающий использование традиционных микроконтроллеров для управления серийно выпускаемыми мостами Н-типа. Такой алгоритм позволяет обеспечить работу двухполюсных шаговых двигателей в микрошаговом режиме. Статья представляет собой сокращенный перевод [1].

Двухполюсные шаговые двигатели предполагают простой способ позиционирования с выбранной скоростью перемещения и не требуют применения замкнутых контуров регулирования с использованием датчиков углового положения и других аналогичных средств. Для улучшения рабочих характеристик можно применить метод, известный как микрошаговое позиционирование, при котором на типовой сигнал, обеспечивающий работу в полношаговом режиме, накладывается синусоидальный ток.
Шаговые двигатели являются замечательными исполнительными устройствами для управления перемещением, поскольку они могут работать в пошаговом режиме. Эта особенность предоставляет два преимущества:

– требуемое положение легко достигается перемещением на расчетное число шагов с последующей остановкой;
– точность скорости перемещения достигается за счет управления шагами во времени.
Шаговый двигатель может останавливаться в заданном положении и удерживаться в этом состоянии независимо от изменений внешней нагрузки, и в то же самое время скорость вращения двигателя может поддерживаться равномерной даже при изменении напряжения источника питания. При использовании других типов двигателей без применения замкнутых контуров регулирования добиться таких результатов невозможно, в то время как для шаговых двигателей ничего подобного не требуется.
Однако шаговые двигатели имеют и свои недостатки, которые в некоторых случаях создают существенные проблемы. Одним из самых серьезных недостатков является резонанс или вибрации, возникающие при генерации последовательности шагов в моменты изменения знака угловой скорости. На рисунке 1 показано, что происходит с угловым положением двигателя в режиме полного шага для осуществления требуемого позиционирования.
Когда ротору необходимо переместиться на следующую позицию, расположенную на расстоянии 1,8° от его текущего положения, перед достижением заданной цели он неминуемо будет колебаться в определенных угловых пределах.

 

Рис. 1. Режим полного шага и колебания углового положения ротора в процессе установки. Резонансные явления наблюдаются, если шаги задаются в моменты времени, когда ротор находится слишком далеко от требуемого положения

В момент принятия решения о следующем шаге важным параметром является расстояние между целью и текущим положением. Расстояние, проходимое ротором, во многом зависит от его стартовой позиции, и от того насколько она удалена от цели. Данное расстояние определяет скорость вращения ротора, изменение которой может привести к вибрации двигателя и потере им крутящего момента. Очень легко проследить, когда появляются вибрации на каждом конкретном двигателе: нужно медленно ускорять двигатель для постепенного увеличения скорости.

При этом можно отметить зоны, в которых при изменении скорости вибрации либо увеличиваются, либо уменьшаются.
Как вибрация, так и потеря крутящего момента являются очень нежелательными явлениями. Поэтому при работе с шаговым двигателем важно их устранять. Один способ устранения этих недостатков заключается в ограничении тока до значений, позволяющих значительно снизить вибрации. К сожалению, если ток не модулировать динамически в соответствии с изменением нагрузки, система будет страдать от «выпадения» шагов, что является даже большей угрозой, поэтому всегда тяжело искать компромисс между точностью позиционирования и скоростью.
Более хорошим решением этой проблемы является ограничение вибраций за счет уменьшения расстояния, которое ротор должен преодолеть за один шаг. Двигатели характеризуются пошаговым разрешением. 200-ступенчатый шаговый двигатель за один шаг перемещается на 1,8°. Если удастся каким-либо способом разделить каждый шаг на несколько микрошагов, расстояние, проходимое ротором за один микрошаг, станет гораздо меньше 1,8°. Чем меньше шаг перемещения, тем меньше энергии потребуется для достижения заданного положения, а угроза возникновения вибраций станет минимальной.

Регулирование тока

Для формирования множества микрошагов, составляющих один полный шаг, необходимо иметь возможность регулирования тока. Большинство серийно выпускаемых интегрированных Н-мостов может решить эту задачу. Как показано на рисунке 2, регулировку тока в таком случае легко осуществить, измеряя ток, протекающий через чувствительный резистор RSENSE
Чувствительный резистор RSENSE стоит последовательно с обмоткой двигателя, поэтому измеряется реальный ток в обмотке. Падение напряжения на этом резисторе подается на усилитель с известным коэффициентом усиления. Напряжение необходимо усиливать для минимизации потерь, поскольку используемый резистор очень мал. После этого усиленное напряжение сравнивается с эталонным напряжением V

REF. Когда напряжение, пропорциональное току в обмотке, становится больше напряжения VREF, Н-мост отключается на заданное время. По истечении этого времени Н-мост снова подключается. Процесс отключения Н-моста, как только ток достигает заданного значения ITRIP, постоянно повторяется, что и обеспечивает регулирование тока.

 

Рис. 2. Чувствительный резистор RSENSE, стоящий последовательно с обмоткой двигателя, позволяет получить падение напряжения, прямо пропорциональное току в обмотке

Подача эталонного напряжения обеспечивается внешними цепями. При модуляции напряжения VREF происходит модуляция тока в обмотке. Таким образом удается получить разбиение шага на микрошаги. При изменении величины тока изменяется магнитное поле статора. Управляя током обмотки, можно регулировать напряженность магнитного поля статора, которое, в свою очередь, определяет положение ротора. Например, если на 200-ступенчатый шаговый двигатель подан полный ток, каждый шаг составляет 1,8°. Но если на тот же двигатель помимо полного тока подается еще и половина от полного тока, то каждый шаг будет равен 0,9°, т.

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

Управление двигателем в микрошаговом режиме

Двухполюсные шаговые двигатели часто работают в режиме полных шагов. Для этого управляют фазами токов в каждой из обмоток, реализуя одну из четырех возможных комбинаций, показанных на рисунке 3: HI-LO, HI-HI, LO-HI и LO-LO, где LO означает ток –IMAX, а HI соответствует +IMAX. Если соблюдать такую последовательность переключений, двигатель будет вращаться в одном направлении. Если перевернуть эту последовательность, двигатель будет вращаться в противоположном направлении.

Положение ротора контролируется количеством шагов, выполняемых относительно известной стартовой позиции. Для установки скорости перемещения требуется задавать интервал времени между шагами. Скорость в таком случае будет обратно пропорциональна этому времени и измеряться количеством шагов в секунду (SPS). Для генерации этих шагов применяют внутренний таймер, настроенный на вычисление временных интервалов. После чего для управления фазами в соответствии с направлением вращения может быть использована подпрограмма обслуживания прерываний (ISR). Например, если текущий шаг находится в квадратурной позиции HI-HI, можно использовать полярность коммутации LO-HI, чтобы переместить двигатель на один шаг вперед, или HI-LO, чтобы передвинуться назад.
При модуляции значения VREF, поданного в схему Н-моста, происходит наложение на коммутационный сигнал, формирующий полный шаг токового компонента, что и позволяет получить микрошаги. На рисунке 4 показан этот механизм. Отметим, что сигнал PHASE всегда имеет положительное значение. При этом, когда уровень сигнала PHASE равен HI, ток в обмотке двигателя положительный, а когда LO — ток считается отрицательным. Это означает, что цифровой сигнал PHASE (также называемый в некоторых Н-мостах Direction (направление)), задает направление тока, но не его величину. Величина тока определяется модуляцией V
REF
.

 

Рис. 3. Типовая последовательность переключений, используемая для коммутации двухполюсного шагового двигателя в режиме полных шагов

Рис. 4. Информация по VREF-модуляции накладывается на коммутационный сигнал, формирующий полный шаг. В результате на обмотки двухполюсного шагового двигателя поступает коммутационный сигнал, состоящий из микрошагов

В следующем примере на вывод VREF подается сигнал, соответствующий половине полной синусоидальной волны. В принципе, можно использовать любые непрерывные сигналы, главное, чтобы они обеспечивали плавное перемещение. Синусоидальные сигналы являются промышленным стандартом, необязательным для исполнения. Разработчики могут применять и другие формы сигналов, лишь бы это вело к хорошим результатам. Поэтому для формирования микрошагов часто используются микроконтроллеры или цифровые сигнальные процессоры (DSP).
В результате наложения VREF-сигнала на фазовый сигнал формируется переменный сигнал (в рассматриваемом случае синусоидальный), используемый для управления всеми обмотками шагового двигателя. Рассмотрим, как генерируется VREF-сигнал.
Для формирования VREF-сигнала можно использовать модуль ЦАП. Поскольку у двухполюсного шагового двигателя две обмотки, требуются два канала ЦАП. Вместо ЦАП для формирования вполне приемлемого программируемого аналогового напряжения можно использовать быстродействующий широтно-импульсный модулятор (PWM), на выходе которого стоит фильтр нижних частот. Амплитуда такого аналогового сигнала выбирается при помощи внутренней справочной таблицы, хранящей форму сигнала, определенную для каждого конкретного приложения. Каждый раз при подготовке шага из справочной таблицы выбирается соответствующее значение и пересылается в регистр ЦАП.
При формировании и использовании справочной таблицы нельзя забывать о нескольких важных моментах. Первый из них — глубина данной таблицы. Количество элементов таблицы всегда превышает число значений тока в два раза. Поэтому, если требуется разделить полный шаг на восемь частей (восемь микрошагов), необходимо формировать восемь значений тока, и, значит, таблица должна содержать 16 элементов. Такая таблица будет хранить информацию о вращении на 180°. Для следующих 180° используется та же самая таблица, но с противоположной полярностью. Таким образом, сначала таблица используется для положительных токов, а потом — для отрицательных.
На практике для управления любым двухполюсным шаговым двигателем требуются два сигнала со сдвигом фаз: PHASE A и PHASE B. В случае синусоидальных сигналов PHASE A и PHASE B являются синусоидами, смещенными относительно друг друга на 90°. Другими словами, если PHASE A является синусоидой, PHASE B будет косинусоидой. Поэтому нет необходимости использовать две таблицы, можно ипользовать одну и ту же таблицу дважды.
Если для формирования синусоидального сигнала PHASE A используется таблица на 16 элементов, то для получения косинусоидального сигнала PHASE В можно применить ту же таблицу, сместившись по ней на 8 элементов. Эту процедуру можно описать следующим псевдокодом:

#define TABLE_DEPTH 16
VREF_PHASEA = LOOKUPTABLE[INDEX]
VREF_PHASEB = LOOKUPTABLE[(INDEX + TABLE_DEPTH / 2) & (TABLE_DEPTH-1)]
Increase INDEX.

Отметим, что индекс PHASE В необходимо нормализовать в соответствии с размером таблицы. Если для PHASE A из таблицы выбирается значение элемента #15, для PHASE B надо использовать не элемент #23, поскольку он выходит за пределы таблицы, а элемент #7. Корректное нормализованное значение можно получить, применив логическую операцию «И» к индексу справочной таблицы и размеру таблицы, отняв от него 1. Такой элемент «И» часто называют INDEX_MASK.
Разобравшись с тем, как получить из справочной таблицы информацию о величине тока, будем разбираться с фазовой информацией. Требуется ответить на вопрос, надо ли ее также хранить в таблице. Если да, то будет ли размер такой таблицы в четыре раза больше числа значений тока на один шаг. В действительности, в создании новой таблицы нет необходимости, поскольку информацию о фазе сигнала PHASE можно получить из самой переменной INDEX.
Значение INDEX меняется в пределах 0… TABLE_DEPTH — 1. Но если позволить переменной INDEX меняться в пределах 0… 2×TABLE_DEPTH, старший значащий разряд результирующего числа можно использовать для определения полярности сигнала PHASE. Рассмотрим случай из микрошагов по 8°. В этом случае TABLE_DEPTH равно 16, но параметр INDEX будет меняться в диапазоне 0…31. Поскольку теперь требуется две маски: одна для фазовой информации (PHASE_MASK), а другая для извлечения данных из справочной таблицы (INDEX_MASK), необходимо изменить стратегию формирования индекса. Новый псевдокод будет выглядеть следующим образом:

#define  PHASE_MASK  0x10
PHASEA = INDEX & PHASE_MASK
PHASEB = (INDEX + TABLE_DEPTH / 2) & PHASE_MASK.

Отметим, что при получении фазы сигнала PHASE нет необходимости заботиться о преобразовании значения INDEX, поскольку за это несет ответственность старший значащий разряд. Другими словами, старший значащий разряд определяет фазу сигнала, а все более младшие разряды используются в качестве индекса справочной таблицы для извлечения информации о величине тока.

#define  TABLE_DEPTH 16
#define  INDEX_MASK TABLE_DEPTH — 1
VREF_PHASEA = LOOKUPTABLE[INDEX & INDEX_MASK]
VREF_PHASEB = LOOKUPTABLE[(INDEX + TABLE_DEPTH / 2) & (INDEX_MASK)]
INDEX = INDEX + IndexIncrement.

Здесь изменен способ увеличения индекса. Но иногда возникает потребность не увеличивать индекс, а уменьшать его. Например, когда есть необходимость извлечь из справочной таблицы информацию о направлении вращения. Другими словами, перемещение по таблице вперед соответствует вращению двигателя по часовой стрелке, а назад — против часовой стрелки.
Теперь рассмотрим технические средства реализации представленного кода для корректного использования справочной таблицы. Для формирования пошаговых команд используется аппаратно реализованный запуск ISR. Это может быть либо захват входа таймера, либо соответствующая конфигурация порта входов/выходов общего назначения (GPIO) для осуществления прерывания. Необходимо заранее определиться, как будет распознаваться пошаговая команда: по переднему, заднему или по обоим фронтам. Как только регистрируется такой переход, начинает выполняться код, определенный выше.
Вторая ISR отвечает за запросы о направлении вращения. И здесь может быть использована любая форма аппаратного входа, обеспечивающая прерывание по переходу, при этом такой вход должен реагировать как на передний, так и на задний фронт. При регистрации переднего фронта индекс увеличивается на +1. При регистрации заднего фронта индекс уменьшается на –1.
Из всего сказанного видно, что довольно просто превратить драйвер шагового двигателя в микрошаговый коммутатор, и при этом код программы для осуществления одного микрошага будет достаточно мал.

Простое решение проблемы

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

Литература

1. A simple algorithm for microstepping a bipolar stepper motor// http://www. eetimes.com .

servo — WEBER LABS

Система предназначена для приема и обработки информации с измерительных датчиков и управления биполярными шаговыми двигателями мощностью до 500 Вт с дроблением шага 1/1, 1/2,1/4,1/16.

Конфигурирование и управление системой осуществляется с PC через Ethernet или RS485 интерфейсы.

Система позволяет принимать и обрабатывать сигналы с абсолютных или инкрементных энкодеров, а также концевых датчиков.

Система состоит из платы Control Board и плат Motor Board, по одной на двигатель и поставляется в корпусе из алюминиевого сплава с фланцевым креплением размерами 170х120х55 мм.

 

Плата Control Board

Плата предназначена для сбора данных с сенсоров и связи с PC.

Плата построена с применением 32-разрадного ARM микроконтроллера с тактовой частотой 160 МГц и имеет 6 гальванически изолированных портов RS485 и 100Мбит Ethernet интерфейс.

 

 

Рис.1

 

 

 

Плата Motor Board

Плата предназначена для управления одним шаговым двигателем (ШД) с контролем перемещения по абсолютному энкодеру.

 

Рис.2

 

Устройство реализовано в виде платы на которой размещено и силовая и цифровая схемы, напряжение питания платы  +48В и ток при максимальной мощности подключенного двигателя до 10А.

 

Плата содержит следующие компоненты:

  1. DC-DC преобразователь преобразует входное напряжение +48В в +12В для питания энкодера и низковольтной части схемы. Имеется защита от переполюсовки.
  2. Силовой каскад на 8-ми MOSFET транзисторах с максимальным током 100А, для управления биполярным шаговым двигателем.
  3. Дампер, необходимый для защиты драйверов ШД и источников питания от обратной ЭДС создаваемой ШД при резких торможениях/ускорениях.
  4. Микросхему-драйвер, управляющую MOSFET транзисторами, реализующую алгоритм дробления шагов  1/1, ½, ¼, 1/16.
  5. 32-разрядный ARM микроконтроллер, реализующий алгоритм управления траекторией движения двигателя, разгоном и торможением двигателя, обработкой данных от энкодера, обработка данных пришедших от пользовательской программы.
  6. Три гальванически развязанных драйвера RS485. Вместо одного из них может устанавливаться гальванически развязанный драйвер CAN2.0. Входы и выходы всех драйверов защищены TVS диодами.

Функциональные возможности платы управления биполярным шаговым двигателем:

  1. Ввод и сохранение параметров разгона, торможения для каждой дробности шага, адреса платы и идентификатора.
  2. Программное управление движением двигателя. Разгон и торможение по заранее заданной характеристике. Движение на заданное количество шагов.
  3. Движение по энкодеру. Задается точка и плата рассчитывает траекторию движения подъезжает к этой точке, причем микроконтроллер сам принимает решение как ехать с постоянной скоростью или с разгоном и торможением.
  4. Отслеживание присутствия энкодера на связи и немедленная остановка, когда потеряна связь с энкодером.
  5. Ввод и сохранения во flash память микроконтроллера крайних точек движения  по энкодеру (псевдоконцевики).
  6. Вывод параметров траектории движения по энкодеру или без него в реальном времени.
  7. Запуск и отслеживания работы нескольких плат в реальном времени.

 

Программное обеспечение для управления шаговыми двигателями

 

Форма имеет две закладки “Настройка движения” и “Управление движением”.

 

Закладка “Настройки движения”.

 

Рис.3

  1. На закладке “Настройки движения” отображается информация:
  • версия внутреннего Firmware микроконтроллера
  • идентификатор платы  указывает на функциональное назначение платы
  • адрес устройства – это адрес платы, в данной реализации. Существует 3 адреса:
    1-й адрес – адрес платы, отвечающей за перемещение каретки с датчиками поперек стола,
    2-й адрес — это адрес “Ведущей платы”. Плата управляет движением первого продольного двигателя, принимает команды “старт движения”, “стоп движения”, а также выдает сигналы STEP, DIR для платы с адресом №3 которая управляет движением второго продольного двигателя.
  • набор параметров “Параметры для работы с энкодером”, устанавливают величину “нуль метки” и “максимальное значение”, в мм по энкодеру . Т.к. абсолютное значение энкодера идет на убывание от “нуль метки” к “максимальному значению” поэтому значение  “нуль метки” больше, чем значение “максимальное значение”. Значения записываются в мм. Эти два значения также являются концевиками контролирующими, чтобы портал не выехал за пределы рабочей зоны
  • Параметр “Ввод отступа от начала сканирования, мм” указывает с какого расстояния от “нуль метки” начинать проверку(расчет) “неплоскостности” стола. 
  • Самая большая группа параметров “Параметры движения” – это параметры задающие свойства движения. Микросхема драйвер шагового двигателя поддерживает четыре дробности шага 1/1, ½, ¼, 1/16. Чтобы уменьшить влияние резонансных частот на процесс разгона и торможения для каждой дробности шага индивидуально настраиваются  параметры. Ниже перечислены параметры и их описание.

 

  1. Ток разгона и торможения, А — ток который устанавливает и поддерживает драйвер внутри обмотки двигателя на время разгона двигателя до максимальной  скорости или на время торможение до конечной скорости торможения.
  2. Ток крейсерский, А — ток который устанавливает и поддерживает драйвер на время равномерного движения двигателя по прямолинейному участку.
  3. Коэф. наклона разгона – коэффициент определяющий угол наклона сигмоиды (функции которая реализует скорость изменения частоты вращения шагового двигателя). Коэффициент измеряется в тех же единицах, что и скорость вращения двигателя. Чем больше значение, тем более плавно будет изменяться скорость вращения двигателя.
  4. Аппроксимирующий отрезок разгона, шаг/сек.
    Минимальный шаг изменения скорости. Такими элементарными отрезками  выстраивается разгонная характеристика.
  5. Начальная скорость, шаг/сек.
    Частота импульсов подаваемая на шаговый двигатель при его старте.
  6. Конечная скорость, шаг/сек. Скорость вращения двигателя после окончания его разгона и перехода на отрезок движения с постоянной скоростью.
  7. Ток защиты, А.
    Схема постоянно отслеживает ток потребляемый драйвером управляющим шаговым двигателем, если ток превышает это значение, то шаговый двигатель отключается.
  8. Время повышения тока, сек.
    Время отсчитывается от момента старта, значение тока берется из ячейки “Ток разгона и торможения, А”. Перед началом торможения значение тока берется из ячейки  “Ток разгона и торможения, А”, время   отсчитывается с момента торможения.
  9. Коэф. наклона торможения – коэффициент определяющий угол наклона сигмоиды (функции которая реализует скорость изменения частоты вращения шагового двигателя). Коэффициент измеряется в тех же единицах, что и скорость вращения двигателя. Чем больше значение, тем более плавно будет изменяться скорость вращения двигателя.
  10. Аппроксимирующий отрезок торможения, шаг. Минимальный шаг изменения скорости. Такими элементарными отрезками  выстраивается разгонная характеристика. Такими элементарными отрезками  выстраивается разгонная характеристика.
  11. Конечная скорость, шаг/сек.
    Скорость вращения двигателя после окончания его торможения и перехода в режим остановки или с удержанием или без него.
  12. Количество шагов разгона, шаг.
    Количество шагов, которое требуется для того, чтобы разогнать шаговый двигатель с начальной скорости до максимальной без пропусков шагов.
  13. Количество шагов торможения, шаг.
    Количество шагов, которое требуется для того, чтобы затормозить шаговый двигатель с максимальной скорости до конечной без пропусков шагов.
  14. Общее количество шагов, шаг.
    Количество которое требуется, чтобы двигатель разогнать до максимальной скорости и затем затормозить без пропусков шагов.

 

 

Закладка “Управление движением”. На этой закладке три группы элементов отображения и управления.

 

 

 

Рис.4

 

 

  1. Первая группа “Состояние драйвера ШД”

Эта группа отображает информацию о состоянии двигателя: стоит или двигается в каком направлении и с какой дробностью шага. Какой ток потребляет двигатель при работе. Если двигатель стоит с удержанием, то показывает “Вкл. драйвера” Включен, если без удержания, то показывает “Вкл. драйвера” Выключен. Показывает произошло ли срабатывание концевиков.

 

  1. Вторая группа “Движение”.

Эта группа управляет движением двигателя.

 

  1. Подгруппа “Направление” устанавливает направление движения двигателя.

 

  1. Подгруппа “Концевики” устанавливает событие срабатывание концевиков по перепаду сигнала с “0” в “1” или c “1” в “0”.

 

  1. Подгруппа “Остановка” устанавливает состояние драйвера после остановки двигателя. Если установлен checkbox “С удержанием”, то после остановки двигателя ток в обмотки двигателя подается. Двигатель зафиксирован подаваемым током.  Если установлен checkbox “Без удержанием”, то после остановки двигателя обмотки двигателя обесточиваются.

 

  1. Подгруппа “Дробность шага” устанавливает дробление шага.
  2. Подгруппа “Кол-во шагов” в этой подгруппе есть два режима, переключение производиться нажатием checkbox на против соответствующего окна, движение по двигателю с подсчетом шагов (в окне задается количество шагов) или движение по энкодеру (в окне задается точка в мм расположенная между двумя концевиками) и первом и во втором случае перед стартом микроконтроллер рассчитывает траекторию и принимает решение. Если рассчитанное количество шагов больше, чем минимальное количество требуемое для разгона и торможения, то двигатель будет двигаться с разгоном до максимальной заданной скорости и торможение. При количестве шагов меньшем, чем минимальное количество требуемое для разгона и торможения шаговый двигатель будет двигаться с начальной скоростью всю траекторию.

 

  1. Третья группа это два слайдера “Движение мотора по энкодеру” и “Движение мотора по шагам”. Активность соответствующего слайдера определяется checkbox установленным в окне “Кол-во шагов”.

На слайдере “Движение мотора по энкодеру” показаны “Нуль метка” = 0мм и “Конечная метка” в мм в зависимости от длины траектории  двигателя (настраивается в закладке “Настройка движения” -> “Параметры для работы с энкодером”). Перемещающийся движок с изменяющимся над ним цифрами указываем положение двигателя относительно “Нуль метки” и “Конечной метки”. Вверху слева и вверху кнопки, соответственно “Уст “0”” и “Уст “MAX””, они используются для установки начального и максимального положения концевиков,   соответственно “Нуль метки”  и “Уст “MAX””. Слайдер “Движение мотора по шагам” Перемещающийся движок с изменяющимся над ним цифрами указываем количество шагов которое прошел двигатель с начала старта. Справа от слайдера при запуске движение двигателя появляется число указывающее количество шагов которое должен пройти двигатель.

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

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

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

Асинхронные двигатели переменного тока и двигатели постоянного тока используются для базовых операций включения/выключения и менее точных приложений с регулируемой скоростью, в то время как серводвигатели сочетают в себе высокую скорость, крутящий момент и точность положения/скорости/ускорения за счет положительной обратной связи — с соответственно высокой стоимостью и сложностью. Некоторым пользователям требуется лучшее управление движением, чем это возможно с асинхронными двигателями переменного тока или двигателями постоянного тока, но они ищут более экономичный вариант, чем сервоприводы.

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

Характеристики шагового двигателя

Шаговые двигатели названы так потому, что они управляются импульсами, полученными от привода, чтобы двигаться небольшими дискретными шагами, и они могут делать это быстро. Как правило, лучше всего они работают со скоростью ниже 1000 оборотов в минуту (об/мин), потому что крутящий момент быстро падает с увеличением скорости. Шаговые двигатели не обладают какой-либо перегрузочной способностью, поэтому одним из отраслевых правил является выбор шаговых двигателей и приводов таким образом, чтобы ожидаемая нагрузка использовала только 50% доступного крутящего момента, чтобы избежать потенциальных условий остановки.

Шаговые двигатели управляются последовательностью импульсов от контроллера. В полношаговом режиме обычно 200 шагов (или 1,8 градуса) на каждый оборот на 360 градусов, и каждый импульс перемещает двигатель на один шаг, но этот режим нетипичен, поскольку ему не хватает точности. Вместо этого пользователи обычно выбирают полушаг , четвертьшаг или другие режимы микрошага , которые работают со скоростью 400, 800 или до 50 000 шагов за оборот. Ключевым моментом является баланс между точностью и требуемой полосой пропускания управляющего сигнала.

Хотя шаговые двигатели считаются более дешевой альтернативой управлению движением по сравнению с серводвигателями, у шаговых двигателей есть и другие преимущества. Шаговые двигатели не имеют джиттера/дизеринга на нулевой скорости. Для приложений без постоянной нагрузки от силы тяжести или какой-либо другой силы некоторые шаговые приводы могут иметь опцию снижения тока холостого хода, которая экономит энергию и снижает нагрев двигателя, когда вал находится в состоянии покоя.

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

Первый шаг

Шаговый контроллер необходим для генерации определенной последовательности импульсов для выполнения движения. В свою очередь, шаговый контроллер подключается к приводу для отправки импульса соответствующего уровня мощности самому двигателю. Контроллер, привод и двигатель обычно являются отдельными компонентами, но в некоторых случаях две или три из этих функций могут быть объединены в одном корпусе.

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

Разработчики должны выбирать контроллеры и приводы с совместимыми импульсными характеристиками. Электрические сигналы могут быть с открытым коллектором, драйвером линии или двухтактным. Высокоскоростные импульсы кодируют как частоту, так и направление двигателя, используя один из трех методов:

  • Импульс/направление (наиболее распространенный метод)
  • По часовой стрелке (CW) / против часовой стрелки (CCW)
  • (иногда используется для отслеживания энкодера, потому что этот сигнал часто используется энкодерами)

Шаговая система может создавать движение, управляя двигателем относительно того, как далеко и как быстро он должен вращаться. Некоторые распространенные примеры профилей движения в порядке возрастания сложности:

  • Двигаться с фиксированной скоростью.
  • Пройдите несколько шагов и остановитесь.
  • Разгон с одной скорости до другой
  • Перемещение на несколько шагов из одного положения остановки в другое, сначала ускоряясь до целевой скорости, а затем замедляясь до нулевой скорости в целевом положении, известное как трапециевидное движение.
  • Ускорение с одной скорости на другую; известное как движение по S-образной кривой.
Трапециевидные перемещения используют постоянное ускорение для перевода двигателя с одной скорости на другую. S-образные перемещения плавно регулируют ускорение от одной скорости к другой. На этом графике показано изменение скорости (скорости) во времени, когда двигатель движется от нулевой скорости к другой скорости, поддерживает вторую скорость в течение некоторого времени, а затем замедляется обратно до нулевой скорости.

Возврат в исходное положение и проверка положения

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

Один из способов выполнить возврат в исходное положение — установить позиционный переключатель в известном месте оборудования. Чтобы узнать исходное положение, контроллер/привод перемещает двигатель в ожидаемое положение и устанавливает исходное положение после срабатывания позиционного переключателя. Проверка положения аналогична, но, как правило, это быстрая проверка, выполняемая во время нормальной работы.

Изучение вариантов

Шаговые двигатели могут быть выгодным выбором для многих приложений, и когда они подходят, они будут более дешевым вариантом, чем сервоприводы. Для приложений, где требуется точное одноосное или ограниченное многоосевое управление движением, шаговые двигатели, приводы и контроллеры (особенно ПЛК), используемые в сочетании с позиционными переключателями и/или энкодером, будут надежно управлять оборудованием примерно на 25 % по стоимости. серводвигательные системы.

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

Другие статьи об управлении движением читайте здесь!

управление шаговым двигателем · Темы GitHub · GitHub

Вот 79 публичных репозиториев соответствует этой теме…

простой фокус / Ардуино-ВОК

Звезда 1,5к

лаурб9 / ШаговыйДрайвер

Звезда 492

кой-прог / RP2040_ШИМ

Звезда 39

Филиппму / Марлин-Скумбрия

Звезда 34

герцог / stepper_motor_controller

Звезда 33

хорошая робототехника / Wi-Fiстеппер

Звезда 23

sq7bti / iAccelStepper

Звезда 15

mertwhocodes / mwc_stepper

Звезда 15

эльдендис / ДендоСтеппер

Звезда 14

AutoRoboКультура / arduino-jetson-нано-шаговый двигатель-интерфейс

Звезда 12

ftjuh / I2Cwrapper

Звезда 12

JulNadeauCA / FabBSD

Спонсор Звезда 9

кой-прог / AVR_PWM

Звезда 7

Ракшитбк / GRBL-H-мост

Звезда 7

Стивенкингстон / многоосевой шаговый двигатель

Звезда 7

кой-прог / ESP32_FastPWM

Звезда 6

кой-прог / СТМ32_ШИМ

Звезда 6

кой-прог / Портента_H7_PWM

Звезда 4

Яна-Мари / ВыдраСтепМини

Звезда 3

кой-прог / ATtiny_PWM

Звезда 3

Улучшить эту страницу

Добавьте описание, изображение и ссылки на шаговый двигатель-управление страницу темы, чтобы разработчикам было легче узнать о ней.

alexxlab

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *