Szimuláció Budapest University of Technology and Economics Fault Tolerant Systems Research Group Budapest University of Technology and Economics Department of Measurement and Information Systems 1
Mérés: Magyarország széltérképe Magyarország széltérképe hajnalban és reggel 2
Mérés: Magyarország széltérképe Magyarország széltérképe hajnalban és reggel Megfigyelés: dinamikus rendszer pillanatképek sorozata 3
Modellalkotás Az ECMWF readingi központjában naponta kétszer, a 00 és a 12 UTC-s kezdeti meteorológiai mezőkből kiindulva 10 napos determinisztikus modell előrejelzéseket futtatnak. A modell számos fizikai kölcsönhatást vesz figyelembe, így például az óceán - légkör, a talajnedvesség és a légkör, valamint a hótakaró és a légkör közöttit. A globális modell a felszín és a 0.1 hpa nyomási szint között 136 réteget tartalmaz. A modell horizontális térbeli felbontása 16 km. 4
Modellalkotás Az ECMWF readingi központjában naponta kétszer, a 00 és a 12 UTC-s kezdeti meteorológiai mezőkből kiindulva 10 napos determinisztikus modell előrejelzéseket futtatnak. A modell számos fizikai kölcsönhatást vesz figyelembe, így például az óceán - légkör, a talajnedvesség és a légkör, valamint a hótakaró és a légkör közöttit. A globális modell a felszín és a 0.1 hpa nyomási szint között 136 réteget tartalmaz. A modell horizontális térbeli felbontása 16 km. 5
Modellalkotás Az ECMWF readingi központjában naponta kétszer, a 00 és a 12 UTC-s kezdeti meteorológiai mezőkből kiindulva 10 napos determinisztikus modell előrejelzéseket futtatnak. A modell számos fizikai kölcsönhatást vesz figyelembe, így például az óceán - légkör, a talajnedvesség és a légkör, valamint a hótakaró és a légkör közöttit. A globális modell a felszín és a 0.1 hpa nyomási szint között 136 réteget tartalmaz. A modell horizontális térbeli felbontása 16 km. Modell pontossága függ az absztrakciós szinttől és a valósághűségtől 6
Szimuláció Délután tudunk-e menni vitorlázni? ECMWF AROME 7
Szimuláció Délután tudunk-e menni vitorlázni? Többféle modell!!! ECMWF AROME 8
9
10
Földrengések előrejelzése 11
Mérés Gyenge rengés a katasztrófa előtt Adatrögzítés: szeizmográf Lesz-e erős földrengés? Mi már tudjuk a választ 12
Előrejelzés? Katasztrófa 3 nagyságrenddel nagyobb földmozgás o Pár nappal a korábbi mérések után Milyen jó lenne pontosabban előrejelezni Mérés/ megfigyelés Modell 13 Szimuláció
Szimuláció és modellezés A modellezés során absztrakt matematikai reprezentációt építünk Szimuláció során a matematikai modellt végrehajtjuk o Virtuális kísérlet Viselkedésmodellekre 14
Miért szeretnénk szimulálni? Lehetőség van az időt tömöríteni, széthúzni Tudjuk kontrollálni a modell paramétereket Mérési hibák elkerülhetőek Megállítható, visszajátszható A rendszerállapot visszaállítható o Pl. repülőgép szimulátorban lezuhanás után A részletességet, felbontását tudjuk kontrollálni 15
Tartalom Ismétlés, motiváció Szimulációs alapok Folyamatok és versengés Kitekintés: szimulációs algoritmusok 16
Rendszermodellek felbontása Modellezés célja o Érthetőség, áttekinthetőség Nem cél a minimális modell o A teljes rendszer dinamikája Komponensek modellje egyszerű Bonyolult kölcsönhatások Csoportosítás o Folytonos o Diszkrét Értékben / időben 17
Folytonos Típusok Diszkrét Folytonos és diszkrét 18
Rendszerállapot (Celsius) Diszkrét idő/állapot 19 idő
Rendszerállapot (Celsius) Diszkrét idő/folytonos állapot 20 idő
Rendszerállapot (Celsius) Folytonos idő-diszkrét állapot 21 idő
Rendszerállapot (Celsius) Folytonos idő-folytonos állapot 22 idő
Diszkrét rendszermodellezés célja Célkitűzés: minőségi vagy/és mennyiségi analízis o kvalitatív: logikai helyességbizonyítás o kvantitatív: teljesítményelemzés és szolgáltatásbiztonság Informatikai rendszerek: jól tagoltak o rendszerépítés a komponensek integrációjával o elemi komponensek kapcsolata explicit logikai kapcsolat: sorrendiség, ok-okozati függőség implicit függőség: pl. osztott erőforrás használata 23
Szimuláció és modellezés Valós rendszer Modellezés Modell Kísérlet/mérés Virtuális kísérlet Általánosítás Paraméter Mérési eredmények Ellenőrzés 24 Szimulációs eredmények
FOLYAMATOK ÉS VERSENGÉS 25
Diszkrét eseménysor Esemény o pillanatszerű változás (a rendszerben vagy ki/bemeneten) Eseményfolyam o Pl. input/output adatforrás Eseménytér {megengedett események} o Beolvasható input értékek, kibocsátható output értékek Pillanatszerű események sora, egyszerre 1 Eseményfolyam: toronyóra ütései Eseménytér: {éjfél, dél} 0:00 12:00 24:00 36:00 48:00 60:00 t 26
Folyamatorientált modellezés Elemi tevékenységeink vannak Jellemzői: o igényel o Mennyi ideig tart Folyamat: tevékenységek logikailag rendezett sora 27
Erőforrás Konyhába belépés Vízforralás Foglal Elenged Forraló Foglal Elenged Tejet melegít Filtert betesz Ízesítés Kész a tea üzenet küldése 35
Versengés erőforrásért Erőforrás: Vízforraló Vízforralás Foglal Elenged Forraló Foglal Elenged Tejet melegít Nem közös erőforrás Tejet melegít t Van közösen használt erőforrás Tejet melegít Vízforralás t Vízforralás 36
Erőforrások modellezése Folyamat /Erőforrás felszabadít Foglalt Erőforrás /Erőforrás Erőforrás Szabad Erőforrás felszabadít 42
Erőforrások modellezése Folyamat Erőforrás Erőforrás felszabadít Foglalt Erőforrás Szabad 43
Erőforrások modellezése Folyamat Erőforrás Erőforrás felszabadít Foglalt Erőforrás Szabad 44
SZIMULÁCIÓS ALGORITMUSOK 75
Kihívás Jó modellt is lehet rosszul szimulálni! Példamodell o Az ajtó lehet nyitva és csukva: Ha be van csukva, ember nem haladhat át rajta o Ha egy ember csukott ajtóhoz ér: Ha át szeretne menni, kinyitja, maga után becsukja o Kinyitás ill. becsukás közben, ha valami útban van: Könnyű holmi arrébb tolja Nehéz torlasz megakad, nem nyitható / csukható 77
https://www.youtube.com/watch?v=7aznpid9rg Q 78
Állapotgép szimuláció Várakozik Folyamat Erőforrás felszabadít Diszkrét idejű modell o Pl.: állapotgép o Lépésről lépésre szimulálható Erőforrás Várakozik Várakozik t Logikai idő: lépés 84
Diszkrét idejű modell szimulációja 1. ciklus { 2. meghatározzuk az aktív átmeneteket: Α 3. választunk egy aktivációt: α 4. eltüzeljük 5. } 86
Várakozik Állapotgép szimuláció Folyamat α 0 α 4 α 1 α 5 α 2 α 3 1. ciklus { 2. meghatározzuk az aktív átmeneteket: Α 3. választunk egy aktivációt: α 4. eltüzeljük 5. } α 0 α 1 α 2 α 1 α 3 α 4 α 5 Várakozik Α={α 1 } Α={α 2,α 3 } Várakozik Α={α 1 } Α={α 2,α 3 } Α={α 4 } Α={α 5 } Várakozik t 88
Diszkrét idejű modell Szimuláció fajtái o Pl.: állapotgép o Lépésről lépésre szimulálható Folytonos idejű modell o Pl.: teljesítménymodell o Pl.: fizikai modell számítógépes játékhoz Időjárás-előrejelzéshez o Baj: maga a szimulátor diszkrét idejű! DES: Discrete event simulation Time stepped dynamic model 89
Szimuláció fajtái DES: Discrete event simulation o Diszkrétesemény-szimuláció/Időzített diszkrét szimuláció o Események diszkrét időpillanatokban következnek be o Esemény: ε=(α ε,t ε ) Akció és a hozzá tartozó időbélyeg oeseménysor fogalma Time stepped dynamic model o Időlépéses szimuláció 90
Diszkrétesemény-szimuláció/Időzített diszkrét szimuláció 1. t := 0; // szimulációs óra inicializálás 2. Q globális eseménysor inicializálása a kezdeti eseményekkel; // Q eseményei időbélyeg szerint sorrendezettek 3. ciklus{ A teljes rendszerállapoton dolgozik, dés: modularitás 4. legkorábbi e esemény kiválasztása Q-ból (időbélyeg: t e ) 5. t:= t e // szimulációs óra növelése 6. e esemény végrehajtása: rendszerállapot frissítése, új események generálása, elavult események törlése 7. új események hozzáadása Q eseménysorhoz időbélyeg alapján sorrendezve 8. } 91
Diszkrétesemény-szimuláció Filtert betesz Foglal Elenged Kanál Foglal Elenged Ízesítés Eseménysor (esemény formátuma ε=(t ε,α ε )): Q 0 =(0,{ízesítés taszk indítás, filtert betesz taszk indítás}) 0 Szabad t 95
Diszkrétesemény-szimuláció 5 s 10 s Q 0 =(0,{Ízesítés., Filtert betesz.}) 0 Szabad t 96
Diszkrétesemény-szimuláció 5 s 10 s Q 0 =(0,{Ízesítés., Filtert betesz.}) 0 Szabad t 97
Diszkrétesemény-szimuláció 5 s 10 s Q 0 =(0,{Filtert betesz., Ízesítés. }) 0 Szabad t 98
Diszkrétesemény-szimuláció 5 s 10 s Q 0 =(0,{Filtert betesz., Ízesítés. }) 0 Szabad t 99
Diszkrétesemény-szimuláció 5 s 10 s Q 0 =(0,{Filtert betesz., Ízesítés. }) 0 Szabad t 100
Diszkrétesemény-szimuláció 5 s 10 s Q 0 =(0,{Filtert betesz., Ízesítés. }) 0 Szabad t 101
Diszkrétesemény-szimuláció 5 s 10 s Q 0 =(0,{Ízesítés., Filtert betesz. }) 0 Szabad t 102
Diszkrétesemény-szimuláció 5 s 10 s Q 0 =(0,{Ízesítés., Filtert betesz. }) 0 Szabad t 103
Diszkrétesemény-szimuláció 5 s 10 s Q 0 =(0,{Filtert betesz. }), (10,{Ízesítés. }) 0 Szabad t 104
Diszkrétesemény-szimuláció 5 s 10 s Q 0 =(0,{Filtert betesz. }), (10,{Ízesítés. }) 0 Szabad t 105
Diszkrétesemény-szimuláció 5 s 10 s Q 0 =(10,{Ízesítés. }) 0 Szabad Foglalt 0. időpillanat, csak logikai lépések történtek 106 t
Diszkrétesemény-szimuláció 5 s 10 s Q 0 =(10,{Ízesítés. }) 0 Szabad Foglalt 10 s 107 t
Diszkrétesemény-szimuláció 5 s 10 s Q 0 =(10,{Ízesítés. }) 0 Szabad Foglalt t e = 10 108 t
Diszkrétesemény-szimuláció 5 s 10 s Q 0 =(10,{Ízesítés. }) 0 Szabad t = 0 Foglalt t = 10 t 109
Diszkrétesemény-szimuláció 5 s 10 s Q 10 =(0,{Ízesítés. }) 0 Szabad t = 0 Foglalt t = 10 t 110
Diszkrétesemény-szimuláció 5 s 10 s Q 10 =(0,{Ízesítés. }) 0 Szabad t = 0 Foglalt t = 10 t 111
Diszkrétesemény-szimuláció 5 s 10 s Q 10 =(10,{Filtert betesz. foglal}) 0 Szabad t = 0 Foglalt t = 10 t 112
Diszkrétesemény-szimuláció 5 s 10 s Q 10 =(10,{Filtert betesz. foglal}) 0 Szabad t = 0 Foglalt t = 10 t 113
Diszkrétesemény-szimuláció 5 s 10 s Q 10 =(15,{Filtert betesz. }) 0 Szabad Foglalt Foglalt t = 0 t = 10 114 t
Diszkrétesemény-szimuláció 5 s 10 s Q 10 =(15,{Filtert betesz. }) 0 Szabad Foglalt Foglalt t = 0 t = 10 115 t
Diszkrétesemény-szimuláció 5 s 10 s Q 15 =(0,{Filtert betesz. }) 0 Szabad Foglalt Foglalt t = 0 t = 10 116 5 s t
Diszkrétesemény-szimuláció 5 s 10 s Q 15 =(0,{Filtert betesz. }) 0 Szabad Foglalt Foglalt t = 0 t = 10 t = 15 t 117
Diszkrétesemény-szimuláció 5 s 10 s Q 15 =() 0 Szabad Foglalt Foglalt Szabad t = 0 t = 10 t = 15 118 t
Diszkrétesemény-szimuláció 5 s 10 s Q 15 =() 0 Szabad Foglalt Foglalt Szabad t = 0 t = 10 t = 15 119 t
Időlépéses szimuláció Számítógépes játék, ahol pattog a labda, feladat: o Ki kell rajzolni, h hol van Hogyan teszem meg? Fizikai egyenletekből: o Sebesség, nehézségi erő o Eltelik Δt idő, a labda halad o Ciklusban ismételjük a számolást Valójában a fizikai egyenleteket egyszerűsítjük! 121
Folytonos idő-folytonos állapot Δx Δt 122 idő
Időlépéses szimuláció 1. Kezdeti rendszerállapot beállítása 2. ciklus { 3. t:=t+δt 4. Δt alatt bekövetkezett változás kiszámítása 5. változók frissítése a kiszámolt változásuk szerint 6. } 123
Folytonos idejű szimuláció - problémák Pattogó labda (openmodelica) Visszapattanás során a csillapítás 3% 124
Folytonos idejű szimuláció - problémák Pattogó labda (openmodelica) A labda beesik a föld alá??? Δt túl nagy, mire észreveszi a szimuláció, hogy vissza kéne pattanni, a labda beesik a föld alá 125
Folytonos idejű szimuláció - problémák Pattogó labda (openmodelica) Ötlet: eseményvezérelt megközelítés Számítsuk ki a pattanások pillanatát 126
Folytonos idejű szimuláció - problémák Pattogó labda (openmodelica) Ötlet: eseményvezérelt megközelítés A labda helyzetének maximum és minimum pontjait számítsuk ki, így pontos eredményt kapunk 127
Folytonos idejű szimuláció - problémák Pattogó labda (openmodelica) Ötlet: eseményvezérelt megközelítés A labda helyzetének maximum és minimum pontjait számítsuk ki, így pontos eredményt kapunk Zeno viselkedés: Véges idő alatt végtelen számú esemény (lásd analízis tárgy, sorok, sorozatok) 128
Folytonos idejű szimuláció - problémák Pattogó labda (openmodelica) Ötlet: eseményvezérelt megközelítés A labda helyzetének maximum és minimum pontjait számítsuk ki, így pontos eredményt kapunk 129
Tanulság A szimuláció során, ha az idő felbontás nem elég finom (Δt túl nagy), számolási pontatlanság Zeno viselkedés: végtelen számú esemény következik be egy időpont előtt az idő nem tud haladni Megoldás: o Ha a labda már nem pattan elég nagyra, azt mondjuk, hogy megállt o Modellt módosítottuk 130