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

 
 
4 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Нелинейное перемещение шагового двигателя.
Павел_Б
сообщение Feb 17 2016, 15:52
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 354
Регистрация: 21-11-10
Пользователь №: 61 046



Здравствуйте.
Есть привод от матричного принтера с шаговым двигателем.
Приладил к шаговому двигателю драйвер из четырёх кт815. Ключами управляет Atmega.
Алгоритм движения такой:
Шаг 1 (подаём питание на обмотку А), пауза, питание на обмотке А выключается.
Шаг 2 (подаём питание на обмотку В), пауза, питание на обмотке В выключается.
Шаг 3 (подаём питание на обмотку С), пауза, питание на обмотке С выключается.
Шаг 4 (подаём питание на обмотку Д), пауза, питание на обмотке Д выключается.
и дальше опять шаг 1.
Т.е. всё понятно - прямолинейное движение в одну сторону.
Стало скучно и захотелось это движение (а точнее скорость движения) сделать нелинейным, а именно если требуется скажем 100 шагов сделать то у первого шага (а также у последнего) пауза самая большая, у следующего шага чуть меньше, у 50-го шага пауза самая минимальная и потом снова на увеличение.
Что то типа "экспоненциального" закона изменения - или даже что-то типа "параболического" движения.
Т.е. нужна функция, в которую бы мы заходили, передавали 2 параметра это полное количество шагов при перемещении, и номер шага.
Не знаю правильно и понятно ли объясняюсь но хочу чтобы двигатель стартовал с минимальной скоростью (максимальная пауза), и ускорялся, посредине движения скорость была максимальная (минимальная пауза),а потом пауза вновь бы увеличивалась.
Т.е. можем заведомо задать минимальную скорость (максимальную паузу шага - 4000 uS), и максимальную скорость (минимальную паузу - 2000 uS).
Как такую функцию сделать и нужно учесть что количество шагов может быть как чётным так и нечётным.
Есть какие-либо мысли? Сам в программировании не очень силён sad.gif
Спасибо!
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 17 2016, 16:52
Сообщение #2


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Максимальная скорость должна быть ограничена. От механики зависит. И минимальная должна задаваться. Получается, есть кусок нарастающей параболы (начинающийся не с 0, а с минимальной скорости), затем линейный участок с максимальной скоростью (если количество шагов позволит), и кусок спадающей параболы (предположим, симметричный первому куску). Вот этот первый кусок можно сохранить в виде таблицы (парабола или синус или еще что-нибудь), и использовать при определении времени в зависимости от шага.
Go to the top of the page
 
+Quote Post
Corvus
сообщение Feb 17 2016, 18:43
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 24-04-08
Из: Зеленоград
Пользователь №: 37 056



Цитата(Павел_Б @ Feb 17 2016, 18:52) *
Есть какие-либо мысли?

http://www.atmel.com/images/doc8017.pdf
Go to the top of the page
 
+Quote Post
Iptash
сообщение Feb 17 2016, 19:16
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 613
Регистрация: 2-09-08
Из: г.Набережные Челны
Пользователь №: 39 936



Это типа разгон торможение? Пауза это какое то обесточенное состояние обмоток? Зачем частоту менять с помощью пауз. Не лучше ли менять рабочую частоту без пауз?
Go to the top of the page
 
+Quote Post
Огурцов
сообщение Feb 17 2016, 22:13
Сообщение #5


Гуру
******

Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588



Цитата(ViKo @ Feb 17 2016, 16:52) *
не с 0, а с минимальной скорости

это ещё зачем ?

Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 18 2016, 05:07
Сообщение #6


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Огурцов @ Feb 18 2016, 01:13) *
это ещё зачем ?

В показанном выше документе нарисована графики. Там скорость в виде трапеции. Да, начинается с нуля и линейно возрастает до предельной. Согласен, с нуля. При постоянном ускорении. А ведь можно... ?

П.С. Допустим, скорость 0. Это какой же длительности импульс тока в обмотке надо сделать? Бесконечной, что ли? rolleyes.gif
Go to the top of the page
 
+Quote Post
Павел_Б
сообщение Feb 18 2016, 05:22
Сообщение #7


Местный
***

Группа: Участник
Сообщений: 354
Регистрация: 21-11-10
Пользователь №: 61 046



Цитата(ViKo @ Feb 17 2016, 19:52) *
Максимальная скорость должна быть ограничена. От механики зависит. И минимальная должна задаваться. Получается, есть кусок нарастающей параболы (начинающийся не с 0, а с минимальной скорости), затем линейный участок с максимальной скоростью (если количество шагов позволит), и кусок спадающей параболы (предположим, симметричный первому куску). Вот этот первый кусок можно сохранить в виде таблицы (парабола или синус или еще что-нибудь), и использовать при определении времени в зависимости от шага.

Да. Так и нужно попробовать сделать.
Будет три участка. Разгон, равномерный и торможение.
Разгон и торможение (грубо говоря по 20 шагов) задать в виде таблиц (будут симметричными), а равномерный участок на постоянной максимальной скорости.
Главное чтобы количество шагов при перемещении было больше или равно количеству шагов на разгон и на торможение.
Максимальная скорость конечно будет ограничена, для этого я и указал что минимальная пауза/период на обмотках с напряжением - 2000uS
Спасибо!
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 18 2016, 05:24
Сообщение #8


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



П.П.С. А ведь можно и с постоянной скоростью крутить. А можно и совместить - начать с минимальной и линейно ее увеличивать. Быстрее будет.
Go to the top of the page
 
+Quote Post
Павел_Б
сообщение Feb 18 2016, 05:27
Сообщение #9


Местный
***

Группа: Участник
Сообщений: 354
Регистрация: 21-11-10
Пользователь №: 61 046



Цитата(Iptash @ Feb 17 2016, 22:16) *
Это типа разгон торможение? Пауза это какое то обесточенное состояние обмоток? Зачем частоту менять с помощью пауз. Не лучше ли менять рабочую частоту без пауз?

Пауза - это время/период с поданным напряжением на катушку. Я писал:
__
Шаг 1 (подаём питание на обмотку А), пауза, питание на обмотке А выключается.
Шаг 2 (подаём питание на обмотку В), пауза, питание на обмотке В выключается.
Шаг 3 (подаём питание на обмотку С), пауза, питание на обмотке С выключается.
Шаг 4 (подаём питание на обмотку Д), пауза, питание на обмотке Д выключается.
__


Цитата(ViKo @ Feb 18 2016, 08:24) *
П.П.С. А ведь можно и с постоянной скоростью крутить. А можно и совместить - начать с минимальной и линейно ее увеличивать. Быстрее будет.

Как раз быстрее будет если тремя участками как писал выше... так как количество шагов при перемещении может быть и 50 и 1000.
Будем пробовать. Спасибо!
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 18 2016, 05:31
Сообщение #10


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Павел_Б @ Feb 18 2016, 08:22) *
Да. Так и нужно попробовать сделать.
Будет три участка.

Разгон и торможение - процессы разные, и ускорения можно задать разные.
Участок постоянной максимальной скорости не обязателен. Если шагов мало, пройдете только по части разгона и части торможения.

Цитата(Павел_Б @ Feb 18 2016, 08:27) *
Как раз быстрее будет если тремя участками как писал выше... так как количество шагов при перемещении может быть и 50 и 1000.
Будем пробовать. Спасибо!

Там тоже 3 участка, только трапеция скорости будет приподнята на минимальную скорость. Не настаиваю, просто теоритезирую. Огурцову отвечаю.
Go to the top of the page
 
+Quote Post
Tanya
сообщение Feb 18 2016, 07:13
Сообщение #11


Гуру
******

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



Цитата(ViKo @ Feb 18 2016, 08:31) *
Разгон и торможение - процессы разные, и ускорения можно задать разные.
Участок постоянной максимальной скорости не обязателен. Если шагов мало, пройдете только по части разгона и части торможения.

Все это уже неоднократно обсуждалось. Тут очень много разных факторов. В первом приближении, если нужно быстрее встать в некоторую новую точку, то оптимальным будет режим постоянной механической мощности. Тогда скорость должна линейно зависеть от корня (квадратного) от времени. К этому можно придти, разглядывая кривую момент - угловая скорость для моторчика. Это справедливо при достаточно большом напряжении питания, которое обеспечивает постоянный ток обмоток (примерно). При этом нужно использовать драйверы, стабилизирующие ток. Отрицательное ускорение опасно увеличением рассеиваемой мощности в ключах или, если используется рекуперация, повышением напряжения источника питания. Ведь механическая энергия куда-то должна перетекать. Есть еще механический резонанс, который нужно обходить. И еще много-много нюансов.
Go to the top of the page
 
+Quote Post
Ruslan1
сообщение Feb 18 2016, 07:23
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 2 360
Регистрация: 6-03-06
Из: Кишинев
Пользователь №: 15 025



Цитата(Tanya @ Feb 18 2016, 09:13) *
Есть еще механический резонанс, который нужно обходить. И еще много-много нюансов.

Например, звук... Можно добиться совершенно ужасающих по критерию "ухо режет" результатов...
Или удивительных, зависит от подхода и размеров движка sm.gif

Саксаулы аксакалы, наверное, еще помнят Битлов в исполнении привода FDD
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 18 2016, 07:46
Сообщение #13


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Tanya @ Feb 18 2016, 10:13) *
Отрицательное ускорение опасно увеличением рассеиваемой мощности в ключах или, если используется рекуперация, повышением напряжения источника питания. Ведь механическая энергия куда-то должна перетекать.

У тепло от тренья.
Go to the top of the page
 
+Quote Post
Maverick
сообщение Feb 18 2016, 07:51
Сообщение #14


я только учусь...
******

Группа: Модераторы
Сообщений: 3 447
Регистрация: 29-01-07
Из: Украина
Пользователь №: 24 839



попробуйте такой драйвер


--------------------
If it doesn't work in simulation, it won't work on the board.

"Ты живешь в своих поступках, а не в теле. Ты — это твои действия, и нет другого тебя" Антуан де Сент-Экзюпери повесть "Маленький принц"
Go to the top of the page
 
+Quote Post
ViKo
сообщение Feb 18 2016, 07:55
Сообщение #15


Универсальный солдатик
******

Группа: Модераторы
Сообщений: 8 634
Регистрация: 1-11-05
Из: Минск
Пользователь №: 10 362



Цитата(Tanya @ Feb 18 2016, 10:13) *
Все это уже неоднократно обсуждалось. Тут очень много разных факторов. В первом приближении, если нужно быстрее встать в некоторую новую точку, то оптимальным будет режим постоянной механической мощности. Тогда скорость должна линейно зависеть от корня (квадратного) от времени.

Получается кусок параболы, направленной вниз. Или еще сверху ограниченной.

Цитата(Maverick @ Feb 18 2016, 10:51) *

О, там есть приподнятая трапеция. Фигуры 8, 10. Чуе..те, Огурцов?
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st June 2025 - 16:25
Рейтинг@Mail.ru


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