ROBOTY PRZEMYSŁOWE LABORATORIUM SILNIKI SKOKOWE Autorzy: Marcin Banas Tomasz Bielecki Emil Kubicki 1
Kielce 2006 1. Wstęp Silnik skokowy (krokowy), jest przetwornikiem energii przetwarzającym sygnały elektryczne (ciąg impulsów sterujących) w mechaniczne przesunięcie kątowe o charakterze dyskretnym. Kąt obrotu wału silnika skokowego jest proporcjonalne do liczby impulsów sterujących, a prędkość silnika do częstotliwości tych impulsów. Impuls sterujący powoduje, że cewki (w przypadku uzwojenia skupionego) lub pasma (w przypadku uzwojenia rozłożonego) uzwojenia wzbudzenia silnika zostają, za pośrednictwem komutatora elektronicznego, zasilone określonym układem napięć utrzymywanym na nich do czasu pojawienia się następnego impulsu sterującego powodującego zmianę układu napięć. Powoduje to zmianę rozpływu prądu w uzwojenia silnika i skokową zmianę kierunku strumienia magnetycznego, a co za tym idzie obrót wirnika o określony kąt zwany skokiem. Stany elektryczne uzwojenia noszą nazwę taktów komutacji. Tworzą one cykl komutacji. Cyklowi odpowiada taka liczba taktów komutacji (skoków wirnika), dla której wał wirnika wykona 360 0 obrotu. 2. Zasada działania Zasada działania zostanie przedstawiona na przykładzie prostego modelu silnika o wirniku czynnym w postaci dwubiegunowego magnesu trwałego ( p=1), którego stojan ma dwa pasma uzwojenia sterującego. Minimalny skok wirnika można obliczyć ze wzoru: Π p m Rozpatrywany silnik ma komutację czterotaktową: 1 - Po zasileniu cewki 1 napięciem o dodatniej biegunowości, wytworzy ona strumień a wirnik zajmie położenie by kierunek jego strumienia był zgodny z kierunkiem strumienia stojana, 2 - Po zasileniu cewki 2 napięciem o dodatniej biegunowości strumień zmieni kierunek o 90 0, co spowoduje obrót wirnika o ten sam kąt, 3 - Zasilając cewkę 1 napięciem o ujemnej biegunowości otrzymamy strumień przemieszczony o kąt 90 0 w porównaniu z taktem 2
poprzednim, wirnik znów podąży za tą zmianą tak jak to jest pokazane na rysunku poniżej, 4 - W ostatnim takcie zasilamy cewkę 2 napięciem o ujemnej biegunowości, w wyniku czego otrzymujemy analogiczny skutek jak w pozostałych taktach. Cały takt komutacji możemy zapisać w postaci: (+1) (+2) (-1) (-2). W przypadku zastosowania silnika skokowego o wirniku biernym reluktancyjnym, który nie rozróżnia zmiany zwrotu wektoru strumienia należy zastosować cztery pasma uzwojenia. Układ komutacji takiego silnika jest pokazany poniżej: a) b) Komutator silnika skokowego: A,B,C,D - kolejne pasma silnika czteropasmowego, T - wejście impulsów taktujących, K - wejście sygnału kierunku 3
a) - wzbudzanie pasma A po pierwszym impulsie taktu na wejściu T b) - wzbudzanie pasma B po drugim impulsie taktu na wejściu T W pierwszym przypadku zmienialiśmy biegunowość napięcia sterującego, taki sposób jest nazywany komutacją bipolarną. Natomiast w przypadku niezmieniania biegunowości mamy do czynienia z komutacją unipolarną. Pasma silnika mogą być wzbudzane pojedynczo, parami lub według innych zasad dostosowanych do jego budowy (np. przy czterech pasmach możemy w ośmiu taktach zasilać na przemian jedną lub dwie cewki). Jeśli w czasie działania maszyny sposób ten nie jest zmieniany, mówi się o komutacji symetrycznej. Łatwo zauważyć że w przypadku komutacji niesymetrycznej, zwiększa się dwukrotnie liczba taktów w cyklu, a tym samym zmniejsza się dwukrotnie skok wirnika silnika. Przykładem może być często stosowany sposób nazywany 1/4. Oznacza to, że w każdej chwili tylko jedno z pasm jest wzbudzane, a liczba występujących kombinacji zasilania wynosi 4. Innym równie często stosowanym algorytmem zasilania jest 2/4, czyli tzw. zasilanie pasm parami. Jest to sposób pozwalający na lepsze wykorzystanie miedzi uzwojenia. Na rysunku poniżej pokazano wyidealizowany wykres obrazujący przebiegi prądów w pasmach silnika komutowanego w taki sposób. W przedstawionym przypadku przełączenie komutatora następuje pod wpływem ujemnego zbocza impulsu taktującego. Komutacja unipolarna czterech pasm parami wg algorytmu 2/4 (przebiegi wyidealizowane) u - napięcie taktujące, t - czas, i A, i B, B ic, i D - prądy w pasmach A, B, C i D 4
Komutacja bipolarna dwóch pasm parami wg algorytmu 2/4 (przebiegi wyidealizowane) i A, i B, B - prądy w pasmach A i B Aby uzyskiwać jak najmniejsze skoki wirnika możemy zwiększać liczbę par biegunów wirnika lub liczbę pasm uzwojenia., jest to jednak kłopotliwe ze względów konstrukcyjnych. Innym sposobem może być stopniowe przełączanie prądów w poszczególnych pasmach, co uzyskujemy metodami elektronicznymi. Przykład uzyskiwania mikroskoków jest pokazany poniżej: Komutacja bipolarna dwóch pasm parami z podziałem na mikroskoki (przebiegi wyidealizowane) i A, i B, B - prądy w pasmach A i B 5
Skutkiem tego wytwarzany przez te prądy wypadkowy strumień magnetyczny w stojanie również stopniowo zmienia swoje położenie kątowe. Na rysunku pokazano podział skoku na 5 mikroskoków. Podział taki, choć możliwy jak każdy inny, bywa rzadko stosowany ze względu na znaczne komplikacje układowe. Najczęściej stosowane są podziały na 2 n części, gdzie n - jest dowolną liczbą naturalną. Podział na więcej niż 32 lub 64 mikroskoki bywa często tylko iluzoryczny. Co prawda komutator wysteruje uzwojenia zadanymi prądami, jednak wirnik silnika może na to nie zareagować ze względu na istniejące tarcie w napędzanych mechanizmach. Kolejny mikroskok może też nie wywołać ruchu, a następny spowoduje skok o wartości nadrabiającej zaległości, a więc także innej niż zadana. Im większe tarcie suche w mechanizmie napędzanym przez silnik skokowy, tym bardziej prawdopodobne wadliwe realizowanie podziału skoku na mikroskoki. 3. Zalety i wady Zalety: - kąt obrotu silnika jest proporcjonalny do ilości impulsów wejściowych, - silnik pracuje z pełnym momentem w stanie spoczynku (o ile uzwojenia są zasilane), - precyzyjne pozycjonowanie i powtarzalność ruchu - dobre silniki krokowe mają dokładność ok. 3-5% kroku i błąd ten nie kumuluje się z kroku na krok, - możliwość bardzo szybkiego rozbiegu, hamowania i zmiany kierunku, - niezawodne - ze względu na brak szczotek. żywotność silnika zależy zatem tylko od żywotności łożysk, - zależność obrotów silnika od dyskretnych impulsów umożliwia sterowanie w pętli otwartej, przez co silnik krokowy jest łatwiejszy i tańszy w sterowaniu, - możliwość osiągnięcia bardzo niskich prędkości synchronicznych obrotów z obciążeniem umocowanym bezpośrednio na osi, - szeroki zakres prędkości obrotowych uzyskiwany dzięki temu, że prędkość jest proporcjonalna do częstotliwości impulsów wejściowych, - jedną z najbardziej znaczących zalet silnika krokowego jest możliwość dokładnego sterowania w pętli otwartej. Praca w pętli otwartej oznacza, że nie potrzeba sprzężenia zwrotnego - informacji o położeniu. Takie sterowanie eliminuje potrzebę stosowania kosztownych urządzeń sprzężenia zwrotnego, takich jak enkodery optoelektroniczne. Pozycje znajduje się zliczając impulsy wejściowe. 6
Wady: - rezonanse mechaniczne pojawiające się przy niewłaściwym sterowaniu, - trudności przy pracy z bardzo dużymi prędkościami. 4. Zastosowanie Ze względu na wymienione cechy charakterystyczne silniki skokowe znalazły bardzo wiele różnorodnych zastosowań. Ich udział ilościowy w całej grupie małych maszyn elektrycznych przekracza 15 % i stale rośnie. Znaleźć je można wszędzie tam, gdzie wymagane jest precyzyjne pozycjonowanie kątowe lub liniowe. Najwięcej silników skokowych znajduje się w komputerach i urządzeniach peryferyjnych do nich (stacjach dyskietek, dysków twardych, czytnikach i nagrywarkach płyt CD, DVD, drukarkach, skanerach). W każdym komputerze domowym jest kilka takich silników. Drugą grupą urządzeń powszechnego użytku, w których znaleźć można wiele różnorodnych silników skokowych, są wyroby mechanizujące prace biurowe, zapisujące i odczytujące informacje dźwiękowe oraz obrazowe, a także zegary i zegarki z regulatorem kwarcowym. Nowoczesne aparaty fotograficzne, kamery wideo, rzutniki obrazów i projektory, pozycjonery anten satelitarnych, telefaksy mają w swej budowie silniki skokowe. Setki milionów silników skokowych pracuje na całym świecie w urządzeniach technologicznych, a wśród nich w robotach, manipulatorach, pozycjonerach, drukarkach kodów, układach selekcji, w maszynach sprzedających, pakujących i wielu, wielu innych. Silniki do zastosowań technologicznych, a szerzej, profesjonalnych - często nazywa się elektromaszynowymi elementami automatyki [2, 7] wyróżniając tą nazwą maszyny o szczególnie wysokiej jakości wykonania i stabilności parametrów. Podobnie wysokie wymagania odnośnie jakości wykonania i dokładności ruchu stawiane są silnikom stosowanym do budowy aparatury medycznej, jeszcze wyższe do urządzeń militarnych i lotnictwa, a najwyższe do sprzętu kosmicznego. 7
Na rysunku poniżej zestawiono typowe zastosowania silników skokowych. 5. Przykładowy program #include "5510drv.h" #include <conio.h> void main() unsigned char type[4]; int ch, i, aiv[32]; char c; unsigned char chmask[4], ab; ch=0; for(i=0;i<4;i++) type[i]=get_boardid(i); // do funkcji Get_BoardID(int) wprowadzamy numer slotu a ona zwraca nam nazwe modelu karty 8
for(i=0;i<4;i++) printf("wykorzystanie funkcji Get_BoardID(int) \n"); printf("slot numer %d urzadzenie %s \n",i+1,type[i]); // wyswietlenie informacji o numerze slotu w ktorym znajduje sie karta i modelu karty printf("nacisnij dowolny klawisz \n");getch(); printf("wykorzystanie funkcji Init501718(int) \n"); printf("inicjalizacja ADAM-5018 \n"); Init501718(1); // inicjalizacja karty w slocie podanym w postaci argumentu printf("wykorzystanie funkcji AiUpdate(int,int*) \n"); printf("wykorzystanie funkcji Get501718(int,int,int*) \n"); printf("odczyt danych \n"); for(i=0;i<7;i++) while(aiupdate(1, &ch)!=0); /* w pierwszym argumencie podajemy slot, drugi zwraca numer kanalu (0-7), natomiast cala funkcja czy kanal jest gotowy (wartosc 0), nie gotowy (wartosc -1) lub tez popsuty modul wejsc analogowych (wartosc -2) */ Get501718(1, ch, &(aiv[ch])); /* funkcja jest typu void, pierwszy argument to numer slotu drugi to numer kanału a trzeci argument zwraca wartość danych z określonego kanału */ printf("nacisnij 'Q', aby opuscic program..\n"); while(1) if(aiupdate(1, &ch)==0) // jesli kanal jest gotowy to wykonuj... Get501718(1, 0, &(aiv[ch])); printf("kanal %d wartosc=%d \n",0,aiv[ch]); // sprawdzenie wartosci w kanale 0 ab=1; 9
if(aiv[ch]>320) Set5068(&ab,0,0,ABit); /* jesli w kanale ch jest wartosc wieksza od 320 to wyjscie cyfrowe o numerze 0 ustaw w stan wysoki */ ab=0; if(aiv[ch]<300) Set5068(&ab,0,0,ABit); /* jesli w kanale ch jest wartosc mniejsza od 300 to wyjscie cyfrowe o numerze 0 ustaw w stan niski */ if( kbhit()) c=getch(); if( c == 'q' c == 'Q') break; 6. Literatura 1. Norma branżowa BN-81/3016-10. Maszyny elektryczne. Elementy automatyki. Silniki skokowe. Wymagania i badania. 2. Polska Norma PN-87/E-01006: Maszyny elektryczne. Elementy automatyki. Terminologia. 3. Polska Norma PN-E-06836: Maszyny elektryczne wirujące. Maszyny do sterowania. Silniki skokowe. 4. Jaszczuk W., Wierciak J., Bodnicki M.: Napędy elekromechaniczne urządzeń precyzyjnych. Oficyna Wydawnicza Politechniki Warszawskiej, Warszawa, 2000 5. Pustoła J.: Przegląd danych charakterystycznych silników krokowych. Pomiary Automatyka Kontrola, nr 8/1968 6. Pustoła J.: Parametry i możliwości stosowania krajowych silników skokowych. Pomiary Automatyka Kontrola, nr 12/1971 7. Sochocki R.: Mikromaszyny elektryczne. Oficyna wydawnicza Politechniki Warszawskiej. Warszawa 1996 8. Wróbel T.: Silniki skokowe. Wydawnictwa Naukowo-Techniczne.Warszawa, 1993 10