S - разгон/торможение для ЕМС2 слабо?
-
aftaev
- Зачётный участник

- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6194
- Откуда: Казахстан.
- Контактная информация:
Re: S - разгон/торможение для ЕМС2 слабо?
michael-yurov, у тебя есть привода которые аналог понимают?
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
- michael-yurov
- Почётный участник

- Сообщения: 11730
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4703
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: S - разгон/торможение для ЕМС2 слабо?
Нет, а что?aftaev писал(а):michael-yurov, у тебя есть привода которые аналог понимают?
Я подумывал те яксавовские купить, но пока что не могу определиться - что лучше, леадшайновские шаговики с энкодером, или яксавовские аналоговые сервы.
У шаговиков NEMA 23 момент намного выше (даже на максимальных оборотах) чем у 100 Ваттных сервомоторов. И шаговики более предпочтительны для станка с ременным приводом.
Шаговики придется использовать на более низких скоростях, соответственно, разрешение у станка будет ниже при таком же разрешении энкодера, но максимальные скорости - выше (за счет меньшего передаточного числа редуктора).
А цены на сервы и шаговики такие примерно одинаковые. В общем - думаю пока. Простите за оффтоп.
У шаговиков NEMA 23 момент намного выше (даже на максимальных оборотах) чем у 100 Ваттных сервомоторов. И шаговики более предпочтительны для станка с ременным приводом.
Шаговики придется использовать на более низких скоростях, соответственно, разрешение у станка будет ниже при таком же разрешении энкодера, но максимальные скорости - выше (за счет меньшего передаточного числа редуктора).
А цены на сервы и шаговики такие примерно одинаковые. В общем - думаю пока. Простите за оффтоп.
- Алексс
- Почётный участник

- Сообщения: 2210
- Зарегистрирован: 20 июл 2012, 15:49
- Репутация: 266
- Заслуга: IQ32
- Настоящее имя: Алексей
- Откуда: Прага
- Контактная информация:
Re: S - разгон/торможение для ЕМС2 слабо?
чешский школьник написал систему управления станком с поддержкой S разгонов/торможений.
https://www.youtube.com/watch?v=ZfNcF--LarA
работает под виндой или АНДРОИДОМ.
описание:
https://www.youtube.com/watch?v=ZfNcF--LarA
работает под виндой или АНДРОИДОМ.
описание:
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
- michael-yurov
- Почётный участник

- Сообщения: 11730
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4703
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: S - разгон/торможение для ЕМС2 слабо?
Молодец школьник.
Когда уже производители систем управления (не говорю о дорогих промышленных) дорастут до его уровня?
Когда уже производители систем управления (не говорю о дорогих промышленных) дорастут до его уровня?
- Алексс
- Почётный участник

- Сообщения: 2210
- Зарегистрирован: 20 июл 2012, 15:49
- Репутация: 266
- Заслуга: IQ32
- Настоящее имя: Алексей
- Откуда: Прага
- Контактная информация:
Re: S - разгон/торможение для ЕМС2 слабо?
это никому не нужно.
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
- michael-yurov
- Почётный участник

- Сообщения: 11730
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4703
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: S - разгон/торможение для ЕМС2 слабо?
В том и беда...Алексс писал(а):это никому не нужно.
Я уже писал о том, что давно задумывался над созданием собственного планировщика траектории.
И более, чем уверен, в том, что смог бы написать быстрый и грамотный планировщик с поддержкой S кривых изменения скорости...
Но что с ним потом делать? куда его? кому? Для себя любимого писать? Мне не настолько это и нужно...
Перевести на разные языки программирования я не смогу, внедрить в чужие системы - тоже для меня сложно.
Написать полноценную систему ЧПУ -считаю слишком сложной задачей. Меня хватит только на интерфейс и планировщик траектории.
Вот и получается - что "никому это не нужно."
- tooshka
- Почётный участник

- Сообщения: 1803
- Зарегистрирован: 24 окт 2012, 14:26
- Репутация: 209
- Настоящее имя: Андрей
- Откуда: Нижний Новгород
- Контактная информация:
Re: S - разгон/торможение для ЕМС2 слабо?
Хороший интерфейс сваять не каждый программист может (точнее если именно программеры интерфейсы делают, обычно не очень получается - видимо образ мышления и логика у программеров немного по другому работают)
Милая, ты услышь меня
под окном стою со своим я ЧПУ! (Протяжно; с надрывом; форте)
Внимание!!! Чрезмерное увлечение ЧПУ приводит к проблемам в семейных отношениях!
под окном стою со своим я ЧПУ! (Протяжно; с надрывом; форте)
Внимание!!! Чрезмерное увлечение ЧПУ приводит к проблемам в семейных отношениях!
- Алексс
- Почётный участник

- Сообщения: 2210
- Зарегистрирован: 20 июл 2012, 15:49
- Репутация: 266
- Заслуга: IQ32
- Настоящее имя: Алексей
- Откуда: Прага
- Контактная информация:
Re: S - разгон/торможение для ЕМС2 слабо?
все написано до нас.michael-yurov писал(а):Написать полноценную систему ЧПУ
скачай исходники LinuxCNC и нерепиши планировщик.
всякие gui, hal и прочие плюшки уже есть.
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: S - разгон/торможение для ЕМС2 слабо?
Да, для S-curve насколько я понял надо переписать только 1 функцию ну и добавить объявлений по мелочи.
(выше писал какую)
---
Точнее не выше, а тут: LinuxCNC S-разгон и торможение #1
Уже даже что-то написал, но все нет времени доделать.
(выше писал какую)
---
Точнее не выше, а тут: LinuxCNC S-разгон и торможение #1
Уже даже что-то написал, но все нет времени доделать.
- PKM
- Почётный участник

- Сообщения: 4263
- Зарегистрирован: 31 мар 2011, 18:11
- Репутация: 705
- Настоящее имя: Андрей
- Откуда: Украина
- Контактная информация:
Re: S - разгон/торможение для ЕМС2 слабо?
В LinuxCNC вставить, однозначно.michael-yurov писал(а):Перевести на разные языки программирования я не смогу, внедрить в чужие системы - тоже для меня сложно.
Хотя там уже есть, в ветке joint_axes3.
- michael-yurov
- Почётный участник

- Сообщения: 11730
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4703
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: S - разгон/торможение для ЕМС2 слабо?
А я не программист по специальности, а дизайнер. При чем в первую очередь интересуюсь именно интерфейсами и промышленным дизайном.tooshka писал(а):Хороший интерфейс сваять не каждый программист может (точнее если именно программеры интерфейсы делают, обычно не очень получается - видимо образ мышления и логика у программеров немного по другому работают)
И программы я пишу отталкиваясь от кратчайшего пути между наиболее логичным и удобным интерфейсом для получения минимума необходимых исходных данных и требуемым результатом работы программы.
Я в этом совсем ничего не понимаю.Алексс писал(а):скачай исходники LinuxCNC и нерепиши планировщик.
всякие gui, hal и прочие плюшки уже есть.
Для меня даже просто Linux - уже проблема.
Я только под Windows программировал и на Delphi,
А исходники у EMC, наверное, на С++.
Еще меня Linux не радует тем, что я не собираюсь им пользоваться.
Я попробую разобраться, но для меня это очень сложно - чужой язык программирования, чужие исходники, чужие баги, чужая оптимизация и упрощение, чужие сокращения...Nick писал(а):Да, для S-curve насколько я понял надо переписать только 1 функцию ну и добавить объявлений по мелочи.
(выше писал какую)
---
Точнее не выше, а тут: LinuxCNC S-разгон и торможение #1
Уже даже что-то написал, но все нет времени доделать.
Всегда проще написать с чистого листа сразу так, как нужно.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: S - разгон/торможение для ЕМС2 слабо?
Не надо пробовать - только зря потратишь время. Поверь на слово специалисту.michael-yurov писал(а):Я в этом совсем ничего не понимаю.Алексс писал(а):скачай исходники LinuxCNC и нерепиши планировщик.
всякие gui, hal и прочие плюшки уже есть.
Для меня даже просто Linux - уже проблема.
Я только под Windows программировал и на Delphi,
А исходники у EMC, наверное, на С++.
Еще меня Linux не радует тем, что я не собираюсь им пользоваться.
Я попробую разобраться, но для меня это очень сложно - чужой язык программирования, чужие исходники, чужие баги, чужая оптимизация и упрощение, чужие сокращения...
Всегда проще написать с чистого листа сразу так, как нужно.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- michael-yurov
- Почётный участник

- Сообщения: 11730
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4703
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: S - разгон/торможение для ЕМС2 слабо?
Насколько я сейчас себе представляю алгоритм решения задачи, в голове вырисовываются два варианта.
Первый - простой для реализации.
Второй - значительно менее требовательный к вычислительным ресурсам, и абсолютно точный.
Для обоих вариантов важно понять главное - единственное, что мы можем делать, чтобы уложиться в допустимые границы скорости, ускорения и jerk (для каждой оси - это снижение скорости подачи. (не буду рассматривать подход Mach3, который тупо отклоняется от траектории).
Первый метод расчетов: Разбиваем траекторию на небольшие участки. И для каждой позиции рассчитываем максимально допустимую скорость подачи. Для этого представим, что мы уже находимся в данной точке, и имеем некоторую скорость и ускорение и пытаемся представить - сможем ли мы проехать еще несколько секунд по траектории управляя только параметром jerk (т.е. плавно меняя ускорение), и при этом не отклониться от требуемого пути.
Если расчет говорит о том, что это возможно - значит ускорение и скорость в данной точке допустимы.
Далее пробуем тот же самый расчет, но для большего ускорения (как если бы на протяжении прошедшего маленького участка jerk был допустимым, положительным).
Затем - для меньшего.
Если оказываются допустимы все три или два варианта - сравниваем время прохождения пути для каждого и выбираем наименьшее.
Те же расчеты необходимо будет провести для каждой оси, и найти наименьшее время для всей матрицы результатов.
И так - на каждом маленьком кусочке траектории.
Данный метод потребует большого объема расчетов, особенно в случае с более, чем тремя осями.
Метод можно сильно оптимизировать. Особенно, важно оптимизировать ту часть расчетов, которая оценивает допустимость скорости и ускорения для каждой конкретной точки.
Второй метод - аналитический.
Его проще представить в виде работы с геометрией графиков скоростей и ускорений.
Если бы не было параметра jerk - графики изменения скорости представляли бы из себя трапецеидальную форму (если всю траекторию разбить на мелкие прямолинейные сегменты).
Т.е. в простейшем случае для каждого участка траектории есть точка старта (возможно - с некоторой начальной скоростью), участок линейного изменения скорости, участок постоянной скорости, и второй участок линейного изменения скорости до конечного значения.
На этом этапе скорости и ускорения должны быть ограничены допустимыми значениями и учтена скорость изменения угла траектории, для оценки допустимых ускорений по осям.
Теперь к этим идеальным графикам нужно добавить еще скругления углов этих трапецеидальных форм.
При чем потребуется изменять графики всех осей одновременно. Т.е. если мы добавляем плавное ускорение для одной из осей - мы должны соответственно откорректировать и графики других осей в данном месте траектории, так, чтобы не возникло рассогласования.
При таких действиях придется правильно определить последовательность корректировок (скругления графиков скорости) осей. Сначала нужно будет корректировать те участки, которые принадлежат оси с наименьшим значением Jerk и ускорения (еще нужно будет умножить на проекцию вектора скорости движения на данную ось ).
В общем - второй метод намного более сложный, но при этом объем вычислений многократно меньше, особенно для многоосевых станков.
По большому счету нам нужно будет рассчитать параметры только для граничных точек (там где меняется значение Jerk).
Оба метода я описал со значительными упрощениями, и опустил ряд тонкостей, но в целом - можно понять примерную логику вычислений.
Первый метод похож на Рендеринг 3d изображения с помощью лучевой трассировки (когда для каждой точки рассчитывается цвет),
а второй метод больше похож на работу видеокарты с Direct 3d (как в CAD программах).
Еще можно сравнить с растровым и векторным редакторами. В первом случае - алгоритмы проще, но для более высокой точности - потребуется очень большой объем вычислений.
И еще - все эти рассуждения применимы к Декартовым станкам. Как быть с осями вращения - я не знаю.
Первый - простой для реализации.
Второй - значительно менее требовательный к вычислительным ресурсам, и абсолютно точный.
Для обоих вариантов важно понять главное - единственное, что мы можем делать, чтобы уложиться в допустимые границы скорости, ускорения и jerk (для каждой оси - это снижение скорости подачи. (не буду рассматривать подход Mach3, который тупо отклоняется от траектории).
Первый метод расчетов: Разбиваем траекторию на небольшие участки. И для каждой позиции рассчитываем максимально допустимую скорость подачи. Для этого представим, что мы уже находимся в данной точке, и имеем некоторую скорость и ускорение и пытаемся представить - сможем ли мы проехать еще несколько секунд по траектории управляя только параметром jerk (т.е. плавно меняя ускорение), и при этом не отклониться от требуемого пути.
Если расчет говорит о том, что это возможно - значит ускорение и скорость в данной точке допустимы.
Далее пробуем тот же самый расчет, но для большего ускорения (как если бы на протяжении прошедшего маленького участка jerk был допустимым, положительным).
Затем - для меньшего.
Если оказываются допустимы все три или два варианта - сравниваем время прохождения пути для каждого и выбираем наименьшее.
Те же расчеты необходимо будет провести для каждой оси, и найти наименьшее время для всей матрицы результатов.
И так - на каждом маленьком кусочке траектории.
Данный метод потребует большого объема расчетов, особенно в случае с более, чем тремя осями.
Метод можно сильно оптимизировать. Особенно, важно оптимизировать ту часть расчетов, которая оценивает допустимость скорости и ускорения для каждой конкретной точки.
Второй метод - аналитический.
Его проще представить в виде работы с геометрией графиков скоростей и ускорений.
Если бы не было параметра jerk - графики изменения скорости представляли бы из себя трапецеидальную форму (если всю траекторию разбить на мелкие прямолинейные сегменты).
Т.е. в простейшем случае для каждого участка траектории есть точка старта (возможно - с некоторой начальной скоростью), участок линейного изменения скорости, участок постоянной скорости, и второй участок линейного изменения скорости до конечного значения.
На этом этапе скорости и ускорения должны быть ограничены допустимыми значениями и учтена скорость изменения угла траектории, для оценки допустимых ускорений по осям.
Теперь к этим идеальным графикам нужно добавить еще скругления углов этих трапецеидальных форм.
При чем потребуется изменять графики всех осей одновременно. Т.е. если мы добавляем плавное ускорение для одной из осей - мы должны соответственно откорректировать и графики других осей в данном месте траектории, так, чтобы не возникло рассогласования.
При таких действиях придется правильно определить последовательность корректировок (скругления графиков скорости) осей. Сначала нужно будет корректировать те участки, которые принадлежат оси с наименьшим значением Jerk и ускорения (еще нужно будет умножить на проекцию вектора скорости движения на данную ось ).
В общем - второй метод намного более сложный, но при этом объем вычислений многократно меньше, особенно для многоосевых станков.
По большому счету нам нужно будет рассчитать параметры только для граничных точек (там где меняется значение Jerk).
Оба метода я описал со значительными упрощениями, и опустил ряд тонкостей, но в целом - можно понять примерную логику вычислений.
Первый метод похож на Рендеринг 3d изображения с помощью лучевой трассировки (когда для каждой точки рассчитывается цвет),
а второй метод больше похож на работу видеокарты с Direct 3d (как в CAD программах).
Еще можно сравнить с растровым и векторным редакторами. В первом случае - алгоритмы проще, но для более высокой точности - потребуется очень большой объем вычислений.
И еще - все эти рассуждения применимы к Декартовым станкам. Как быть с осями вращения - я не знаю.
Re: S - разгон/торможение для ЕМС2 слабо?
Судя по тем материалам, которые я успел изучить, вообще неважно линейная ось или поворотная. У поворотной те же ограничения- максимальные скорость, ускорение, рывок.
Второму алгоритму будет сложно работать с сплайнами.
Второму алгоритму будет сложно работать с сплайнами.
- michael-yurov
- Почётный участник

- Сообщения: 11730
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4703
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: S - разгон/торможение для ЕМС2 слабо?
Да я тут думал, думал,dpss писал(а):Судя по тем материалам, которые я успел изучить, вообще неважно линейная ось или поворотная. У поворотной те же ограничения- максимальные скорость, ускорение, рывок.
Второму алгоритму будет сложно работать с сплайнами.
По идее и со сплайнами не должно быть проблем.
Проще не трапеции скруглять, как оказывается, а сразу правильную форум строить.
Кривая разгона то для каждой оси постоянна, так вот нужно графики скоростей осей подровнять (как фигурным шпателем) под эту форму, так, чтобы площадь под ними (пройденный путь) осталась неизменной.
Соответственно, в тех же местах "подмять" и остальные оси согласно вкладу в направление вектора траектории.
Короче, алгоритм получается настолько сложный, что ради развлечения такой делать не станешь.
Re: S - разгон/торможение для ЕМС2 слабо?
Вводная статейка по данному вопросу:
http://archive.nbuv.gov.ua/portal/natur ... 2010_2.pdf
Реализовывал программу по данному алгоритму на описаном устройстве. Кому интересны подробности, можем пообщаться здесь или: Kuznetsoff<dot>Yu<at>mail.ru
http://archive.nbuv.gov.ua/portal/natur ... 2010_2.pdf
Реализовывал программу по данному алгоритму на описаном устройстве. Кому интересны подробности, можем пообщаться здесь или: Kuznetsoff<dot>Yu<at>mail.ru
- michael-yurov
- Почётный участник

- Сообщения: 11730
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4703
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: S - разгон/торможение для ЕМС2 слабо?
Бегло просмотрел, но не увидел главного.КУ! писал(а):Вводная статейка по данному вопросу:
http://archive.nbuv.gov.ua/portal/natur ... 2010_2.pdf
Реализовывал программу по данному алгоритму на описаном устройстве. Кому интересны подробности, можем пообщаться здесь или: Kuznetsoff<dot>Yu<at>mail.ru
Вы пишите о том, как рассчитать изменение скорости на том или ином участке зная начальную и конечную требуемые скорости.
Но как их узнать - это же самый сложный вопрос!
Как узнать, до какой скорости можно разгоняться в том или ином месте траектории, чтобы и скорость и ускорение и скорость изменения ускорения не вышли за допустимые рамки?
