====== Modelování spojitých systémů ====== (bloková schémata, rovnice, numerické metody a jejich vlastnosti) ---- Části převzaté z [[isz:principy_modelovani_a_simulace_systemu]]. Spojité systémy mají chování specifikované pro každý okamžik v čase. Chování je tedy funkcí závislou na čase, může jít např. o diferenciální rovnice. Simulace na číslicových systémech je diskrétní, postupuje se v čase po nějakých malých časových krocích. Délka kroku může být proměnlivá v závislosti na velikosti (odhadu) chyby způsobené diskretizací. ===== Řízení simulace ===== Řízení simulace je jednoduché: - inicializace počátečních podmínek - posun v čase o krok dopředu - vypočítání nových stavů všech proměnných v systému - goto 2 Většinou je simulace prováděna po určitý koncový čas. Aby simulace doběhla přesně do tohoto času, je nutné při posledním kroku dokročit. Poslední krok simulace je prodloužen tak, aby končil až v koncovem čase. ===== Bloková schémata ===== Soustava rovnic může být spojitým modelem, pokud některé z proměnných či koeficientů jsou závislé na čase. Soustavu rovnic lze reprezentovat pomocí blokového schématu, sestaveného následovně: * vstupní a výstupní proměnné jsou vstupem a výstupem blokového schématu * pokud je nějaká proměnná potřebná na vstupu více bloků, je její spoj větvený a přivedený do těchto bloků * bloky mohou být integrátory, sčítačky, násobičky různými koeficienty * koeficienty mohou být: * nezávislé na čase (stacionární systémy) * časově proměnné * konstantní (lineární systémy) * nelineární funkce (nelineární systémy) * zpětná vazba: pokud nějaký prvek potřebuje jako vstup hodnotu, která je závislá na jeho výstupu (typicky u integrátorů) Mějme rovnici y prime prime - 2y prime + y = x. Metodou snižování řádů derivaci získáme následující rovnice: *y prime prime = 2y prime - y + x *y prime = int{}{}{y prime prime} *y = int{}{}{y prime} Blokové schéma pak bude vypadat následovně: {{http://www.stud.fit.vutbr.cz/~xurban06/schema.png?800}} ===== Numerické metody ===== Numerické metody poskytují diskrétní řešení diferenciálních rovnic. Obvykle je implementovaný prvek označovaný jako **integrátor**, který řeší obyčejnou diferenciální rovnici prvního řádu, která má obvykle tvar (obecně může být neznámá i jiná než t, ale při simulacích jde logicky o čas): y prime = f(t, y) Význam této rovnice je takový, že změna hodnoty proměnné je závislá na čase a aktuálním stavu. Po integrátoru se v každém čase simulace požaduje zjistit další hodnotu proměnné. K tomu integrátor využívá nějakou numerickou metodu. ==== Typy metod ==== * jednokrokové vs. vícekrokové (ty při výpočtu uvažují několik předchozích stavů) * implicitní vs. explicitní (FIXME implicitní vyžadují k výpočtu aktuálního stavu i aktuální stav - nevím, co to znamená při výpočtu) === Eulerova metoda === Jednokroková. Pouze první člen Taylerova rozvoje: y_{t+h} = y_t + hf(t, y_t), kde t je aktuální čas a h je velikost kroku. === Runge-Kutta === Třída jednokrokových metod, které se liší "řádem", tedy počtem mezikroků. Všechny se vyznačují tím, že počítají několik bodů uvnitř následujícího kroku a výsledek je vážený průměr těchto bodů. ==== Stabilita ==== * Nestabilní metoda: při určité velikosti kroku se výsledky neustále vzdalují od přesného řešení. * Každá metoda má jinak definovanou oblast stability, což je plocha v komplexní rovině, na které leží vlastní čísla matice soustay dif. rovnic. FIXME eh? * Některé metody jsou kvůli nevhodné oblasti nepoužitelné pro tuhé systémy, protože by bylo potřeba použít příliš krátky integrační krok (=> neefektivní). Pro použití u tuhých systému jsou vhodné metody, které jsou stabilní pro celou komplexní polorovinu "nalevo" od počátku. ==== Parciální diferenciální rovnice ==== Rovnice obsahující derivace podle více proměnných. Řád určuje nejvyšší derivace. Vstupy do simulace jsou: * Počáteční podmínky, tedy hodnoty proměnných v čase 0. * Okrajové podmínky, tedy omezující podmínky pro některé proměnné, které omezují řešení rovnic na určitou "oblast" (interval hodnot pro tuto proměnnou). Příkladem je např. model kmitající struny, která má danou délku a na krajích je upevněna. Okrajové podmínky pro výchylku i derivaci výchylky jsou nastaveny pevně na 0. === Metody řešení parciálních diferenciálních rovnic === * metoda konečných diferencí * metoda přímek * metoda konečných prvků * metoda konečných objemů * metoda Monte-Carlo == Metoda konečných diferencí == * diference = lineární kombinace funkčních hodnot v okolních bodech * oblast vyhraněná okrajovými podmínkami je pokryta sítí uzlových bodů * v těchto bodech jsou derivace nahrazeny diferencemi * řešení soustavy rovnic * analogie ke konečnému automatu == Metoda přímek == * stejné jako metoda konečných diferencí, ale je derivace jedné proměnné je ponechána (zbylé proměnné jsou nahrazeny diferencemi) * soustava obyč. diferenciálních rovnic, řešení numerickými metodami viz výše * DSCT - discrete space continuous time - diference v prostoru, derivace zůstává u časové proměnné * taky analogie ke konečnému automatu