русский у меня не родной, на бытовом языке общаюсь неплохо, технический как получиться, может кому и обороты речи не понравиться.
Просто решил ответить на реплики репликами, в виде тезисов, на полноценный ответ, с математическими и геометрическими выкладками времени не хватает, и желания тоже не хватает, но в краткой форме, с приведением формул и цифр, ответы дальше еще будут, в следующих постах.
michael-yurov писал(а):С алгоритмом расчета движения у этого контроллера все очень плохо.
Из настроек доступны: Lookahead Angle, Lookahead Radius и Optimization Threshold.
Как это ни странно, но к предпросмотру траектории (Look Ahead) они не имеют никакого отношения, т.к. предпросмотр осуществляется не далее, чем на 1 кадр вперед.
Не верно.
Оптимизация под лукахед производится по всей длине хода, тут нет понятия длина предпросмотра. Понятие "длина предпросмотра" осталось с давних времен, когда на стоиках были малюсенькие буферы, и минимальные математические возможности.
Весь код УП при загрузке в PlanetCNC автоматический проверяется на ошибки, и с учетом настроек, в том числе lookahead, оптимизируется, и кешируется на носителе компьютера в виде временных диаграмм подачи осей станка.
Если по ходу редактируете строки УП, происходит автоматический пересчет, если меняете настройки, то потребуется повторная загрузка УП, и пересчет по новым параметрам.
При оптимизаций под lookahead применяется метод обратного хода, то есть с конца программы в начало. Если в станке присутствует люфт, то оптимизация производится с начала кода в конец.И еще если у вас на осях станков стоят разные винты, с разным разрешением, можно выбрать доминирующую ось.
Я в PlanetCNC грузил кода размером 50 мегабайт, резали сложные и мелкого разрешения рельефы, спокойно переваривает.
michael-yurov писал(а):Из инструкции узнаем, что Lookahead Angle, это минималный угол, который станок будет проходить вообще не сбрасывая скорость, как будто он движется по прямой.
Не верно.
Lookahead Angle - если угол между двумя ходами меньше чем этот угол, то станок будет тормозить, если угол больше проедет со сглаживанием.
michael-yurov писал(а):Lookahead Radius - минимальный радиус дуги, по которому станок будет двигаться так же не снижая скорости. Казалось бы - этот радиус легко вычислить зная скорость подачи
и допустимые ускорения (разделив квадрат скорости на допустимое ускорение), но даже такой простой расчет программа не может сделать, а задать этот параметр в настройках совсем не просто,
т.к. он зависит от скорости подачи.
Не верно.
Lookahead Radius - индивидуальный параметр, для точной обработки дуги с минимальным возможным радиусом, зависит от скоростных возможностей станка, подбирается один раз.
Методика подбора:
Here is experiment:
Try to calculate circle radius that your machine can do at full speed with your acceleration setting.
Then create g-code for such circle and try to run it. Machine should have no problems.
Then decrease circle radius by half and run it again. Does machine have problems now?
ну и результат подбора,
I did the suggested experiment with my machine. I set the lookahead radius to 0.025mm to be ineffective
The tool path was a 125mm square with different corner radius. The square sides allow the machine to come up to speed before going around the corner. Then I increased the feed rate until the machine stalled.
Results (approximate):
1 - square with sharp corners and deceleration: max 11500 mm/min (limits of my steppers). I never run the machine that fast.
2 - corner radius 0.5mm: 1900 mm/min
3 - corner radius 1mm: 2800 mm/min
4 - corner radius 2mm: 3800 mm/min
5 - corner radius 4mm: 4400 mm/min
6 - corner radius 8mm: 5300 mm/min
For case # 2,3 and 4 this calculates to an allowable acceleration of approx. 2000mm/sec^2.
For 4400 feed rate the acceleration goes down to 1300mm/sec^2 and for 5300 it is only 1000mm/sec^2. Apparently my steppers are beginning to run out of steam at that speed.
However, I have normally limited my max acceleration in the settings to be 700 mm/sec^2 which means the proposed calculation method would work for all practical feed rates with ample reserve.
думаю и так ясно, что такой подход позволяет точно подобрать максимальную скорость и ускорения, эффективно использовать станочное время. Были пользователи которые просили удалить этот параметр, мол мешает, которые не понимали сути параметра.
michael-yurov писал(а): Optimization Threshold - величина минимального перемещения станка. Т.е. если отрезок траектории меньше заданного в настройках значения, то такие перемещения будут игнорироваться.
Это сделано для того, чтобы бороться с проблемой переполнения буфера контроллера.
Не верно.
Отступление. Тут буфер не причем, она никак не может переполниться, в буфер данные передаются под управлением контроллера из кеша на носителях. В PlanetCNC загруженная УП в виде G кодов автоматический переводится в машинные временные коды, и кешируется на носителе компьютера, или можно скинуть на SD для автономной работы. И по мере запроса из контроллера, порциями подается в буфер контроллера.
Optimization Threshold - часто постпроцессоры создают весьма подробный G-код, малыми отрезками, меньше, чем может проехать станок за один импульс. Так как самая популярная программа Арткам, то с ним это часто встречается, потому что пользователь работает бездумно, выставляет точность 0.001 и разрешение модели задирают до максимального значения 4000*4000 точек.
А в системе управления станком, например в Мач по осям стоит разрешение 0.003мм на импульс, и по ходу фрезеровки выпадают целые блоки, и люди пишут что шаги теряю, или "станок съедает часть работы".
Например,
http://www.cnc-club.ru/forum/viewtopic.php?f=3&t=3075
И кто то дает ему не правильный совет,
http://www.cnc-club.ru/forum/viewtopic. ... 601#p67601
По его совету я сужу, что он не знает даже как происходит предварительный расчет lookahead, не буду выдаваться в тонкости, кому надо, в сети полно информации, просто приведу рисунок, где процесс наглядно обрисован,

так что этот параметр определят, какие отрезки минимальным значением, игнорировать, меньшего чем разрешения по осям.
michael-yurov писал(а): Чтобы работа контроллера была хоть чем то лучше режима ExactStop (как у древней системы TurboCNC, работающей под DOS), у контроллера есть возможность задания начальной скорости движения станка.
У TurboCNC тоже можно задать начальную скорость, но между отрезками траектории TurboCNC останавливается на доли секунды, а Planet CNC, надеюсь - нет. Такой режим работы очень плохо отразится на механике станка,
но за то движение по сложным траекториям (например, по рельефу) не будет смертельно медленным.
тайный смысл начальной скорости простой, программный способ проскочить низкочастотный резонанс, который проявляется в пределах 100-500 герц, на полном или полушаге, когда я запустил свой первый станок в 2003 году на ДШИ с самодельными подшипниками скольжения были проблемы с резонансом, тогда разработчики ТурбоСНС рекомендовали, стартовать в пределах 700 - 2500 герц, и проблемы как не бывало. У кого есть микрошаговые драйвера, это не грозит.
и кому интересно что такое lookahead могут прочитать эту тему,
http://www.cnc-club.ru/forum/viewtopic.php?f=66&t=1209 хоть тема и не закончена, но немало правильной информации, полезно.