Алгоритм разгона двигателя

помощь начинающим осваивать программирование МК (PIC, AVR) на Си.

Модератор: koolhatcker

Ответить
Аватара пользователя
roger
Станкостроитель
Станкостроитель
Сообщения: 96
Зарегистрирован: 27 май 2010, 00:00
Откуда: Таганрог
Контактная информация:

Алгоритм разгона двигателя

Сообщение roger »

Делаю намоточный станок - устройство автономное. Пишу софт, и думаю о алгоритме разгона. Скольки ступенчатный делать шаг, для достижения нужной частоты, и какая пауза между шагами? шаг в 400гц-500гц после 1.2кГц уже проблемно дается, с таким шагом удалось разогнать двигатель от 500шаг/сек до 1.8тыс шаг/сек.
А хотелось бы до 11 тыс. шаг/сек
BMB
Станкостроитель
Станкостроитель
Сообщения: 381
Зарегистрирован: 04 дек 2009, 01:00
Имя: Виктор
Откуда: Московская обл.

Сообщение BMB »

С этой статьей знакомы "Ридико Леонид Иванович. Контроллер шагового двигателя "?
Выдержка про разгон:
Показать/Спрятать
Разогнать!

Для того, чтобы работать на большой скорости из области разгона (рис. 17), необходимо стартовать на низкой скорости из области старта, а затем выполнить разгон. При остановке нужно действовать в обратном порядке: сначала выполнить торможение, и только войдя в область старта можно прекратить подачу управляющих импульсов. В противном случае произойдет потеря синхронности и положение ротора будет утеряно. Использование разгона и торможения позволяет достичь значительно больших скоростей - в индустриальных применениях используются скорости до 10000 полных шагов в секунду. Необходимо отметить, что непрерывная работа шагового двигателя на высокой скорости не всегда допустима ввиду нагрева ротора. Однако высокая скорость кратковременно может быть использована при осуществлении позиционирования.

При разгоне двигатель проходит ряд скоростей, при этом на одной из скоростей можно столкнуться с неприятным явлением резонанса. Для нормального разгона желательно иметь нагрузку, момент инерции которой как минимум равен моменту инерции ротора. На ненагруженном двигателе явление резонанса проявляется наиболее сильно. Подробно методы борьбы с этим явлением будут описаны ниже.
При осуществлении разгона или торможения важно правильно выбрать закон изменения скорости и максимальное ускорение. Ускорение должно быть тем меньше, чем выше инерционность нагрузки. Критерий правильного выбора режима разгона – это осуществление разгона до нужной скорости для конкретной нагрузки за минимальное время. На практике чаще всего применяют разгон и торможение с постоянным ускорением.

Реализация закона, по которому будет производится ускорение или торможение двигателя, обычно производится программно управляющим микроконтроллером, так как именно микроконтроллер обычно является источником тактовой частоты для драйвера шагового двигателя. Хотя раньше для этих целей применялись управляемые напряжением генераторы или пограммируемые делители частоты. Для генерации тактовой частоты удобно использовать аппаратный таймер, который имеется в составе практически любого микроконтроллера. Когда двигатель вращается с постоянной скоростью, достаточно загрузить в таймер постоянное значение периода повторения шагов (длительность шага). Если же двигатель разгоняется или тормозится, этот период меняется с каждым новым шагом. При разгоне или торможении с постоянным ускорением частота повторения шагов должна изменяться линейно, соответствено значение периода, которое необходимо загружать в таймер, должно меняться по гиперболическому закону.

Для наиболее общего случая требуется знать зависимость длительности шага от текущей скорости. Количество шагов, которое осуществляет двигатель при разгоне за время t равно:

N = 1/2At2+Vt, где N – число шагов, t – время, V – скорость, выраженная в шагах в единицу времени, A – ускорение, выраженное в шагах, деленных на время в квадрате.

Для одного шага N = 1, тогда длительность шага t1 = T = (-V+(V2+2A)0.5)/A

В результате осуществления шага скорость становится равной Vnew = (V2+2A)0.5

Вычисления по приведенным формулам довольно трудоемки и требуют значительных затрат процессорного времени. В то же время, они позволяют изменять значение ускорения в произвольный момент. Расчеты можно существенно упростить, если потребовать постоянства ускорения во время разгона и торможения. В этом случае можно записать зависимость длительности шага от времени разгона:
V = V0+At, где V – текущая скорость, V0 – начальная скорость (минимальная скорость, с которой начинается разгон), A – ускорение;
1/T = 1/T0+At, где T – длительность шага, T0 – начальная длительность шага, t – текущее время;

Откуда T = T0/(1+T0At)

Вычисления по этой формуле осуществить значительно проще, однако для того, чтобы поменять значение ускорения, требуется остановить двигатель.
koolhatcker
Смотрящий
Сообщения: 1504
Зарегистрирован: 30 авг 2009, 00:00
Откуда: Омск
Контактная информация:

Сообщение koolhatcker »

roger, какой у вас драйвер, двигатель и какое напряжение питания?
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
Аватара пользователя
roger
Станкостроитель
Станкостроитель
Сообщения: 96
Зарегистрирован: 27 май 2010, 00:00
Откуда: Таганрог
Контактная информация:

Сообщение roger »

BMB писал(а):С этой статьей знакомы "Ридико Леонид Иванович. Контроллер шагового двигателя "?
Выдержка про разгон:
Спасибо про него забыл...
koolhatcker писал(а): roger, какой у вас драйвер, двигатель и какое напряжение питания?
297+2104+ifrz46
Двигатель аналог дши-200-1
питание 30в
koolhatcker
Смотрящий
Сообщения: 1504
Зарегистрирован: 30 авг 2009, 00:00
Откуда: Омск
Контактная информация:

Сообщение koolhatcker »

А хотелось бы до 11 тыс. шаг/сек
Двигатель аналог дши-200-1
roger, посмотрите график зависимости момента этого двигателя от скорости. Если это действительно аналог ДШИ, то про 11кГц можете забыть. Это всё-таки 1650 Об/мин. Конечно если не использовать его в качестве вентилятора :).
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
Аватара пользователя
roger
Станкостроитель
Станкостроитель
Сообщения: 96
Зарегистрирован: 27 май 2010, 00:00
Откуда: Таганрог
Контактная информация:

Сообщение roger »

koolhatcker писал(а):roger, посмотрите график зависимости момента этого двигателя от скорости. Если это действительно аналог ДШИ, то про 11кГц можете забыть. Это всё-таки 1650 Об/мин. Конечно если не использовать его в качестве вентилятора :).
так и думал что будут подобные вопросы....

У меня еще стоит редуктор ~1:55(червячный от стекло очистителя)
Если быть точнее двигатель DYNASYN 4SYG-023A 39S
koolhatcker
Смотрящий
Сообщения: 1504
Зарегистрирован: 30 авг 2009, 00:00
Откуда: Омск
Контактная информация:

Сообщение koolhatcker »

А при чём здесь редуктор, если мы говорим о шагах ДВИГАТЕЛЯ?
Автономный контроллер станка с ЧПУ: http://it-en.ru/cnc
Аватара пользователя
roger
Станкостроитель
Станкостроитель
Сообщения: 96
Зарегистрирован: 27 май 2010, 00:00
Откуда: Таганрог
Контактная информация:

Сообщение roger »

koolhatcker писал(а):А при чём здесь редуктор, если мы говорим о шагах ДВИГАТЕЛЯ?
ну при том что разговор зашел о моменте, момент будет повышатся за счет редуктора
Trudogolik
КУМ
КУМ
Сообщения: 6126
Зарегистрирован: 26 авг 2009, 00:00
Имя: Николай Иосифович
Откуда: Инта респ. Коми, 2000 км от Москвы на север!
Контактная информация:

Сообщение Trudogolik »

Нифига не понял из твоей затеи:
Редуктором увеличиваем момент, но понижаем скорость, а электроникой разгоняем двигатель, но теряем момент :)
Выбрось редуктор и все придет в норму, не надо будет геморой изобретать.
Моя страница для тех, кто ищет ЧПУ выжигатели: https://vk.com/club153912868

Самое ценное в этом мире - информация.
Мы рады предложить вам ее в подарок!
Аватара пользователя
roger
Станкостроитель
Станкостроитель
Сообщения: 96
Зарегистрирован: 27 май 2010, 00:00
Откуда: Таганрог
Контактная информация:

Сообщение roger »

возможно вы и правы
Плюсы есть во всем и минусов тоже хватает.
Аватара пользователя
roger
Станкостроитель
Станкостроитель
Сообщения: 96
Зарегистрирован: 27 май 2010, 00:00
Откуда: Таганрог
Контактная информация:

Сообщение roger »

Вернемся к теме....
Вопрос к бывалым, да и не только, какое оптимальное время для разгона, и оптимальное ускорение...
да и что имелось ввиду у Л.И. Ридеко под t, для сокращенной формуле
1. t - время которое нужно чтобы двигатель разогнался до нужных шагов в ед.времени?
2. t - "текущее время" - текущая частота с которой шагает двигатель? т.е. длительносить импульса?
Trudogolik
КУМ
КУМ
Сообщения: 6126
Зарегистрирован: 26 авг 2009, 00:00
Имя: Николай Иосифович
Откуда: Инта респ. Коми, 2000 км от Москвы на север!
Контактная информация:

Сообщение Trudogolik »

roger писал(а):Вернемся к теме....
Вопрос к бывалым, да и не только, какое оптимальное время для разгона, и оптимальное ускорение...
Второй закон Ньютона: ускорение, приобретаемое телом, прямо пропорционально вызывающей его силе, совпадает с нею по направлению и обратно пропорционально массе тела.
Извини, иначе ответить на твой вопрос нельзя, он звучит слишком обобщенно. Все зависит от мощности шаговика, трений в системе, массы перемещаемых частей.
По поводу рачетов, если ими заинтересовался, посмотри главу 6 книги
Т.Кенио "Шаговые двигатели и их микропроцессорные системы управления" Эта глава как раз посвящена расчетам разгонных и скоростных параметров как шаговика, так и связанной с ним механики.
Моя страница для тех, кто ищет ЧПУ выжигатели: https://vk.com/club153912868

Самое ценное в этом мире - информация.
Мы рады предложить вам ее в подарок!
Аватара пользователя
roger
Станкостроитель
Станкостроитель
Сообщения: 96
Зарегистрирован: 27 май 2010, 00:00
Откуда: Таганрог
Контактная информация:

Сообщение roger »

Trudogolik писал(а): По поводу рачетов, если ими заинтересовался, посмотри главу 6 книги
Т.Кенио "Шаговые двигатели и их микропроцессорные системы управления" Эта глава как раз посвящена расчетам разгонных и скоростных параметров как шаговика, так и связанной с ним механики.
вот эта глава отдельно
Trudogolik
КУМ
КУМ
Сообщения: 6126
Зарегистрирован: 26 авг 2009, 00:00
Имя: Николай Иосифович
Откуда: Инта респ. Коми, 2000 км от Москвы на север!
Контактная информация:

Сообщение Trudogolik »

Это оно и есть.
А если делать это на готовой конструкции, то все параметры узнаешь еще быстрее, нагляднее и точнее. Подключи к реальному шаговику через реальный драйвер комп с МАСН3 и задавая различные скорости и ускорения, смотри как ведет себя движок в реальной конструкции. Учтется сразу и вес, и трения и все остальное, что влияет на работу ШД. Замерь предельные скорости и ускорения а дальше - программируй в свой контроллер. Только учти, засохнет смазка, износятся узлы и придется вносить коррективы в программу.
Моя страница для тех, кто ищет ЧПУ выжигатели: https://vk.com/club153912868

Самое ценное в этом мире - информация.
Мы рады предложить вам ее в подарок!
Аватара пользователя
roger
Станкостроитель
Станкостроитель
Сообщения: 96
Зарегистрирован: 27 май 2010, 00:00
Откуда: Таганрог
Контактная информация:

Сообщение roger »

Ну делаем не ракету, так что лишинй раз разобрать и смазать можно и поправить можно...
А вот MACH подрубить проблема, у меня бук без LPT а городить usb-lpt нету желания.
Аватара пользователя
vjg
Станкостроитель
Станкостроитель
Сообщения: 266
Зарегистрирован: 10 янв 2010, 01:00
Откуда: Украина, Хмельницкий

Сообщение vjg »

roger, а стоит ли играться с разгоном? и так: намоточный станок два ШД один крутит катушку другой гоняет укладчик, разгонять надо оба двигателя, кроме сил трения есть масса катушки (на которую мотаешь) которая увеличивается в процессе намотки (притом что катушки будут разные), плюс натяжение провода которое зависит от диаметра, я думаю надо сначала найти максимальную рабочую скорость чтоб без пропусков шагов на проводе максимального диаметра (предполагаемом) стабильно мотал, возможно заложить в программу максимальные скорости для каждого диаметра провода, ну а по поводу МАСНа отвечу просто 555 (но не портвейн)
Аватара пользователя
roger
Станкостроитель
Станкостроитель
Сообщения: 96
Зарегистрирован: 27 май 2010, 00:00
Откуда: Таганрог
Контактная информация:

Сообщение roger »

Дело в том даже при старте в 900 шаг.сек, все ок, а вот чтобы повысить дальше нужно отпимально подобрать, шаг по увеличению частоты...
При 1800шаг.сек нету пропусков шагов, но могут возникнуть проблемы с переходом на более низку или высокучаю частоту.Пока у меня заложен шаг ~400-500 шаг.сек. Это много, даже шаг 200 шаг.сек, это много, на больших оборотах

Нахрен мне 555, если у меня мк, и я могу спокойно генерить частоту...
В MACH можно поиграть с параметрами с разгоном.....

В программу будет заложенна возможность изменения скорости. ступенчато, так чтобы оптимально эти ступеньки проходить, нужно оптимально изменять частоту как + так и -, для этого и нужен разгон.
Аватара пользователя
vjg
Станкостроитель
Станкостроитель
Сообщения: 266
Зарегистрирован: 10 янв 2010, 01:00
Откуда: Украина, Хмельницкий

Сообщение vjg »

не ну ускорятся надо медленно, от 0 до 3об/сек катушки надо потратить 5-7секунд (из наблюдений за намоточными станками), на счет 555 имел ввиду что можно покрутить ручку генератора ( с разной скоростью) и посмотреть на реакцию всей системы как при разгоне так и торможении, да а редуктор 1:55 так и остается в системе?
Аватара пользователя
roger
Станкостроитель
Станкостроитель
Сообщения: 96
Зарегистрирован: 27 май 2010, 00:00
Откуда: Таганрог
Контактная информация:

Сообщение roger »

vjg писал(а):а редуктор 1:55 так и остается в системе?
По да....
После выходных, попробую накидать реализовать, по выше рекомендованной статье разгон.
Аватара пользователя
roger
Станкостроитель
Станкостроитель
Сообщения: 96
Зарегистрирован: 27 май 2010, 00:00
Откуда: Таганрог
Контактная информация:

Сообщение roger »

Пытаюсь раскурить теорию в статье Моментные характеристики и период следования импульсов управления - измерение и использование при конструировании систем управления В разделе 6.4.2. Теория изменения периода импульсов управления при линейном ускорении двигателя, есть значение ускорения b;, шаг • с^-2 равное
b=105шаг•с^-2.
или
b=10^5шаг•с^-2
Так какое значение верное, мне так и не понять... Накидал в Excel формулы пробывал посчитать, не сходиться с приведенным примером
только не ясно всетаки как считается g для каждого шага, или она статическая величина
Скачать файл "razgon_dwigatelya.xls" с файлообменника cncfiles.su (30 кб)
Аватара пользователя
vjg
Станкостроитель
Станкостроитель
Сообщения: 266
Зарегистрирован: 10 янв 2010, 01:00
Откуда: Украина, Хмельницкий

Сообщение vjg »

roger, а какой максимальной скорости хотите достичь?
при 2000 об./мин. + редуктор 1/55 получается 36об./мин. может проще коллекторный с датчиком оборотов? при наличии датчика можно и обороты стабилизировать... и думаю тише будет, а привод укладчика запитать без ШИМ от 5вольт, или от 12 с гасящими резисторами, еще тише...
я вот думаю какой момент будет на валу редуктора при штатной роботе ШД (без разгона) или вы собираетесь мотать БОЛЬШИЕ трансформаторы?
Аватара пользователя
roger
Станкостроитель
Станкостроитель
Сообщения: 96
Зарегистрирован: 27 май 2010, 00:00
Откуда: Таганрог
Контактная информация:

Сообщение roger »

Не то что большие,а просто проводом более менее толстым до 2мм, но такие обмотки буду мотать только на низких скростоях...
А тонкий до 0.1 до 0.5. уже побыстрее чем 5 оборотов в минуту
Разгон нужен чтобы достичь. скоростей более менее примлемых, хотя бы тебе 8тыс шаг. сек.
Аватара пользователя
vjg
Станкостроитель
Станкостроитель
Сообщения: 266
Зарегистрирован: 10 янв 2010, 01:00
Откуда: Украина, Хмельницкий

Сообщение vjg »

но при 8000 шагов (полушаг) + 1/55 редуктор... примерно 1 оборот за 3сек! сетевая обмотка транса 2000 витков (число витков от ФОНАРЯ) 2000*3=6000сек или 1.4часа при максимальной скорости... то есть два часа на транс
Аватара пользователя
K_A_V
Станкостроитель
Станкостроитель
Сообщения: 35
Зарегистрирован: 24 авг 2010, 00:00
Откуда: Moscow

Сообщение K_A_V »

У нас есть тайваньский намоточный станок, все работает без редукторов.
А вот останавливается тормозным диском.
Аватара пользователя
roger
Станкостроитель
Станкостроитель
Сообщения: 96
Зарегистрирован: 27 май 2010, 00:00
Откуда: Таганрог
Контактная информация:

Сообщение roger »

Вопросы оптимальной скорости будут решены в дальнейшем, уже на этапе пробных намоток. Сейчас решается вопрос с разгоном ШД.
Аватара пользователя
roger
Станкостроитель
Станкостроитель
Сообщения: 96
Зарегистрирован: 27 май 2010, 00:00
Откуда: Таганрог
Контактная информация:

Сообщение roger »

Нашлось время написал разгон двигателя, удалось разогнать до 9тыс. шаг/с... в нагрузке червячный редуктор + люфты + жесткая связка(через муфту вытачинную) вала двигателя и вала редуктора, также жестко связан редуктор и вал на которой катушка будет...

Не в тему...
При каких условия стоит переходить на специальные муфты.
dkfj
Станкостроитель
Станкостроитель
Сообщения: 30
Зарегистрирован: 10 янв 2012, 13:01

Re: Алгоритм разгона двигателя

Сообщение dkfj »

BMB писал(а):Откуда T = T0/(1+T0At)
Возможно преобразовать данную формулу чтобы была зависимость не от t а от счетчика шагов, значение которого уменьшается на каждом шаге?
Ответить