REALIZACJA REGULATORA PID W UKŁADZIE FPGA Zbigniew Kulesza Andrzej Koszewnik BIAŁYSTOK 2006
CEL PRACY Przedstawienie technologii FPGA Realizacja regulatora PID Opis wykonanego regulatora Podsumowanie
TECHNOLOGIA FPGA FPGA ( ang. Field Programmable Gate Arrays) – programowalne matryce bramkowe charakteryzujące się: szybkością działania, pojemnością, wygodą projektowania Ścieżki połączone są w traktaty poziome i pionowe a bloki logiczne są rozmieszczone matrycowo
TECHNOLOGIA FPGA Rys.1 Klasyfikacja układów programowalnych PLD
FPGA oparte o pamięć SRAM – wymaga każdorazowego programowania po wyłączeniu zasilania- wykorzystywana w aplikacjach wymagającej dużej pojemności logicznej FPGA oparte na Antifuse posiada fizycznie wypalone połączenia pomiędzy poszczególnymi ich komórkami (na stałe zaprogramowany)
FPGA oparte na pamięci Flash nie wymaga każdorazowego programowania po zaniku zasilania lub jego wyłączenia BUDOWA UKŁADÓW FPGA konfigurowalne bloki logiki ( ang. CLB - configurable logic blocks), bloki wejścia / wyjścia, elementy połączeń między blokami
Rys.2 Architektura układów FPGA
REKONFIGURACJA UKŁADÓW FPGA Celem rekonfiguracji jest dostosowanie struktury funkcjonalnej do wymagań jakie są stawiane przez realizowane algorytmy METODY REKONFIGURACJI System jednokontekstowy Rekonfiguracja częściowa
SYSTEM JEDNOKONTEKSTOWY Polega ona na szeregowym wprowadzaniu nowych danych konfiguracyjnych Wada: konieczność przerywania pracy całego układu, co prowadzi do obniżenia wydajności systemu.
REKONFIGURACJA CZĘŚCIOWA Polega na wyłączeniu z układu tylko tej części, która będzie podlegała rekonfiguracji bez „wyłączania” pozostałych części które temu procesowi nie podlegają. Zastosowanie tego typu rekonfiguracji daje krótszy średni czas rekonfiguracji układu
WADY I ZALETY FPGA Krótki cykl projektowania i wprowadzania na rynek Jednoczesne projektowanie i poprawianie błędów Łatwe unowocześnienie wcześniejszych projektów
WADY I ZALETY c.d. Programowanie i reprogramowanie w systemie (ang. ISP) Możliwe projektowanie grupowe Możliwa migracja do układów ASIC
WADY I ZALETY FPGA większy koszt jednostkowy w porównaniu z układami ASIC większe zużycie energii w porównaniu z układami ASIC trudniejsze projektowanie i wykrywanie błędów w porównaniu z rozwiązaniami programowymi (np. DSP)
REALIZACJA REGULATORA Algorytm podstawowy: gdzie: Algorytm przyrostowy:
W obu przypadkach należy przyjąć ograniczenia sygnału wyjściowego ui do wartości min umin i wartości max umax
Rys3. Schemat blokowy przyrostowego reg. PID
LISTINING PROGRAMU package int_t is constant n_rdx: integer := 10; constant w_rdx: integer := 24; subtype n_int is integer range -2**n_rdx to 2**n_rdx; subtype w_int is integer range -2**w_rdx to 2**w_rdx; constant n_int_min: n_int := -2**n_rdx; constant n_int_max: n_int := 2**n_rdx; end int_t;
use work.int_t.all; library ieee; use ieee.std_logic_1164.all; entity pid is port( clk: in std_ulogic; -- clock rst: in std_ulogic; -- reset we: in std_ulogic; -- write enable cs: in std_ulogic_vector(1 downto 0); -- chip select par: in n_int; -- wart. parametru sp: in n_int; -- wart. zadana pv: in n_int; -- wart. mierzona u: out n_int); -- wart. syg. ster. end pid;
architecture rtl of pid is begin p0: process(clk,rst) is variable uw: w_int; -- rej. syg. ster.(szeroki) variable un: n_int; -- rej. syg. ster. (wąski) variable e: n_int; -- rej. wart. uchybu variable e1: n_int; -- rej. pop. wart. uchybu variable e2: n_int; -- rej. wcz. wart. uchybu variable kp: n_int; -- rej. Kp variable ti: n_int; -- rej. Ti variable td: n_int; -- rej. Td
begin if (rst='1') then -- początk. wart. rejestrów kp:=2; ti:=1; td:=20; uw:=0; un:=0; e:=0; e1:=0; e2:=0; elsif (rising_edge(clk)) then if (we='1') then case cs is -- wybór rejestru do zapisu when "00" => kp:=par; when "01" => ti:=par; when "10" => td:=par; when others => null; end case; end if;
uw:=uw+kp*(e-e1)+ti*e+td*(e-e1-e1+e2); e2:=e1; e1:=e; e:=sp-pv; -- oblicz uchyb i syg. ster. uw:=uw+kp*(e-e1)+ti*e+td*(e-e1-e1+e2); e2:=e1; e1:=e; if (uw<n_int_min) then -- ogranicz syg. ster. un:=n_int_min; elsif (uw>n_int_max) then un:=n_int_max; else un:=uw; end if; u<=un; end process; end rtl;
Rys.4 Widok okna symulatora ModelSIm z wynikami symulacji regulatora PID
Rys.5 Przebiegi uchybu i sygnału sterującego w Matlabie
DZIĘKUJEMY ZA UWAGĘ