OBSAH WEBU
ČTĚTE!
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
temata:25-principy_modelovani_a_simulace_systemu:main [2011/03/13 18:10] jasho |
temata:25-principy_modelovani_a_simulace_systemu:main [2011/06/14 22:10] (aktuální) vagabund [25 - Princípy modelovania a simulácie systémov] |
||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
- | ======= Princípy modelovania a simulácie systémov ======= | + | ~~ODT~~ |
- | ====== Základné informácie ====== | + | ======= 25 - Princípy modelovania a simulácie systémov ======= |
+ | ===== Základné informácie ===== | ||
- | ===== Základné pojmy ===== | + | * [[temata:25-principy_modelovani_a_simulace_systemu:pseudokody|Pseudokódy]] |
+ | ==== Základné pojmy ==== | ||
* **systém** - súbor elementárnych častí (prvkov systému), ktoré majú medzi sebou určité väzby | * **systém** - súbor elementárnych častí (prvkov systému), ktoré majú medzi sebou určité väzby | ||
* **model** - napodobnenina systému iným systémom | * **model** - napodobnenina systému iným systémom | ||
Řádek 10: | Řádek 12: | ||
{{:temata:25-principy_modelovani_a_simulace_systemu:01_prehlad.png|}} | {{:temata:25-principy_modelovani_a_simulace_systemu:01_prehlad.png|}} | ||
- | ===== Základné etapy modelovania a simulácie ===== | + | ==== Základné etapy modelovania a simulácie ==== |
* **vytvorenie abstraktného modelu** - formovanie zjednodušeného popisu systému | * **vytvorenie abstraktného modelu** - formovanie zjednodušeného popisu systému | ||
* **vytvorenie simulačného modelu** - zápis abstraktného modelu formou programu | * **vytvorenie simulačného modelu** - zápis abstraktného modelu formou programu | ||
Řádek 16: | Řádek 18: | ||
* **analýza** a **interpretácia** výsledkov, **overovanie správnosti** modelu | * **analýza** a **interpretácia** výsledkov, **overovanie správnosti** modelu | ||
- | ===== Výhody a nevýhody simulačných metód ===== | + | ==== Výhody a nevýhody simulačných metód ==== |
* **výhody** - cena, rýchlosť, bezpečnosť, niekedy jediný možný spôsob | * **výhody** - cena, rýchlosť, bezpečnosť, niekedy jediný možný spôsob | ||
* **nevýhody** - problém validity modelu, vysoká náročnosť vytvárania modelov, náročnosť na výkon počítačov, konkrétne numerické výsledky (zmena parametra vyžaduje celú simuláciu opakovať), nepresnosť numerického riešenia, nestabilita numerických metód | * **nevýhody** - problém validity modelu, vysoká náročnosť vytvárania modelov, náročnosť na výkon počítačov, konkrétne numerické výsledky (zmena parametra vyžaduje celú simuláciu opakovať), nepresnosť numerického riešenia, nestabilita numerických metód | ||
- | ====== Základné pojmy teórie systémov ====== | + | ==== Základné pojmy teórie systémov ==== |
- | ===== Systém ===== | + | === Systém === |
* **systém S = (U, R)** | * **systém S = (U, R)** | ||
* U - univerzum, konečná množina prvkov systému U = {u1, u2,... uN} | * U - univerzum, konečná množina prvkov systému U = {u1, u2,... uN} | ||
Řádek 76: | Řádek 78: | ||
* **nedeterministické** - aspoň jeden prvok s nedeterministickým chovaním | * **nedeterministické** - aspoň jeden prvok s nedeterministickým chovaním | ||
- | ===== Simulácia ===== | + | === Simulácia === |
* **cieľ simulácie** - analýza chovania systému v závislosti na vstupných veličinách a na hodnotách parametrov (opakované riešenie modelu) | * **cieľ simulácie** - analýza chovania systému v závislosti na vstupných veličinách a na hodnotách parametrov (opakované riešenie modelu) | ||
* typy simulácie | * typy simulácie | ||
Řádek 92: | Řádek 94: | ||
* **validácia modelu** - overenie, či simulačný model zodpovedá reálnemu systému, ktorý simulujeme | * **validácia modelu** - overenie, či simulačný model zodpovedá reálnemu systému, ktorý simulujeme | ||
- | ===== Modely ===== | + | === Modely === |
* **abstraktné** | * **abstraktné** | ||
* konečný automat, Petriho sieť, turingov stroj, algebraické rovnice, diferenciálne rovnice, diferenčné rovnice, markovské procesy... | * konečný automat, Petriho sieť, turingov stroj, algebraické rovnice, diferenciálne rovnice, diferenčné rovnice, markovské procesy... | ||
Řádek 102: | Řádek 104: | ||
* klasifikácia podľa Fishwicka | * klasifikácia podľa Fishwicka | ||
+ | {{:temata:25-principy_modelovani_a_simulace_systemu:08_fishwick.png|}} | ||
* **konceptuálny** - komponenty nie sú presne popísané v zmysle teórie systémov | * **konceptuálny** - komponenty nie sú presne popísané v zmysle teórie systémov | ||
+ | {{:temata:25-principy_modelovani_a_simulace_systemu:09_konceptualny_model.png|}} | ||
+ | |||
* **deklaratívny** - definovaný stavmi a udalosťami, ktoré spôsobia prechod z jedného stavu do druhého | * **deklaratívny** - definovaný stavmi a udalosťami, ktoré spôsobia prechod z jedného stavu do druhého | ||
+ | {{:temata:25-principy_modelovani_a_simulace_systemu:10_deklarativny_model.png|}} | ||
+ | |||
* **funkcionálny** - grafy zobrazujúce funkcie a premenné | * **funkcionálny** - grafy zobrazujúce funkcie a premenné | ||
+ | {{:temata:25-principy_modelovani_a_simulace_systemu:11_funkcionalny_model.png|}} | ||
+ | |||
* popísaný rovnicami (**constraint**) - algebraické, diferenciálne, diferenčné rovnice, alebo orientované grafy | * popísaný rovnicami (**constraint**) - algebraické, diferenciálne, diferenčné rovnice, alebo orientované grafy | ||
* **priestorový** (spatial) - rozdeľujú systém na priestorovo menšie ohraničené podsystémy (napr. hra Life) | * **priestorový** (spatial) - rozdeľujú systém na priestorovo menšie ohraničené podsystémy (napr. hra Life) | ||
* **multimodely** - zložené z iných modelov (napr. diskrétny + spojitý) | * **multimodely** - zložené z iných modelov (napr. diskrétny + spojitý) | ||
- | {{:temata:25-principy_modelovani_a_simulace_systemu:08_fishwick.png|}} | ||
- | ====== Diskrétna simulácia ====== | + | |
+ | ===== Diskrétna simulácia ===== | ||
* formy popisu diskrétnych systémov - program, Petriho siete, DEVS, automaty, siete automatov, procesné algebry, pi-calculus, CHAM, PRAM... | * formy popisu diskrétnych systémov - program, Petriho siete, DEVS, automaty, siete automatov, procesné algebry, pi-calculus, CHAM, PRAM... | ||
* **proces** - postupnosť udalostí, ktoré súvisia s jedným objektom (napr. zákazníkom) | * **proces** - postupnosť udalostí, ktoré súvisia s jedným objektom (napr. zákazníkom) | ||
Řádek 116: | Řádek 125: | ||
* kváziparalelizmus - vykonávanie "paralelných" procesov na jednoprocesorovom počítači | * kváziparalelizmus - vykonávanie "paralelných" procesov na jednoprocesorovom počítači | ||
- | ===== Petriho siete ===== | + | ==== Petriho siete ==== |
- | * sigma = (P, T, F, W, C, M0) | + | * **Σ = (P, T, F, W, C, M0)** |
* P - množina miest | * P - množina miest | ||
* T - množina prechodov P prienik T = {} | * T - množina prechodov P prienik T = {} | ||
- | * F podmnožina (P*T)zjednotenie(T*P) - incidenčné relácie | + | * F ⊆ (P*T)∪(T*P) - incidenčné relácie |
* W - váhová funkcia | * W - váhová funkcia | ||
* C - kapacity miest | * C - kapacity miest | ||
* M0 - počiatočné značenie (M - značenie Petriho siete) | * M0 - počiatočné značenie (M - značenie Petriho siete) | ||
- | * graf | + | * **graf** |
- | * miesta - kružnice | + | * **miesta** - kružnice |
- | * prechody - obdĺžniky | + | * **prechody** - obdĺžniky |
- | * incidenčné relácie - šípky (orientované hrany) - podstatné - nikdy nemôžme spojiť 2 miesta ani 2 prechody | + | * **incidenčné relácie** - šípky (orientované hrany) - podstatné - nikdy nemôžme spojiť 2 miesta ani 2 prechody |
- | * váhová funkcia - ohodnotenie hrán | + | * **váhová funkcia** - ohodnotenie hrán |
- | * prioritné prechody - ak je možných naraz viac prechodov, môžme im dať priority (vyššie číslo, vyššia priorita) | + | * **prioritné prechody** - ak je možných naraz viac prechodov, môžme im dať priority (vyššie číslo, vyššia priorita) |
- | * inhibičné hrany - vyžadujú aby bolo vstupné miesto prázdne | + | * **inhibičné hrany** - vyžadujú aby bolo vstupné miesto prázdne |
- | * pravdepodobnosť vykonania prechodu | + | * **pravdepodobnosť** vykonania prechodu |
- | * časované prechody - pridanie modelového času - môžu byť s konštantným časom alebo náhodnou dobou, ak je prechod realizovateľný, spustí sa odpočet času, ale značka zostáva vo vstupnom mieste až kým čas neubehne - okamžitý prechod má vždy vyššiu prioritu ako časovaný | + | * **časované prechody** - pridanie modelového času - môžu byť s konštantným časom alebo náhodnou dobou, ak je prechod realizovateľný, spustí sa odpočet času, ale značka zostáva vo vstupnom mieste až kým čas neubehne - okamžitý prechod má vždy vyššiu prioritu ako časovaný |
- | * kapacita prechodu - koľko procesov môže na prechode čakať súčasne | + | * **kapacita prechodu** - koľko procesov môže na prechode čakať súčasne |
- | * KAŽDÝ PRECHOD MÁ MAXIMÁLNE 1 PARAMETER (nemôže mať prioritu aj pravdepodobnosť) | + | * **KAŽDÝ PRECHOD MÁ MAXIMÁLNE 1 PARAMETER (nemôže mať prioritu aj pravdepodobnosť)** |
* realizovateľnosť prechodu - prechod je možné uskutočniť pri značení M, ak vo vstupných miestach čaká dostatok procesov a súčasne výstupné miesta majú dostatocnú voľnú kapacitu | * realizovateľnosť prechodu - prechod je možné uskutočniť pri značení M, ak vo vstupných miestach čaká dostatok procesov a súčasne výstupné miesta majú dostatocnú voľnú kapacitu | ||
- | + | {{:temata:25-principy_modelovani_a_simulace_systemu:12_petriho_siet.png|}} | |
- | ===== SHO (systémy hromadnej obsluhy) ===== | + | |
+ | ==== SHO (systémy hromadnej obsluhy) ==== | ||
* systémy obsahujúce zariadenia, ktoré obsluhujú transakcie | * systémy obsahujúce zariadenia, ktoré obsluhujú transakcie | ||
* typicky obsahujú - transakcie (procesy), obslužné linky, fronty | * typicky obsahujú - transakcie (procesy), obslužné linky, fronty | ||
* sledujeme - informácie o časovom priebehu transakcie, doby čakania vo frontách, zaťaženie liniek | * sledujeme - informácie o časovom priebehu transakcie, doby čakania vo frontách, zaťaženie liniek | ||
- | * fronty | + | * **fronty** |
- | * frontové rady - FIFO, LIFO, SIRO (service in random order) | + | * **frontové rady** - FIFO, LIFO, SIRO (service in random order) |
- | * nulová fronta - požiadavka nemôže ísť do fronty => systém so stratami | + | * **nulová fronta** - požiadavka nemôže ísť do fronty => systém so stratami |
- | * fronta konečná - obmedzená kapacita fronty | + | * **fronta konečná** - obmedzená kapacita fronty |
- | * fronta s netrpezlivými požiadavkami - ak prekročí doba čakania limit, opúšťa požiadavka systém | + | * **fronta s netrpezlivými požiadavkami** - ak prekročí doba čakania limit, opúšťa požiadavka systém |
- | * prioritné fronty, priorita obsluhy | + | * **prioritné fronty**, priorita obsluhy |
- | * slabá priorita - započatá obsluha sa normálne ukončí | + | * **slabá priorita** - započatá obsluha sa normálne ukončí |
- | * silná priorita - obsluha sa preruší a začne sa obsluha požiadavky s vyššou prioritou | + | * **silná priorita** - obsluha sa preruší a začne sa obsluha požiadavky s vyššou prioritou |
- | * obslužná sieť - vzniká spojením niekoľkých obslužných liniek | + | * **obslužná sieť** - vzniká spojením niekoľkých obslužných liniek |
- | * otvorená - výmena požiadaviek s okolím | + | * **otvorená** - výmena požiadaviek s okolím |
- | * uzavretá - nedochádza k výmene požiadaviek s okolím | + | * **uzavretá** - nedochádza k výmene požiadaviek s okolím |
- | * zmiešaná - pre niektoré typy požiadaviek je otvorená, pre iné uzavretá | + | * **zmiešaná** - pre niektoré typy požiadaviek je otvorená, pre iné uzavretá |
* statické vlastnosti - počet a charakteristika oblužných liniek, topológia siete | * statické vlastnosti - počet a charakteristika oblužných liniek, topológia siete | ||
* dynamické vlastnosti - charakteristika procesu príchodu požiadaviek, charakteristika procesu obsluhy požiadaviek, charakteristika procesu prechodu požiadaviek medzi obslužnými linkami, stratégia obsluhy požiadaviek v obslužných linkách | * dynamické vlastnosti - charakteristika procesu príchodu požiadaviek, charakteristika procesu obsluhy požiadaviek, charakteristika procesu prechodu požiadaviek medzi obslužnými linkami, stratégia obsluhy požiadaviek v obslužných linkách | ||
- | * Kendallova klasifikácia - X/Y/c | + | * **Kendallova klasifikácia - X/Y/c** |
* X - typ stochastického procesu popisujúceho príchod požiadaviek k obsluhe (M - Poissonov proces príchodov - exponenciálne rozloženie, D - pravidelné deterministické príchody) | * X - typ stochastického procesu popisujúceho príchod požiadaviek k obsluhe (M - Poissonov proces príchodov - exponenciálne rozloženie, D - pravidelné deterministické príchody) | ||
* Y - zákon rozloženia dĺžky obsluhy (M - exponenciálne rozloženie obsluhy, D - konštantná doba obsluhy) | * Y - zákon rozloženia dĺžky obsluhy (M - exponenciálne rozloženie obsluhy, D - konštantná doba obsluhy) | ||
* c - počet dostupných obslužných liniek | * c - počet dostupných obslužných liniek | ||
* typy obslužných liniek | * typy obslužných liniek | ||
- | * kapacita = 1, zariadenie (Facility) | + | * kapacita = 1, **zariadenie** (Facility) |
- | * kapacita = 2, sklad (Store) | + | * kapacita = 2, **sklad** (Store) |
+ | |||
+ | ==== SIMLIB ==== | ||
+ | * **Process** - báza pre modelovanie procesov | ||
+ | * **Event** - báza pre modely udalostí | ||
+ | * **Facility** - obslužná linka - výlučný prístup | ||
+ | * **Store** - obslužná linka s kapacitou | ||
+ | * **Queue** - fronta | ||
+ | * **Statistiky** - triedy na uchovanie štatistík | ||
+ | * **kalendár udalostí** - usporiadaná dátová štruktúra uchovávajúca aktivačné záznamy udalostí [(acttime, priority, event), ...] | ||
+ | |||
+ | ===== Spojitá simulácia ===== | ||
+ | * aplikácie - elektrické obvody, riadenie (automatizácia), fyzika, chémia, astronómia, biológia, ekológia... | ||
+ | * popis spojitých systémov | ||
+ | * sústavy obyč. **diferenciálnych rovníc** - hovoria aká bude zmena hodnoty v čase (konkrétnu hodnotu určujú počiatočné podmienky) | ||
+ | * sústavy **algebraických rovníc** - napr. na popísanie funkcie sčítačky | ||
+ | * **blokové schémy** | ||
+ | * **elektrické schémy** - prvky nemajú vstup a výstup - obe strany môžu byť vstup aj výstup | ||
+ | * **grafy signálnych tokov** | ||
+ | * **kompartmentové systémy** | ||
+ | * **systémová dynamika** | ||
+ | * **Bond-graphs** | ||
+ | |||
+ | * prevod rovníc vyššieho rádu -rovnice vyššieho rádu musíme previesť na sústavu rovníc prvého rádu, pre ktoré máme vhodné numerické metódy | ||
+ | * **znižovanie rádu derivácie** | ||
+ | * **postupná integrácia** | ||
+ | * **iné špeciálne metódy** | ||
+ | |||
+ | ==== metóda znižovania rádu derivácie ==== | ||
+ | * osamostatniť najvyšší rád derivácie | ||
+ | * sekvencie integrátorov | ||
+ | * bloková schéma | ||
+ | * pozor na počiatočné podmienky | ||
+ | {{:temata:25-principy_modelovani_a_simulace_systemu:13_metoda_znizovania_radu_01.png|}} | ||
+ | {{:temata:25-principy_modelovani_a_simulace_systemu:14_metoda_znizovania_radu_02.png|}} | ||
+ | |||
+ | ==== metóda postupnej integrácie ==== | ||
+ | * vhodná pre rovnice s deriváciami vstupov na pravej strane | ||
+ | * osamostatniť najvyšší rád derivácie | ||
+ | * postupná integrácia rovnice a zavádzanie nových stavových premenných | ||
+ | * výpočet nových počiatočných podmienok | ||
+ | {{:temata:25-principy_modelovani_a_simulace_systemu:15_metoda_postupnej_integracie_01.png|}} | ||
+ | {{:temata:25-principy_modelovani_a_simulace_systemu:16_metoda_postupnej_integracie_02.png|}} | ||
+ | |||
+ | ==== numerické metódy ==== | ||
+ | * jednokrokové - vychádzajú z aktuálneho stavu | ||
+ | * Eulerova metóda - viď matematika (odkaz pridám) | ||
+ | * vícekrokové - používajú históriu stavov | ||
+ | * Metódy Runge-Kutta | ||
+ | * Adams-Bashforth | ||
+ | * Adams-Bashforth-Moulton | ||
+ | ===== Kombinovaná simulácia ===== | ||
+ | * problém kombinácie udalostí a numerickej integrácie | ||
+ | * **stavové podmienky** | ||
+ | * v istom stave treba skokovú udalosť (napr. relé sa prepne) | ||
+ | * problém nedetekovania stavovej udalosti spôsobený | ||
+ | * **nepresnosťou výpočtu** | ||
+ | * **príliš dlhým krokom** | ||
+ | |||
+ | {{:temata:25-principy_modelovani_a_simulace_systemu:17_detekcia_stavovych_podmienok.png|}} | ||
+ | |||
+ | * príklad - detekcia dopadu loptičky na zem - hľadáme riešenie rovnice f(t) = 0 | ||
+ | * metódy - rozpolenie intervalu, Regula falsi, Newtonova ... | ||
+ | |||
+ | ===== Zdroje ===== | ||
+ | |||
+ | [[https://www.fit.vutbr.cz/study/courses/IMS/private/SkriptaMS.pdf|Skripta IMS]] + [[https://www.fit.vutbr.cz/study/courses/IMS/public/prednasky/IMS.pdf|slajdy]] + [[https://www.fit.vutbr.cz/study/courses/IMS/public/priklady/|Příklady]] | ||
+ | ===== Potvrzení ===== | ||
+ | |||
+ | <doodle single login|25> | ||
+ | ^ OK ^ !!! ^ | ||
+ | </doodle> | ||
- | ===== SIMLIB ===== | + | {{tag>jasho IMS simulace modelovani}} |
- | * Process - báza pre modelovanie procesov | + | |
- | * Event - báza pre modely udalostí | + | |
- | * Facility - obslužná linka - výlučný prístup | + | |
- | * Store - obslužná linka s kapacitou | + | |
- | * Queue - fronta | + | |
- | * Statistiky - triedy na uchovanie štatistík | + | |
- | * kalendár udalostí - usporiadaná dátová štruktúra uchovávajúca aktivačné záznamy udalostí [(acttime, priority, event), ...] | + | |
+ | ~~DISCUSSION~~ |