AS-84.161 Automaation signaalinkäsittelymenetelmät Tehtävä 1. Käynnistä fuzzy-toolboxi matlabin komentoikkunasta käskyllä fuzzy. Tämän jälkeen täytyy: 1. Lisätä uusi sisääntulo edit->add input 2. nimetä sisääntulot ja ulostulo 3. lisätä muutujille jäsenfunktiot, määrittää sääntökanta jne. Pääset muokkaamaan muuttujaa kaksoisklikkaamalla sen kuvaketta.
valve Muuttujille järkevät alueet (range) ovat level (pinnankorkeuden virhe): [-1 1] rate (pinnankorkeuden virheen muutosnopeus): [-0.1 0.1] valve (venttiilin moottorin ohjaus, ulostulo): [-1 1]. Voit lisätä muuttujalle jäsenfunktioita komennolla edit->add MFs. Jäsenfunktiota pääsee muokkaamaan klikkaamalla sitä, ja sitten joko muuttamalla sen parametreja (Params) käsin, tai hiirellä. Sääntökantaa pääsee muokkaamaan valitsemalla päävalikosta Edit -> Rules...
Päätöspintaa voit katsoa valikosta View->View surface Sääntöjen vaikutusta ulostuloihin pääsee kokeilemaan valitsemalla päävalikosta View -> Rules. Siirtelemällä pystyviivoja voit kokeilla erilaisia sisääntulojen arvoja. Ulostuloissa on merkitty punaisella pystyviivalla säätäjän ulostulo. Valmiin fuzzy-säätäjän voi liittää simulink-malliin sijoittamalla malliin valmis simulink palikka Fuzzy Logic Controller ja kirjoittamalla sen parametriksi fuzzysäätäjäsi nimi. Tätä varten fuzzy-säätäjä pitää viedä workspace-muuttujaksi komennolla File->Export->To workspace. Esimerkkitoteutusta voi tutkia Simulink-mallissa lask9.mdl (mukana lask9.zippaketissa). Kaksoisklikkaamalla fuzzy-lohkoa voit antaa tallettamasi säätäjän muuttujanimen, ja saat suunnittelemasi sumean lohkon käyttöön. Kun ajat Simulink-mallia, tulee näkyviin tulee sääntönäkymä. Pääset muokkaamaan sumean säätäjän parametreja valitsemalla tästä ikkunasta esim. Edit -> Fis properties. Muista aina muutosten jälkeen viedä säätäjä workspace-muuttujaksi. HUOM! Joskus sumean lohkon sisältävän Simulink-kaavion suoritus keskeytyy jostain syystä. Tähän vikaan pitäisi auttaa, jos muutat Simulaation parametreja Simulation -> Simulation parameters... "Advanced"-välilehdellä löytyy "Zero crossing detection". Tämä pitäisi asettaa arvoon "off".
Geneettiset algoritmit (Genetic Algorithms GA) - Adaptiivisia metodeja, joita käytetään optimointiongelmien ratkaisemiseen. GA:n tehokkuus perustuu siihen, että ne etsivät maximaalista ratkaisua suurella populaatiolla parametri-avaruuden eri osista yhtäaikaa ja huonot yritteet häviävät pois ja hyvät yritteet jatkavat ja lisääntyvät populaatiossa. - Alussa luodaan populaatio, jotka kaikki ovat jonkin asteisia ratkaisuja kyseiselle ongelmalle. Populaation yksilö (kromosomi) koostuu yhdistetyistä geeneistä. Geenit ovat normaalisti bittijonoja. - Populaation yksilöille lasketaan hyvyysarvo (fittness score). Hyvyysfunktio määritettävä ongelmakohtaisesti. Populaatiosta valitaan (kopioidaan) yksilöitä pariutumaan pariutusjoukkoon. Hyvät yksilöt (suuri hyvyysarvo) kopioituvat yleensä useasti ja huonot yksilöt (pieni hyvyysarvo) tuskin lainkaan. Valinta-algoritmeja: 1. Roulett (Ruletti, tarkemmin tehtävässä) 2. Tournament (Yksi voittaa n:stä, otetaan jokin määrä (n kpl) yksilöitä, joista suurimman hyvyysarvon omaava kopioituu pariutusjoukkoon) 3. Rank (sijaluvun mukaan lineaarinen tai exponentiaalinen valintatodennäköisyys) Pariutusjoukosta otetaan satunnaisesti kaksi yksilöä ja tehdään crossover (normaalisti todennäköisyydellä 0.6-1.0) ja sen jälkeen mutaatio (esim. tod. 0.01). Nämä jälkeläiset (+ osa vanhemmista) muodostavat uuden sukupolven. Tämä silmukka toistuu, kunnes löytyy riittävän (ison tai pienen) hyvyysarvon omaava kromosomi. Rinnakkaiset geneettiset algoritmit: 1. Työläismalli - laskenta usealla rinnakkaisella prosessorilla 2. Siirtolaismalli (saarekemalli) - Alipopulaatiot kehittyvät itsenäisesti ja vaihtavat yksilöitä tietyin väliajoin. - Estää ennenaikaisen konvergoitumisen alipopulaatioiden ansiosta, lisäksi algoritmi voidaan jakaa helposti usealle prosessorille. 3. Diffuusiomalli - Populaation jokainen kromosomi toimii omassa prosessissaan ja nämä kromosomit voivat kanssakäydä vain rajoitettujen naapureidensa kanssa.
Esimerkki geneettisen algoritmin käytöstä. Maximoi funktio X 2 välillä [ 031, ], binäärisen kromosomin pituus 5 bittiä, käytä kokonaislukuesitystä. 1. Valitse alkupopulaatio 5 yksilöä (satunnaisesti). 00110 11001 10101 01010 11101 2. Muodosta populaation hyvyysfunktio ja laske populaation hyvyysarvot. Tässä tapauksessa hyvyysfunktio suoraan verrannollinen X 2 :een. Hyvyysfunktio määritellään aina tehtäväkohtaisesti. Hyvyysehto, jolloin etsiminen loppuu (esim > 900). 00110 = 6 36 11001 = 25 625 10101 = 21 441 01010 = 10 100 11101 = 29 841 3. Roulette wheel selection 36 + 625 + 441 + 100 + 841 = 2043 0, 35 väli arvonnassa (ruletti), että 00110 = 6 kopioituu 36, 660 25 661, 1101 21 1102, 1201 10 1202, 2042 29 Arvotaan rulettilukuja: 1-2043 : 23, 500, 981,1002 ja 1099 Valitut yksilöt siis: 6, 25, 21, 10, 10
4. Crossover 6 ja 25, 21 ja 10. Kaksi ensimmäistä paria viidestä käsitelty (arvottu satunnaisesti). Loput kolme paria vastaavasti. Crossover todennäköisyys on normaalisti (0.6-1.0). 1-kertainen crossover: arvontaan satunnaisesti crossing point luku väliltä 1-4. Saatu 2. 00 110 = 6 11 001 = 25 jälkeläiset: 11110 = 30 ja 00001 = 1 crossing point luku (arvottu) = 3 101 01 = 21 010 10 = 10 jälkeläiset: 01001 = 9 ja 10110 = 22 5. Mutaatio, pieni todennäköisyys bittiä kohden esim 0.01. Nyt tapahtuu onnekas mutaatio 11110 = 30, muutuu 11111 = 31 Uuden sukupolven hyvyyslukuja laskettaessa saadan hyvyysehdon (hyvyysluku > 900) täyttävä tulos, joka on samalla ideaaliratkaisu, joten etsintä loppuu. Hyvyysluku yksilölle 11111 =31 on 961 > 900.