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

 
 
 
Reply to this topicStart new topic
> Разгон шагового двигателя, S - кривая разгона-торможения
exeron
сообщение Mar 27 2008, 16:59
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 14-06-06
Пользователь №: 18 062



Имеется не самый мощный контроллер C8051F343, хотелось бы на нем реализовать S кривую разгона. Пните в нужном направлении.
Go to the top of the page
 
+Quote Post
Guest_TSerg_*
сообщение Mar 28 2008, 14:10
Сообщение #2





Guests






Цитата(exeron @ Mar 27 2008, 19:59) *
Имеется не самый мощный контроллер C8051F343, хотелось бы на нем реализовать S кривую разгона. Пните в нужном направлении.


Проблема в чем ?
Go to the top of the page
 
+Quote Post
evgeny_ch
сообщение Mar 28 2008, 14:23
Сообщение #3


чукчхэшаражогрмонтажник
*****

Группа: Участник
Сообщений: 1 852
Регистрация: 13-07-07
Из: Minsk
Пользователь №: 29 094



Цитата(exeron @ Mar 27 2008, 20:59) *
Имеется не самый мощный контроллер C8051F343, хотелось бы на нем реализовать S кривую разгона. Пните в нужном направлении.

У вас привод с ОС? Если да см. Jerk.


--------------------
Quo vadis?
Go to the top of the page
 
+Quote Post
exeron
сообщение Mar 28 2008, 18:10
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 14-06-06
Пользователь №: 18 062



Вообще говоря, когда я начал тему, меня больше всего интересовала формула по которой можно было бы найти задержки таймера, на вроде c(n)=c0*(sqr(n+1)-sqr(n)).

Теперь вопросы следующие:
1. Имеется некоторое устройство которое будет разгонятся шаговым двигателем с ускорением до 0.4 м/сек2, на сколько целесообразно использование S кривой? И вообще какие реальные впечатления от S кривой, в плане уменьшения вибраций.
2. Формула. smile.gif

Сообщение отредактировал exeron - Mar 28 2008, 18:25
Go to the top of the page
 
+Quote Post
Kirill Frolov
сообщение Mar 28 2008, 19:10
Сообщение #5


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

Группа: Новичок
Сообщений: 111
Регистрация: 10-02-07
Из: St.Petersburg, Russia
Пользователь №: 25 241



Цитата(evgeny_ch @ Mar 28 2008, 17:23) *
У вас привод с ОС? Если да см. Jerk.


Куда смотреть?



Цитата(exeron @ Mar 28 2008, 21:10) *
Вообще говоря, когда я начал тему, меня больше всего интересовала формула по которой можно было бы найти задержки таймера, на вроде c(n)=c0*(sqr(n+1)-sqr(n)).


См . application note AVR446... Да, грабли с переполнением или потерей точности в целочисленных вычислениях там разложены весьма хорошо (и в аппноте тоже...) Там в конце ссылка на оригинал, рекомендуется сравнить с аппнотой в плане формул.

Цитата
Теперь вопросы следующие:
1. Имеется некоторое устройство которое будет разгонятся шаговым двигателем с ускорением до 0.4 м/сек2, на сколько целесообразно использование S кривой? И вообще какие реальные впечатления от S кривой, в плане уменьшения вибраций.


Чо за кривая я вообще х.з. Я думаю разгон с постоянным ускорением рационален в том смысле, что если со скоростью не растёт сопротивление и не падает мощность движка -- это разумно в физическом смысле (что в реальности, увы, не совсем так). График скорости от времени ниже:

Код
      ________________________
     /                                        \
    /                                          \
   /                                            \
  /                                              \
/                                                \
/                                                  \

|<>|<-------------->|<>|
уск.      равн. движ.             тормоз


(по вертикали скорость, по горизонтали *время* (а не шаги для ШД)...)


--------------------
[ZX]
Go to the top of the page
 
+Quote Post
exeron
сообщение Mar 29 2008, 06:23
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 14-06-06
Пользователь №: 18 062



Цитата(Kirill Frolov @ Mar 28 2008, 22:10) *
См . application note AVR446... Да, грабли с переполнением или потерей точности в целочисленных вычислениях там разложены весьма хорошо (и в аппноте тоже...) Там в конце ссылка на оригинал, рекомендуется сравнить с аппнотой в плане формул.

Чо за кривая я вообще х.з. Я думаю разгон с постоянным ускорением рационален в том смысле, что если со скоростью не растёт сопротивление и не падает мощность движка -- это разумно в физическом смысле (что в реальности, увы, не совсем так). График скорости от времени ниже:


Смотрел я на эту аппноту и на оригинал тоже на embedded.com smile.gif . Там как раз разгон с постоянным ускорением и рассматривался. А S кривая, это когда в вашем графике часть разгона и торможения имеет S образный профиль, а например, ускорение выглядит как ваш график. (это в самом простом случае)
Go to the top of the page
 
+Quote Post
DL36
сообщение Mar 29 2008, 07:45
Сообщение #7


Местный
***

Группа: Свой
Сообщений: 460
Регистрация: 5-10-06
Из: Херсон
Пользователь №: 21 006



Цитата(exeron @ Mar 29 2008, 10:23) *
Смотрел я на эту аппноту и на оригинал тоже на embedded.com smile.gif . Там как раз разгон с постоянным ускорением и рассматривался. А S кривая, это когда в вашем графике часть разгона и торможения имеет S образный профиль, а например, ускорение выглядит как ваш график. (это в самом простом случае)

Все зависит от приемистости системы двигатель исполнительное устройство. Если двигатель в системе способен отработать подаваемую с нуля частоту импульсов, то мое мнение, S кривая и не нужна.
Добавил чуток:
Если в процессе пуска в системе требуется выполнить натяг, для выбора зазоров, то тут уже никуда не денешься, прийдется применять S кривую. Поскольку с шаговым двигателем, нельзя задать момент двигателя менее пускового.
Go to the top of the page
 
+Quote Post
MaxPIC
сообщение Mar 30 2008, 11:48
Сообщение #8


специалист
***

Группа: Свой
Сообщений: 279
Регистрация: 3-05-07
Из: г. Москва
Пользователь №: 27 506



Я пробовал применять и S-образную кривую разгона, и линейную, и типа RC (экспонента при подаче сигнала на RC фильтр). От математики в реал тайме я отказался, муторно, да и время МК убивается за зря. Взял Maple, посчитал соответствующие кривые, перевёл их в значения таймера с учётом предделителей таймера. В итоге остановился на RC. S-образная кривая мне не понравилась потому, что имеет ярко выраженный максимум ускорения. Линейная давала срыв движка во время работы установки, так как несмотря на то,что ускорение постоянно, момент на валу двигателя уменьшается с увеличением скорости вращения, поэтому если строить эффективную нагрузочную кривую двигателя, самой оптимальной в смысле постоянства затрачиваемой мощности оказалась RC кривая, т.е. экспонента разгона компенсировала экспоненту потери момента (если её аппроксимировать экспонентой для конкретного двигателя). А далее, если требуется регулировка времени разгона, меняется просто тау (а ля время RC-цепи) и простым пересчётом в Maple получаются новые данные. Кратно изменять тау в небольших пределах можно регулировкой количества повторений каждого отсчёта кривой разгона. Значения таймера я записывал во FLASH-память МК, а во время работы их считывал. Кстати, кривую торможения я сделал такую же, как и разгона, только проходят значения таймера в обратном порядке.
Go to the top of the page
 
+Quote Post
exeron
сообщение Mar 30 2008, 14:36
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 14-06-06
Пользователь №: 18 062



Экспонента, в плане нагрузки действительно лучше подходит для шагового двигателя. А насколько экспонента хороша в плане уменьшения вибраций? Почему то буржи просто зациклены на S кривых, причем существует несколько их разновидностей Jerk Limited, Double Jerk Limited... Наверно не просто так... Теория для них построена неплохая, но как бы она не разбилась о реальный мир - все таки задержки таймера целочисленные, да и шаговый двигатель устройство дискретное.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Mar 30 2008, 15:17
Сообщение #10


Гуру
******

Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883



Цитата(exeron @ Mar 30 2008, 18:36) *
Экспонента, в плане нагрузки действительно лучше подходит для шагового двигателя. А насколько экспонента хороша в плане уменьшения вибраций? Почему то буржи просто зациклены на S кривых, причем существует несколько их разновидностей Jerk Limited, Double Jerk Limited... Наверно не просто так... Теория для них построена неплохая, но как бы она не разбилась о реальный мир - все таки задержки таймера целочисленные, да и шаговый двигатель устройство дискретное.

Если энергия линено зависит от времени (режим постоянной мощности на валу), то скорость должна быть пропорциональна корню из времени... Дальше сам посчитаете... Максимальную скорость тоже нужно ограничить (это только экспериментально - от трения и проч. зависит), начальную скорость тоже надо выбирать, чтобы уйти от резонанса.
Go to the top of the page
 
+Quote Post
MaxPIC
сообщение Mar 30 2008, 22:40
Сообщение #11


специалист
***

Группа: Свой
Сообщений: 279
Регистрация: 3-05-07
Из: г. Москва
Пользователь №: 27 506



Честно говоря, не знаю что такое Jerk Limited и т.п. Но мне кажется, что Вы слишком далеко ушли от реальной задачи. В самом начале же написано, на простеньком МК реализовать кривую разгона. Предлагаемый мною вариант,экспонента, записанная в память, - проще некуда. А работать будет эффективно, по крайней мере в моей практике в нескольких девайсах этот принцип использовал - нареканий нет.
Go to the top of the page
 
+Quote Post
exeron
сообщение Apr 13 2008, 09:33
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 14-06-06
Пользователь №: 18 062



В общем со всем этим делом вроде разобрался, если все делать с помощью предварительно посчитанной таблицы, то можно опробовать множество алгоритмов разгона.

Стало очень интересно, а как быть в том случае если разгоняемся до Vmax/2, (с помощью какого-либо нелинейного алгоритма разгона), движемся какое-то время на этой скорости, а потом разгоняемся до Vmax. Просто очень интересно.
Go to the top of the page
 
+Quote Post
galjoen
сообщение Apr 17 2008, 11:41
Сообщение #13


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



Цитата(exeron @ Apr 13 2008, 13:33) *
Стало очень интересно, а как быть в том случае если разгоняемся до Vmax/2, (с помощью какого-либо нелинейного алгоритма разгона), движемся какое-то время на этой скорости, а потом разгоняемся до Vmax. Просто очень интересно.

Может и не в тему. Наблюдал как кран-балкой контейнеры перемещают:
1. Контейнер поднимают
2. Начинается движение кран-балки в заданном направлении
3. Кран-балка останавливается
4. Контейнер, как маятник, набирает скорость
5. Кран балка возобнавляет движение.
При этом контейнер не раскачивается. Если-же просто двигать кран-балку (я попробовал), то зрелище будет не для слабонервных. Контейнер будет СИЛЬНО раскачиваться.

Разгон до Vmax/2, а потом до Vmax - это как раз лучший способ борьбы с раскачиванием (у кран-балки 1 скорость, поэтому так ей управлять невозможно).
Go to the top of the page
 
+Quote Post
evgeny_ch
сообщение Apr 17 2008, 13:10
Сообщение #14


чукчхэшаражогрмонтажник
*****

Группа: Участник
Сообщений: 1 852
Регистрация: 13-07-07
Из: Minsk
Пользователь №: 29 094



Цитата(exeron @ Apr 13 2008, 12:33) *
В общем со всем этим делом вроде разобрался, если все делать с помощью предварительно посчитанной таблицы, то можно опробовать множество алгоритмов разгона.

Стало очень интересно, а как быть в том случае если разгоняемся до Vmax/2, (с помощью какого-либо нелинейного алгоритма разгона), движемся какое-то время на этой скорости, а потом разгоняемся до Vmax. Просто очень интересно.

Planning S-curve Motion Profiles.
Motion Control Theory.

Сообщение отредактировал evgeny_ch - Apr 17 2008, 14:09


--------------------
Quo vadis?
Go to the top of the page
 
+Quote Post
exeron
сообщение Apr 17 2008, 15:28
Сообщение #15


Участник
*

Группа: Участник
Сообщений: 19
Регистрация: 14-06-06
Пользователь №: 18 062



Цитата(evgeny_ch @ Apr 17 2008, 17:10) *
Planning S-curve Motion Profiles.
Motion Control Theory.

Замечательные документы. Все в одном месте, все очень удобно для сравнения.
Вот только бы одним глазком взглянуть на то КАК это они реализовали!!!
Теория это очень хорошо, но нигде путевых реализаций (на недорогих контроллерах) я не видел.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 26th June 2025 - 06:38
Рейтинг@Mail.ru


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