S Образная кривая разгона-торможения шагового двигателя
- jane_wild
- master
- Сообщения: 461
- Зарегистрирован: 30 июн 2016, 02:11
- Версия LabVIEW: 2020
- Благодарил (а): 84 раза
- Поблагодарили: 15 раз
- Контактная информация:
S Образная кривая разгона-торможения шагового двигателя
Ребята и снова я обращаюсь к вам за помощью. Необходимо плавно разгонять и останавливать шаговый двигатель. Например чтобы сделать 100 оборотов двигателя нужно сгенерировать 80000 импульсов (800 на один оборот) Если частота следования импульсов будет 10 кГц, то это займет 8 секунд. Ну и вот, если сразу подать 10 кГц на драйвер шагового двигателя, то он сразу впадает в кому, с высвечиванием аварии. Необходимо сделать это плавно. Ну скажем за 2 секунды. Нашла пример, как на лету изменять генерируемую частоту счетчиком. Затем разработала свой индуский код, который
похожий на спагетти и проверила на реальном железе - есть нюансы, но в целом работает. Нюансы в том, что остановить шаговик при точном количестве импульсов не так просто, потому как при настнойке DAQmx Timing указав Finite Samples вместо Continuous получаю ошибку 200557 записи частоты. Поэтому точность возрастет, если торможение производить не линейно а по S - Образной кривой, вот такой
да и разгон/торможение будут лучше. В общем на данном этапе пытаюсь сделать S образную кривую разгона-торможения В приложеном VI убрано все, что касается работы с DAQ. Буду очень признательна за помощь. Спасибо
- Вложения
-
- Acc_Dec R.vi
- LV 2016
- (16.74 КБ) 43 скачивания
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 88 раз
Re: S Образная кривая разгона-торможения шагового двигателя
Там не так все просто.
Посмотрите хотя бы статью: https://habr.com/ru/articles/709500/
При управлении двигателями как правило рассматривают три производных (скорость, ускорение и рывок).
Разогнать как-бы не сложно, можно в качестве ограничителя использовать ПИ регулятор, а вот остановить к заданному шагу, нужно постараться
Раньше начнете тормозить, плавно подойдете, но потратите время. Позже - проскочите уставку.
Можно покопаться в исходниках открытых прошивок для 3D принтеров, граверов, короче различных CNC станков, например: https://github.com/grbl/grbl
Посмотреть, как там реализовано все.
Я несколько раз сталкивался с подобными задачами, приходилось считать кривую заранее, а потом контролировать уже частоту шага. Скорее всего, потом столкнетесь с резонансом, т.к. любой механизм имеет критические частоты, которых нужно избегать, это как раз заранее можно заложить при управлении.
Посмотрите хотя бы статью: https://habr.com/ru/articles/709500/
При управлении двигателями как правило рассматривают три производных (скорость, ускорение и рывок).
Разогнать как-бы не сложно, можно в качестве ограничителя использовать ПИ регулятор, а вот остановить к заданному шагу, нужно постараться
Раньше начнете тормозить, плавно подойдете, но потратите время. Позже - проскочите уставку.
Можно покопаться в исходниках открытых прошивок для 3D принтеров, граверов, короче различных CNC станков, например: https://github.com/grbl/grbl
Посмотреть, как там реализовано все.
Я несколько раз сталкивался с подобными задачами, приходилось считать кривую заранее, а потом контролировать уже частоту шага. Скорее всего, потом столкнетесь с резонансом, т.к. любой механизм имеет критические частоты, которых нужно избегать, это как раз заранее можно заложить при управлении.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
- jane_wild
- master
- Сообщения: 461
- Зарегистрирован: 30 июн 2016, 02:11
- Версия LabVIEW: 2020
- Благодарил (а): 84 раза
- Поблагодарили: 15 раз
- Контактная информация:
Re: S Образная кривая разгона-торможения шагового двигателя
Вы дали мне идею. Вот и я решила рассчитать кривые заранее. Вот что у меня получилось. Не совсем S-образная но все же лучше чем линейная.
-
- leader
- Сообщения: 527
- Зарегистрирован: 28 фев 2010, 18:04
- Версия LabVIEW: LV2018
- Благодарил (а): 10 раз
- Поблагодарили: 18 раз
- Контактная информация:
Re: S Образная кривая разгона-торможения шагового двигателя
Может, кусок синуса от 0 до pi подойдёт?
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 88 раз
Re: S Образная кривая разгона-торможения шагового двигателя
Кривые нужно считать исходя из заданных параметров, это хотя бы должны быть скорость и ускорение.
Дело в том, что при изменении нагрузки эти параметры тоже меняются и необходимо дать возможность их подобрать.
Если Вы установите большую скорость, а крутящего момента будет недостаточно, то будут пропуски шагов.
Например на CNC они подбираются экспериментально: Оптимальный подбор скорости и ускорения
Так же почитайте, как токи установить, нужно их настроить, а потом уже скорость и ускорение....
И не нужно выдумывать никаких S-кривых, там действительно трапеция получится, не факт, что равносторонняя, т.к. ускорение вверх, не всегда совпадает с торможением (отрицательным ускорением). Если посмотрите формулы, там линейная зависимость от времени.
Вот например без учета "рывка" (третьей производной). Если ускорение и торможение совпадают, то сразу можно посчитать время необходимое на полный разгон, и уже исходя из точки назначения, считать момент, когда начать снижать скорость.
Нет, там именно через интегралы (с учетом ограничения сверху и снизу) считаем расстояние, а расстояние делим на длину шага, получаем частоту шага.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
- jane_wild
- master
- Сообщения: 461
- Зарегистрирован: 30 июн 2016, 02:11
- Версия LabVIEW: 2020
- Благодарил (а): 84 раза
- Поблагодарили: 15 раз
- Контактная информация:
Re: S Образная кривая разгона-торможения шагового двигателя
Так я так и старалась.
Скорость - это максимальная частота.
Ускорение - это время за которое достигается максимальная частота.
В моем конкретном случае, нагрузки практически никакой - шаговик вращает устройство, которое создает минимальную нагрузку.
Гораздо более важно, это высчитать и остановить шаговик при заданном количестве оборотов.
Ну например разогнаться до 500 RPM за 2 секунды и плавно остановиться за эти же 2 секунды. за все время сделав при этом 283.7 оборота.
Как правильно указал Иван это не так просто. Реально практически точно в позиции останавливается если в этой точке (see screenshot)
число целое, если дробное, то остановка происходит раньше.
- Вложения
-
- Stepper Control.zip
- LV2016
- (27.92 КБ) 22 скачивания
-
- professor
- Сообщения: 3410
- Зарегистрирован: 31 июл 2011, 23:05
- Награды: 2
- Версия LabVIEW: 12-18
- Благодарил (а): 49 раз
- Поблагодарили: 176 раз
- Контактная информация:
Re: S Образная кривая разгона-торможения шагового двигателя
Может, проблема в округлении? У вас это значение используется как длина массива. И 85/86 точек вполне себе существенно для такой задачи
-
IvanLis
- guru
- Сообщения: 5467
- Зарегистрирован: 02 дек 2009, 17:44
- Награды: 7
- Версия LabVIEW: 2015, 2016
- Откуда: СССР
- Благодарил (а): 28 раз
- Поблагодарили: 88 раз
Re: S Образная кривая разгона-торможения шагового двигателя
Точность позиционирования определяется шагом винта или ремня, не знаю, что у вас.
Ну и режимом работы ШД: полный шаг, полушаг, микро... и т.д. (https://wiki.iarduino.ru/page/shagovye-dvigateli)
Его нельзя взять и остановить в произвольной точке, по крайней мере при управлении через драйвер STEP/DIR.
Тут однозначно, нужно выбирать между скоростью перемещения и точностью позиционирования.
Если драйвер позволяет переходить из режима в режим на лету, то можно попробовать ими управлять, но я с чем сталкивался, там джемперами установки осуществлялись.
Знание нескольких принципов освобождает от знания многих фактов!
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...
Правила форума
Как добавить в сообщение картинку или файл
Конвертация / версий (форматов) VI
Как правильно задать вопрос...