Отговори на тема  [ 34 мнения ]  Отиди на страница 1, 2, 3  Следваща
Управление на стъпков мотор 
Автор Съобщение
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Вто Окт 03, 2006 11:58 am
Мнения: 924
Местоположение: Ботевград
Мнение Управление на стъпков мотор
Използвам за драйвер TCN4469 на Microchip. Двигателя ми е MITSUMI M42SP-6TA с 4 извода и 10 Ом намотки за 12V. Управлявам го с PIC16F887, като ползвам битове 0 и 1 на PORTD


OUTPUT_D(0x00);
delay_ms(10);
OUTPUT_D(0x02);
delay_ms(10);
OUTPUT_D(0x03);
delay_ms(10);
OUTPUT_D(0x01);
delay_ms(10);

Имам следния въпрос.
Явно, че за да се придвижи с 1 стъпка има някакво минимално закъснение. Така, както го управлявам, винаги има подаден ток на една от намотките и драйвера ми бързо загрява (явно тока му идва в повече). Коректно ли ще бъде, ако направи стъпката, като му осигуря минималното закъснение за придвижване и после да спра тока и на двете намотки и да си направя за закъснението, определящо ми скоростта на въртене.(Разбира се, ще трябва да използвам друга схема на свързане от тази, дадена в datasheet-a или друг драйвер, защото при това свързване винаги се подава ток на една от напотките). Ясно ми е, че като е подаден ток на намотката, това държи ротора на двигателя в стабилно положение, но дали е толкова важно това напр. за CNC машинка


Прикачени файлове:
TCN4469.JPG
TCN4469.JPG [ 19.53 KiB | Прегледано 3056 пъти ]
Пет Дек 26, 2008 4:14 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11266
Местоположение: Добрич
Мнение Re: Управление на стъпков мотор
Първо, добре е да правиш разлика между ток и напрежение. На една намотка се подава напрежение в права или обратна посока, при което токът през нея започва да расте в посоката в която си я свързал. Колкото по-голям ток толкова по-силно магнитно поле се създава, но ти не бива да позволяваш тока да нарастне прекалено много.
Трябва да вземеш мерки по ограничаването на тока. Най-добрия начин е просто да използваш драйвер, който сам си ограничава тока като TB6598 примерно. Така резултатът е гарантиран. Другият начин е сам да го следиш, което не е толкова лесно и не си струва.
И последният начин е да го регулираш без обратна връзка. Просто след определено време от включването на намотка започваш да "накъсваш". За предпочитане е с enable, който прекъсва захранването. Но имай предвид, че това не спира тока! Намотката е индуктивност и токът през нея не може да спре мигновено. Затова е добре да имаш яки клампиращи диоди, иначе напрежението скача до безкрайност. Така през диодите токът ще продължи да тече в същата посока, но намалявайки по големина. Накъсването трябва да е с височка честота, защото не искаш токът да намалява, а просто включвайки-изключвайки го да почне да се колебае около стойността която гониш.
Възможно е и с тая схема да "накъсваш". Но тъй като нямаш enable ще трябва да смениш за кратко фазата на намотката. Недостатъка е, че така токът по-рязко тръгва да се намаля и освен това е по-нестабилно в смисъл, че трудно ще постигнеш ограничаване на някаква конкретна стойност. Но като защита става.

Другото което трябва да имаш предид, е че при две намотки накъсването е индивидуално за всяка и изместено на 90 градуса. По друг начин казано ти подаваш 4 стъпки в цикъл съответно:
00 02 03 01 00 02 03 01 00 02 03 01 00 02 03 01
Забележи, че всеки бит се сменя през две стъпки, т.е. токът през дадена намотка расте в продължение на две стъпки. Съответно в края на втората стъпка той е максимален. Ако двигателят вече е развъртян и се движи с определена скорост - всичко е наред. Но ако си в режим на ускорение/спиране и стъпката е твърде дългичка трябва да почнеш да накъсваш, за да ограничиш тока.
Ако го правиш софуерно ще трябва да разполагаш с достатъчна прецизност. Примерно вместо 10ms ще трябва да ползваш 1mS или още по-кратко време. Би се получило нещо от сорта:
00 00 00 00 00 00 00 00 00 00 02 02 02 02 02 02 02 02 02 02 03 03 03 03 03 03 03 03 03 03 01 01 01 01 01 01 01 01 01 01
00 00 00 00 00 00 02 00 02 00 02 02 02 02 02 02 03 02 03 02 03 03 03 03 03 03 01 03 01 03 01 01 01 01 01 01 00 01 00 01

където първият ред е нормална поредица, а вторият е с "накъсване".
Обикновено се правят таблички за ускоренията, които определят как трябва да се скъсява/удължава стъпката при тръгване/спиране и след какво време на всяка стъпка да започва накъсването. Не знам дали въпросния PIC има нужните ресурси, за таблици и времева разделителна способност, но в краен случай сменяш или драйвера или процесора ;-)


Пет Дек 26, 2008 10:58 pm
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Вто Окт 03, 2006 11:58 am
Мнения: 924
Местоположение: Ботевград
Мнение 
Леле! За първи път се занимавам със стъпков двигател. До сега подминавах тая тема, понеже нямах време. Не очаквах нещата да са толкова сложни. Мислех, че ми е слаб драйвера и възнамерявах да сложа мосфети, които да управлявам с него, за да намаля топленето. Благодаря много за инфото. Явно, ще трябва да прочета доста. Ако не те затруднява, дай някой източник за по-подробна информация, че досега намерих само елементарните неща по управлението. Само ако може да е на руски или английски.
Иначе правя разлика между ток и напрежение. При тези 10 ома и 12В тока си идва 1.2А, но при тия индуктивности сигурно скача двойно на моменти. Ще потърся още инфо. Ще се огледам и за други драйвери.


Пет Дек 26, 2008 11:57 pm
Профил
Ранг: Почетен член
Ранг: Почетен член

Регистриран на: Сря Апр 05, 2006 9:52 pm
Мнения: 877
Местоположение: Разград
Мнение 
Да оставяш мотора да си почива без захранване сигурно няма да стане.
Това, че на мотора ти пише 12 V, не е определящо при избора на захранващо
напрежение. Това важи и при cnc задвижването, където се гонят големи скорости.
В твоя случай се приготви поне за 48 V, a вече тока ще подлежи на ограничаване.
Просто си избрал най-сложния вариант, биполярен мотор, чието управление е
и по-сложно. В последователността на управление на фазите също има различни варианти,
ти си избрал тази, кочто има занижени параметри откъм въртящ момент.
Нормалното превключване на намотките при биполярните мотори е такова, при
което всеки момент са включени и двете намотки. Прочети шийта на L297,
която е класика за биполярното управление и някои неща ще ти са по-ясни.


Съб Дек 27, 2008 12:53 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11266
Местоположение: Добрич
Мнение 
Zeus написа:
Иначе правя разлика между ток и напрежение. При тези 10 ома и 12В тока си идва 1.2А, но при тия индуктивности сигурно скача двойно на моменти.


Индуктивността не увеличава тока, напротив - ограничава го... di/dt=v/L т.е. нарастването на тока през намотка зависи от напрежението и индуктивността й. С други думи когато подадеш напрежение, индуктивността пречи на тока да нарастне мигновено. Но ти ако задържиш напрежението достатъчно дълго време тока си нараства до омичното (DC) съпротивление.
Та точно това ти не бива да допускаш, т.е. да се насища и от индуктивност да правиш печка. Не мога да намеря дейташийта на тоя двигател, но примерно M42SP-6NK e 5 ома на намотка, което ще рече че ако го оставиш под напрежение ще стигне 2.4А, но по спесификация не бива да му пускаш повече от 400mA.

За документация виж нета. Не се сещам за нищо конкретно сега... Но то няма толкова теория в случая. Особено ако ползваш драйвер който сам си ограничава тока тогава абсолщтно нищо не ти трябва. Само трябва да цъкъш фазите. Ех разбира се трябва да се съобразиш че механиката има инерция и то голяма инерция.... Не може от стационарно положение изведнъж да почнеш да въртиш фазите през 10mS. Трябват ти поне 10-на стъпки за да вдигнеш оборотите. Примерно първата стъпка може да е на 200mS, после 100, 50, 30, 20, 15 и 10. Самите числа аз си ги настройствам на слух или с осцилоскоп. Няма голяма философия. Добре е да прецениш обаче, че енергията зависи от скоростта на квадрат, но ти не можеш да подаваш една и съща енергия затова в началото може да имаш по-голямо ускорение, но с вдигането на скоростта трябва да забавяш ускорението.
По друг начин казано, в началото може да осигуриш номиналния ток (400mA или колкото е там) даже проблемът ти е да не го превишаваш (много). Но в един момент стъпката става толкова къса, че токът няма време да достигне тая стойност. И колкото повече вдигаш оборотите (честотата) толкова по-малко ток ще тече. Демек степъра ще гълта все по-малко енергия, съответно все по-малко ускорение ще имаш на разположение. И така докато стигнеш момента в който енергията едва ще покрива загубите от триенето (максималните обороти). Ако подминеш ще почне да изпуска стъпки (чува се).

Нищо сложно няма... ще е сложничко ако искаш да правиш микростъпки или пък пестене на енергия. То и това не е сложно като алгоритми, само че като софтуер сметките стават повечко.


Съб Дек 27, 2008 1:24 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Фев 26, 2006 6:52 pm
Мнения: 11266
Местоположение: Добрич
Мнение 
kasparov написа:
ти си избрал тази, кочто има занижени параметри откъм въртящ момент.


не е избрал тази ;-)

Винаги и двете намотки са му включени -> вектора е сума от двете и е съответно 45, 135, 225 и 315 градуса.
Икономичният режим е само с една натка включена и тогава стъпките са на 0, 90, 180 и 270 градуса.


Съб Дек 27, 2008 1:30 am
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Вто Окт 03, 2006 11:58 am
Мнения: 924
Местоположение: Ботевград
Мнение 
Добре, ще прочета инфо по въпроса и ще пробвам. Като се запъна някъде, ще пиша в тази тема. Балгодаря!


Съб Дек 27, 2008 3:29 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Нед Сеп 26, 2004 9:21 pm
Мнения: 30686
Местоположение: София
Мнение 
Дори и в тази схема може да избира дали двете намотки да са му постоянно включени или не. Но вие го вхръляте право на акулите а тия препоръки, нека го подкара, да го накара да се върти, пък тогава да се занимава с тънкости.
Значи това което с напраивл е ОК за начало, ако мотора пише че е 12 V почти сигурно е че е предвиден да работи на 12 В, т.е. да има постоянно включена намотка на 12 V. Драйвера ти е нормално да грее, много е малък, мосфети си трябват, или специализиран чип. Добре е все пак да видиш за какъв ток е предвиден мотора. Аз не знам да има мотори правени специално за ШИМ управление, т.е. всички от тях, поне от тези които съм виждал, могат спокойно дасе включат на оминалното си захранване и да стоят така неограничено време без да се повредят.
Най-добре е първо да прочетеш по въпроса, в твоя случай мотора е с биполярни намотки, т.е. намотката провежда токвъв двете посоки, има такива които са със средна точка и се комутира едната или другата половина. Следтова виж реазличните режими за управление, стъпка, половин стъпка и т.н. има доста инфо в интернет.
Относно ограничаването на тока. Най-елементарният начин емотора да раоти на номинално захранване, но така получаваш най-малкият момент, съответно най-ниското ускорение. Следващият по добър вариант, но не много по добър е напрежението да ти е по-високо и да ограничаваш със резистор, тка леко се подобрява скоростта на нарастване на тока, но е минимално. От чисто аналоговите варианти, най-добрият е с генератор на ток, но това не е много ефективно, доста енергия отива в елемента на самия генератор. Най-добрият вариант е с ШИМ, ккто по горе мисля беше писано, има както чипове реализиращи този ШИМ и следящи тока, така и вариант да го реализираш и следиш сам. Това пък вече ти дава по голяма гъвкавост, особенно в режим микростъпка.
Като цяло по добре разбери първо как работи, как се управлява, подкарай го по простия начин, а после можже вече да доотимизираш и токоограничението, и самия ти алгоритм който ще го управлява, това е аз което си мисля.


Нед Дек 28, 2008 1:53 pm
Профил
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Вто Окт 03, 2006 11:58 am
Мнения: 924
Местоположение: Ботевград
Мнение 
Благодаря за подкрепата ToHu. Търсих из нета, а се оказа, че в сайта на Майкрочип има прекрасно четиво. Тъй като съм работил само с техните процесори, за мен ще е много подходящо. За сега не съм мислил за конкретно приложение на моторите. Просто искам да разуча как се управляват и за това ще се опитам да реализирам управлението без специализирани чипове. Ще си набавя мосфети и ще пробвам.


Прикачени файлове:
AN822.pdf [468.93 KiB]
196 пъти
Нед Дек 28, 2008 2:17 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Вто Яну 10, 2006 2:40 pm
Мнения: 2258
Мнение 
потърси L298 има си H мост, ограничител по ток и прочее и струва към 5 лв
ако не се лъжа можеше да се ползва до 40V 3A версията с големия корпус че има и SMD изпълнение което бе за по-малък ток


Нед Дек 28, 2008 7:20 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Сря Апр 20, 2005 12:02 pm
Мнения: 9119
Местоположение: Разград
Мнение 
Тия драйвери на м-чип не бяха ли предвидени за драйвери на мосфети. Поне от това дето съм разбрал от пдф-ите им. Това с мотора е само някакъв пример че принципно може да стане. Иначе драйвера може да даде тоя ток ама само импулсно - колкото да драйви мосфета. За постоянен ток от 1-2 ампера не виждам как може да се случи. Може ако е някакво малко моторче, ама за голям... Най елементарното дето може да си направиш е да вземеш един 3-4-5-фазен мотор и с биполярни транзистора да ги редиш фазите, билото на фулстеп или на халфстеп. От там нататък става вече сложно. Разни високи напрежения, с разни ограничавания на тока - например най-елементарното е с резистори. А вече специализираните драйвери са друга бира.


Вто Дек 30, 2008 11:29 am
Профил ICQ
Ранг: Почетен член
Ранг: Почетен член
Аватар

Регистриран на: Вто Окт 03, 2006 11:58 am
Мнения: 924
Местоположение: Ботевград
Мнение 
Май ще послушам 3aek. Погледнах описанието на L298. Ако използвам и L297, нещата доста ще се опростят. Няма смисъл да откривам топлата вода. Само ме притеснява дали се намират. Във Враца нямам голям избор. Погледнах в сайта на Пасат, но нямат наличности. Някакви идеи от къде да се снабдя с тях?


Вто Дек 30, 2008 12:27 pm
Профил
Ранг: Ориентиран
Ранг: Ориентиран
Аватар

Регистриран на: Чет Май 12, 2005 11:10 am
Мнения: 211
Мнение 
http://kuzmovelectronics.com/site/magaz ... A%F0%F1%E8
Има и тук:
http://www.eshop.bg/


Последна промяна VANK на Вто Дек 30, 2008 4:51 pm, променена общо 1 път



Вто Дек 30, 2008 4:49 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Чет Фев 01, 2007 4:04 am
Мнения: 1539
Мнение 
Щом е за експерименти, по-добре си направи драйвер от транзистори. Сега в комет-а има едни евтини RSQxxx комплиментарни транзисторчета с 0.06ом канал. На интегралните схеми проблема им е голямото изходно съпротивление - затова греят. От пиковете търси такива с EPWM - с 4 извода , например 16ф684 е такъв, правени са специално за изграждане на H-мостове и полумостове.
И щом ще се занимаваш с мотори ти препоръчвам малко теоретична подготовка - специално си поиграй на някой симулатор с RL-вериги, а може и да попрелистиш някоя физика в раздел механика на твърдо тяло за инерционен момент и разните му там енергии, скорости и ускорения.


Вто Дек 30, 2008 4:50 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Юли 22, 2006 9:50 pm
Мнения: 1638
Мнение 
Цитат:
От пиковете търси такива с EPWM - с 4 извода , например 16ф684 е такъв, правени са специално за изграждане на H-мостове и полумостове

Тази идея от къде ти дойде ? Има специализирани драйвери с един вход за управление на half-bridge ;) За стъпков двигател такова нещо не му трябва. Купи си L298 и почни от там.


Вто Дек 30, 2008 5:12 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 34 мнения ]  Отиди на страница 1, 2, 3  Следваща

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 3 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни