Умножитель частоты шагов на STM32

Контроллеры, драйверы, датчики, управляющие устройства.
Аватара пользователя
tooshka
Почётный участник
Почётный участник
Сообщения: 1803
Зарегистрирован: 24 окт 2012, 14:26
Репутация: 209
Настоящее имя: Андрей
Откуда: Нижний Новгород
Контактная информация:

Re: Умножитель частоты шагов на STM32

Сообщение tooshka »

Крайние Сименсы понравились, гоняли их по восьмерке, постепенно подымая скорость. Лет пять назад такой "опыт" приводил к вставанию колом с такими звуками что страшно становилось.
Милая, ты услышь меня
под окном стою со своим я ЧПУ! (Протяжно; с надрывом; форте)
Внимание!!! Чрезмерное увлечение ЧПУ приводит к проблемам в семейных отношениях!
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: Умножитель частоты шагов на STM32

Сообщение michael-yurov »

Hanter писал(а):как вы при помощи планировщика будете делить движения на G1 и G0....
Строки G0 начинаются с "G0". Соответственно строки движения по траектории с "G1" / "G2" / "G3".
Именно планировщик читает текст УП и планирует движение станка (учитывая настройки скоростей, ускорений и скорости изменения ускорения) на основе этой информации.
Hanter писал(а):в усилителе включены и настроены S-кривые.
Обычно, настройки скорости, ускорения и jerk (скорости изменения ускорения) задаются в системе управления (ну если она умеет учитывать этот jerk). А сервопривод уже должен успевать выполнять те указания, что ему дает система управления. Если не успевает - значит нужно настроить систему управления так, чтобы привод все же успевал.
Hanter писал(а):попробуйте осознать простую вещь - при работе по степ-диру ( а тема вроде как именно про него) S-кривые возможны только на уровне сервоусилителя. или вы хотите реализовать S-кривые на уровне сигнала "Step" ????
В степмастере я реализовал алгоритм очень близкий к S-кривым именно на уровне сигнала Step.
Естественно, он никак не различает, где G0 а где G1.
UAVpilot писал(а):например для движения инструмента по диагонали в плоскости XY требуется согласованное движение осей X и Y
На всякий случай сразу отвечу на этот вопрос применительно к степмастеру: скорость изменения ускорения в моем случае пропорциональна этому самому ускорению и скорости движения по оси. И если мы движемся по диагонали (скажем из X0, Y0 в точку X10, Y2) - ускорение и скорость по Y будут в 5 раз меньше, чем по X, и, соответственно, если сделать jerk по Y в 5 раз меньше, чем по X - никаких искажений прямолинейной траектории не будет.
UAVpilot писал(а):Только вот ускорение на крутом участке S-кривой не должно превышать максимально допустимое для привода/оси, что автоматически предполагает меньшее ускорение на пологих участках S-кривой, т.е. более долгий разгон/торможение, а следовательно инструмент будет дольше работать вне заданных режимов. Вот и получается, что для рабочего движения S-кривые использовать бессмысленно - приходится ограничивать максимальные скорости/ускорения, т.е. то, ради чего эти S-кривые и нужны...
Реальность такова, что при использовании S кривых - снижается нагрузка на приводы, механику, снижаются вибрации станка и получается так, что можно использовать более высокие ускорения для работы.

Это можно сравнить с плавным нажатием на педаль газа в автомобиле и плавным нажатием на педаль тормоза при замедлении.
Получается более комфортно, чем если сразу давить "в пол".
Аватара пользователя
Hanter
Мастер
Сообщения: 5414
Зарегистрирован: 27 янв 2012, 14:52
Репутация: 4338
Настоящее имя: Алексей
Откуда: Питер
Контактная информация:

Re: Умножитель частоты шагов на STM32

Сообщение Hanter »

michael-yurov писал(а):Строки G0 начинаются с "G0". Соответственно строки движения по траектории с "G1" / "G2" / "G3".
Именно планировщик читает текст УП и планирует движение станка (учитывая настройки скоростей, ускорений и скорости изменения ускорения) на основе этой информации.
и че дальше ? он на выходе будет давать импульсы другой формы или что ? как усилителю объяснить что в одном случае наад работать с S-кривыми, а в другом без них ?? именно об этом был вопрос. если в усилителе включена работа с S-кривыми - он все входящие импульсы будет отрабатывать с ними. без разницы по какой команде они сгенерированы.
michael-yurov писал(а):Обычно, настройки скорости, ускорения и jerk (скорости изменения ускорения) задаются в системе управления (ну если она умеет учитывать этот jerk). А сервопривод уже должен успевать выполнять те указания, что ему дает система управления. Если не успевает - значит нужно настроить систему управления так, чтобы привод все же успевал.
Обычно усилитель работающий по степ-диру работает в режиме позиции.. разве нет ??? соответственно он имеет и работает по своему внутреннему ПИДу, и своим внутренним установкам. и именно эти установки будут приоритетны для него. все, абсолютно все команды поданные ему на вход будут отработаны именно по этим установкам. в том числе и с S-кривыми.
посему повторю вопрос - как при этом усилителю объяснить что холостые хода он должен отработать с S-кривыми, а рабочие - без них...
Опыт - это когда на смену вопросам: "Что? Где? Когда? Как? Почему?" Приходит единственный вопрос: "Нахрена?"
==========================================
фрезерная и токарная обработка на станках с чпу.
Резка, гибка, сварка и порошковая окраса.
Аватара пользователя
Prav
Мастер
Сообщения: 834
Зарегистрирован: 14 июл 2015, 05:10
Репутация: 138
Настоящее имя: Петр Раввинский
Откуда: Москва
Контактная информация:

Re: Умножитель частоты шагов на STM32

Сообщение Prav »

Hanter писал(а):Обычно усилитель работающий по степ-диру работает в режиме позиции.. разве нет ??? соответственно он имеет и работает по своему внутреннему ПИДу, и своим внутренним установкам. и именно эти установки будут приоритетны для него. все, абсолютно все команды поданные ему на вход будут отработаны именно по этим установкам. в том числе и с S-кривыми.
Частота импульсов по Step/Dir есть ни что иное как скорость вращения двигателя.
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: Умножитель частоты шагов на STM32

Сообщение michael-yurov »

Hanter писал(а):и че дальше ? он на выходе будет давать импульсы другой формы или что ?
Он будет рассчитывать движение (управление приводами осей) с учетом скорости, ускорения и jerk (именно эти три параметра являются главными для расчета работы приводов по S-кривой).
Hanter писал(а):как усилителю объяснить что в одном случае наад работать с S-кривыми, а в другом без них ?? именно об этом был вопрос.
Ничего ему объяснять не нужно. Усилитель должен выполнять те команды, которые ему дает система ЧПУ. Если система ЧПУ считает нужным двигаться с ограничением скорости изменения ускорения (именно это подразумевается под S-кривой) - такой сигнал управления приводом и будет сформирован, и так и должен будет отработать движение привод.
Hanter писал(а):если в усилителе включена работа с S-кривыми - он все входящие импульсы будет отрабатывать с ними.
Да, так и будет. Это приведет к некоторому отклонению от команд управления, но будет очень быстро скомпенсированно и не приведет к значительному физическому отклонению приводов от целевой позиции.
Hanter писал(а):он все входящие импульсы будет отрабатывать с ними. без разницы по какой команде они сгенерированы.
Да, конечно.
Hanter писал(а):Обычно усилитель работающий по степ-диру работает в режиме позиции.. разве нет ???
Нет. Не бывает приводов, способных мгновенно перемещаться из одной позиции в другую.
Собственно, и расчеты в нем производит ПИД регулятор, а он оперирует уже с параметрами позиции, скорости и ускорения и скорости изменения ускорения.
Hanter писал(а):соответственно он имеет и работает по своему внутреннему ПИДу, и своим внутренним установкам.
Верно. Но эти внутренние установки - это не скорость, ускорение и jerk в чистом виде, а пропорциональная, интегральная и дифференциальная составляющие (ну и еще ряд параметров).
Hanter писал(а):посему повторю вопрос - как при этом усилителю объяснить что холостые хода он должен отработать с S-кривыми, а рабочие - без них...
Так и объяснить - холостые переходы сгенерировать и передать усилителю с учетом S-кривой, а рабочие перемещения - без.
А то что сервопривод сделает не то, что от него просят - это уже его вина.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Умножитель частоты шагов на STM32

Сообщение Serg »

Hanter писал(а):Разъясню свое недоумение - имеем какой то абстрактный усилитель, который работает по степ-диру. имеем какой то абстрактный планировщик, который понимает что есть G01 и G00... в усилителе включены и настроены S-кривые.
В помойку такой усилитель! Ибо только планировщик рассчитывает с какой скоростью какому приводу двигаться. Задача привода строго исполнять полученные от планировщика задания (скорость, направление) без какой-либо отсебятины.
michael-yurov писал(а):Реальность такова, что при использовании S кривых - снижается нагрузка на приводы, механику, снижаются вибрации станка и получается так, что можно использовать более высокие ускорения для работы.
И увеличивается общее время разгона, ибо у системы сервопривод+механика есть некий максимум ускорения, который она может обеспечить. Нацарапал картинку для иллюстрации. "a max" - максимально возможное ускорение для системы, t1 - время разгона до некой скорости с использованием S-curve, t2 - время разгона до той-же скорости с постоянным максимальным ускорением.
s.png
s.png (5.43 КБ) 1920 просмотров
Да, нагрузка снижается, исключаются резкие изменения ускорения, но всё это за счёт увеличения времени разгона. Закон сохранения энергии не получится обойти по S-кривой... :)
Hanter писал(а):как усилителю объяснить что в одном случае наад работать с S-кривыми, а в другом без них ??
А никак, ибо это вне его компетенции.
Вот тебе аналогия: два поезда движутся по одному пути согласно указаниям диспетчера, в какой-то момент машинист первого поезда самостоятельно решает остановится (по S-кривой) и помочится на рельс...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: Умножитель частоты шагов на STM32

Сообщение michael-yurov »

UAVpilot писал(а):И увеличивается общее время разгона, ибо у системы сервопривод+механика есть некий максимум ускорения, который она может обеспечить. Нацарапал картинку для иллюстрации. "a max" - максимально возможное ускорение для системы, t1 - время разгона до некой скорости с использованием S-curve, t2 - время разгона до той-же скорости с постоянным максимальным ускорением.
Я отлично понимаю, что ты говоришь.
Но реальность такова, что этот "некий максимум ускорения" - можно задать разным для работы с учетом S-кривой и без.
При работе с учетом S-кривой, обычно, механика и приводы станка способны обеспечить более высокие ускорения и в итоге сократить конечное время обработки.

Мое мнение по этому вопросу таково, что S-кривая не является функцией описывающей "идеальное" движение. Да, круто. Да, сложно. Но не дает идеального результата.
Т.е. можно сделать еще лучше (еще сократить время обработки, еще больше снизить нагрузки на механику и приводы и при этом увеличить максимальные ускорения), но, такая функция слишком сложно описывается и никогда не сможет достичь идеала из за особенностей работы оборудования и невозможности идеальной настройки каждого конкретного станка.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Умножитель частоты шагов на STM32

Сообщение Serg »

michael-yurov писал(а):При работе с учетом S-кривой, обычно, механика и приводы станка способны обеспечить более высокие ускорения и в итоге сократить итоговое время обработки.
Нет, я это экспериментально пробовал.
Даже PID в приводе настраивается на максимальное ускорение и если его в какой-то момент времени превысить, то в этот-же момент времени настройки PID окажутся неправильными, что чревато колебаниями из-за перерегулирования.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: Умножитель частоты шагов на STM32

Сообщение michael-yurov »

UAVpilot писал(а):Нет, я это экспериментально пробовал.
Даже PID в приводе настраивается на максимальное ускорение и если его в какой-то момент времени превысить, то в этот-же момент времени настройки PID окажутся неправильными, что чревато колебаниями из-за перерегулирования.
Да там нужно то... "капелюшечку". Превысить допустимое ускорение на единицы, или доли процента.

И ты говоришь про сервопривод.
А если взять шаговый? У него крутящий момент непостояннен, и максимально допустимое ускорение привода становится меньше с ростом скорости.
Т.е. при меньших скоростях можно было бы (если бы можно было так настроить систему управления) использовать в разы более высокие ускорения, чем при максимальной скорости.
Да и максимальная скорость - тоже не конкретная величина. Плавно ускоряясь можно достичь значительно более высокой скорости, чем если разгонять привод с максимально возможным ускорением.
Вот и получается, что не могут настройки наших систем управления идеально описать возможности механики и приводов. Ни с S-кривой, ни без нее.
С сервоприводами ситуация лучше - они ближе к характеристикам "идеального" привода, но и с ними не все кристально прозрачно.
Аватара пользователя
Prav
Мастер
Сообщения: 834
Зарегистрирован: 14 июл 2015, 05:10
Репутация: 138
Настоящее имя: Петр Раввинский
Откуда: Москва
Контактная информация:

Re: Умножитель частоты шагов на STM32

Сообщение Prav »

А кто-нибудь знает, существует ли система ЧПУ, в которой кривую разгона/торможения можно задать ЛЮБУЮ? А не только S-образную.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Умножитель частоты шагов на STM32

Сообщение Serg »

michael-yurov писал(а):Да и максимальная скорость - тоже не конкретная величина. Плавно ускоряясь можно достичь значительно более высокой скорости, чем если разгонять привод с максимально возможным ускорением.
Максимальные скорость и ускорения зависят от мощности привода и подвижной массы. Например на автомобиле ты можешь разгонятся и 5 минут и 5 суток, но в итоге в конце разгона максимальная скорость будет одинаковая...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Duhas
Мастер
Сообщения: 1961
Зарегистрирован: 10 окт 2015, 23:25
Репутация: 285
Настоящее имя: Андрей
Откуда: Красноярск
Контактная информация:

Re: Умножитель частоты шагов на STM32

Сообщение Duhas »

Prav писал(а):А кто-нибудь знает, существует ли система ЧПУ, в которой кривую разгона/торможения можно задать ЛЮБУЮ? А не только S-образную.
это например с перерегулированием ? :twisted: зачем вам любая?
Аватара пользователя
Prav
Мастер
Сообщения: 834
Зарегистрирован: 14 июл 2015, 05:10
Репутация: 138
Настоящее имя: Петр Раввинский
Откуда: Москва
Контактная информация:

Re: Умножитель частоты шагов на STM32

Сообщение Prav »

Duhas писал(а):это например с перерегулированием ? зачем вам любая?
Например, в виде колокола кривая разгона/торможения... или как на картинке:
log.jpg
log.jpg (8.96 КБ) 1893 просмотра
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: Умножитель частоты шагов на STM32

Сообщение michael-yurov »

UAVpilot писал(а):Например на автомобиле ты можешь разгонятся и 5 минут и 5 суток, но в итоге в конце разгона максимальная скорость будет одинаковая...
Да вот нифига!
Автомобиль, допустим, способен разогнаться до 100 км/ч за 10 секунд (т.е. способен двигаться с ускорением 10 км/ч/с), но это не значит, что он сможет разогнаться до 200 км/ч за 20 секунд, даже если его максимальная скорость больше 200 км/ч.

И, кстати, ты упоминал закон сохранения энергии... В том то и проблема, что кинетическая энергия на скорости 200 км/ч в 4 раза больше, чем на скорости 100 км/ч, а двигатель не может отдать больше своей максимальной мощности.
Но это не касается сервоприводов с постоянным крутящим моментом - отдаваемая ими мощность растет вместе с ростом скорости.

Я к тому, что системы чпу с ограничением максимального ускорения "заточены" скорее под использование сервоприводов, чем шаговиков.
И, наверное, S-кривая еще точнее описывала бы реальные возможности сервоприводов. Но толку от этого настолько мало, что, на мой взгляд, не стоит и заморачиваться.
Duhas
Мастер
Сообщения: 1961
Зарегистрирован: 10 окт 2015, 23:25
Репутация: 285
Настоящее имя: Андрей
Откуда: Красноярск
Контактная информация:

Re: Умножитель частоты шагов на STM32

Сообщение Duhas »

Prav писал(а):
Duhas писал(а):это например с перерегулированием ? зачем вам любая?
Например, в виде колокола кривая разгона/торможения... или как на картинке:
тут у вас участок привой, и вы так и не ответили на вопрос "м
michael-yurov писал(а): И, наверное, S-кривая еще точнее описывала бы реальные возможности сервоприводов
S кривая нужна больше не для привода, а для того что он таскает, вам, например, в лифте нравится если лифт рвет со всей дури и резко останавливается? станку тоже не принесут пользы резкие движения, а S кривая задумана для плавного выхода в положение с нулевой скоростью и такого же старта.

и да, в многоосевом ЧПУ планировщих должен считать общую кривую - т.е. согласованную для всех приводов, у каждого привода она будет своя, однако инструмент/деталь не должны сойти с заданной траектории.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Умножитель частоты шагов на STM32

Сообщение MX_Master »

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

Какой вариант умножения шагов (на 2) правильный?
2017-05-18_132040.jpg (1850 просмотров) <a class='original' href='./download/file.php?id=111787&mode=view' target=_blank>Загрузить оригинал (25.98 КБ)</a>
Аватара пользователя
Taganrog
Мастер
Сообщения: 1238
Зарегистрирован: 15 апр 2015, 16:32
Репутация: 284
Настоящее имя: Евгений
Откуда: Брянск
Контактная информация:

Re: Умножитель частоты шагов на STM32

Сообщение Taganrog »

Таки средний :)
нижняя на картинке это умножение на 3.
Аватара пользователя
aegis
Мастер
Сообщения: 3171
Зарегистрирован: 22 мар 2012, 06:59
Репутация: 1810
Настоящее имя: Михайло
Откуда: Україна, Конотоп=>Запоріжжя=>Харьків

Re: Умножитель частоты шагов на STM32

Сообщение aegis »

MX_Master, думаю по 2м импульсам неправильно смотреть на график
нікому нічого не нав'язую.
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: Умножитель частоты шагов на STM32

Сообщение michael-yurov »

MX_Master писал(а): Какой вариант умножения шагов (на 2) правильный?
У большинства контроллеров чпу длительность импульсов постоянна. Часто ее можно настроить.
Аватара пользователя
Hanter
Мастер
Сообщения: 5414
Зарегистрирован: 27 янв 2012, 14:52
Репутация: 4338
Настоящее имя: Алексей
Откуда: Питер
Контактная информация:

Re: Умножитель частоты шагов на STM32

Сообщение Hanter »

michael-yurov писал(а):Он будет рассчитывать движение (управление приводами осей) с учетом скорости, ускорения и jerk (именно эти три параметра являются главными для расчета работы приводов по S-кривой)
кто он ? планировщик ?? он может рассчитывать что угодно. только усилитель отработает это в соответствии со своими настройками. и планировщик об этих настройках ничего не знает.
michael-yurov писал(а):Ничего ему объяснять не нужно. Усилитель должен выполнять те команды, которые ему дает система ЧПУ. Если система ЧПУ считает нужным двигаться с ограничением скорости изменения ускорения (именно это подразумевается под S-кривой) - такой сигнал управления приводом и будет сформирован, и так и должен будет отработать движение привод.
правильно. только должен выполнять в соответствии со своими настройками, которые для него приоритетны. соответственно возникает некий парадокс - планировщик рассчитывает какие то S-кривые, которые усилитель должен должен отработать с учетом своих настроек S-кривых.. не находите ничего подозрительного ??? :)
michael-yurov писал(а):Hanter писал(а):
если в усилителе включена работа с S-кривыми - он все входящие импульсы будет отрабатывать с ними.
Да, так и будет. Это приведет к некоторому отклонению от команд управления, но будет очень быстро скомпенсированно и не приведет к значительному физическому отклонению приводов от целевой позиции.
а я разве не об этом говорил ? прочитайте внимательно - мной было сказано что абсолютно все входящие сигналы будут отработаны с S-кривыми.. оппонент же доказывал что с S-кривыми будут отработаны только холостые хода... :)
michael-yurov писал(а):Обычно усилитель работающий по степ-диру работает в режиме позиции.. разве нет ???
Нет. Не бывает приводов, способных мгновенно перемещаться из одной позиции в другую.
оо!!!! очередное озарение ??? нука давайте как теперь вы приведите мне ссылку на любой ражим работы сервопривода управляемого по степ-диру, отличный от режима позиции... ссылку или скриншет в студию..
michael-yurov писал(а):Так и объяснить - холостые переходы сгенерировать и передать усилителю с учетом S-кривой, а рабочие перемещения - без.
А то что сервопривод сделает не то, что от него просят - это уже его вина.
ээээээ ..... просто нет слов.. я правильно понимаю что вы предлагаете в одном случае сгенерировать пакеты управляющих импульсов с учетом S-кривых усилителя, а во втором случае не учитывая их ????? ЗАЧОТ !!!!
Опыт - это когда на смену вопросам: "Что? Где? Когда? Как? Почему?" Приходит единственный вопрос: "Нахрена?"
==========================================
фрезерная и токарная обработка на станках с чпу.
Резка, гибка, сварка и порошковая окраса.
Ответить

Вернуться в «Электроника»