Podstawy sterowania silnikiem BLDC

Silnik BLDC ma wiele zalet. Do najważniejszych zaliczyłbym niewielkie wymiary i mały ciężar przy jednocześnie dużej mocy i sprawności. Pozwala to na takie zastosowania napędu elektrycznego, o jakich trudno było pomyśleć w przeszłości. Oprócz oczywistego wykorzystania silnika BLDC w układach napędowych różnych pojazdów, coraz częściej są podejmowane próby jego użycia w lotnictwie. Bez wątpienia jest to silnik przyszłości, z którego sterowaniem wcześniej czy później będzie miał do czynienia każdy konstruktor-elektronik. W artykule podano niezbędne minimum wiedzy na temat sposobu sterowania silnikiem z praktycznego punktu widzenia oraz podzespołów, które są do tego niezbędne.

Zanim przejdziemy do opisu typowej aplikacji kontrolera BLDC powiedzmy sobie jasno, że do poprawnej „jako-takiej” pracy silnik BLDC nie wymaga skomplikowanego układu sterowania. Przypuszczalnie, dla większości silników wystarczający będzie generator przebiegu 3-fazowego o regulowanej częstotliwości, zasilający w odpowiedniej kolejności uzwojenia statora po to, aby „jako-tako” zakręcić silnikiem. Podobnie, to jest – z otwartą pętlą sprzężenia zwrotnego, działają sterowniki bezczujnikowe w momencie startu silnika. Jeśli jednak w układzie sterowania zastosujemy mikrokontroler będziemy mierzyli położenie statora względem rotora, to będzie można precyzyjnie wyznaczyć moment, w którym należy zasilić odpowiednie uzwojenia statora. Precyzyjne określenie tej chwili pozwala na uzyskanie przez układ napędowy najwyższej sprawności oraz poprawną kontrolę prędkości i momentu obrotowego silnika.

Rysunek 1. Schemat blokowy typowej aplikacji kontrolera silnika BLDC z driverem mocy w postaci układu scalonego (źródło: materiały firmy Infineon)

Rysunek 2. Schemat blokowy typowej aplikacji kontrolera silnika BLDC wykonanej z użyciem elementów dyskretnych. (źródło: materiały firmy Infineon)

Schemat blokowy typowej aplikacji sterującej silnikiem BLDC zamieszczono na rysunku 1. Składa się ona z zasilacza, interfejsu komunikacyjnego (z hostem lub operatorem), mikrokontrolera nadzorującego pracę silnika i generującego sygnały sterujące, drivera stopnia końcowego (najczęściej w postaci tranzystorów MOS), 3-fazowego stopnia wykonawczego. W stopniu końcowym kontrolera z rys. 1 pracuje układ scalony, jednak często są też stosowane rozwiązania dyskretne. Schemat blokowy kontrolera zbudowanego z użyciem komponentów dyskretnych pokazano na rysunku 2. Jak można się było spodziewać, zmianie uległ przed wszystkim stopień mocy, który został wykonany w oparciu o tranzystory. Z drugiej strony, mniejsza gęstość upakowania komponentów pozwala, dla przykładu, na zamontowanie tranzystorów w pewnej odległości od układu sterującego i na dodatkowym radiatorze, co umożliwia sterowanie silnikiem o dużej mocy. O ile w aplikacji z rys. 1 moment załączenia zasilania wyznaczaliśmy za pomocą metody bezczujnikowej, o tyle na rys. 2 można zauważyć czujniki Halla – o obu metodach, ich wadach i zaletach, będzie mowa dalej.

Zalety zastosowania silnika BLDC

W silniku szczotkowym komutator i ślizgające się po nim szczotki służą do przekazywania energii elektrycznej do uzwojeń rotora. Pole magnetyczne rotora oddziałuje z magnesem trwałym (stałym) statora powodując obrót tego pierwszego. Pomimo stosunkowo nieskomplikowanej budowy i łatwości kontrolowania prędkości obrotowej za pomocą 1-fazowego stopnia PWM, podstawową wadą takiego silnika są szczotki, które trąc o komutator zużywają się. Zdarzają się też sytuacje, gdy po dłuższym okresie eksploatacji szczotki niszczą komutator i wymaga on wymiany. W silnikach małej mocy komutator może być wykonany jako nierozerwalnie związany z wirnikiem i jego wymiana pociąga za sobą konieczność kosztownej wymiany całego wirnika. Ponadto, na styku komutatora i szczotki występują straty mocy i iskrzenie, które w połączeniu z przepięciami występującymi przy przełączania może być źródłem problemów z EMI.

Silnik BLDC obywa się bez komutatora mechanicznego. W praktyce jedynym elementem, który zużywa się podczas normalnej eksploatacji silnika BLDC są łożyska. W razie konieczności łatwo je jednak wymienić, a taka naprawa jest niedroga, jeśli łożyska są typowe. Brak komutatora mechanicznego niweluje straty mocy wynikające z komutacji oraz usuwa z silnika najbardziej zawodny element – szczotki. Pomimo skomplikowanego układu kontroli, silnik BLDC „odwdzięcza się” bardziej równomierną charakterystyką momentu obrotowego w funkcji prędkości obrotowej, szybszą odpowiedzią dynamiczną, pracą praktycznie bez zakłóceń EMI, większym zakresem prędkości obrotowej i dużą sprawnością. Ponadto, znacznie bardziej korzystny jest stosunek momentu obrotowego i mocy do wielkości silnika. Dzięki temu silnik BLDC jest bardzo dobrym wyborem dla takich aplikacji, jak pralki i inny sprzęt AGD, w których duże znaczenie ma sprawność energetyczna przy jednocześnie małych wymiarach. Trzeba jednak przy tym zauważyć, że w niektórych zastosowaniach nie da się zastąpić typowych silników szczotkowych przez BLDC, ponieważ mają one większy moment obrotowy przy starcie. Dlatego też wiele narzędzi elektrycznych nadal jest i będzie napędzanych typowymi silnikami szczotkowymi DC.

Silnik BLDC często jest nazywany synchronicznym, ponieważ pola magnetyczne generowane przez stator i rotor wirują z tą samą prędkością. Jedną z zalet tej „synchronizacji” jest to, że silniki BLDC nie doświadczają zjawiska „poślizgu” typowego dla silników indukcyjnych (poślizg określa, o ile silnik „spóźnia się” w stosunku do pola wirującego).

Wydaje się, że najczęściej stosowane są 3-fazowe silniki BLDC, chociaż taki silnik może mieć jedną lub dwie fazy. W takiej sytuacji zmianie ulega układ sterowania (np. silnik 1-fazowy wymaga pełnego mostka H), jednak w artykule skupimy się na rozwiązaniu napędu dla silnika 3-fazowego i pominiemy inne, mniej popularne rozwiązania.

Silniki 3-fazowe dzielą się na takie, w których wiruje obudowa (w języku angielskim noszą one nazwę outrunner) oraz takie, w których obudowa jest nieruchoma, a wiruje wnętrze silnika (inrunner). Te pierwsze można znaleźć np. w modelach latających, czytnikach/nagrywarkach CD, wentylatorach, w napędzie rowerów i motocykli itd. Te drugie są stosowane do napędzania modeli samochodów, pojazdów elektrycznych (w tym również motocykli). Sposób sterowania tymi silnikami jest taki sam, ale mają one różną budowę i nieco różnią się parametrami (moment obrotowy, obroty maksymalne). W artykule opiszemy silnik z rotorem umieszczonym wewnątrz (inrunner). Zaczerpnięta z noty aplikacyjnej firmy Microchip fotografia 3 prezentuje stator omawianego silnika.

Fotografia 3. Stator silnika BLDC (źródło: nota aplikacyjna AN885 firmy Microchip)

Stator silnika BLDC jest zbudowany z rdzeni stalowych z uzwojeniami. Te rdzenie są rozmieszczone w równej odległości od siebie i najczęściej pozycjonowane za pomocą specjalnej żywicy. Rotor jest wykonany z magnesów stałych, których rolę coraz częściej pełnią magnesy neodymowe, chociaż zwykle są to tanie magnesy żelazne. Zastosowanie „mocniejszych” magnesów umożliwia zmniejszenie wymiarów silnika przy zachowaniu mocy i momentu obrotowego, ale nie pozostaje bez wpływu na jego cenę.

Rotor składa się z od 2 do 8 par magnetycznych N-S. Więcej par magnetycznych oznacza, że silnik będzie miał większy moment obrotowy i obracał się bardziej „gładko”, jednak zwiększenie liczby biegunów przekłada się na trudniejszą aplikację kontrolera silnika, podwyższenie jej kosztu oraz obniżenie maksymalnej prędkości obrotowej.

Zasada działania kontrolera silnika z czujnikami Halla

Silnik BLDC ma komutator elektroniczny, który sekwencyjnie zasila uzwojenia statora generując wirujące pole elektromagnetyczne. To pole oddziałując z magnesami stałymi rotora wymusza jego obrót. Liczba „obrotów elektrycznych” N przekłada się na obroty mechaniczne, gdzie N oznacza liczbę par magnetycznych. Przy sterowaniu silnikiem 3-fazowym jest wymagane zastosowanie 3 czujników Halla na statorze (rozmieszczone na okręgu co 120°) dla umożliwienia określenia pozycji rotora względem statora, aby kontroler mógł zachować poprawną sekwencję i właściwy moment czasowy załączenia zasilania uzwojeń silnika. Czujniki Halla montuje się na statorze, natomiast na rotorze zakłada się pierścień z magnesami trwałymi (rysunek 4). Kiedy pole magnetyczne przechodzi przez czujnik Halla, jest generowany sygnał o poziomie wysokim (np. dla bieguna S) lub niskim (dla bieguna przeciwnego, w tym przykładzie – N). Właściwa, poprawna sekwencja komutacji może być uzyskana tylko na podstawie analizowania sygnałów docierających z sensorów. Na tej bazie można też wyznaczyć prędkość obrotową silnika.

Rysunek 4. Schematyczne rozmieszczenie sensorów Halla na statorze silnika BLDC (na podstawie noty aplikacyjnej AN885 firmy Microchip)

Uzwojenie silnika elektrycznego generuje napięcie powstające na skutek zjawiska indukcji elektromagnetycznej (pole magnetyczne generowane przez przemieszczający się magnes przenika nieruchome uzwojenie statora). Zgodnie z regułą Lenza to napięcie powoduje przepływ prądu elektrycznego w uzwojeniu i powstanie pola magnetycznego, które przeciwdziała oryginalnemu strumieniowi magnetycznemu. W efekcie to zjawisko przeciwdziała obrotowi rotora w pożądanym kierunku (chcącym przekonać się jak duża może to być siła proponuję zwarcie zacisków silnika DC i próbę zakręcenia jego wałem). Dla danego typu silnika, w którym występuje stały strumień magnetyczny i o znanej liczbie uzwojeń, siła elektromotoryczna jest proporcjonalna do prędkości obrotowej silnika.

Pomimo tego, że siła elektromotoryczna przeciwdziałająca ruchowi silnika jest zjawiskiem szkodliwym, to można ją też „przeciągnąć” na naszą stronę. Przypomnijmy sobie schemat blokowy z rys. 1 – nie było na nim żadnych czujników Halla. W tej aplikacji, dzięki monitorowaniu opisywanego zjawiska mikrokontroler sterujący napędem jest w stanie określić położenie rotora względem statora bez czujników Halla. Upraszcza to budowę kontrolera oraz zmniejsza liczbę przewodów w aplikacji docelowej silnika, a także podnosi niezawodność napędu pracującego w trudnych warunkach. Trzeba jednak pamiętać, że zjawisko to ma charakter dynamiczny i jeśli silnik jest zatrzymany lub obraca się z niewielką prędkością, to napięcie indukcji nie występuje lub jest niewielkie i mikrokontroler nie jest w stanie określić położenia rotora względem statora. Dlatego np. w momencie startu rezygnuje się z pętli sprzężenia zwrotnego, a mikrokontroler generuje pewną domyślną sekwencję startową, aż uda się doprowadzić do obrócenia się rotora. Wówczas pętla sprzężenia zwrotnego jest załączana i sterowanie odbywa się zgodnie z informacjami obieranymi z wirującego silnika. Mimo tego kontrolery tzw. bezczujnikowe stają się coraz bardziej popularne i są stosowane również aplikacjach konsumenckich, chociażby do napędzania bardziej zaawansowanych technicznie zabawek (zdalnie sterowane samoloty, helikoptery, samochody itp.).

Budowa silnika BLDC nie jest zbyt skomplikowana, ale jak łatwo zorientować się po tym, co napisano wcześniej (konieczność analizowania sygnałów z czujników lub uzwojeń i wykonania komutatora elektronicznego), wymaga on złożonego, zaawansowanego układu sterowania. Konstruktor staje przed wyzwaniem zbudowania 3-fazowego systemu o dużej mocy, co tworzy określone problemy techniczne do rozwiązania. Dodatkowo, trzeba napisać oprogramowanie sterujące, które nie dosyć, że będzie sterowało silnikiem, to jeszcze musi umożliwić interakcję z systemem nadrzędnym oraz reagować w sytuacjach awaryjnych. Tym zadaniom najłatwiej sprosta mikrokontroler.

Najprostsze układy sterowania silnikami BLDC nie wymagają jakichś zaawansowanych jednostek, chociaż warto, aby była ona wyposażona w sprzętowy generator PWM. W ofertach wielu producentów są dostępne również mikrokontrolery z generatorami wielokanałowymi, mogącymi pracować synchronicznie – warto zastanowić się nad właściwym wyborem, ponieważ dzięki temu zmniejszy się wysiłek włożony w napisanie oprogramowania. Do takiego zastosowania można użyć nawet mikrokontrolera 8-bitowego, jednak współcześnie często jest nieuzasadnione ekonomicznie ze względu na relację ceny do możliwości jednostek 32-bitowych. Często w zaawansowanych, bezczujnikowych kontrolerach silników BLDC są stosowane mikrokontrolery z jednostką wspomagającą przetwarzanie sygnałów (DSP lub DSC), ponieważ odtworzenie informacji o położeniu rotora względem statora na podstawie odbieranych od silnika sygnałów sprzężenia nie jest zadaniem trywialnym, a każda stracony procent efektywności skutkuje problemami z rozpraszaniem niewykorzystanej mocy oraz zaburzeniami EMI. Z tego punktu widzenia rozwiązanie kontrolera z czujnikami Halla podającymi aktualne położenie wydaje się znacznie łatwiejsze do wykonania.

Uzwojenia silnika 3-fazowego BLDC są połączone w trójkąt lub rzadziej – w gwiazdę. Zgodnie z informacjami zawartymi w notach aplikacyjnych, topologia silnika nie powinna mieć wpływu na zasadę działania kontrolera. Napięcia zasilające poszczególne fazy są załączane przez tranzystory MOS lub IGBT. Mikrokontroler dostarcza sygnał PWM, który determinuje średnie napięcie i prąd występujące w uzwojeniu, a tym samym prędkość obrotową silnika i uzyskiwany moment obrotowy. Czujniki Halla zamontowane na statorze pozwalają na łatwe ustalenie położenia rotora. Dla celu wytworzenia momentu obrotowego jest używana para cewek oraz para magnesów stałych.

Dla wykonania pełnego obrotu wału taki system wymaga sześciu kroków komutacji. Na rysunku 5 pokazano ponumerowane sekwencje przepływu prądu z zaznaczonym kierunkiem, natomiast na rysunku 6 odpowiadające im napięcie występujące na cewkach oraz stan czujników Halla.

Rysunek 5. Ponumerowane sekwencje pracy komutatora (na podstawie noty aplikacyjnej firmy Atmel)

Rysunek 6. Stan czujników Halla określa, które cewki będą zasilane – odpowiednia para czujników jest powiązana z określonym uzwojeniem (na podstawie noty aplikacyjnej firmy Atmel)

Każdy krok wykonywany przez komutator powoduje zadziałanie określonej pary czujników Halla, która informuje mikrokontroler o tym, jakie uzwojenia (fazy) powinny być zasilone. Jak wspomniano i co wynika z topologii silnika, zawsze jest zasilana para uzwojeń. Na przykład, w kroku komutatora oznaczonym „1” prąd płynie od zacisku „W” do „V”, w drugim od „W” do „U” itd.

Sterowanie silnikiem BLDC w kontrolerach bezczujnikowych

Omawiając algorytmy kontroli silnika BLDC nieco „zahaczyliśmy” o sterowanie bezczujnikowe. O ile sama zasada działania i sposób wykonania części sprzętowej są bardzo zbliżone, o tyle taki sterownik wymaga doprowadzenia sygnału sprzężenia zwrotnego z uzwojeń silnika. Przypomnijmy, że ten sposób sterowania wymaga, aby silnik wirował i generował informację zwrotną, więc taki kontroler nie nadaje się do zastosowania w aplikacjach, w których silnik BLDC obraca się z niewielką prędkością. Inną wadą takiego rozwiązania jest fakt, że w przypadku gwałtownego zmiany obciążenia silnik może stracić synchronizację, ponieważ układ kontrolera nie nadąża za szybkimi zmianami. Do oczywistych korzyści należą uproszczone okablowanie i łatwy montaż w zasadzie wymagający połącznia 3 przewodów (oznaczonych takim samym kolorem, numerami lub literami). Jednak zawsze trzeba zastanowić się nad charakterem obciążenia i czy aby na pewno kontroler nadaje się do projektowanego zastosowania. Z drugiej strony jest mnóstwo aplikacji, które nie wymagają małej prędkości obrotowej silnika i w których z powodzeniem można stosować uproszczone metody kontroli. Są to na przykład: pompy, wentylatory, silniki napędowe łodzi itp.

Bezczujnikowa metoda sterowania silnikiem jest bardzo dobrze opisana w nocie aplikacyjnej firmy Microchip AN1160, w której to jednocześnie wyjaśniono, dlaczego do aplikacji tego typu warto zastosować „mocny” mikrokontroler wyposażony w jednostkę wspomagającą cyfrowe przetwarzanie sygnałów.

W celu wyznaczenia położenia rotora sygnał docierający z każdej fazy silnika jest filtrowany cyfrowo. Zastosowanie mikrokontrolera z jednostką DSC (nazewnictwo Microchip) pozwala na wyeliminowanie konieczności budowania skomplikowanych dolnoprzepustowych filtrów analogowych, które są w stanie wyodrębnić zwrotny sygnał BEMF (napięcie generowane przez uzwojenie) oraz współpracujących z nimi komparatorów.

Mikrokontroler dsPIC24 w aplikacji opisywanej w nocie AN1160 realizuje następujące zadania:

  • Próbkuje trapezoidalne sygnały z uzwojeń silnika (BEMF) za pomocą przetwornika A/C.
  • Porównuje trapezoidalny sygnał sprzężenia zwrotnego z połową napięcia zasilającego silnik, aby wyznaczyć moment przejścia fazy przez 0.
  • Filtruje sygnały powstałe na skutek porównania/próbkowania.
  • Realizuje funkcję kontrolera PI z zamkniętą pętlą sprzężenia zwrotnego.
  • Generuje sekwencję sygnałów sterujących silnikiem BLDC.
  • Realizuje interfejs do systemu nadrzędnego.

 

Jak wspomniano, podczas ruchu silnika jest generowana siła elektromotoryczna, którą wykorzystuje się w roli informacji zwrotnej (BEMF). Polaryzacja generowanego napięcia jest taka, że przeciwdziała kierunkowi przepływu prądu przez zasilane uzwojenie. Wartość generowanego napięcia zależy od: liczby zwojów, prędkości kątowej silnika (a tym samym prędkości zmian strumienia magnetycznego) i natężenia strumienia magnetycznego tworzonego przez magnesy trwałe zamontowane na rotorze. Jeśli przeciwdziała się nasyceniu magnetycznemu rdzenia, na którym nawinięto cewkę statora, to można zaniedbać temperaturę. W związku z tym, że wszystkie czynniki oprócz prędkości kątowej są stałe, to można przyjąć, że wartość napięcia BEMF zależy wyłącznie od prędkości wirowania silnika i jest tym mniejsza, im jest ta prędkość jest mniejsza. Z tego powodu, kontroler bezczujnikowy nie nadaje się dla silników o małej prędkości obrotowej.

Na efektywność działania takiego kontrolera ma również wpływ wartość napięcia zasilającego uzwojenia silnika. Powinna ona wynosić co najmniej BEMF + napięcie zasilające uzwojenie. Dla wytworzenia napięcia/prądu o właściwej wartości jest używana technika PWM. Zadanie nie jest trywialne, ponieważ zbyt duże napięcie spowoduje nadmierne grzanie się silnika, zbyt niskie – niedostateczny moment obrotowy. Również zasilanie uzwojeń silnika sygnałem PWM tworzy pewne problemy, ponieważ utrudnia odebranie sygnału sprzężenia zwrotnego oraz może być powodem trudności z kompatybilnością elektromagnetyczną.

Zgodnie z teorią, dla wytworzenia maksymalnego momentu obrotowego strumień magnetyczny statora powinien być przesunięty o kąt elektryczny 90° względem strumienia rotora. W konsekwencji prąd powinien być w fazie z napięciem sprzężenia zwrotnego BEMF. W silniku 3-fazowym fazy są przesunięte względem siebie o 120°, z czego wynika konieczność 2-krotnego przełączenia każdej fazy o 60° – dla 3 faz daje to 6 kroków komutatora. Dla uzyskania maksymalnego momentu obrotowego przebieg prądu powinien mieć taki sam kształt, jak przebieg napięcia. Na rysunku 7 pokazano oscylogram dwóch faz zasilających silnik BLDC pracujący z pełnym obciążeniem, natomiast na rysunku 8 – bez obciążenia. Odmiennymi kolorami na oscylogramach zaznaczono przebiegi napięcia i prądu w każdej z faz. Na oscylogramach widać też napięcie BEMF, którego środek czasu trwania przypada w połowie zbocza napięcia zasilającego uzwojenie silnika (spłaszczenie fioletowej linii oscylogramu). Silnik jest zasilany napięciem asymetrycznym i jeśli amplituda przebiegu zasilającego silnik jest równa napięciu zasilającemu, to BEMF występuje, gdy napięcie na uzwojeniu silnika osiągnie 50% wartości napięcia zasilania. Dla pokazanego na oscylogramie przebiegu o kształcie trapezowym będzie to 30° elektrycznych od zakończenia poprzedzającej komutacji i 30° od początku kolejnej komutacji. W tej metodzie sterowania prędkość obrotową silnika można wyznaczyć na podstawie interwału czasowego pomiędzy dwoma następującymi po sobie przejściami fazy przez 0.

Rysunek 7. Przebieg napięcia i prądu w uzwojeniach silnika BLDC pracującego z obciążeniem maksymalnym (źródło: AN1160 firmy Microchip)

Rysunek 8. Przebieg napięcia i prądu w uzwojeniach silnika BLDC pracującego bez obciążenia (bieg jałowy). Na oscylogramie widać idealne momenty przejścia fazy przez 0 (źródło: AN1160 firmy Microchip)

Przejście sygnału BMF przez 0 może być wykrywane różnymi sposobami. Najczęściej stosowane są dwie: porównanie napięcia BEMF z napięciem wynoszącym połowę napięcia zasilającego silnik oraz porównanie napięcia BEMF z występującym w wirtualnym punkcie neutralnym.

Rysunek 9 przedstawia sytuację, w której napięcie zasilające jest dołączone do zacisków A i C silnika, natomiast zacisk B może być traktowany jako otwarty ze względu na dużą impedancję wejściową przetwornika A/C. Inną metodę detekcji przejścia przez 0 prezentuje rysunek 10. Wykorzystuje się w niej napięcie występujące w punkcie wspólnym uzwojeń połączonych w gwiazdę – teoretycznie powinno ono być równie połowie napięcia zasilającego silnik. Niestety, to miejsce zwarcia uzwojeń jest niedostępne w większości silników i dlatego do wytworzenia wirtualnego punktu masy używa się rezystorów (RR na rys. 10). Ta metoda wymaga użycia dodatkowych komparatorów analogowych, które można łatwo wykonać z użyciem tanich wzmacniaczy operacyjnych. Punkt neutralny może być również odtworzony przez oprogramowanie przez obliczenie średniej arytmetycznej wartości próbkowanych jednocześnie 3 kanałów A/C dołączonych do poszczególnych faz silnika. Następnie, zrekonstruowane napięcie punktu neutralnego jest porównywane z napięciem każdego kanału dla wyznaczenia punktu przejścia przez 0.

Rysunek 9. Porównanie napięcia BEMF z napięciem wynoszącym połowę napięcia zasilającego silnik (źródło: AN1160 firmy Microchip)

Rysunek 10. Porównanie napięcia BEMF z występującym w wirtualnym punkcie neutralnym (źródło: AN1160 firmy Microchip)

Oczywiście, taki sam układ pomiarowy musi być zbudowany dla każdej fazy silnika i należy przy tym wykorzystać 3 wejścia przetwornika A/C lub 3 komparatory analogowe.

Na rysunku 11 zamieszczono oscylogram przebiegów napięcia BEMF w każdej z 3 faz silnika BLDC. Już pierwszy rzut oka na prezentowane przebiegi upewni nas, że konieczne już zastosowanie filtru. Na rysunku 12 pokazano schemat blokowy przykładowego rozwiązania opisywanego w nocie aplikacyjnej AN1160 firmy Microchip. Wejścia analogowe mikrokontrolera są dołączone za pomocą dzielników rezystancyjnych do poszczególnych faz silnika. Wspomniana nota szczegółowo opisuje sposób próbkowania wejść oraz zastosowane algorytmy. Osoby zainteresowane zapoznaniem się z tą aplikacją zachęcam do zajrzenia do materiałów źródłowych.

Rysunek 11. Pomiar sygnału BEMF w każdej z 3 faz (źródło: AN1160 firmy Microchip)

Rysunek 12. Schemat blokowy proponowanej aplikacji mikrokontrolera dsPIC30F2010 (źródło: AN1160 firmy Microchip)

 

Na koniec

Dla celu nauczenia się sterowania silnikiem małej mocy można użyć mikrokontrolera 8-bitowego i jednego z wielu zestawów dostępnych w ofercie producentów lub dystrybutorów. Taki zestaw najczęściej składa się z mikrokontrolera współpracującego z driverem silnika wykonanym w postaci układu scalonego lub z komponentów dyskretnych (np. ATAVRMC323 z 8-bitowym mikrokontrolerem ATmega128A1 lub bardziej zaawansowany, 32-bitowy STM32 Motor Nucleo Pack). Niestety, o ile taki zestaw przyda się do „zabawy” z silnikiem, to jednak nie nadaje w roli projektu referencyjnego przy zadaniu wykonania kontrolera dużej mocy przeznaczonego do rzeczywistej aplikacji. W takiej aplikacji napięcie zasilające silnik ma stosunkowo dużą wartość i dlatego do załączania stopnia mocy są wymagane specjalne drivery. Na szczęście wielu producentów ma je w ofercie i nie są to układy trudne do zdobycia. O układach scalonych driverów tego typu z oferty wielu firm, jeśliby wymienić: STMicroelectronics, Texas Instruments, Infineon, Allegro Microsystems, IRF, Microchip, Fairchild Semiconductor, Atmel, On Semiconductor i innych, pisaliśmy w „Wyborze konstruktora” w EP 4/2013. Taki driver nierzadko zawiera nie tylko stopień mocy, ale również bloki kontrolujące poprawne warunki pracy, logikę sterującą, zasilacz dla mikrokontrolera oraz przesuwniki poziomów napięcia i uwalnia konstruktora od rozwiązywania szeregu problemów technicznych pozwalając skupić się na samej aplikacji napędu BLDC.

Trzeba zauważyć, że zwykle nie chcemy, aby kontroler silnika BLDC był zasilany z innego źródła niż sam silnik. Stawia to przed konstruktorem nie tylko wyzwania związane z samym sterowaniem silnika, ale również z obniżeniem napięcia zasilającego mikrokontroler, przesunięciem poziomu napięcia, aby dało się wysterować tranzystor MOS lub IGBT, ładowaniem/rozładowaniem pojemności wejściowych bramek tranzystorów, jeśli wymienić te tylko najbardziej oczywiste problemy do rozwiązania. Kolejne będą związane z funkcjonalnością i bezpieczeństwem użytkowania sterownika, jednak tego typu rozważania nie są przedmiotem tego artykułu.

Podsumowanie

W artykule omówiono podstawowe zagadnienia związane ze sterowaniem silnikami BLDC. Opierając się o materiały źródłowe wymienione w bibliografii, zaprezentowano schematyczną budowę układów sterowania funkcjonujących w oparciu o dwie metody określania położenia rotora względem statora: z czujnikami Halla oraz wykorzystującą zwrotny sygnał BEMF indukowany w uzwojeniach silnika. Omówiono wady i zalety obu metod. Mam nadzieję, że te wskazówki ułatwią samodzielne poszukiwanie rozwiązań oraz ich odpowiednie dobranie do projektowanej aplikacji.

Jacek Bogusz
jacek.bogusz@easy-soft.net.pl

 

Bibliografia:

  1. Sensorless BLDC Control with Back-EMF Filtering Using a Majority Function.” Adrian Lita, Mihai Cheles, nota aplikacyjna Microchip AN1160
  2. „An Intruduction to Brushless Motor Control.” Steven Keeping, Electronic Products, (http://www.digikey.com/en/articles/techzone/2013/mar/an-introduction-to-...)
  3. „Brushless DC Motor”, Infineon Technology, http://www.infineon.com/cms/en/applications/motor-control-drives/brushle...
  4. Brushless DC Motor Primer,” Muhammad Mubeen
  5. Brushless DC (BLDC) Motor Fundamentals,” Padmaraja Yedamale, nota aplikacyjna Microchip AN885
  6. Using the PIC18F2431 for Sensorless BLDC Motor Control,” Padmaraja Yedamale, nota aplikacyjna Microchip AN970
  7. AVR1607: Brushless DC Motor (BLDC) Control in Sensor mode using ATxmega128A1 and ATAVRMC323,” nota aplikacyjna Atmel
  8. FCM8201 Three-Phase Sine-Wave BLDC Motor Controller,” nota aplikacyjna Fairchild Semiconductor AN-8201

 

http://www.tomaszbogusz.blox.pl/

Odpowiedzi

Wadliwa praca silnika BLDC z czujnikami Halla

Dzień dobry, to bardzo dobry artykuł gratuluję wiedzy o silnikach BLDC. Może zechce się pan pochylić nad takim ciekawym przypadkiem z jakim mam do czynienia. Zagadnienie dotyczy wadliwej pracy silnika BLDC (rotor magnesy neodymowe, Stator z czujnikami Halla). Silnik pracuje w hulajnodze. Z uwagi na uszkodzone felgi zaszła potrzeba ich wymiany. Wybrałem najprostszy sposób i kupiłem kompletny nowy oryginalny silnik u producenta. Tu zaczęła się przygoda. Silnik od początku nie ruszył i zachowuje się jak na drugim filmie który powiesiłem w sieci - https://jacekmankowski.pl/Scooter/
Po zapoznaniu się z pana artykułem dochodzę do wniosku, że producent odwalił knota i źle są podłączone przewody. Czujniki Halla, uzwojenia statora oraz wiązka połączeniowa, wszystko jest przemierzone i porównane ze starym silnikiem. Wszystko wygląda zdrowo, a zachowanie silnika jest takie jak na filmie. Pomiary porównywałem ze starym silnikiem, który wmontowałem w nowe felgi i hulajka lata. Problem z nowym silnikiem pozostał. Mam pytanie do eksperta, jak bardzo jestem w błędzie z moją teorią pomieszanych sekwencji w wyniku nieodpowiedniego podłączenia wiązki? A może ma pan inne spojrzenie na taki przypadek?

Dodaj nowy komentarz

Zawartość pola nie będzie udostępniana publicznie.