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Ę