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