|
|
  |
Разгон шагового двигателя, S - кривая разгона-торможения |
|
|
|
Mar 27 2008, 16:59
|
Участник

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

|
Имеется не самый мощный контроллер C8051F343, хотелось бы на нем реализовать S кривую разгона. Пните в нужном направлении.
|
|
|
|
Guest_TSerg_*
|
Mar 28 2008, 14:10
|
Guests

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

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

|
Вообще говоря, когда я начал тему, меня больше всего интересовала формула по которой можно было бы найти задержки таймера, на вроде c(n)=c0*(sqr(n+1)-sqr(n)). Теперь вопросы следующие: 1. Имеется некоторое устройство которое будет разгонятся шаговым двигателем с ускорением до 0.4 м/сек2, на сколько целесообразно использование S кривой? И вообще какие реальные впечатления от S кривой, в плане уменьшения вибраций. 2. Формула.
Сообщение отредактировал exeron - Mar 28 2008, 18:25
|
|
|
|
|
Mar 28 2008, 19:10
|

Частый гость
 
Группа: Новичок
Сообщений: 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]
|
|
|
|
|
Mar 29 2008, 06:23
|
Участник

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

|
Цитата(Kirill Frolov @ Mar 28 2008, 22:10)  См . application note AVR446... Да, грабли с переполнением или потерей точности в целочисленных вычислениях там разложены весьма хорошо (и в аппноте тоже...) Там в конце ссылка на оригинал, рекомендуется сравнить с аппнотой в плане формул.
Чо за кривая я вообще х.з. Я думаю разгон с постоянным ускорением рационален в том смысле, что если со скоростью не растёт сопротивление и не падает мощность движка -- это разумно в физическом смысле (что в реальности, увы, не совсем так). График скорости от времени ниже: Смотрел я на эту аппноту и на оригинал тоже на embedded.com  . Там как раз разгон с постоянным ускорением и рассматривался. А S кривая, это когда в вашем графике часть разгона и торможения имеет S образный профиль, а например, ускорение выглядит как ваш график. (это в самом простом случае)
|
|
|
|
|
Mar 29 2008, 07:45
|
Местный
  
Группа: Свой
Сообщений: 460
Регистрация: 5-10-06
Из: Херсон
Пользователь №: 21 006

|
Цитата(exeron @ Mar 29 2008, 10:23)  Смотрел я на эту аппноту и на оригинал тоже на embedded.com  . Там как раз разгон с постоянным ускорением и рассматривался. А S кривая, это когда в вашем графике часть разгона и торможения имеет S образный профиль, а например, ускорение выглядит как ваш график. (это в самом простом случае) Все зависит от приемистости системы двигатель исполнительное устройство. Если двигатель в системе способен отработать подаваемую с нуля частоту импульсов, то мое мнение, S кривая и не нужна. Добавил чуток: Если в процессе пуска в системе требуется выполнить натяг, для выбора зазоров, то тут уже никуда не денешься, прийдется применять S кривую. Поскольку с шаговым двигателем, нельзя задать момент двигателя менее пускового.
|
|
|
|
|
Mar 30 2008, 11:48
|
специалист
  
Группа: Свой
Сообщений: 279
Регистрация: 3-05-07
Из: г. Москва
Пользователь №: 27 506

|
Я пробовал применять и S-образную кривую разгона, и линейную, и типа RC (экспонента при подаче сигнала на RC фильтр). От математики в реал тайме я отказался, муторно, да и время МК убивается за зря. Взял Maple, посчитал соответствующие кривые, перевёл их в значения таймера с учётом предделителей таймера. В итоге остановился на RC. S-образная кривая мне не понравилась потому, что имеет ярко выраженный максимум ускорения. Линейная давала срыв движка во время работы установки, так как несмотря на то,что ускорение постоянно, момент на валу двигателя уменьшается с увеличением скорости вращения, поэтому если строить эффективную нагрузочную кривую двигателя, самой оптимальной в смысле постоянства затрачиваемой мощности оказалась RC кривая, т.е. экспонента разгона компенсировала экспоненту потери момента (если её аппроксимировать экспонентой для конкретного двигателя). А далее, если требуется регулировка времени разгона, меняется просто тау (а ля время RC-цепи) и простым пересчётом в Maple получаются новые данные. Кратно изменять тау в небольших пределах можно регулировкой количества повторений каждого отсчёта кривой разгона. Значения таймера я записывал во FLASH-память МК, а во время работы их считывал. Кстати, кривую торможения я сделал такую же, как и разгона, только проходят значения таймера в обратном порядке.
|
|
|
|
|
Mar 30 2008, 14:36
|
Участник

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

|
Экспонента, в плане нагрузки действительно лучше подходит для шагового двигателя. А насколько экспонента хороша в плане уменьшения вибраций? Почему то буржи просто зациклены на S кривых, причем существует несколько их разновидностей Jerk Limited, Double Jerk Limited... Наверно не просто так... Теория для них построена неплохая, но как бы она не разбилась о реальный мир - все таки задержки таймера целочисленные, да и шаговый двигатель устройство дискретное.
|
|
|
|
|
Mar 30 2008, 15:17
|
Гуру
     
Группа: Модераторы
Сообщений: 8 752
Регистрация: 6-01-06
Пользователь №: 12 883

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

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

|
В общем со всем этим делом вроде разобрался, если все делать с помощью предварительно посчитанной таблицы, то можно опробовать множество алгоритмов разгона.
Стало очень интересно, а как быть в том случае если разгоняемся до Vmax/2, (с помощью какого-либо нелинейного алгоритма разгона), движемся какое-то время на этой скорости, а потом разгоняемся до Vmax. Просто очень интересно.
|
|
|
|
|
Apr 17 2008, 11:41
|
Знающий
   
Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640

|
Цитата(exeron @ Apr 13 2008, 13:33)  Стало очень интересно, а как быть в том случае если разгоняемся до Vmax/2, (с помощью какого-либо нелинейного алгоритма разгона), движемся какое-то время на этой скорости, а потом разгоняемся до Vmax. Просто очень интересно. Может и не в тему. Наблюдал как кран-балкой контейнеры перемещают: 1. Контейнер поднимают 2. Начинается движение кран-балки в заданном направлении 3. Кран-балка останавливается 4. Контейнер, как маятник, набирает скорость 5. Кран балка возобнавляет движение. При этом контейнер не раскачивается. Если-же просто двигать кран-балку (я попробовал), то зрелище будет не для слабонервных. Контейнер будет СИЛЬНО раскачиваться. Разгон до Vmax/2, а потом до Vmax - это как раз лучший способ борьбы с раскачиванием (у кран-балки 1 скорость, поэтому так ей управлять невозможно).
|
|
|
|
|
Apr 17 2008, 13:10
|

чукчхэшаражогрмонтажник
    
Группа: Участник
Сообщений: 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?
|
|
|
|
|
Apr 17 2008, 15:28
|
Участник

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

|
Цитата(evgeny_ch @ Apr 17 2008, 17:10)  Planning S-curve Motion Profiles. Motion Control Theory. Замечательные документы. Все в одном месте, все очень удобно для сравнения. Вот только бы одним глазком взглянуть на то КАК это они реализовали!!! Теория это очень хорошо, но нигде путевых реализаций (на недорогих контроллерах) я не видел.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|