1 Kurssin käytännön järjestelyt Luennot (12 kpl) tiistaisin klo 9 12 luokassa Y313 Luennoitsija TkT Mitri Kitti Vastaanotto luentojen yhteydessä email: mitri.kitti@hse.fi Luentomoniste kurssin verkkosivuilla Laskuharjoitukset torstaisin 8.30 10 luokassa Y307 Laskuharjoitusassistentti tekn. yo. Ilkka Leppänen email: ileppane@cc.hut.fi Ensimmäinen laskuharjoitus torstaina 24.1. Harjoitustehtävät kurssin verkkosivuilla 1.1 Kurssimateriaali Kirk, D.E., Optimal Control Theory, An Introduction, Dover Publications, Inc., 2004. Amazon.com: $17,79. Kamien, M.L & Schwartz, N.L, Dynamic Optimization The Calculus of Variations and Optimal Control in Economics and Management, 2nd Edition, North Holland, 1991. Amazon.com: $130,00. Osia, jaetaan opetusmonisteissa Betts, J. T., Practical Methods for Optimal Control Using Nonlinear Programming, Society for Industrial and Applied Mathematics, Philadelphia, 2001. Amazon.com: $61.00. Osia, jaetaan opetusmonisteissa Bertsekas, D. P., Dynamic Programming and Optimal Control, Athena Scientific, Massachusettes, 1995. Osia, jaetaan opetusmonisteissa 1.2 Kurssin suorittaminen ja ohjelma Kurssi suoritetaan tentillä. Kotitehtäviä jaetaan viikottain, joista saadut pisteet huomioidaan tenteissä seuraavaan luennointikertaan saakka. 1. Historiaa, dynaamisen optimointitehtävän määrittely, tilaesitys 2. Optimiohjaustehtäviä, dynaaminen ohjelmointi 3. Diskreetin ja jatkuvan ajan tilasäätäjät, H-J-B-yhtälö 4. Variaatiolaskennan perusteet 5. Variaatiotehtävän transversaalisuusehdot 1
6. Rajoitetut variaatiotehtävät 7. Äärettömän aikavälin variaatiotehtävät 8. Ohjaustehtävä variaatioperiaatteella 9. Minimiperiaate, minimiaikatehtävät 10. Minimiponnistustehtävät, singulaariset ratkaisut 11. Vaihetasoanalyysi, diskontattu kohdefunktionaali 12. Optimisäätötehtävien numeeriset ratkaisumenetelmät 1.3 Kurssin tavoite Oppia ohjaamaan dynaamisia systeemeitä optimaalisesti jonkin annetun kriteerin suhteen. Tyypillisesti dynaamisen systeemin mallina käytetään 1. kertaluokan differentiaaliyhtälösysteemiä. Esimerkkejä: 1. Etsi lentokoneen ohjaus siten, että se lentää minimiajassa annetusta alkutilasta annettuun lopputilaan. 2. Pääomaa voidaan joko kuluttaa, mikä tuottaa hyötyä, tai laittaa kasvamaan korkoa. Etsi optimaalinen kulutus-säästöstrategia. 3. Biologinen malli: etsi optimaalinen kalastusstrategia, kun kokonaispopulaation koolle oletetaan jonkinlainen dynamiikka. 2 Dynaamiset optimointimallit: historiaa Tyrian prinsessa Didon maanmittausongelma, Karthago b max a S x(t)dt ds = b a 1 + ẋ2 (t)dt = L, x(a) = x(b) = 0. Brachistochrone-ongelma: millaista rataa x(t) pitkin kappale putoaa pisteestä A pisteeseen B lyhimmässä ajassa? Siis, etsi x(t), joka minimoi integraalin 0 dt = S ds v = b a [2gx(τ)] 1 2 [1 + ẋ(τ)] 1 2 dτ. }{{}}{{} 1 ds v Johann Bernoulli formuloi ongelman vuonna 1696; ratkaisun esittivät puoli vuotta myöhemmin Jacob Bernoulli, Leibnitz, Isaac Newton ja l Hospital. Leonhard Euler (1744): variaatiolaskenta, Eulerin yhtälö; välttämätön ehto variaatiotehtävän ratkaisulle. 1800-luku: klassinen Lagrangen mekaniikka ja Hamiltonin periaate. 2
Hamiltonin periaate: kappale kulkee pisteestä A pisteeseen B siten, että integraali tb t A L(x, ẋ)dt minimoituu, missä Lagrangen funktio L(x, ẋ) on kappaleen kineettisen ja potentiaalienergian välinen erotus. Esim. jouselle L(x, ẋ) = 1 2 mẋ2 1 2 kx2. Lagrangen liikeyhtälö on edellä olevan tehtävän Eulerin yhtälö, mikä puolestaan on edellä olevan tehtävän Newtonin liikeyhtälö. 1950-luku: dynaaminen optimointi, optimiohjaustehtävä variaatiotehtävän yleistys. Etsi ohjaus u(t), joka toteuttaa annetut rajoitukset ja minimoi annetun integraalin (kohdefunktio) L. S. Pontryagin: välttämättömät ehdot optimiohjaustehtävälle reuna-arvotehtävän muodossa. R. E. Bellman: dynaaminen ohjelmointi. Toinen tapa ratkoa erityisesti diskretoituja dynaamisia optimointitehtäviä; ns. optimaalisuusperiaatteen laskennallista soveltamista. 1960 : yleistys laajojen järjestelmien optimointiin ja erilaisiin pelitehtäviin: sotilas- ja siviili-ilmailun sovellukset, taloussovellukset, tietoverkkojen reititysongelmat yms. 2.1 Dynaamisten ongelmien luokittelu Sen mukaan, montako kriteeriä ja päätöksentekijää (pelaajia, ohjaajia, optimoijia, säätäjiä) Päättäjät Kriteerit Optimiohjaus, dynaaminen optimointi 1 (ohjaus u) 1 Nollasummainen differentiaalipeli 2 (ohjaus u 1, u 2 ) 2; J 1 = J 2 Monitavoitteinen optimointi 1 (ohjaus u) useita Dynaamisia joukkuetehtäviä useita (u 1,...,u n ) 1 Ei-nollasummainen differentiaalipeli useita useita Huomaa, että päättäjänä, päätösmuuttujana tai ohjausmuuttujana voi olla useita ohjauskomponentteja; u(t) R m. Muita jakoja: stokastiset deterministiset, jatkuvan ajan diskreetin ajan tehtävät 3
2.2 DOT:n muodostaminen, systeemin tilaesitys Sivut ss. 4 8 pääosin lähteen [Kirk, Ch. 1] pohjalta Tilaesitys on ryhmä (yleensä 1. kertaluokan) differentiaali- tai differenssiyhtälöitä tilamuuttujille x i (t) ja ulkoisille ohjausmuuttujille u j (t). Vapaa muuttuja on usein aika, voi olla myös esim. paikka. Diskreettiaikaisille systeemeille tullaan aikaa merkitään alaindeksillä, siis tila on x k, missä k indeksoi ajanhetkeä. Määritelmä. Vektori x = [x 1 x n ] T on systeemin tila, jos jokaisella tarkasteluvälin hetkellä t 1 pätee, että kun tunnetaan x(t 1 ), niin ohjaus u(t), t t 1 määrää tilan kaikkina tulevina ajanhetkinä t t 1. Toisin sanoen tila pitää sisällään kaiken tulevaisuuden kannalta tarpeellisen informaation systeemin historiasta, riippumatta ohjauksesta, jolla siihen on tultu. Huom! Tilaesitys ei ole yksikäsitteinen. Toisin sanoen on olemassa monta tapaa kuvata systeemiä tilaesityksellä. Yleensä tilalle saadaan esitys ẋ 1 (t) = f 1 (x 1 (t),...,x n (t), u 1 (t),...,u m (t), t). ẋ n (t) = f n (x 1 (t),...,x n (t), u 1 (t),...,u m (t), t) Systeemin tila x(t) = [x 1 x n ] T, ohjaus u(t) = [u 1 u m ] T. Vektorimuodossa ẋ(t) = f(x(t),u(t), t). Usein tilaesitykseen liitetään ulkopuolista tarkkailijaa tai mittaussuureita kuvaavat ulostuloyhtälöt y j (t) = c j (x 1 (t),..., x n (t), u 1 (t),...,u m (t), t), j = 1,...,p, jotka määräävät sen, miten havaittu ulostulo riippuu systeemin tilasta x ja ohjauksesta u. Vektorimuodossa y(t) = c(x(t), u(t), t). Yleisesti dynaaminen systeemi S: { ẋ(t) = f(x(t),u(t), t), x(t0 ) = x S : 0 y(t) = c(x(t),u(t), t), x(t) on n-ulotteinen tilavektori, systeemin alkutila x 0 annettu y(t) on p-ulotteinen ulostulovektori u(t) on m-ulotteinen ohjausvektori Tällä kurssilla optimointitehtävissä oletetaan tila yleensä täydellisesti tunnetuksi: y(t) = x(t), t. 2.3 Esimerkki 1 Kitkattomasti liikkuvaa autoa, m = 1, ohjataan kaasupolkimella, kiihdyttävä voima α(t) 0, ja jarrupolkimella, hidastava voima β(t) 0, t. 4
Etäisyys alkupisteestä d. Valitaan tilamuuttujiksi paikka d ja nopeus v. Ohjaukset α(t) ja β(t). d(t) = v(t) v(t) = α(t) + β(t) [ ] [ ] [ ] [ ] d(t) α(t) 0 1 0 0 x(t) =, u(t) = ẋ(t) = x(t) + u(t) v(t) β(t) 0 0 1 1 }{{}}{{} A B 2.4 Esimerkki 2 Auto lähtee pysähtyneenä pisteestä O ja pysähtyy pisteeseen e: [ ] [ ] 0 e x( ) =, x(t 0 f ) = 0 Auto ei peruuta, kiihtyvyydet rajoitetut 0 x 1 (t) e 0 x 2 (t) 0 u 1 (t) M 1 M 2 u 2 (t) 0 Polttoainetta rajoitettu määrä G 2.5 Tilaesityksen edut [k 1 u 1 (t) + k 2 x 2 (t)] dt G Tilaesitys on vakiintunut tapa kuvata dynaamisia systeemeitä Esitystapa on matemaattisesti käyttökelpoinen Usein tilavektorin komponenteilla on fysikaalinen (todellinen) tulkinta Tilaesityksen avulla voidaan tutkia systeemin ominaisuuksia Ohjattavuus Tarkkailtavuus Stabiilisuus 2.6 Systeemien luokittelu Epälineaarinen a) aikavariantti ja b) -invariantti systeemi a) ẋ(t) = f(x(t),u(t), t) b) ẋ(t) = f(x(t),u(t)) 5
Lineaarisen aikavariantin systeemin ẋ(t) = A(t)x(t) + B(t)u(t) tilayhtälön ratkaisu (ohjauksen u(t) vaste) on x(t) = ϕ(t, )x( ) + t ϕ(t, τ)b(τ)u(τ)dτ, missä ϕ(t, ) on systeemin tilansiirtomatriisi (kuvaa nollaohjauksella tilan muutosta hetkestä hetkeen t). Aikainvariantissa tapauksessa A ja B vakioita. ϕ(t, ) = ϕ(t ) = e A(t ), missä e At I + At + 1 2! A2 t 2 + Tilansiirtomatriisin ominaisuuksia: ϕ(t, t) = I ϕ(t 2, t 1 )ϕ(t 1, ) = ϕ(t 2, ) ϕ 1 (t 2, t 1 ) = ϕ(t 1, t 2 ) d d) = A(t)ϕ(t, ) Tilansiirtomatriisin määrittämiseksi on monia keinoja. Eräs tapa aikainvariantissa tapauksessa on määrittää eksponenttisarja numeerisesti. 2.7 Ohjaukset Ohjausfunktio u(t) on yleensä määritelty ja rajoitettu: u(t) U, missä U on esim. paloittain jatkuvien funktioiden joukko ja u(t) Ω, missä Ω kuvaa rajoitusjoukkoa U sisältää siis ne ohjaukset, joilla systeemiyhtälö on mielekäs ja Ω antaa toteutettavissa olevat ohjaukset Sallitut ohjaukset: u(t) Ω U Maalijoukko G, mihin tila halutaan ohjata, siis (x(t f ), t f ) G R n+1, kun t f on loppuaika Käypien ohjausten joukko (G;x 0 ) on niiden ohjausfunktioiden u(t) : [, t f ] R n, u(t) Ω U joukko, joilla maalijoukko G on saavutettavissa tilasta x 0 2.8 Ohjattavuus Käypien ohjausten määrittämiseen liittyvä käsite. Tarkastellaan systeemiä alkutilassa x 0 = x( ), ja t. ẋ(t) = f(x(t),u(t), t) Määritelmä. Jos on olemassa äärellinen t 1 ja ohjaus u(t), t [, t 1 ], joka siirtää tilan x 0 origoon hetkeen t 1 mennessä, niin tila x 0 on ohjattava hetkellä. Jos kaikki x 0 :t ovat ohjattavia, niin systeemi on täydellisesti ohjattava. 6
Huom! Jos systeemi ei ole ohjattava, on optimiratkaisun etsiminen turhaa! Lause. Lineaarinen aikainvariantti n-ulotteinen systeemi ẋ(t) = Ax(t) + Bu(t) on täydellisesti ohjattava jos ja vain jos n mn- ohjattavuusmatriisin E [ B AB A 2 B... A n 1 B ] rangi on n eli matriisissa E on n lineaarisesti riippumatonta riviä. 2.9 Tarkkailtavuus Tarkastellaan systeemiä alkutilassa x 0 = x( ), ja t. ẋ(t) = f(x(t),u(t), t) y(t) = c (x(t),u(t), t) Määritelmä. Jos systeemin alkutila x 0 voidaan määrittää tarkkailemalla systeemin ulostuloa y(t) aikavälillä [, t 1 ], tilan x 0 sanotaan olevan tarkkailtava hetkellä. Jos kaikki alkutilat x 0 ovat tarkkailtavia kaikille, systeemi on täydellisesti tarkkailtava. Lause. Lineaarinen aikainvariantti systeemi ẋ(t) = Ax(t) + Bu(t) y(t) = Cx(t) on täydellisesti tarkkailtava jos ja vain jos n qn -tarkkailtavuusmatriisin G [ C T A T C T (A T ) 2 C T... (A T ) n 1 C T] rangi on n eli matriisissa G on n lineaarisesti riippumatonta riviä. 2.10 Esimerkki 2 Tutkiaan edellisen autoesimerkin ohjattavuutta [ ] [ ] [ ] 0 1 0 0 1 1 A =, B =, AB =, E = 0 0 1 1 0 0 [ ] 0 0 1 1 1 1 0 0 E:n rangi on 2, joten systeemi on täydellisesti ohjattava. Jos vain kaasu käytössä, niin [ ] [ ] [ ] [ ] 0 1 0 0 1 0 0 0 1 0 A =, B =, AB =, E = 0 0 1 0 0 0 1 0 0 0 E:n rangi on 2, joten systeemi on täydellisesti ohjattava myös pelkällä kaasulla. 7
3 Dynaamisen optimointitehtävän määrittely Optimointikriteeri Dynaamisessa optimoinnissa kriteeri on funktionaali eli funktio funktiosta, joka kuvaa funktion reaaliluvuille: J : C 1 (a, b) R Tarkastellaan vain kriteereitä, joilla on additiivisuusominaisuus Esim. kriteerillä J(u(t)) = 1 R t1 u(t)dt Olkoon annettu systeemi S: Tavoitejoukko G : (x(t f ), t f ) G Ohjausrajoitukset u(t) Ω U J(u (t0,t 1 )) = J(u (t0,t)) + J(u (t,t1 )) t (, t 1 ) ei ole tätä ominaisuutta ẋ(t) = f(x(t),u(t), t), x( ) = x 0 Tavoitejoukko + ohjausrajoitukset käypien ohjausten joukko Kohdefunktionaali J(u(t)) Etsi sellainen ohjaus u (t), jolla J(u (t)) J(u(t)), u(t), u (t) on tällöin optimiohjaus Yleinen tehtävä min J ẋ(t) = f(x(t),u(t), t) x( ) = x 0, u(t) Ω U, missä J = h(x(t f ), t f ) + t f g(x(t),u(t), t)dt. Siis annetulla u(t) Ω U x(t) = x(u(t); t) tilayhtälöstä, sijoita x(u(t); t) J:hin, jolloin saat J = J(u(t)); eli J voidaan käsittää funktionaalina J : Ω U R 3.1 Optimiohjaustehtäviä [Kirk, Ch. 2] 1. Minimiaikatehtävä: ohjaa systeemi minimiajassa lopputilaan J = t f = 2. Lopputilakustannus: minimoi esim. lopputilan poikkeama annetusta tilasta J = [x(t) r(t)] T [x(t) r(t)] = x(t f ) r(t f ) 2 3. Minimiponnistustehtävä: minimoidaan esim. polttoaineenkulutusta J = dt u T (t)ru(t)dt = u(t) 2 R 8
4. Seurantatehtävä: halutaan systeemin tilan seuraavan annettua referenssirataa r(t) mahdollisimman tarkasti J = x(t) r(t) 2 Q(t) dt, missä Q(t) on symmetrinen, positiivisesti semidefiniitti n n- matriisi, eli x T (t)q(t)x(t) 0, x(t). Q(t):n valinta perustuu kunkin tilakomponentin oletettuun tärkeyteen. Jos ohjausta ei ole rajoitettu (esim. u i (t) 1), niin ohjauksen arvot voidaan pitää rajoitettuna ottamalla ohjaus mukaan kustannukseen. Myös maali r(t f ) voidaan ottaa mukaan samaan kustannukseen J = x(t f ) r(t f ) 2 H + [ ] x(t) r(t) 2 Q(t) + u(t) 2 R(t) dt H on symmetrinen positiivisesti semidefiniitti n n-matriisi R(t) on symmetrinen positiivisesti definiitti m m-matriisi t [, t f ]. Q(t) on symmetrinen positiivisesti semidefiniitti n n-matriisi t [, t f ] 5. Tilasäätäjä: kun r(t) = 0 t saadaan ns. tilasäätäjä- eli regulaattoritehtävä, jolla halutaan stabiloida systeemi origoon. Tilasäätäjissä ei painomatriiseilla H, Q(t) ja R(t) yleensä ole fysikaalista (tai taloudellista) merkitystä. Ne ovat viritysparametreja 6. Optimaalinen suunnittelu. Esim. rakennettava L:n korkuinen pylväs, joka kantaa jonkin kuorman ja minimoi käytetyn rakennusmateriaalin (tilavuuden) 7. Optimaalinen taloudenpito 3.2 Esimerkki Olkoon alkupääoma K( ) = K 0 [ ] ja pääoman tuottavuus F(K(t)) [ /aikayksikkö]. Pääoman tuotto voidaan ohjata joko kulutukseen C(t) tai pääoman kasvattamiseen (investointi) K(t). Paljonko kannattaa kuluttaa ja paljonko käyttää investointeihin? Olkoon kulutuksesta saatu hyöty U(C(t)): Koko elämänilo: J = t f U(C(t))dt Systeemi: K(t) = F(K(t)) C(t), nyt siis C(t) on ohjaus ja K(t) on tila Lopputilarajoitus: K(t f ) 0 Mikä on siis optimaalinen kulutusfunkio C (t)? 9