Mat-2.48 Dynaaminen optimointi, mallivastaukset, kierros 3. Johdetaan lineaarisen aikainvariantin seurantatehtävän yleinen ratkaisu neliöllisellä kustannuksella. Systeemi: Kustannusfunktio: J = 2 xt NHx N + 2 x k+ = Ax k + Bu k. N k=0 { [xk r k ] T Q[x k r k ] + u T k Ru k. }. Tässä siis r k :t ovat referenssejä, joita tulisi noudatella. Lisäksi ohjaukset aiheuttavat positiivisen kustannuksen. Jotta tehtävä olisi mielekäs, ovat H, Q ja R symmetrisiä pos.def neliömatriiseja. Optimaalisen kustannuksen ajan hetkellä k tilasta x k loppuun saakka antaa dynaamisen ohjelmoinnin cost-to-go -funktio J k (x k). Johdetaan J :n lauseke. Lopussa: J N(x N ) = 2 xt NHx N 2 xt NP N x N, eli määritellään P N H N. Vastaavasti askeleella N : JN (x { N ) = min [xn r N ] T Q[x N r N ] + u T u N 2 N Ru N } + [Ax N + Bu N ] T P N [Ax N + Bu N ]. }{{} =2 JN (x N ) Derivoimalla u N :n suhteen ja asettamalla nollaksi saadaan lauseke optimaaliselle ohjaukselle u N = [R + B T P N B] B T P N Ax N F N x N. Koska R ja P N = H olivat pos.def. matriiseja, niin ovat myöskin B T P N B sekä R+B T P N B. Näin ollen käänteismatriisi on aina olemassa, ja lauseke on hyvin määritelty. Tässä F N on optimaalisen feedbackohjauksen vahvistusmatriisi. Sijoittamalla optimiohjaus JN :n lausekkeeseen ja järjestelemällä termejä saadaan J N (x N ) = 2 xt N P N x N + q T N x N + S N,
missä P N Q + F T N RF N + [A + BF N ] T P N [A + BF N ] q T N r T N Q S N 2 rt N Qr N. Tekemällä täysin vastaava pyöritys askeleella N 2 saadaan: u N 2 = [R + B T P N B] [B T P N Ax N 2 + B T q N ] F N 2 x N 2 + G N 2. Ohjaukseen ilmestyy nyt ylimääräinen termi G k, jota siis ei ollut lineaarisen regulaattoritehtävän tapauksessa (r k = 0, k). Lisäksi on oltava G N = 0. Sijoittamalla ohjaus ja järjestelemällä termejä saadaan J N 2 : missä J N 2(x N 2 ) = 2 xt N 2P N 2 x N 2 + q T N 2x N 2 + S N 2, P N 2 Q + F T N 2RF N 2 + [A + BF N 2 ] T P N [A + BF N 2 ] qn 2 T rn 2Q T + G T N 2RF N 2 +[G T N 2B T P N + qn ][A T + BF N 2 ] S N 2 2 rt N 2Qr N 2 + 2 GT N 2[R + B T P N B]G N 2 +q T N BG N 2 + S N. Nyt voitaisiin induktiolla todistaa, että optimaalinen ohjaus hetkellä k on muotoa u (x k ) = F k x k + G k, missä F k = [R + B T P k+ B] B T P k+ A P k = Q + F T k RF k + [A + BF k ] T P k+ [A + BF k ] G k = [R + B T P k+ B] B T q k+ qk T = rk T Q + G T k RF k + [G T k B T P k+ + qk+][a T + BF k ] loppuehdoilla P N = H, G N = 0 ja qn T = rt N Q. Jos nyt r k = 0, k niin palaudutaan luennollakin esitettyyn lineaariseen regulaattoritehtävän ratkaisuun (missä vahvistusmatriisi F k = K k ). 2
2. Systeemille ẋ (t) = x 2 (t) ẋ 2 (t) = x (t) + x 2 (t) + u(t) etsittävä optimiohjaus u (t) s.e. kustannusfunktionaali J = 2 T 0 [ q x 2 (t) + q 2 x 2 2(t) + u 2 (t) ] dt, q, q 2 > 0 minimoituu. Ohjauksille on voimassa rajoitusehto Hamilton-Jacobi-Bellman -yhtälö u(t), t [0, T ]. 0 = Jt T (x(t), t) + min{g(x(t), u(t), t) + Jx (x(t), t)[a(x(t), u(t), t)]} () u(t) voidaan vastaavasti kirjoittaa muodossa missä 0 = Jt (x(t), t) + min H (x(t), u(t), Jx, t) u(t) H (x(t), u(t), Jx, t) g(x(t), u(t), t) + Jx T (x(t), t)[a(x(t), u(t), t)] on Hamiltonin funktio. Annetulle tehtävälle Hamiltonin funktio on muotoa H (x, u, J x, t) = 2 q x 2 + 2 q 2x 2 2 + 2 u2 + J x x 2 + J x 2 [ x + x 2 + u]. Tämän minimit u:n suhteen löytyvät joko H :n nollakohdista tai rajoitusvälin u u päätepisteistä: H u = u + J x 2 = 0 = u = J x 2. Toinen osittaisderivaatta on positiivinen, joten kyseessä on minimi. Sidotun ääriarvon löytämiseksi riittää tarkastella H :n niitä termejä, joissa esiintyy u: (a) Kun J x 2 <, niin minimoituu, kun u =. H = 2 u2 + J x 2 u +... 3
(b) Kun J x 2 >, niin minimoituu, kun u =. H = 2 u2 + J x 2 u +... (c) Kun J x 2 [, ], niin u = J x 2 on käypä ohjaus ja siten minimoi Hamiltonin funktion. Näistä voidaan kirjoittaa Hamiltonin funktion minimoiva optimiohjaus:, jos J u x 2 > (t) = Jx 2, jos Jx 2. +, jos Jx 2 < Sijoittamalla tämä yhtälöön () saadaan osittaisdifferentiaaliyhtälö costto-go -funktiolle J (x(t), t), jota voitaisiin yrittää ratkaista. 3. Alussa säästöjä S, pääoman muutoksen yhtälö ẋ(t) = αx(t) r(t) missä α > 0 on korko ja r(t) on ohjausmuuttujana toimiva kulutusnopeus. Luonnollinen rajoitusehto on nyt Kuluttamisesta koetaan hyöty r(t) 0, t [0, T ]. U(r(t)) = r(t), joka diskontataan nykyarvoksi diskonttaustekijällä β > α/2, jolloin kokonaismielihyvän nykyarvo on J = T 0 e βt U(r(t)) dt. Tavoite on maksimoida J kun lopussa kaikki pääoma on käytetty. (a) Muodostetaan HJB-yhtälö. Tehtävän Hamiltonin funktio on H (x(t), r(t), t) = e βt r(t) + J T x (x(t), t) [ αx(t) r(t) ]. Kirjoittamalla osittaisderivaatta r:n suhteen ja asettamalla nollaksi saadaan yhtälö e βt H r = 2 r (t) J x(x(t), t) = 0, 4
josta saadaan maksimi r (t) = e 2βt 4 [ J x(x(t), t) ] 2 0, sillä toinen osittaisderivaatta on negatiivinen. Nyt voidaan kirjoittaa HJB-yhtälö: 0 = J t (x(t), t) + eli vastaavasti J t (x(t), t) + e 2βt 2Jx(x(t), t) + αj x(x(t), e 2βt t)x(t) 4Jx(x(t), t) e 2βt 4J x(x(t), t) + αj x(x(t), t)x(t) = 0. (b) Yritetään ratkaisua muodossa J (x(t), t) = A x(t)f(t), missä A > 0 ja f(t) on jokin derivoituva funktio: J t (x(t), t) = A x(t)f (t), J x(x(t), t) = Af(t) 2 x(t). Sijoittamalla HJB-yhtälöön saadaan yhtälö [ Af (t) + e 2βt 2Af(t) + 2 αaf(t)] x(t) = 0. Tämä toteutuu kaikilla t [0, T ] vain jos f(t) toteuttaa tavallisen differentiaaliyhtälön Af (t) + e 2βt 2Af(t) + αaf(t) = 0. 2 Kertomalla puolittain e αt :lla ja järjestelmällä termejä yhtälö voidaan kirjoittaa muotoon αe αt f 2 + 2e αt ff }{{} = A 2 e(α 2β)t. d dt (eαt f 2 ) 5
Integroimalla puolittain saadaan e αt f 2 = A 2 (2β α) e(α 2β)t + C. Jos nyt oikea puoli on positiivinen, löydetään ratkaisut f(t) = ± A 2 (2β α) e 2βt + Ce αt. Näistä vain positiivinen merkki on mahdollinen, koska muuten olisi J 0. On saatu kandidaatti cost-to-go -funktiolle J (x(t), t) = A x(t) A 2 (2β α) e 2βt + Ce αt. Integroimisvakio C tulee valita niin, että HJB-yhtälön reunaehto J (x(t ), T )) = 0 toteutuu. Näin ollen saadaan ehto vakiolle C: C = A 2 (α 2β) e(α 2β)T. Sijoittamalla cost-to-go -funktion lausekkeeseen saadaan J (x(t), t)) = x(t) e 2β α 2βt e α(t t) 2βT. Juurilausekkeessa oleva eksponenttilauseke on aina ei-negatiivinen kun t [0, T ] (harjoitustehtävä). Funktio on siis hyvin määritelty ja se toteuttaa HJB-yhtälön reunaehdon. Sijoittamalla J :n lauseke aiemmin laskettuun optimiohjauksen lausekkeeseen saadaan optimaalinen feedback-ohjaus r (t) = 2β α x(t). e (2β α)(t T ) Sijoittamalla tilayhtälöön saadaan optimitrajektorille differentiaaliyhtälö ẋ(t) = ( 2β α ) α x(t). e (2β α)(t T ) 6
Separoimalla yhtälö ja integroimalla puolittain päästään muotoon eli x(t) S dx x = t log x S = αt (2β α) t 0 ( α 2β α e (2β α)(t T ) ) dt 0 dt e (2β α)(t T ). Integraalitaulukoista löytyy kaava dt a + be = ( kt log(a + be kt ) ), kt ak jota käyttämällä ja sieventämällä päästään lopputulokseen ) 2(α β)t e(2β α)(t T x(t) = Se e. (2β α)t Kuva : Tehtävän 3 optimaaliset kulutustrajektorit eri diskonttauskertoimen β arvoilla kun T =, S = ja α = 0.95. Todetaan, että x(t ) = 0 eli myös loppuehto toteutuu. Tämä on luonnollista, koska mikäli lopussa olisi käyttämätöntä pääomaa, ei kokonaishyöty voi olla paras mahdollinen. Kuvassa on esitetty trajektorit eri β:n arvoilla, kun T =, S = ja α = 0.95. 7
4. Jatkuvan ajan tilasäätäjätehtävä ẋ(t) = A(t)x(t) + B(t)u(t) J = 2 xt (t f )Hx(t f ) + 2 tf t 0 [x T (t)q(t)x(t) + u T (t)r(t)u(t)] dt kun t 0, t f kiinteitä, Q(t) symmetrinen pos.semi.def matriisi kaikilla t, R(t) symmetrinen ja pos.def matriisi kaikilla t [t 0, t f ] ja H symmetrinen pos.def matriisi. Muodostetaan Hamilton-Jacobi-Bellman -yhtälö. 0 = J t +min u(t) { } 2 [xt (t)q(t)x(t)+u T (t)r(t)u(t)]+jx T [A(t)x(t)+B(t)u(t)] Etsitään minimi ohjauksen u(t) suhteen: R(t)u (t) + B T (t)j x = 0 eli u (t) = R (t)b T (t)j x. Sijoittamalla HJB-yhtälöön saadaan: 0 = Jt + 2 [xt Qx + Jx T BR T B T Jx] + Jx T [Ax BR B T Jx] = Jt + 2 [xt Qx Jx T BR B T Jx] + JxAx. Lisäksi ratkaisun tulee toteuttaa reunaehto J (x(t f ), t f ) = 2 xt (t f )Hx(t f ). Yrite: J (x(t), t) = 2 xt (t)k(t)x(t), missä K(t) on jokin pos.def neliömatriisi kaikilla t [t 0, t f ]. Silloin: J t = 2 xt (t) K(t)x(t), J x = K(t)x(t). Sijoittamalla HJB-yhtälöön saadaan 0 = 2 xt Kx + 2 xt Qx 2 xt KBR B T Kx + x T KAx. 8
Tämä voidaan kirjoittaa toisessa muodossa, kun havaitaan, että 2x T KAx x T KAx x T A T Kx = x T KAx x T A T Kx = x T KAx (x T A T Kx) T = x T KAx x T K T Ax = x T KAx x T KAx = 0, x R n, eli x T KAx = 2 xt (A T k + KA)x, x R n. Sijoittamalla edelliseen saadaan 0 = 2 xt [ K + Q KBR B T K + A T K + KA ] x matriisidifferentiaaliyhtälö K(t):lle: K(t) = K(t)B(t)R(t) B T (t)k(t) A T (t)k(t) K(t)A(t) Q(t) loppuehdolla K(t f ) = H. Tämä on nk. Riccatin matriisidifferentiaaliyhtälö. Voidaan osoittaa, että mikäli H on pos.def, niin silloin tehtävällä on olemassa ratkaisu K(t), joka on pos.def kaikilla ajan hetkillä t [t 0, t f ]. Käytännössä tehtävä joudutaan ratkaisemaan lähtien loppuajanhetkestä t f ja integroimalla numeerisesti. Ongelmaksi muodostuu, miten voidaan taata, että myös numeerisesti ratkaistut approksimatiiviset matriisit K(t) ovat positiividefiniittejä. Käy ilmi, että mikäli numeerinen integrointimenetelmä tuottaa positiividefiniittejä ratkaisuja, sen täytyy olla ensimmäisen kertaluvun menetelmä, katso esim. L. Dieci and T. Eirola: Positive definiteness in the numerical solution of Riccati and Lyapunov equations, Numer. Math. 67, 303-33, 994. Muitakin tapoja ratkaista Riccatin yhtälö numeerisesti on olemassa. Kun approksimatiivinen ratkaisu K(t) on saatu, voidaan kirjoittaa suljetun silmukan approksimatiivinen optimaalinen ohjauslaki ũ (t) = R (t)b T (t) K(t)x(t). 9