|
Нелинейное перемещение шагового двигателя. |
|
|
|
Feb 17 2016, 15:52
|
Местный
  
Группа: Участник
Сообщений: 354
Регистрация: 21-11-10
Пользователь №: 61 046

|
Здравствуйте. Есть привод от матричного принтера с шаговым двигателем. Приладил к шаговому двигателю драйвер из четырёх кт815. Ключами управляет Atmega. Алгоритм движения такой: Шаг 1 (подаём питание на обмотку А), пауза, питание на обмотке А выключается. Шаг 2 (подаём питание на обмотку В), пауза, питание на обмотке В выключается. Шаг 3 (подаём питание на обмотку С), пауза, питание на обмотке С выключается. Шаг 4 (подаём питание на обмотку Д), пауза, питание на обмотке Д выключается. и дальше опять шаг 1. Т.е. всё понятно - прямолинейное движение в одну сторону. Стало скучно и захотелось это движение (а точнее скорость движения) сделать нелинейным, а именно если требуется скажем 100 шагов сделать то у первого шага (а также у последнего) пауза самая большая, у следующего шага чуть меньше, у 50-го шага пауза самая минимальная и потом снова на увеличение. Что то типа "экспоненциального" закона изменения - или даже что-то типа "параболического" движения. Т.е. нужна функция, в которую бы мы заходили, передавали 2 параметра это полное количество шагов при перемещении, и номер шага. Не знаю правильно и понятно ли объясняюсь но хочу чтобы двигатель стартовал с минимальной скоростью (максимальная пауза), и ускорялся, посредине движения скорость была максимальная (минимальная пауза),а потом пауза вновь бы увеличивалась. Т.е. можем заведомо задать минимальную скорость (максимальную паузу шага - 4000 uS), и максимальную скорость (минимальную паузу - 2000 uS). Как такую функцию сделать и нужно учесть что количество шагов может быть как чётным так и нечётным. Есть какие-либо мысли? Сам в программировании не очень силён  Спасибо!
|
|
|
|
|
 |
Ответов
|
Feb 18 2016, 05:22
|
Местный
  
Группа: Участник
Сообщений: 354
Регистрация: 21-11-10
Пользователь №: 61 046

|
Цитата(ViKo @ Feb 17 2016, 19:52)  Максимальная скорость должна быть ограничена. От механики зависит. И минимальная должна задаваться. Получается, есть кусок нарастающей параболы (начинающийся не с 0, а с минимальной скорости), затем линейный участок с максимальной скоростью (если количество шагов позволит), и кусок спадающей параболы (предположим, симметричный первому куску). Вот этот первый кусок можно сохранить в виде таблицы (парабола или синус или еще что-нибудь), и использовать при определении времени в зависимости от шага. Да. Так и нужно попробовать сделать. Будет три участка. Разгон, равномерный и торможение. Разгон и торможение (грубо говоря по 20 шагов) задать в виде таблиц (будут симметричными), а равномерный участок на постоянной максимальной скорости. Главное чтобы количество шагов при перемещении было больше или равно количеству шагов на разгон и на торможение. Максимальная скорость конечно будет ограничена, для этого я и указал что минимальная пауза/период на обмотках с напряжением - 2000uS Спасибо!
|
|
|
|
Сообщений в этой теме
Павел_Б Нелинейное перемещение шагового двигателя. Feb 17 2016, 15:52 Огурцов Цитата(ViKo @ Feb 17 2016, 16:52) не с 0,... Feb 17 2016, 22:13  ViKo Цитата(Огурцов @ Feb 18 2016, 01:13) это ... Feb 18 2016, 05:07  ViKo Цитата(Павел_Б @ Feb 18 2016, 08:22) Да. ... Feb 18 2016, 05:31   Tanya Цитата(ViKo @ Feb 18 2016, 08:31) Разгон ... Feb 18 2016, 07:13    Ruslan1 Цитата(Tanya @ Feb 18 2016, 09:13) Есть е... Feb 18 2016, 07:23    ViKo Цитата(Tanya @ Feb 18 2016, 10:13) Отрица... Feb 18 2016, 07:46     Maverick попробуйте такой драйвер Feb 18 2016, 07:51     Tanya Цитата(ViKo @ Feb 18 2016, 10:46) У тепло... Feb 18 2016, 08:05      Maverick в некоторых источниках пишут, что лучше строить ус... Feb 18 2016, 08:09      ViKo Цитата(Tanya @ Feb 18 2016, 11:05) От тре... Feb 18 2016, 08:11       Tanya Цитата(ViKo @ Feb 18 2016, 11:11) Нет. ... Feb 18 2016, 09:59        ViKo Цитата(Tanya @ Feb 18 2016, 12:59) Обычно... Feb 18 2016, 10:17         Tanya Цитата(ViKo @ Feb 18 2016, 13:17) И что ж... Feb 18 2016, 10:34    ViKo Цитата(Tanya @ Feb 18 2016, 10:13) Все эт... Feb 18 2016, 07:55 Corvus Цитата(Павел_Б @ Feb 17 2016, 18:52) Есть... Feb 17 2016, 18:43 Iptash Это типа разгон торможение? Пауза это какое то обе... Feb 17 2016, 19:16 Павел_Б Цитата(Iptash @ Feb 17 2016, 22:16) Это т... Feb 18 2016, 05:27  Gorby Цитата(Павел_Б @ Feb 18 2016, 06:27) Пауз... Feb 19 2016, 11:56   Onkel Цитата(Gorby @ Feb 19 2016, 14:56) Никому... Feb 19 2016, 16:02 ViKo П.П.С. А ведь можно и с постоянной скоростью крути... Feb 18 2016, 05:24 ViKo Перетопчусь... Feb 18 2016, 11:39 Павел_Б У меня есть неприятный момент - иногда раз из 20-т... Feb 18 2016, 13:38  Herz Цитата(Павел_Б @ Feb 18 2016, 15:38) Что ... Feb 18 2016, 14:18  Tanya Цитата(Павел_Б @ Feb 18 2016, 16:38) Схем... Feb 18 2016, 15:04  dinam Цитата(Павел_Б @ Feb 18 2016, 19:38) У ме... Feb 19 2016, 06:15 ViKo Если дошли до резонанса, момент вращения упал, зад... Feb 19 2016, 06:42 Tanya Цитата(ViKo @ Feb 19 2016, 09:42) при это... Feb 19 2016, 08:03 ViKo Это и есть ре-зо-нанс. Я говорю, что вряд ли у топ... Feb 19 2016, 08:17 Tanya Цитата(ViKo @ Feb 19 2016, 11:17) Это и е... Feb 19 2016, 08:25 ViKo Не обязательно. Просто дошел до предельной скорост... Feb 19 2016, 08:28 Tanya Цитата(ViKo @ Feb 19 2016, 11:28) Не обяз... Feb 19 2016, 08:56  Огурцов Цитата(Tanya @ Feb 19 2016, 09:56) Никако... Feb 19 2016, 13:20   Tanya Цитата(Огурцов @ Feb 19 2016, 16:20) разн... Feb 19 2016, 15:16 ViKo Можно задавать разный ток в обмотках и получать др... Feb 19 2016, 16:56 ViKo Можно, вообще, плавно ток менять, так, чтобы не бы... Feb 20 2016, 09:23 Tanya Цитата(ViKo @ Feb 20 2016, 12:23) И никак... Feb 20 2016, 10:40  ViKo Цитата(Tanya @ Feb 20 2016, 13:40) Но гор... Feb 20 2016, 12:18   Tanya Цитата(ViKo @ Feb 20 2016, 15:18) Небось,... Feb 20 2016, 13:20    ViKo Цитата(Tanya @ Feb 20 2016, 16:20) В посл... Feb 20 2016, 13:46     Tanya Цитата(ViKo @ Feb 20 2016, 16:46) На что?... Feb 20 2016, 14:07      ar__systems Цитата(Tanya @ Feb 20 2016, 09:07) Намека... Feb 20 2016, 14:12      TSerg Цитата(Tanya @ Feb 20 2016, 17:07) Но как... Feb 20 2016, 14:19       Tanya Цитата(TSerg @ Feb 20 2016, 17:19) А, зач... Feb 20 2016, 14:30    TSerg Цитата(Tanya @ Feb 20 2016, 16:20) В посл... Feb 20 2016, 13:53 TSerg Оптимальная кривая разгона ШД (минимальное время) ... Feb 20 2016, 12:28 TSerg А зачем, медленно?
Давайте шагово и с позиции межд... Feb 20 2016, 14:42
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|