Akademia Morska w Gdyni
Katedra Automatyki Okrętowej
Metody sztucznej inteligencji
Układy regulacji rozmytej - projekt regulatora rozmytego
typu PD
Mirosław Tomera, Anna Waszkiel
1. CEL ĆWICZENIA
Celem ćwiczenia jest zapoznanie się z procedurą implementacji prostych regulatorów rozmytych,
tworzonych metodami logiki rozmytej i zastosowanie ich w układach regulacji z obiektami
nieliniowymi.
2. REGULATOR ROZMYTY PD-FL
Utworzony regulator rozmyty PD-FL wzorowany jest na klasycznym regulatorze liniowym PD
de(t )
u (t )=K e(t )+K (2)
P D
dt
Schemat blokowy regulatora rozmytego o strukturze PD-FL pokazany został na rysunku 10. Regulator
ten posiada dwa wejścia i jedno wyjście. Na pierwsze wejście podawany jest sygnał uchybu regulacji,
natomiast na drugie wejście pochodna tego uchybu. Na wejściach i wyjściu zdefiniowane zostały
funkcje przynależności o strukturze pokazanej na rysunku 7. Strojenie regulatora rozmytego PD-FL
ge gc gu
dokonywane jest przez wzmocnienia skalujące , oraz . Baza reguł dla tego regulatora
zakodowana w zapisie lingwistycznym zebrana została w tabeli 1, natomiast w tabeli 2 w zapisie
numerycznym. Przykładowa reguła rozmyta uzyskana z tabeli 1 ma postać
if {e is UD} and {c is UD} then {u is UD}
Takich reguł z tablicy 1 lub 2 można utworzyć 25. Decyduje o tym iloczyn liczby zbiorów rozmytych
zastosowanych w wejściowych funkcjach przynależności.
Tabela 1. Tablica reguł regulatora PD-FL zakodowana w zapisie lingwistycznym.
c
UD US M DS DD
UD UD UD UD US M
US UD UD US M DS
M UD US M DS DD
e
DS US M DS DD DD
DD M DS DD DD DD
Ostatnia aktualizacja: 2011-12-16 © M. Tomera 1
Tabela 2. Tablica reguł regulatora PD-FL zakodowana w zapisie numerycznym.
c
0 1 2
-2 -1
0
-2 -2 -2 -2 -1
0 1
-1 -2 -2 -1
0 -2 -1
0 1 2
e
1 -1
0 1 2 2
2 0 1 2 2 2
Rys. 9. Schemat blokowy regulatora rozmytego PD-FL.
Rys. 10. Powierzchnia sterowania regulatora rozmytego PD-FL.
Ostatnia aktualizacja: 2011-12-16 © M. Tomera 2
6.1. Badania symulacyjne
Opisany regulator rozmyty PD-FL zaimplementowany został w Simulinku w układzie pokazanym na
rysunku 6 w postaci bloku regulatora, którego wnętrze pokazane zostało na rys. 11.
Rys. 11. Wnętrze bloku PD-FL .
Algorytm regulatora rozmytego PD-FL zrealizowany został w jako S-funkcja o nazwie
msf_pdfl_05.m zapisanej w postaci następującego kodu Matlaba.
function [sys,x0,str,ts]=msf_pdfl_05(t,x,u,flag, PDFL_GE, PDFL_GC, PDFL_GU)
%
% Regulator rozmyty PD-FL
%
global PDFL_ce PDFL_cc PDFL_rules;
global PDFL_we PDFL_wc PDFL_base;
switch flag,
case 0, % Initialization %
sizes = simsizes;
sizes.NumContStates = 0;
sizes.NumDiscStates = 0;
sizes.NumOutputs = 1; % Liczba wyjść
sizes.NumInputs = 2; % Liczba wejść
sizes.DirFeedthrough = 1; % has direct feedthrough
sizes.NumSampleTimes = 1;
sys = simsizes(sizes);
str = [];
x0 = [];
ts = [0 0]; % inherited sample time
% Wzmocnienia normalizujące wejścia i wyjście dla regulatora kursu:
PDFL_ge = PDFL_GE; % dla uchybu
PDFL_gc = PDFL_GC; % dla pochodnej uchybu
PDFL_gu = PDFL_GU; % dla wyjścia regulatora
gf = 1/2; % przeskalowanie tablicy
PDFL_we = 0.5*PDFL_ge; % połowa podstawy trójkąta
PDFL_wc = 0.5*PDFL_gc; %
PDFL_base = PDFL_gu; % szerokość podstawy trójkąta
% Miejsca wierzchołków funkcji przynależności dla regulatora rozmytego
PDFL_ce = [-1.0 -0.5 0 0.5 1.0]*PDFL_ge;
PDFL_cc = [-1.0 -0.5 0 0.5 1.0]*PDFL_gc;
Ostatnia aktualizacja: 2011-12-16 © M. Tomera 3
% Baza reguł
PDFL_rules=[]*PDFL_gu*gf; %należy zaimplementować bazę reguł opisaną
tabelÄ…2
case 3, % Outputs %
e = u(1);
c = u(2);
% e_error
e_count=0; % Liczba uaktywnionych zbiorów
e_int=0; % Uaktywniony zbiór o największym numerze
% Fuzyfikacja wejścia
if e <= PDFL_ce(1) % Sprawdzenie czy wartość e znajduje się
% w lewym nasyceniu
mfe = [1 0 0 0 0];
e_count = e_count+1; % Zwiększenie licznika uaktywnionych zbiorów
e_int=1; % Aktywny zbiór oznaczony jest jedynką (1)
elseif e >= PDFL_ce(5) % Sprawdzenie czy e nie znajduje siÄ™
% w prawym nasyceniu
mfe = [0 0 0 0 1];
e_count=e_count+1; % Zwiększenie licznika uaktywnionych zbiorów
e_int = 5; % Aktywny zbiór oznaczony jest piątką (5)
else
for i=1:5, % Poszukiwanie aktywnych zbiorów pomiędzy lewym
% i prawym nasyceniem i wyznaczenie
% stopnia przynależności
if e <= PDFL_ce(i),
% Lewe ramię trójkąta
mfe(i) = max([0, 1+(e-PDFL_ce(i))/PDFL_we]);
if mfe(i) ~= 0,
e_count = e_count+1;
e_int = i;
end
else
% Prawe ramię trójkąta
mfe(i) = max([0, 1+(PDFL_ce(i)-e)/PDFL_we]);
if mfe(i) ~= 0,
e_count = e_count+1;
e_int=i;
end
end
end
end
%ce_error
c_count=0; % Liczba uaktywnionych zbiorów
c_int=0; % Uaktywniony zbiór o największym numerze
% Fuzyfikacja wejścia
if c <= PDFL_cc(1) % Sprawdzenie czy wartość c znajduje się
% w lewym nasyceniu
mfc = [1 0 0 0 0];
c_count = c_count+1; % Zwiększenie licznika uaktywnionych zbiorów
c_int=1; % Aktywny zbiór oznaczony jest jedynką (1)
elseif c >= PDFL_cc(5) % Sprawdzenie czy c nie znajduje siÄ™
% w prawym nasyceniu
mfc = [0 0 0 0 1];
c_count=c_count+1; % Zwiększenie licznika uaktywnionych zbiorów
c_int = 5; % Aktywny zbiór oznaczony jest piątką (5)
else
for i=1:5, % Poszukiwanie aktywnych zbiorów
Ostatnia aktualizacja: 2011-12-16 © M. Tomera 4
% pomiędzy lewym i prawym nasyceniem
% i wyznaczenie stopnia przynależności
if c <= PDFL_cc(i),
% Lewe ramię trójkąta
mfc(i) = max([0, 1+(c-PDFL_cc(i))/PDFL_wc]);
if mfc(i) ~= 0,
c_count = c_count+1;
c_int = i;
end
else
% Prawe ramię trójkąta
mfc(i) = max([0, 1+(PDFL_cc(i)-c)/PDFL_wc]);
if mfc(i) ~= 0,
c_count = c_count+1;
c_int=i;
end
end
end
end
%defuzyfikacja metodą środka ciężkości
num=0;
den=0;
for k=(e_int-e_count+1):e_int
for l=(c_int-c_count+1):c_int
prem=min([mfe(k) mfc(l)]); % Implikacja
num=num+PDFL_rules(k,l)*PDFL_base*(prem-(prem)^2/2);
den=den+PDFL_base*(prem-(prem)^2/2);
end
end
out = num/den; % Obliczona rzeczywista wartość wyjściowa
sys = out;
case { 1, 2, 4, 9 }
sys=[];
otherwise, % Unexpected flags (error handling)%
error(['Unhandled flag = ',num2str(flag)]);
end
Dla modelu matematycznego statku ustawione zostały zerowe wartości początkowe, natomiast zadany
kurs statku w ukÅ‚adzie regulacji wynosiÅ‚ È =40o .
z
3. PROGRAM ĆWICZENIA
a. W pierwszym kroku w kodzie algorytmu należy dokonać implementacji bazy reguł opisanej w
tabeli 2 oraz wykreślić powierzchnię sterowania zaprojektowanego regulatora.
b. Należy zaprojektować klasyczny regulator PD metodą tabelaryczną, tak aby dobrane wzmocnienia
Kp i KD były optymalne.
c. Należy przeanalizować, analogicznie jak w przypadku regulatora P_FL jakim liczbowym
wartościom uchybu, pochodnej uchybu i wartości sygnału sterującego w rzeczywistości odpowiadają
wartości lingwistyczne mały, średni i duży. Następnie na tej podstawie dokonać doboru wzmocnień
skalujÄ…cyh gc, ge oraz gu.
Ostatnia aktualizacja: 2011-12-16 © M. Tomera 5
d. Należy zmodyfikować bazę reguł, dodając wartości lingwistyczne bardzo duży ujemny (BU) oraz
bardzo duży dodatni (BD) i określić wpływ tej zmiany na działanie regulatora. Należy się zastanowić
jakich jeszcze zmian należy dokonać w konfiguracji regulatora rozmytego przy dodawaniu kolejnych
reguł do bazy reguł.
4. OPRACOWANIE SPRAWOZDANIA
W sprawozdaniu należy opisać uruchomione i przebadane numerycznie układy sterowania
z regulatorami:
- PD klasycznym
- PD rozmytym
Umieścić wykresy przebiegu sygnału sterującego i uchybu i dokonać porównania jakości sterowania.
Należy opisać działanie przebadanych regulatorów i wyjaśnić jakie są wady i zalety stosowania
regulatorów rozmytych.
5. ZAGADNIENIA KONTROLNE
5. 1. W jaki sposób w badanych regulatorach zrealizowana została fuzyfikacja (rozmywanie) ?
6. 2. Wyjaśnić zastosowaną w badanych regulatorach metodę defuzyfikacji (wyostrzania).
7. 3. Jak na zmianę charakterystyki przetwarzania regulatora P-FL wpływa zmiana wzmocnień
skalujÄ…cych ge , gc i gu ?
8. 4. Czy zmiana bazy reguł regulatora rozmytego wpływa na charakterystykę przetwarzania i w
jaki sposób?
9. 5. W przypadku zmiany liczby reguł regulatora rozmytego jakie dodatkowe zmiany trzeba
dokonać w konfiguracji regulatora rozmytego.
LITERATURA
1. Asivanandam S.N, Sumathi S., Deepa S.N., (2007), Introduction to Fuzzy Logic using MATLAB,
Springer-Verlag.
2. Driankov D., Hellendoorn H., Reinfrank M., (1996). Wprowadzenie do sterowania rozmytego,
WNT, Warszawa.
3. Passino K.M., Yurkovich S. (1998). Fuzzy Control, Addison Wesley Longman, Inc.
Available: www2.ece.ohio-state.osu.edu/~passino/FCbook.pdf.
4. Piegat A. (1999). Modelowanie i sterowanie rozmyte, Akademicka Oficyna Wydawnicza EXIT,
Warszawa.
5. Rutkowski L. (2009). Metody i techniki sztucznej inteligencji, PWN, Warszawa.
6. Yager R., R., Filev D.P., (1995). Podstawy modelowania i sterowania rozmytego, WNT,
Warszawa.
Ostatnia aktualizacja: 2011-12-16 © M. Tomera 6
Wyszukiwarka
Podobne podstrony:
t3 sterowanie rozmyte P FLSterowanie rozmytet4 sterowanie neuronowe P PDWykład 9 Sterowanie Rozmyteprojektowanie klasycznego i rozmytego układu sterowaniaautomatyka i sterowanie wyklad04 Rozmyte Syst EkspertoweSterownik dwubarwnych diod LEDSterownik nadajnika do lowow na lisasterowniki programowalne plc, cz??? 3Sterownik oswietlenia kabiny samochoduAlgorytmy genetyczne a logika rozmytawięcej podobnych podstron