mac pobrania

Transkrypt

mac pobrania
Cyfrowy sterownik PID
przetwornicy obniżającej
●
●
Sterowanie napięciowe –
wykorzystanie możliwości
ADC w 50%
Sygnał wyjściowy u(n) ∝ d (ton)
u (n )=u (n −1)+ k a⋅e (n )+
=k b⋅e (n−1)+ k c⋅e (n −2)
k a ,k b ,k c=f (k p ,k i ,k d )

●
wartość u(n−1)
przechowywana jest
w naturalny sposób w
akumulatorze
Testy granic (Boundary Tests)
ograniczają d i nie pozwalają
na nasycenie sterownika
Łukasz Starzak, Cyfrowe sterowanie przekształtników impulsowych, lato 2012/13
116
Instrukcja MAC
●
●
MAC = Multiply and ACcumulate
Kolejność operacji




●
●
przemnóż 2 czynniki
dodaj wynik do poprzedniej
sumy (akumulatora)
zaktualizuj rejestry tak, aby
zawierały 2 czynniki dla
następnego mnożenia
inkrementuj wskaźniki tak, aby
wskazywały na 2 czynniki
potrzebne do jeszcze następnego
mnożenia
●
Implementacja sprzętowa




podział pamięci danych na dwie
części, oznaczane X i Y
duplikacja szyny adresowej
i szyny danych
duplikacja bloku adresowania
jednoczesny odczyt 2 wartości
z pamięci danych (brak
możliwości zapisu przez szynę Y)
Czas wykonania – zaledwie 1 cykl
maszynowy (25…33 ns)
Czas obliczenia sygnału
sterującego w pętli ~1…2 µs
Łukasz Starzak, Cyfrowe sterowanie przekształtników impulsowych, lato 2012/13
117
Grupa instrukcji MAC
●
Dwa uprzednie pobrania danych (prefetches)



●
●
1 z szyny X z użyciem rejestrów roboczych prefetch W8 lub W9
oraz 1 z szyny Y z użyciem W10 lub W11
do dowolnego z W4…W7
możliwe adresowanie przez W9 i W11 z przesunięciem o W12
Dwie aktualizacje rejestrów roboczych prefetch
Jedna operacja arytmetyczna z akumulacją

funkcja WriteBack – jednoczesny zapis zaokrąglonej zawartości akumulatora
alternatywnego
Łukasz Starzak, Cyfrowe sterowanie przekształtników impulsowych, lato 2012/13
118
Przykłady użycia instrukcji MAC
Łukasz Starzak, Cyfrowe sterowanie przekształtników impulsowych, lato 2012/13
119
Przykłady użycia instrukcji MAC z WriteBack
Łukasz Starzak, Cyfrowe sterowanie przekształtników impulsowych, lato 2012/13
120
Algorytm – program główny
●
Konfiguracja peryferiów

●
●
●
IPP PWM, IPP ADC
Łagodny start
Pusta pętla główna
Wszystkie istotne operacje
wykonywane są w procedurze
obsługi przerwania ADC



przetworzenie wyników musi
odbyć się jak najszybciej, aby
zwiększyć pasmo pętli
wysoki priorytet (6)
częstotliwość aktualizacji
współczynnika wypełnienia
PWM nie musi być jednak równa
częstotliwości przełączania (może
być mniejsza – zależy to od
pożądanego pasma pętli)
Łukasz Starzak, Cyfrowe sterowanie przekształtników impulsowych, lato 2012/13
121
Algorytm – obsługa przerwania ADC
●
●
●
●
●
●
Pobierz z ADC dane –
napięcie wyjściowe Vfb
Odejmij Vfb−Vdesired=e
Oblicz współczynnik
wypełnienia z równań
sterownika PID
Obetnij wynik, jeżeli
przekracza granice
Zaktualizuj
współczynnik
wypełnienia w module
PWM
Czas wykonania 1,4 µs
przy taktowaniu z
wewnętrznego
oscylatora 32∙14,55 MHz
Łukasz Starzak, Cyfrowe sterowanie przekształtników impulsowych, lato 2012/13
122
Implementacja sterownika PID w asemblerze
Łukasz Starzak, Cyfrowe sterowanie przekształtników impulsowych, lato 2012/13
123
Wykorzystanie biblioteki „dsp” w języku C
Łukasz Starzak, Cyfrowe sterowanie przekształtników impulsowych, lato 2012/13
124
Łagodny start
●
●
Stopniowe zwiększanie napięcia
pożądanego Vdesired ≡ Vref
●
Użycie czasomierza TIMER1




aktywowany po konfiguracji
peryferiów
aktywowane przerwanie
o priorytecie 5
ustawiana flaga #RAMP_UP
za każdym przerwaniem napięcie
pożądane Vdesired jest zwiększane
o #RAMP_DELTA
Kiedy Vdesired osiągnie wartość Vset
(„normalne” pożądane napięcie
wyjściowe)


●
przerwanie od TIMERa1 jest
dezaktywowane
flaga #RAMP_UP jest zerowana
Cały czas działa przerwanie od
ADC, a więc realizowane jest
normalne sprzężenie zwrotne,
tylko ze stopniowo rosnącą
wartością odniesienia Vref
Łukasz Starzak, Cyfrowe sterowanie przekształtników impulsowych, lato 2012/13
125