Независимый Ювелирный Форум
https://forum.jwiki.ru/

Пропуск шагов (кратко и фрагментарно о пропусках шагов)
https://forum.jwiki.ru/viewtopic.php?f=15&t=1272
Страница 4 из 5

Автор:  Прохожий [ 01 мар 2015, 12:10 ]
Заголовок сообщения:  Re: Пропуск шагов (кратко и фрагментарно о пропусках шагов)

Mach3 макросы для изменения ускорения

Приатачены макросы для изменения ускорения. Могут пригодиться в каких-нибудь тестах.

M1140-M1145: каждое макро меняет ускорение одной оси:
M1140 — X
M1141 — Y
M1142 — Z
M1143 — A
M1144 — B
M1145 — C

M1146 меняет ускорение осей X, Y, Z.

Пример:
M1140 p0 q0 r0

Параметры: Pчисло Qчисло Rчисло
P и Q параметры с числом <=0 игнорируются.

Настоятельно рекомендуется указывать все три параметра (прописывая 0 в ненужных параметрах),
потому что если какой-либо параметр отсутствует, то его значение может сохраниться от предыдущих запусков, и тогда результат работы макро может оказаться непредсказуемым.

P — проценты: исходное ускорение изменяется до указанных процентов.
R — разница: указанное число прибавляется к исходному ускорению.
Q — количество: указанное число — это новое ускорение.
(В M1146 параметры P и R применяются к каждой оси индивидуально, а параметр Q делает ускорение всех трёх осей одним и тем же).

Если указано несколько параметров, то срабатывает только один из них, и их приоритет такой: Q приоритетнее чем R приоритетнее чем P.
Если новое ускорение <=0, то ускорение не меняется (в M1146 — индивидуально для каждой оси). Кроме того, Mach3 не разрешает ускорение ниже определённого предела, который зависит от других настроек (этот предел где-то примерно порядка 5). Ещё кроме того, если Mach3 изменит ускорение ниже вышеупомянутого предела, то в Motor Tuning будет показан этот предел, а не ускорение ниже него.

Эти макросы исполняются не мгновенно: в каждом из них стоит задержка от 0.222 до 0.333 секунды.

Примеры:

M1140 P50 Q0 R0
Если исходное ускорение X было 200, то новое будет 100 (50% от 200).

M1141 P50 R-20 q0
Если исходное ускорение Y было 200, то новое будет 180 (200-20).

M1142 r90 P0 Q300
Новое ускорение Z будет 300 (q=300).

M1143 p0 q0 r0
Ничего не меняет, только показывает текущее ускорение A в строке сообщений.

M1144 P50 R-200 Q0
Если исходное ускорение B было 200, то оно не меняется, потому что новое ускорение было бы 0 (200-200).

M1140 P50 Q0
Результат непредсказуем, т. к. параметр R не указан, и он сохранит своё значение с предыдущих запусков макро.

M1146
Результат непредсказуем.

M1146 P50 Q0 R0
Если исходные ускорения были X 100, Y 200, Z 300, то новые будут X 50, Y 100, Z 150 (50%).

M1146 P50 R-20 q0
Если исходные ускорения были X 100, Y 200, Z 300, то новые будут X 80, Y 180, Z 280 (-20).

M1146 r90 P0 Q300
Ускорения X, Y, Z станут 300 (q=300).

M1146 p0 q0 r0
Ничего не меняет, только показывает текущие ускорения X, Y, Z в строке сообщений.

M1146 P50 R-200 Q0
Если исходные ускорения были X 100, Y 200, Z 300, то новые будут X 100, Y 200, Z 100: X и Y не меняются, потому что они стали бы <=0.

M1146 P0 r0 Q
Неправильный синтаксис: не указано число для Q.

M1146 P0 r0 Q 0
Неправильный синтаксис: пробел между Q и его числом.

Продолжение темы Mach3 макро — через день-другой в темах «Бэкап настроек Mach3»
и «Mach3 макро для определения нулей двумя зарезами и нониусами»

Вложения:
Mach3-acceleration-macros.zip [7.34 КБ]
Скачиваний: 437

Автор:  Прохожий [ 03 мар 2015, 04:35 ]
Заголовок сообщения:  Тесты Mach3 с разным ускорением

Кстати о тестах с разным ускорением.

Как-то сделали такой тест:

Режется ступенька 45 градусов, 2 мм в длину и ширину:
т. е. фреза идёт горизонтально по Y, потом Y2 Z2, дальше снова горизонтально.
Режется в одном направлении, т. е. туда фреза идёт по воску, обратно — по воздуху.
Вырезали одну такую полоску с ускорением 400, и рядом такую же с ускорением 100:
Вложение:
1_continuous-velocity-1.jpg
1_continuous-velocity-1.jpg [ 32.36 КБ | Просмотров: 5516 ]

Форма ступеньки при разных ускорениях получилась очень разной. Вот отмечена граница между участками с ускорениями 400 и 100:
Вложение:
2_continuous-velocity-2.jpg
2_continuous-velocity-2.jpg [ 30.04 КБ | Просмотров: 5516 ]

Очевидно, что при некотором ускорении станок не разгоняется как надо, и получаются искажения.

Такова была первая мысль. Пошевелив, однако, извилинами, стало понятно, что станок тут ни при чём. Такие формы ступеньки задаёт Mach3.
Тест был сделан в режиме Сontinuous Velocity, что сделало его совершенно бесполезным. Feedrate была 1200. Расстояние, на котором фреза разгоняется до такой скорости: при ускорении 400 — 0.5 мм, при ускорении 100 — 2 мм. Соответственно Mach3 начинает разгонять ось Z на некотором расстоянии от ступеньки. Из теста можно сделать вывод, что ускорение 100 — недопустимо низкое для скорости 1200, и что не всегда чем ниже ускорение — тем лучше результат. При ускорении 25 в этом тесте вместо ступеньки получается плавная волна длиной сантиметра полтора, потому что для разгона нужно 8 мм.

Проделали аналогичный тест в режиме Exact Stop.
На этот раз резалась вертикальная ступенька высотой 2 мм при ускорениях 100 мм/сек2, 200, 300 и 400. При каждом ускорении резалась полоска в одном направлении, и рядом полоска в обратном направлении. Затем аналогичные полоски с другим ускорением. Вот примерно путь фрезы:
Вложение:
3_path.gif
3_path.gif [ 13.33 КБ | Просмотров: 5516 ]

Последовательность движений на рисунке — в порядке цветов радуги, и затем чёрный цвет. При смене ускорения направление движения меняется с по часовой стрелке на против часовой стрелки, или наоборот. Так что рядом получаются участки не только с противоположным направлением при одинаковом ускорении, но и с попутным направлением при разных ускорениях.

Скорость по-прежнему 1200. Вопреки ожиданиям, ступенька получилась одинаковой при всех ускорениях, хотя и скорость 1200 мм/мин, и ускорение 400 мм/сек2 считаются запредельными для данного станка:
Вложение:
4_exact-stop-1.jpg
4_exact-stop-1.jpg [ 599.02 КБ | Просмотров: 5516 ]

Вот отмечены направление движения, ускорения, и границы участков с разными направлениями и ускорениями:
Вложение:
5_exact-stop-2.jpg
5_exact-stop-2.jpg [ 63.26 КБ | Просмотров: 5516 ]
Одиночная стрелка означает ускорение 100, двойная — 200, тройная — 300, четверная — 400.

Вот в разных ракурсах видно, что кромка ступеньки получилась одинаковой во всех случаях:
Вложение:
6_exact-stop-3.jpg
6_exact-stop-3.jpg [ 700.89 КБ | Просмотров: 5516 ]

Вложение:
7_exact-stop-4.jpg
7_exact-stop-4.jpg [ 627.42 КБ | Просмотров: 5516 ]

Вывод такой, что данный тест не отражает реальность. Не понятно, почему в тесте станок режет как надо,
в то время как народ, режущий изделия, говорит, что дефекты появляются при значительно более низких скорости и ускорении.

Автор:  SVP [ 12 мар 2015, 12:30 ]
Заголовок сообщения:  Re: Пропуск шагов (кратко и фрагментарно о пропусках шагов)

Лирику отделил в
3d-hardware/otdeleno-ot-propusk-shagov-t1426.html

там есть чуток и нужного, но как отделить лучше не знаю, можно перепостить полезное сюда самостоятельно.

Автор:  Прохожий [ 31 мар 2015, 09:42 ]
Заголовок сообщения:  Тепловое расширение линейных осей станка

Краткий перевод статьи Controlling Thermal Expansion, вернее приблизительный пересказ:

Три источника и три составных части теплового расширения трёх линейных осей станка

Zaber, как известно, известен всякими устройствами для точного перемещения во всяких научных и медицинских приложениях, в телескопах-микроскопах и т. п. В статье они играются со своим одноосным изделием A-LSQ150B stage:
Вложение:
00_A-LSQ150B-stage.jpg
00_A-LSQ150B-stage.jpg [ 21.5 КБ | Просмотров: 5303 ]
Винт из нержавейки, корпус алюминиевый.
Ход 150 мм, максимальный ток 0.81 А, вес 1.4 кг.
Т.е. своими масштабами изделие похоже на ось небольшого ювелирного станка.
Там дальше пойдёт речь о нагревании корпуса от мотора. Конечно, если рассматривать мотор, который сидит прямо на корпусе станка, то вряд ли массивный корпус заметно нагреется. Но если рассматривать мотор, сидящий на подвижной оси, то ситуация с нагревом может быть очень похожа на рассмотренное здесь изделие. Если посмотреть, например, на Миру, то ось Z там очень похожа по размеру и виду на это изделие.

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

Вот схема изделия:
Вложение:
01_thermal-schematic.png
01_thermal-schematic.png [ 22.76 КБ | Просмотров: 5303 ]
Продольное положение винта зафиксировано упорными подшипниками на правом его конце. Муфта на левом его конце может удлиняться/укорачиваться.

Коэффициент линейного теплового расширения при комнатных температурах у нержавейки (т. е. у винта) 17.3*10-6 /°C, у алюминиевого сплава (т. е. у корпуса) — 22.2*10-6 /°C.

Итак, три источника и три составные части:

3) Температура окружающей среды.
В этом случае рассматривать ось в отрыве от станка смысла мало, поэтому представим, что ось крепится к корпусу станка где-то в области мотора, и тогда расстояние от крепления до упорного подшипника — 220 мм. Ноль представим в ближайшем к мотору положении — 150 мм от подшипника.

Пусть температура воздуха возросла на 5 градусов.

Рассмотрим самый оптимистичный вариант: температура стабилизировалась, станок весь кроме винта сделан из одного материала — из алюминиевого сплава.
Тогда вся алюминиевая часть станка расширилась пропорционально, и то место на корпусе оси, которое соответствовало нулю при старой температуре, так и осталось в нуле, т. е. на пересечении с другими осями. Нужно найти, насколько съехал винт от этой точки.
Кусок корпуса оси от нуля до подшипника, т. е. 150 мм алюминия, расширился вправо на
150мм * 22.2*10-6/°C * 5°C = 16.65 µm

А винт, т. е. 150 мм стали, удлинился влево от подшипника на
150мм * 17.3*10-6/°C * 5°C = 12.98 µm

В сумме точка вала в 150 мм от подшипника, т. е. прежний 0, сместилась вправо на 16.65-12.98 = 3.67 микрон, т. е. на треть сотки.
И это мы рассматривали 0 в дальнем от подшипника конце. А если бы 0 был, как обычно, в середине винта, то он сместился бы всего на 1.8 микрон.
Всё очень позитивно.

Вот иллюстрация (немножко не точно они нарисовали): корпус оси удлинился вправо на B, винт удлинился влево на A, суммарное смещение нуля — B минус A.
Вложение:
02_thermal-change.png
02_thermal-change.png [ 18.91 КБ | Просмотров: 5303 ]

Теперь рассмотрим пессимистичный вариант: температура воздуха меняется в ходе резки. Или ещё мрачнее: сквозняк. Лёгкая ось уже прогрелась на 5 градусов, а массивный корпус станка ещё нет.
Температура корпуса станка прежняя, т. е. точка крепления оси не изменила своё положение в пространстве. Кусок корпуса оси от крепления до подшипника, т. е. 220 мм алюминия, расширился вправо на
220мм * 22.2*10-6/°C * 5°C = 24.42 µm
А винт, т. е. 150 мм стали, как и в предыдущем примере удлинился влево от подшипника на
150мм * 17.3*10-6/°C * 5°C = 12.98 µm
Итого 0 съехал вправо на 24.42-12.98 = 11.44 микрон, т. е. на сотку.
А если бы 0 был, как обычно, в середине винта, то удлинение половины винта
75мм * 17.3*10-6/°C * 5°C = 6.49 µm
и съезд нуля — 24.42-6.49 = 17.93 микрон, т. е. две сотки.
Всё очень негативно.

2) Нагрев винта.
КПД винта в рассматриваемом изделии — 45-85%. Т.е. до 55% механической энергии, с которой мотор крутит винт, уходит на трение и соответственно на нагрев.
КПД разных винтов разных производителей колеблется в основном где-то от 20% до 85%.

1) Нагрев корпуса оси от мотора.
Это будет хорошо видно на графиках результатов их экспериментов.


Вернёмся к A-LSQ150B stage и пересказываемой статье.

Эксперимент они поставили такой:
Температуры мотора и корпуса оси меряются термопарами, перемещение оси — приборчиком Heidenhain MT1271 с точностью до долей микрона.
Вот общий вид:
Вложение:
03_experimental-set-up.png
03_experimental-set-up.png [ 161.84 КБ | Просмотров: 5303 ]

Ось крупным планом:
Вложение:
04_stage-close-up.png
04_stage-close-up.png [ 222.63 КБ | Просмотров: 5303 ]

Heidenhain MT1271 крупным планом:
Вложение:
05_sensor-close-up.png
05_sensor-close-up.png [ 226.31 КБ | Просмотров: 5303 ]

Ось движется туда-сюда на 10 мм. В крайних положениях снимаются показания Heidenhain MT1271. Крайние положения далее называются «положение 0» и «положение 10 мм». Положение 0 находится на дальнем от подшипника конце винта. Скорость 1440 мм/мин.

Тест 1: Нагрузка 55%, т. е. 55% времени движется, остальное время стоит. Ось к началу эксперимента не прогрета, т. е. всё при комнатной температуре.

Вот график отклонения положений 0 и 10 мм от первоначальных положений. По горизонтали отложено число движений, по вертикали — микроны. Верхняя кривая — положение 0, нижняя — положение 10 мм. Разница между этими двумя кривыми вызвана люфтом 6 микрон: ось подходит к положениям 0 и 10 мм с противоположных направлений.
Вложение:
06_55%,ambient-temperature,position.png
06_55%,ambient-temperature,position.png [ 21.18 КБ | Просмотров: 5303 ]

Вот график температуры от времени: синяя кривая — температура мотора, розовая — корпуса оси:
Вложение:
07_55%,ambient-temperature,temperature.png
07_55%,ambient-temperature,temperature.png [ 19.66 КБ | Просмотров: 5303 ]

Видно, что
а) температура (и соответственно смещение положения) стабилизировалась минут где-то через 90,
б) положение оси сместилось за это время микрон на 10.
Напрасно они не проделали такие же измерения на противоположном конце винта. Тест получился бы гораздо красноречивее. Они получили самые оптимистичные результаты. Вычисления показывают, что на противоположном конце винта смещение положения было бы в 4.5 раза больше ( т. к. 22.2/(22.2-17.3)=4.5 ). Т.е. смещение было бы 0.045 мм.
И если 0, как обычно, находится в середине винта, то смещение нуля должно быть 0.023 мм. Не хухры-мухры.

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

Тест 2: Нагрузка те же 55%. Ось к началу эксперимента прогрета теплом мотора: всё было включено за 2 часа до старта, но ничего не двигалось.
Вложение:
08_55%,pre-heated,position.png
08_55%,pre-heated,position.png [ 20.5 КБ | Просмотров: 5303 ]

Вложение:
09_55%,pre-heated,temperature.png
09_55%,pre-heated,temperature.png [ 19.64 КБ | Просмотров: 5303 ]

Видно, что температура почти стабилизировалась минут через 15,
положение оси за это время стабилизировалось с точностью до 1 микрона,
максимальное смещение положения — 3 микрона.
Соответственно можно посчитать, что если 0 находится в середине винта, то смещение нуля должно быть 7 микрон.

Они почему-то не измеряли температуру винта. Тема трения не раскрыта.
Не ясно, то ли рост температуры в первые 15 минут вызван трением винта, то ли это трение о рельсы, то ли ещё что. Но нам это не важно. Нам важно, что минут 15 разминки достаточно для стабилизации температуры и положения.

Продолжение в следующем посте, т. к. в этот уже не влезают картинки.

Автор:  Прохожий [ 31 мар 2015, 09:47 ]
Заголовок сообщения:  Тепловое расширение линейных осей станка

Это продолжение предыдущего поста о тепловом расширения линейных осей станка.

Выводы:

1) Нагрев корпуса оси от мотора:
Тут всё просто и понятно и всем известно:
Электричество не экономить: станок не выключать, ток в состоянии покоя мотора переключить на 100%. Ну или включать станок часа за 2 до работы.

2) Нагрев винта от трения о гайку:
Если отклонение нуля в полсотки-сотку недопустимо, то минут 15 разминки должны стабилизировать температуру, подняв её до рабочего уровня (если, конечно, пункт 1 выполнен).
Для разминки можно, например, рисовать небольшой ромб в плоскости X-Y,
где-нибудь ближе к краю оси, чтобы не изнашивать середину,
и со скруглёнными углами, чтобы избежать резких ускорений и соответственно ненужного износа,
и чтобы Z в то же время двигалась бы так же, как X или как Y:
Вложение:
10_warm-up.png
10_warm-up.png [ 4.48 КБ | Просмотров: 5303 ]
Или запустить задачу сначала минут на 15 без воска, а потом уже по-настоящему.
Или в качестве разминку проделать черновую обработку.
И т. п.

3) Температура окружающей среды.
Если во время резки температура постоянна, то беспокоиться особо не о чем. Конечно, при сезонных изменениях температуры никогда на вредно заново найти нули.
Если во время резки температура меняется на несколько градусов, то из-за неравномерного нагрева разных частей станка можно ожидать каких угодно сюрпризов, и тут бесполезно что-либо обсуждать.

Автор:  TORROR [ 10 ноя 2015, 15:05 ]
Заголовок сообщения:  Re: Пропуск шагов (кратко и фрагментарно о пропусках шагов)

Прошу помощи, совета... Собрал 3Д принтер, питание 12 вольт. Полгода поработал, все ОК. Поставил другой блок питания на 24 вольт, полет нормальный в течение более месяца. Но затем, по оси Х периодически наблюдаю пропуск шагов, то есть принтер печатает несколько слоев, потом пропускает несколько шагов, на модели это от 1 до 2 мм (80 шагов на мм в режиме микрошага 1\32), дальше печатает несколько слоев и снова пропуск. При этом смещение происходит в одном и том же направлении, периодичность пропусков случайна (может напечатать 10 слоев и пропуск, а может полсотни слоев и снова сбой). Так же в пределах одного слоя пропусков не замечено (хотя точно сказать не могу, толщина слоя 0,1мм, просто не видно).
Пробовал поменять драйвер, не помогло. А вот замена шагового двигателя проблему сразу решает. Однако ж это уже второй двигатель с такой проблемой и уже на другой оси (первый раз проблема была по оси Y, но у меня был в запасе один шаговик, который я и поставил туда).
К механике вопросов нет, все смазано, движется легко. Снижение скорости печати проблемы не решает.

Автор:  TORROR [ 11 ноя 2015, 09:58 ]
Заголовок сообщения:  Re: Пропуск шагов (кратко и фрагментарно о пропусках шагов)

Еще одно уточнение - вся система работает под управлением Arduino Mega 2560+RAMPS 1.4+A4988. Двигатели ST42-H47 компании darxton. Соединение USB.

Автор:  TORROR [ 13 ноя 2015, 08:39 ]
Заголовок сообщения:  Re: Пропуск шагов (кратко и фрагментарно о пропусках шагов)

Повысил ток на драйвере, снова работает без сбоев. Вопрос только в том, почему это происходит? Не случится ли так, что через некоторое время проблема вернется и у меня больше не будет возможности повысить ток?

Автор:  SVP [ 13 ноя 2015, 10:58 ]
Заголовок сообщения:  Re: Пропуск шагов (кратко и фрагментарно о пропусках шагов)

Никто не знает. И не узнает.
Но, вероятно, при меньшем токе не хватает момента, чтобы уверенно работать.

Автор:  TORROR [ 13 ноя 2015, 11:25 ]
Заголовок сообщения:  Re: Пропуск шагов (кратко и фрагментарно о пропусках шагов)

Так ведь работало же несколько месяцев без сбоев, а тут... Вот и думаю, а не может это быть дегенерация проводов обмоток?

Страница 4 из 5 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/