realizacja regulatora pid
Download
Report
Transcript realizacja regulatora pid
REALIZACJA REGULATORA
PID
W UKŁADZIE FPGA
1.
2.
BIAŁYSTOK 2006
Zbigniew Kulesza
Andrzej Koszewnik
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:
ui k p ei ii k d (ei ei 1 )
ii ii 1 ki ei
Algorytm przyrostowy:
ui ui 1 k p (ei ei 1 ) ki ei k d (ei 2ei 1 ei 2 )
W obu przypadkach należy przyjąć
ograniczenia sygnału wyjściowego ui
do wartości min umin i wartości max
umax
u min dla u i u min
u i u i dla u min u i u max
u
dla u i u max
min
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;
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;
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Ę