Умножитель частоты шагов на STM32
- tooshka
- Почётный участник

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

- Сообщения: 11730
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4703
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: Умножитель частоты шагов на STM32
Строки G0 начинаются с "G0". Соответственно строки движения по траектории с "G1" / "G2" / "G3".Hanter писал(а):как вы при помощи планировщика будете делить движения на G1 и G0....
Именно планировщик читает текст УП и планирует движение станка (учитывая настройки скоростей, ускорений и скорости изменения ускорения) на основе этой информации.
Обычно, настройки скорости, ускорения и jerk (скорости изменения ускорения) задаются в системе управления (ну если она умеет учитывать этот jerk). А сервопривод уже должен успевать выполнять те указания, что ему дает система управления. Если не успевает - значит нужно настроить систему управления так, чтобы привод все же успевал.Hanter писал(а):в усилителе включены и настроены S-кривые.
В степмастере я реализовал алгоритм очень близкий к S-кривым именно на уровне сигнала Step.Hanter писал(а):попробуйте осознать простую вещь - при работе по степ-диру ( а тема вроде как именно про него) S-кривые возможны только на уровне сервоусилителя. или вы хотите реализовать S-кривые на уровне сигнала "Step" ????
Естественно, он никак не различает, где G0 а где G1.
На всякий случай сразу отвечу на этот вопрос применительно к степмастеру: скорость изменения ускорения в моем случае пропорциональна этому самому ускорению и скорости движения по оси. И если мы движемся по диагонали (скажем из X0, Y0 в точку X10, Y2) - ускорение и скорость по Y будут в 5 раз меньше, чем по X, и, соответственно, если сделать jerk по Y в 5 раз меньше, чем по X - никаких искажений прямолинейной траектории не будет.UAVpilot писал(а):например для движения инструмента по диагонали в плоскости XY требуется согласованное движение осей X и Y
Реальность такова, что при использовании S кривых - снижается нагрузка на приводы, механику, снижаются вибрации станка и получается так, что можно использовать более высокие ускорения для работы.UAVpilot писал(а):Только вот ускорение на крутом участке S-кривой не должно превышать максимально допустимое для привода/оси, что автоматически предполагает меньшее ускорение на пологих участках S-кривой, т.е. более долгий разгон/торможение, а следовательно инструмент будет дольше работать вне заданных режимов. Вот и получается, что для рабочего движения S-кривые использовать бессмысленно - приходится ограничивать максимальные скорости/ускорения, т.е. то, ради чего эти S-кривые и нужны...
Это можно сравнить с плавным нажатием на педаль газа в автомобиле и плавным нажатием на педаль тормоза при замедлении.
Получается более комфортно, чем если сразу давить "в пол".
- Hanter
- Мастер
- Сообщения: 5414
- Зарегистрирован: 27 янв 2012, 14:52
- Репутация: 4338
- Настоящее имя: Алексей
- Откуда: Питер
- Контактная информация:
Re: Умножитель частоты шагов на STM32
и че дальше ? он на выходе будет давать импульсы другой формы или что ? как усилителю объяснить что в одном случае наад работать с S-кривыми, а в другом без них ?? именно об этом был вопрос. если в усилителе включена работа с S-кривыми - он все входящие импульсы будет отрабатывать с ними. без разницы по какой команде они сгенерированы.michael-yurov писал(а):Строки G0 начинаются с "G0". Соответственно строки движения по траектории с "G1" / "G2" / "G3".
Именно планировщик читает текст УП и планирует движение станка (учитывая настройки скоростей, ускорений и скорости изменения ускорения) на основе этой информации.
Обычно усилитель работающий по степ-диру работает в режиме позиции.. разве нет ??? соответственно он имеет и работает по своему внутреннему ПИДу, и своим внутренним установкам. и именно эти установки будут приоритетны для него. все, абсолютно все команды поданные ему на вход будут отработаны именно по этим установкам. в том числе и с S-кривыми.michael-yurov писал(а):Обычно, настройки скорости, ускорения и jerk (скорости изменения ускорения) задаются в системе управления (ну если она умеет учитывать этот jerk). А сервопривод уже должен успевать выполнять те указания, что ему дает система управления. Если не успевает - значит нужно настроить систему управления так, чтобы привод все же успевал.
посему повторю вопрос - как при этом усилителю объяснить что холостые хода он должен отработать с S-кривыми, а рабочие - без них...
Опыт - это когда на смену вопросам: "Что? Где? Когда? Как? Почему?" Приходит единственный вопрос: "Нахрена?"
==========================================
фрезерная и токарная обработка на станках с чпу.
Резка, гибка, сварка и порошковая окраса.
==========================================
фрезерная и токарная обработка на станках с чпу.
Резка, гибка, сварка и порошковая окраса.
- Prav
- Мастер
- Сообщения: 834
- Зарегистрирован: 14 июл 2015, 05:10
- Репутация: 138
- Настоящее имя: Петр Раввинский
- Откуда: Москва
- Контактная информация:
Re: Умножитель частоты шагов на STM32
Частота импульсов по Step/Dir есть ни что иное как скорость вращения двигателя.Hanter писал(а):Обычно усилитель работающий по степ-диру работает в режиме позиции.. разве нет ??? соответственно он имеет и работает по своему внутреннему ПИДу, и своим внутренним установкам. и именно эти установки будут приоритетны для него. все, абсолютно все команды поданные ему на вход будут отработаны именно по этим установкам. в том числе и с S-кривыми.
- michael-yurov
- Почётный участник

- Сообщения: 11730
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4703
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: Умножитель частоты шагов на STM32
Он будет рассчитывать движение (управление приводами осей) с учетом скорости, ускорения и jerk (именно эти три параметра являются главными для расчета работы приводов по S-кривой).Hanter писал(а):и че дальше ? он на выходе будет давать импульсы другой формы или что ?
Ничего ему объяснять не нужно. Усилитель должен выполнять те команды, которые ему дает система ЧПУ. Если система ЧПУ считает нужным двигаться с ограничением скорости изменения ускорения (именно это подразумевается под S-кривой) - такой сигнал управления приводом и будет сформирован, и так и должен будет отработать движение привод.Hanter писал(а):как усилителю объяснить что в одном случае наад работать с S-кривыми, а в другом без них ?? именно об этом был вопрос.
Да, так и будет. Это приведет к некоторому отклонению от команд управления, но будет очень быстро скомпенсированно и не приведет к значительному физическому отклонению приводов от целевой позиции.Hanter писал(а):если в усилителе включена работа с S-кривыми - он все входящие импульсы будет отрабатывать с ними.
Да, конечно.Hanter писал(а):он все входящие импульсы будет отрабатывать с ними. без разницы по какой команде они сгенерированы.
Нет. Не бывает приводов, способных мгновенно перемещаться из одной позиции в другую.Hanter писал(а):Обычно усилитель работающий по степ-диру работает в режиме позиции.. разве нет ???
Собственно, и расчеты в нем производит ПИД регулятор, а он оперирует уже с параметрами позиции, скорости и ускорения и скорости изменения ускорения.
Верно. Но эти внутренние установки - это не скорость, ускорение и jerk в чистом виде, а пропорциональная, интегральная и дифференциальная составляющие (ну и еще ряд параметров).Hanter писал(а):соответственно он имеет и работает по своему внутреннему ПИДу, и своим внутренним установкам.
Так и объяснить - холостые переходы сгенерировать и передать усилителю с учетом S-кривой, а рабочие перемещения - без.Hanter писал(а):посему повторю вопрос - как при этом усилителю объяснить что холостые хода он должен отработать с S-кривыми, а рабочие - без них...
А то что сервопривод сделает не то, что от него просят - это уже его вина.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Умножитель частоты шагов на STM32
В помойку такой усилитель! Ибо только планировщик рассчитывает с какой скоростью какому приводу двигаться. Задача привода строго исполнять полученные от планировщика задания (скорость, направление) без какой-либо отсебятины.Hanter писал(а):Разъясню свое недоумение - имеем какой то абстрактный усилитель, который работает по степ-диру. имеем какой то абстрактный планировщик, который понимает что есть G01 и G00... в усилителе включены и настроены S-кривые.
И увеличивается общее время разгона, ибо у системы сервопривод+механика есть некий максимум ускорения, который она может обеспечить. Нацарапал картинку для иллюстрации. "a max" - максимально возможное ускорение для системы, t1 - время разгона до некой скорости с использованием S-curve, t2 - время разгона до той-же скорости с постоянным максимальным ускорением.michael-yurov писал(а):Реальность такова, что при использовании S кривых - снижается нагрузка на приводы, механику, снижаются вибрации станка и получается так, что можно использовать более высокие ускорения для работы.
Да, нагрузка снижается, исключаются резкие изменения ускорения, но всё это за счёт увеличения времени разгона. Закон сохранения энергии не получится обойти по S-кривой...
А никак, ибо это вне его компетенции.Hanter писал(а):как усилителю объяснить что в одном случае наад работать с S-кривыми, а в другом без них ??
Вот тебе аналогия: два поезда движутся по одному пути согласно указаниям диспетчера, в какой-то момент машинист первого поезда самостоятельно решает остановится (по S-кривой) и помочится на рельс...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- michael-yurov
- Почётный участник

- Сообщения: 11730
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4703
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: Умножитель частоты шагов на STM32
Я отлично понимаю, что ты говоришь.UAVpilot писал(а):И увеличивается общее время разгона, ибо у системы сервопривод+механика есть некий максимум ускорения, который она может обеспечить. Нацарапал картинку для иллюстрации. "a max" - максимально возможное ускорение для системы, t1 - время разгона до некой скорости с использованием S-curve, t2 - время разгона до той-же скорости с постоянным максимальным ускорением.
Но реальность такова, что этот "некий максимум ускорения" - можно задать разным для работы с учетом S-кривой и без.
При работе с учетом S-кривой, обычно, механика и приводы станка способны обеспечить более высокие ускорения и в итоге сократить конечное время обработки.
Мое мнение по этому вопросу таково, что S-кривая не является функцией описывающей "идеальное" движение. Да, круто. Да, сложно. Но не дает идеального результата.
Т.е. можно сделать еще лучше (еще сократить время обработки, еще больше снизить нагрузки на механику и приводы и при этом увеличить максимальные ускорения), но, такая функция слишком сложно описывается и никогда не сможет достичь идеала из за особенностей работы оборудования и невозможности идеальной настройки каждого конкретного станка.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Умножитель частоты шагов на STM32
Нет, я это экспериментально пробовал.michael-yurov писал(а):При работе с учетом S-кривой, обычно, механика и приводы станка способны обеспечить более высокие ускорения и в итоге сократить итоговое время обработки.
Даже PID в приводе настраивается на максимальное ускорение и если его в какой-то момент времени превысить, то в этот-же момент времени настройки PID окажутся неправильными, что чревато колебаниями из-за перерегулирования.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- michael-yurov
- Почётный участник

- Сообщения: 11730
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4703
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: Умножитель частоты шагов на STM32
Да там нужно то... "капелюшечку". Превысить допустимое ускорение на единицы, или доли процента.UAVpilot писал(а):Нет, я это экспериментально пробовал.
Даже PID в приводе настраивается на максимальное ускорение и если его в какой-то момент времени превысить, то в этот-же момент времени настройки PID окажутся неправильными, что чревато колебаниями из-за перерегулирования.
И ты говоришь про сервопривод.
А если взять шаговый? У него крутящий момент непостояннен, и максимально допустимое ускорение привода становится меньше с ростом скорости.
Т.е. при меньших скоростях можно было бы (если бы можно было так настроить систему управления) использовать в разы более высокие ускорения, чем при максимальной скорости.
Да и максимальная скорость - тоже не конкретная величина. Плавно ускоряясь можно достичь значительно более высокой скорости, чем если разгонять привод с максимально возможным ускорением.
Вот и получается, что не могут настройки наших систем управления идеально описать возможности механики и приводов. Ни с S-кривой, ни без нее.
С сервоприводами ситуация лучше - они ближе к характеристикам "идеального" привода, но и с ними не все кристально прозрачно.
- Prav
- Мастер
- Сообщения: 834
- Зарегистрирован: 14 июл 2015, 05:10
- Репутация: 138
- Настоящее имя: Петр Раввинский
- Откуда: Москва
- Контактная информация:
Re: Умножитель частоты шагов на STM32
А кто-нибудь знает, существует ли система ЧПУ, в которой кривую разгона/торможения можно задать ЛЮБУЮ? А не только S-образную.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Умножитель частоты шагов на STM32
Максимальные скорость и ускорения зависят от мощности привода и подвижной массы. Например на автомобиле ты можешь разгонятся и 5 минут и 5 суток, но в итоге в конце разгона максимальная скорость будет одинаковая...michael-yurov писал(а):Да и максимальная скорость - тоже не конкретная величина. Плавно ускоряясь можно достичь значительно более высокой скорости, чем если разгонять привод с максимально возможным ускорением.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
Duhas
- Мастер
- Сообщения: 1961
- Зарегистрирован: 10 окт 2015, 23:25
- Репутация: 285
- Настоящее имя: Андрей
- Откуда: Красноярск
- Контактная информация:
Re: Умножитель частоты шагов на STM32
это например с перерегулированием ?Prav писал(а):А кто-нибудь знает, существует ли система ЧПУ, в которой кривую разгона/торможения можно задать ЛЮБУЮ? А не только S-образную.
- Prav
- Мастер
- Сообщения: 834
- Зарегистрирован: 14 июл 2015, 05:10
- Репутация: 138
- Настоящее имя: Петр Раввинский
- Откуда: Москва
- Контактная информация:
Re: Умножитель частоты шагов на STM32
Например, в виде колокола кривая разгона/торможения... или как на картинке:Duhas писал(а):это например с перерегулированием ? зачем вам любая?
- michael-yurov
- Почётный участник

- Сообщения: 11730
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4703
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: Умножитель частоты шагов на STM32
Да вот нифига!UAVpilot писал(а):Например на автомобиле ты можешь разгонятся и 5 минут и 5 суток, но в итоге в конце разгона максимальная скорость будет одинаковая...
Автомобиль, допустим, способен разогнаться до 100 км/ч за 10 секунд (т.е. способен двигаться с ускорением 10 км/ч/с), но это не значит, что он сможет разогнаться до 200 км/ч за 20 секунд, даже если его максимальная скорость больше 200 км/ч.
И, кстати, ты упоминал закон сохранения энергии... В том то и проблема, что кинетическая энергия на скорости 200 км/ч в 4 раза больше, чем на скорости 100 км/ч, а двигатель не может отдать больше своей максимальной мощности.
Но это не касается сервоприводов с постоянным крутящим моментом - отдаваемая ими мощность растет вместе с ростом скорости.
Я к тому, что системы чпу с ограничением максимального ускорения "заточены" скорее под использование сервоприводов, чем шаговиков.
И, наверное, S-кривая еще точнее описывала бы реальные возможности сервоприводов. Но толку от этого настолько мало, что, на мой взгляд, не стоит и заморачиваться.
-
Duhas
- Мастер
- Сообщения: 1961
- Зарегистрирован: 10 окт 2015, 23:25
- Репутация: 285
- Настоящее имя: Андрей
- Откуда: Красноярск
- Контактная информация:
Re: Умножитель частоты шагов на STM32
тут у вас участок привой, и вы так и не ответили на вопрос "мPrav писал(а):Например, в виде колокола кривая разгона/торможения... или как на картинке:Duhas писал(а):это например с перерегулированием ? зачем вам любая?
S кривая нужна больше не для привода, а для того что он таскает, вам, например, в лифте нравится если лифт рвет со всей дури и резко останавливается? станку тоже не принесут пользы резкие движения, а S кривая задумана для плавного выхода в положение с нулевой скоростью и такого же старта.michael-yurov писал(а): И, наверное, S-кривая еще точнее описывала бы реальные возможности сервоприводов
и да, в многоосевом ЧПУ планировщих должен считать общую кривую - т.е. согласованную для всех приводов, у каждого привода она будет своя, однако инструмент/деталь не должны сойти с заданной траектории.
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Умножитель частоты шагов на STM32
После таких глубоких тем даже неудобно задавать такой вопрос, но попробую..
Какой вариант умножения шагов (на 2) правильный?
Какой вариант умножения шагов (на 2) правильный?
- Taganrog
- Мастер
- Сообщения: 1238
- Зарегистрирован: 15 апр 2015, 16:32
- Репутация: 284
- Настоящее имя: Евгений
- Откуда: Брянск
- Контактная информация:
Re: Умножитель частоты шагов на STM32
Таки средний 
нижняя на картинке это умножение на 3.
нижняя на картинке это умножение на 3.
- aegis
- Мастер
- Сообщения: 3171
- Зарегистрирован: 22 мар 2012, 06:59
- Репутация: 1810
- Настоящее имя: Михайло
- Откуда: Україна, Конотоп=>Запоріжжя=>Харьків
Re: Умножитель частоты шагов на STM32
MX_Master, думаю по 2м импульсам неправильно смотреть на график
нікому нічого не нав'язую.
- michael-yurov
- Почётный участник

- Сообщения: 11730
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4703
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: Умножитель частоты шагов на STM32
У большинства контроллеров чпу длительность импульсов постоянна. Часто ее можно настроить.MX_Master писал(а): Какой вариант умножения шагов (на 2) правильный?
- Hanter
- Мастер
- Сообщения: 5414
- Зарегистрирован: 27 янв 2012, 14:52
- Репутация: 4338
- Настоящее имя: Алексей
- Откуда: Питер
- Контактная информация:
Re: Умножитель частоты шагов на STM32
кто он ? планировщик ?? он может рассчитывать что угодно. только усилитель отработает это в соответствии со своими настройками. и планировщик об этих настройках ничего не знает.michael-yurov писал(а):Он будет рассчитывать движение (управление приводами осей) с учетом скорости, ускорения и jerk (именно эти три параметра являются главными для расчета работы приводов по S-кривой)
правильно. только должен выполнять в соответствии со своими настройками, которые для него приоритетны. соответственно возникает некий парадокс - планировщик рассчитывает какие то S-кривые, которые усилитель должен должен отработать с учетом своих настроек S-кривых.. не находите ничего подозрительного ???michael-yurov писал(а):Ничего ему объяснять не нужно. Усилитель должен выполнять те команды, которые ему дает система ЧПУ. Если система ЧПУ считает нужным двигаться с ограничением скорости изменения ускорения (именно это подразумевается под S-кривой) - такой сигнал управления приводом и будет сформирован, и так и должен будет отработать движение привод.
а я разве не об этом говорил ? прочитайте внимательно - мной было сказано что абсолютно все входящие сигналы будут отработаны с S-кривыми.. оппонент же доказывал что с S-кривыми будут отработаны только холостые хода...michael-yurov писал(а):Hanter писал(а):
если в усилителе включена работа с S-кривыми - он все входящие импульсы будет отрабатывать с ними.
Да, так и будет. Это приведет к некоторому отклонению от команд управления, но будет очень быстро скомпенсированно и не приведет к значительному физическому отклонению приводов от целевой позиции.
оо!!!! очередное озарение ??? нука давайте как теперь вы приведите мне ссылку на любой ражим работы сервопривода управляемого по степ-диру, отличный от режима позиции... ссылку или скриншет в студию..michael-yurov писал(а):Обычно усилитель работающий по степ-диру работает в режиме позиции.. разве нет ???
Нет. Не бывает приводов, способных мгновенно перемещаться из одной позиции в другую.
ээээээ ..... просто нет слов.. я правильно понимаю что вы предлагаете в одном случае сгенерировать пакеты управляющих импульсов с учетом S-кривых усилителя, а во втором случае не учитывая их ????? ЗАЧОТ !!!!michael-yurov писал(а):Так и объяснить - холостые переходы сгенерировать и передать усилителю с учетом S-кривой, а рабочие перемещения - без.
А то что сервопривод сделает не то, что от него просят - это уже его вина.
Опыт - это когда на смену вопросам: "Что? Где? Когда? Как? Почему?" Приходит единственный вопрос: "Нахрена?"
==========================================
фрезерная и токарная обработка на станках с чпу.
Резка, гибка, сварка и порошковая окраса.
==========================================
фрезерная и токарная обработка на станках с чпу.
Резка, гибка, сварка и порошковая окраса.