Nr 64 Prace Naukowe Instytutu Maszyn, Napędów i Pomiarów Elektrycznych Politechniki Wrocławskiej Nr 64 Studia i Materiały Nr 30 2010 Mikrokontroler ARM, silnik z magnesami trwałymi, metody sterowania silnikami Krzysztof P. DYRCZ*, Maciej FAŚCISZEWSKI STANOWISKO DO BADANIA METOD STEROWANIA SILNIKAMI Z MAGNESAMI TRWAŁYMI WYKORZYSTUJĄCE MIKROKONTROLER ARM W artykule przedstawiono koncepcję budowy stanowiska do badania metod sterowania silnikami z magnesami trwałymi. Do budowy układu sterowania wykorzystano nowoczesny, wydajny obliczeniowo mikrokontroler ARM, który umożliwia implementację wybranej metody sterowania w rzeczywistym układzie laboratoryjnym. Układ sterowania współpracuje ze specjalnym oprogramowaniem zainstalowanym na komputerze PC, umożliwiającym konfigurację stanowiska, akwizycję wymaganych wielkości pomiarowych oraz wyświetlanie wybranych przebiegów czasowych. Stanowisko wykonano w ramach magisterskiej pracy dyplomowej [1]. 1. WSTĘP W ostatnich latach obserwuje się dynamiczny rozwój metod sterowania silnikami elektrycznymi. Jest to spowodowane rosnącym zapotrzebowaniem na nowoczesne, regulowane napędy elektryczne, które muszą spełniać wysokie wymagania eksploatacyjne stawiane przez użytkowników. W chwili obecnej, w technice napędowej używane są różnego rodzaju silniki elektryczne, z których, jak się wydaje, coraz chętniej stosowane są silniki z magnesami trwałymi, w różnych odmianach konstrukcyjnych. Powodem większego zainteresowania tego rodzaju silnikami są z pewnością takie cechy jak stosunkowo wysokie momenty elektromagnetyczne wytwarzane przez silniki z magnesami trwałymi, duża przeciążalność, wysoka niezawodność pracy, a także z pewnością, coraz korzystniejsza cena spowodowana stosowaniem do ich budowy coraz tańszych i lepszych materiałów magnetycznych. __________ * Politechnika Wrocławska, Instytut Maszyn, Napędów i Pomiarów Elektrycznych, ul. Smoluchowskiego 19, 50-372 Wrocław. 2 W procesie opracowywania i testowania metod sterowania silnikami elektrycznymi, po wykonaniu serii badań symulacyjnych pojawia się konieczność wykonania badań laboratoryjnych, mających na celu sprawdzenie badanej metody sterowania na obiekcie rzeczywistym. W związku z tym, istnieje konieczność skonstruowania zestawu napędowego, który zapewni możliwość wykonania takich badań. Ze względu na eksperymentalny charakter prowadzonych prac, stanowisko takie powinno mieć przemyślaną budowę, umożliwiającą możliwie łatwą rekonfigurację sprzętową. W niniejszym artykule opisano prototypowe stanowisko laboratoryjne do badania metod sterowania silnikami z magnesami trwałymi. Przyjęto modułową budowę całego zestawu, umożliwiając swobodną konfigurację stanowiska w zależności od badanych silników. W proponowanym rozwiązaniu zastosowano miniaturowe silniki z magnesami trwałymi, w związku z tym skonstruowano także falownik o niewielkiej mocy wyjściowej. Należy jednak zauważyć, że mikroprocesorowy sterownik układu oraz główny program sterujący, uruchamiany na komputerze PC są niezależne od wielkości sterowanych silników i umożliwiają, po odpowiedniej konfiguracji torów pomiarowych i zastosowaniu falownika o wymaganej mocy wyjściowej sterowanie praktycznie dowolnym silnikiem. 2. STANOWISKO LABORATORYJNE 2.1. BUDOWA STANOWISKA Opisywane stanowisko laboratoryjne funkcjonalnie podzielono na dwie współpracujące ze sobą części: część informatyczną, składającą się z oprogramowania zarządzającego pracą układu oraz służącego do wizualizacji wybranych zmiennych, zainstalowanego na komputerze PC, część mechaniczną, składającą się z mikroprocesorowego sterownika oraz badanego układu napędowego. W niniejszym rozdziale opisano część mechaniczną stanowiska laboratoryjnego, natomiast oprogramowanie sterownika i komputera PC przedstawiono w rozdz. 3. Wygląd części elektronicznej sterownika pokazano na rysunku 1. Sterownik podzielony został na cztery współpracujące moduły: moduł cyfrowy, moduł analogowy, moduł programatora, moduł falownika. 3 Rys. 1. Budowa sterownika Fig. 1. Structure of controller 2.2. MODUŁ CYFROWY Moduł cyfrowy stanowi podstawowy element składowy opisywanego układu. Zbudowany został przy użyciu mikrokontrolera STM32f103RET6 i został zaprojektowany jako uniwersalny sterownik układów napędowych. Z tego powodu wyposażony został m. in. w trójfazowe, komplementarne wyjście PWM, oraz cztery wejścia analogowe, z czego trzy mogą być próbkowane równocześnie. Przewidziano również możliwość podłączeniea enkodera inkrementalnego z wyjściami różnicowymi, zasilanego napięciem 5V. Dodatkowo, moduł wyposażony jest w złącza komunikacyjne interfejsów JTAG, UART oraz CAN. Uproszczony schemat modułu cyfrowej sterownika przedstawiono na rysunku 2. 4 FT2232D JTAG UART PC 75173 STM32F103RET6 Enkoder ANALOG 74LVC4245 3,3V T 5 A D C SPI 5V PWM oe I/O PWM 5V Falownik 3,3V ATMEGA 16L OR Rys. 2. Budowa modułu cyfrowego Fig. 2. Architecture of digital module Podstawowym elementem modułu jest mikrokontroler STM32F103RET6 [4]. Na płytce umieszczono również konwertery poziomów napięć 3,3V/5V oraz mikrokontroler pomocniczy ATMEGA16L [5], obsługujący wejścia/wyjścia cyfrowe oraz dodatkowe sygnały PWM. Architektura układu pozwala na zabezpieczenie części mocy przez wyłączenie sygnału sterującego, przy czym źródłem sygnału błędu może być sygnał błędu pochodzący z falownika, przekroczenie wielkości wartości analogowej, oraz sygnał błędu z mikrokontrolera pomocniczego. Nadrzędny sygnał błędu, generowany jako suma wyżej wymienionych, odczytywany jest na wejściu asynchronicznego resetu timera opowiadającego za generację przebiegu PWM. Dodatkowo mikrokontroler pomocniczy ma możliwość wyłączenia sygnału sterującego przez kontrolę wejścia output enable bufora wyjściowego. 2.3. MODUŁ ANALOGOWY Nowoczesne algorytmy sterowania układami napędowymi wymagają pomiaru dostępnych zmiennych stanu silnika, przy czym minimalnym zestawem zmiennych stanu są prądy oraz napięcia fazowe. Przetwornik analogowo-cyfrowy zastosowany w prezentowanym układzie umożliwia jednoczesny pomiar trzech wielkości. Z tego powodu zdecydowano, że podstawowymi wielkościami mierzonymi będą dwa prądy fazowe oraz napięcie w obwodzie pośredniczącym falownika. Dzięki temu możliwe 5 jest odtworzenie trzeciego prądu fazowego silnika dla obciążeń połączonych w gwiazdę oraz napięć fazowych na podstawie sekwencji załączeń kluczy. Schemat toru pomiarowego prądu przedstawiono na rysunku 3. U C Algorytm U U U C A/C Wzmacniacz I U Rezystor I I LEM Rys. 3. Budowa analogowego toru przetwarzania Fig. 3. Architecture of analog module Do pomiaru prądu zastosowano przekładniki prądowe LA100P firmy LEM. Prądowy sygnał wyjściowy zamieniany jest na sygnał napięciowy na rezystorze pomiarowym i stanowi sygnał wejściowy dla wzmacniacza operacyjnego, który ma za zadanie dopasowanie poziomu napięć mierzonych (przekładnik prądowy jest bipolarny) do napięcia zakresu wejściowego przetwornika A/C (0..3.3V). Dodatkowo zadaniem wzmacniacza jest skompensowanie offsetu przekładnika oraz błędu wzmocnienia spowodowanego zastosowanym rezystorem. Jako wzmacniacz operacyjny wykorzystano układ AD8130. Jest to szybki wzmacniacz operacyjny z aktywnym sprzężeniem zwrotnym, tłumieniem sygnału wejściowego mniejszym od 0.1dB w paśmie pracy układu do 24Mhz oraz szybkością narostu napięcia równą ok. 1kV/µs. Częstotliwość odcięcia (-3dB) wzmacniacza operacyjnego ustawiono filtrem RC na około 2MHz, w związku z tym ograniczenie pasma części analogowej toru pomiarowego jest rezultatem ograniczenia pasma przetwornika pomiarowego w celu osiągnięcia jak najmniejszego błędu fazy. Z tego powodu pomiar prądu realizowany jest w środku czasu załączenia wektora zerowego – wówczas prąd osiąga wartość średnią, oddaloną maksymalnie od przepięć komutacyjnych. Dodatkowo w przetworniku A/C czas próbkowania jest ustawiony na minimalny. 2.4. MODUŁ PROGRAMATORA Moduł programatora umożliwia zmianę oprogramowania mikrokontrolera, dzięki czemu możliwa jest implementacja różnych metod sterowania silnika. Programator połączony jest z mikrokontrolerem za pomocą złącza JTAG, dzięki czemu możliwe jest również debugowanie programu mikrokontrolera w czasie rzeczywistym. 6 2.5. MODUŁ FALOWNIKA W proponowanym układzie zastosowano miniaturowy falownik napięcia dostosowany do silników małej mocy, o konstrukcji typowego trójfazowego falownika napięcia. Jako klucze zastosowano tranzystory MOSFET, ponadto falownik wyposażono w zabezpieczenie przeciążeniowe oraz układ separujący, zabezpieczający wyjścia PWM mikrokontrolera w przypadku awarii falownika. 3. OPROGRAMOWANIE 3.1. WPROWADZENIE Oprogramowanie sterownika zostało podzielone na dwie części: część sprzętową, zaimplementowaną w głównym mikrokontrolerze sterującym (stanowiące pewnego rodzaju firmware), oraz interfejs użytkownika zrealizowany na komputerze PC. Taki podział oprogramowania zastosowano ze względu na optymalizację szybkości wykonywania algorytmów sterowania, a także w celu uproszczenia akwizycji danych pomiarowych, prezentacji wybranych przebiegów czasowych oraz uproszczenia sposobu sterowania systemem. 3.2. OPROGRAMOWANIE SPRZĘTOWE Oprogramowanie sprzętowe, zaimplementowane w mikrokontrolerze sterującym zostało podzielone funkcjonalnie na trzy warstwy: - warstwa pośrednicząca z układami wykonawczymi, - warstwa implementacji algorytmów sterowania, - warstwa główna, łącząca dwie wcześniej wymienione warstwy oraz umożliwiająca komunikację z komputerem nadrzędnym PC. Dzięki takiemu podziałowi uzyskano przejrzystą strukturę programu, umożliwiającą stosunkowo łatwą zmianę oprogramowania w przypadku zmiany struktury sterowania lub struktury sprzętowej układu: stworzono elastyczne środowisko umożliwiające rozwój programu na zastosowanej platformie CORTEX M3. Główna struktura programu zawarta została w procedurze obsługi przerwania zegara T5 mikrokontrolera. Jest ona wykonywana w każdym cyklu przebiegu PWM, a obliczone wartości ładowane są do sprzętowego bufora. Następnie po wyzerowaniu 7 licznika, dzięki systemowi zdarzeń równolegle obliczone wcześniej wartości z bufora sprzętowego przekazywane są do bloku modulatora szerokości impulsu SVM, rozpoczynana jest konwersja oraz wywoływana jest ponownie funkcja obsługi przerwania. Należy zauważyć, że niektóre fragmenty oprogramowania są stałe (procedury pomiaru, procedura generowania SVM), natomiast niektóre zależą od wybranej metody sterowania. Schemat blokowy obsługi przerwania przedstawiono na rysunku 4. ISR(T5) start Funkcje obliczeniowe Konwersja współrzędnych Regulacja Przeliczenie współrzędnych Elementy programu zależne od wybranej struktury sterowania Analiza pomiarów SVM Koniec Rys. 4. Schemat blokowy obsługi przerwania Fig. 4. Diagram of interrupt service Ze względu na współpracę oprogramowania sterownika z komputerem PC, istotnym problemem jest sposób komunikacji pomiędzy urządzeniami. Do tego celu zastosowano programowy moduł pcComm, który za pomocą portu UART 8 wykorzystującego sprzętowe sterowanie przepływem oraz dostęp do kontrolera DMA umożliwia wymianę danych z prędkością transmisji dochodzącą do 4MBit/s. Zastosowany algorytm, korzystając z funkcji z grupy PcCommSetVar umożliwia sterowanie jedną z pięćdziesięciu zdefiniowanych zmiennych. Ze względu na ograniczone pasmo możliwe jest przesłanie w czasie rzeczywistym maksymalnie pięciu zmiennych, przy czym wyboru zestawu zmiennych przesyłanych do komputera oraz dwóch zmiennych przekazywanych do przetwornika C/A można dokonać wysyłając odpowiednią komendę z komputera PC z poziomu aplikacji zarządzającej. Algorytm wyposażono w mechanizmy bezpieczeństwa umożliwiające zawieszenie nadawania oraz awaryjne wyłączenie sterownika. Schemat opisanego modułu komunikacji przedstawiono na rysunku 5. 5 50 C/A Bufor zmiennych Bufor nadawczy Zmienne Algorytm Bufor zapisu DMA Wybór UART Zmiennych Komendy Bufor komend DMA Rys. 5. Budowa modułu komunikacji Fig. 5. Architecture of communication module 3.3. INTERFEJS UŻYTKOWNIKA Zaproponowany interfejs użytkownika zapewnia pełną kontrolę nad pracą stanowiska laboratoryjnego, umożliwia wybór algorytmu sterowania a także akwizycję danych pomiarowych i podgląd wybranych przebiegów czasowych. Struktura oprogramowania jest złożona i składa się z kilku współpracujących ze sobą modułów programowych. Schemat blokowy programu pokazano na rysunku 6. 9 PC CDC Matlab Ster. Sterowniki Plik CSV Serial Input USB USB/ UART Profilic Windows 4MBit IUP GL_Plot SPRZĘT Skrypt UserArray LUA OPEN GL Rys. 6. Schemat blokowy interfejsu użytkownika Fig. 6. User interface diagram Program główny napisano w języku skryptowy LUA. Z programem głównym współpracują biblioteki umożliwiające obsługę portu szeregowego oraz umożliwiające tworzenie wykresów z wykorzystaniem przyśpieszonej sprzętowo biblioteki graficznej OpenGL. Jako zestaw kontrolek, stanowiących podstawę interfejsu użytkownika wykorzystano bibliotekę IUP. Dzięki takiemu podejściu stworzono proste, uniwersalne środowisko przeznaczone do tworzenia szybkich, lokalnych interfejsów współpracujących ze sprzętem w czasie rzeczywistym. Wykorzystanie języka skryptowego LUA spowodowało, że złożona aplikacja składa się jedynie z około 500 linii programowych. Zaproponowany interfejs współpracujący ze sterownikiem pozwala na: - jednoczesny podgląd pięciu zmiennych, przy czym cztery z nich grupowane są parami i przedstawione za pomocą hodografu, - zmianę stanu jednej z szesnastu zmiennych binarnych, - wybór wyświetlanych oraz przesyłanych do przetwornika C/A zmiennych, - ustawienie wartości sześciu zmiennych (np. prędkość zadana), - ustawienie decymacji próbek, - awaryjne zatrzymanie sterownika, - zapis otrzymanych przebiegów do pliku CSV. Wygląd okna graficznego interfejsu pokazano na rysunku 7. 10 Rys. 6. Wygląd okna interfejsu użytkownika Fig. 6. User interface window 4. PRZYKŁAD ZASTOSOWANIA Przedstawione w artykule stanowisko laboratoryjne wykorzystano do przeprowadzenia przykładowych badań układu napędowego z miniaturowym silnikiem z magnesami trwałymi stosowanym w napędach komputerowych twardych dysków. Wygląd układu napędowego pokazano na rysunku 7. Rys. 7. Testowany układ napędowy Fig. 7. Tested electrical drive 11 Działanie przedstawionego układu napędowego przetestowano w typowej strukturze sterowania polowo-zorientowanego przedstawionej na rysunku 8, przy czym do estymacji zmiennych stanu zastosowano obserwator opisany w [2], [3]. dq ωz SVM PI PI ω Falownik + układ napędowy - αβ Θ i Θω estymator Pomiar e, Θ, ω αβ u Rys. 8. Struktura sterowania badanego silnika Fig. 8. Control structure of tested machine Na rysunku 9 pokazano przykładowe przebiegi prędkości uzyskane podczas eksperymentu, natomiast na rysunku 10 pokazano hodograf prądu dla silnika nieobciążonego i obciążonego momentem znamionowym. 6000 5000 n[obr/min] 4000 nest 3000 2000 nz nm 1000 0 -1000 0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 t[s] Rys. 9. Przebiegi prędkości zadanej nz, mierzonej nm i estymowanej nest w badanym układzie Fig. 9. Graph of reference nz, measured nm and estimated nest speed 12 1.5 Silnik obciążony bieg jałowy 1 I [A] 0.5 0 -0.5 -1 -1.5 -1.5 -1 -0.5 0 I [A] 0.5 1 1.5 Rys. 10. Hodograf składowych prądu i, i Fig. 10. Hodograph of current component i, i 5. UWAGI W artykule przedstawiono koncepcję budowy uniwersalnego stanowiska laboratoryjnego do badania metod sterowania silnikami z magnesami trwałymi. Przyjęta modułowa budowa zestawu umożliwia stosunkowo łatwą zmianę konfiguracji lub rozbudowę układu w zależności od badanego silnika, przy czym zaprojektowany falownik napięcia umożliwia zasilanie silnika o prądach fazowych nie przekraczających 5A. Ponieważ sterownik mikroprocesorowy wyposażony jest w uniwersalne wyjścia PWM, w przypadku badania silnika o większych prądach fazowych można wykorzystać je do sterowania falownikiem o mocy odpowiedniej do badanego silnika, pamiętając o zastosowaniu odpowiednich układów pomiarowych prądów i napięć zasilających silnik. W trakcie testów laboratoryjnych okazało się także, że przyjęta koncepcja oprogramowania jest prawidłowa, zastosowane rozwiązania zapewniają szybką komunikację pomiędzy sterownikiem mikroprocesorowym a komputerem PC umożliwiając akwizycję danych pomiarowych i wykreślanie wybranych przebiegów w czasie rzeczywistym. 13 LITERATURA [1] FAŚCISZEWSKI M., Sterowanie silnikiem PMSM z wykorzystaniem mikrokontrolera ARM. Magisterska praca dyplomowa, Wrocław 2010, [2] KOWALSKA-ORŁOWSKA T., Bezczujnikowe układy napędowe z silnikami indukcyjnymi. Oficyna wydawnicza Politechniki Wrocławskiej. Wrocław 2003. [3] ZAWIRSKI K., Sterowanie silnikiem synchronicznym o magnesach trwałych. Wydawnictwo Politechniki Poznańskiej, Poznań 2005. [4] STMicroelectronics, STM32F103xC/D/E, Ref. Manual, September 2009. [5] ATMEL, 8-bit microcontroller with 16K Bytes In-System Programmable Flash, Ref. Manual, 2009 LABORATORY SET TO INVESTIGATION OF PERMANENT MAGNET MACHINE CONTROL METHODS USING ARM MICROCONTROLLER The conception of building of universal laboratory set to investigation of control methods of permanent magnet machine was presented. Thanks use of the modern, computationally effective ARM family microcontroller, implementation of the chosen control method in the real laboratory set is possible. Control system co-operating with special installed on PC software enabling the controller configuration, acquisition the required measuring variables and drawing chosen temporary diagrams.