Страница 14 из 20

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

Добавлено: 17 май 2017, 15:16
tooshka
Крайние Сименсы понравились, гоняли их по восьмерке, постепенно подымая скорость. Лет пять назад такой "опыт" приводил к вставанию колом с такими звуками что страшно становилось.

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

Добавлено: 17 май 2017, 15:28
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 кривых - снижается нагрузка на приводы, механику, снижаются вибрации станка и получается так, что можно использовать более высокие ускорения для работы.

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

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

Добавлено: 17 май 2017, 15:58
Hanter
michael-yurov писал(а):Строки G0 начинаются с "G0". Соответственно строки движения по траектории с "G1" / "G2" / "G3".
Именно планировщик читает текст УП и планирует движение станка (учитывая настройки скоростей, ускорений и скорости изменения ускорения) на основе этой информации.
и че дальше ? он на выходе будет давать импульсы другой формы или что ? как усилителю объяснить что в одном случае наад работать с S-кривыми, а в другом без них ?? именно об этом был вопрос. если в усилителе включена работа с S-кривыми - он все входящие импульсы будет отрабатывать с ними. без разницы по какой команде они сгенерированы.
michael-yurov писал(а):Обычно, настройки скорости, ускорения и jerk (скорости изменения ускорения) задаются в системе управления (ну если она умеет учитывать этот jerk). А сервопривод уже должен успевать выполнять те указания, что ему дает система управления. Если не успевает - значит нужно настроить систему управления так, чтобы привод все же успевал.
Обычно усилитель работающий по степ-диру работает в режиме позиции.. разве нет ??? соответственно он имеет и работает по своему внутреннему ПИДу, и своим внутренним установкам. и именно эти установки будут приоритетны для него. все, абсолютно все команды поданные ему на вход будут отработаны именно по этим установкам. в том числе и с S-кривыми.
посему повторю вопрос - как при этом усилителю объяснить что холостые хода он должен отработать с S-кривыми, а рабочие - без них...

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

Добавлено: 17 май 2017, 16:53
Prav
Hanter писал(а):Обычно усилитель работающий по степ-диру работает в режиме позиции.. разве нет ??? соответственно он имеет и работает по своему внутреннему ПИДу, и своим внутренним установкам. и именно эти установки будут приоритетны для него. все, абсолютно все команды поданные ему на вход будут отработаны именно по этим установкам. в том числе и с S-кривыми.
Частота импульсов по Step/Dir есть ни что иное как скорость вращения двигателя.

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

Добавлено: 17 май 2017, 16:55
michael-yurov
Hanter писал(а):и че дальше ? он на выходе будет давать импульсы другой формы или что ?
Он будет рассчитывать движение (управление приводами осей) с учетом скорости, ускорения и jerk (именно эти три параметра являются главными для расчета работы приводов по S-кривой).
Hanter писал(а):как усилителю объяснить что в одном случае наад работать с S-кривыми, а в другом без них ?? именно об этом был вопрос.
Ничего ему объяснять не нужно. Усилитель должен выполнять те команды, которые ему дает система ЧПУ. Если система ЧПУ считает нужным двигаться с ограничением скорости изменения ускорения (именно это подразумевается под S-кривой) - такой сигнал управления приводом и будет сформирован, и так и должен будет отработать движение привод.
Hanter писал(а):если в усилителе включена работа с S-кривыми - он все входящие импульсы будет отрабатывать с ними.
Да, так и будет. Это приведет к некоторому отклонению от команд управления, но будет очень быстро скомпенсированно и не приведет к значительному физическому отклонению приводов от целевой позиции.
Hanter писал(а):он все входящие импульсы будет отрабатывать с ними. без разницы по какой команде они сгенерированы.
Да, конечно.
Hanter писал(а):Обычно усилитель работающий по степ-диру работает в режиме позиции.. разве нет ???
Нет. Не бывает приводов, способных мгновенно перемещаться из одной позиции в другую.
Собственно, и расчеты в нем производит ПИД регулятор, а он оперирует уже с параметрами позиции, скорости и ускорения и скорости изменения ускорения.
Hanter писал(а):соответственно он имеет и работает по своему внутреннему ПИДу, и своим внутренним установкам.
Верно. Но эти внутренние установки - это не скорость, ускорение и jerk в чистом виде, а пропорциональная, интегральная и дифференциальная составляющие (ну и еще ряд параметров).
Hanter писал(а):посему повторю вопрос - как при этом усилителю объяснить что холостые хода он должен отработать с S-кривыми, а рабочие - без них...
Так и объяснить - холостые переходы сгенерировать и передать усилителю с учетом S-кривой, а рабочие перемещения - без.
А то что сервопривод сделает не то, что от него просят - это уже его вина.

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

Добавлено: 17 май 2017, 17:07
Serg
Hanter писал(а):Разъясню свое недоумение - имеем какой то абстрактный усилитель, который работает по степ-диру. имеем какой то абстрактный планировщик, который понимает что есть G01 и G00... в усилителе включены и настроены S-кривые.
В помойку такой усилитель! Ибо только планировщик рассчитывает с какой скоростью какому приводу двигаться. Задача привода строго исполнять полученные от планировщика задания (скорость, направление) без какой-либо отсебятины.
michael-yurov писал(а):Реальность такова, что при использовании S кривых - снижается нагрузка на приводы, механику, снижаются вибрации станка и получается так, что можно использовать более высокие ускорения для работы.
И увеличивается общее время разгона, ибо у системы сервопривод+механика есть некий максимум ускорения, который она может обеспечить. Нацарапал картинку для иллюстрации. "a max" - максимально возможное ускорение для системы, t1 - время разгона до некой скорости с использованием S-curve, t2 - время разгона до той-же скорости с постоянным максимальным ускорением.
s.png
s.png (5.43 КБ) 1935 просмотров
Да, нагрузка снижается, исключаются резкие изменения ускорения, но всё это за счёт увеличения времени разгона. Закон сохранения энергии не получится обойти по S-кривой... :)
Hanter писал(а):как усилителю объяснить что в одном случае наад работать с S-кривыми, а в другом без них ??
А никак, ибо это вне его компетенции.
Вот тебе аналогия: два поезда движутся по одному пути согласно указаниям диспетчера, в какой-то момент машинист первого поезда самостоятельно решает остановится (по S-кривой) и помочится на рельс...

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

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

Мое мнение по этому вопросу таково, что S-кривая не является функцией описывающей "идеальное" движение. Да, круто. Да, сложно. Но не дает идеального результата.
Т.е. можно сделать еще лучше (еще сократить время обработки, еще больше снизить нагрузки на механику и приводы и при этом увеличить максимальные ускорения), но, такая функция слишком сложно описывается и никогда не сможет достичь идеала из за особенностей работы оборудования и невозможности идеальной настройки каждого конкретного станка.

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

Добавлено: 17 май 2017, 17:29
Serg
michael-yurov писал(а):При работе с учетом S-кривой, обычно, механика и приводы станка способны обеспечить более высокие ускорения и в итоге сократить итоговое время обработки.
Нет, я это экспериментально пробовал.
Даже PID в приводе настраивается на максимальное ускорение и если его в какой-то момент времени превысить, то в этот-же момент времени настройки PID окажутся неправильными, что чревато колебаниями из-за перерегулирования.

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

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

И ты говоришь про сервопривод.
А если взять шаговый? У него крутящий момент непостояннен, и максимально допустимое ускорение привода становится меньше с ростом скорости.
Т.е. при меньших скоростях можно было бы (если бы можно было так настроить систему управления) использовать в разы более высокие ускорения, чем при максимальной скорости.
Да и максимальная скорость - тоже не конкретная величина. Плавно ускоряясь можно достичь значительно более высокой скорости, чем если разгонять привод с максимально возможным ускорением.
Вот и получается, что не могут настройки наших систем управления идеально описать возможности механики и приводов. Ни с S-кривой, ни без нее.
С сервоприводами ситуация лучше - они ближе к характеристикам "идеального" привода, но и с ними не все кристально прозрачно.

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

Добавлено: 17 май 2017, 17:53
Prav
А кто-нибудь знает, существует ли система ЧПУ, в которой кривую разгона/торможения можно задать ЛЮБУЮ? А не только S-образную.

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

Добавлено: 17 май 2017, 17:58
Serg
michael-yurov писал(а):Да и максимальная скорость - тоже не конкретная величина. Плавно ускоряясь можно достичь значительно более высокой скорости, чем если разгонять привод с максимально возможным ускорением.
Максимальные скорость и ускорения зависят от мощности привода и подвижной массы. Например на автомобиле ты можешь разгонятся и 5 минут и 5 суток, но в итоге в конце разгона максимальная скорость будет одинаковая...

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

Добавлено: 17 май 2017, 18:39
Duhas
Prav писал(а):А кто-нибудь знает, существует ли система ЧПУ, в которой кривую разгона/торможения можно задать ЛЮБУЮ? А не только S-образную.
это например с перерегулированием ? :twisted: зачем вам любая?

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

Добавлено: 17 май 2017, 18:47
Prav
Duhas писал(а):это например с перерегулированием ? зачем вам любая?
Например, в виде колокола кривая разгона/торможения... или как на картинке:
log.jpg
log.jpg (8.96 КБ) 1908 просмотров

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

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

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

Я к тому, что системы чпу с ограничением максимального ускорения "заточены" скорее под использование сервоприводов, чем шаговиков.
И, наверное, S-кривая еще точнее описывала бы реальные возможности сервоприводов. Но толку от этого настолько мало, что, на мой взгляд, не стоит и заморачиваться.

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

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

и да, в многоосевом ЧПУ планировщих должен считать общую кривую - т.е. согласованную для всех приводов, у каждого привода она будет своя, однако инструмент/деталь не должны сойти с заданной траектории.

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

Добавлено: 18 май 2017, 10:26
MX_Master
После таких глубоких тем даже неудобно задавать такой вопрос, но попробую..

Какой вариант умножения шагов (на 2) правильный?
2017-05-18_132040.jpg (1865 просмотров) <a class='original' href='./download/file.php?id=111787&mode=view' target=_blank>Загрузить оригинал (25.98 КБ)</a>

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

Добавлено: 18 май 2017, 10:35
Taganrog
Таки средний :)
нижняя на картинке это умножение на 3.

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

Добавлено: 18 май 2017, 10:51
aegis
MX_Master, думаю по 2м импульсам неправильно смотреть на график

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

Добавлено: 18 май 2017, 10:59
michael-yurov
MX_Master писал(а): Какой вариант умножения шагов (на 2) правильный?
У большинства контроллеров чпу длительность импульсов постоянна. Часто ее можно настроить.

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

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