Шаговые двигатели

Режимы работы синхронного шагового двигателя

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

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

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

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

Основными характеристиками шагового двигателя являются: шаг, предельная механическая характеристика и приемистость.

Предельная механическая характеристика — это зависимость максимального синхронизирующего момента от частоты управляющих импульсов.

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

Приемлемость падает с увеличением нагрузки.

В. П. Колодийчик.

Реактивные шаговые двигатели

У активных шаговых двигателей есть один существенный недостаток: у них крупный шаг, который может достигать десятков градусов.

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

Отличительной особенностью реактивного редукторного двигателя является расположение зубцов на полюсах статора.

При большом числе зубцов ротора Zр его угол поворота значительно меньше угла поворота поля статора.

Величина углового шага редукторного реактивного шагового двигателя определится выражением:

αш=360/КтZр

В выражении для KT величину n2 следует брать равной 1, т.к. изменение направления поля не влияет на положение ротора.

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

Основным недостатком шагового реактивного двигателя является отсутствие синхронизирующего момента при обесточенных обмотках статора.

Повышение степени редукции шаговых двигателей, как активного типа, так и реактивного, можно достичь применением двух, трех и многопакетных конструкций. Зубцы статора каждого пакета сдвинуты относительно друг друга на часть зубцового деления. Если число пакетов два, то этот сдвиг равен 1/2 зубцового деления, если три, то — 1/3, и т.д. В то же время роторы-звездочки каждого из пакетов не имеют пространственного сдвига, т.е. оси их полюсов полностью совпадают. Такая конструкция сложнее в изготовлении и дороже однопакетной, и, кроме того, требует сложного коммутатора.

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

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

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

Характеристики

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

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

L298 + DC двигатели + Raspberry Pi

Для данного эксперимента к модулю на L298 были подключены два двигателя постоянного тока. Питание всего модуля осуществляется от одного аккумулятора на 6В. Поскольку это напряжение меньше 12В (смотрим выше описание) то перемычку внутреннего стабилизатора оставляем установленной и дополнительное питание +5В для логики не потребуется.

Перемычки «ENA» и «ENB», которые разрешают подачу питания на выходные мосты, оставлены установленными. Таким образом, для управления каждым из двигателей используем оставшиеся четыре входа: IN1, IN2, IN3, IN4.

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

Где взять +5В? — в данном случае это напряжение присутствует на разъеме питания, справа возле GND. Для теста можно воспользоваться кусочком проволоки — перемычкой.

Теперь подключим наш модуль к Raspberry Pi и напишем простую тестовую программу на Python. Для подключения модуля я использовал вот в таком соответствии:

Raspberry Pi GPIO Модуль L298
Вывод 7 (GPIO4) IN1
Вывод 9 (GND) GND (разъем питания)
Вывод 11 (GPIO17) IN2
Вывод 13 (GPIO27) IN3
Вывод 15 (GPIO22) IN4

Рис. 7. L298 + Raspberry Pi + электродвигатели постоянного тока.

Мини-компьютер у меня питается через понижающий импульсный стабилизатор от второго аккумулятора на 6В. Перейдем к написанию программы для нашего эксперимента, наша цель — управлять вращением вала каждого из двигателей при помощи клавиатуры, которая подключена к Raspberry Pi или же удаленно по SSH, VNC.

Теперь испробуем простую программу, написанную на Python, которая поможет понять принцип управления электродвигателем постоянного тока.

Загружаем малинку, открываем Терминал или же подключаемся к ней удаленно при помощи SSH. Создаем новый файл и открываем его для редактирования при помощи команды:

Вставляем в редактор код скрипта на Python, который приведен ниже:

Выходим из редактора и сохраняем файл. Делаем скрипт исполняемым и запускаем его:

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

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

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

Запустив скрипт можно понажимать стрелочки клавиатуры «влево» и «вправо», а также клавиши с буквами «A» и «D» — двигатели должны вращаться поочередно и в разные стороны, а программа будет отображать их текущий режим работы.

Рис. 8. Программа на Python для управления двигателями при помощи драйвера L298 (терминал Konsole, KDE).

Краткая видео-демонстрация работы данного эксперимента приведена ниже:

Хочу заметить, что управлять скоростью вращения вала электродвигателя постоянного тока можно с использованием широтно-импульсной модуляции (ШИМ, PWM), как использовать этот метод для GPIO вы можете узнать из подробной статьи, посвященной модулю «RPi.GPIO».

Управление шаговым двигателем на Ардуино

Рассмотрим управление шаговым мотором при помощи стандартной библиотеки stepper.h и с помощью более удобной и популярной библиотеки accelstepper.h, где реализовано намного больше дополнительных команд и функций. Схема подключения мотора при этом остается неизменной. Чуть дальше мы перечислили возможные команды, которые можно использовать в программе с этими библиотеками.

Скетч для шагового двигателя на Ардуино (Stepper.h)

#include <Stepper.h> // библиотека для шагового двигателя

// количество шагов на 1 оборот, измените значение для вашего мотора
const int stepsPerRevolution = 200;

// устанавливаем порты для подключения драйвера
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

void setup() {
  myStepper.setSpeed(60); // устанавливаем скорость 60 об/мин
}

void loop() {
  // поворачиваем ротор по часовой стрелке
  myStepper.step(stepsPerRevolution);
  delay(500);

  // поворачиваем ротор против часовой стрелки
  myStepper.step(-stepsPerRevolution);
  delay(500);
}

Пояснения к коду:

  1. вместо портов 8,9,10,11 можно использовать любые цифровые порты;
  2. библиотека Stepper.h имеет маленький функционал, поэтому подходит только для тестирования шагового двигателя и проверки подключения драйвера.

Скетч для шагового мотора с библиотекой AccelStepper.h

#include <AccelStepper.h> // библиотека для шагового двигателя

Пояснения к коду:

  1. библиотеку AccelStepper.h можно использовать при подключении шагового двигателя к Motor Shield L293D совместно с библиотекой AFMotor.h;
  2. в программе можно задавать не только максимальную скорость, но и ускорение и замедление вала шагового двигателя.

Описание команд библиотеки AccelStepper.h

// Шаговый двигатель, управляемый платой// Шаговый двигатель, управляемый Н-мостом// Униполярный двигатель// Установка скорости оборотов в минуту// Установка скорости в шагах за секунду// Установка ускорения

// Возвращает текущее положение в шагахОбнуляет текущую позицию до нуля// Конечное положение в шагах// Вернуть расстояние до указанного положения// Переместиться в абсолютно указанное положение// Переместиться в относительно указанное положение

// Начать движение с ускорением, функцию следует вызывать повторно// Начать движение до указанной точки// Начать движение с ускорением до заданной позиции// Максимально быстрая остановка (без замедления)// Начать движение с заданной скоростью без плавного ускорения// Начать движение без плавного ускорения, до позиции

Эксперимент №1. L293D + ATtiny44

напряжения до 36В и выдавать до 1,2А на каждый канал2.56В амперметр показывает ток 150мА

  • Полношаговый однофазный это когда одновременно напряжение подаётся только на одну фазу двигателя, ротор делает шаг, затем текущая фаза выключается и включается следующая.
  • Полношаговый двухфазный это когда напряжение подаётся одновременно на две фазы мотора, при этом, ротор притягивается одновременно к двум обмоткам, что создаёт больший крутящий момент.
  • Микрошаговый режим в этом случае реализуется тот же принцип, что и на полношаговом двухфазном, то есть работают одновременно две обмотки, но напряжение (и как следствие ток) распределяется между ними неравномерно. Фактически, это означает, что мы можем поставить моторчик в неограниченное количество положений (на практике, разумеется, такого сделать нельзя). Увеличивается точность позиционирования.

Исходный код в среде WinAVR

Полношаговый режим. Одна фаза

Минимальная задержка между шагами 2мс, значит 500 шагов/секунду. Неплохо, это 31 об/сек = 1850 об/мин.

Полношаговый режим. Две фазы

Что с максимальной частотой шагов? 500 шагов/секунду; 31 об/сек = 1875 об/мин.

Что такое H-мост

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

Почему такое название? — потому что схема включения двигателя и переключателей для коммутации напоминает латинскую букву H. Принципы работы H-моста показан нарисунке ниже.

Рис. 1. Как работает H-мост, принцип коммутации двигателя для вращения в разные стороны.

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

Важно заметить что НЕЛЬЗЯ допускать замыкания двух ключей на одной стороне H-моста, поскольку получится короткое замыкание, при проектировании схемы моста нужно заложить это правило в логику и таким образом реализовать защиту

Описание программируемого контроллера шаговых двигателей SMSD‑1.5

Программируемый контроллер шаговых двигателей SMSD‑1.5 предназначен для управления четырехфазными
и двухфазными
гибридными шаговыми двигателями с током фазы до 1,6А. Контроллер может работать в режиме целого шага или
осуществлять
дробление на 1/2, 1/4, 1/8, 1/16 шага.

Блок SMSD‑1.5 может задавать направление, скорость, ускорение движения, а также работать по
сложным алгоритмам
(исполнительной программе), записываемым в энергонезависимую память. SMSD-1.5 может работать автономно,
от компьютера (
USB-порт) или от внешнего задающего контроллера. Контроллер может работать с программами SMC_Program,
StepMotor_LPT и
большинством CNC-программ. Устройство имеет возможность получать сигналы от внешних устройств и
датчиков, а также
подавать сигналы внешним устройствам. Предусмотрена функция поиска нулевой точки.

SMSD‑1.5 может управляться логическими сигналами «Направление», «Шаг» и «Разрешение», посредством
передачи
исполнительных символьных команд через USB-порт, либо работать в автономном режиме.

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

Функции и возможности устройства:

  • Управление шаговыми двигателями по программе, хранящейся в устройстве;
  • Запись, изменение или считывание управляющей программы в/из внутреннего энергонезависимого ПЗУ;
  • Автономная работа без участия ПК или внешнего контроллера;
  • Управление от компьютера через USB-порт ( виртуальный COM-порт);
  • Получение сигналов и управление шаговыми двигателями посредством логических сигналов «Шаг»,
    «Направление» и
    «Разрешение»;
  • Получение ASCII команд от ПК и управление шаговым двигателем по сложному алгоритму;
  • Возможность работы в ручном режиме;
  • Автоматический останов шагового двигателя при поступлении сигнала от аварийного датчика;
  • Автоматическое переключение направления вращения двигателя при поступлении сигнала от датчика
    реверса;
  • Два дополнительных входа для приема сигналов от внешних устройств (датчиков);
  • Один дополнительный вход — для поиска начального положения;
  • Один дополнительный выход для подачи сигналов внешним устройствам;
  • Возможность синхронизации работы нескольких блоков SMSD.

Мостовые драйверы

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

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

В это же время я наткнулся на два варианта мостовых драйверов:

  • HIP4086
  • IR2101

Что касается HIP4086, то это полноценный мостовой драйвер, предназначенный для трёхфазного электродвигателя. Мне он показался несколько замороченным, и мои попытки использовать его в контроллере не увенчались успехом: он у меня так и не заработал. Углублённо разбираться в причинах не стал.

А взял я IR2101 — полумостовой драйвер, обеспечивающий работу нижнего и верхнего ключей для одной фазы. Несложно догадаться, что таких драйверов нужно три. К слову, драйвер очень прост в использовании, его подключение происходит безболезненно и легко. Получилась такая схема:

Печатная плата

И готовый результат

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

Оцените статью:
Оставить комментарий