1 / 21

PID-säätimen parametrien optimointi GA:lla

PID-säätimen parametrien optimointi GA:lla. (Oma projekti/harjoitustyö). Alkuperäinen prosessi. Toimiiko GA? Näyttää ainakin lupaavalta Johtunee siitä, että k.o. säätöongelma on liian yksin-kertainen... ...lisäksi voi ihan randomillakin saada hyviä tuloksia(!).

rock
Download Presentation

PID-säätimen parametrien optimointi GA:lla

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. PID-säätimen parametrien optimointi GA:lla (Oma projekti/harjoitustyö)

  2. Alkuperäinen prosessi

  3. Toimiiko GA? Näyttää ainakin lupaavalta Johtunee siitä, että k.o. säätöongelma on liian yksin-kertainen... ...lisäksi voi ihan randomillakin saada hyviä tuloksia(!)

  4. Kuvitteellinen prosessiStaattinen vahvistus = 1

  5. Perus-PID:n toteutus Matlabin työpöydällä Laplace-muodossa • Gsys=tf(1,[1 2 3 1]); % prosessi • Gpid=tf([Ti(i)*Td(i) Ti(i) 1],[Ti(i) 0]); % säädin • Golt=Gsys*Gtype; % total system Open loop • Gcl=feedback(Kp(i)*Golt,1); % Closed loop • step(Gcl) % Piirtää askelvasteen • info=stepinfo(Gcl) % Purkaa hyvyysarvot askelvasteesta (struct)

  6. Heti hankalampi tapaus, undershoottia esiintyy vaikka väkisin

  7. P =(20*rand(1,length)+0.001).*(rand(1,length)+0.001).*(rand(1,length)+0.001); I =(10*rand(1,length)+0.001).*(rand(1,length)+0.001).*(rand(1,length)+0.001); D =(10*rand(1,length)+0.001).*(rand(1,length)+0.001).*(rand(1,length)+0.001); Populaatio

  8. Siirretään parhaimmat parametriyhdistelmät vasemmalle

  9. Sorry, crossover puuttuu vielä kokonaan... Ei ole ihan oppikirjan mukainen GA Säästetään ne parhaimmat ja lisätään niiden risteytykset ja/tai mutaatiot

  10. Ongelmia... • Crossover: geenien vaihto ja rulettivalinta • P, I ja D riippuvaisia toisistaan => Ei voida useamman optimointikerran jälkeen yksinkertaisesti olettaa kromosomien (vastaavien parametrien) keskiarvojen olevan ne ”optimaaliset”. Pitäisi ehkä huomioida geenien väliset suhteet esim. P:I:D 1:0.9:0.6 tai P/I, P/D, I/D ja sovittaa sopivat vakiot • Hyvyysfunktion painoarvojen valinta

  11. Hyvyysarvot saadaan askelvasteesta

  12. Hyvyysfunktio Halutaan siis minimoida kaikki hyvyysarvot. Summataan ne yhteen eri painoarvoilla, esim. 1*Risetime+2*Overshoot+3*Undershoot+ 1.5*Settlingtime Pienin summa = paras parametriyhdistelmä Parametrit riippuvaisia toisistaan?

  13. Peruskriteerit täyttävät askelvasteet • Liikaa undershoottia! => säädetään painoarvo suuremmaksi • GA:lle pitää opettaa millainen vaste on ”hyvä” vaste – toinen GA?

  14. Hyvyysfunktio ”GA”valitaan se vaste, joka näyttää parhaimmalta (training data)

  15. Eli kaikilla vasteilla on nyt samat PID-parametrit, mutta eri hyvyysfunktion painoarvot (random)

  16. Valitaan taas se paras käyrä, tosin ei aina niin helppoa

  17. Yritetään valita pois ne vasteet, joissa on eniten sitä ärsyttävää undershoottia...

  18. Parameter_R = 0.9364 1.3335 0.7735 1.5160 Parameter_S = 0.8356 4.7717 2.3711 2.4042 Parameter_O = 6.0054 5.8083 1.7413 2.3746 Parameter_U = 0.6490 2.4100 0.9179 5.2424 keskiarvo = 1.1399 keskiarvo = 2.5956 keskiarvo = 3.9824 keskiarvo = 2.3048 Miten dataa pitäisi tulkita? Ovatko keskiarvot nyt ne optimaaliset?

  19. Eli nyt ollaan opetettu GA:lle että vasteet tulee olla tämännäköiset. Ei kuitenkaan saisi vaikuttaa PID-parametrien hyvyyteen. No kokeillaan!(Ei ihan riittänyt undershootin eliminoimiseen, tarvittaisiin ehkä vähän enemmän training-data yritteitä kuin 4 ?)

  20. Miten voidaan parantaa? • Suurempi elitismi, vähemmän uusia satunnais-kromosomeja • Palikkahypoteesi saattaa olla se toimivin => • Crossover eliittien välillä rulettivalinta-periaatteella, suurimmat todennäköisyydet niille parhaimmille (vasemmassa laidassa) • Iteraatioiden edetessä kasvava mutatointiarvo (ja todennäköisyys?). Etsitään tällä tavalla parempia arvoja optimin lähistöllä • Miten ne alan ”gurut” ovat tätä toteuttaneet? Googlaamalla löytää vaikka kuinka paljon...

  21. To be continued...

More Related