Шаг двигателя что это

Шаг двигателя что это

Часы работы: пн-пт с 9.00 до 18.00

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

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Доступны на складе в Москве: HGH15 ÷ HGH65, HGW15 ÷ HGW65. Рельсы HGR55 и HGR65 поставляются целиковые; EGH15 ÷ EGH25, рельсы поставляются целиковые.

Тип привода: ШВП, зубчатый ремень. Двигатель переменного тока: сервопривод или шаговый двигатель, мощность: 30Вт

750Вт. Тип крепления двигателя к переходному фланцу: прямое, снизу, слева, справа. Макс ход: 3000 мм (ременный привод), минимальный ход доступен в сериях КК, КА и КЕ меньше, чем 100 мм.

Линейные направляющие роликового типа обеспечивают высокую жесткость системы.

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Доступны на складе в Москве: RGW30CC, рельсы поставляются целиковые.

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

¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ Доступны на складе в Москве:
Винт ШВП — Ø8, шаг — 2.5, гайка — тип RSI
Винт ШВП — Ø10, шаг — 2.5, гайка — тип RSI
Винт ШВП — Ø10, шаг — 4, гайка — тип RSI
Винт ШВП — Ø12, шаг — 4, гайка — тип RSI
Винт ШВП — Ø16, шаг — 5, гайка — тип FSI
Винт ШВП — Ø16, шаг — 10, гайка — тип FSI
Винт ШВП — Ø20, шаг — 5, гайка — тип FSI
Винт ШВП — Ø20, шаг — 10, гайка — тип FSC
Винт ШВП — Ø25, шаг — 5, гайка — тип FSC
Винт ШВП — Ø25, шаг — 10, гайка — тип FSC
Винт ШВП — Ø32, шаг — 5, гайка — тип FSC
Винт ШВП — Ø32, шаг — 10, гайка — тип FSC
Винт ШВП — Ø40, шаг — 5, гайка — тип FSC
Винт ШВП — Ø40, шаг — 10, гайка — тип FSC

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

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

HIWIN предлагает смазочные материалы для все условий применения, таких как общего назначения, тяжелой нагрузки, высокоскоростные условия работы, и т.д. Смазка HIWIN доступна в различных объемах и упаковке.

Подписка на новости

ШАГОВЫЕ МОТОРЫ

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

Шаговые двигатели Hiwin (ENG, 1.0Mb)

  • Скачать
  • Открыть

Шаговые двигатели HIWIN выпускаются в двух типоразмерах — ST40 и ST55. Шаговые моторы HIWIN могут иметь как одинарный, так и двойной консольный вал. Стандартные модели шаговых двигателей HIWIN могут выпускаться с минимальным физическим (аналоговым) разрешением шага — 1.8 и 0.9 градусов. В зависимости от требуемых точностных показателей заказчика минимальный физический шаг поворота двигателя может быть дискретизирован методом деления на величину кратно 2 (1/2, 1/4, 1/8. ). Такую функцию может обеспечить блок управления (драйвер) двигателя в микрошаговом режиме работы. Движение ротора двигателя осуществляется за счет последовательного включения обмоток фаз двигателя в определённом порядке в зависимости от требуемого направления вращения.

Драйверы для шаговых двигателей Hiwin (ENG, 1.7Mb)

  • Скачать
  • Открыть

Драйверы для шаговых двигателей HIWIN. Драйверы или блоки управления для шаговых моторов HIWIN необходимы для работы и управления шаговыми двигателями. Предназначены для управления двухфазными шаговыми двигателями (6 контактов). Обеспечивают функцию микрошагового режима работы. Величина постоянного тока на выходе 0.2-2A.

Двигатели постоянного тока Hiwin (ENG, 2.0Mb)

  • Скачать
  • Открыть

Коллекторные двигатели постоянного тока HIWIN. Двигатели постоянного тока HIWIN могут используются в качестве привода в простых задачах, например в качестве стеклоподъёмников, привод жалюзей, привод выдвижных дисплеев, привод люков автомобилей и моделестроении. Коллекторные двигатели (DC-моторы) отличаются простой конструкцией, что позволяет их использовать повсеместно в быту и промышленности. Двигатели постоянного тока HIWIN имеют напряжение питания от 12 до 24 В, диапазон мощностей от 43 до 70 Вт. Также двигатели постоянного тока могут быть снабжены зубчатой передачей для повышения выходного крутящего момента и энкодером для обратной связи в системе электроснабжения.

Полный каталог по двигателям вращения Hiwin (ENG, 7.5Mb)

  • Скачать
  • Открыть

В данном разделе Вы сможете посмотреть и сохранить полный каталог по двигателям вращения Hiwin.

Опросный лист для заказа двигателей вращения Hiwin (ENG, 0.6Mb)

  • Скачать
  • Открыть

Для оптимального предложения и подбора двигателя Вы можете сохранить опросный лист для заказа двигателей вращения Hiwin.

Контактная информация:

© 2005 — 2017
Все права зарегистрированы

Arduino, шаговый двигатель 28-BYJ48 и драйвер ULN2003

Шаговый двигатель — это мотор, который управляется несколькими электромагнитными катушками.

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

Подобная конструкция позволяет реализовать очень точное управление углом поворота ротора шагового двигателя относительно катушек — статора. Можно выделить два основных типа шаговых моторов: униполярные и биполярные шаговые двигатели.

В данной статье мы рассмотрим работу униполярного шагового двигателя 28-BYJ48 с драйвером ULN2003.

Униполярные шаговые двигатели имеют пять или шесть контактов для подключения и четыре электромагнитные катушки в корпусе (если быть более точными, то две катушки, разделенные на четыре). Центральные контакты катушек соединены вместе и используются для подачи питания на двигатель. Эти шаговые моторы называются униполярными, потому-что питание всегда подается на один из этих полюсов.

Спецификация и драйвер шагового двигателя

Существуют разные модели драйверов (контроллеров) шаговых двигателей. Среди них можно выделить самые популярные в DIY разработках на базе Arduino: L293, ULN2003, A3967SLB.

Как правило, шаговый двигатель 28-BYJ48 используют в паре с драйвером ULN2003.

Спецификацию шагового двигателя 28-BYJ48 на английском языке вы можете скачать здесь. Краткие выдержки основных технических характеристик приведены ниже:

  • Напряжение питания: 5 В (постоянный ток);
  • Количество фаз: 4;
  • Количество шагов: 64;
  • Угол поврота на один шаг: 5.625 градуса
  • Частота: 100 Герц;
  • Частота холостого хода по часовой стрелке: > 600 Герц;
  • Частота холостого хода против часовой стрелки: > 1000 Герц;
  • Крутящий момент > 34.3 миллиньютон на метр;
  • Сопротивление вращению: 600-1200 грамм на сантиметр;
  • Класс элетробезопасности: A;

Внешний вид и схемы подключения ULN2003 приведены на изображениях ниже

Примечание. Если вы захотите использовать плату L293 вместо ULN2003, красный контакт подключать не надо.

Необходимые компоненты

  1. Микроконтроллер Arduino.
  2. Шаговый двигатель BYJ48 5В.
  3. Драйвер шагового двигателя ULN2003.
  4. Коннекторы.
  5. Источник питания 5v — необязательно.

Скетч для Arduino

В Arduino IDE есть встроенная библиотека для управления шаговыми двигателями. После подключения шагового двигателя, ULN2003 и Arduino, вы можете загрузить скетч из категории Examples и .

На этом этапе возникают определенные нюансы:

У этого двигателя передаточное отношение 1:64, а угол поворота 5.625, то есть у него 4096 шагов.

Шаг = Количество шагов на один поворот * передаточное отношение.

Шаги= (360/5.625)*64″Передаточное отношение» = 64 * 64 =4096. Это значение надо учесть в скетче Arduino.

А вот угол поворота для шаговых двигателей от adafruit равен 7.5 градусов, а передаточное отношение 1:16, так что количество шагов за 1 полный оборот вала равно:

Читать еще:  Двигатель била своими руками

Шаги за один оборот = 360 / 7.5 = 48.

Шаги = 48 * 16 = 768

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

Модуль драйвера шагового двигателя ULN2003 подключается к Arduino контактами IN1 — IN4 к D8 — D11 соответственно.

Для подачи питания на ваш мотор, рекомендуется использовать внешний источник питания 5V с силой тока 500mA минимум. Не питайте двигатель непосредственно от контакта 5V на плате Arduino.

Проблема направления вращения в библиотеке и как ее исправить

Когда вы загрузите скетч на Arduino, шаговый двигатель будет вращаться в одном направлении с помощью функции:

То есть, вам надо указать в параметрах количество шагов для поворота ротора вала.

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

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

Измененный код для Arduino

Окончательная версия скетча для шагового двигателя:

/* Скетч для шагового двигателя BYJ48

Схема подключения: IN1 >> D8 IN2 >> D9 IN3 >> D10 IN4 >> D11 VCC . 5V.

Лучше использовать внешний источник питания Gnd

Автор кода: Mohannad Rawashdeh

Детали на русском языке: /arduino-shagovii-motor-28-BYJ48-draiver-ULN2003

Англоязычный вариант: http://www.instructables.com/member/Mohannad+Rawashdeh/ 28/9/2013 */

boolean Direction = true;

unsigned long last_time;

unsigned long currentMillis ;

void stepper(int xw)<

StepperMotor::StepperMotor(int In1, int In2, int In3, int In4)<

// Записываем номера пинов в массив inputPins

// Проходим в цикле по массиву inputPins, устанавливая каждый из них в режим Output

for (int inputCount = 0; inputCount inputPins[inputCount], OUTPUT);

void StepperMotor::setStepDuration(int duration)<

void StepperMotor::step(int noOfSteps)<

* в данном 2D массиве хранится последовательность, которая

* используется для поворота. В строках хранится шаг,

* а в столбцах — текущий input пин

int factor = abs(noOfSteps) / noOfSteps; // Если noOfSteps со знаком +, factor = 1. Если noOfSteps со знаком -, factor = -1

noOfSteps = abs(noOfSteps); // Если noOfSteps был отрицательным, делаем его позитивным для дальнейших операций

* В цикле ниже обрабатываем массив sequence

* указанное количество раз

for(int sequenceNum = 0; sequenceNum inputPins[inputCount], sequence[(int)(3.5-(3.5*factor)+(factor*position))][inputCount]);

Давайте посмотрим на конструктор на строчке 4. Мы начинаем с того, что добавляем выбранные пользователем пины в массив inputinputPins в строчках 6-9. В результате мы получаем простой и интуитивно понятный доступ к номерам пинов в дальнейшем коде.

В 12 строке мы пробегаемся по массиву inputinputPins и устанавливаем для каждого режим OUTPUT.

В 15 строке мы устанавливаем длительность шага по-умолчанию равной 15 мс.

В 18 строчке у нас функция-сеттер для установки длительности шага.

Теперь давайте рассмотрим метод step. Этот метод дает возможность шаговому двигателю делать переданное методу количество шагов.

В 28 строчке мы объявляем частоту вращения с использованием 2-х мерного массива. Строки представляют шаг, столбцы — выходящие пины.

В 37 строчке рассчитывается значение переменной factor, которое равно +1 или -1 в зависимости от знака, который мы передали при указании шагов. Это значение используется для определения направления перебора массива, то есть, в результате, для изменения направления вращения.

В 38 строчке мы присваем noOfSteps переменной позитивное значение.

В 44 строке мы запускаем цикл, который будет отрабатывать для каждой последовательности оборотов, то есть в начале каждого 8-го щага.

В 45 строке мы запускаем второй цикл, который пробегается по строкам в нашем массиве.

В 46 строчке мы устанавливаем задержку в соответствии со спецификацией.

В 47 строке мы пробегаемся по номерам пинов.

В 48 строке мы передаем цифровой сигнал на текущий номер пина.

Если переменная factor отрицательная, в 48-й строчке кода строки массива обрабатываются в противоположном порядке, то есть с низу вверх.

Доступ к библиотеке для шагового двигателя из Arduino IDE

Нам осталось добавить созданные файлы в папку библиотек Arduino IDE и мы сможем импортировать ее в любой наш проект.

Перейдите в папку:

C:Program Files (x86)Arduinolibraries

И создайте папку под названием StepperMotor.

Переместите созданные файлы .h и .cpp в созданную папку.

Теперь вы можете импортировать библиотеку в IDE (sketch > import library. > StepperMotor) с помощью директивы

Шаг двигателя что это

В современных системах управления широко используются устройства, оперирующие с цифровой формой сигнала. Цифровая форма представления сигнала привела к созданию нового типа двигателей – шаговых двигателей (ШД).

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

Современные ШД являются по сути синхронными двигателями без пусковой обмотки на роторе, что объясняется не асинхронным а частотным пуском ШД. Роторы могут быть возбужденными (активными) и невозбужденными (пассивными).

Рассмотрим принцип действия простейшего однофазного шагового двигателя.

Двухполюсный ротор из магнитомягкой стали с клювообразными выступами помещен в четырехполюсный статор (рис.3.1). Одна пара полюсов выполнена из постоянных магнитов, на другой – находится обмотка управления.

Пока тока в обмотках управления нет, ротор ориентируется вдоль постоянных магнитов и удерживается около них с определенным усилием, которое определяется магнитным потоком полюсов Фпм.

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

Рис. 3.1. Схема простейшего однофазного ШД

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

Достоинством однофазных ШД с постоянными магнитами является простота конструкции и схемы управления. Для фиксации ротора при обесточенной обмотке управления не требуется потребление энергии, угол поворота сохраняет свое значение и при перерывах в питании. Двигатели этого типа отрабатывают импульсы с частотой до 200-300 Гц. Их недостатки – низкий КПД и невозможность реверса.

§ 3.2. Реверсивные шаговые двигатели

Для осуществления реверса зубцы статора и ротора ШД должны быть симметричными (без клювообразных выступов). Рассмотрим работу двухфазного двухполюсного ШД с активным ротором в виде постоянного магнита. Будем считать, что намагничивающие силы фаз (НС) распределены по синусоидальному закону.

При включении фазы под постоянное напряжение (условно положительной полярности) вектор НС статора совпадет с осью фазы А. В результате взаимодействия НС статора с полем постоянного магнита ротора возникнет синхронизирующий момент Мс = Mmaxsinq, где q — угол между осью ротора и вектором НС.

При отсутствии тормозного момента ротор займет положение, при котором его ось совпадет с осью фазы А (рис. 3.2, первый такт). Если теперь отключить фазу А и включить фазу В, вектор НС и ротор повернуться на 90 о (второй такт на рис. 3.2). При включении фазы А на напряжение обратной полярности (третий такт на рис. 3.2) НС и ротор повернутся еще на 90 о и т.д.

Если к ротору ШД приложен момент нагрузки, то при переключении фаз ротор будет отставать от вектора НС на некоторый угол qн= arcsin(Mн/Mmax).

Рис. 3.2. Устойчивые положения ротора при включении фаз

Рассмотренный способ переключения обмоток можно представить в виде табл.1

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

Читать еще:  Генератор из двигателя переменного тока 220 своими руками

Шаг двигателя можно уменьшить в 2 раза, если обмотки переключать в соответствии с табл.3

В зависимости от типа электронного коммутатора управление ШД может быть:

·одноплярным или разнополярным;

·симметричным или несимметричным;

·потенциальным или импульсным.

При однополярном управлении напряжение каждой фазе изменяется от 0 до +U, а при разнополярном – от -U до +U.

Управление называется симметричным, если в каждом такте коммутации задействуется одинаковое число обмоток, и несимметричным – если разное. Способы переключения обмоток, соответствующие тал. 1 и 2 будут симметричными, а по табл.3 – несимметричным.

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

В двухполюсной машине число устойчивых положений в пределах одного оборота ротора n следующее (m — число фаз):

1.при однополярной коммутации и симметричном управлении n = m;

2.при разнополярной коммутации с симметричным управлением n = 2m;

3.при несимметричной разнополярной коммутации n = 4m.

Очевидно, что несимметричная коммутация возможно только при m ³ 2.

В многополюсных ШД число устойчивых положений возрастает пропорционально числу пар полюсов р.

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

Для рассмотренных двигателей р = 1, m = 2 (в первом двигателе одному такту соответствует действие возбужденных полюсов, а другому, при отключении обмотки, – действие полюсов с постоянными магнитами). Следовательно, при разнополярной симметричной коммутации шаг двигателейa = 90 o . При несимметричной разнополярной коммутации a = 45 o .

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

Рис.3.3. Схема обмоток и порядок коммутации 4-х фазного ШД

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

Гораздо более мелкий шаг (до долей градуса) можно получить в редукторных (индукторных) ШД. Индукторные ШД выполняются с числом фаз m = 2¸4. Они имеют зубчатый ротор с равномерно расположенными zp зубцами и гребенчатые зоны статора, смещенные относительно друг друга на угол 2p/(mzp) (например, рис.3.4). Число пазов статора и ротора, их геометрические размеры выбираются такими, чтобы обеспечить необходимую величину шага и синхронизирующего момента при заданном виде коммутации токов.

Рис. 3.4. Геометрия магнитной системы индукторного ШД

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

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

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

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

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

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

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

Читать еще:  Двигатель 3rz датчик давления масло

Двухполюсные шаговые двигатели часто работают в режиме полных шагов. Для этого управляют фазами токов в каждой из обмоток, реализуя одну из четырех возможных комбинаций, показанных на рисунке 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 (направление)), задает направление тока, но не его величину. Величина тока определяется модуляцией 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 для реализации режима микрошагов на базе стандартного алгоритма полношаговой коммутации является довольно простым способом решения проблемы с резонансом. То, что режим микрошагов реализуется больше программным, а не аппаратным способом, делает его универсальным, что и привлекает внимание разработчиков. Здесь может быть использована любая форма сигнала, если того требует конкретный проект. Количество микрошагов определяется заданной разрешающей способностью. Для приложений, требующих очень плавного перемещения, количество микрошагов может доходить до тысячи.

Ссылка на основную публикацию
Adblock
detector