Zaawansowane sterowanie silników krokowych
W trakcie realizacji przez firmę AM-PM wielu projektów pojawiała się konieczność stosowania różnego rodzaju napędów. Silniki krokowe są pierwszym wyborem w większości sytuacji, gdyż pozwalają na relatywnie nieskomplikowane, szybkie i precyzyjne sterowanie pozycji układów wykonawczych. Zadanie staje się jeszcze łatwiejsze, gdy wykorzysta się jeden z dostępnych, nowoczesnych układów scalonych przewidzianych do obsługi silników krokowych lub kompletne sterowniki zbudowane z wykorzystaniem tych układów.
W najprostszym układzie sterowanie silnika krokowego sprowadza się do obsługi dwóch sygnałów logicznych, czyli wejść układu. Stan jednego z nich określa kierunek obrotu silnika, natomiast impulsy podawane na drugie wejście powodują wykonywanie kolejnych kroków (lub ich części - mikrokroków).
Parametry silnika oraz jego przewidziane obciążenie mechaniczne ograniczają maksymalną częstotliwość podawanych impulsów, którą ten konkretny model jest w stanie przetworzyć na bezbłędnie wykonane kroki (lub mikrokroki). Jest to szczególnie istotne w układach z tak zwaną otwartą pętlą regulacji, czyli bez czujnika pozycji. Nie jesteśmy w stanie zweryfikować pozycji silnika, zakładamy po prostu, że zawsze wykona on dokładnie tyle kroków w ustalonym kierunku, ile podaliśmy mu impulsów (silnik nie "zgubi" kroków).
Aby mieć pewność, że w każdej sytuacji zastosowany silnik krokowy zachowa się bezbłędnie, warto zapoznać się przynajmniej z podstawową teorią jego działania, aby na bazie danych katalogowych oraz przewidzianego obciążenia właściwie opracować algorytmy generacji impulsów sterujących. W niniejszym artykule taka podstawowa teoria będzie zaprezentowana.
Na początek posłużę się poniższym schematem najprostszego w konstrukcji silnika krokowego, w którym magnes obraca się na skutek zmian pola magnetycznego wytwarzanego przez dwa elektromagnesy. Na jeden pełny obrót magnesu, czyli rotora, przypadają cztery kroki. Praktyczne konstrukcje mają zwielokrotnione bieguny magnesów i cewek, na przykład silnik 200-krokowy ma ich pięćdziesiąt, ale w podstawowych rozważaniach będę się odnosił do tej 4-krokowej konstrukcji.
Widoczny w środku magnes jest nieprzypadkowo obrócony o kąt 45 stopni. Zakładając skrajnie uproszczone zasilanie cewek mamy zawsze sytuację, w której przez obydwie płynie stały, maksymalnie dopuszczalny prąd, zmieniany jest tylko sekwencyjnie kierunek prądu w tych cewkach. W takim razie wynikowy wektor pola magnetycznego generowanego przez prostopadle umieszczone cewki jest obrócony o kąt 45 (135, 225, 315) stopni, czyli „ukośnie” między rdzeniami cewek. Kolejny obrazek ilustruje pełną sekwencję czterech kroków, zrealizowaną na zasadzie zmiany kierunku prądu w cewkach.
Nic nie stoi na przeszkodzie, aby prąd płynął w danym momencie tylko przez jedną cewkę – wtedy magnes będzie ustawiony dokładnie poziomo lub pionowo. Rozbudowując sekwencję sterowania prądów o takie sytuacje uzyskujemy dwukrotnie „gęściejsze” kroki, czyli pół-kroki:
Główną zaletą trybu pół-krokowego jest zwiększona rozdzielczość, natomiast główną wadą jest to, że w stanie półkroku silnik ma tylko około 70% momentu obrotowego, jaki występuje, gdy jest zasilany w stanie pełnego kroku. Jest to bezpośredni wynik mniejszej gęstości strumienia magnetycznego w stojanie cewek. W stanie pełnego kroku wektor magnetyczny generowany przez stojan jest sumą wektorów magnetycznych dwóch cewek. Gdy obie cewki są wzbudzane równomiernie, suma dwóch wektorów jest pod kątem 45° i ma wielkość √2 razy większą od wielkości każdego pojedynczego wektora. Gdy zasilana jest tylko jedna cewka, jak w stanach półkroku, całkowity wektor magnetyczny jest wektorem tylko dla jednej cewki. Powoduje to 30% redukcję momentu obrotowego dla półkroków. Redukcję momentu obrotowego można skompensować, zwiększając prąd w jednej napędzanej cewce dla półkroków. Jeżeli prąd wzrasta o √2, gdy napędzana jest tylko jedna cewka, jak pokazano na powyższym rysunku, moment obrotowy jest zasadniczo równy zarówno dla stanu pełnego kroku, jak i półkroku.
Trzeba przy tej okazji zauważyć, że zwiększona wartość prądu płynącego przez jedną cewkę powoduje dwukrotnie większe wydzielanie się w niej ciepła. Jednak przez drugą cewkę prąd nie płynie, więc uśrednione termiczne obciążenie silnika pozostanie takie same – niezależnie od tego, czy przez dwie płynie prąd nominalny, czy tylko przez jedną z nich płynie prąd zwiększony o czynnik √2. Nie ma problemu, gdy silnik pracuje – prądy często się przełączają, a moc termiczna wydziela się równomiernie w dwóch cewkach, gdy jednak silnik zatrzyma się na dłużej w pozycji pół-kroku, zasilana jest tylko jedna cewka – i jest ona przeciążona. W związku z tym dane katalogowe silnika krokowego często odnoszą się do zasilania cewek prądem zmniejszonym do 70% maksymalnej wartości, w tej samej proporcji zmniejsza się też użyteczny moment obrotowy silnika.
Od sterowania półkrokowego możemy przejść do wyższej rozdzielczości podziału kroków, aż do czysto analogowego, gdy zamiast twardo (skokowo) przełączanych wartości prądów będziemy je zmieniać płynnie, generując na cewkach – umownie – sinus i cosinus. Jak wiadomo, sin2(x) + cos2(x) = 1, a to oznacza, że zarówno wektor generowanego pola magnetycznego ma stałą wartość, jak i generowane ciepło (wynikające z przepływu prądu przez cewkę) ma stałą wartość.
Przyjrzyjmy się teraz zdolności wysterowanego silnika krokowego do utrzymywania ustalonej pozycji. Załóżmy, że dwie cewki są zasilane nominalnym prądem, a wał ustawił się swobodnie w umownej pozycji zerowej. Poniższy wykres przedstawia, jak zmienia się siła działająca na wał silnika, gdy zaczynamy wymuszać obrót wału. Zróbmy wykres zależności tego momentu w funkcji odchylenia od początkowej pozycji spoczynkowej. Otrzymamy następującą zależność
(za https://www.steppermotors.net/basic-characteristics-of-stepper-motors):
Silnik opiera się odchylaniu go od pozycji spoczynkowej (punktu 1 na wykresie), a moment siły rośnie aż do osiągnięcia maksymalnej wartości w punkcie 3 wykresu – i jest to podstawowa wartość charakteryzująca osiągi silnika, podawana w katalogu jako holding torque.
W tym też punkcie wał odchylił się od punktu startowego dokładnie o jeden krok (sterowania pełnokrokowego). Dalsze obracanie wału silnika powoduje zmniejszenie się momentu siły, aż do wartości zerowej w punkcie 5 i odchyleniu o dwa kroki. Silnik nie generuje żadnego momentu, ale jest to punkt niestabilny – gdybyśmy teraz wał puścili „luzem”, cofnie się on o dwa kroki do pozycji wyjściowej lub przeskoczy o dwa kroki do przodu, do następnego stabilnego punktu równowagi.
Jednak wału nie puszczamy, tylko obracamy dalej. Moment siły generowany przez silnik zmienił kierunek na przeciwny – i jest coraz większy jeśli chodzi o wartość bezwzględną. Maksymalną wartość osiąga w punkcie 7, czyli na pozycji trzeciego kroku, później spada do zera, kończąc wykres w punkcie 1, na pełnym czwartym kroku. W zasadzie powinien tu być punkt 9, ale jest on identyczny z punktem 1, w końcu jest to funkcja okresowa, sinusoidalna.
Możemy sytuację odwrócić, utrzymując mechanicznie wał cały czas w początkowej pozycji, ale obracając wektor generowanego pola magnetycznego. Da się go płynnie obracać stosując wysokorozdzielcze sterowanie mikro-krokowe (a najlepiej analogowe – sinusoidalno-kosinusoidalne). Znów powstanie jeden okres funkcji sinusoidalnej, gdzie oś X reprezentuje kąt odchylenia wymuszenia (zamiast kąta obrócenia wału). Wartości momentu obrotowego będą identyczne z tym pierwszym wykresem.
Podsumowując – maksymalny moment obrotowy (zakładając na początek niewielkie prędkości obrotowe) silnik krokowy generuje wtedy, gdy wymuszenie wyprzedza pozycję wału silnika dokładnie o jeden pełny krok (dwa pół-kroki, cztery ćwierć-kroki i tak dalej). Gdybyśmy byli w stanie utrzymać takie wyprzedzenie przez dłuższy czas, silnik osiągnąłby maksymalne możliwe przyspieszenie lub opóźnienie (hamowanie) – i w takiej sytuacji wykorzystalibyśmy w pełni jego właściwości dynamiczne (najszybsze osiąganie ustalonych pozycji). Wymaga to jednak znajomości aktualnej pozycji wału, należałoby więc dodać czujnik położenia, o wystarczającej dokładności i rozdzielczości, przynajmniej czterokrotnie większej niż ilość kroków silnika liczona na pełny obrót. Komplikuje to jednak cały system, ginie tutaj największa zaleta silnika krokowego, jaką jest jego zdolność do poprawnej pracy bez czujnika położenia. Niemniej – w szczególnych sytuacjach – takie sterowanie, znane jako wektorowe, bywa implementowane. Częściej jednak uwzględnia się bezwładność rotora powiększona o czynnik wynikający z zewnętrznego obciążenia mechanicznego, a w powiązaniu z parametrem holding torque pozwala to obliczyć graniczne przyspieszenie/hamowanie osiągane w konkretnym systemie mechanicznym. Zakładając określony margines bezpieczeństwa (30% - 50%) w ustalonej proporcji ogranicza się przyspieszenie lub opóźnienie (zmianę częstotliwości wystawianych kroków lub mikro-kroków).
Jest jeszcze jeden aspekt działania silnika krokowego warty omówienia, czyli jego rezonans mechaniczny. Wynika on z obecności momentu bezwładności rotora (podawany w katalogach jako jeden z istotnych parametrów silnika krokowego), który należy powiązać z zaprezentowaną powyżej charakterystyką momentu siły w zależności od pozycji kątowej wału/rotora. Załóżmy, że odpowiednio wysterowany silnik znajduje się w pozycji spoczynkowej. Spróbujmy wymusić, elektrycznie i natychmiastowo, wykonanie jednego kroku (odwracamy kierunek prądu w jednej z cewek albo przeskakujemy z prądem z jednej cewki na drugą). Rotor dostaje impuls mechaniczny – pojawia się maksymalny moment siły, który rozpędza wał silnika. W momencie osiągnięcia pozycji docelowej moment siły co prawda jest zerowy, ale wał osiągnął maksymalną prędkość, więc rozpędzony porusza się dalej. Moment siły zmienia kierunek i staje się coraz większy w miarę oddalania się wału od punktu równowagi, więc ten wał zwalnia do prędkości zerowej – ale spory moment siły nadal działa, usiłując ściągnąć go do pozycji spoczynkowej. Wał zawraca, rozpędza się, mija punkt równowagi, znów zawraca – i robi takie oscylacyjne, stopniowo gasnące ruchy, mniej więcej jak ciężarek na sprężynie.
Interesujące wykresy takich oscylacji można znaleźć w różnych katalogach. Producenci w niektórych modelach proponują pewien rodzaj hamulca, który wygasza te (zazwyczaj niepożądane) oscylacje, lecz moim zdaniem lepiej zapanować nad nimi odpowiednim sterowaniem. Przykładowo, zamiast wykonać jeden duży krok można wypuścić serię mikrokroków, dającą w sumie cały krok. Sekwencja będzie trwała nieco dłużej, ale oscylacje się zmniejszą, co w sumie pozwoli na szybsze osiągnięcie nowej, stabilnej pozycji.
Można też podejść do zagadnienia w bardziej wyrafinowany sposób. Zamiast „w ciemno” wystawiać jeden krok i bezradnie przyglądać się oscylacjom zacznijmy tak samo, od wystawienia pełnego kroku, ale zanim jeszcze wał osiągnie docelową pozycję (a już jest rozpędzony) wystawmy na jakiś czas krok w przeciwną stronę (zawczasu hamując). Odpowiednio dobrana w czasie sekwencja impulsów prądowych sprawi, że silnik wykona jeden idealny (i najszybszy z możliwych) krok, zatrzymując się w docelowej pozycji bez jakichkolwiek oscylacji. Można całkiem dobrze nad silnikiem krokowym zapanować nawet bez stosowania czujnika pozycji wału, modelując i przewidując (w najprostszy z możliwych sposób) jego zachowanie. Potrzebne są tylko trzy parametry, najlepiej wyznaczone doświadczalnie: przelicznik wartości prądu w cewkach na moment siły, bezwładność układu mechanicznego oraz tłumienie.
To jest tylko jeden z przykładów na to, w jaki sposób można poprawić sterowanie silnika krokowego. Jeśli będzie znana (zmierzona czujnikiem położenia lub „odgadnięta” na zasadzie wewnętrznych obliczeń numerycznych) dokładna pozycja wału (rotora) silnika w każdym momencie oraz możliwe wysterowanie jednej i drugiej cewki dowolnym prądem, uda się wygenerować dowolny moment siły, od zerowego do maksymalnego (w danych warunkach pracy silnika), rozpędzającej lub hamującej. To z kolei pozwoli na dowolne i „gładkie” sterowanie prędkością czy pozycją wału, podobnie jak w liniowych silnikach prądu stałego.
Podkreślę na koniec, że przedstawiono tutaj tylko uproszczony zarys teorii sterowania silnika krokowego. Pojawiają się różnego rodzaju komplikacje, na przykład wynikające z nierównomiernego podziału kroków na mikro-kroki. Przy zwiększaniu prędkości silnika krokowego spada jego wydajność (generowany moment siły), aż do wartości zerowej przy wysokiej, granicznej prędkości obrotowej. Warto w niektórych sytuacjach uwzględnić histerezę magnetyczną a także siłę elektromotoryczną generowaną w cewkach, z grubsza proporcjonalną do prędkości obrotowej silnika. Te zjawiska trzeba uwzględniać projektując własne, specjalne wersje sterowników silników krokowych.
Zupełnie osobnym zagadnieniem jest kompatybilność elektromagnetyczna sterowników silników krokowych. W ogromnej większości przypadków regulacja wartości prądów cewek realizowana jest impulsowo, z częstotliwością przełączania z zakresu od setek herców do setek kiloherców, jednak powtarzane z taką częstotliwością impulsy prądowe mają składowe sięgające setek megaherców. Te szkodliwe dla okolicznej elektroniki sygnały propagują się wprost w kablach łączących cewki silników ze sterownikami (niekiedy muszą one mieć wielometrowe długości). W firmie AM-PM opracowano specjalne wersje sterowników, które w znaczący sposób ograniczają generowanie zakłóceń elektromagnetycznych.