|
Алгоритм наискорейшего обхода точек CNC/ЧПУ роутером |
|
|
|
Apr 2 2015, 12:16
|
вопрошающий
    
Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436

|
Добрый день,
возник вопрос, и простого решения не увидел...
Пусть есть N точек в 3-х или 4-х мерном пространстве осей ЧПУ-шного станка. Необходимо их последовательно посетить, так чтобы скорость и ускорение каждой оси не превышали заданные - фактически такие ограничения связаны с тем, что мотор не может очень быстро крутиться и очень быстро разгоняться. Задача вроде бы должна быть очень распространенная, но решение у меня получается достаточно не тривиальным.
Пусть для простоты у нас 3-х координатный станок, начальное и конечное значения скоростей равны 0. Для решения я взял неизвестную временнУю сетку t_0=0 < t_1 < t_2 < ... < t_N, на ней строю три кубических сплайна по одному на каждую ось. Коэффициенты этих сплайнов зависят от t_1, ..., t_N и от соответствующих координат точек обхода (которые даны) и их легко за 15N арифметических операций можно вычислить методом прогонки. Нам надо минимизировать t_N с учетом ограниченности первой и второй производных всех трех сплайнов. Понятно метод отжига (simulated annealing) успешно эту задачу решит, но как-то немного громоздко выходит...
Скажите, пожалуйста, а есть ли что-то проще? EDIT я вопрошаю не по численным методам, а по постановке, применительно к указанной постановке тот численный метод, который я описал будет одним из наилучших, но меня не устраивает. Возможно чем-то для такого типа задачи можно пренебречь и получить более простой метод, только что в этом случае необходимо поменять в постановке?
Спасибо
ИИВ
|
|
|
|
|
Apr 2 2015, 16:42
|
вопрошающий
    
Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436

|
Цитата(mcheb @ Apr 2 2015, 21:24)  Читаем любой учебник... я не о численных методах спрашивал, мой вопрос как раз о том, можно ли как-то постановку в применении к моторам поменять, чтобы упростить исходную задачу, сведя ее к аналитическому или линейному решению. Касательно Ньютона, Вы кординально не правы, я бы на Вашем месте без знания темы так бы не писал бы, так как Ньютон для задач с таким типом ограничений сойдется до первого ограничения за 2-3 шага и привет, Вы поползете по этому ограничению до следующего... Решение же лежит на границе N ограничений и даже Ньютон с ограничениями сильно проиграют любым монтекарловкам по скорости сходимости и арифметической сложности.
|
|
|
|
|
Apr 2 2015, 17:38
|
вопрошающий
    
Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436

|
Цитата(fider @ Apr 2 2015, 22:05)  И тогда оптимум - минимум длины траектории движения инструмента, если он один и не меняется. Но разве нет готовых алгоритмов оптимизирующих обработку при создании CNC? так я именно об этом же, должно быть, только как-то не гуглится, вот и вопрошаю. Если идти формально по постановке и получить на ее основе численный метод, то получается достаточно сложный алгоритм. Я-то знаю как ее решить методом грубой силы, и могу даже распараллелить  но что-то мне подсказыват, что инженеры, которые пишут программы для таких станков так не заморачиваются и решают какую-то более простую постановку... Цитата(SSerge @ Apr 2 2015, 22:11)  А она NP-полная  не, последовательность задана, комивояжера не надо
|
|
|
|
|
Apr 2 2015, 20:27
|
вопрошающий
    
Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436

|
Цитата(Fat Robot @ Apr 3 2015, 02:03)  Скажите, что значит 'посетить'? если бы остановиться в каждой точке, то и вопросов бы не было, там только прямые линии получились бы между точками. Задача как раз в том, чтобы переезжать из одной точки в другую по возможности не уменьшая скорость, то есть работая на максимуме скорости и ускорений моторов. PS: кажется в реальности задача еще сложнее: если рассматривать шаговые двигатели, то тут, еще одно ограничение надо бы взять: ограниченность произведения скорости на ускорение, так как момент у шаговых моторов уменьшается со скоростью. В принципе для метода отжига это сильно не усложнит задачу, но, почему-то мне кажется, что можно придумать какие-то другие, похожие ограничения, которые бы сильно упростили всю формулировку. Цитата(Fat Robot @ Apr 3 2015, 02:03)  статья классная, спасибо, но я не об этом, в моей задаче-то надо посетить только в определенной последовательности.
|
|
|
|
Guest_TSerg_*
|
May 5 2015, 19:46
|
Guests

|
Вопрос уже устаревший, но задача имеет вполне технически реализуемые решения с учетом некоторых инженерных ограничений. Если еще интересно..
|
|
|
|
Guest_TSerg_*
|
May 27 2015, 22:06
|
Guests

|
Ну, а если надо фрезеровать все же квадрат, а не окружность? Без ТЗ это просто болтовня.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|