Простий у виготовленні контролер крокового двигуна із старих деталей. Управління кроковим двигуном Управління кроковим двигуном за допомогою драйвера

Розглянемо драйвер електродвигунів на транзисторах та мікросхемі L298, розберемося з принципом роботи H-мосту. Дізнаємося особливості підключення драйверів на L298 до різних двигунів і джерел живлення, проведемо прості експерименти з кроковими двигунами та двигунами постійної напруги. Підключення до Raspberry Pi та найпростіші програми для тесту керування драйвером.

Що таке H-міст

При проектуванні верстатів, роботів та інших автоматизованих пристроїв виникає необхідність керувати електродвигуном постійного струму або котушками крокового двигуна. Для того, щоб мати можливість керувати обмоткою двигуна та змусити його вал обертатися в різні боки, необхідно виконувати комутацію з переполюсуванням. Для такої мети використовується так званий "H-міст".

Чому така назва? - тому що схема включення двигуна та перемикачів для комутації нагадує латинську літеру H. Принципи роботи H-мосту показані на малюнку нижче.

Мал. 1. Як працює H-міст, принцип комутації двигуна для обертання в різні боки.

Як бачимо, за допомогою 4х перемикачів ми можемо підключати двигун до джерела живлення в різній полярності, що в свою чергу змусить обертатися його вал в різні боки. Перемикачі можна замінити на реле, або потужні електронні ключі на транзисторах.

Важливо помітити, що НЕ МОЖНА допускати замикання двох ключів на одній стороні H-моста, оскільки вийде коротке замикання, при проектуванні схеми моста потрібно закласти це правило в логіку і таким чином реалізувати захист.

Схема простого H-мосту на кремнієвих транзисторах

Зібрати простий драйвер двигуна постійного струму (або обмотки крокового двигуна) можна на поширених кремнієвих транзисторах.

Мал. 2. Принципова схема драйвера електродвигуна на кремнієвих транзисторах.

Такий драйвер дозволяє керувати електродвигуном постійного струму з напругою живлення до 25В (для КТ817А, КТ816А) і до 45В (для КТ817Б-Г, КТ816Б-Г) зі струмом не більше 3А. При великому робочому та навантажувальному струмі двигуна вихідні транзистори КТ817 та КТ816 мають бути встановлені на радіатори достатнього розміру.

Встановлення діодів VD1-VD2 є обов'язковим, вони потрібні для захисту вихідних транзисторів від зворотного струму. На їхнє місце можна поставити вітчизняні КД105А або інші на більший струм.

Зібравши дві такі схеми (2х6 транзисторів) можна також керувати кроковим двигуном або двома двигунами постійного струму.

Для того щоб не городити город із 12 транзисторів можна застосувати спеціалізовані мікросхеми, нижче ми розглянемо приклад із мікросхемою L298 та готовим блоком на її основі.

Мікросхема L298, характеристики та можливості

Інтегральна мікросхема L298 - це потужний універсальний мостовий драйвер для керування двигунами постійного струму, кроковими двигунами, електромагнітними реле та електромагнітами (соленоїдами). У мікросхемі міститься два H-мости, виконані на потужних транзисторах, а також логіка сумісна з TTL.

Мал. 3. Мікросхема L298 у корпусах Multiwatt15 PowerSO20.

Основні технічні характеристики:

  • Робоча напруга – до 46В;
  • Максимальний постійний струм – 4А (з радіатором);
  • Низька напруга насичення;
  • Захист від перегріву;
  • Логічний "0" = напруга до 1,5В.

Де можна використовувати драйвер на мікросхемі L298? - Кілька ідей:

  • Управління кроковим двигуном;
  • управління двома двигунами постійного струму (DC motors);
  • Комутація котушок потужних реле;
  • Управління соленоїдами (електромагнітами).

Якщо подивитися на структурну схему мікросхему L298 ми можемо побачити щось на кшталт схеми малюнку 2, лише з додатковими логічними елементами.

Мал. 4. Внутрішня схема мікросхеми L298N – потужний подвійний H-міст.

Для кожного H-моста ми маємо по 3 входи: In1 – для подачі напруги в одному напрямку, In2 – у протилежному, і ще один вхід En для подачі живлення на вихідні транзистори моста.

Таким чином ми можемо встановити напрямок проходження струму та керувати його подачею (включено або вимкнено, а також ШІМ).

Схема драйвера на мікросхемі L298

Нижче представлена ​​проста схема для драйвера двигунів на мікросхемі L298N. Управління здійснюється за чотирма проводами (замість шести у L298) завдяки використанню додаткових інверторів у мікросхемі CD4011.

Мал. 5. Принципова схема драйвера електродвигунів на мікросхемі L298N.

Для живлення логіки обох мікросхем потрібна стабілізована напруга +5В (P2), можна використовувати інтегральний стабілізатор, наприклад L7805 або живити логіку від лінії живлення +5В. Для подачі напруги живлення на двигуни використовується окрема лінія живлення P1.

Висновки P4, P5 використовуються для встановлення полярності кожного каналу, а висновки P6, P7 - дозволяють подачу живлення на каскади (ключі) внутрішнього H-моста для кожного каналу.

Мікросхему CD4011 можна замінити на вітчизняну К176ЛА7. Діоди Шоттки можна поставити іншого номіналу, на 35В/4А та більше. Якщо не планується обмежувати струм обмоток двигуна, то низькоомні обмежуючі резистори R9-R10 можна виключити зі схеми, замінивши їх на перемички.

В інтернеті можна замовити готовий модуль на L298, щоправда, в ньому буде 6 входів для управління.

Мал. 6. Готові модулі L298.

Я для своїх потреб придбав готовий модуль як на малюнку зліва. У ньому є мікросхема L298 і невеликий стабілізатор для подачі +5В на логіку мікросхеми.

Для підключення даної хустки важливо чітко усвідомити одну особливість:

  • Якщо для живлення двигунів використовується напруга більш ніж 12В, то перемичку потрібно прибрати і подавати окремо 5В на виділений для цього конектор.
  • Якщо живлення двигунів буде здійснюватися від напруги 5-12В, то перемичку потрібно втиснути і додаткове живлення 5В не знадобиться.

Якщо ж подати на двигуни, наприклад, 20В і залишити перемичку встановленою, то на модулі вигорить мікросхемка-стабілізатор на 5В. Чому розробники не встановили інтегральний стабілізатор із ширшим діапазоном вхідної напруги - не зрозуміло.

Для того щоб заощадити два входи при підключенні такого блоку Arduino або Raspberry Pi можна додати частину схеми на CD4001, як на малюнку 5.

L298 + DC двигуни + Raspberry Pi

Для цього експерименту до модуля на L298 були підключені два двигуни постійного струму. Живлення всього модуля здійснюється від одного акумулятора на 6В. Оскільки ця напруга менше 12В (дивимося вище опис), то перемичку внутрішнього стабілізатора залишаємо встановленою і додаткове харчування +5В для логіки не потрібно.

Перемички "ENA" та "ENB", які дозволяють подачу живлення на вихідні мости, залишені встановленими. Таким чином, для управління кожним з двигунів використовуємо чотири входи, що залишилися: IN1, IN2, IN3, IN4.

Після підключення живлення на модулі загориться світлодіод, тепер можемо подати на кожен із входів по черзі +5В і подивитися як обертатимуться наші двигуни.

Де взяти +5В? - у цьому випадку ця напруга присутня на роз'ємі живлення, праворуч біля GND. Для тесту можна скористатися шматочком дроту – перемичкою.

Тепер підключимо наш модуль до Raspberry Pi та напишемо просту тестову програму на Python. Для підключення модуля я використовував висновки GPIO ось так:

Мал. 7. L298 + Raspberry Pi + електродвигуни постійного струму.

Міні-комп'ютер у мене живиться через імпульсний стабілізатор, що знижує, від другого акумулятора на 6В. Перейдемо до написання програми для нашого експерименту, наша мета - керувати обертанням валу кожного з двигунів за допомогою клавіатури, яка підключена до Raspberry Pi або віддалено по SSH, VNC.

Тепер випробуваємо просту програму, написану на Python, яка допоможе зрозуміти принцип керування електродвигуном постійного струму.

Завантажуємо малинку, відкриваємо Термінал або підключаємося до неї віддалено за допомогою SSH. Створюємо новий файл та відкриваємо його для редагування за допомогою команди:

Nano /home/pi/l298_dc_motors_test.py

Вставляємо в редактор код скрипту на Python, який наведено нижче:

#!/usr/bin/env python # -*- coding: utf-8 -*- import time import RPi.GPIO as GPIO # Підготовляємо піни GPIO. GPIO.cleanup() GPIO.setmode(GPIO.BCM) GPIO.setup(4, GPIO.OUT) GPIO.output(4, GPIO.LOW) GPIO.setup(17, GPIO.OUT) GPIO.output(17, GPIO .LOW) # Включаємо обертання двигуна 1 в одну сторону. GPIO.output(4, GPIO.HIGH) # чекаємо 5 секунд. time.sleep(5) # Вимикаємо двигун 1. GPIO.output(4, GPIO.LOW) # чекаємо 10 секунд. time.sleep(10) # Включаємо обертання двигуна 1 в інший бік. GPIO.output(17, GPIO.HIGH) # чекаємо 5 секунд. time.sleep(5) # Вимикаємо двигун 1. GPIO.output(17, GPIO.LOW)

Виходимо з редактора та зберігаємо файл. Робимо скрипт виконуваним і запускаємо його:

Chmod +x /home/pi/l298_dc_motors_test.py /home/pi/l298_dc_motors_test.py

Після запуску скрипта один із двигунів почне обертатися в одну сторону протягом п'яти секунд, потім він вимкнеться і через 10 секунд почне обертатися в іншу сторону протягом 5 секунд.

Нижче наведено складніший і функціональніший приклад програми, яка буде взаємодіяти з користувачем та дозволить інтерактивно керувати двома електродвигунами. Аналогічно першому скрипту, програму можна зберегти в той же файл або новий окремо створений.

Важливо, щоб у цьому прикладі коду дотримувалися відступи, про це я вже писав раніше.

#!/usr/bin/env python # -*- coding: utf-8 -*- import os import sys import curses import time import RPi.GPIO as GPIO # Встановимо номери пінів GPIO, з якими будемо працювати M1_RIGHT = 4 M1_LEFT = 17 M2_RIGHT = 27 M2_LEFT = 22 # Функція для підготовки пінів GPIO def setup(*ports): GPIO.cleanup() # Режим іменування пінів за назвою, а не за номером на платі GPIO.setmode(GPIO.BCM) for port in ports : # Встановлення піна на виведення + низький рівень "0" GPIO.setup(port, GPIO.OUT) GPIO.output(port, GPIO.LOW) # Функція для встановлення низького рівня на всіх пінах (вимкнення) def stop_all(): GPIO .output(M1_LEFT, GPIO.LOW) GPIO.output(M1_RIGHT, GPIO.LOW) GPIO.output(M2_LEFT, GPIO.LOW) GPIO.output(M2_RIGHT, GPIO.LOW) # Функція для керування обертанням движків def rotate 1, mode="s"): # Вимикаємо всі піни stop_all() # Для двигуна 1 if motor == 1: if mode == "r": # Встановлюємо високий рівень на піні M1_RIGHT (4) GPIO.output(M1_RIGHT, GPIO.HIGH) elif mode == "l": # Встановлення ем високий рівень на піні M1_LEFT (17) GPIO.output(M1_LEFT, GPIO.HIGH) # Для двигуна 2 elif motor == 2: if mode == "r": GPIO.output(M2_RIGHT, GPIO.HIGH) elif mode = = "l": GPIO.output(M2_LEFT, GPIO.HIGH) # Виконаємо ініціалізацію пінів GPIO setup(M1_RIGHT, M1_LEFT, M2_RIGHT, M2_LEFT) # Ініціалізація екрану (модуль curses) stdscr = curses.initscr() підтвердження за допомогою ENTER curses.cbreak() # Дозволити використання стрілочок на клавіатурі stdscr.keypad(1) # Не блокувати програму за часом при опитуванні подій stdscr.nodelay(1) # Відобразимо на екрані дані за умовчанням stdscr.addstr(0, 10 , "Hit "q" to quit") stdscr.addstr(2, 10, "A - M1 Left, D - M1 Right") stdscr.addstr(3, 10, "< - M2 Left, >- M2 Right") stdscr.addstr(4, 10, "S - stop") stdscr.refresh() # Головний цикл while True: # Отримуємо код натискання клавіші та перевіряємо його key = stdscr.getch() if key != - 1: # Якщо клавіша "стрілка вліво" то обертаємо двигун 2 вліво if key == curses.KEY_LEFT: # Виводимо на екран рядок "M2<---" в позиции 6, 10 stdscr.addstr(6, 10, "M2 <---") rotate(2, "l") # Если клавиша "стрелка вправо" то вращаем движок 2 вправо elif key == curses.KEY_RIGHT: stdscr.addstr(6, 10, "M2 --->") rotate(2, "r") # Якщо клавіша "а" то обертаємо двигун 1 ліворуч elif key == ord("a"): stdscr.addstr(6, 10, "M1<---") rotate(1, "l") # Если клавиша "d" то вращаем движок 1 вправо elif key == ord("d"): stdscr.addstr(6, 10, "M1 --->") rotate(1, "r") # Якщо клавіша "s" то зупинка всіх движків elif key == ord("s"): stdscr.addstr(6, 10, "STOP 12") stop_all() # Якщо клавіша "s" виходимо з програми elif key == ord("q"): # Відновлення колишніх налаштувань терміналу stdscr.keypad(0) curses.echo() curses.endwin() # Очищення та вихід os.system("clear" ) sys.exit() # Оновлюємо текст на екрані та робимо невелику затримку stdscr.refresh() time.sleep(0.01)

Запустивши скрипт можна натискати стрілочки клавіатури "вліво" і "вправо", а також клавіші з літерами "A" та "D" - двигуни повинні обертатися по черзі і в різні боки, а програма відображатиме їхній поточний режим роботи.

Мал. 8. Програма Python для керування двигунами за допомогою драйвера L298 (термінал Konsole, KDE).

Коротка відео-демонстрація роботи даного експерименту наведена нижче:

Що таке кроковий двигун, типи кроковиків

Кроковий двигун(Для тих хто не знає) - це електромотор, в якому немає щіток і обмоток на статорі (якорі), вони присутні на роторі і розміщені таким чином що підключаючи кожну з них до джерела живлення ми виконуємо фіксацію ротора (робимо один крок). Якщо по черзі подавати напругу на кожну з обмоток з потрібною полярністю, то можна змусити двигун обертатися (робити послідовні кроки) у потрібному напрямку.

Крокові двигуни надійні, стійкі до зношування та дозволяють контролювати обертання на певний кут, застосовуються в автоматизації процесів, на виробництві, в електронно-обчислювальній апаратурі (CD-DVD приводи, принтери, копіри) тощо.

Такі двигуни бувають наступних видів:

  • Біполярний- 2 обмотки, по одній на кожну фазу, для керування можна використовувати схему на 2 H-моста або один напів-міст з двополярним живленням;
  • Уніполярний- 2 обмотки, кожна з відведенням від середини, зручно перемикати фази зміною половинок кожної з обмоток, спрощує схему драйвера (4 ключі), а також використовувати як биполярний без використання відводів від обмоток;
  • З чотирма обмотками- Універсальний, підключивши обмотки відповідним чином можна використовувати як биполярний або уніполярний двигун.

Мал. 9. Типи крокових двигунів: біполярний, уніполярний, із чотирма обмотками.

Визначити тип двигуна можна, як правило, за кількістю висновків на його корпусі, а також не завадить продзвонити всі висновки тестером для визначення чи є з'єднання між обмотками.

L298 + кроковий двигун + Raspberry Pi

Тепер підключимо кроковий двигун, в моєму випадку застосований біполярний потужний кроковий двигун, витягнутий зі старого матричного принтера.

Для підключення одного біполярного двигуна знадобиться два виходи драйвера на L298 (два H-мости). Для цього експерименту модуль L298 потрібно підключити до Raspberry Pi так само, як і у варіанті з .

Насамперед можете поекспериментувати без малинки - подавати по черзі на входи модуля L298 напругу 5В і подивитися як вал двигуна виконуватиме кроки.

По суті, за допомогою малинки, ми будемо по черзі і з деякою затримкою подавати імпульси на обмотки двигуна, чим змусимо його вал обертатися в потрібний нам бік і з потрібною швидкістю.

Мал. 10. Підключення біполярного крокового двигуна до модуля L298 для керування через Raspberry Pi.

Якщо все вже підключено, переходимо до експериментів з простою тестовою програмою на Python, яка допоможе зрозуміти як працювати з кроковими двигуном використовуючи L298 + Raspberry Pi.

Створимо файл для скрипту та відкриємо його для редагування:

Nano /home/pi/l298_stepper_motor_test.py

Вставляємо в редактор наступний код скрипту на Python :

#!/usr/bin/env python # -*- coding: utf-8 -*- import time import RPi.GPIO as GPIO # Підготовляємо піни GPIO. GPIO.cleanup() GPIO.setmode(GPIO.BCM) GPIO.setup(4, GPIO.OUT) GPIO.output(4, GPIO.LOW) GPIO.setup(17, GPIO.OUT) GPIO.output(17, GPIO .LOW) GPIO.setup(27, GPIO.OUT) GPIO.output(27, GPIO.LOW) GPIO.setup(22, GPIO.OUT) GPIO.output(22, GPIO.LOW) # Тимчасова затримка між кроками, сек . step_timeout = 0.0105 # Тривалість імпульсу, с. impulse_timeout = 0.008 # Крок 1. GPIO.output(4, GPIO.HIGH) time.sleep(impulse_timeout) GPIO.output(4, GPIO.LOW) time.sleep(step_timeout) # Крок 2. GPIO.output(17, GPIO .HIGH) time.sleep(impulse_timeout) GPIO.output(17, GPIO.LOW) time.sleep(step_timeout) # Крок 3. GPIO.output(27, GPIO.HIGH) time.sleep(impulse_timeout) GPIO.output(27 , GPIO.LOW) time.sleep(step_timeout) # Крок 4. GPIO.output(22, GPIO.HIGH) time.sleep(impulse_timeout) GPIO.output(22, GPIO.LOW) time.sleep(step_timeout) # Чекаємо 10 секунд. time.sleep(10) # 20 разів по 4 кроки в циклі. for i in range(0,20): GPIO.output(4, GPIO.HIGH) time.sleep(impulse_timeout) GPIO.output(4, GPIO.LOW) time.sleep(step_timeout) GPIO.output(17, GPIO). HIGH) time.sleep(impulse_timeout) GPIO.output(17, GPIO.LOW) time.sleep(step_timeout) GPIO.output(27, GPIO.HIGH) time.sleep(impulse_timeout) GPIO.output(27, GPIO.LOW) time.sleep(step_timeout) GPIO.output(22, GPIO.HIGH) time.sleep(impulse_timeout) GPIO.output(22, GPIO.LOW) time.sleep(step_timeout)

Робимо файл зі скриптом виконуваним і запускаємо його на виконання:

Chmod +x /home/pi/l298_stepper_motor_test.py /home/pi/l298_stepper_motor_test.py

Після запуску скрипта, кроковий двигун повинен здійснити 4 кроки (обертання в один бік), потім почекавши 10 секунд він знову почне своє обертання і зробить вже 20*4 кроків.

А тепер розглянемо приклад інтерактивної програми, яка дозволяє керувати напрямом та швидкістю обертання (послідовні кроки) крокового двигуна з використанням клавіатури.

#!/usr/bin/env python # -*- coding: utf-8 -*- import os import sys import curses import time import RPi.GPIO as GPIO # Функція для підготовки пінів GPIO def setup(*ports): GPIO. cleanup() # Режим іменування пінів за назвою, а не за номером на платі GPIO.setmode(GPIO.BCM) for port in ports: # Встановлення піна на виведення + низький рівень "0" GPIO.setup(port, GPIO.OUT) GPIO.output(port, GPIO.LOW) # Функція для подачі імпульсу на пін з деякою затримкою (1 крок) def impulse(port=0): GPIO.output(port, GPIO.HIGH) # Set timeout value to be anough for one step time.sleep(0.008) GPIO.output(port, GPIO.LOW) time.sleep(timeout) # Виконуємо встановлення потрібних нам пінів GPIO setup(4, 17, 27, 22) # Затримка між кроками (за замовчуванням) timeout = 0.0105 # Напрямок обертання (за замовчуванням) direction = "r" # Ініціалізація екрану (модуль curses) stdscr = curses.initscr() # Реагувати на натискання клавіш без підтвердження за допомогою ENTER curses.cbreak() # Дозволити використання стрілок клавіатурі stdscr.keypad(1) # Не блокувати програму за часом під час опитування подій stdscr.nodelay(1) # Відобразимо на екрані дані за умовчанням stdscr.addstr(0, 10, "Hit "q" to quit") stdscr.addstr( 2, 10, "--->") stdscr.addstr(3, 10, "Timeout: " + str(timeout)) stdscr.refresh() # Головний цикл while True: # Набір імпульсів для обертання вала двигуна вправо if direction == "r": impulse(4) impulse(17) impulse(27) impulse(22) # Набір імпульсів для обертання валу двигуна вліво elif direction == "l": impulse(22) impulse(27) impulse(17) impulse(4) # Зчитуємо код натискання клавіші та перевіряємо його key = stdscr.getch() if key != -1: # Клавіша "вліво" змінює напрямок обертання: ВЛІВО if key == curses.KEY_LEFT: # відображаємо текст "<---" в позиции экрана 2, 10 stdscr.addstr(2, 10, "<---") # Изменим значение переменной с направлением вращения direction = "l" # Клавиша "вправо" меняет направление вращения: ВПРАВО elif key == curses.KEY_RIGHT: stdscr.addstr(2, 10, "--->") direction = "r" # Клавіша "вгору" прискорює обертання elif key == curses.KEY_UP: # Зменшуємо затримку між кроками timeout = timeout - 0.0005 # Клавіша "вниз" уповільнює обертання elif key == curses.KEY_DOWN: # У між кроками timeout = timeout + 0.0005 # Клавіша "q" виконує вихід із програми elif key == ord("q"): stdscr.keypad(0) curses.echo() curses.endwin() os.system("clear" ) sys.exit() # Дивимося, щоб час затримки не перейшов кордон 0 if timeout<= 0: timeout = 0.0005 # Обновляем текст на экране stdscr.addstr(3, 10, "Timeout: " + str(timeout)) stdscr.refresh() time.sleep(0.01)

Тепер клацаємо клавіші стрілок ліворуч і праворуч і дивимося як змінюватиметься напрям обертання валу двигуна, а при натисканні клавіш вгору і вниз швидкість збільшуватиметься і зменшуватиметься відповідно.

Якщо ж двигун не обертається, то можливо, що потрібно буде змінити полярність підключення однієї з обмоток до модуля на L298.

Мал. 11. Програма керування біполярним кроковим двигуном, L298, Raspberry Pi.

Відео-демонстрація роботи крокового двигуна:

Висновок

Сподіваюся ви отримали відповідь на питання "що таке H-міст і як він працює", з експериментів має бути зрозуміло як використовувати драйвер на мікросхемі L298 і підключати до нього різні двигуни.

Важливо помітити, що в інтернеті можна знайти готові бібліотеки та скрипти на Python для зручного керування двигунами за допомогою H-моста на L298 з використанням Raspberry Pi.

Крокові двигуни застосовуються сьогодні у багатьох промислових галузях. Двигуни цього типу відрізняються тим, що дозволяють досягти високої точності позиціонування робочого органу, в порівнянні з іншими типами двигунів. Очевидно, що для роботи крокового двигуна потрібне точне автоматичне керування. Саме цій для цієї мети і служать контролери крокових двигунів, Що забезпечують безперебійну та точну роботу електроприводів різного призначення

Грубий принцип роботи крокового двигуна можна описати так. Кожен повний оберт ротора крокового двигуна складається з декількох кроків. Переважна більшість крокових двигунів розраховані на крок 1,8 градуса, і на повний обіг припадає 200 кроків. Привід змінює положення на крок під час подачі на певну обмотку статора напруги живлення. Напрямок обертання залежить від напрямку струму в обмотці.

Наступний крок - вимикається перша обмотка, живлення подається на другу і так далі, в результаті після відпрацювання кожної обмотки ротор здійснить повний обіг. Але цей грубий опис, на ділі алгоритми дещо складніші, і про це буде розказано далі.


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

Управління кроковим двигуном може бути реалізовано по одному з чотирьох основних алгоритмів: поперемінне включення фаз, керування з перекриттям фаз, напівкрокове керування або мікрокрокове керування.

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

Управління з перекриттям фаз дозволяє ротору отримати кроки до позицій між полюсними виступами статора, що збільшує крутний момент на 40% порівняно з керуванням без перекриття фаз. Кут кроку зберігається, проте положення фіксації зміщене - воно знаходиться між виступами полюсних статора. Ці перші два алгоритми застосовуються в електротехнічному устаткуванні, де дуже висока точність не потрібна.

Напівкрокове управління - комбінація перших двох алгоритмів: через крок живлення отримують одна фаза (обмотка), то дві. Розмір кроку зменшується вдвічі, точність позиціонування виходить вищою, знижується ймовірність настання механічного резонансу двигуна.

Зрештою, мікрокроковий режим. Тут струм у фазах змінюється за величиною так, щоб положення фіксації ротора на крок припадало б на точку між полюсами, причому, залежно від співвідношення величин струмів одночасно включених фазах, таких кроків можна отримати кілька. Регулюючи співвідношення струмів, налаштовуючи кількість робочих співвідношень, отримують мікрокроки - найточніше позиціонування ротора.

Докладніше дивіться зі схемами тут:

Щоб обраний алгоритм реалізувати практично, застосовують драйвер крокового двигуна. Драйвер містить у собі силову частину та контролер.

Силова частина драйвера - це , завдання якого перетворити імпульси струму, що подаються на фази, в переміщення ротора: один імпульс - один точний крок або мікрокрок.

Напрямок і величина струму - напрямок та величина кроку. Тобто завдання силової частини - подати струм певної величини та напрямки у відповідну обмотку статора, утримати цей струм протягом деякого часу, а також здійснювати швидке включення та вимкнення струмів, щоб швидкісні та потужнісні характеристики приводу відповідали б поставленому завданню.


Чим досконаліша силова частина драйвера, тим більший момент можна отримати на валу. Взагалі, тренд прогресу у вдосконаленні крокових двигунів та їх драйверів – отримати від двигунів малих габаритів значний робочий момент, високу точність, та зберегти при цьому високий ККД.

Контролер крокового двигуна

Контролер крокового двигуна – інтелектуальна частина системи, яка зазвичай виготовлена ​​на базі мікроконтролера з можливістю перепрограмування. Саме контролер відповідає за те, в який момент, на яку обмотку, на який час і якої величини струм буде поданий. Контролер керує роботою силової частини драйвера.

Просунуті контролери підключаються до ПК і можуть регулюватися в режимі реального часу за допомогою ПК. Можливість багаторазового перепрограмування мікроконтролера позбавляє користувача від необхідності щоразу при коригуванні завдання набувати новий контролер - достатньо переналаштувати вже наявний, у цьому гнучкість, контролер можна легко переорієнтувати програмно виконання нових функцій.

На ринку сьогодні представлені широкі модельні ряди контролерів крокових двигунів від різних виробників, які відрізняються можливостями розширення функцій. Програмовані контролери передбачають запис програми, а деякі включають програмовані логічні блоки, за допомогою яких можливе гнучке налаштування алгоритму управління кроковим двигуном під той чи інший технологічний процес.

Можливості контролерів

Управління кроковим двигуном за допомогою контролера дозволяє досягти високої точності до 20000 мікрокроків на оборот. Причому керування може здійснюватися як безпосередньо з комп'ютера, так і за рахунок програми, що прошитий у пристрій, або за програмою з карти пам'яті. Якщо параметри в ході виконання завдання змінюються, то комп'ютер може опитувати датчики, відстежувати параметри, що змінюються, і оперативно змінювати режим роботи крокового двигуна.

Є у продажу блоки керування кроковим двигуном, до яких підключаються: джерело струму, кнопки керування, джерело тактового сигналу, потенціометр для налаштування кроку тощо. . Можливість синхронізації із зовнішніми пристроями та підтримка автоматичного включення, вимкнення та управління - безперечна перевага блоку управління кроковим двигуном.

Блок може керуватися з комп'ютера безпосередньо, якщо, наприклад, потрібно відтворити програму або в ручному режимі без додаткового зовнішнього управління, тобто автономно, коли напрям обертання вала крокового двигуна встановлюється датчиком реверсу, а швидкість регулюється потенціометром. Блок управління підбирається за параметрами крокового двигуна, який передбачається використовувати.

Залежно від характеру поставленої мети вибирають спосіб керування кроковим двигуном. Якщо необхідно налаштувати просте керування малопотужним електроприводом, коли в кожний момент часу один імпульс подається на одну котушку статора: на повний оберт потрібно, скажімо, 48 кроків, і ротор буде переміщатися на 7,5 градусів при кожному кроці. Режим одиночних імпульсів у разі підійде.

Для досягнення вищого моменту, що обертає, застосовують подвійний імпульс - в дві сусідні котушки подається одночасно по імпульсу. І якщо для повного обороту потрібно 48 кроків, то знову ж таки потрібно 48 таких подвійних імпульсів, кожен приведе до кроку в 7,5 градусів але з на 40% більшим моментом ніж в режимі одиночних імпульсів. Скомбінувавши обидва способи можна отримати 96 імпульсів розділивши кроки – вийде 3,75 градуса на крок – це комбінований режим управління (напівкроковий).

Крокові двигуни присутні в автомобілях, принтерах, комп'ютерах, пральних машинах, електробритвах та багатьох інших пристроях із повсякденного побуту. Однак багато радіоаматорів досі не знають, як змусити такий мотор працювати і що він взагалі собою представляє. Отже, дізнаємося, як використовувати кроковий двигун.

Крокові двигуни є частиною класу двигунів, відомих як безщіткові двигуни. Обмотки крокового двигуна є частиною статора. На роторі розташований постійний магніт або, для випадків зі змінним магнітним опором, зубчастий блок із магнітом'якого матеріалу. Усі комутації виробляються зовнішніми схемами. Зазвичай система мотор - контролер розробляється так, щоб була можливість виведення ротора в будь-яку фіксовану позицію, тобто система управляється за становищем. Циклічність позиціонування ротора залежить від його геометрії.

Типи крокових двигунів

Існують три основні типи крокових двигунів: змінної індуктивності, двигуни з постійними магнітами та гібридні двигуни.

Двигуни змінної індуктивностівикористовують тільки магнітне поле, що генерується, на центральному валу, що змушує обертатися і перебувати на одній лінії з напругою електромагнітів.

Двигуни з постійними магнітамисхожі на них, за винятком того, що центральний вал поляризований у північного та південного магнітних полюсів, які відповідним чином повертатимуть його в залежності від того, які електромагніти включені.

Гібридний двигун- Це поєднання двох попередніх. Його намагнічений центральний вал має два набори зубів для двох магнітних полюсів, які потім вишиковуються в лінію із зубами вздовж електромагнітів. У зв'язку з подвійним набором зубів на центральному валу гібридний двигун має найменший доступний розмір кроку і тому є одним з найбільш популярних типів крокових двигунів.

Також існує ще два типи крокових двигунів: уніполярніі біполярні. На фундаментальному рівні, ці два типи працювати точно так само; електромагніти включені у послідовному вигляді, змушуючи центральний вал двигуна обертатися.

Але уніполярний кроковий двигун працює тільки з позитивною напругою, а біполярний кроковий двигун має два полюси – позитивний та негативний.

Тобто фактична різниця між цими двома типами полягає в тому, що для однополярних потрібен додатковий провід у середині кожної котушки, що дозволить току проходити або до одного кінця котушки, або до іншого. Ці два протилежні напрями виробляють дві полярності магнітного поля, фактично імітуючи як позитивні, і негативні напруги.

Хоча обидва вони мають загальний рівень напруги живлення 5V, біполярний кроковий двигун буде мати більший крутний момент, тому що струм тече через всю котушку, виробляючи сильніше магнітне поле. З іншого боку, уніполярні крокові двигуни використовують лише половину довжини котушки з-за додаткового дроту в середині котушки, а отже менший момент, що крутить, доступний для утримання валу на місці.

Різні крокові двигуни можуть мати різну кількість проводів, як правило, 4, 5, 6, або 8. 4-х провідні лінії можуть підтримати тільки біполярні крокові двигуни, оскільки вони не мають центрального проводу.

5- та 6-провідні механізми можуть бути використані як для однополярного, так і біполярного крокового двигуна, залежно від того, використовується центральний провід на кожній з котушок чи ні. 5-ти провідна конфігурація передбачає, що центральні дроти на два комплекти котушок з'єднані всередині між собою.

Є кілька різних способів керування кроковими двигунами - повний крок, півкрок і мікрокроковий. Кожен із цих стилів пропонують різні крутні моменти, кроки та розміри.

Повний крок- Такий привід завжди має два електромагніти. Для обертання валу один з електромагнітів вимикається і далі електромагніт включений, викликаючи обертання валу на 1/4 зуба (принаймні для гібридних крокових двигунів). Цей стиль має найсильніший момент обертання, але й найбільший розмір кроку.

Півкроку. Для обертання центрального валу перший електромагніт знаходиться під напругою, як перший крок, потім другий також під напругою, а перший все ще працює на другий крок. При третьому кроці вимикається перший електромагніт і четвертий крок - поворот на третій електромагніт, а другий електромагніт, як і раніше, працює. Цей метод використовує вдвічі більше кроків, ніж повний крок, але він також має менший момент, що крутить.

Мікрокроковиймає найменший розмір кроку із усіх цих стилів. Момент обертання, пов'язаний із цим стилем, залежить від того, як багато струму, протікає через котушки у певний час, але він завжди буде меншим, ніж при повному кроці.

Схема підключення крокових двигунів

Щоб керувати кроковим двигуном, необхідний контролер. Контролер - схема, яка подає напругу до будь-якої з чотирьох котушок статора. Схеми керування досить складні, порівняно із звичайними електромоторчиками, і мають багато особливостей. Докладно розглядати тут ми їх не будемо, а просто наведемо фрагмент популярного контролера на ULN2003A.

Загалом крокові двигуни є відмінним способом для того, щоб повернути щось у точний розмір кута з великою кількістю моменту, що крутить. Інша перевага в тому, що швидкість обертання може бути досягнута майже миттєво при зміні напрямку обертання на протилежне.

Крокові двигуни вже давно та успішно застосовуються у найрізноманітніших пристроях. Їх можна зустріти у дисководах, принтерах, плоттерах, сканерах, факсах, а також у різноманітному промисловому та спеціальному обладнанні. В даний час випускається безліч різних типів крокових двигунів на всі випадки життя. Однак правильно вибрати тип двигуна - це ще півсправи. Не менш важливо правильно вибрати схему драйвера та алгоритм його роботи, який найчастіше визначається програмою мікроконтролера. Мета цієї статті - систематизувати відомості про пристрій крокових двигунів, способи управління ними, схем драйверів і алгоритми. Як приклад наведено практичну реалізацію простого і дешевого драйвера крокового двигуна на основі мікроконтролера сімейства AVR.

Що таке кроковий двигун, і навіщо він потрібний?

Кроковий двигун - це електромеханічний пристрій, який перетворює електричні імпульси на дискретні механічні переміщення. Так, мабуть, можна дати чітке визначення. Напевно, кожен бачив, як виглядає кроковий двигун зовні: він практично не відрізняється від двигунів інших типів. Найчастіше це круглий корпус, вал, кілька висновків (рис. 1).

Мал. 1. Зовнішній вигляд крокових двигунів сімейства ДШІ-200.

Однак крокові двигуни мають деякі унікальні властивості, що робить часом їх виключно зручними для застосування або навіть незамінними.

Чим же добрий кроковий двигун?

  • кут повороту ротора визначається числом імпульсів, які подано на двигун
  • двигун забезпечує повний момент у режимі зупинки (якщо обмотки запитані)
  • прецизійне позиціонування та повторюваність. Хороші крокові двигуни мають точність 3-5% від величини кроку. Ця помилка не накопичується від кроку до кроку
  • можливість швидкого старту/зупинки/реверсування
  • висока надійність, пов'язана з відсутністю щіток, термін служби крокового двигуна фактично визначається терміном служби підшипників
  • однозначна залежність положення від вхідних імпульсів забезпечує позиціонування без зворотного зв'язку
  • можливість отримання дуже низьких швидкостей обертання для навантаження, приєднаного безпосередньо до валу двигуна без проміжного редуктора
  • може бути перекритий досить великий діапазон швидкостей, швидкість пропорційна частоті вхідних імпульсів

Але не все так добре.

  • кроковим двигуном властиве явище резонансу
  • можлива втрата контролю за становищем через роботу без зворотного зв'язку
  • споживання енергії не зменшується навіть без навантаження
  • утруднена робота на високих швидкостях
  • невисока питома потужність
  • щодо складна схема управління

Що вибрати?

Крокові двигуни належать до класу безколекторних двигунів постійного струму. Як і будь-які безколекторні двигуни, вони мають високу надійність та великий термін служби, що дозволяє використовувати їх у критичних, наприклад, індустріальних застосуваннях. Порівняно зі звичайними двигунами постійного струму, крокові двигуни вимагають значно складніших схем управління, які повинні виконувати всі комутації обмоток під час роботи двигуна. Крім того, сам кроковий двигун - дорогий пристрій, тому там, де точне позиціонування не потрібне, звичайні двигуни колектора мають помітну перевагу. Задля справедливості слід зазначити, що останнім часом для управління колекторними двигунами все частіше застосовують контролери, які за складністю практично не поступаються контролерам крокових двигунів.

Однією з головних переваг крокових двигунів є можливість здійснювати точне позиціонування та регулювання швидкості без датчика зворотного зв'язку. Це дуже важливо, оскільки такі датчики можуть коштувати набагато більше самого двигуна. Однак це підходить тільки для систем, які працюють при малому прискоренні та відносно постійному навантаженні. У той самий час системи із зворотним зв'язком здатні працювати з великими прискореннями і навіть за змінному характері навантаження. Якщо навантаження крокового двигуна перевищить його момент, інформація про положення ротора втрачається і система вимагає базування за допомогою, наприклад, кінцевого вимикача або іншого датчика. Системи зі зворотним зв'язком не мають такого недоліку.

При проектуванні конкретних систем доводиться вибирати між сервомотором і кроковим двигуном. Коли потрібно прецизійне позиціонування і точне управління швидкістю, а необхідний момент і швидкість не виходять за допустимі межі, кроковий двигун є найбільш економічним рішенням. Як і для звичайних двигунів, для підвищення моменту може бути використаний знижувальний редуктор. Однак для крокових двигунів редуктор не завжди підходить. На відміну від колекторних двигунів, у яких зростає зі збільшенням швидкості, кроковий двигун має більший момент на низьких швидкостях. До того ж, крокові двигуни мають набагато меншу максимальну швидкість порівняно з колекторними двигунами, що обмежує максимальне передаточне число і відповідно збільшення моменту за допомогою редуктора. Готові крокові двигуни з редукторами хоч і існують, але є екзотикою. Ще одним фактом, що обмежує застосування редуктора, є властивий йому люфт.

Можливість отримання низької частоти обертання часто є причиною того, що розробники, будучи неспроможними спроектувати редуктор, застосовують крокові двигуни невиправдано часто. У той же час колекторний двигун має більш високу питому потужність, низьку вартість, просту схему управління, і разом з одноступеневим черв'ячним редуктором він здатний забезпечити той же діапазон швидкостей, що кроковий двигун. До того ж, при цьому забезпечується значно більший момент. Приводи на основі колекторних двигунів дуже часто застосовуються в техніці військового призначення, а це побічно говорить про хороші параметри та високу надійність таких приводів. Та й у сучасній побутовій техніці, автомобілях, промисловому устаткуванні колекторні двигуни поширені досить сильно. Тим не менш, для крокових двигунів є своя, хоч і досить вузька, сфера застосування, де вони незамінні.

Види крокових двигунів

Існують три основні типи крокових двигунів:

  • двигуни зі змінним магнітним опором
  • двигуни з постійними магнітами
  • гібридні двигуни

Визначити тип двигуна можна навіть навпомацки: при обертанні валу знеструмленого двигуна з постійними магнітами (або гібридного) відчувається змінний опір обертанню, двигун обертається ніби клацаннями. У той же час вал знеструмленого двигуна зі змінним магнітним опором обертається вільно. Гібридні двигуни є подальшим удосконаленням двигунів з постійними магнітами та за способом керування нічим від них не відрізняються. Визначити тип двигуна можна за конфігурацією обмоток. Двигуни зі змінним магнітним опором зазвичай мають три (рідше чотири) обмотки з одним загальним висновком. Двигуни з постійними магнітами найчастіше мають дві незалежні обмотки. Ці обмотки можуть мати відведення від середини. Іноді двигуни з постійними магнітами мають 4 окремі обмотки.

У кроковому двигуні момент, що обертає, створюється магнітними потоками статора і ротора, які відповідним чином орієнтовані один щодо одного. Статор виготовлений із матеріалу з високою магнітною проникністю та має кілька полюсів. Полюс можна визначити як деяку ділянку намагніченого тіла, де магнітне поле сконцентровано. Полюси мають як статор, і ротор. Для зменшення втрат на вихрові струми магнітопроводи зібрані з окремих пластин, подібно до сердечника трансформатора. Обертовий момент пропорційний величині магнітного поля, яка пропорційна струму в обмотці та кількості витків. Таким чином, момент залежить від параметрів обмоток. Якщо хоча одна обмотка крокового двигуна запитана, ротор приймає певне положення. Він буде в цьому положенні доти, доки зовнішній прикладений момент не перевищить деякого значення, званого моментом утримання. Після цього ротор повернеться і намагатиметься прийняти одне з таких положень рівноваги.

Двигуни зі змінним магнітним опором

Крокові двигуни зі змінним магнітним опором мають кілька полюсів на статорі та ротор зубчастої форми з магнітом'якого матеріалу (рис. 2). Намагніченість ротора відсутня. Для простоти малюнку ротор має 4 зубця, а статор має 6 полюсів. Двигун має три незалежні обмотки, кожна з яких намотана на двох протилежних полюсах статора. Такий двигун має крок 30 град.

Мал. 2. Двигун із змінним магнітним опором.

При включенні струму однієї з котушок, ротор прагне зайняти становище, коли магнітний потік замкнутий, тобто. зубці ротора будуть знаходитися навпроти полюсів, на яких знаходиться запитана обмотка. Якщо потім вимкнути цю обмотку і включити наступну, то ротор змінить положення знову замкнувши своїми зубцями магнітний потік. Таким чином, щоб здійснити безперервне обертання потрібно включати фази поперемінно. Двигун не чутливий до напряму струму в обмотках. Реальний двигун може мати більше полюсів статора і більшу кількість зубців ротора, що відповідає більшій кількості кроків на оборот. Іноді поверхню кожного полюса статора виконують зубчастою, що разом із відповідними зубцями ротора забезпечує дуже маленьке значення кута кроку, близько кількох градусів. Двигуни із змінним магнітним опором досить рідко використовують у індустріальних застосуваннях.

Двигуни з постійними магнітами

Двигуни з постійними магнітами складаються зі статора, що має обмотки, та ротора, що містить постійні магніти (рис. 3). Полюси ротора, що чергуються, мають прямолінійну форму і розташовані паралельно осі двигуна. Завдяки намагніченості ротора в таких двигунах забезпечується більший магнітний потік і, як наслідок, більший момент, ніж у двигунів зі змінним магнітним опором.

Мал. 3. Двигун із постійними магнітами.

Показаний на малюнку двигун має 3 пари полюсів ротора та 2 пари полюсів статора. Двигун має дві незалежні обмотки, кожна з яких намотана на двох протилежних полюсах статора. Такий двигун, як і розглянутий раніше двигун із змінним магнітним опором, має величину кроку 30 град. При включенні струму в одній з котушок, ротор прагне зайняти таке становище, коли різноіменні полюси ротора і статора знаходяться один навпроти одного. Для безперервного обертання потрібно включати фази поперемінно. Насправді двигуни з постійними магнітами зазвичай мають 48 - 24 кроку на оборот (кут кроку 7.5 - 15 град).

Розріз реального крокового двигуна із постійними магнітами показаний на рис. 4.

Мал. 4. Розріз крокового двигуна із постійними магнітами.

Для здешевлення конструкції двигуна магнітопровід статора виконаний у вигляді штампованої склянки. Усередині знаходяться полюсні наконечники у вигляді ламелей. Обмотки фаз розміщені на двох різних магнітопроводах, які встановлені одна на одній. Ротор є циліндричний багатополюсний постійний магніт.

Двигуни з постійними магнітами схильні до впливу зворотної ЕРС з боку ротора, яка обмежує максимальну швидкість. Для роботи на високих швидкостях використовуються двигуни із змінним магнітним опором.

Гібридні двигуни

Гібридні двигуни є дорожчими, ніж двигуни з постійними магнітами, зате вони забезпечують меншу величину кроку, більший момент та більшу швидкість. Типова кількість кроків оборот для гібридних двигунів становить від 100 до 400 (кут кроку 3.6 - 0.9 град.). Гібридні двигуни поєднують у собі кращі риси двигунів із змінним магнітним опором та двигунів із постійними магнітами. Ротор гібридного двигуна має зубці, розташовані в осьовому напрямку (рис. 5).

Мал. 5. Гібридний двигун.

Ротор розділений на дві частини, між якими розташований постійний циліндричний магніт. Таким чином, зубці верхньої половинки ротора є північними полюсами, а зубці нижньої половинки – південними. Крім того, верхня та нижня половинки ротора повернені одна щодо одної на половину кута кроку зубців. Число пар полюсів ротора дорівнює кількості зубців на одній з його половинок. Зубчасті наконечники полюсні ротора, як і статор, набрані з окремих пластин для зменшення втрат на вихрові струми. Статор гібридного двигуна також має зубці, забезпечуючи велику кількість еквівалентних полюсів, на відміну основних полюсів, на яких розташовані обмотки. Зазвичай використовуються 4 основні полюси для 3.6 град. двигунів та 8 основних полюсів для 1.8- та 0.9 град. двигунів. Зубці ротора забезпечують менший опір магнітного ланцюга у певних положеннях ротора, що покращує статичний та динамічний момент. Це забезпечується відповідним розташуванням зубців, коли частина зубців ротора знаходиться навпроти зубців статора, а частина між ними. Залежність між числом полюсів ротора, числом еквівалентних полюсів статора та числом фаз визначає кут кроку S двигуна:

S = 360/(Nph * Ph) = 360/N,

де Nph - чило еквівалентних полюсів на фазу = число полюсів ротора,
Ph – число фаз,
N – повна кількість полюсів для всіх фаз разом.

Ротор показаного малюнку двигуна має 100 полюсів (50 пар), двигун має 2 фази, тому повна кількість полюсів - 200, а крок, відповідно, 1.8 град.

Поздовжнє переріз гібридного крокового двигуна показано на рис. 6. Стрілками показано напрямок магнітного потоку постійного магніту ротора. Частина потоку (на малюнку показана чорною лінією) проходить через полюсні наконечники ротора, повітряні зазори та полюсний наконечник статора. Ця частина не бере участі у створенні моменту.

Мал. 6. Поздовжній розріз гібридного крокового двигуна.

Як видно на малюнку, повітряні зазори у верхнього та нижнього полюсного наконечника ротора різні. Це досягається завдяки повороту полюсних наконечників на половину кроку зубів. Тому існує інший магнітний ланцюг, який містить мінімальні повітряні зазори і, як наслідок, має мінімальний магнітний опір. По цьому ланцюзі замикається інша частина потоку (на малюнку показана штриховою білою лінією), яка створює момент. Частина ланцюга лежить у площині, перпендикулярній до малюнка, тому не показана. У цій площині створюють магнітний потік котушки статора. У гібридному двигуні цей потік частково замикається полюсними наконечниками ротора і постійний магніт його «бачить» слабо. Тому на відміну від двигунів постійного струму, магніт гібридного двигуна неможливо розмагнітити за жодної величини струму обмоток.

Величина зазору між зубцями ротора та статора дуже невелика – типово 0.1 мм. Це вимагає високої точності при складанні, тому кроковий двигун не варто розбирати для задоволення цікавості, інакше на цьому його термін служби може закінчитися.
Щоб магнітний потік не замикався через вал, що проходить усередині магніту, його виготовляють із немагнітних марок сталі. Вони зазвичай мають підвищену крихкість, тому з валом, особливо малого діаметра, слід поводитися з обережністю.

Для отримання великих моментів необхідно збільшувати поле, створюване статором, так і поле постійного магніту. При цьому потрібно більший діаметр ротора, що погіршує відношення моменту, що крутить, до моменту інерції. Тому потужні крокові двигуни іноді конструктивно виконують з декількох секцій у вигляді етажерки. Крутний момент і момент інерції збільшуються пропорційно до кількості секцій, а їхнє відношення не погіршується.

Існують інші конструкції крокових двигунів. Наприклад, двигуни з дисковим намагніченим ротором. Такі двигуни мають малий момент інерції ротора, що у ряді випадків важливо.

Більшість сучасних крокових двигунів є гібридними. По суті, гібридний двигун є двигуном з постійними магнітами, але з великим числом полюсів. За способом керування такі двигуни однакові, далі розглядатимуться лише такі двигуни. Найчастіше на практиці двигуни мають 100 або 200 кроків на оборот, відповідно крок дорівнює 3.6 грн або 1.8 грн. Більшість контролерів дозволяють працювати в напівкроковому режимі, де цей кут вдвічі менший, а деякі контролери забезпечують мікрокроковий режим.

Біполярні та уніполярні крокові двигуни

Залежно від конфігурації обмоток двигуни поділяються на біполярні та уніполярні. Біполярний двигун має одну обмотку в кожній фазі, яка для зміни напрямку магнітного поля повинна переполюсовуватись драйвером. Для такого типу двигуна потрібен мостовий драйвер, або напівмостовий з двополярним живленням. Усього біполярний двигун має дві обмотки і, відповідно, чотири виводи (рис. 7а).

Мал. 7. Біполярний двигун (а), уніполярний (б) та чотириобмотувальний (в).

Уніполярний двигун також має одну обмотку в кожній фазі, але від середини обмотки зроблено відведення. Це дозволяє змінювати напрямок магнітного поля, створюваного обмоткою, простим перемиканням половинок обмотки. При цьому значно спрощується схема драйвера. Драйвер повинен мати лише 4 простих ключа. Таким чином, в уніполярному двигуні використовується інший спосіб зміни напряму магнітного поля. Середні висновки обмоток можуть бути поєднані всередині двигуна, тому такий двигун може мати 5 або 6 висновків (рис. 7б). Іноді уніполярні двигуни мають роздільні 4 обмотки, тому їх помилково називають 4-х фазними двигунами. Кожна обмотка має окремі висновки, тому всього 8 висновків (рис. 7в). При відповідному з'єднанні обмоток такий двигун можна використовувати як уніполярний або біполярний. Уніполярний двигун з двома обмотки і відводами теж можна використовувати в біполярному режимі, якщо залишити залишки непідключеними. У будь-якому випадку струм обмоток слід вибирати так, щоб не перевищити максимальної потужності, що розсіюється.

Біполярний чи уніполярний?

Якщо порівнювати між собою біполярний та уніполярний двигуни, то біполярний має більш високу питому потужність. При тих самих розмірах біполярні двигуни забезпечують більший момент.

Момент, створюваний кроковим двигуном, пропорційний величині магнітного поля, створюваного статора обмотками. Шлях підвищення магнітного поля - це збільшення струму чи кількості витків обмоток. Природним обмеженням у разі підвищення струму обмоток є небезпека насичення залізного сердечника. Однак на практиці це обмеження діє рідко. Набагато істотнішим є обмеження нагрівання двигуна внаслідок омічних втрат в обмотках. Саме цей факт і демонструє одну з переваг біполярних двигунів. В уніполярному двигуні у кожний момент часу використовується лише половина обмоток. Інша половина просто займає місце у вікні сердечника, що змушує робити обмотки дротом меншого діаметра. У той самий час у біполярному двигуні працюють всі обмотки, тобто. їх використання оптимальне. У такому двигуні перетин окремих обмоток вдвічі більший, а омічний опір - відповідно вдвічі менше. Це дозволяє збільшити струм у корінь із двох разів при тих же втратах, що дає виграш у моменті приблизно 40%. Якщо підвищеного моменту не потрібно, уніполярний двигун дозволяє зменшити габарити або просто працювати з меншими втратами. На практиці все ж таки часто застосовують уніполярні двигуни, так як вони вимагають значно більш простих схем управління обмотками. Це важливо, якщо драйвери виконані на дискретних компонентах. В даний час існують спеціалізовані мікросхеми драйверів для біполярних двигунів, з використанням яких драйвер виходить не складніше, ніж уніполярного двигуна. Наприклад, це мікросхеми L293E, L298N або L6202 фірми SGS-Thomson, PBL3770, PBL3774 фірми Ericsson, NJM3717, NJM3770, NJM3774 фірми JRC, A3957 фірми Allegro, LMD18T245.

Діаграми, діаграми...

Існує кілька способів керування фазами крокового двигуна.

Перший спосіб забезпечується поперемінної комутації фаз, при цьому вони не перекриваються, одночасно включена тільки одна фаза (рис 8а). Цей спосіб називають ”one phase on” full step або wave drive mode. Точки рівноваги ротора кожного кроку збігаються з «природними» точками рівноваги ротора у незапитаного двигуна. Недоліком цього способу управління є те, що для біполярного двигуна в той самий момент часу використовується 50% обмоток, а для уніполярного - тільки 25%. Це означає, що в такому режимі не можна отримати повний момент.

Мал. 8. Різні способи керування фазами крокового двигуна.

Другий спосіб - управління фазами з перекриттям: дві фази включені в один і той же час. Його називають ”two-phase-on” full step або просто full step mode. При цьому способі керування ротор фіксується в проміжних позиціях між полюсами статора (рис. 8б) і забезпечується приблизно на 40% більший момент, ніж у випадку включеної фази. Цей спосіб управління забезпечує такий самий кут кроку, як і перший спосіб, але положення точок рівноваги ротора зміщено на півкроку.

Третій спосіб є комбінацією перших двох і називається напівкроковим режимом, ”one and two-phase-on” half step або просто half step mode, коли двигун робить крок половину основного. Цей метод управління досить поширений, тому що двигун з меншим кроком коштує дорожче і дуже привабливо отримати від 100-крокового двигуна 200 кроків на оборот. Кожен другий крок запитана лише одна фаза, а в інших випадках запитано дві (рис. 8в). В результаті кутове переміщення ротора становить половину кута кроку для перших двох способів керування. Крім зменшення розміру кроку, цей спосіб управління дозволяє частково позбутися явища резонансу. Напівкроковий режим зазвичай не дозволяє отримати повний момент, хоча найбільш досконалі драйвери реалізують модифікований напівкроковий режим, в якому двигун забезпечує практично повний момент, при цьому потужність, що розсіюється, не перевищує номінальної.

Ще один спосіб управління називається мікрокроковим режимом або micro stepping mode. При цьому способі керування струмом у фазах потрібно міняти невеликими кроками, забезпечуючи таким чином дроблення половинного кроку на менші мікрокроки. Коли одночасно включені дві фази, але їх струми не рівні, положення рівноваги ротора лежатиме не в середині кроку, а в іншому місці, що визначається співвідношенням струмів фаз. Змінюючи це співвідношення, можна забезпечити кілька мікрокроків всередині одного кроку. Крім збільшення роздільної здатності, мікрокроковий режим має інші переваги, які будуть описані нижче. Разом з тим для реалізації мікрокрокового режиму потрібні значно складніші драйвери, що дозволяють задавати струм в обмотках з необхідною дискретністю. Напівкроковий режим є окремим випадком мікрокрокового режиму, але він не вимагає формування ступінчастого струму живлення котушок, тому часто реалізується.

Тримай його!

У повнокроковому режимі з двома включеними фазами положення точок рівноваги ротора зміщені на півкроку. Слід зазначити, що це положення ротор приймає під час роботи двигуна, але становище ротора неспроможна зберігатися постійним після вимкнення струму обмоток. Тому при включенні та вимкненні живлення двигуна ротор зміщуватиметься на півкроку. Для того, щоб він не зміщувався під час зупинки, необхідно подавати в обмотки струм утримання. Те саме справедливо і для напівкрокового та мікрокрокового режимів. Слід зазначити, що якщо у вимкненому стані ротор двигуна повертався, то при включенні живлення можливе зміщення ротора і більшу, ніж половина кроку величину.

Струм утримання може бути меншим за номінальний, тому що від двигуна з нерухомим ротором зазвичай не потрібно великого моменту. Однак є застосування, коли у зупиненому стані двигун повинен забезпечувати повний момент, що для крокового двигуна можливо. Ця властивість крокового двигуна дозволяє у таких ситуаціях обходитися без механічних гальмівних систем. Оскільки сучасні драйвери дозволяють регулювати струм живлення обмоток двигуна, завдання необхідного струму утримання зазвичай не становить проблем. Завдання зазвичай полягає просто у відповідній програмній підтримці для керуючого мікроконтролера.

Напівкроковий режим

Основним принципом роботи крокового двигуна є створення магнітного поля, що обертається, яке змушує ротор повертатися. Магнітне поля, що обертається, створюється статором, обмотки якого відповідним чином запитуються.

Для двигуна, у якого запитана одна обмотка, залежність моменту від кута повороту ротора щодо точки рівноваги є приблизно синусоїдальною. Ця залежність для двообмотувального двигуна, що має N кроків на оборот (кут кроку в радіанах S = (2*pi)/N), показано на рис. 9.

Мал. 9. Залежність моменту від кута повороту ротора однієї запитаної обмотки.

Реально характер залежності може бути дещо інший, що пояснюється неідеальністю геометрії ротора та статора. Пікове значення моменту називається моментом утримання. Формула, що описує залежність моменту від кута повороту ротора, має такий вигляд:

T = - Th*sin((pi/2)/S)*Ф),

де T - момент, Th - момент утримання,
S - кут кроку,
Ф – кут повороту ротора.

Якщо до ротора додати зовнішній момент, що перевищує момент утримання, ротор перевернеться. Якщо зовнішній момент не перевищує моменту утримання, то ротор перебуватиме в рівновазі в межах кута кроку. Слід зазначити, що знеструмлений двигун момент утримання не дорівнює нулю внаслідок дії постійних магнітів ротора. Цей момент зазвичай становить близько 10% максимального моменту, що забезпечує двигун.

Іноді використовують терміни "механічний кут повороту ротора" та "електричний кут повороту ротора". Механічний кут обчислюється виходячи з того, що повний оберт ротора становить 2*pi радіан. При обчисленні електричного кута приймається, що один оберт відповідає одному періоду кутової залежності моменту. Для наведених вище формул Ф є механічним кутом повороту ротора, а електричний кут для двигуна, що має 4 кроки на період кривої моменту, дорівнює ((pi/2)/S)*Ф або (N/4)*Ф, де N - число кроків на оборот. Електричний кут фактично визначає кут повороту магнітного поля статора і дозволяє будувати теорію незалежно кількості кроків на оборот для конкретного двигуна.

Якщо запитати одночасно дві обмотки двигуна, то момент дорівнюватиме сумі моментів, що забезпечуються обмотками окремо (рис. 10).

Мал. 10. Залежність моменту від кута повороту ротора для двох обмоток.

При цьому якщо струми в обмотках однакові, то точка максимуму моменту буде зміщена на половину кроку. На пів кроку зміститься і точка рівноваги ротора (точка e малюнку). Цей факт і покладено основою реалізації напівкрокового режиму. Пікове значення моменту (момент утримання) при цьому буде в корінь із двох разів більше, ніж за однієї запитаної обмотки.

Th 2 = 2 0.5 * Th 1 ,

де Th 2 - момент утримання при двох запитаних обмотках,
Th 1 – момент утримання при одній запитаній обмотці.

Саме цей момент зазвичай і вказується у характеристиках крокового двигуна.

Величина та напрямок магнітного поля показані на векторній діаграмі (рис. 11).

Мал. 11. Величина та напрямок магнітного поля для різних режимів живлення фаз.

Осі X і Y збігаються з напрямком магнітного поля, створюваного обмотками першої та другої фази двигуна. Коли двигун працює з однією включеною фазою, ротор може займати положення 1, 3, 5, 7. Якщо включені дві фази, то ротор може займати положення 2, 4, 6, 8. До того ж, у цьому режимі більше моменту, оскільки він пропорційний довжині вектора малюнку. Обидва ці методи управління забезпечують повний крок, але положення рівноваги ротора зміщені на півкроку. Якщо скомбінувати ці два методи і подати на обмотки відповідні послідовності імпульсів, то можна змусити ротор послідовно займати положення 1, 2, 3, 4, 5, 6, 7, 8, що відповідає половинному кроку.

Порівняно з повнокроковим режимом, напівкроковий режим має такі переваги:

  • більш висока роздільна здатність без застосування більш дорогих двигунів
  • менші проблеми із явищем резонансу. Резонанс призводить лише до часткової втрати моменту, що зазвичай не заважає нормальній роботі приводу.

Недоліком напівкрокового режиму є досить значне коливання моменту від кроку до кроку. У тих положеннях ротора, коли запитано одна фаза, момент становить приблизно 70% від повного, коли запитані дві фази. Ці коливання можуть спричинити підвищені вібрації та шум, хоча вони все одно залишаються меншими, ніж у повнокроковому режимі.

Спосіб усунення коливань моменту є підняття моменту в положеннях з однією включеною фазою і таким чином забезпечення однакового моменту у всіх положеннях ротора. Це може бути досягнуто шляхом збільшення струму в цих положеннях рівня приблизно 141% від номінального. Деякі драйвери, такі як PBL 3717/2 та PBL 3770A фірми Ericsson мають логічні входи для зміни величини струму. Потрібно відзначити, що величина 141% є теоретичною, тому в додатках, що вимагають високої точності підтримання моменту, ця величина повинна бути підібрана експериментально для конкретної швидкості і конкретного двигуна. Оскільки струм піднімається тільки в ті моменти, коли включена одна фаза, потужність, що розсіюється, дорівнює потужності в повнокроковому режимі при струмі 100% від номінального. Однак таке збільшення струму вимагає вищої напруги живлення, що не завжди можливо. Є й інший підхід. Для усунення коливань моменту під час роботи двигуна у напівкроковому режимі можна знижувати струм у моменти, коли включені дві фази. Для отримання постійного моменту цей струм має становити 70,7% від номінального. Таким чином, реалізує напівкроковий режим, наприклад, мікросхема драйвера A3955 фірми Allegro.

Для напівкрокового режиму дуже важливим є перехід у стан з однією вимкненою фазою. Щоб змусити ротор прийняти відповідне положення, струм у відключеній фазі повинен бути зменшений до нуля якнайшвидше. Тривалість спаду струму залежить від напруги на обмотці у той час, коли вона втрачає свою запасену енергію. Замикаючи в цей час обмотку на джерело живлення, яке представляє максимальну напругу, що є в системі, забезпечується максимально швидкий спад струму. Для отримання швидкого спаду струму при живленні обмоток двигуна H-мостом всі транзистори повинні закриватися, при цьому обмотка через діоди виявляється підключеною до джерела живлення. Швидкість спаду струму значно зменшиться, якщо один транзистор моста залишити відкритим і скоротити обмотку на транзистор і діод. Для збільшення швидкості спаду струму при управлінні уніполярними двигунами придушення викидів ЕРС самоіндукції краще здійснювати не діодами, а варисторами або комбінацією діодів та стабілітрона, які обмежать викид на більшому, але безпечному для транзисторів рівні.

Мікрокроковий режим

Мікрокроковий режим забезпечується шляхом отримання поля статора, що обертається плавніше, ніж у повно- або напівкроковому режимах. В результаті забезпечуються менші вібрації та практично безшумна робота аж до нульової частоти. До того ж, менший кут кроку здатний забезпечити більш точне позиціонування. Існує багато різних мікрокрокових режимів з величиною кроку від 1/3 повного кроку до 1/32 і навіть менше. Кроковий двигун є синхронним електродвигуном. Це означає, що положення рівноваги нерухомого ротора збігається із напрямком магнітного поля статора. При повороті поля статора ротор теж повертається, прагнучи зайняти нове положення рівноваги.

Мал. 12. Залежність моменту від кута повороту ротора у разі різних значень струму фаз.

Щоб отримати потрібний напрямок магнітного поля, необхідно вибрати не тільки правильний напрямок струмів у котушках, але й правильне співвідношення цих струмів.

Якщо одночасно запитані дві обмотки двигуна, але струми цих обмотках не рівні (рис. 12), то результуючий момент буде

Th = (a 2 + b 2) 0.5

а точка рівноваги ротора зміститься до точки

x = (S/(pi/2)) arctan(b/a),

де a і b - момент, створюваний першою та другою фазою відповідно,
Th - результуючий момент утримання,
x - положення рівноваги ротора в радіанах
S – кут кроку в радіанах.

Усунення точки рівноваги ротора говорить про те, що ротор можна зафіксувати в будь-якій довільній позиції. Для цього потрібно лише правильно встановити відношення струмів у фазах. Саме цей факт використовується при реалізації мікрокрокового режиму.
Ще раз слід зазначити, що наведені вище формули вірні лише тому випадку, якщо залежність моменту від кута повороту ротора синусоїдальна і якщо жодна частина магнітної ланцюга двигуна не насичується.

У межі кроковий двигун може працювати як синхронний електродвигун в режимі безперервного обертання. Для цього струми його фаз мають бути синусоїдальними, зрушеними один щодо одного на 90 град.

Результатом використання мікрокрокового режиму є набагато плавніше обертання ротора на низьких частотах. На частотах в 2 - 3 рази вище за власну резонансну частоту ротора і навантаження, мікрокроковий режим дає незначні переваги в порівнянні з напів-або повнокроковим режимами. Причиною цього є фільтруюча дія інерції ротора та навантаження. Система з кроковим двигуном працює подібно до фільтра нижніх частот. У мікрокроковому режимі можна здійснювати лише розгін та гальмування, а основний час працювати у повнокроковому режимі. До того ж, для досягнення високих швидкостей у мікрокроковому режимі потрібна дуже висока частота повторення мікрокроків, яку не завжди може забезпечити керуючий мікроконтролер. Для запобігання перехідним процесам і втрати кроків, перемикання режимів роботи двигуна (з мікрокрокового режиму в повнокроковий і т.п.) необхідно проводити в ті моменти, коли ротор знаходиться в положенні, що відповідає одній включеній фазі. Деякі мікросхеми драйверів мікрокрокового режиму мають спеціальний сигнал, який інформує про таке положення ротора. Наприклад, це драйвер A3955 фірми Allegro.

У багатьох додатках, де потрібні малі відносні переміщення і висока роздільна здатність, мікрокроковий режим здатний замінити механічний редуктор. Часто простота системи є вирішальним фактором, навіть якщо при цьому доведеться застосувати двигун великих габаритів. Незважаючи на те, що драйвер, що забезпечує мікрокроковий режим, набагато складніший за звичайний драйвер, все одно система може виявитися простішою і дешевшою, ніж кроковий двигун, плюс редуктор. Сучасні мікроконтролери іноді мають вбудовані ЦАПи, які можна використовувати для реалізації мікрокрокового режиму замість спеціальних контролерів. Це дозволяє зробити практично однаковою вартість обладнання для повнокрокового та мікрокрокового режимів.

Іноді мікрокроковий режим використовується для збільшення точності величини кроку понад заявлену виробником двигуна. При цьому використовується номінальна кількість кроків. Для підвищення точності використовується корекція положення ротора у точках рівноваги. Для цього спочатку знімають характеристику конкретного двигуна, а потім, змінюючи співвідношення струмів у фазах, коригують положення ротора індивідуально для кожного кроку. Такий метод вимагає попереднього калібрування та додаткових ресурсів керуючого мікроконтролера. Крім того, потрібен датчик початкового положення ротора для синхронізації положення з таблицею коригуючих коефіцієнтів.

На практиці при здійсненні кожного кроку ротор не відразу зупиняється в новому положенні рівноваги, а здійснює коливання, що загасають, навколо положення рівноваги. Час встановлення залежить від характеристик навантаження та від схеми драйвера. У багатьох програмах такі коливання є небажаними. Позбутися цього явища можна шляхом використання мікрокрокового режиму. На рис. 13 показані переміщення ротора при роботі в повнокроковому та мікрокроковому режимах.

Мал. 13. Переміщення ротора у повнокроковому та мікрокроковому режимах.

Видно, що у повнокроковому режимі спостерігаються викиди та коливання, тоді як у мікрокроковому режимі їх немає. Однак і в цьому режимі графік положення ротора відрізняється від прямої лінії. Ця похибка пояснюється похибкою геометрії деталей двигуна і може бути зменшена шляхом калібрування і подальшої компенсації шляхом коригування струмів фаз.
Насправді існують деякі чинники, що обмежують точність роботи приводу в мікрокроковому режимі. Деякі з них належать до драйвера, а деякі безпосередньо до двигуна.

Зазвичай виробники крокових двигунів вказують на такий параметр, як точність кроку. Точність кроку вказується для положень рівноваги ротора при двох включених фаз, струми яких рівні. Це відповідає повнокроковому режиму з перекриттям фаз. Для мікрокрокового режиму, коли струми фаз не дорівнюють, ніяких даних зазвичай не наводиться.

Ідеальний кроковий двигун при живленні фаз синусоїдальним та косинусоїдальним струмом повинен обертатися з постійною швидкістю. У реального двигуна в такому режимі спостерігатимуться деякі коливання швидкості. Пов'язано це з нестабільністю повітряного зазору між полюсами ротора та статора, наявністю магнітної гістерези, що призводить до похибок величини та напряму магнітного поля і т.д. Тому положення рівноваги та момент мають деякі відхилення. Ці відхилення залежать від похибки форми зубців ротора та статора та від застосованого матеріалу магнітопроводів.

Конструкція деяких двигунів оптимізована для найкращої точності у повнокроковому режимі та максимального моменту утримання. Спеціальна форма зубців ротора та статора спроектована так, щоб у положенні рівноваги для повнокрокового режиму магнітний потік сильно зростав. Це призводить до погіршення точності в мікрокроковому режимі. Найкращі результати дозволяють отримати двигуни, у яких момент утримання в знеструмленому стані менший.

Відхилення можна розділити на два види: відхилення величини магнітного поля, які призводять до відхилень моменту утримання в мікрокроковому режимі та відхилення напрямку магнітного поля, що призводять до відхилень положення рівноваги. Відхилення моменту утримання мікрокроковому режимі зазвичай становлять 10 - 30% від максимального моменту. Слід сказати, що у повнокроковому режимі момент утримання може коливатися на 10 - 20 % внаслідок спотворень геометрії ротора і статора.

Якщо виміряти положення рівноваги ротора при обертанні двигуна і проти годинникової стрілки, то вийдуть кілька різні результати. Цей гістерезис пов'язаний в першу чергу з магнітною гістерезисом матеріалу сердечника, хоча свій внесок робить і тертя. Магнітний гістерезис призводить до того, що магнітний потік залежить не тільки від струму обмоток, а й від його попереднього значення. Похибка, створювана гістерезисом може дорівнювати кільком мікрокрокам. Тому у високоточних додатках під час руху в одному з напрямків потрібно проходити за бажану позицію, а потім повертатися назад, щоб підхід до потрібної позиції завжди здійснювався в одному напрямку.

Цілком природно, що будь-яке бажане збільшення роздільної здатності наштовхується на якісь фізичні обмеження. Не варто вважати, що точність позиціонування для 7.2 град. двигуна в мікрокроковому режимі не поступається точності 1.8 град. двигуна.

Перешкодою є такі фізичні обмеження:

  • наростання моменту залежно від кута повороту у 7.2 градусного двигуна вчетверо більш пологе, ніж у справжнього 1.8-градусного двигуна. Внаслідок дії моменту тертя або моменту інерції навантаження точність позиціонування вже буде гіршою.
  • як буде показано нижче, якщо в системі є тертя, то внаслідок появи мертвих зон точність позиціонування буде обмежена
  • більшість комерційних двигунів не мають прецизійну конструкцію і залежність між моментом і кутом повороту ротора не є в точності синусоїдальної. Внаслідок цього залежність між фазою синусоїдального струму живлення та кутом повороту валу буде нелінійною. В результаті ротор двигуна буде точно проходити положення кожного кроку та півкроку, а між цими положеннями спостерігатимуться досить значні відхилення.

Ці проблеми найяскравіше виражені для двигунів з великою кількістю полюсів. Існують однак двигуни, ще на етапі розробки, оптимізовані для роботи в мікрокроковому режимі. Полюси ротора та статора таких двигунів менш виражені завдяки скошеній формі зубців.

Ще одне джерело похибок позиціонування - помилка квантування ЦАП, з допомогою якого формуються струми фаз. Справа в тому, що струм повинен формуватися за синусоїдальним законом, тому для мінімізації похибки лінійний ЦАП повинен мати підвищену розрядність. Існують спеціалізовані драйвери із вбудованим нелінійним ЦАПом, який дозволяє одразу отримувати рахунки функції sin. Прикладом може бути драйвер A3955 фірми Allegro, який має вбудований 3-розрядний ЦАП, який забезпечує наступні значення струму фаз: 100%, 92.4%, 83.1%, 70.7%, 55.5%, 38.2%, 19.5%, 0%. Це дозволяє працювати в мікрокроковому режимі з величиною кроку 1/8, при цьому похибка установки фаз струму не перевищує 2%. Крім того, цей драйвер має можливість керувати швидкістю спаду струму обмоток двигуна під час роботи, що дозволяє зробити "тонке підстроювання" драйвера під конкретний двигун для отримання найменшої похибки позиціонування.

Навіть якщо ЦАП точно сформував синусоїдальну опорну напругу, його потрібно посилити і перетворити на синусоїдальний струм обмоток. Багато драйверів мають значну нелінійність поблизу нульового значення струму, що спричиняє значні спотворення форми і, як наслідок, значні помилки позиціонування. Якщо використовуються високоякісні драйвери, наприклад, PBM3960 і PBL3771 фірми Ericsson, похибка, пов'язана з драйвером, зникаюче мала в порівнянні з похибкою двигуна.

Іноді контролери крокових двигунів дозволяють коригувати форму вихідного сигналу шляхом додавання або віднімання синуса його третьої гармоніки. Однак таке підстроювання має проводитися індивідуально під конкретний двигун, характеристики якого повинні бути перед цим виміряні.

Через ці обмеження мікрокроковий режим використовується в основному для забезпечення плавного обертання (особливо на дуже низьких швидкостях), для усунення шуму та явища резонансу. Мікрокроковий режим також здатний зменшити час встановлення механічної системи, оскільки, на відміну від повнокрокового режиму, відсутні викиди та осциляції. Однак у більшості випадків для звичайних двигунів не можна гарантувати точного позиціонування в мікрокроковому режимі.

Синусоїдальний струм фаз може бути забезпечений застосуванням спеціальних драйверів. Деякі з них, наприклад A3955, A3957 фірми Allegro, вже містять ЦАП і вимагають мікроконтролера тільки цифрових кодів. Інші, такі як L6506, L298 фірми SGS-Thomson, вимагають зовнішніх опорних напруг синусоїдальної форми, які повинен формувати мікроконтролер за допомогою ЦАПів. Потрібно сказати, що занадто багато дискретів синуса не призводить до підвищення точності позиціонування, оскільки починає домінувати помилка, пов'язана з неідеальністю геометрії полюсів двигуна. Тим більше, в цьому випадку відліки повинні йти з великою частотою, що є проблемою при їх програмному формуванні. При роботі на високих швидкостях роздільну здатність ЦАПів можна зменшити. Понад те, за дуже високих швидкостях взагалі рекомендується працювати у звичайному повнокроковому режимі, оскільки управління гармонійним сигналом втрачає переваги. Відбувається це з тієї причини, що обмотки двигуна є індуктивністю, відповідно будь-яка конкретна схема драйвера з конкретною напругою живлення забезпечує цілком певну максимальну швидкість наростання струму. Тому при підвищенні частоти форма струму починає відхилятися від синусоїдальної і дуже великих частотах стає трикутною.

Залежність моменту від швидкості, вплив навантаження

Момент, створюваний кроковим двигуном, залежить від кількох факторів:

  • швидкості
  • струму в обмотках
  • схеми драйвера

На рис. 14а показано залежність моменту від кута повороту ротора.

Мал. 14. Виникнення мертвих зон внаслідок дії тертя.

У ідеального крокового двигуна ця синусоїдальна залежність. Точки S є положеннями рівноваги ротора для ненавантаженого двигуна і відповідають декільком послідовним крокам. Якщо до валу двигуна прикласти зовнішній момент, менший за момент утримання, то кутове положення ротора зміниться на деякий кут Ф.

Ф = (N/(2*pi))*sin(Ta/Th),

де Ф - кутове зміщення,
N - кількість кроків двигуна на оборот,
Ta - зовнішній прикладений момент,
Th – момент утримання.

Кутове усунення Ф є помилкою позиціонування навантаженого двигуна. Якщо до валу двигуна прикласти момент, що перевищує момент утримання, під дією цього моменту вал прокрутиться. У такому режимі положення ротора є неконтрольованим.
На практиці завжди є прикладений до двигуна зовнішній момент, хоча б тому, що двигуну доводиться долати тертя. Сили тертя можуть бути розділені на дві категорії: статичне тертя або тертя спокою, для подолання якого потрібен постійний момент і динамічне тертя або в'язке тертя, яке залежить від швидкості. Розглянемо статичне тертя. Припустимо, що для його подолання потрібен момент наполовину від пікового. На рис. 14а штриховими лініями показано момент тертя. Таким чином, для обертання ротора залишається лише момент, що лежить на графіку за межами штрихових ліній. Звідси випливають два висновки: тертя знижує момент на валу двигуна і з'являються мертві зони навколо кожного положення рівноваги ротора (рис. 14б):

d = 2 (S / (pi/2)) arcsin (T f / T h) = (S / (pi/4)) arcsin (T f / Th),

де d - ширина мертвої зони в радіанах,
S - кут кроку в радіанах,
Tf - момент тертя,
Th – момент утримання.

Мертві зони обмежують точність позиціонування. Наприклад, наявність статичного тертя половину від пікового моменту двигуна з кроком 90 град. викличе наявність мертвих зон 60 град. Це означає, що крок двигуна може коливатися від 30 до 150 град., Залежно від того, в якій точці мертвої зони зупиниться ротор після чергового кроку.

Наявність мертвих зон є дуже важливою для мікрокрокового режиму. Якщо, наприклад, є мертві зони величиною d, мікрокрок величиною менше d взагалі не зрушить ротор з місця. Тому для систем з використанням мікрокроків дуже важливо мінімізувати тертя спокою.

Коли двигун працює під навантаженням, завжди існує деяке зрушення між кутовим положенням ротора та орієнтацією магнітного поля статора. Особливо несприятливою є ситуація, коли двигун починає гальмування та момент навантаження реверсується. Слід зазначити, що запізнення чи випередження стосується лише становищу, але з швидкості. У будь-якому випадку, якщо синхронність роботи двигуна не втрачена, це запізнення або випередження не може перевищувати двох повних кроків. Це дуже приємний факт.

Щоразу, коли кроковий двигун здійснює крок, ротор повертається на S радіан. При цьому мінімальний момент має місце, коли ротор знаходиться рівно між сусідніми положеннями рівноваги (рис. 15).

Мал. 15. Момент утримання та робочий момент крокового двигуна.

Цей момент називають робочим моментом, він означає, який найбільший момент може долати двигун при обертанні з малою швидкістю. При синусоїдальної залежності моменту від кута повороту ротора цей момент Tr = Th/(2 0.5). Якщо двигун робить крок із двома запитаними обмотками, то робочий момент дорівнює моменту утримання однієї запитаної обмотки.

Параметри приводу на основі крокового двигуна залежать від характеристик навантаження. Крім тертя, реальне навантаження має інерцію. Інерція перешкоджає зміні швидкості. Інерційне навантаження вимагає від двигуна великих моментів на розгоні та гальмуванні, обмежуючи таким чином максимальне прискорення. З іншого боку, збільшення інерційності навантаження збільшує стабільність швидкості.

Такий параметр крокового двигуна як залежність моменту від швидкості є найважливішим при виборі типу двигуна, виборі методу управління фазами і виборі схеми драйвера. При конструюванні високошвидкісних драйверів крокових двигунів потрібно враховувати, що обмотки двигуна є індуктивністю. Ця індуктивність визначає час наростання та спаду струму. Тому якщо до обмотки додана напруга прямокутної форми, форма струму не буде прямокутною. При низьких швидкостях (рис. 16а) час наростання та спаду струму не здатний сильно вплинути на момент, проте на високих швидкостях момент падає. Пов'язано це з тим, що на високих швидкостях струм в обмотках двигуна не встигає досягти номінального значення (рис. 16б).

Мал. 16. Форма струму в обмотках двигуна на різних швидкостях роботи.

Для того, щоб момент падав якнайменше, необхідно забезпечити високу швидкість наростання струму в обмотках двигуна, що досягається застосуванням спеціальних схем для їх живлення.

Поведінка моменту зі збільшенням частоти комутації фаз приблизно таке: починаючи з деякої частоти зрізу момент монотонно падає. Зазвичай для крокового двигуна наводяться дві криві залежності моменту швидкості (рис. 17).

Мал. 17. Залежність моменту від швидкості.

Внутрішня крива (крива старту, або pull-in curve) показує, при якому максимальному моменті тертя даної швидкості кроковий двигун здатний рушити. Ця крива перетинає вісь швидкостей у точці, яка називається максимальною частотою старту або частотою прийомистості. Вона визначає максимальну швидкість, де ненавантажений двигун може рушити. Насправді ця величина лежить у межах 200 - 500 повних кроків на секунду. Інерційність навантаження сильно впливає на вигляд внутрішньої кривої. Велика інерційність відповідає меншій ділянці під кривою. Ця область називається областю старту. Зовнішня крива (крива розгону, або pull-out curve) показує, при якому максимальному моменті тертя даної швидкості кроковий двигун здатний підтримувати обертання без пропуску кроків. Ця крива перетинає вісь швидкостей у точці, яка називається максимальною частотою розгону. Вона показує максимальну швидкість даного двигуна без навантаження. При вимірі максимальної швидкості потрібно мати на увазі, що через явище резонансу момент дорівнює нулю ще й на частоті резонансної. Область, що лежить між кривими, називається областю розгону.

Слід зазначити, що схема драйвера значною мірою впливає перебіг кривої момент-скорость, але це питання буде розглянуто нижче.

Розігнати!

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

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

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

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

N = 1/2At 2 +Vt, де N - число кроків, t - час, V - швидкість, виражена в кроках в одиницю часу, A - прискорення, виражене в кроках, поділених тимчасово в квадраті.

Для одного кроку N = 1, тоді тривалість кроку t 1 = T = (-V+(V 2 +2A) 0.5)/A

В результаті здійснення кроку швидкість дорівнює Vnew = (V 2 +2A) 0.5

Обчислення за наведеними формулами є досить трудомісткими і потребують значних витрат процесорного часу. У той же час вони дозволяють змінювати значення прискорення в довільний момент. Розрахунки можна спростити, якщо вимагати сталості прискорення під час розгону та гальмування. І тут можна записати залежність тривалості кроку від часу розгону:
V = V 0 +At, де V - поточна швидкість, V 0 - Початкова швидкість (мінімальна швидкість, з якої починається розгін), A - прискорення;
1/T = 1/T 0 +At, де T – тривалість кроку, T 0 – початкова тривалість кроку, t – поточний час;

Звідки T = T 0 / (1 + T 0 At)

Обчислення за цією формулою здійснити значно простіше, проте для того, щоб змінити значення прискорення потрібно зупинити двигун.

Резонанс

Кроковим двигунам властивий небажаний ефект, який називають резонансом. Ефект проявляється у вигляді раптового падіння моменту на деяких швидкостях. Це може призвести до пропуску кроків та втрати синхронності. Ефект проявляється у тому випадку, якщо частота кроків збігається зі своєю резонансною частотою ротора двигуна.

Коли двигун здійснює крок, ротор не відразу встановлюється в нову позицію, а здійснює загасання. Справа в тому, що систему ротор – магнітне поле – статор можна розглядати як пружинний маятник, частота коливань якого залежить від моменту інерції ротора (плюс навантаження) та величини магнітного поля. Зважаючи на складну конфігурацію магнітного поля, резонансна частота ротора залежить від амплітуди коливань. При зменшенні амплітуди частота зростає, наближаючись до малоамплітудної частоти, котра більш просто обчислюється кількісно. Ця частота залежить від кута кроку та від відношення моменту утримання до моменту інерції ротора. Більший момент утримання та менший момент інерції призводять до збільшення резонансної частоти.
Резонансна частота обчислюється за такою формулою:

F 0 = (N * T H / (J R + J L)) 0.5 / 4 * pi,

де F 0 - Резонансна частота,
N - кількість повних кроків на оборот,
T H - момент утримання для використовуваного способу керування та струму фаз,
J R - момент інерції ротора,
J L – момент інерції навантаження.

Слід зазначити, що резонансну частоту визначає момент інерції власне ротора двигуна плюс момент інерції навантаження, підключеної до валу двигуна. Тому резонансна частота ротора ненавантаженого двигуна, яка іноді наводиться серед параметрів, має невелику практичну цінність, оскільки будь-яке навантаження, приєднане до двигуна, змінить цю частоту.
Насправді ефект резонансу призводить до труднощів під час роботи на частоті, близька до резонансної. Момент на частоті резонансу дорівнює нулю і без спеціальних заходів кроковий двигун не може при розгоні пройти резонансну частоту. У будь-якому випадку, явище резонансу здатне суттєво погіршити точнісні характеристики приводу.

У системах з низьким демпфуванням існує небезпека втрати кроків або підвищення шуму, коли двигун працює поблизу резонансної частоти. У деяких випадках проблеми можуть виникати на гармоніках частоти основного резонансу.

Коли використовується мікрокроковий режим, основною причиною появи коливань є переривчасте обертання ротора. Під час здійснення кроку ротору поштовхом повідомляється деяка енергія. Цей поштовх збуджує вагання. Енергія, що повідомляється ротору в напівкроковому режимі, становить близько 30% енергії повного кроку. Тож у напівкроковому режимі амплітуда коливань значно менше. У мікрокроковому режимі з кроком 1/32 основного кожного мікрокроку повідомляється всього близько 0.1% від енергії повного кроку. Тому в мікрокроковому режимі явище резонансу практично непомітне.

Існують електричні методи боротьби із резонансом. Ротор, що коливається, призводить до виникнення в обмотках статора ЕРС. Якщо закоротити обмотки, які не використовуються на цьому кроці, це призведе до демпфування резонансу.

І, нарешті, існують методи боротьби з резонансом лише на рівні алгоритму роботи драйвера. Наприклад, можна використовувати той факт, що при роботі з двома включеними фазами резонансна частота приблизно на 20% вище, ніж з однією фазою включеною. Якщо резонансна частота точно відома, її можна проходити, змінюючи режим роботи.

Якщо це можливо, при старті та зупинці потрібно використовувати частоти вище резонансної. Збільшення моменту інерції системи ротор-навантаження зменшує резонансну частоту.

Однак найефективнішим заходом для боротьби з резонансом є застосування мікрокрокового режиму.

Чим же його годувати?

Для живлення звичайного двигуна постійного струму потрібно джерело постійної напруги, а необхідні комутації обмоток виконуються колектором. З кроковим двигуном все складніше. Усі комутації має виконувати зовнішній контролер. В даний час приблизно в 95% випадків для керування кроковими двигунами використовуються мікроконтролери. У найпростішому випадку для керування кроковим двигуном у повнокроковому режимі потрібні лише два сигнали, зрушені по фазі на 90 градусів. Напрямок обертання залежить від того, яка фаза випереджає. Швидкість визначається частотою проходження імпульсів. У напівкроковому режимі дещо складніше і потрібно вже мінімум 4 сигнали. Усі сигнали керування кроковим двигуном можна сформувати програмно, проте це викличе велике завантаження мікроконтролера. Тому частіше застосовують спеціальні мікросхеми драйверів крокового двигуна, які зменшують кількість необхідних процесора динамічних сигналів. Типово ці мікросхеми вимагають тактову частоту, яка є частотою повторення кроків та статичний сигнал, який задає напрямок. Іноді ще є сигнал увімкнення напівкрокового режиму. Для мікросхем драйверів, які працюють у мікрокроковому режимі, потрібна більша кількість сигналів. Поширеним є випадок, коли необхідні послідовності сигналів управління фазами формуються з допомогою однієї мікросхеми, а необхідні струми фаз забезпечує інша мікросхема. Хоча останнім часом з'являється все більше драйверів, що реалізують усі функції в одній мікросхемі.

Потужність, що вимагається від драйвера, залежить від розмірів двигуна і становить частки вата для маленьких двигунів і до 10-20 ват для великих двигунів. Максимальний рівень потужності, що розсіюється, обмежений нагріванням двигуна. Максимальна робоча температура зазвичай вказується виробником, але можна вважати, що нормальною є температура корпусу 90 градусів. Тому при конструюванні пристроїв з кроковими двигунами, які безперервно працюють на максимальному струмі, необхідно вживати заходів, що виключають торкання корпусу двигуна обслуговуючим персоналом. В окремих випадках можливе застосування радіатора, що охолоджує. Іноді це дозволяє застосувати двигун менших розмірів і досягти кращого відношення потужність/вартість.

Для даного розміру крокового двигуна місце обмотками, обмежене. Тому дуже важливо сконструювати драйвер так, щоб дані параметрів обмоток забезпечити найкращу ефективність.

Схема драйвера повинна виконувати три основні завдання:

  • мати можливість включати та вимикати струм в обмотках, а також змінювати його напрямок
  • підтримувати задане значення струму
  • забезпечувати якнайшвидше наростання і спад струму для хороших швидкісних характеристик

Способи зміни напряму струму

Під час роботи крокового двигуна потрібна зміна напряму магнітного поля незалежно кожної фази. Зміна напряму магнітного поля може бути виконана у різний спосіб. В уніполярних двигунах обмотки мають відведення від середини або є дві окремі обмотки для кожної фази. Напрямок магнітного поля змінюється шляхом перемикання половинок обмоток або цілих обмоток. У цьому випадку потрібні лише два простих ключа A та B для кожної фази (рис. 18).

Мал. 18. Живлення обмотки уніполярного двигуна.

У біполярних двигунах напрямок змінюється шляхом переполюсування висновків обмоток. Для такого переполюсування потрібен повний H-міст (рис. 19). Управління ключами у тому й іншому випадку має здійснюватися логічною схемою, що реалізує необхідний алгоритм роботи. Передбачається, що джерело живлення схем має номінальну для обмоток двигуна напругу.

Мал. 19. Живлення обмотки біполярного двигуна.

Це найпростіший спосіб керування струмом обмоток, і як буде показано надалі, він суттєво обмежує можливості двигуна. Слід зазначити, що з роздільному управлінні транзисторами H-моста можливі ситуації, коли джерело живлення закорочені ключами. Тому логічна схема управління має бути побудована таким чином, щоб виключити цю ситуацію навіть у разі збоїв керуючого мікроконтролера.

Обмотки двигуна є індуктивністю, а це означає, що струм не може нескінченно швидко наростати або нескінченно швидко спадати без залучення нескінченної різниці потенціалів. При підключенні обмотки до джерела живлення струм наростатиме з деякою швидкістю, а при відключенні обмотки відбудеться викид напруги. Цей викид здатний пошкодити ключі, як використовуються біполярні або польові транзистори. Для обмеження цього викиду встановлюють захисні ланцюжки. На схемах рис. 18 та 19 ці ланцюжки утворені діодами, значно рідше застосовують конденсатори або їх комбінацію з діодами. Застосування конденсаторів викликає появу електричного резонансу, що може спричинити збільшення моменту певної швидкості. На рис. 18 потрібно 4 діода з тієї причини, що половинки обмоток уніполярного двигуна розташовані на загальному сердечнику і сильно пов'язані між собою. Вони працюють як автотрансформатор та викиди виникають на висновках обох обмоток. Якщо в якості ключів застосовані МОП-транзистори, то достатньо двох зовнішніх діодів, так як у них всередині вже є діоди. В інтегральних мікросхемах, що містять потужні вихідні каскади з відкритим колектором, також є такі діоди. Крім того, деякі мікросхеми, такі як ULN2003, ULN2803 і подібні мають всередині обидва захисні діоди для кожного транзистора. Потрібно відзначити, що у разі застосування швидкодіючих ключів потрібні порівнювані швидкодії діоди. У разі застосування повільних діодів потрібне їхнє шунтування невеликими конденсаторами.

Стабілізація струму

Для регулювання моменту потрібно регулювати силу струму в обмотках. У будь-якому випадку, струм повинен бути обмежений, щоб не перевищити потужність, що розсіюється, на омічному опорі обмоток. Більше того, у напівкроковому режимі ще потрібно в певні моменти забезпечувати нульове значення струму в обмотках, а мікрокроковому режимі взагалі потрібне завдання різних значень струму.

Для кожного двигуна виробником вказується номінальна робоча напруга обмоток. Тому найпростіший спосіб живлення обмоток – це використання джерела постійної напруги. У цьому випадку струм обмежений омічним опором обмоток та напругою джерела живлення (мал. 20а), тому такий спосіб живлення називають L/R-живленням. Струм в обмотці наростає за експоненційним законом зі швидкістю, що визначається індуктивністю, активним опором обмотки та прикладеною напругою. При підвищенні частоти струм не досягає номінального значення і падає момент. Тому такий спосіб живлення придатний лише під час роботи на малих швидкостях і використовується на практиці лише для малопотужних двигунів.

Мал. 20. Живлення обмотки номінальною напругою (а) та використання обмежувального резистора (б).

Працюючи на великих швидкостях потрібно збільшувати швидкість наростання струму в обмотках, що можливо шляхом підвищення напруги джерела живлення. При цьому максимальний струм обмотки має бути обмеженим за допомогою додаткового резистора. Наприклад, якщо використовується напруга живлення в 5 разів більша за номінальну, то потрібен такий додатковий резистор, щоб загальний опір становив 5R, де R - омічний опір обмотки (L/5R-живлення). Цей спосіб живлення забезпечує більш швидке наростання струму і, як наслідок, більший момент (рис. 20б). Однак він має істотний недолік: на резистори розсіюється додаткова потужність. Великі габарити потужних резисторів, необхідність відведення тепла і підвищена необхідна потужність джерела живлення - все це робить такий метод неефективним і обмежує його застосування невеликими двигунами потужністю 1 - 2 Вт. Потрібно сказати, що до початку 80-х років минулого століття параметри крокових двигунів, що наводяться виробниками, належали саме до такого способу живлення.

Ще швидше наростання струму можна отримати, якщо використовувати для живлення двигуна генератор струму. Наростання струму відбуватиметься лінійно, це дозволить швидше досягати номінального значення струму. Тим більше, що пара потужних резисторів може коштувати дорожче, ніж пара потужних транзисторів разом із радіаторами. Але як і в попередньому випадку, генератор струму розсіюватиме додаткову потужність, що робить цю схему живлення неефективною.

Існує ще одне рішення, що забезпечує високу швидкість наростання струму та низьку потужність втрат. Засноване воно на застосуванні двох джерел живлення.

Мал. 21. Живлення обмотки двигуна ступінчастою напругою.

На початку кожного кроку короткочасно обмотки підключаються до високовольтного джерела, яке забезпечує швидке наростання струму (рис. 21). Потім напруга живлення обмоток зменшується (час t 1 на рис. 21). Недоліком цього є необхідність двох ключів, двох джерел живлення і складнішою схеми управління. У системах, де такі джерела вже є, метод може виявитися досить дешевим. Ще однією труднощами є неможливість визначення моменту часу t1 для загального випадку. Для двигуна з меншою індуктивністю обмоток швидкість наростання струму вище і при фіксованому t 1 середній струм може виявитися вище номінального, що може призвести до перегріву двигуна.

Ще одним методом стабілізації струму в обмотках двигуна є ключове (широтно-імпульсне) регулювання. Сучасні драйвери крокових двигунів використовують цей метод. Ключовий стабілізатор забезпечує високу швидкість наростання струму в обмотках разом із простотою його регулювання та дуже низькими втратами. Ще однією перевагою схеми з ключовою стабілізацією струму є те, що вона підтримує момент двигуна постійним, незалежно від коливань напруги живлення. Це дозволяє використовувати прості та дешеві нестабілізовані джерела живлення.

Для забезпечення високої швидкості наростання струму використовують напругу джерела живлення, яка в кілька разів перевищує номінальну. Шляхом регулювання шпаруватості імпульсів, середня напруга та струм підтримуються на номінальному для обмотки рівні. Підтримка здійснюється внаслідок дії зворотного зв'язку. Послідовно з обмоткою включається резистор - датчик струму R (рис. 22а). Падіння напруги на цьому резистори пропорційно струму в обмотці. Коли струм досягає встановленого значення, ключ вимикається, що призводить до падіння струму. Коли струм спадає до нижнього порогу, ключ знову вмикається. Цей процес періодично повторюється, підтримуючи середнє значення струму постійним.

Мал. 22. Різні схеми ключової стабілізації струму.

Керуючи величиною Uref можна регулювати струм фази, наприклад, збільшувати його при розгоні та гальмуванні та знижувати при роботі на постійній швидкості. Можна також задавати його за допомогою ЦАП у формі синусоїди, реалізуючи таким чином мікрокроковий режим. Такий спосіб управління ключовим транзистором забезпечує постійну величину пульсацій струму в обмотці, що визначається гістерезисом компаратора. Однак частота перемикань залежатиме від швидкості зміни струму в обмотці, зокрема від її індуктивності та від напруги живлення. Крім того, дві такі схеми, що живлять різні фази двигуна, не можуть бути засинхронізовані, що може спричинити додаткові перешкоди.

Від зазначених недоліків вільна схема із постійною частотою перемикання (рис. 22б). Ключовим транзистором управляє тригер, який встановлюється спеціальним генератором. Коли встановлюється тригер, ключовий транзистор відкривається і струм фази починає зростати. Разом із ним зростає і падіння напруги на датчику струму. Коли воно досягає опорної напруги, компаратор перемикається, скидаючи тригер. Ключовий транзистор при цьому вимикається і струм фази починає спадати доти, поки тригер не буде знову встановлений генератором. Така схема забезпечує постійну частоту комутації, проте величина пульсацій струму буде постійної. Частота генератора зазвичай вибирається не менше 20кГц, щоб двигун не створював чутного звуку. В той же час занадто висока частота перемикань може викликати підвищені втрати в осерді двигуна і втрати на перемиканнях транзисторів. Хоча втрати в осерді з підвищенням частоти зростають не так швидко через зменшення амплітуди пульсацій струму зі зростанням частоти. Пульсації близько 10% від середнього значення струму зазвичай не викликають проблем із втратами.

Подібна схема реалізована всередині мікросхеми L297 фірми SGS-Thomson, застосування якої мінімізує кількість зовнішніх компонентів. Ключове регулювання реалізують інші спеціалізовані мікросхеми.

Мал. 23. Форма струму в обмотках двигуна для різних способів живлення.

На рис. 23 показана форма струму в обмотках двигуна для трьох способів живлення. Найкращим у значенні моменту є ключовий метод. До того ж, він забезпечує високий ККД і дозволяє просто регулювати величину струму.

Швидкий та повільний спад струму

На рис. 19 були показані конфігурації ключів H-мосту для включення різних напрямків струму в обмотці. Для вимикання струму можна вимкнути всі ключі H-моста або залишити один ключ увімкненим (рис. 24). Ці дві ситуації різняться за швидкістю спаду струму в обмотці. Після відключення індуктивності від джерела живлення струм не може миттєво припиниться. Виникає ЕРС самоіндукції, що має протилежне джерелу живлення напрямок. При використанні транзисторів як ключі необхідно використовувати шунтуючі діоди, щоб забезпечити провідність в обидві сторони. Швидкість зміни струму в індуктивності пропорційна прикладеної напруги. Це справедливо як наростання струму, так його спаду. Тільки першому випадку джерелом енергії є джерело живлення, тоді як у другому сама індуктивність віддає запасену енергію. Цей процес може відбуватися за різних умов.

Мал. 24. Повільний та швидкий спад струму.

На рис. 24а показано стан ключів H-мосту, коли обмотка увімкнена. Увімкнені ключі A і D, напрямок струму показано стрілкою. На рис. 24б обмотка вимкнена, але ключ A увімкнено. ЕРС самоіндукції коротшає через цей ключ і діод VD3. У цей час на висновках обмотки буде невелика напруга, що дорівнює прямому падінню на діоді плюс падіння на ключі (напруга насичення транзистора). Так як напруга на висновках обмотки мало, малою буде швидкість зміни струму. Відповідно малою буде швидкість спадання магнітного поля. А це означає, що ще деякий час статор двигуна буде створювати магнітне поле, якого в цей час бути не повинно. На ротор, що обертається, це поле надаватиме гальмуючий вплив. При високих швидкостях роботи двигуна цей ефект може серйозно перешкодити нормальній роботі двигуна. Швидке спадання струму при вимкненні є дуже важливим для високошвидкісних контролерів, які працюють у напівкроковому режимі.

Можливий інший спосіб відключення струму обмотки, коли розмикаються всі ключі H-моста (рис 24в). При цьому ЕРС самоіндукції коротшає через діоди VD2, VD3 на джерело живлення. Це означає, що під час спаду струму на обмотці буде напруга, що дорівнює сумі напруги джерела живлення та прямого падіння на двох діодах. У порівнянні з першим випадком, це значно більша напруга. Відповідно, швидшим буде спад струму та магнітного поля. Таке рішення, що використовує напругу джерела живлення для прискорення спаду струму, є найпростішим, але не єдиним. Потрібно сказати, що у ряді випадків на джерелі живлення можуть з'явитися викиди, для придушення яких знадобляться спеціальні демферні ланцюги. Все одно, яким способом забезпечується на обмотці підвищена напруга під час спаду струму. Для цього можна застосувати стабілітрони або варистори. Однак на цих елементах розсіюватиметься додаткова потужність, яка в першому випадку віддавалася назад у джерело живлення.

Для уніполярного двигуна ситуація складніша. Справа в тому, що половинки обмотки або дві окремі обмотки однієї фази сильно пов'язані між собою. В результаті цього зв'язку на транзисторі, що закривається, матимуть місце викиди підвищеної амплітуди. Тому транзистори мають бути захищені спеціальними ланцюжками. Ці ланцюжки задля забезпечення швидкого спаду струму повинні забезпечувати досить високу напругу обмеження. Найчастіше застосовуються діоди разом із стабілітронами або варисторами. Один із способів схемотехнічної реалізації показаний на рис. 25.

Мал. 25. Приклад реалізації швидкого спаду струму уніполярного двигуна.

При ключовому регулюванні величина пульсацій струму залежить від швидкості спаду. Тут можливі різні варіанти.

Якщо забезпечити закорочення обмотки діодом, буде реалізовано повільний спад струму. Це призводить до зменшення амплітуди пульсацій струму, що є бажаним, особливо при роботі двигуна в мікрокроковому режимі. Для цього рівня пульсацій повільний спад струму дозволяє працювати на нижчих частотах ШІМ, що зменшує нагрівання двигуна. З цих причин повільний спад струму широко використовується. Однак існує кілька причин, через які повільне наростання струму не завжди є оптимальним: по-перше, через негативну зворотну ЕРС, зважаючи на малу напругу на обмотці під час спаду струму, реальний середній струм обмотки може виявитися завищеним; по-друге, коли потрібно різко зменшити струм фази (наприклад, у напівкроковому режимі), повільний спад не дозволить зробити це швидко; по-третє, коли потрібно встановити дуже низьке значення струму фази, регулювання може порушитись через існування обмеження на мінімальний час включеного стану ключів.

Висока швидкість спаду струму, що реалізується шляхом замикання обмотки на джерело живлення, призводить до підвищених пульсацій. Водночас усуваються недоліки, властиві повільному спаду струму. Однак при цьому точність підтримки середнього струму менша, також більше втрати.

Найбільш досконалі мікросхеми драйверів мають можливість регулювати швидкість спаду струму.

Практична реалізація драйверів

Драйвер крокового двигуна повинен вирішувати дві основні завдання: це формування необхідних часових послідовностей сигналів та забезпечення необхідного струму в обмотках. В інтегральних реалізаціях ці завдання виконуються різними мікросхемами. Прикладом може бути комплект мікросхем L297 і L298 фірми SGS-Thomson. Мікросхема L297 містить логіку формування часових послідовностей, а L298 є потужним здвоєним H-містом. На жаль, існує деяка плутанина у термінології щодо подібних мікросхем. Поняття «драйвер» часто застосовують до багатьох мікросхем, навіть якщо їх функції дуже різняться. Іноді мікросхеми логіки називають "трансляторами". У цій статті далі використовуватиметься така термінологія: «контролер» - мікросхема, відповідальна формування тимчасових послідовностей; "драйвер" - потужна схема живлення обмоток двигуна. Однак терміни "драйвер" і "контролер" можуть також позначати закінчений пристрій керування кроковим двигуном. Останнім часом все частіше контролер і драйвер об'єднуються в одній мікросхемі.

На практиці можна обійтися без спеціалізованих мікросхем. Наприклад, всі функції контролера можна реалізувати програмно, а як драйвер застосувати набір дискретних транзисторів. Однак при цьому мікроконтролер буде сильно завантажений, а схема драйвера може вийти громіздкою. Незважаючи на це, у деяких випадках таке рішення буде економічно вигідним.
Найпростіший драйвер потрібен для керування обмотками уніполярного двигуна. Для цього підходять найпростіші ключі, які можуть бути використані біполярні або польові транзистори. Досить ефективними є потужні МОП-транзистори, керовані логічним рівнем, такі як IRLZ34, IRLZ44, IRL540. У них опір у відкритому стані менше 0.1ом та допустимий струм порядку 30А. Ці транзистори мають вітчизняні аналоги КП723Г, КП727В та КП746Г відповідно. Існують також спеціальні мікросхеми, які містять усередині кілька потужних транзисторних ключів. Прикладом може бути мікросхема ULN2003 фірми Allegro (наш аналог К1109КТ23), яка містить 7 ключів з максимальним струмом 0.5 А. Принципова схема одного осередку цієї мікросхеми наведена на рис. 26.

Мал. 26. Принципова схема одного осередку мікросхеми ULN2003.

Аналогічні мікросхеми випускаються багатьма фірмами. Ці мікросхеми придатні не тільки для живлення обмоток крокових двигунів, але і для живлення будь-яких інших навантажень. Крім простих мікросхем драйверів існують і складніші мікросхеми, що мають вбудований контролер, PWM-регулювання струму і навіть ЦАП для мікрокрокового режиму.

Як зазначалося раніше, керувати біполярними двигунами потрібні складніші схеми, такі як H-мости. Такі схеми також можна реалізувати на дискретних елементах, хоча останнім часом все частіше вони реалізуються на інтегральних схемах. Приклад дискретної реалізації показано на рис. 27.

Мал. 27. Реалізація мостового драйвера на дискретних компонентах.

Такий H-міст управляється за допомогою двох сигналів, тому він не дозволяє забезпечити всіх можливих комбінацій. Обмотка запитана, коли рівні на входах різні та закорочена, коли рівні однакові. Це дозволяє отримати лише повільний спад струму (динамічний гальмування). Мостові драйвери в інтегральному виконанні випускаються багатьма фірмами. Прикладом можуть бути L293 (КР1128КТ3А) та L298 фірми SGS-Thomson.

Донедавна велику кількість мікросхем для керування кроковими двигунами випускала фірма Ericsson. Однак 11 червня 1999 вона передала виробництво своїх мікросхем індустріального призначення фірмі New Japan Radio Company (New JRC). При цьому позначення мікросхеми змінилися з PBLxxxx на NJMxxxx.

Як прості ключі, так і H-мости можуть становити частину ключового стабілізатора струму. Схема керування ключами може бути виконана на дискретних компонентах або у вигляді спеціалізованої мікросхеми. Доволі популярною мікросхемою, що реалізує ШІМ-стабілізацію струму, є L297 фірми SGS-Thomson. Спільно з мікросхемою мостового драйвера L293 або L298 вони утворюють закінчену систему керування крокового двигуна (рис. 28).

Мал. 28. Типова схема включення мікросхем L297 та L298N.

Мікросхема L297 сильно розвантажує керуючий мікроконтролер, так як від нього вимагається тільки тактова частота CLOCK (частота повторення кроків) і кілька статичних сигналів: DIRECTION - напрямок (сигнал внутрішньо синхронізований, перемикати можна в будь-який момент), HALF/FULL - напівкроковий/повноваговий режим, RESET – встановлює фази у вихідний стан (ABCD = 0101), ENABLE – дозвіл роботи мікросхеми, V ref – опорна напруга, яка задає пікову величину струму при ШІМ-регулюванні. З іншого боку, є кілька додаткових сигналів. Сигнал CONTROL визначає режим роботи ШИМ-регулятора. При його низькому рівні ШІМ-регулювання відбувається за виходами INH1, INH2, а за високого - за виходами ABCD. SYNC – вихід внутрішнього тактового генератора ШІМ. Він служить для синхронізації роботи кількох мікросхем. Також може бути використаний як вхід при тактуванні зовнішнього генератора. HOME – сигнал початкового положення (ABCD = 0101). Він використовується для синхронізації перемикання режимів HALF/FULL. Залежно від моменту переходу в повнокроковий режим мікросхема може працювати в режимі з однією включеною фазою або двома включеними фазами.

Ключове регулювання реалізують і багато інших мікросхем. Деякі мікросхеми мають ті чи інші особливості, наприклад драйвер LMD18T245 фірми National Semiconductor не вимагає застосування зовнішнього датчика струму, так як він реалізований всередині на основі одного осередку ключового МОП-транзистора.

Деякі мікросхеми призначені спеціально для роботи в мікрокроковому режимі. Прикладом може бути мікросхема A3955 фірми Allegro. Вона має вбудований 3-бітний нелінійний ЦАП для завдання змінюється за синусоїдальним законом струму фази.

Мал. 29. Струм і вектор зміщення ротора.

Зміщення ротора залежно від струмів фаз, які сформовані цим 3-бітним ЦАПом, показано на рис. 29. Мікросхема A3972 має вбудований 6-бітовий лінійний ЦАП.

Вибір типу драйвера

Максимальний момент і потужність, яку може забезпечити на валу кроковий двигун, залежить від розмірів двигуна, умов охолодження, режиму роботи (відносини робота/пауза), від параметрів обмоток двигуна та від типу драйвера, що використовується. Тип драйвера, що застосовується, сильно впливає на потужність на валу двигуна. При одній і тій же потужності, що розсіюється, драйвер з імпульсною стабілізацією струму забезпечує виграш в моменті на деяких швидкостях до 5 - 6 разів, в порівнянні з живленням обмоток номінальною напругою. Також розширюється діапазон допустимих швидкостей.

Технологія приводів з урахуванням крокових двигунів постійно розвивається. Розвиток спрямовано отримання найбільшого моменту на валу при мінімальних габаритах двигуна, широких швидкісних можливостей, високого ККД і поліпшеної точності. Важливою ланкою цієї технології є застосування мікрокрокового режиму.

Насправді важливим є час розробки приводу з урахуванням крокового двигуна. Розробка спеціалізованої конструкції для кожного конкретного випадку потребує значних витрат часу. З цього погляду краще застосовувати універсальні схеми управління на основі PWM стабілізації струму, незважаючи на їх більш високу вартість.

Практичний приклад контролера крокового двигуна на основі мікроконтролера сімейства AVR

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

Пропонований контролер призначений для керування уніполярним кроковим двигуном із середнім струмом кожної обмотки до 2.5А. Контролер може використовуватися з поширеними кроковими двигунами типу ДШІ-200-1, -2, -3. Його також можна використовувати і для управління менш потужними двигунами, наприклад, тими, що застосовувалися для позиціонування головок в 5-дюймових дисководах. При цьому схему можна спростити, відмовившись від паралельного включення ключових транзисторів і ключової стабілізації струму, так як для малопотужних двигунів досить простого L/R-живлення.

Мал. 30. Принципова схема контролера крокового двигуна.

Основою пристрою (рис. 30) є мікроконтролер U1 типу AT90S2313 фірми Atmel. Сигнали управління обмотками двигуна формуються на портах PB4 – PB7 програмно. Для комутації обмоток використовуються два включених паралельно польових транзистора типу КП505А, всього 8 транзисторів (VT1 - VT8). Ці транзистори мають корпус TO-92 і можуть комутувати струм до 1.4А, опір каналу становить близько 0.3 ома. Для того, щоб транзистори залишалися закритими під час дії сигналу "скидання" мікроконтролера (порти в цей час знаходяться у високоімпедансному стані), між затворами та витоками включені резистори R11 - R14. Для обмеження струму перезаряджання ємності затворів встановлені резистори R6 - R9. Даний контролер не претендує на високі швидкісні характеристики, тому влаштовує повільний спад струму фаз, який забезпечується шунтуванням обмоток двигуна діодами VD2 - VD5. Для підключення крокового двигуна є 8-контактний роз'єм XP3, який дозволяє підключити двигун, що має два окремі виводи від кожної обмотки (як, наприклад, ДШІ-200). Для двигунів з внутрішнім з'єднанням обмоток один або два спільні контакти роз'єму залишаться вільними.

Необхідно відзначити, що контролер може бути використаний для керування двигуном з великим середнім струмом фаз. Для цього необхідно замінити транзистори VT1 ​​- VT8 і діоди VD2 - VD5 більш потужними. Причому у разі паралельне включення транзисторів можна використовувати. Найбільш підходящими є МОП-транзистори, керовані логічним рівнем. Наприклад, це КП723Г, КП727В та інші.

Стабілізація струму здійснюється за допомогою ШІМ, яка також реалізована програмно. Для цього використовуються два датчики струму R15 та R16. Сигнали, зняті з датчиків струму, через ФНЧ R17C8 та R18C9 надходять на входи компараторів U3A та U3B. ФНЧ запобігають хибним спрацьовуванням компараторів внаслідок дії перешкод. На другий вхід кожного компаратора має бути подана опорна напруга, яка визначає піковий струм в обмотках двигуна. Ця напруга формується мікроконтролером за допомогою вбудованого таймера, що працює в режимі 8-бітної ШІМ. Для фільтрації сигналу ШІМ використовується дволанковий ФНЧ R19C10R22C11. Одночасно резистори R19, R22 і R23 утворюють дільник, який визначає масштаб регулювання струмів фаз. В даному випадку максимальний піковий струм, що відповідає коду 255, вибрано 5.11А, що відповідає напрузі 0.511В на датчиках струму. Враховуючи той факт, що постійна складова на виході ШІМ змінюється від 0 до 5В, необхідний коефіцієнт розподілу дорівнює приблизно 9.7. Виходи компараторів підключені до входів переривань мікроконтролера INT0 та INT1.

Для керування роботою двигуна є два логічні входи: FWD (вперед) і REW (назад), підключених до гнізда XP1. При подачі НИЗЬКОГО логічного рівня однією з цих входів, двигун починає обертатися на заданої мінімальної швидкості, поступово розганяється із заданим постійним прискоренням. Розгін завершується, коли двигун досягає заданої робочої швидкості. Якщо подається команда зміни напрямку обертання, двигун з тим самим прискоренням гальмується, потім реверсується та знову розганяється.

Крім командних входів, є два входи для кінцевих вимикачів, підключених до гнізда XP2. Кінцевий вимикач вважається таким, що спрацював, якщо на відповідному вході присутній НИЗЬКИЙ логічний рівень. При цьому обертання у цьому напрямі заборонено. При спрацюванні кінцевого вимикача під час обертання двигуна він переходить до гальмування із заданим прискоренням, а потім зупиняється.

Командні входи та входи кінцевих вимикачів захищені від перенапруг ланцюжками R1VD6, R2VD7, R3VD8 та R4VD9, що складаються з резистора та стабілітрона.

Живлення мікроконтролера формується за допомогою мікросхеми стабілізатора 78LR05, яка одночасно виконує функції монітора живлення. При зниженні напруги живлення нижче встановленого порога ця мікросхема формує для контролера сигнал «скидання». Живлення на стабілізатор подається через діод VD1, який разом із конденсатором C6 зменшує пульсації, викликані комутаціями щодо потужного навантаження, яким є кроковий двигун. Живлення на плату подається через 4-контактний роз'єм XP4, контакти якого задубльовані.

Демонстраційна версія програми дозволяє здійснювати розгін та гальмування двигуна з постійним прискоренням, а також обертання на постійній швидкості у повнокроковому чи напівкроковому режимі. Ця програма містить весь потрібний набір функцій і може бути використана як базова для написання спеціалізованих програм. Тому має сенс розглянути її структуру докладніше.

Головним завданням програми є формування імпульсних послідовностей для 4 обмоток двигуна. Оскільки для цих послідовностей часові співвідношення є критичними, формування виконується в обробнику переривання таймера 0. Можна сказати, основну роботу програма робить саме в цьому обробнику. Блок-схема обробника наведено на рис. 31.

Мал. 31. Блок-схема оброблювача переривання таймера 0.

Безперечно, було б зручніше використовувати таймер 1, оскільки він 16-розрядний і здатний викликати періодичні переривання збігу з автоматичним обнуленням. Однак він зайнятий формуванням за допомогою ШІМ опорної напруги компараторів. Тому доводиться перезавантажувати таймер 0 у перериванні, що вимагає деякого коригування величини, що завантажується і викликає деякий джиттер, який, однак, на практиці не заважає. Як основна часова база обраний інтервал 25мкс, який і формується таймером. З такою дискретністю можуть формуватися тимчасові послідовності фаз, такий же період має ШІМ стабілізації струму у фазах двигуна.

Для формування періоду повторення кроків використовується 16-розрядний програмний таймер STCNT. На відміну від таймера 0, його завантажувальна величина не є константою, оскільки саме вона визначає швидкість обертання двигуна. Таким чином, перемикання фаз відбувається лише при переповненні програмного таймера.

Послідовність чергування фаз задана таблично. У пам'яті програм мікроконтролера є три різних таблиці: для повнокрокового режиму без перекриття фаз, повнокрокового з перекриттям і напівкрокового режиму. Усі таблиці мають однакову довжину 8 байт. Потрібна таблиця на початку роботи завантажується в ОЗУ, що дозволяє найпростіше переходити між різними режимами роботи двигуна. Вибірка значень з таблиці відбувається за допомогою покажчика PHASE, тому перемикання напрямку обертання двигуна також здійснюється дуже просто: для обертання вперед потрібно інкрементувати покажчик, а для обертання назад - декрементувати.

Найголовніша змінна в програмі - це 24-бітна знакова змінна VC, яка містить значення поточної швидкості. Знак цієї змінної визначає напрямок обертання, а значення - частоту проходження кроків. Нульове значення цієї змінної свідчить, що двигун зупинено. Програма в цьому випадку вимикає струм всіх фаз, хоча в багатьох додатках у цій ситуації потрібно залишити включеними поточні фази і лише трохи зменшити їхній струм, забезпечивши цим утримання положення двигуна. За потреби таку зміну логіки роботи програми зробити дуже просто.

Таким чином, у разі переповнення програмного таймера STCNT відбувається аналіз значення змінної VC, у разі позитивного значення покажчик PHASE інкрементується, а у разі негативного декрементується. Потім із таблиці вибирається чергова комбінація фаз, яка виводиться в порт. У разі нульового значення VC покажчик PHASE не змінюється, і порт виводяться всі нульові значення.

Величина T, якою слід завантажувати таймер STCNT однозначно пов'язана зі значенням змінної VC. Однак переведення частоти в період займає досить багато часу, тому ці обчислення виробляються в основній програмі, і не на кожному кроці, а набагато рідше. Взагалі, ці обчислення потрібно періодично проводити лише під час розгону чи гальмування. За інших випадках швидкість, і, період повторення кроків, не змінюються.

Для здійснення ШІМ-стабілізації струму фази повинні періодично включатися, а потім, досягши струмом заданого рівня, вимикатися. Періодичне включення проводиться у перериванні таймера 0, для чого навіть у разі відсутності переповнення програмного таймера STCNT порт виводиться поточна комбінація фаз. Відбувається це з періодом 25мкс (що відповідає частоті ШІМ 40кГц). Вимкненням фаз керують компаратори, виходи яких підключені до входів переривання INT0 та INT1. Переривання дозволяються після того, як струм фаз вмикається, і забороняються відразу після перемикання компараторів. Це виключає їхню повторну обробку. У обробниках переривань відбувається лише відключення відповідних фаз (рис. 32).

Мал. 32. Блок-схема обробника переривань INT0 та INT1.

Процеси, що відбуваються при ШІМ-стабілізації струму, показано на рис. 33. Особливо слід зазначити, що струм датчика струму має переривчастий характер навіть у тому випадку, якщо струм обмотки не переривається. Це пов'язано з тим, що під час спаду струму його шлях не проходить через датчик струму (а проходить через діод).

Мал. 33. Процес ШІМ-стабілізації струму.

Потрібно сказати, що аналогова частина системи ШІМ-стабілізації струму фаз двигуна є досить "примхливою". Справа в тому, що сигнал, який знімається з датчика струму, містить велику кількість перешкод. Перешкоди виникають в основному в моменти комутації обмоток двигуна, причому як "своєї", так і "чужої" фази. Для правильної роботи схеми потрібне коректне розведення друкованої плати, особливо це стосується земляних провідників. Можливо доведеться підібрати номінали ФНЧ на вході компаратора або навіть ввести в компаратор невеликий гістерезис. Як зазначалося вище, при управлінні малопотужними двигунами від ШИМ-стабілізації струму можна відмовитися, застосувавши звичайну L/R-схему живлення обмоток. Для виключення ШІМ-стабілізації досить просто не підключати входи INT0 та INT1 мікроконтролера, природно, при цьому можна взагалі не встановлювати компаратор та датчики струму.

У цій програмі періодичність обчислення нових значень швидкості та періоду обрана рівною 15.625мс. Таке значення вибрано невипадково. Цей інтервал становить 1/64с, а головне він містить ціле число періодів переповнення таймера 0 (25мкс). Зручно, якщо значення швидкості прискорення задаються в природних одиницях, тобто. у кроках за секунду та у кроках, поділених на секунду у квадраті. Для того, щоб мати можливість у цілісній арифметиці обчислювати миттєву швидкість 64 рази на секунду, потрібно перейти до внутрішнього уявлення швидкості, збільшеного в 64 рази. Множення та розподіл на 64 зводиться до звичайних зрушень і тому потребує дуже мало часу. Задану періодичність обчислень забезпечує ще один програмний таймер URCNT, який декрементується у перериванні таймера 0 (раз на 25мкс). Цей таймер завжди завантажується постійною величиною, що забезпечує постійний період його переповнень, що дорівнює 15.625мс. При переповненні цього таймера встановлюється бітовий прапор UPD, який сигналізує основний програмі, що «пора-обновити значення швидкості і періоду».

Основна програма (рис. 34) виконує обчислення миттєвих значень швидкості та періоду проходження кроків, забезпечуючи необхідну криву розгону. У разі розгін і гальмування здійснюються з постійним прискоренням, тому швидкість змінюється лінійно. Період у своїй змінюється за гіперболічним законом, та її обчислення - основна робота програми.

Мал. 34. Блок-схема основного циклу програми.

Оновлення значень швидкості та періоду проходження кроків основна програма робить періодично, періодичність задається прапором UPD. Оновлення програма робить на основі порівняння значень двох змінних: миттєвої швидкості VC та необхідної швидкості VR.

Значення необхідної швидкості також визначається основною програмою. Це робиться на основі аналізу керуючих сигналів та сигналів з кінцевих вимикачів. Залежно від цих сигналів основна програма завантажує змінну VR значенням необхідної швидкості. У цій програмі це V для руху вперед, V для руху назад і 0 для зупинки. У загальному випадку, набір швидкостей (а також прискорень і струмів фаз) може бути як завгодно більшим, залежно від вимог.

Якщо швидкості VC і VR рівні, то кроковий двигун працює в стаціонарному режимі і оновлення не потрібно. Якщо ж швидкості не рівні, значення VC із заданим прискоренням наближається до VR, тобто. двигун пришвидшується (або уповільнюється) до досягнення номінальної швидкості. Якщо навіть знаки VR і VC відрізняються, двигун уповільнюється, реверсується і потім досягає необхідної швидкості. Відбувається це як би само собою, завдяки структурі програми.

Якщо при черговій перевірці виявляється, що швидкості VR і VC не рівні, то значення VC додається (або віднімається) значення прискорення A. Якщо в результаті цієї операції відбувається перевищення необхідної швидкості, то отримане значення коригується шляхом заміни на точне значення необхідної швидкості.

Потім відбувається обчислення періоду T (рис. 35).

Мал. 35. Блок-схема підпрограми обчислення періоду.

Спочатку обчислюється модуль поточної швидкості. Потім відбувається обмеження мінімальної швидкості. Це обмеження потрібне з двох причин. По-перше, нескінченно малої швидкості відповідає нескінченно великий період, що викликає помилку в обчисленнях. По-друге, крокові двигуни мають досить протяжну швидкість зону старту, тому немає необхідності стартувати на дуже маленькій швидкості, тим більше що обертання на малих швидкостях викликає підвищений шум і вібрацію. Значення мінімальної швидкості VMIN має вибиратися виходячи з конкретного завдання та типу двигуна. Після обмеження мінімальної швидкості провадиться обчислення періоду за формулою T = 2560000/|VC|. На перший погляд формула не очевидна, але якщо врахувати, що період необхідно отримати в 25мкс-інтервалах, а внутрішнє уявлення VC - це помножене на 64 її справжнє значення, все стає на свої місця. При обчисленні T потрібна операція беззнакового поділу формату 24/24, яке AVR на тактовій частоті 10МГц робить приблизно 70мкс. Враховуючи, що обчислення періоду відбуваються не частіше, ніж один раз на 15.625мс, завантаження процесора виходить дуже низьким. Основне завантаження робить переривання таймера 0, та й воно в основному виконується по короткій гілці (без переповнення STCNT) тривалістю приблизно 3мкс, що відповідає 12% завантаження процесора. Це означає, що є значні резерви обчислювальних ресурсів.

Друкована плата контролера крокового двигуна наведена на рис. 36.

Мал. 36. Друкована плата контролера крокового двигуна.

Наведена демонстраційна програма не має багатьох функцій, які мають бути присутніми у закінченому контролері крокового двигуна. Реалізація цих функцій залежить від особливостей застосування конкретного крокового двигуна і навряд чи може бути зроблена універсальною. У той самий час наведена програма може бути основою написання спеціальних програм, які мають тим чи іншим набором можливостей. Наприклад, на основі цієї плати створено низку спеціалізованих контролерів крокових двигунів. Одна з моделей такого контролера має такі можливості:

  • максимальна частота комутації фаз 3 Кгц
  • розгін із постійним прискоренням
  • програмований напрямок обертання
  • Контролер графічного РКІ високого дозволу




Драйвер крокового двигуна- Електронний пристрій, який змушує "крочати" . Стандартом де-факто у сфері управління ШД є . STEP це сигнал кроку, DIR це сигнал напрямку обертання, ENABLE це сигнал увімкнення драйвера.

Більш наукове визначення - драйвер крокового двигуна це електронний силовий пристрій, який на підставі цифрових сигналів управління керує сильноточними/високовольтними обмотками крокового двигуна і дозволяє кроковому двигуну робити кроки (обертатися).

Керувати ШД набагато складніше ніж звичайним колекторним двигуном - потрібно у певній послідовності перемикати напруги в обмотках з одночасним контролем струму. Тому для управління ШД розроблені спеціальні пристрої – драйвери ШД. Драйвер ШД дозволяє керувати обертанням ротора ШД відповідно до сигналів управління та електронним чином ділити фізичний крок ШД на дрібніші дискрети.

До драйвера ШД підключається джерело живлення, сам ШД (його обмотки) та сигнали управління. Стандартом по сигналах управління є керування сигналами STEP/DIR або CW/CCW та сигнал ENABLE.

Протокол STEP/DIR:

Сигнал STEP – Тактуючий сигнал, сигнал кроку. Один імпульс призводить до повороту ротора ШД на один крок (не фізичний крок ШД, а виставлений крок на драйвері - 1:1, 1:8, 1:16 і т.д.). Зазвичай драйвер відпрацьовує крок по передньому або задньому фронті імпульсу.

Сигнал DIR – Потенційний сигнал, сигнал напрямку. Логічна одиниця – ШД обертається за годинниковою стрілкою, нуль – ШД обертається проти годинникової стрілки, або навпаки. Інвертувати сигнал DIR зазвичай можна або з програми управління або поміняти місцями підключення фаз ШД у роз'єм підключення драйвері.

Протокол CW/CCW:

Сигнал CW – Тактуючий сигнал, сигнал кроку. Один імпульс призводить до повороту ротора ШД на один крок (не фізичний крок ШД, а виставлений крок на драйвері - 1:1, 1:8, 1:16 і т. д.) за годинниковою стрілкою. Зазвичай драйвер відпрацьовує крок по передньому або задньому фронті імпульсу.

Сигнал CW – Тактуючий сигнал, сигнал кроку. Один імпульс призводить до повороту ротора ШД на один крок (не фізичний крок ШД, а виставлений крок на драйвері - 1:1, 1:8, 1:16 і т. д.) проти годинникової стрілки. Зазвичай драйвер відпрацьовує крок по передньому або задньому фронті імпульсу.

Сигнал ENABLE - Потенційний сигнал, сигнал увімкнення/вимкнення драйвера. Зазвичай логіка роботи така: логічна одиниця (подано 5В на вхід) - драйвер ШД вимкнено та обмотки ШД знеструмлено, нуль (нічого не подано або 0В на вхід) - драйвер ШД включено та обмотки ШД запитані.

Драйвери ШД можуть мати додаткові функції:

Контролює навантаження по струму.

Контролює перевищення напруги живлення, захист від ефекту зворотної ЕРС від ШД. При уповільненні обертання ШД виробляє напругу, яка складається з напругою живлення і короткочасно збільшує його. При швидшому уповільненні, напруга зворотної ЕРС більше і більше стрибок напруги живлення. Цей стрибок напруги живлення може призвести до виходу з ладу драйвера, тому драйвер має захист від стрибків напруги живлення. При перевищенні граничного значення напруги живлення драйвер вимикається.

Контролює переполюсування при підключенні сигналів керування та живильної напруги.

Режим автоматичного зниження струму обмотки при простої (відсутності сигналу STEP) для зниження нагріву ШД та споживаного струму (режим AUTO-SLEEP).

Автоматичний компенсатор середньочастотного резонансу ШД. Резонанс зазвичай проявляється у діапазоні 6-12 об/сек, ШД починає гудіти і ротор зупиняється. Початок і сила резонансу залежить від параметрів ШД та його механічного навантаження. Автоматичний компенсатор середньочастотного резонансу дозволяє повністю виключити резонування ШД та зробити його обертання рівномірним та стійким у всьому діапазоні частот.

Схему зміни форми фазових струмів із збільшенням частоти (морфінг, перехід із режиму мікрокроку в режим кроку зі збільшенням частоти). ШД здатний віддати заявлений у ТХ момент лише в режимі повного кроку, тому у звичайному драйвері ШД без морфінгу при використанні мікрокроку ШД працює на 70% максимальної потужності. Драйвер ШД з морфінгом дозволяє отримати від ШД максимальну віддачу на момент у всьому діапазоні частот.

Вбудований генератор частоти STEP – зручна функція для пробного запуску драйвера без підключення до ПК або іншого зовнішнього генератора STEP. Також генератор буде корисним для побудови простих систем переміщення без застосування ПК.