Vikupautomsk.ru

Выкуп Авто МСК
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Зачем нам рампа для шагового двигателя

Зачем нам рампа для шагового двигателя?

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

«Если мы пытаемся запустить шаговый двигатель быстрыми импульсами, то он просто сидит и гудит, не поворачиваясь. Нам нужно медленно запустить шаговый двигатель и постепенно увеличивать скорость шагов (нарастая)». Источник: http://www.societyofrobots.com/member_tutorials/book/export/html/314

Мой вопрос: почему тогда шаговый двигатель запускается с правильными квадратными импульсами? Зачем нам рампа? Все остальные форумы и учебные пособия всегда говорят о подаче цифровых импульсов в степпер для его запуска, почему там не обсуждается концепция генерации линейного изменения? Это плохая практика — запускать степпер с цифровыми импульсами?

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

Ротор, вал и все, что связано с валом, имеют инерцию и различное трение.

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

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

Вот кривая крутящего момента двигателя от Oriental Motor (крупного японского производителя):

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

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

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

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

Для вращающейся системы термины немного меняются, но в основном они аналогичны: крутящий момент равен моменту инерции, умноженному на угловое ускорение:

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

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

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

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

Когда двигателю не нужно двигаться, напряжение / ток можно уменьшить примерно на 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», если вы хотите превысить обычную максимальную скорость. Но поскольку нет вибрации, независимо от скорости, вы можете позволить замедлению идти так низко, как захотите.

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

Как вырабатывать цифровые импульсы, используя 555 таймер IC для шагового двигателя? [закрыто]

Виджей

Мне нужно запустить биполярный шаговый двигатель с 555 таймером IC.

Существует ли какая-либо простая схема для генерации импульсов для вращения шагового двигателя по часовой стрелке, против часовой стрелки с желаемой скоростью?

Если имеется много моделей 555 микросхем, укажите также тип или номер модели.

И я также хочу знать, что внутри IC и как она работает.

Могу ли я использовать вышеуказанную схему?

Крис Страттон

Олин Латроп

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

Управление шаговым двигателем — отличная работа для микроконтроллера. Это может выполнять всю логику, описанную выше, плюс может взаимодействовать с остальной частью системы, чтобы узнать, что должен делать шаговый двигатель. Так как микро будет выдавать только цифровые логические сигналы, не отличающиеся от таймера 555, вам потребуется силовая электроника для управления катушками. В зависимости от того, как катушки подключены, это может быть набор драйверов с низкой стороны или, возможно, H-мосты. Драйверы низкого уровня можно довольно легко сделать с дискретными транзисторами, особенно при низком напряжении. Доступны микросхемы драйвера H-моста, которые принимают входы цифрового логического управления и соответственно управляют линиями катушки.

Виджей

Дэйв Твид

TE555-1 — это не аналоговый чип таймера, с которым все знакомы; это на самом деле запрограммированный 8-контактный MCU от Talking Electronics

Путаница, кажется, по крайней мере, несколько преднамеренная со стороны Колина Мичелла, владельца сайта.

Крис Страттон

Вы должны быть в состоянии использовать 555 в сочетании с L297 и L298 для привода небольших (размером с дисковод гибких дисков и немного больше) шаговых двигателей.

Несмотря на то, что Олин прав в отношении ускорения в случаях средней и высокой производительности, для сравнительно медленных скоростей и небольших нагрузок вы можете просто начать выдавать шаговые импульсы с 555. Решения с микроконтроллером секвенсора действительно имеют много преимуществ: по стоимости, пространству на плате, профилированию движения, и гибкость, однако некоторые микросхемы могут быть полезны для их способности модулировать потенциально сложные части проблемы, такие как ШИМ (прерывистое) текущее регулирование — то, что может быть сделано в программном обеспечении, но может добавить много сложностей в учебный проект ,

Темы, такие как последовательность импульсов для шагового двигателя, внутренняя работа 555 и т. Д., Описаны в многочисленных ссылках, которые найдет любая поисковая система. Формат вопросов и ответов лучше подходит для проблем, которые остаются после некоторых исследований.

Вам не нравятся шаговые моторы, да вы просто не умеете их готовить

  1. Начало изучения
  2. Первая тестовая программа — равномерное вращение
  3. Вторая тестовая программа — разгон
  4. Третья тестовая программа — подбор стартового шага
  5. Четвертая тестовая программа — подбор минимального шага
  6. Пятая тестовая программа — минимальный шаг и торможение
  7. Шестая тестовая программа — равноускоренное движение
  8. Ссылка для скачивания: Программы и схемы для тестов

В рамках проекта «Балансирующий робот» я, с целью изучения возможности использования в качестве ходовых, приобрел пару шаговых двигателей 35HM-0304A4. Планируется использовать их напрямую — без редукторов на колесных осях, что конечно накладывает на двигатели определенные ограничения.

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

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

26 Ом; шаг двитателя 0.9 градуса. Все остальное требовалось выяснить.

На вал двигателя уже запрессована зубчатая шестерня, мне достался экземпляр с 15 зубами. С боков имеются очень удобные ушки, для крепления к корпусу балансирующего робота, это удачная находка, я уже использовал их в 3D модели нового робота. Масса мотора около 100 гр.

Читать еще:  Что такое провалы в двигателе инжектор

Измеренные значения составили: индуктивность

0.9мГн, активное сопротивление

25 Ом. Индуктивность двигателя невелика, что возможно позволит довольно значительно его разгонять.

Управлять шаговиком я буду при помощи хорошо зарекомендовавшего себя драйвера DRV8825 на плате китайского производства. Особенностью данного драйвера является поддержка тока до 2,5A, при этом до 1.5A даже не требуется радиатор (в схеме драйвера используются полевые транзисторы).

При использовании платы изображенной ниже, максимальный ток регулируется при помощи подстроечного резистора. Головка вращения резистора металлическая и находится под напряжением (0-1.5V), измерив данное напряжение при помощи мультиметра (Головка резистора — GND) и умножив полученное значение на два, получаем максимальный ток фазы двигателя, т.е. драйвер ограничит ток каждой фазы нашего двигателя именно этим значением.

Выводы на плате драйвера подписаны, но я приведу рисунок и поясню значения тех выводов, которые мы будем использовать.
  • ENABLE — ноль на данной ноге включает двигатель, т.е. если других сигналов не поступило, то вал двигателя будет жестко зафиксирован в положении близком к текущему.
  • M0,M1,M2 — настройка микрошагового режима, драйвер может работать с микрошагом до 1/32 значения от полного шага. По умолчанию, когда данные выводы не подключены, используется полный шаг, для нашего мотора это 0.9 градусов (400 шагов на оботор).
  • RESET — сброс драйвера, вместе с сигналом SLEEP будет подтянут к логической 1 — (5В).
  • SLEEP — сон драйвера, вместе с сигналом RESET будет подтянут к логической 1 — (5В).
  • STEP — по положительному фронту на данном входе (сигнал меняется с 0 на 1) двигатель начинает делать один следующий шаг.
  • DIR — направление вращения, в зависимости от того, какой логический сигнал пришел от контроллера 0 или 1 изменяется направление вращения вала шагового двигателя.
  • VMOT — напряжение питания двигателя.
  • GND — земля.
  • B2-B1, A2-A1 — согласно названию можно, да и нужно сделать вывод, что это выводы на обмотки фаз шаговика.
  • FAULT — сигнал аварии — не используется в нашем случае.
  • GND — еще один вывод земли.

Я применю китайский клон платы Arduino nANO, но не обычный клон, а довольно качественный и брутальный от robotdyn.com. Его особенность в том, что подключается он по кабелю microUSB, а не mini, как подобные. Других отличий, кроме качества изготовления платы, нет.

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

Такой стабилизатор стоит недорого, и поддеживает до 3А ток. Благодаря своей импульсной природе он слабо греется и имеет хороший до 98% коэффициент полезнго действия (КПД).

В данном экземпляре используется микросхема XL6009.

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

Схема, которую я собрал, изображена ниже. Так как запитываю всю схему от одного источника питания, соединять земли Arduino и DRV8825 не пришлось, но если источники питания разные, то следует соединить GND Arduino и GND DRV8825 отдельным проводником. На питание моторов установлен дополнительный конденсатор, его я поставил по практическим рекомендациям.

Также стоит отметить наличие диода Шоттки на положительном входе питания Arduino NANO, наличие диода защищает схему от провисания питания контроллера Arduino, когда он запитан от USB, а основная схема обесточена.

Для управления используется три сигнала: ENABLE, STEP и DIR. Они подключены к пинам D4, D3, D2 контроллера Arduino. Далее я приведу несколько программы, которые я использовал при тестировании. Пойдем от простого к сложному.

Пример test_step1 позволяет запустить мотор, он будет делать 4 оборота в одну, затем в другую сторону. Программа состоит из 2-х файлов test_step1.ino и step_motor1.h, оба должны быть расположены в каталоге test_step1.

Движение происходит равномерно, без ускорения как отрицательного так и положительного.

test_step1.ino основной файл, а step_motor1.h содержит функции по работе с шаговым мотором и константы описывающие шаговый двигатель (управление и скорость).

Файл «test_step1.ino»

Файл «step_motor1.h»

Пример test_step2 позволяет запустить мотор, он будет делать 40 оборота в одну, затем в другую сторону. Программа состоит из 2-х файлов test_step2.ino и step_motor2.h, оба должны быть расположены в каталоге test_step2.

В программе реализован разгон двигателя, но ускорение не постоянное. Торможение снижением скорости не реализовано.

Отличие от test_step1 в том, что двигатель разгоняется до определенной максимальной скорости постепенно, при остановке мотор обесточивается, что позволяет свободно вращать вал.

Файл «test_step2.ino»

Файл «step_motor2.h»

Пример test_step3 позволяет управлять величиной начального шага мотора. Программа состоит из 2-х файлов test_step3.ino и step_motor3.h, оба должны быть расположены в каталоге test_step3.

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

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

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

Плавное торможение в программе не реализовано.

Файл «test_step3.ino»

Файл «step_motor3.h»

Пример test_step4 позволяет управлять величиной минимального шага мотора, т.е. фактически регулировать максимальный разгон. Программа состоит из 2-х файлов test_step4.ino и step_motor4.h, оба должны быть расположены в каталоге test_step4.

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

Следует подключить контроллер arduino к компьютеру, загрузить программу, открыть монитор порта, установить в мониторе порта скорость 115200, в верхней строке для ввода данных ввести число и нажать ввод, это число будет воспринято программой как величина минимального шага. Программа запустит двигатель с величины шага 1500 микросек. (меняется в #define START_STEP_TIME 1500L ), а затем начнет пытаться наростить скорость до введенного значения, если двигатель не застопориться, значит исследуемая скорость подходит, в противном случае шаг стоит увеличить и попробовать вновью.

Плавное торможение в программе не реализовано, по этой причине двигатель может делать лишние шаги при торможении.

Файл «test_step4.ino»

Файл «step_motor4.h»

Пример test_step5 позволяет управлять величиной минимального шага мотора, т.е. фактически регулировать максимальный разгон. Программа состоит из 2-х файлов test_step5.ino и step_motor5.h, оба должны быть расположены в каталоге test_step5.

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

Следует подключить контроллер arduino к компьютеру, загрузить программу, открыть монитор порта, установить в мониторе порта скорость 115200, в верхней строке для ввода данных ввести число и нажать ввод, это число будет воспринято программой как величина минимального шага. Программа запустит двигатель с величины шага 1500 микросек. (меняется в #define START_STEP_TIME 1500L ), а затем начнет пытаться наростить скорость до введенного значения, если двигатель не застопориться, значит исследуемая скорость подходит, в противном случае шаг стоит увеличить и попробовать вновью.

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

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

Файл «test_step5.ino»

Файл «step_motor5.h»

Ниже приведена диаграмма разгона торможения шагового двигателя по программе test_step5.

После анализа test_step5, я решил попробовать реализовать программу, которая разгоняет двигатель равноускоренно. Это было реализовано в программе test_step6, а вернее в step_motor6.h.

Файл test_step6.ino существенных изменений не получил.

Значительных улучшений при равноускоренном вращении я не получил, усложнился алгоритм расчета, пришлось в связи с влиянием времени расчета на шаг, включить расчет внутрь шага, т.е. расчеты производятся во время шага, а не после. Ускорение можно менять изменяя константу #define ACCELERATION_START 6000 // Стартовое ускорение шаг/Сек2.

Принципиальные особенности и применение шаговых двигателей.

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

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

Области применения

От простых DVD плееров или принтеров в быту до сложнейших станков с ЧПУ или роботизированной руки шаговые двигатели можно найти практически везде. Способность совершать точные движения с электронным управлением позволила этим устройствам найти применение во многих сферах, таких как камеры наблюдения, жесткие диски, станки с ЧПУ, 3D-принтеры, робототехника, сборочные роботы, лазерные резаки и многое другое.

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

Преимущества

  • Достигнута низкая стоимость контроля;
  • Высокий момент вращения при запуске и низкая скорость;
  • Простота конструкции;
  • Низкие эксплуатационные расходы;
  • Меньше шансов затормозить или поскользнуться;
  • Будет работать в любой среде;
  • успешно используется в робототехнике в широком масштабе;
  • Высокий уровень надежности;
  • Обладает полным крутящим моментом в состоянии покоя (во время нахождения обмоток под напряжением);
  • Большая точность позиционирования и повторяемость движения;
  • Немедленный ответ на запуск / останов / реверс;
  • Обладает высокой степенью надежности, благодаря отсутствию контактных щеток;

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

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

Понравилась статья пишите в комментарии или на форум. Подписывайтесь на мой канал на Youtube и вступайте в группы в Вконтакте и Facebook.

Понравилась статья? Поделитесь ею с друзьями:

голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector