Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

REALIZACJA REGULATORA PID W UKŁADZIE FPGA REALIZACJA REGULATORA PID W UKŁADZIE FPGA 1. Zbigniew Kulesza 2. Andrzej Koszewnik BIAŁYSTOK 2006.

Podobne prezentacje


Prezentacja na temat: "REALIZACJA REGULATORA PID W UKŁADZIE FPGA REALIZACJA REGULATORA PID W UKŁADZIE FPGA 1. Zbigniew Kulesza 2. Andrzej Koszewnik BIAŁYSTOK 2006."— Zapis prezentacji:

1 REALIZACJA REGULATORA PID W UKŁADZIE FPGA REALIZACJA REGULATORA PID W UKŁADZIE FPGA 1. Zbigniew Kulesza 2. Andrzej Koszewnik BIAŁYSTOK 2006

2 CEL PRACY Przedstawienie technologii FPGA Przedstawienie technologii FPGA Realizacja regulatora PID Realizacja regulatora PID Opis wykonanego regulatora Opis wykonanego regulatora Podsumowanie Podsumowanie

3 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

4 TECHNOLOGIA FPGA Rys.1 Klasyfikacja układów programowalnych PLD

5 FPGA oparte o pamięć SRAM – wymaga każdorazowego programowania po wyłączeniu zasilania- wykorzystywana w aplikacjach wymagającej dużej pojemności FPGA oparte o pamięć SRAM – wymaga każdorazowego programowania po wyłączeniu zasilania- wykorzystywana w aplikacjach wymagającej dużej pojemności logicznej logicznej FPGA oparte na Antifuse posiada fizycznie wypalone połączenia pomiędzy poszczególnymi ich komórkami (na stałe zaprogramowany) FPGA oparte na Antifuse posiada fizycznie wypalone połączenia pomiędzy poszczególnymi ich komórkami (na stałe zaprogramowany)

6 FPGA oparte na pamięci Flash nie wymaga każdorazowego programowania po zaniku zasilania lub jego wyłączenia 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

7 Rys.2 Architektura układów FPGA

8 REKONFIGURACJA UKŁADÓW FPGA Celem rekonfiguracji jest dostosowanie struktury funkcjonalnej do wymagań jakie są stawiane przez realizowane algorytmy METODY REKONFIGURACJI System jednokontekstowy System jednokontekstowy Rekonfiguracja częściowa Rekonfiguracja częściowa

9 SYSTEM JEDNOKONTEKSTOWY Polega ona na szeregowym wprowadzaniu nowych danych konfiguracyjnych Polega ona na szeregowym wprowadzaniu nowych danych konfiguracyjnych Wada: Wada: konieczność przerywania pracy całego układu, co prowadzi do obniżenia wydajności systemu. konieczność przerywania pracy całego układu, co prowadzi do obniżenia wydajności systemu.

10 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ą. 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

11 WADY I ZALETY FPGA Krótki cykl projektowania i wprowadzania na rynek Krótki cykl projektowania i wprowadzania na rynek Jednoczesne projektowanie i poprawianie błędów Jednoczesne projektowanie i poprawianie błędów Łatwe unowocześnienie wcześniejszych projektów Łatwe unowocześnienie wcześniejszych projektów

12 WADY I ZALETY c.d. Programowanie i reprogramowanie w systemie (ang. ISP) Programowanie i reprogramowanie w systemie (ang. ISP) Możliwe projektowanie grupowe Możliwe projektowanie grupowe Możliwa migracja do układów ASIC Możliwa migracja do układów ASIC

13 WADY I ZALETY FPGA większy koszt jednostkowy w porównaniu z układami ASIC większy koszt jednostkowy w porównaniu z układami ASIC większe zużycie energii 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) trudniejsze projektowanie i wykrywanie błędów w porównaniu z rozwiązaniami programowymi (np. DSP)

14 REALIZACJA REGULATORA Algorytm podstawowy: gdzie: Algorytm przyrostowy :

15 W obu przypadkach należy przyjąć ograniczenia sygnału wyjściowego u i do wartości min u min i wartości max u max

16 Rys3. Schemat blokowy przyrostowego reg. PID

17 LISTINING PROGRAMU package int_t is package int_t is constant n_rdx: integer := 10; constant n_rdx: integer := 10; constant w_rdx: integer := 24; constant w_rdx: integer := 24; subtype n_int is integer range -2**n_rdx to 2**n_rdx; 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; 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_min: n_int := -2**n_rdx; constant n_int_max: n_int := 2**n_rdx; constant n_int_max: n_int := 2**n_rdx; end int_t;

18 use work.int_t.all; library ieee; use ieee.std_logic_1164.all; use work.int_t.all; library ieee; use ieee.std_logic_1164.all; entity pid is port( port( clk: in std_ulogic; -- clock clk: in std_ulogic; -- clock rst: in std_ulogic; -- reset rst: in std_ulogic; -- reset we: in std_ulogic; -- write enable we: in std_ulogic; -- write enable cs: in std_ulogic_vector(1 downto 0); -- chip select cs: in std_ulogic_vector(1 downto 0); -- chip select par: in n_int; -- wart. parametru par: in n_int; -- wart. parametru sp: in n_int; -- wart. zadana sp: in n_int; -- wart. zadana pv: in n_int; -- wart. mierzona pv: in n_int; -- wart. mierzona u: out n_int); -- wart. syg. ster. u: out n_int); -- wart. syg. ster. end pid;

19 architecture rtl of pid is architecture rtl of pid isbegin p0: process(clk,rst) is p0: process(clk,rst) is variable uw: w_int; -- rej. syg. ster.(szeroki) variable uw: w_int; -- rej. syg. ster.(szeroki) variable un: n_int; -- rej. syg. ster. (wąski) variable un: n_int; -- rej. syg. ster. (wąski) variable e: n_int; -- rej. wart. uchybu variable e: n_int; -- rej. wart. uchybu variable e1: n_int; -- rej. pop. wart. uchybu variable e1: n_int; -- rej. pop. wart. uchybu variable e2: n_int; -- rej. wcz. wart. uchybu variable e2: n_int; -- rej. wcz. wart. uchybu variable kp: n_int; -- rej. Kp variable kp: n_int; -- rej. Kp variable ti: n_int; -- rej. Ti variable ti: n_int; -- rej. Ti variable td: n_int; -- rej. Td variable td: n_int; -- rej. Td

20 begin begin if (rst='1') then -- początk. wart. rejestrów if (rst='1') then -- początk. wart. rejestrów kp:=2; ti:=1; td:=20; uw:=0; kp:=2; ti:=1; td:=20; uw:=0; un:=0; e:=0; e1:=0; e2:=0; un:=0; e:=0; e1:=0; e2:=0; elsif (rising_edge(clk)) then elsif (rising_edge(clk)) then if (we='1') then if (we='1') then case cs is -- wybór rejestru do zapisu case cs is -- wybór rejestru do zapisu when "00" => kp:=par; when "00" => kp:=par; when "01" => ti:=par; when "01" => ti:=par; when "10" => td:=par; when "10" => td:=par; when others => null; when others => null; end case; end case; end if; end if;

21 e:=sp-pv; -- oblicz uchyb i syg. ster. e:=sp-pv; -- oblicz uchyb i syg. ster. uw:=uw+kp*(e-e1)+ti*e+td*(e-e1-e1+e2); uw:=uw+kp*(e-e1)+ti*e+td*(e-e1-e1+e2); e2:=e1; e2:=e1; e1:=e; e1:=e; if (uwn_int_max) then elsif (uw>n_int_max) then un:=n_int_max; un:=n_int_max; else else un:=uw; un:=uw; end if; end if; u<=un; u<=un; end process; end process; end rtl;

22 Rys.4 Widok okna symulatora ModelSIm z wynikami symulacji regulatora PID

23 Rys.5 Przebiegi uchybu i sygnału sterującego w Matlabie

24 DZIĘKUJEMY ZA UWAGĘ


Pobierz ppt "REALIZACJA REGULATORA PID W UKŁADZIE FPGA REALIZACJA REGULATORA PID W UKŁADZIE FPGA 1. Zbigniew Kulesza 2. Andrzej Koszewnik BIAŁYSTOK 2006."

Podobne prezentacje


Reklamy Google