Sprzętowe sterowanie bezszczotkowymi silnikami stałoprądowymi
| TechnikaBezszczotkowe silniki stałoprądowe (BLDC - Brushless DC Motors) ze względu na swoją sprawność, niezawodność i doskonałe parametry niemal wyeliminowały silniki innych rodzajów z licznych zastosowań, od klimatyzatorów do modeli zdalnie sterowanych. Dzięki znacznemu spadkowi cen w ciągu ostatnich 10 lat zastosowanie tych silników bardzo wzrosło.
Sterowanie silnikami BLDC jest stosunkowo proste i większość mikrokontrolerów może być do tego używana. Jednakże przy wysokich obrotach - na przykład w maszynach włókienniczych, zdalnie sterowanych modelach pojazdów czy w sterownikach przemysłowych - obciążenie procesora sterującego i jego układu przerwań jest duże.
Nie sprawia to trudności, gdy sterowanie silnikiem jest jedynym zajęciem procesora. Jednak gdy ma on inne jeszcze zadania, lepszym rozwiązaniem jest zastosowanie sprzętowej metody sterowania komutacją silnika, co uwalnia procesor od innych funkcji, na przykład sterowania łącznością radiową, szyfrowania danych, czy obliczania pozycji obiektu w przestrzeni.
Do sterowania silnikami można używać specjalizowanych układów scalonych bądź mikroprocesorów. Te ostatnie są stosowane chętnie z uwagi na elastyczność i łatwość dodawania rozmaitych funkcji pomocniczych interfejsu użytkownika, jak przyciski, przełączniki i wyświetlacze, a także funkcji komunikacyjnych z wykorzystaniem UART-ów czy SPI.
Jednak wymagana do sterowania silnikiem wielka liczba przerwań priorytetowych ogranicza dostęp do procesora pozostałym funkcjom. Konieczne staje się wtedy albo użycie szybkiego, a zatem i drogiego mikrokontrolera, albo zastosowania oddzielnego procesora. Rozwiązanie takie wymaga więcej czasu od projektanta, więcej miejsca na płytce drukowanej i jest droższe.
Alternatywą jest posłużenie się metodą wyłącznie sprzętowego sterowania silnikiem, zwalniającą procesor z jego obsługi. Metoda ta bywa tańsza, a ponadto pozwala sterować równocześnie kilkoma silnikami, nawet o różnej szybkości. Analiza elektronicznego sposobu sterowania silnikiem BLDC pozwala zrozumieć, dlaczego zapotrzebowanie na przerwania jest takie duże.
Sterowanie to wymaga wzbudzania uzwojeń stojana (rys. 1) w odpowiedniej kolejności i w odpowiednich momentach. Jest to możliwe wtedy, gdy sterownik zawsze zna aktualną względną pozycję wirnika. Do tego celu używa się albo systemu umieszczonych w stojanie czujników Halla, albo wykorzystuje wzbudzaną SEM (siła elektromotoryczna).
W systemie czujnikowym północne i południowe bieguny magnetyczne wirnika, poruszając się w zasięgu czujników Halla, wzbudzają w nich sygnały wysoki lub niski. Kombinacja sygnałów trzech czujników Halla informuje o pozycji wirnika. Sygnały te generują przerwania mikrokontrolera, który steruje włączaniem i wyłączaniem obwodów PWM (modulacji szerokości impulsów).
Dzięki włączaniu i wyłączaniu we właściwej kolejności przepływu prądu w uzwojeniach stojana powstaje moment obrotowy silnika BLDC (rys. 2). Częstość przerwań jest ściśle związana z szybkością silnika, a wysoki ich priorytet zapewnia pełną i gładką kontrolę jego obrotów. Tradycyjna sześciostopniowa komutacja faz wymaga od mikrokontrolera sześciu przerwań na jeden cykl elektryczny.
W większości silników wokół stojana jest rozmieszczonych wiele par biegunów, wymagających wielu cykli elektrycznych i znacznie więcej przerwań na obrót. Zwiększa to obciążenie procesora i ogranicza maksymalne obroty silnika. Natomiast komutacja sterowana sprzętowo zwalnia procesor do innych zadań, nie ogranicza obrotów silnika i umożliwia powierzenie mikrokontrolerowi wielu funkcji systemowych.
Funkcja sterowania silnikiem staje się niemal autonomiczna. Metoda ta jednakże nie zawsze daje się zastosować. Nie da się jej użyć z bardziej zaawansowanymi algorytmami sterowania, na przykład do sterowania sinusoidalnego. Rysunek 3 przedstawia elementy funkcji sterujących silnika BLDC komutowanego sprzętowo w sposób konfigurowalny z użyciem PWM, tabeli look-up, bloku zabezpieczenia nadprądowego i wbudowanego ADC, który zapewnia konieczną kontrolę szybkości.
Układy takie obsługiwane są zwykle firmwarowo. Blok sprzętowy wykorzystuje sygnały detektora prądu silnika do zapewnienia jego ochrony przed przeciążeniem oraz sygnały czujników Halla, informujące o pozycji wirnika, a za pośrednictwem PWM modyfikujące impulsy prądu zasilania silnika. Blok ma trzy wejścia sterujące z interfejsu użytkownika: cyfrowy wybór kierunku obrotów silnika, cyfrowe jego uruchamianie i zatrzymywanie oraz analogowy potencjometr regulacji szybkości.
W bloku tym wraz z tablicą przeglądową i układem PLD powstaje sześć sygnałów sterujących PWM, które za pośrednictwem GPIO są kierowane do zewnętrznych sterowników. Konfiguracja tablicy przeglądowej jest przedstawiona na rysunku 4. Cykl roboczy wyjść PWM jest formowany przez sprzętowo oprogramowaną pętlę sterowania szybkości.
Regulacja wirowania jest jedyną funkcją sterowania silnikiem, angażującą procesor. Ale nie stanowi dla niego wielkiego obciążenia, ponieważ działanie pętli kontroli szybkości jest stosunkowo powolne i nie wymaga wysokiego priorytetu przerwań. Sekwencja sygnałów PWM, sterujących zewnętrznymi sterownikami zasilania zapewnia komutację silnika w sposób uniemożliwiający równoczesne wzbudzanie niewłaściwych uzwojeń, co zapobiega przepływowi prądów zwarciowych.
Timer korelowany pozycją wirnika, wzbudzany narastającymi zboczami sygnałów czujników Halla, służy do pomiaru jego szybkości obrotowej. Dane czasowe dla pętli sterowania szybkości są przechowywane w rejestrze. Do ochrony silnika przed przetężeniami (rys. 5) jako detektor jego prądu służy szeregowy rezystor w obwodzie masy modułu zasilacza.
Powstający na nim spadek napięcia jest sygnałem, przekazywanym do analogowego lub prądowego wejścia mikrokontrolera, po podniesieniu na odpowiednio wyższy poziom względem masy. Sygnał ten jest doprowadzany do wewnętrznego PGA, który zwiększa różnicę pomiędzy napięciem wejściowym a napięciem odniesienia.
Różnica ta zostaje zbuforowana, podniesiona do poziomu połowy napięcia zasilania i doprowadzona do komparatora, który ją porównuje z dopuszczalnym natężeniem prądu silnika, umieszczonym w rejestrze przez ośmiobitowy DAC z wyjściem napięciowym. Wyjście komparatora jest połączone z wejściem PWM i blokuje jego wyjście, gdy prąd przekracza poziom ograniczania.
Funkcja ta ogranicza prąd silnika BLDC w każdym cyklu. Konfiguracja ochrony przetężeniowej polega na wyborze poziomu ograniczania prądu i wartości rezystora szeregowego. Jego rezystancja jest kompromisem pomiędzy roboczym zakresem działania silnika i niezawodnością bloku detekcji. Dla danego ograniczenia prądowego natężenie prądu silnika musi wywołać dostatecznie dużą zmianę napięcia, aby komparator mógł ją wykryć.
Jednak im wyższa rezystancja, tym większy na niej spadek napięcia i tym mniejszy zakres regulacji silnika. Dla rezystancji szeregowej R poziom progu ograniczania wynosi UO=R·G·I+UODN, gdzie G to wzmocnienie PGA, I - wymagane natężenie ograniczenia prądu i UODN - napięcie odniesienia na podniesionym poziomie.
Jeśli na przykład poziom ograniczenia prądu wynosi 2A, rezystor szeregowy 0,02Ω, a PGA wzmacnia 8-krotnie, to napięcie progowe wyniesie 0,02Ω·8·2A= 320mV+UODN=320mV+1,65V=1,97V. Do wygenerowania tego napięcia należy użyć wewnętrznego 8-bitowego DAC. Korzyści z realizacji sprzętowego sterowania silnika BLDC to redukcja obciążenia procesora, zmniejszenie potrzebnej mocy i obniżka kosztów.
Układ sterowania staje się bardziej niezależny, a jego zaprojektowanie łatwe. Umożliwia nawet w układzie jednomikrokontrolerowym sterowanie kilkoma silnikami. Na przykład 8-bitowy PSoC3 oparty na kontrolerze 8051 Cypress może, oprócz sterowania nawet sześcioma niezależnymi BLDC ze sprzętowymi czujnikami, posłużyć jeszcze do innych zadań.
Silniki z własnymi niezależnymi układami logicznymi komutacji sprzętowej mają całkowicie niezależną regulację szybkości. Rozwiązanie takie daje się co prawda zrealizować bez komutacji sprzętowej, ale 8-bitowy mikrokontroler jest dla niego zbyt powolny. Jednak w razie konieczności zastosowania bardziej zaawansowanych algorytmów sterowania, jak sinusoidalnego lub polowego, komutacja firmware'owa jest konieczna.
Użycie mikrokontrolera zarówno do sterowania silnikiem, jak i do obsługi interfejsu użytkownika znacznie obniża koszty. Za przykład może posłużyć naścienny klimatyzator z silnikiem skraplacza, silnikiem wentylatora i silnikiem oscylowania strumieniem powietrza. Klimatyzator jest ponadto wyposażony w przyciski, wyświetlacz i zdalne sterowanie podczerwienią.
W starszych konstrukcjach funkcjami tymi zarządzały osobne procesory. Z wykorzystaniem komutacji sprzętowej wystarczy jeden, co znacznie obniży koszt. Ale rozwiązanie takie nie jest możliwe, gdy poszczególne elementy są zlokalizowane w oddalonych miejscach.
Krzysztof Pochwalski