Во всех статьях о шаговых двигателях я не уставал повторять, что шаговый двигатель объединяет в себе электропривод и позиционирующее устройство без обратной связи. В этом уроке я хочу продемонстрировать использование шагового двигателя в следящем электроприводе.
В уроке я разработал две следящие системы с шаговым двигателем в качестве электропривода.
- Одна использует драйвер на базе платы Ардуино из предыдущего урока и управляется от компьютера.
- Второй следящий электропривод представляет собой автономное устройство, в котором положение вала двигателя задается переменным резистором.
Вы увидите, как просто реализуются такие системы на базе шагового двигателя. Но сначала я расскажу о том, что такое следящий электропривод и как он создается по традиционной схеме.
Следящий электропривод.
Это очень сложная тема, включающая несколько технических дисциплин, таких как электрические машины, теория автоматического управления, электроника и многие другие. Я затрону только самые общие понятия.
Следящий электропривод – это электрический привод, реализующий изменение положения исполнительного механизма (нагрузки) в соответствии с задающим сигналом, который может произвольно меняться во времени.
Проще говоря, маломощный входной сигнал на входе следящего электропривода управляет с определенной точностью мощной механической нагрузкой. Мы двигаем на экране компьютера изображение стрелки или крутим ручку переменного резистора, а поворачивается вал мощного двигателя.
В общем случае структурная схема следящей системы электропривода выглядит так.
С валом двигателя механически связан датчик положения ротора. Датчик преобразует угол положения вала в физическую величину, с которой работает регулятор. Это может быть напряжение для аналогового регулятора или цифровой код для вычислительных систем. Далее измеренный угол сравнивается с заданным, вычисляется ошибка рассогласования. Ошибка поступает на регулятор, который вырабатывает сигналы питания двигателя, стремясь скомпенсировать разницу между заданным и реальным углами. В качестве привода могут быть использованы самые разные типы двигателей, от низковольтного коллекторного, до мощного асинхронного.
Схема состоит из трех прямоугольников, но на самом деле следящий электропривод это очень сложная система. Требуется достаточно точный датчик угла. Работа регулятора осложняется инерционностью двигателя и нагрузки. Крайне неприятно работать на нелинейную нагрузку. Такие системы строятся по принципу пропорционально интегрально дифференциальных регуляторов. Часто используются адаптивные регуляторы.
Видео:Неисправность датчика фаз: зачем нужен и как проверить (датчик положения распределительного вала)Скачать
Принцип реализации следящего электропривода на шаговом двигателе.
Намного проще реализовать следящий электропривод на шаговом двигателе. Главная особенность шагового двигателя состоит в том, что положение ротора всегда можно вычислить, подсчитав количество сделанных шагов.
Следящий электропривод считает сделанные шаги и таким образом определяет текущее положение ротора. Когда изменяется заданное значение положения вала, система вычисляет разницу между реальным и заданным углами, и делает необходимое количество шагов, чтобы скомпенсировать ошибку рассогласования. Никаких обратных связей, нет необходимости в датчике положения ротора.
К достоинствам следящего привода на базе шагового двигателя следует отнести:
- простота реализации;
- отсутствие датчика положения ротора;
- не бывает перерегулирования, колебательных процессов.
- необходимость начальной синхронизации реального положения ротора и значения положения ротора в контроллере системы;
- при выходе из синхронизации шагового двигателя система будет работать с ошибкой, которую можно скомпенсировать только повторной синхронизацией.
Читайте также: Направляющие валы для принтеров
Следящий электропривод с управлением от компьютера.
Для реализации этого устройства я использовал драйвер шагового двигателя из предыдущего урока. Такая же схема подключения двигателя к плате Ардуино, та же резидентная программа драйвера с управлением от компьютера по протоколу AT команд.
Весь алгоритм управления реализован в программе верхнего уровня на компьютере.
- Программа хранит текущее положение ротора двигателя.
- При изменении заданного значения угла, она вычисляет количество шагов, которое двигатель должен сделать для компенсации ошибки. Затем посылает драйверу AT команду сделать необходимое количество шагов.
- С помощью AT команды чтения оставшихся шагов программа ждет остановки двигателя и, при необходимости, формирует следующую команду вращения ротора.
- Положение вала двигателя отображается на мониторе компьютера.
Программу я назвал Tracker. Загрузить ее можно по этой ссылке:
Зарегистрируйтесь и оплатите. Всего 40 руб. в месяц за доступ ко всем ресурсам сайта!
Варианты подключения, первый запуск, установка номера порта абсолютно такие же, как в программе Thermometer (Урок 24). Для проверки удобнее использовать виртуальный порт, который создает драйвер Ардуино при подключении платы к компьютеру. Запускать программу Arduino IDE для этого не надо.
Еще раз повторю, что схема подключения двигателя и скетч программы для платы Ардуино можно взять из предыдущего урока. Собственно мы используем разработанное в предыдущем уроке устройство – интеллектуальный драйвер шагового двигателя. Следящий электропривод это один из примеров применения драйвера.
Видео:Энкодеры. Подробный обзор с экспериментами!Скачать
У меня собранное устройство выглядит так.
Прищепка выполняет роль стрелки положения вала двигателя.
Окно программы Tracker выглядит так.
Часть графических элементов управления аналогичны компонентам программы StepMotor из предыдущего урока.
- Панель ”Скорость” позволяет задать скорость вращения.
- С помощью панели “Режим” можно задать режим коммутации фаз и остановки двигателя.
- Панель “Шаги” позволяет сделать произвольное количество шагов.
Надо только помнить, что данные с этих трех панелей передается в драйвер нажатием кнопок ”—>” рядом с соответствующими панелями.
- Через панель “Параметры двигателя” можно задать число шагов двигателя на полный оборот и период коммутации фаз в программе драйвера (в моей программе 250 мкс).
- Светодиод ”Обмен” сигнализирует о состоянии связи компьютера с драйвером. В нормальном режиме должен светиться зеленым.
- Кнопки “– 1 шаг” и “+ 1 шаг” позволяют сделать по одному шагу по часовой и против часовой стрелки.
В программе появились новые элементы для управления следящим приводом.
Прежде всего, это шкала угла положения вала двигателя. На ней два указателя:
- Заданного угла – треугольник зеленого цвета;
- Реального угла – треугольник красного цвета.
За указателем реального угла следует паук в центре шкалы. Люблю я насекомых. Этим летом ксилокопу поймал. Хотел ее использовать в программе, но чтобы сэкономить время взял изображение паука из старой программы. Кстати из программы следящей системы на базе мощного индукторного двигателя.
Читайте также: Защитный кожух карданного вала мтз 82
Указатель заданного угла можно двигать мышью, меняя заданный угол. Ниже шкалы есть числовые показатели заданного и реального углов, а также соответствующие им шаги двигателя.
Видео:7 ПРИЧИН ПО КОТОРЫМ ВОЗНИКАЮТ ОШИБКИ ПО ДАТЧИКУ ПОЛОЖЕНИЯ РАСПРЕДВАЛА (ДПРВ)Скачать
Активная птичка ”Слежение” означает, что при перемещении указателя заданного угла двигатель оперативно (в реальном времени) отрабатывает положение. Т.е. вал реального двигателя следует за зеленым указателем.
Если птички ”Слежение” нет, то заданное значение отслеживается только по нажатию кнопки ”Пуск”.
Кнопка “Синхронизация” устанавливает оба указателя в нулевое положение. Используется для задания начального положения двигателя.
Я снял короткий фильм о работе следящего привода.
Как я не крутил двигатель нулевой угол на шкале программы соответствовал одному и тому же положению вала реального двигателя. Только надо учитывать, что это правило строго выполняется в режиме фиксации ротора при остановке двигателя, особенно в полу шаговом и между шаговом режимах коммутации. В режиме выключения фаз при остановке положение вала двигателя может измениться из-за механической нагрузки или инерции.
Только надо помнить, что в режиме фиксации ротора при остановке через драйверы всегда течет ток. На транзисторы драйвера должны быть установлены радиаторы. Иначе они могут перегреться и сгореть.
Ардуино проект следящего электропривода с управлением от переменного резистора.
Второй вариант следящего электропривода без обратной связи я решил реализовать как автономное устройство, в котором заданный угол устанавливается переменным резистором.
К плате Ардуино подключен драйвер униполярного шагового двигателя по схеме из предыдущего урока. Впрочем, можно использовать любую другую схему для униполярного или биполярного шагового двигателя.
К аналоговому входу A0 платы подключен переменный резистор по этой схеме.
У меня собранное устройство выглядит так.
Следящий привод должен поворачивать вал двигателя вслед за перемещением вала резистора. Управляет следящей системой программа платы Ардуино.
Видео:Датчики коленвала и распредвала: принцип работы, неисправности и способы диагностики. Часть 11Скачать
Резидентная программа следящего электропривода на Ардуино.
Скетч программы можно загрузить по этой ссылке:
Зарегистрируйтесь и оплатите. Всего 40 руб. в месяц за доступ ко всем ресурсам сайта!
Надеюсь, у Вас уже установлены библиотеки TimerOne.h и StepMotor.h.
Скетч программы небольшой.
// программа следящего электропривода без обратной связи
#define MEASURE_PERIOD 80 // время периода измерения (* 250 мкс)
#define numStepsMotor 400 // число шагов двигателя на оборот
int timeCount; // счетчик времени
long sumU; // переменные для суммирования кодов АЦП
long averageU; // сумма кодов АЦП (среднее значение * 80)
int currentStep; // текущее положение двигателя
int setStep; // заданное положение двигателя
StepMotor myMotor(10, 11, 12, 13); // создаем объект типа StepMotor, задаем выводы для фаз
void loop() = (numStepsMotor / 2) ) 0) stepsToDo -= numStepsMotor;
else stepsToDo += numStepsMotor;
>
myMotor.step(stepsToDo); // запуск двигателя
currentStep = setStep; // перегрузка текущего положения
>
>
// ————————————— обработчик прерывания 250 мкс
void timerInterrupt() = MEASURE_PERIOD )
>
В программе измеряется и усредняется значение напряжения на аналоговом входе A0. Этот блок описан в уроке 13.
Читайте также: Валы для города приора
При остановленном двигателе проверяется, есть ли разница между заданным и реальным углами положения ротора. При необходимости вызывается функция step() для поворота вала двигателя.
Видео:Датчики положения коленвала и распредвала. Триггеры.Скачать
Вот короткий фильм о работе устройства.
У моего двигателя 400 шагов на оборот. Если Вы используете другой привод, то надо изменить строку
#define numStepsMotor 400 // число шагов двигателя на оборот
Двигатель работает в шаговом режиме без фиксации ротора при остановке. Режим задан в блоке setup, его легко можно изменить. В полу шаговом режиме число шагов двигателя надо задать в два раза большим. В моем случае:
#define numStepsMotor 800 // число шагов двигателя на оборот
В некоторых положениях переменного резистора значение АЦП дергается на одну единицу. Обычное для преобразования аналогового сигнала явление. Шаговый двигатель отрабатывает это изменение заданного угла, что выражается в подергивании вала. Я не стал компенсировать этот эффект, потому что программа больше демонстрационная.
Неожиданно нашлось первое практическое применение варианта следящей системы с переменным резистором. Антону потребовалось изготовить большой стрелочный регулятор громкости. Очевидно в декоративно-оформительских целях. Вместо переменного резистора — задатчика положения он подал усиленный аналоговый сигнал, добавил второй канал и начальную установку стрелок в крайнее левое положение. Вот, что получилось.
Я так понял, что в окончательном варианте устройство будет оформлено в виде больших стрелочных индикаторов.
В этом уроке я хотел показать главное преимущество шагового двигателя – возможность позиционирования без обратной связи. Надеюсь, Вы оценили простоту создания следящих систем по такому принципу.
Вот ссылка на реальный проект следящей системы, реализованный таким образом.
К плате Arduino Nano подключены два двигателя, которые отслеживают положение по данным, заданным с интерфейса DMX.
В следующем уроке будем подключать к Ардуино биполярный шаговый двигатель. Все программы из предыдущих уроков должны работать без изменений и с биполярным приводом.
Видео:как работает датчик коленвала, как эбу понимает, что в двигателе пропуски?Скачать
- Свежие записи
- Чем отличается двухтактный мотор от четырехтактного
- Сколько масла заливать в редуктор мотоблока
- Какие моторы бывают у стиральных машин
- Какие валы отсутствуют в двухвальной кпп
- Как снять стопорную шайбу с вала
📸 Видео
Датчики двигателя внутреннего сгорания в 3D. Основы.Скачать
Курс автодиагностики, Что такое угол опережения зажигания, Как он разрушает мотор?Скачать
Синхронизация двух ПЧ С2000 по положению вала двигателяСкачать
Как ЭБУ выставляет ошибки по высокому или низкому сигналу с датчикаСкачать
Обзор и подключение сервоприводов с простой настройкой.Скачать
Неисправный датчик положения коленчатого вала, как он себя проявляет.Скачать
Про обрыв цепи и низкий сигнал датчиков.Скачать
ДАТЧИК КОЛЕНВАЛА. Проверяем без приборов!Скачать
Основные признаки неисправности датчика положения коленчатого вала(ДПКВ),проверка работоспособностиСкачать
Нюансы подключения ДПКВ. Как проверить ДПКВ сканером или мультиметромСкачать
На панели значок неисправности ESP, EPC и другие: как можно самому отремонтировать (Видео 84)Скачать
Устройство и принцип работы датчика коленвалаСкачать
Признаки неисправности и расположение датчика коленвалаСкачать
Нет Искры и Подачи топлива на инжекторном двигателе. Датчика Положения Коленвала на ВАЗ 2109, 2114Скачать