Спорный момент по кинематике.

Последнее редактирование:
Юр, ты рассматриваешь поведение механики для непрерывного нарастания скоростей. В реалиях же нарастание скоростей дискретно. Задается дискретизация по скоростям (dV, скажем, 10мм/мин) и ускорение. Зная ускорение, расчитывается интервал времени dt, внутри которого скорость постоянна. На практике dV выбирается, учитывая механику машины, число микрошагов и т.д.
Если же выбрать dV или ускорение, не соответствующие механике - будут рывки. Схематически все это дело выглядит так.
1736708263057.png
Это для случая постоянных интервалов по времени. Есть и другие алгоритмы (постоянные интервалы по расстоянию, изменение ускорения со временем и т.д.). Проверял на практике разные, остановился на постоянных интервалах по времени.
Валер, много лет назад при поступлении в институт мне попался вопрос о производной функции. Помню, как я рассказывал экзаменатору о её геометрической сути:
"...Поэтому геометрический смысл производной можно сформулировать так: значение производной функции в точке x₀ равно тангенсу угла наклона касательной к графику функции в этой точке..."
То есть грубо на этом рисунке, производная (ускорение) скорости - это угол между синей прямой и осью Х. Чем этот угол ближе к 90 градусов, тем больше ускорение.
Выбирая в настройках ускорение, мы выбираем этот угол. Если менять dt, но не менять dV/dt (ускорение), то пропорционально будет меняться и dV. Я вот не понимаю пока сути настройки отдельно dt, скорее всего будет меняться и ускорение dV/dt. Наглядно это можно увидеть при настройках MACH3, у кого есть под рукой:
Acceleration.jpg
В настройках есть только скорость равномерного движения, горизонтальный участок графика (НО не dV!), ускорение для достижения этой скорости с нуля (по графику сразу видно, за какое время будет достигнута выставленная скорость при том или ином ускорении, или за какое время она спадёт до нуля при останове) и длительность импульса шага. Если выставить скорость и ускорение, а потом менять длительность импульса шага, можно сразу увидеть по цифрам и графику, что будет меняться и как.
Кстати, именно этот график и послужил отправной точкой в работе GGEasy Карман растровый HLDI, когда учитывается выставленное ускорение в плате управления и в GGEasy (только в этом режиме) и засветка лазером идет только при равномерном движении (горизонтальном участке графика), но для расстояний с ускорением (положительным и отрицательным) в CNC должен быть запас хода (пробег с выключенным лазером).
Так что я, как и Тёзка, буду настаивать, что рывок зависит от оборудования (массы каретки) и ускорения (dV/dt), именно оно отвечает за резкость старта с нуля оборудования, то есть набора скорости.
 
Последнее редактирование:
Выбирая в настройках ускорение, мы выбираем этот угол. Если менять dt, но не менять dV/dt (ускорение), то пропорционально будет меняться и dV. Я вот не понимаю пока сути настройки отдельно dt, скорее всего будет меняться и ускорение dV/dt. Наглядно это можно увидеть при настройках MACH3, у кого есть под рукой:
Математически корректно для дискретного случая мне надо было бы написать не dV/dt, а ΔV/Δt. Тогда бы не было путаницы между дискретными и непрерывными функциями. Но у меня в чертилке нет прямого доступа к символу Δ, а искать его на клавиатуре я поленился :(.
В доступных пользователю настройках MACH3 ΔV нет, но оно обязательно есть в кодах. Потому, что без этой величины переход от непрерывных величин к дискретным невозможен. Быстрее всего, в MACH3 для ΔV выбрана минимально допустимая величина. Но и очень маленьким ΔV тоже выбирать не стоит потому, что это увеличит вычислительные нагрузки на процессор. Я в моих прошивках для мелких станочков ставлю ΔV = 10мм/мин.

Кстати, в картинке для настройки MACH3 показана упрощенная схема для одного из возможных вариантов работы. Когда расстояние прохода, выбранное ускорение и максимальная скорость допускают работу в трех режимах: разгон->постоянная скорость->торможение. А в реалиях таких комбинаций 6 штук. Например, когда расстояние короткое, и заказанная скорость на этом расстоянии не может быть достигнута - разгон->торможение.
Так что я, как и Тёзка, буду настаивать, что рывок зависит от оборудования и ускорения (dV/dt), именно оно отвечает за резкость старта с нуля оборудования, то есть набора скорости.
Так я и не возражаю. Только к этим двум параметрам надо добавить ΔV. Помню, Robinson где-то рассказывал, что в прошивке гитары для токарничка выбрал слишком большое ΔV. Из-за чего терялись шаги.
 
В доступных пользователю настройках MACH3 ΔV нет, но оно обязательно есть в кодах.
Валер, dV MACH3 в кодах вычисляет, скорее всего, по доступным пользователю 3-м настройкам: по скорости равномерного движения (катет вертикальный прямоугольного треугольника на твоём первом рисунке Vmax) и ускорению (тангенс левого угла прямоугольного треугольника) можно вычислить горизонтальный катет (временной) прямоугольного треугольника в твоём рисунке Tmax.
[cnc3018.ru]_1736708263057.png

После чего длительность набора скорости до номинальной Tmax (горизонтальный катет) разделить на длительность импульса шага dt и получим число шагов (пусть это будет N). Теперь если разделить скорость равномерного движения Vmax (который доступен в настройках пользователю) на N, то получим как раз dV для так нужного перехода оборудованию и кодам от непрерывных к дискретным функциям.
Вот теперь я понял, для чего в настройках MACH3 нужна длительность импульса шага (спасибо тебе).
 
Последнее редактирование:
Валер, dV MACH3 в кодах вычисляет, скорее всего, по доступным пользователю 3-м настройкам: по скорости равномерного движения (катет вертикальный прямоугольного треугольника на твоём первом рисунке Vmax) и ускорению (тангенс левого угла прямоугольного треугольника) можно вычислить горизонтальный катет (временной) прямоугольного треугольника в твоём рисунке Tmax.
[cnc3018.ru]_1736708263057.png

После чего длительность набора скорости до номинальной Tmax (горизонтальный катет) разделить на длительность импульса шага dt и получим число шагов (пусть это будет N). Теперь если разделить скорость равномерного движения Vmax (который доступен в настройках пользователю) на N, то получим как раз dV для так нужного перехода оборудованию и кодам от непрерывных к дискретным функциям.
Картинка иллюстрирует один из возможных методов дискретизации скоростей, для случай постоянного ускорения. А самый простой способ - это переменное ускорение. Когда после генерации каждого импульса уменьшается задержка до следующего. Самый плавный, простой и быстрый с точки зрения вычислений: всего одно вычитание. Но работает только для управления одной осью, в случае синхронизации нескольких осей проще и быстрее делать как на картинке.
Ваши сообщения автоматически объединены:

Криволинейное движение — это всегда движение с ускорением.
Не всегда. Для примера рассмотрим движение по окружности. Окружность разбивается на отрезки (хорды). Если разница углов наклона двух последовательных хорд небольшая - переход с конца первой хорды на начало второй можно делать без ускорений. Потому, что скачок скоростей небольшой. А ускорение и торможение нужно только перед началом первой хорды и концом последней.
 
Последнее редактирование:
Для примера рассмотрим движение по окружности. Окружность разбивается на отрезки (хорды). Если разница углов наклона двух последовательных хорд небольшая - переход с конца первой хорды на начало второй можно делать без ускорений.
Так я об этом с самого начала в посте Спорный момент по кинематике. | Page 4 | ФОРУМ О СТАНКАХ CNC 3018 и сказал: модуль мгновенной скорости при движении по окружности постоянен, хотя движение считается с ускорением, так как оно присутствует, но направлено перпендикулярно вектору мгновенной скорости и поэтому на неё не влияет (поэтому мгновенная скорость остается постоянной по модулю, постоянно меняя направление по касательной к окружности). И для лазера такое движение (по окружности) можно считать равномерным, а модуль мгновенной скорости вычислять, к примеру, как гипотенузу прямоугольного треугольника, катетами которого являются модули скорости движения каретки по оси Х и Y.
Ваши сообщения автоматически объединены:

Картинка иллюстрирует один из возможных методов дискретизации скоростей
Судя по настройкам MACH3 и Candle, то это их случай. А так да, для разработчиков с нуля могут быть варианты.
 
модуль мгновенной скорости при движении по окружности постоянен, хотя движение считается с ускорением
В праильном алгоритме синхронного движения по наклонной линии присутствуют три модуля: ускорение, движение с постоянной скоростью, торможение. Если при переходе с одной наклонной линии на другую скачок скоростей небольшой - сразу идет переход на модуль постоянной скорости, без расчетов движения с ускорением. Для экономии времени расчетов.
 
модуль мгновенной скорости при движении по окружности постоянен, хотя движение считается с ускорением, так как оно присутствует, но направлено перпендикулярно вектору мгновенной скорости и поэтому на неё не влияет (поэтому мгновенная скорость остается постоянной по модулю, постоянно меняя направление по касательной к окружности).
Пока Вы выстраиваете свои теории управления движением, ваши станки (GRBL) "плюют на вас" и при движении по кривой включают Junction Deviation, убивая всё постоянство мгновенной касательной скорости. Я сегодня задрал этот параметр, чтоб не тормозил на поворотах и получил реально большие скорости, но станок стал так жестко работать, что чуть не слетел со стола при резких маневрах, а на сложных местах пропустил шаги.
 
при движении по кривой включают Junction Deviation
"...$11 = 0.010 (Junction deviation, millimeters)
Отклонение на стыках, мм

Заданная величина отклонения на стыках, используется модулем управления ускорением для определения скорости перемещения через стыки отрезков запрограммированного в G-коде пути. Например, если путь в G-коде содержит острый выступ с углом в 10 градусов, и станок двигается к нему на максимальной скорости, данный параметр поможет определить насколько нужно притормозить, чтобы выполнить поворот без потери шагов. Вычисление выполняются довольно сложным образом, но в целом, более высокие значение дают более высокую скорость прохождения углов, повышая риск потерять шаги и сбить позиционирование. Меньшие значение делают модуль управления более аккуратным и приводят к более аккуратной и медленной обработке углов. Так что, если вдруг столкнетесь с проблемой слишком быстрой обработкой углов, уменьшите значение параметра, чтобы заставить станок притормаживать перед прохождением углов. Если хотите, чтобы станок быстрее проходил через стыки, необходимо увеличить значение этого параметра. Любопытные могут пройти по ссылке и прочитать про алгоритм обработки углов в Grbl, который учитывает и скорость, и величину угла на стыке, простым, эффективным и надежным методом...."

Вот эту математику пусть изучают желающие создавать своё железо... :) Я пас (пользователь). То ли дело растровая засветка типа HLDI.
Объяснение и визуализация Отклонения от Стыка
Улучшение Grbl: алгоритм прохождения поворотов
 
Вычисление выполняются довольно сложным образом, но в целом, более высокие значение дают более высокую скорость прохождения углов, повышая риск потерять шаги и сбить позиционирование.
Вывод:
Никогда не разговаривайте с неизвестными

Или, другими словами, прежде, чем экспериментировать, хотя бы почитайте в описание о рисках.
 
Или, другими словами, прежде, чем экспериментировать, хотя бы почитайте в описание о рисках.
Вообще-то я сначала прочитал об Junction deviation, а затем применил и довольно успешно. Просто я думал, что лазерщики и фрезеровщики активно используют эту настройку наряду со скоростью и ускорением, как это делают 3D печатники, поэтому не вдавался в подробности.
Вот эту математику пусть изучают желающие создавать своё железо... :) Я пас (пользователь).
Так Вам, как пользователю и не надо сильно вникать в математику функции, а достаточно знать суть и использовать в настройках, как покупного оборудования, так и самосбора. Чтобы оптимизировать работу станка, пользователю дан доступ к к настройкам скорости, ускорения и Junction deviation (аналог рывка). Именно в сочетании регулировки всех перечисленных параметров можно достичь правильного результата.
Вот Вы 2 раза повторили свою идею о равно одинаковых мгновенных скоростях, но хоть раз измерили их реально? Я измерил и вышло то, что скорости совсем не те, которые вы задаете станку, даже при движении по прямой. Я пока провожу тесты и затем выложу результаты для тех, кому интересно.
 

Думаю тут много кому будет интересно.... :cautious:

оффтоп
 
я думал, что лазерщики и фрезеровщики активно используют эту настройку наряду со скоростью и ускорением, как это делают 3D печатники,
Напрасно, на мой взгляд, вы сравниваете 3д печать с лазерами и фрезерами. Совершенно разная физика процесса.
Лазеры, по вектору, в основном режут. И здесь "тарапица не нада".
То же самое и с фрезеровкой, тут вообще лучше не спешить. Фрезы ломаются.
 
Напрасно, на мой взгляд, вы сравниваете 3д печать с лазерами и фрезерами. Совершенно разная физика процесса.
И в чем же разная? И какого процесса? Во всех 3 видах станков один и тот же G-Code, один и тот же механизм движения и одни и те же проблемы связанные с ним.
Лазеры, по вектору, в основном режут.
Странно, а 3D принтеры тоже по вектору бегают, как и фрезеры.
А вот когда 3D принтер заполнение делает, фрезер выборку, а лазер гравировку, то во всех случаях может быть и растровое движение. Так в чем здесь-то разница в физике?
 
Так в чем здесь-то разница в физике?
Допустимые зазоры между подвижными деталями. Жесткость. Если для лазерного гравера и 3д принтера допустимы зазоры в 0.5 мм, то для фрезерного такие люфты абсолютно исключены. Лазеры и принтеры не испытывают таких же нагрузок как фрезеры. Ну и рывки для станков приносят мало пользы. В основном только вред, быстрее изнашивают оборудование.
 
Сверху Снизу
Обнаружен блокировщик рекламы AdBlock

МЫ ДОГАДЫВАЕМСЯ, ЧТО РЕКЛАМА ВАС РАЗДРАЖАЕТ!

Конечно, Ваше программное обеспечение для блокировки рекламы отлично справляется с блокировкой рекламы на нашем сайте, но оно также блокирует полезные функции. Мы стараемся для Вас и не обязываем Вас донатить и скидывать денег на наши кошельки, чтобы пользоваться форумом, но реклама это единственное, что позволяет поддерживать проект и развивать его.

Спасибо за Ваше понимание!

Я отключил свой AdBlock    Нет, я не буду ничего отключать