650 likes | 988 Views
Elektrotehnički fakultet univerziteta u Beogradu PRIMENA MATLAB-a U PROJEKTOVANJU FUZZY SISTEMA I NEURALNIH MREŽA. Seminarski rad Student Profesor. Uvod. MATLAB... Fuzzy Logic Toolbox i Neural Network Toolbox...
E N D
Elektrotehnički fakultet univerziteta u BeograduPRIMENA MATLAB-a U PROJEKTOVANJU FUZZY SISTEMA I NEURALNIH MREŽA Seminarski rad Student Profesor
Uvod • MATLAB... • Fuzzy Logic Toolbox i Neural Network Toolbox... • Demonstracioni primeri... Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Fuzzy logic toolbox_primer1Ekspertski sistem za odabir posla Komande koje se koriste pri projektovanju sistema: • newfis : Kreirati novi FIS; • addvar : Dodati variablu u FIS; • addmf : Dodati funkciju pripadnosti u FIS; • addrule : Dodati pravilo u FIS; • plotfis : Iscrtati FIS I/O diagram; • evalfis : Izvršiti fuzzy izračunavanje; • setfis : Postaviti karakteristike fuzzy sistema; • plotmf : Iscrtati sve funkcije pripadnosti za datu varijablu; Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Pokretanje Fuzzy Logic ToolboxGUI-a iz MATLAB komandnogprozora Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Dodavanje ulazne varijable u FIS Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Izgled sistema sa dva ulaza i jednim izlazom Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Izgled polja GUI-a u koje se unosi ime prethodno selektovane varijable • Ulazne varijable: “Visina_plate_[din]” i “Tip_ponuđenog_posla”; • Izlazna varijabla: “Izbor_posla”; Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Pokretanje prozora za generisanje funkcija pripadnosti.Generisane funkcije pripadnosti se automatski pridružuju selektovanoj varijabli Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Brisanje prethodno generisanih funkcija pripadnosti pridruženih selektovanoj varijabli Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Polja za unos parametara vezanih za selektovanu varijablu (“Visina_plate_[din.]”) Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Dodavanje željene funkcije pripadnosti u dijagram Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Izgled prozora za odabir tipa i unos parametara željene funkcije pripadnosti Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Izgled dijagrama funkcija pripadnosti nakon unošenja željenih f-ja pridruženih ulaznoj varijabli “Visina_plate_[din.]” Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Izgled dijagrama funkcija pripadnosti nakon unošenja željenih f-ja pridruženih ulaznoj varijabli “Tip_ponudjenog_posla” Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Izgled dijagrama funkcija pripadnosti nakon unošenja željenih f-ja pridruženih izlaznoj varijabli “Izbor_posla” Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Pokretanje prozora za generisanje pravila fuzzy zaključivanja Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Izgled prozora za generisanje pravila fuzzy zaključivanja FIS-a Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Izgled polja za izbor veze između f-ja pripadnosti prilikom formiranja pravila i polje za specificiranje težine ili važnosti datog pravila Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Izgled prozora za generisanje pravila u čijoj se listi pravila nalazi 6 generisanih pravila fuzzy zaključivanja Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Pokretanje prozora za praćenje rada projektovanog ekspertskog sistema putem grafičkog prikaza Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Za zadate vrednosti ulaza ekspertski sistem proračunava vrednost izlaza i grafički je prikazuje Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Za zadate vrednosti ulaza ekspertski sistem proračunava vrednost izlaza i grafički je prikazuje Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Za zadate vrednosti ulaza ekspertski sistem proračunava vrednost izlaza i grafički je prikazuje Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Pokretanje prozora u kom je 3D prikazom prikazan rad ekspertskog sistema Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
3D prikaz rada ekspertskog sistema za odabir posla Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Fuzzy logic toolbox_primer2Kontrola temperature vode u kadi pomoću fuzzy kontrolera • Sistem koji treba da bude kontrolisan je opisan jednačinom: • Gde je: • Parametri kontrolisanog sistema: • α = 1.00151*10-4 • β = 8.67973*10-3 • gama = 40 • Y0 = 25°C Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Kontrola temperature vode u kadi pomoću fuzzy kontrolera • Ulaz kontrolisanog sistema: • 0V ≤ u(k) ≤ 5V • Period uzorkovanja: • Ts = 25s (sekundi) • Fuzzy kontroler treba da kontroliše temperaturu vode u kadi tako da ona prati referentnu konturu (signal), čiji je oblik definisan na sledeći način: • 35°C ,0 ≤ t ≤ 40 minuta • 50°C , 40 ≤ t ≤ 80 minuta • 65°C , 80 ≤ t ≤ 120 minuta • 80°C , 120 ≤ t ≤ 180 minuta Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Kontrola temperature vode u kadi pomoću fuzzy kontrolera • Izabrane ulazne varijable fuzzy kontrolera su: • e(t) -Izvršna greška (predstavlja razliku između željene temperature vode i stvarne izmerene temperature); • c(t) - Promena izvršne greške (Izvod izvršne greške); • Izlazna varijabla fuzzy kontrolera: • u(t)– Napon grejača (0V ≤ u(t) ≤ 5V); • Za svaku varijablu je definisano po 7 Gausovih funkcija pripadnosti, čija su imena: NL, NM, NS, ZE, PS, PM ,PL; • Matrica fuzzy pravila sadrži 25 od mogućih 49 pravila; Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Tabela fuzzy pravila formulisanih za sistem za kontrolu temperature vode u kadi Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
fis=newfis('fyappr1'); % Create a new FIS with filename "fyappr1.fis.". % Build the I/O membership functions and fuzzy rules. % Define membership functions for the input variable "ERROR". fis=addvar(fis, 'input', 'ERROR', [-1 1]); fis=addmf(fis,'input', 1, 'NL', 'gaussmf', [0.1 -1]); fis=addmf(fis,'input', 1, 'NM', 'gaussmf', [0.1 -0.6]); fis=addmf(fis,'input', 1, 'NS', 'gaussmf', [0.1 -0.3]); fis=addmf(fis,'input', 1, 'ZE', 'gaussmf', [0.1 0]); fis=addmf(fis,'input', 1, 'PS', 'gaussmf', [0.1 0.3]); fis=addmf(fis,'input', 1, 'PM', 'gaussmf', [0.1 0.6]); fis=addmf(fis,'input', 1, 'PL', 'gaussmf', [0.1 1]); plotmf(fis,'input',1); figure % Define membership functions for the input variable "CERROR". fis=addvar(fis, 'input', 'CERROR', [-1 1]); fis=addmf(fis,'input', 2, 'NL', 'gaussmf', [0.1 -1]); fis=addmf(fis,'input', 2, 'NM', 'gaussmf', [0.1 -0.6]); fis=addmf(fis,'input', 2, 'NS', 'gaussmf', [0.1 -0.3]); fis=addmf(fis,'input', 2, 'ZE', 'gaussmf', [0.1 0]); fis=addmf(fis,'input', 2, 'PS', 'gaussmf', [0.1 0.3]); fis=addmf(fis,'input', 2, 'PM', 'gaussmf', [0.1 0.6]); fis=addmf(fis,'input', 2, 'PL', 'gaussmf', [0.1 1]); plotmf(fis,'input',2); figure % Define membership functions for the output variable "MENU". fis=addvar(fis,'output','MENU', [-1 1]); fis=addmf(fis,'output', 1, 'NL', 'gaussmf', [0.1 -1]); fis=addmf(fis,'output', 1, 'NM', 'gaussmf', [0.1 -0.6]); fis=addmf(fis,'output', 1, 'NS', 'gaussmf', [0.1 -0.3]); fis=addmf(fis,'output', 1, 'ZE', 'gaussmf', [0.1 0]); fis=addmf(fis,'output', 1, 'PS', 'gaussmf', [0.1 0.3]); fis=addmf(fis,'output', 1, 'PM', 'gaussmf', [0.1 0.6]); fis=addmf(fis,'output', 1, 'PL', 'gaussmf', [0.1 1]); plotmf(fis,'output',1); % Define fuzzy rules. rule=[ 1 4 1 1 1 2 4 2 1 1 3 5 5 1 1 3 4 3 1 1 3 3 3 1 1 4 7 7 1 1 4 6 6 1 1 4 5 5 1 1 4 4 4 1 1 4 3 3 1 1 4 2 2 1 1 4 1 1 1 1 5 7 7 1 1 5 6 6 1 1 5 5 5 1 1 5 4 5 1 1 5 3 3 1 1 6 7 7 1 1 6 6 6 1 1 6 5 6 1 1 6 4 6 1 1 7 7 7 1 1 7 6 7 1 1 7 5 7 1 1 7 4 7 1 1]; fis=addrule(fis, rule); writefis(fis, 'fyappr1'); % Save FIS to disk. Formiranje ulaznih i izlaznih funkcija pripadnosti i fuzzy pravila Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Grafički prikaz funkcija pripadnosti pridruženih ulaznim varijablama “ERROR”, “CERROR”, i izlaznoj varijabli “MENU” Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
fis=readfis('fyapprl'); % Read the file "fyappr1.fis.". % Define plant parameters. Ts=25; p=1.00151*10^(-4); q=8.67973*10^(-3); r=40; yo=25; y(1)=yo; a=exp(-p*Ts); b=(q/p)*(1-exp(-p*Ts)); % Define the reference output. for k =1 : 180 if (k <= 40) ref(k)=35; elseif (k > 40 & k <= 80) ref(k)=50; elseif (k > 80 & k <= 120) ref(k)=65; elseif (k > 120) ref(k)=80; end; end; GE=1/15; GC=1/15; GU=450; % Define gain constants. pause % Hit any key to test this fuzzy controller. for k =1 : 179 e(k)=(ref(k)-y(k)); ee(k)=e(k)*GE; if k == 1 ce(k)=0; else ce(k)=e(k)-e(k - 1); end; cee(k)=ce(k)*GC; mu(k)=evalfis([ee(k) cee(k)],fis); u(k)=mu(k)*GU; if (u(k)>=5) u(k)=5; elseif (u(k)<=0) u(k)=0; else u(k)=u(k); end; y(k + 1)=a*y(k)+b/(1+exp(0.5*y(k)-r))*u(k)+(1-a)*yo; end; hold on; grid; % Plot plant input/output and reference output. plot(y(1:180), '.y'); plot(ref(1:180),'--r'); plot(u(1:179),'g'); xlabel('Sampling Time Step kT T = 25 seconds'); ylabel('Temperature(degree)'); title('Reference Signal "- -" Actual Output "." Control Signal "---"'); pause % Hit any key to calculate the performance index AES. AES=sum(abs(ref-y)); Test program Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Rezultati simulacije za aplikaciju kontrole temperature vode u kadi korišćenjem isprojektovanog fuzzy kontrolera Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Rezultati simulacije • Može se videti da isprojektovani fuzzy kontroler ima dobru sposobnost praćenja temperature, ali kontrolni signal u(k) odlikuje velika varijacija u opsegu visoke temperature. • Indeks učinka (kvantifikacija sposobnosti praćenja referentne konture): • U sličajufuzzy kontrolera AES = 426.80; • U slučaju neural fuzzy kontrolera AES = 374; Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Izgled fuzzy kontrolera za kontrolu temperature vode u kadi. Kontroler ima dve ulazne varijable (ERROR i CERROR) i jednu izlaznu varijablu (MENU) Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Grafički prikaz funkcija pripadnosti pridruženih ulaznim varijablama “ERROR”, “CERROR”, i izlaznoj varijabli “MENU” Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Izgled prozora za generisanje fuzzy pravila sa generisanih 25 pravila fuzzy kontrolera za kontrolu temperature vode u kadi Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Grafički prikaz fuzzy zaključivanja projektovanog kontrolera Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
3D prikaz fuzzy zaključivanja projektovanog kontrolera Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Neural network toolbox_primer3Primena neuralnih mreža u modeliranju nelinearnih statičkih funkcija • Korišćenjem neuralne mreže treba aproksimirati funkciju: • Na intervalu: Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Izgled funkcije y(x) na intervalu [0,3] Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Formiranje obučavajućeg skupa, neuralne mreže i obučavanje • Kreiranje nove N-slojne feedforward neuralne mreže: net = newff(PR,[S1 S2...SNl],{TF1 TF2...TFNl},BTF,BLF,PF) • Argumenti koje funkcija uzima: • PR R x 2 matrica minimalnih i maksimalnih vrednosti za R ulaza; • Si Veličina i-tog sloja, za Nl slojeva; • TFi Transfer funkcija i-tog sloja (default = 'tansig'). (‘logsig’, ‘purelin’); • BTF Backpropagation network training function (default = 'trainlm').(‘trainbfg’, ‘trainrp’, ‘traingd’); • BLF Backpropagation weight/bias learning function (default = 'learngdm'). (‘learngd’); • PF Performance function (default = 'mse'). (‘msereg’); Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Formiranje obučavajućeg skupa, neuralne mreže i obučavanje • % Formiranje obučavajućeg skupa. • x=0:0.01:3; • y=exp(-0.5*x).*cos(2*x); • % Dodavanje aditivnog šuma. • yn=y+randn(size(y))*0.08; • figure(1); • plot(x,y); • figure(2); • plot(x,yn); • % Inicijalno formiranje neuralne mreže. • net=newff([0 3], [2 1],{'tansig','purelin','trainlm'}); • % Parametri obučavanja neuralne mreže. • net.trainParam.epochs=1000; • net.trainParam.goal=0.000001; • % Obučavanje neuralne mreže. • net=train(net,x,yn); • % Simulacija rada neuralne mreže. • ym=sim(net,x); • % Prikazivanje rezultata. • figure(3); • plot(x,y,x,yn,x,ym); Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Izgled funkcije yn(x) na intervalu [0,3]Funkcija yn(x) je jednaka zbiru funkcije y(x) i dodatog aditivnog šuma Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Prikaz rezultata simulacije obučene neuralne mrežeIzlaz neuralne mreže je prikazan crvenom linijom Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Prikaz toka obučavanja neuralne mreže Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Promena intervala ulaznog signala • % Formiranje obučavajućeg skupa. • x=0:0.01:4; • y=exp(-0.5*x).*cos(2*x); • % Dodavanje aditivnog šuma. • yn=y+randn(size(y))*0.08; • % figure(1); plot(x,y); • % figure(2); plot(x,yn); • % Inicijalno formiranje neuralne mreže. • net=newff([0 3], [2 1],{'tansig','purelin','trainlm'}); • % Parametri obučavanja neuralne mreže. • net.trainParam.epochs=1000; • net.trainParam.goal=0.000001; • % Obučavanje neuralne mreže. • net=train(net,x,yn); • % Simulacija rada neuralne mreže. • ym=sim(net,x); • % Prikazivanje rezultata. • figure(3); plot(x,y,x,ym); Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Prikaz rezultata simulacije neuralne mreže na skupu koji je različit od obučavajućeg skupa (zelena linija na grafiku) Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Preobučavanje neuralne mreže (overtraining) • % Formiranje obučavajućeg skupa. • x=0:0.01:3; • y=exp(-0.5*x).*cos(2*x); • % Dodavanje aditivnog šuma. • yn=y+randn(size(y))*0.08; • % figure(1); • % plot(x,y); • % figure(2); • % plot(x,yn); • % Inicijalno formiranje neuralne mreže. • net=newff([0 3], [20 1],{'tansig','purelin','trainlm'}); • % Parametri obučavanja neuralne mreže. • net.trainParam.epochs=2000; • net.trainParam.goal=0.000001; • % Obučavanje neuralne mreže. • net=train(net,x,yn); • % Simulacija rada neuralne mreže. • ym=sim(net,x); • % Prikazivanje rezultata. • figure(3); • plot(x,y,x,yn,x,ym); Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad
Prikaz toka obučavanja neuralne mreže u slučaju preobučavanja iste Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad