|
Алгоритм наискорейшего обхода точек 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 я вопрошаю не по численным методам, а по постановке, применительно к указанной постановке тот численный метод, который я описал будет одним из наилучших, но меня не устраивает. Возможно чем-то для такого типа задачи можно пренебречь и получить более простой метод, только что в этом случае необходимо поменять в постановке?
Спасибо
ИИВ
|
|
|
|
|
 |
Ответов
Guest_TSerg_*
|
Jun 17 2015, 15:38
|
Guests

|
То, что я изложил, относится к упрощенному инженерному решению довольно простой задачи терминального управления динамическим объектом.
Если бы мы в эпоху слабых бортовых машин в 60..70-е годы (50..500 коп/сек, 8..64 кб памяти) использовали бы теоретические изыски, которые предлагаете Вы, то не было бы и страны, уж поверьте.
Итак: Пока упрощаем до 2D, но без ограничения общности:
Двух-координатный планшет - это два двигателя, в первом приближении - апериодические звенья. Управление вектором скорости в нацеливании на очередную точку сводится, в таком случае, к аналогу движения динамической точки с ограничением на угловую скорость, которая зависит от инерционности двух каналов. Что означает ограниченная угловая скорость? Она означает ограниченный радиус циркуляции объекта. Очевидно, что он зависит от линейной скорости - чем выше линейная скорость, тем больше радиус циркуляции.
Какие выводы отсюда? Если нам удалось набрать макс. скорость, то известен радиус циркуляции при любом повороте. Это означает, что известна геометрия движения между точками. И, в общем случае: при любой скорости движения известен предполагаемый радиус циркуляции, что позволяет строить траекторию, нацеленную на касание окружности циркуляции, в точке касания с которой начнется поворот по допустимым для динамической системы параметрам.
Дальше - обычная школьная геометрия в построении траектории + курс физики "динамика".
|
|
|
|
|
Jun 17 2015, 17:33
|
вопрошающий
    
Группа: Свой
Сообщений: 1 726
Регистрация: 24-01-11
Пользователь №: 62 436

|
Цитата(TSerg @ Jun 17 2015, 20:38)  То, что я изложил, относится к упрощенному инженерному решению довольно простой задачи терминального управления динамическим объектом... выводы красивые, но без ручного управления слабо реализуемые. А если хорошо подумать и предположить, что при витееватой траектории (а такой она именно и будет) ключевым будет не скорость, а ускорение, то модель таки придется менять, и какая она получится, оставаясь в курсе школьной математики - мне пока не понятно. Со сплайнами - да, можно, много подводных камней, но они легко проходимы, если есть опыт именно в вычислительной математике. Если бы таки со второй производной удалось что-то аналитическое получить, тогда да, было бы очень-очень классно, это я собственно и искал, больше чисто из спортивного интереса, так как громоздкое, но надежное решение еще в при открытии этой темы у меня было. А словам, которые я описал выше, боятся не следует, асимптотика у всех этих алгоритмов линейная, то есть имея N точек, арифметическая сложность вычисления тоже будет около N на некоторую, хоть и большую, но константу, конечно АВРка не потянет, но кортекс М3 думаю сможет, хотя я на пс-дуино это все сделал, на нем оно летает.
|
|
|
|
Сообщений в этой теме
iiv Алгоритм наискорейшего обхода точек CNC/ЧПУ роутером Apr 2 2015, 12:16 mcheb Читаем любой учебник по численным методам - поиск ... Apr 2 2015, 15:24 iiv Цитата(mcheb @ Apr 2 2015, 21:24) Читаем ... Apr 2 2015, 16:42 fider Здесь наверное ведь цель (целевая функция) как чащ... Apr 2 2015, 17:05 iiv Цитата(fider @ Apr 2 2015, 22:05) И тогда... Apr 2 2015, 17:38 SSerge Даже без учёта динамики двигателей, учитывая тольк... Apr 2 2015, 17:11 Fat Robot Ant Colonies Apr 2 2015, 20:03 iiv Цитата(Fat Robot @ Apr 3 2015, 02:03) Ска... Apr 2 2015, 20:27 halfdoom Вообще то, тут три задачи:
1. посетить точки в оп... Apr 3 2015, 06:25 dpss Цитата(halfdoom @ Apr 3 2015, 09:25) Вооб... Apr 8 2015, 16:55 TSerg Вопрос уже устаревший, но задача имеет вполне техн... May 5 2015, 19:46 MiklPolikov А мне думается, что задачу нужно решать не чисто м... May 11 2015, 22:21 Ydaloj стандартная общеизвестная информация:
управляющее ... May 12 2015, 16:49 iiv Цитата(Ydaloj @ May 12 2015, 21:49) почем... May 27 2015, 18:27 TSerg Ну, а если надо фрезеровать все же квадрат, а не о... May 27 2015, 22:06 iiv Вот я Вас большинство тут не понимаю...
Написано: ... May 28 2015, 15:35 TSerg Для того и надо "ля-ля", чтобы в общей м... May 29 2015, 05:00 RCray У меня вопрос к постановке, a не к решению. Mожно ... Jun 10 2015, 00:14 TSerg ТС, похоже, сам не понимает, что же он хочет.
Сдел... Jun 10 2015, 17:53 iiv Цитата(TSerg @ Jun 10 2015, 23:53) ТС, по... Jun 15 2015, 16:52 TSerg Еще раз. Если стоит задача формального математичес... Jun 15 2015, 19:10 RCray В споре может рождаться и постановка задачи, и ист... Jun 16 2015, 03:14 blackfin Цитата(iiv @ Apr 2 2015, 15:16) Пусть ест... Jun 16 2015, 04:18 _pv Цитата(blackfin @ Jun 16 2015, 10:18) Есл... Jun 16 2015, 08:33  iiv Цитата(_pv @ Jun 16 2015, 13:33) тут наве... Jun 17 2015, 06:49   _pv Цитата(iiv @ Jun 17 2015, 12:49) да, имен... Jun 17 2015, 07:29    iiv Цитата(_pv @ Jun 17 2015, 12:29) чукча - ... Jun 17 2015, 08:05     TSerg Цитата(iiv @ Jun 17 2015, 11:05) ..методы... Jun 17 2015, 10:46      iiv Цитата(TSerg @ Jun 17 2015, 15:46) Звучит... Jun 17 2015, 14:23     _pv Цитата(iiv @ Jun 17 2015, 14:05) (методы ... Jun 17 2015, 11:40 TSerg Да ладно.. в инженерной постановке все решается за... Jun 16 2015, 20:01 TSerg Вы все же попробуйте проверить - радиус циркуляции... Jun 17 2015, 20:14 RCray del Sep 3 2015, 04:57
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|