1 / 63

Seminarski rad Student Profesor

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

Download Presentation

Seminarski rad Student Profesor

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Elektrotehnički fakultet univerziteta u BeograduPRIMENA MATLAB-a U PROJEKTOVANJU FUZZY SISTEMA I NEURALNIH MREŽA Seminarski rad Student Profesor

  2. Uvod • MATLAB... • Fuzzy Logic Toolbox i Neural Network Toolbox... • Demonstracioni primeri... Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad

  3. 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

  4. Pokretanje Fuzzy Logic ToolboxGUI-a iz MATLAB komandnogprozora Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad

  5. Dodavanje ulazne varijable u FIS Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad

  6. Izgled sistema sa dva ulaza i jednim izlazom Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad

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

  8. Pokretanje prozora za generisanje funkcija pripadnosti.Generisane funkcije pripadnosti se automatski pridružuju selektovanoj varijabli Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad

  9. Brisanje prethodno generisanih funkcija pripadnosti pridruženih selektovanoj varijabli Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad

  10. Polja za unos parametara vezanih za selektovanu varijablu (“Visina_plate_[din.]”) Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad

  11. Dodavanje željene funkcije pripadnosti u dijagram Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad

  12. Izgled prozora za odabir tipa i unos parametara željene funkcije pripadnosti Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad

  13. 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

  14. 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

  15. Izgled dijagrama funkcija pripadnosti nakon unošenja željenih f-ja pridruženih izlaznoj varijabli “Izbor_posla” Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad

  16. Pokretanje prozora za generisanje pravila fuzzy zaključivanja Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad

  17. Izgled prozora za generisanje pravila fuzzy zaključivanja FIS-a Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad

  18. 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

  19. 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

  20. Pokretanje prozora za praćenje rada projektovanog ekspertskog sistema putem grafičkog prikaza Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad

  21. Za zadate vrednosti ulaza ekspertski sistem proračunava vrednost izlaza i grafički je prikazuje Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad

  22. Za zadate vrednosti ulaza ekspertski sistem proračunava vrednost izlaza i grafički je prikazuje Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad

  23. Za zadate vrednosti ulaza ekspertski sistem proračunava vrednost izlaza i grafički je prikazuje Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad

  24. Pokretanje prozora u kom je 3D prikazom prikazan rad ekspertskog sistema Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad

  25. 3D prikaz rada ekspertskog sistema za odabir posla Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad

  26. 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

  27. 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

  28. 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

  29. Tabela fuzzy pravila formulisanih za sistem za kontrolu temperature vode u kadi Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad

  30. 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

  31. Grafički prikaz funkcija pripadnosti pridruženih ulaznim varijablama “ERROR”, “CERROR”, i izlaznoj varijabli “MENU” Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad

  32. 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

  33. Rezultati simulacije za aplikaciju kontrole temperature vode u kadi korišćenjem isprojektovanog fuzzy kontrolera Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad

  34. 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

  35. 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

  36. Grafički prikaz funkcija pripadnosti pridruženih ulaznim varijablama “ERROR”, “CERROR”, i izlaznoj varijabli “MENU” Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad

  37. 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

  38. Grafički prikaz fuzzy zaključivanja projektovanog kontrolera Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad

  39. 3D prikaz fuzzy zaključivanja projektovanog kontrolera Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad

  40. 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

  41. Izgled funkcije y(x) na intervalu [0,3] Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad

  42. 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

  43. 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

  44. 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

  45. Prikaz rezultata simulacije obučene neuralne mrežeIzlaz neuralne mreže je prikazan crvenom linijom Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad

  46. Prikaz toka obučavanja neuralne mreže Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad

  47. 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

  48. 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

  49. 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

  50. Prikaz toka obučavanja neuralne mreže u slučaju preobučavanja iste Elektrotehnički fakultet univerziteta u Beogradu, Seminarski rad

More Related