Przejdź do treści

Sterownik silników DC robota czterokołowego

Do sterowania napędami robota czterokołowego został zaprojektowany i wykonany dedykowany sterownik. Robot posiada cztery niezależnie sterowane koła, napędzane szczotkowymi silnikami prądu stałego (DC). Prędkości kół robota są synchronizowane, szczególnie te położone po jednej stronie ramy, aby zminimalizować niepotrzebne poślizgi i straty energii. Dodatkowo, moduł musi obsługiwać cztery enkodery inkrementalne.

motors_controller_diagram

Schemat blokowy sterownika silników

Sterownik składa się z następujących bloków:

  • blok mikrokontrolera,
  • stopień mocy oparty na mostkach H,
  • blok pomiaru prądu silników,
  • blok enkoderów magnetycznych.

Sterownik został oparty na mikrokontrolerze Freescale/NXP Kinetis MKL15Z32VLH4. Posiada on rdzeń ARM Cortex M0+, taktowany z częstotliwością 48 MHz. Liczne układy peryferyjne mikrokontrolera ułatwiły implementację algorytmu sterowania poszczególnymi silnikami. Oprogramowanie mikrokontrolera napisane zostało w języku C. Wykorzystano środowisko programistyczne Freescale CodeWarrior v10.4 wraz z narzędziem Processor Expert.

Jako mostki H (H-Bridge) wykorzystano układy TB6569FG produkowane przez firmę Toshiba. Charakteryzują się one szczytowymi prądami obciążenia na poziomie 4,5 A, przy czym średnie prądy nie powinny przekraczać 1,5 A. Dopuszczalne napięcia mieszczą się w przedziale od 10 V do 50 V. Dodatkowo, układy posiadają wiele zabezpieczeń, między innymi:

  • zabezpieczenie termiczne,
  • zabezpieczenie nadprądowe (z możliwością zmiany parametrów wykrywania zbyt wysokich prądów),
  • zabezpieczenie przed zbyt wysokim napięciem zasilającym,
  • zabezpieczenie przed zbyt niskim napięciem zasilającym.

W przypadku aktywacji któregoś z zabezpieczeń wyjście układu typu otwarty-dren (Open-drain), oznaczone jako ALERT przechodzi w stan wysokiej impedancji. W sterowniku, ze względu na przekroczenie dopuszczalnych prądów mostków H przez użyte w robocie silniki Pololu 37D, zdecydowano się wykorzystać po dwa mostki połączone równolegle na każdy silnik.

Do pomiaru prądu pobieranego przez silniki wykorzystano układy ACS712 produkcji Allegro MicroSystems. Zasada działania czujników oparta jest na pomiarze natężenia pola elektromagnetycznego powstającego w przewodniku, przez który przepływa prąd. Dodatkową zaletą tych układów jest separacja galwaniczna między mierzonym sygnałem i częścią logiczną. Wynik pomiaru zwracany jest w postaci analogowej. W celu konwersji do postaci cyfrowej, wykorzystuje się przetwornik analogowo-cyfrowy będący jednym z peryferiów mikrokontrolera.

Pomiar prędkości obrotowej kół

Pomiar prędkości obrotowej kół robota zrealizowano z wykorzystaniem enkodera magnetycznego AS5306 produkcji Austria Microsystems. W celu obliczenia prędkości obrotowej wymagana jest znajomość częstotliwości sygnału kwadraturowego. Zdecydowano się na metodę pomiaru, w której zlicza się impulsy wejściowe w ustalonym okresie czasu. Związane jest to ze stosunkowo dużą rozdzielczością enkodera magnetycznego, który współpracuje z pierścieniem posiadającym 36 par magnesów. Rozdzielczość enkodera można obliczyć wykorzystując wzór podany w nocie katalogowej AS5306.

Rozdzielczość [krok] = [współczynnik interpolacji] x [liczba par biegunów],

przy czym współczynnik interpolacji zależy od konstrukcji matrycy hallotronów i dla układu AS5306 wynosi 160 kroków na jedną parę biegunów magnetycznych. Można więc otrzymać rozdzielczość enkodera równą 5760 kroków na jeden obrót koła.

Układ regulacji prędkości koła

W celu zapewnienia osiągnięcia zadanej prędkości obrotowej przez dany silnik robota, zaimplementowano dyskretny regulator PID. Wyjściem regulatora jest wartość wypełnienia sygnału PWM (Pulse-Width Modulation) sterującego kluczami. Natomiast wejściem jest wartość prędkości obrotowej silnika uzyskiwana na podstawie pomiaru sygnału kwadraturowego z enkodera magnetycznego AS5306. W implementacji regulatora PID pomocna okazała się nota aplikacyjna Atmel AVR221.

uklad_regulacji_pid

Układ regulacji prędkości silnika

W programie wykorzystano cztery regulatory, przy czym każdy odpowiada za dane koło robota. Nastawy regulatorów dobierano eksperymentalnie.

Schematy modułu sterownika silników
motors_controller_scheme1

motors_controller_scheme2

motors_controller_scheme3

Wizualizacja 3D modułu zasilania robota czterokołowego

motors_controller_3d_a

Źródło:

  • Michał Drwięga. Fuzja sygnałów sensorycznych dla potrzeb lokalizacji kołowego robota mobilnego. Praca inżynierska, Politechnika Wrocławska, Wrocław, 2013

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

This site uses Akismet to reduce spam. Learn how your comment data is processed.