Sterowanie silnikiem krokowym
Transkrypt
Sterowanie silnikiem krokowym
Sterowanie silnikiem krokowym Arkadiusz Lewicki 1. Wstęp Zestaw laboratoryjny składa się z silnika krokowego FB-20 wraz z przekształtnikiem z tranzystorami MOSFET (rys.1). Przekształtnik zasilany jest z napięcia stałego o 24 V. Wartość prądu uzwojeń silnika ograniczana jest rezystorem wbudowanym w przekształtnik. Sterowanie przekształtnikiem realizowane jest przez układ laboratoryjny ZLA1 z procesorem sygnałowym ADSP i układem programowalnym FPGA. Układ FPGA służy wyłącznie do wystawiania do przekształtnika sygnałów sterujących tranzystorami. Generowanie sygnałów sterujących przekształtnikiem realizowane jest przez procesor sygnałowy. Jedynka logiczna „1” aktywuje tranzystor, który jest załączany co powoduje podanie napięcia na odpowiednie uzwojenie silnika. Rys. 1. Układ połączeń czteropasmowego unipolarnego silnika krokowego typu FB20 2. Struktura oprogramowania sterującego Program sterujący pracą przekształtnika realizowany jest w przerwaniach, wywoływanych, co 150 s. Jest to najkrótszy czas generowania impulsu aktywującego tranzystory przekształtnika. W celu zwiększenie długości impulsów należy w mikroprocesorze utrzymywać stan odpowiedniej zmiennej sterującej przez kilka, kilkaset lub kilka tysięcy przerwań (10 przerwań to 1,5 ms, 1000 przerwań to 150 ms, 1 000 000 przerwań to 150 s itd.). Przerwanie rozpoczyna się i kończy nawiasami klamrowymi po komendzie „void irq0_isr(int interrupt_number)”. W czasie przerwania należy nadać odpowiednie wartości zmiennej: OUTPUT2. Cztery najmłodsze bity tej zmiennej odpowiadają za sterowanie tranzystorami przekształtnika („1” załącza, zaś „0” wyłącza odpowiedni tranzystor). Format zmiennej OUTPUT2: 15..4 nieużywane 3 D 2 C 1 B 0 A Do komunikacji pomiędzy komputerem PC oraz mikroprocesorem służy program „konsola” (rys. 2). str. 1 Rys. 2. Program „Konsola” Do ważniejszych funkcji programu „konsola” należą: 1. Wybór pliku „*.ldr”, który wgrany zostanie do procesora. 2. Ładowanie programu do procesora. 3. Zakładka „zmienne” – podgląd i zmiana wartości zmiennych występujących w kodzie programu. UWAGA zmienne te muszą być zadeklarowane w pamięci wewnętrznej jako zmienne globalne typu „float”. 4. Przycisk „ON” – Wciśnięcie nadaje wartość „1” zmiennej „fal_on”. 5. Zakładka „rejestracja” Umożliwia rejestrację w funkcji czasu dowolnie wybranych zmiennych (UWAGA zmienne te muszą być zadeklarowane w pamięci wewnętrznej jako zmienne globalne typu „float”. 6. Zadajnik prędkości. Wprowadzona wartość (ze znakiem) po podzieleniu przez 1000 przepisywana jest do zmiennej „zadana_omega”. Zmienna ta przyjmuje wartości w zakresie <-1..1>. 7. Zwiększanie i zmniejszanie zadnej prędkości z krokiem 10 (0.01 j.w.). 8. Przycisk OFF - Wciśnięcie nadaje wartość „0” zmiennej „fal_on” 9. Rejestruj – rozpoczęcie rejestracji – uwaga rejestrowanych jest max. 500 próbek każdej zmiennej 10. Transfer – Przepisanie zarejestrowanych danych z procesora do komputera PC 11. Programy do wizualizacji zebranych danych. 12. Co ile przerwać rejestrowana jest jedna próbka danych. UWAGA – wartość minimalna „1” odpowiada długości jednego przerwania procesora (150s). Możliwa jest rejestracja danych co „x*150s”, gdzie x jest dowolna liczbą całkowitą. 13. Przycisk odczytu wartości zmiennych. str. 2 14. Odblokowanie odczytywanych danych (kolor „czerwony” – dane z wybranej komórki nie są odczytywane/zmieniane). 15. Nazwa zmiennej odczytywanej/zapisywanej „UWAGA zmienne te muszą być zadeklarowane w pamięci wewnętrznej jako zmienne globalne typu float”. Wybór zmiennej potwierdzić Enterem. 16. Adres wybranej zmiennej. W przypadku, gdy zmienna nie występuje w projekcie komórka podświetlona jest na czerwono. 17. Odczytana wartość zmiennej. 18. Przycisk zapisu zmiennej. 19. Wartość przypisywana zmiennej typu float (UWAGA – potwierdzić Enterem). 20. Pasek postępu wczytywania programu do procesora (UWAGA – nie dochodzi do końca). 3. Program ćwiczenia Przygotować program sterowania silnikiem krokowym czteropasmowym unipolarnym zapewniającym: 1. Generację impulsów sterujących dla sterowania 1/4, 2/4 oraz 3/8 (rys. 3). 2. Zmianę kierunku obrotów. 3. Zadawanie kąta obrotu. 4. Zadawanie częstotliwości impulsów. Dla każdego rodzaju sterowania impulsami (1/4, 2/4 oraz 3/8): 1. Określić wartość kątową zmiany położenia wirnika dla kolejnych impulsów. 2. Porównać moment napędowy silnika. 3. Zbadać maksymalną częstotliwość impulsów. 4. Porównać stabilność zmiany położenia wirnika przy kolejnych krokach. Rys. 3. Rodzaje trybów generacji impulsów sterujących dla silnika krokowego czteropasmowego unipolarnego str. 3