Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Разгон шагового двигателя
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Математика и Физика
exeron
Имеется не самый мощный контроллер C8051F343, хотелось бы на нем реализовать S кривую разгона. Пните в нужном направлении.
TSerg
Цитата(exeron @ Mar 27 2008, 19:59) *
Имеется не самый мощный контроллер C8051F343, хотелось бы на нем реализовать S кривую разгона. Пните в нужном направлении.


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

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

Теперь вопросы следующие:
1. Имеется некоторое устройство которое будет разгонятся шаговым двигателем с ускорением до 0.4 м/сек2, на сколько целесообразно использование S кривой? И вообще какие реальные впечатления от S кривой, в плане уменьшения вибраций.
2. Формула. smile.gif
Kirill Frolov
Цитата(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 кривой, в плане уменьшения вибраций.


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

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

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


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

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


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

Все зависит от приемистости системы двигатель исполнительное устройство. Если двигатель в системе способен отработать подаваемую с нуля частоту импульсов, то мое мнение, S кривая и не нужна.
Добавил чуток:
Если в процессе пуска в системе требуется выполнить натяг, для выбора зазоров, то тут уже никуда не денешься, прийдется применять S кривую. Поскольку с шаговым двигателем, нельзя задать момент двигателя менее пускового.
MaxPIC
Я пробовал применять и S-образную кривую разгона, и линейную, и типа RC (экспонента при подаче сигнала на RC фильтр). От математики в реал тайме я отказался, муторно, да и время МК убивается за зря. Взял Maple, посчитал соответствующие кривые, перевёл их в значения таймера с учётом предделителей таймера. В итоге остановился на RC. S-образная кривая мне не понравилась потому, что имеет ярко выраженный максимум ускорения. Линейная давала срыв движка во время работы установки, так как несмотря на то,что ускорение постоянно, момент на валу двигателя уменьшается с увеличением скорости вращения, поэтому если строить эффективную нагрузочную кривую двигателя, самой оптимальной в смысле постоянства затрачиваемой мощности оказалась RC кривая, т.е. экспонента разгона компенсировала экспоненту потери момента (если её аппроксимировать экспонентой для конкретного двигателя). А далее, если требуется регулировка времени разгона, меняется просто тау (а ля время RC-цепи) и простым пересчётом в Maple получаются новые данные. Кратно изменять тау в небольших пределах можно регулировкой количества повторений каждого отсчёта кривой разгона. Значения таймера я записывал во FLASH-память МК, а во время работы их считывал. Кстати, кривую торможения я сделал такую же, как и разгона, только проходят значения таймера в обратном порядке.
exeron
Экспонента, в плане нагрузки действительно лучше подходит для шагового двигателя. А насколько экспонента хороша в плане уменьшения вибраций? Почему то буржи просто зациклены на S кривых, причем существует несколько их разновидностей Jerk Limited, Double Jerk Limited... Наверно не просто так... Теория для них построена неплохая, но как бы она не разбилась о реальный мир - все таки задержки таймера целочисленные, да и шаговый двигатель устройство дискретное.
Tanya
Цитата(exeron @ Mar 30 2008, 18:36) *
Экспонента, в плане нагрузки действительно лучше подходит для шагового двигателя. А насколько экспонента хороша в плане уменьшения вибраций? Почему то буржи просто зациклены на S кривых, причем существует несколько их разновидностей Jerk Limited, Double Jerk Limited... Наверно не просто так... Теория для них построена неплохая, но как бы она не разбилась о реальный мир - все таки задержки таймера целочисленные, да и шаговый двигатель устройство дискретное.

Если энергия линено зависит от времени (режим постоянной мощности на валу), то скорость должна быть пропорциональна корню из времени... Дальше сам посчитаете... Максимальную скорость тоже нужно ограничить (это только экспериментально - от трения и проч. зависит), начальную скорость тоже надо выбирать, чтобы уйти от резонанса.
MaxPIC
Честно говоря, не знаю что такое Jerk Limited и т.п. Но мне кажется, что Вы слишком далеко ушли от реальной задачи. В самом начале же написано, на простеньком МК реализовать кривую разгона. Предлагаемый мною вариант,экспонента, записанная в память, - проще некуда. А работать будет эффективно, по крайней мере в моей практике в нескольких девайсах этот принцип использовал - нареканий нет.
exeron
В общем со всем этим делом вроде разобрался, если все делать с помощью предварительно посчитанной таблицы, то можно опробовать множество алгоритмов разгона.

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

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

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

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

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

Замечательные документы. Все в одном месте, все очень удобно для сравнения.
Вот только бы одним глазком взглянуть на то КАК это они реализовали!!!
Теория это очень хорошо, но нигде путевых реализаций (на недорогих контроллерах) я не видел.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.