реклама на сайте
подробности

 
 
3 страниц V   1 2 3 >  
Reply to this topicStart new topic
> Алгоритм наискорейшего обхода точек CNC/ЧПУ роутером
iiv
сообщение Apr 2 2015, 12:16
Сообщение #1


вопрошающий
*****

Группа: Свой
Сообщений: 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 я вопрошаю не по численным методам, а по постановке, применительно к указанной постановке тот численный метод, который я описал будет одним из наилучших, но меня не устраивает. Возможно чем-то для такого типа задачи можно пренебречь и получить более простой метод, только что в этом случае необходимо поменять в постановке?

Спасибо

ИИВ
Go to the top of the page
 
+Quote Post
mcheb
сообщение Apr 2 2015, 15:24
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 326
Регистрация: 30-05-06
Пользователь №: 17 602



Читаем любой учебник по численным методам - поиск минимума (экстремума) . За метод Ньютона Нобелевскую премию дали(по экономике)
Go to the top of the page
 
+Quote Post
iiv
сообщение Apr 2 2015, 16:42
Сообщение #3


вопрошающий
*****

Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436



Цитата(mcheb @ Apr 2 2015, 21:24) *
Читаем любой учебник...

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

Касательно Ньютона, Вы кординально не правы, я бы на Вашем месте без знания темы так бы не писал бы, так как Ньютон для задач с таким типом ограничений сойдется до первого ограничения за 2-3 шага и привет, Вы поползете по этому ограничению до следующего... Решение же лежит на границе N ограничений и даже Ньютон с ограничениями сильно проиграют любым монтекарловкам по скорости сходимости и арифметической сложности.
Go to the top of the page
 
+Quote Post
fider
сообщение Apr 2 2015, 17:05
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 174
Регистрация: 28-08-07
Из: Сибирь
Пользователь №: 30 115



Здесь наверное ведь цель (целевая функция) как чаще всего - минимизация времени обработки?
А условия-ограничения - на скорости и ускорения.
И тогда оптимум - минимум длины траектории движения инструмента, если он один и не меняется.
Я в этой области не специалист, так, знакомился немного.
Но разве нет готовых алгоритмов оптимизирующих обработку при создании CNC?
Go to the top of the page
 
+Quote Post
SSerge
сообщение Apr 2 2015, 17:11
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



Даже без учёта динамики двигателей, учитывая только расстояния между точками, Вы получаете известную "задачу коммивояжера".
А она NP-полная sad.gif
Зато есть где разгуляться в поиске алгоритмов поиска квазиоптимальных решений.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post
iiv
сообщение Apr 2 2015, 17:38
Сообщение #6


вопрошающий
*****

Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436



Цитата(fider @ Apr 2 2015, 22:05) *
И тогда оптимум - минимум длины траектории движения инструмента, если он один и не меняется.
Но разве нет готовых алгоритмов оптимизирующих обработку при создании CNC?

так я именно об этом же, должно быть, только как-то не гуглится, вот и вопрошаю. Если идти формально по постановке и получить на ее основе численный метод, то получается достаточно сложный алгоритм. Я-то знаю как ее решить методом грубой силы, и могу даже распараллелить sm.gif но что-то мне подсказыват, что инженеры, которые пишут программы для таких станков так не заморачиваются и решают какую-то более простую постановку...

Цитата(SSerge @ Apr 2 2015, 22:11) *
А она NP-полная sad.gif

не, последовательность задана, комивояжера не надо sm.gif
Go to the top of the page
 
+Quote Post
Fat Robot
сообщение Apr 2 2015, 20:03
Сообщение #7


ʕʘ̅͜ʘ̅ʔ
*****

Группа: Свой
Сообщений: 1 008
Регистрация: 3-05-05
Пользователь №: 4 691



Ant Colonies
Go to the top of the page
 
+Quote Post
iiv
сообщение Apr 2 2015, 20:27
Сообщение #8


вопрошающий
*****

Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436



Цитата(Fat Robot @ Apr 3 2015, 02:03) *
Скажите, что значит 'посетить'?

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

PS: кажется в реальности задача еще сложнее: если рассматривать шаговые двигатели, то тут, еще одно ограничение надо бы взять: ограниченность произведения скорости на ускорение, так как момент у шаговых моторов уменьшается со скоростью. В принципе для метода отжига это сильно не усложнит задачу, но, почему-то мне кажется, что можно придумать какие-то другие, похожие ограничения, которые бы сильно упростили всю формулировку.

Цитата(Fat Robot @ Apr 3 2015, 02:03) *

статья классная, спасибо, но я не об этом, в моей задаче-то надо посетить только в определенной последовательности.
Go to the top of the page
 
+Quote Post
halfdoom
сообщение Apr 3 2015, 06:25
Сообщение #9


Профессионал
*****

Группа: Свой
Сообщений: 1 003
Регистрация: 20-01-05
Пользователь №: 2 072



Вообще то, тут три задачи:

1. посетить точки в оптимальном порядке и сгенерировать прямыми и кривыми требуемый маршрут;
2. аппроксимировать все линейными перемещениями с заданной точностью;
3. сгенерировать последовательность управления шаговиками опираясь на максимально возможное ускорение и скорость перемещения.
Go to the top of the page
 
+Quote Post
dpss
сообщение Apr 8 2015, 16:55
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 19-04-08
Из: Москва
Пользователь №: 36 913



Цитата(halfdoom @ Apr 3 2015, 09:25) *
Вообще то, тут три задачи:

1. посетить точки в оптимальном порядке и сгенерировать прямыми и кривыми требуемый маршрут;
2. аппроксимировать все линейными перемещениями с заданной точностью;
3. сгенерировать последовательность управления шаговиками опираясь на максимально возможное ускорение и скорость перемещения.


По 3 пункту ищите по фразе cnc lookahead algoritm. Например https://hal.archives-ouvertes.fr/hal-00986174/document
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение May 5 2015, 19:46
Сообщение #11





Guests






Вопрос уже устаревший, но задача имеет вполне технически реализуемые решения с учетом некоторых инженерных ограничений. Если еще интересно..
Go to the top of the page
 
+Quote Post
MiklPolikov
сообщение May 11 2015, 22:21
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 015
Регистрация: 23-01-07
Из: Москва
Пользователь №: 24 702



А мне думается, что задачу нужно решать не чисто математически, а более прикладным способом : Например разбить всё рабочее пространство на 100 ячеек, посчитать количество работы(или чего-то ещё) внутри каждой ячейки, а дальше простым перебором вариантов найти оптимальную последовательность обработки ячеек.


--------------------
Если у Вас нет практического опыта в данной теме- не вступайте в дискуссию и не пишите никаких теоретических рассуждений! Заранее спасибо !
Go to the top of the page
 
+Quote Post
Ydaloj
сообщение May 12 2015, 16:49
Сообщение #13


Профессионал
*****

Группа: Свой
Сообщений: 1 879
Регистрация: 20-06-11
Из: Карелия, Петрозаводск
Пользователь №: 65 799



стандартная общеизвестная информация:
управляющее ПО имеет настраиваемые ограничения для каждой оси. При конфигурировании роутера числовые параметры макс.скорости и ускорения задаются из известных значений на каждый двигатель или эмпирических.

команда типа x100 y100 z100 перемещает инструмент в точку 100:100:100 всеми тремя осями одновременно со скоростью и ускорением самой медленной оси.

почему прямое попадание инструментом в каждую точку не катит?


--------------------
путь наименьшего сопротивления проходит по пути наитолстого провода (с)
Go to the top of the page
 
+Quote Post
iiv
сообщение May 27 2015, 18:27
Сообщение #14


вопрошающий
*****

Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436



Цитата(Ydaloj @ May 12 2015, 21:49) *
почему прямое попадание инструментом в каждую точку не катит?

Катит-катит, только не обязательно в точке останавливаться.

Пусть Вам надо по циклу обежать 4 точки, которые находятся в вершинах квадрата, а у Вашего инструмента есть ограничение на производную и скорость. Пусть квадрат достаточно мал, что инструмент не успеет разогнаться и ограничение по скорости не играет роли. В этом случае обход этих точек по прямым линиям - суть сторонам квадрата будет в 1.7 раз дольше (2^{3/4}), чем если траектория инструмента будет окружность, в которую вписан этот квадрат.
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение May 27 2015, 22:06
Сообщение #15





Guests






Ну, а если надо фрезеровать все же квадрат, а не окружность?
Без ТЗ это просто болтовня.
Go to the top of the page
 
+Quote Post

3 страниц V   1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 8th July 2025 - 16:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.01478 секунд с 7
ELECTRONIX ©2004-2016