Modelování fyzikálního okoĺı Stefan Ratschan Katedra číslicového návrhu Fakulta informačních technologíı České vysoké učení technické v Praze 25. října 2011 Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti 1 / 16
Modelování jevů z reálného světa Až dosud množina stavů byla konečná (např., S = B n, F), anebo, aspoň spočetná (např., S = N, list(n), array(z)). Ale, to nestačí pro modelování většiny jevů z reálného světa: čas rychlost zrychlení tlak teplota Časové automaty nám dovolují modelovat čas: hodiny které znova spouštět (reset do hodnoty 0), a které běží úplnou stejnou rychlostí. Ale co děláme s rychlostí, tlakem, teplotou atd.? 2 / 16
Modelování jevů z reálného světa Můžeme je modelovat reálnými proměnnými, ale potřebujeme flexibilnější způsob specifikování jejich vývoje v čase (t.j., jejich dynamika). Vektorové pole: Intuice: Přiřazuje možným hodnotám reálných čísel směr kterým se budou vyvíjet Formálně: Pro S R n, f : S R n 3 / 16
Diferenciální rovnice Vektorové pole f : S R n Hledáme funkci která sleduje vektorovo pole Z toho: obyčejná diferenciální rovnice: ẋ = f (x) x: funkce [0, ] R n Řešení: x : [0, ] R n, tak, že pro každý t [0, ], ẋ(t) = f (x(t)) Takovo řešení se obykle i nazývá trajektoríı diferenciální rovnice. Viz. cesta přechodového systému. Demo. Časové znázornění vs. znázornění v stavovém prostoru Obykle, podobně jako u přechodoých systémů, stanujeme počáteční podmínky 4 / 16
Delay differential equations electronics sensor plant actuator Teorie řízení: regulátor nastavuje aktuátory podle vektorové pole Problém: regulátor implementováno na čipu nereaguje hned Modelování této prodlevy: t. ẋ(t) = f (x(t d)) Používá se i v biologii: inkubační doba, délka březosti 5 / 16
Diferenciální algebraické rovnice Občas známe nejen vektorové pole určující evoluci reálných proměnných, ale dodatečné podmínky: Příklad: Kyvadlo, x 2 + y 2 = l, přičemž l je délka kyvadla Robotika: Podmínky danou geometrie robotu Scilab demo ẋ = f (x, y), 0 = g(x, y), přičemž x : R 0 R n, y : R 0 R m, f : R n+m R n, g : R n+m R m. 6 / 16
Parciální diferenciální rovnice Občas mám fyzikální jevy které nemají jen jednu reálnou hodnotu, ale v prostoru distribuované hodnoty. Příklad: síla působující na každý bod křídla letadla Tudíž: nemáme jen jednotlivé reálné hodnoty vyvíjející se v čase, ale reálnou funkci vyvíjející se v čase Demo: movies Tady musíme předat žezlo matematikům Heslo: FEM (finite element method), metoda konečných prvků 7 / 16
Nedetermismus Z dávných časů: Obvykle máme obrovský nedeterminismus pocházející z Okoĺı systému (např. uživatel, počasí) Neznámé detaily Detaily které jsme nemodelovali Jak to vypadá u diferenciálních rovnicí? Nepřiřazujeme jednoznačný směr vývoje (f : S R n ), ale množinu možností F : S 2 Rn, anebo relaci r : S R n. Výsledek: diferenciální inkluze u(t) F (u(t)), anebo diferenciální relace r(u(t), u(t)) (např. diferenciální nerovnice) 8 / 16
Modelování systémů Systémy o které máme zájem v této přednášce nejsou ani čistě elektronické ani čistě fyzikální. Ale: Cyber-physical systems: software/digitální elektronika vestavěná ve fyzikálním okoĺı. Musíme modelovat oba dva jevy dohromady! Hybridní systém: Výsledek svatby mezi konečným přechodovém systémem a obyčejnými diferenciálními rovnicemi. 9 / 16
Hybridní systém Příklad: Thermostat off x 18 on 0 x 30 x ẋ = x ẋ = x + 40 x 22 t Množina stavů: S M R n, přičemž M diskrétní, obvykle konečná množina (množina modů). Množina počátečních stavů: I S. Diskrétní přechodová relace: J S S (množina skoků) Spojitá přechodová relace: F S R n (toková množina) 10 / 16
Cesta/Trajektorie hybridního systému Svatba mezi diskrétní cestou a spojitou trajektoríı Posloupnost párů (m 0, r 0 ),..., (m p, r p ) tak, že pro každé i {0,... p}, m i je modus r i : [0, ] R n je diferenciální funkce délky l i tak, že : (m 0, r 0 (0)) I pokud i > 0 pak (m i 1, r i 1 (l i 1 ), m i, r i (0)) J, i pokud l i > 0 pak, pro každé t [0, l i ], (m i, r i (t), ṙ i (t)) F, 11 / 16
Modeling Languages V průmyslu: různé jazyky pro modelování systémů Hybridní system + pomůcky pro modelování Grafické jazyky: Matlab/Simulink, Scilab/Xcos,... Textové jazyky: Modelica,... model Capacitor parameter Capacitance C; Voltage u "Voltage drop between pin_p and pin_n"; Pin pin_p, pin_n; equation 0 = pin_p.i + pin_n.i; u = pin_p.v - pin_n.v; C * der(u) = pin_p.i; end Capacitor Různé knihovny pro určité aplikace: hydraulika, vodní elektrárny, různé automobilové aplikace,... 12 / 16
Diskretní versus spojité modelování Cyber: vždy diskrétní model? Physical: vždy spojitý model? Občas, fyzikální systém sám má částečně diskrétní povahu. Na příklad: fyzikální kontakt: míč diskrétní zařízení v systému: vypínač, řadicí páka diskrétní modelování: linearizace Občas se spojitost vyskytuje už v software: požadavky na reálný čas: protokoly (po 10 sekundách, udělej...) výpočet spojitých výstupů: hudba, simulace spojitých jevů spojitá abstrakce výpočetních systémů: data streams A samozřejmě existuje ještě analogový obvody 13 / 16
Hierarchie abstrakcí Obecně: Druh modelu (spojitý, diskrétní, probabilistický) není inherentní vlastnost reality kterou modelujeme, ale je závislý na aplikaci a úrovni modelování: Elektronika: Programové jazyky, automatové modely Strojové instrukce Hardware desription languages Boolovská logika Tranzistory Elektromagnetické pole (Maxwellovy rovnice,... ) Částice (např. atomy) Kvantová mechanika Fyzikální systémy: Databáze součástí Newtonovy pohybové zákony, zákony proudění atd. Statistická termodynamika Částice (např. atomy) 14 / 16
Simulace obyčejných diferenciálních rovnic Na rozdíl od diskrétních systémů, obecně se musí aproximovat. Nejjednoduchá metoda: Eulerova metoda: Místo ẋ(t) = f (x(t)): x(t + h) = hf (x(t)) Dva druhy chyb: Diskretizace Zaokrouhlení Jsou libovolně složité algoritmy pro výpočet dobrých aproximací. 15 / 16
Analýza hybridních systémů Simulace: Libovolně malá aproximativní chyba může způsobit libovolně odlišnou simulaci. Diskretizace může přeskočit podmínky skoků Verifikace: příští přednáška 16 / 16