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 (150s).
Możliwa jest rejestracja danych co „x*150s”, 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