Příloha 1 Publikace podporované projektem MŠMT 2C06031 za rok
Transkript
Příloha 1 Publikace podporované projektem MŠMT 2C06031 za rok 2008 Seznam publikací podporovaných projektem MŠMT 2C06031 za rok 2008 České/Slovenské 1. Jiří Kofránek: Tvorba výukových simulátorů. Co je za oponou. In: Mefanet report 01. (Editoři: Ladislav Dušek, Vladimír Mihál, Stanislav Štípek, Jarmila Potomková, Daniel Schwarz, Lenka Šnaidrová). Institut biostatistiky a analýz, Masarykova Univerzita. str. 60-72, leden 2008, ISBN 978-80-210-4539-2, [Online] :http://portal.med.muni.cz/download.php?fid=506 2. Jiří Kofránek, Jan Rusz, Stanislav Matoušek: Vzkříšení guytonova diagramu - od obrázku k simulačnímu modelu. In MEDSOFT 2008. (Editor: Milena Ziethamlová) Praha: Agentura Action M, Praha 2008, s. 37-56. ISBN 978-80-86742-22-9 [Online] http://patfbiokyb.lf1.cuni.cz/wiki/_media/vzkriseni_guytonova_diagramu.pdf? id=nase_publikace&cache=cache 3. Jiří Kofránek, Pavol Privitzer, Petr Stodulka: Technologie a trendy tvorby výukových simulátorů. In MEDSOFT 2008. (Editor: Milena Ziethamlová) Praha: Agentura Action M, Praha 2008, str. 37-56. ISBN 978-80-86742-22-9. [Online] http://patf-biokyb.lf1.cuni.cz/wiki/_media/ technologie_a_trendy_tvorby_vyukovych_simulatoru_-prehledova_prednaskakofranek.pdf?id=nase_publikace&cache=cache 4. Petr Stodulka, Pavol Privitzer, Jiří Kofránek: Jednoduchá simulační hra krok za krokem aneb Od představy k hotovému. In MEDSOFT 2008. (Editor: Milena Ziethamlová) Praha: Agentura Action M, Praha 2008, s. 149-156. ISBN 978-8086742-22-9 [Online] http://patf-biokyb.lf1.cuni.cz/wiki/_media/ jednoducha_simulacni_hra_krok_za_krokem.pdf?id=nase_publikace&cache=cache 5. Marek Mateják, Jiří Kofránek: Modelica vs. blokovo-orientované jazyky matematického modelovania. In OBJEKTY 2008 (Žilina SR): Žilinská Univerzita, 20.-21.11.2008, (editor Jan Janech), vydavatel: Edis, Žilina, str. 79-94. ISBN 978-808070-923-3. [Online] http://patfbiokyb.lf1.cuni.cz/wiki/_media/modelica_vs.pdf?id=nase_publikace &cache=cache Anglické 6. Jiří Kofránek, Jan Rusz, Marek Mateják: From Guyton's graphic diagram to multimedia simulators for teaching physiology. (Resurection of Guyton's Chart for educational purpose) Proceedings of the Jackson Cardiovascular-Renal Meeting 2008. (Stephanie Lucas Ed), CD ROM [Online] http://patf-biokyb.lf1.cuni.cz/wiki/_media/ resurection_of_guyton_s_chart_for_eduacational_purpose.pdf?id=nase_publikace &cache=cache 7. Jan Rusz, Jiří Kofránek: Tools development for physiological educational simulators. In Digital Technologies 2008 (Editor: Daša Ticha) [CD-ROM]. Žilina: University of Žilina, Fakulty of electrical engineering, 2008, vol. 1, ISBN 978-80-8070-953-2, 4 strany (CD ROM) [Online] http://patf-biokyb.lf1.cuni.cz/wiki/_media/rusz_kofranek_dt2008.pdf? id=nase_publikace&cache=cache 8. Jiří Kofránek, Marek Mateják, Pavol Privitzer: Causal or acausal modeling: labour for humans or labour for machines. In Technical Conmputing Prague 2008, 16th Annual Conference Proceedings. (Editoři: Cleve Moler, Aleš Procházka, Robert Bartko, Martin Folin, Jan Houška, Petr Byron). Humusoft s.r.o., Prague, 2008, ISBN 978-807080-692-0. CD ROM, str. 1-16, [Online] http://www2.humusoft.cz/kofranek/058_Kofranek.pdf 9. Jiří Kofránek, Marek Mateják, Stanislav Matoušek, Pavol Privitzer, Martin Tribula, Ondrřej Vacek: School as a (multimedia simulation) play: use of multimedia applications in teaching of pathological physiology. In MEFANET 2008. (Editoři: Daniel Schwarz, Ladislav Dušek, Stanislav Štípek, Vladimír Mihál), Masarykova Univerzita, Brno, 2008, ISBN 978-80-7392-065-4, CD ROM, str. 1-26, [Online] http://www.mefanet.cz/res/file/articles/prispevek-mefanet-anglicky-kofranek.pdf Internetové výukové multimediální programy a simulace vytvořené ve spolupráci s 1. LF UK Praha 10. Jiří Kofránek, Pavol Privitzer, Martin Tribula: Modelování a simulace. Multimediální výukový program. [Online] http://www.physiome.cz/atlas/info/00/index.htm 11. Jiří Kofránek, Pavol Privitzer, Martin Tribula: Modelling and simulation. Multimediální výukový program. [Online] http://www.physiome.cz/atlas/info/00EN/index.htm 12. Jiří Kofránek, Pavol Privitzer, Martin Tribula: Co je za oponou – ze zákulisí tvorby Atlasu. Multimediální výukový program. [Online] http://www.physiome.cz/atlas/info/01/index.htm 13. Jiří Kofránek, Pavol Privitzer, Martin Tribula: What is behind the courtain. Multimediální výukový program. [Online] http://www.physiome.cz/atlas/info/01EN/index.htm 14. Jiří Kofránek, Pavol Privitzer, Martin Tribula: Mitochondriální energetické nanogenerátory. Multimediální výukový program. [Online] http://physiome.cz/atlas/krevniplyny/01/ 15. Jiří Kofránek, Pavol Privitzer, Martin Tribula: Transfer of blood gases: mitochondrial energetic nanogenerators. Multimediální výukový program. [Online] http://www.physiome.cz/atlas/krevniplyny/01EN/index.htm 16. Martin Vokurka, Stanislav Matoušek, Pavol Privitzer, Martin Tribula: Metabolismus železa Multimediální výukový program [Online] http://www.physiome.cz/atlas/vnitrniProstredi/04/ 17. Jiří Kofránek, Ondřej Vacek, Michal Andrlík, Pavol Privitzer: Komplexní model přenosu krevních plynů. (Bloody Mary, verze 2.0.). Multimedediální výukový simulator. [Online] http://physiome.cz/atlas/sim/BloodyMary_cs/. 18. Jiří Kofránek, Ondřej Vacek, Michal Andrlík, Pavol Privitzer: The complex bloodgases transport model. (Bloody Mary, version 2.0.). Multimedia educational simulator. [Online] http://physiome.cz/atlas/sim/BloodyMary/ MEFANET report 2008 Jiří Kofránek: Tvorba výukových simulátorů. Co je za oponou. In: Mefanet report 01. (Editoři: Ladislav Dušek, Vladimír Mihál, Stanislav Štípek, Jarmila Potomková, Daniel Schwarz, Lenka Šnaidrová). Institut biostatistiky a analýz, Masarykova Univerzita. str. 60-72, leden 2008, ISBN 978-80-210-4539-2, [Online] : http://portal.med.muni.cz/download.php?fid=506 MEFANET report 01 TVORBA VÝUKOVÝCH SIMULÁTORŮ. CO JE ZA OPONOU DEVELOPMENT OF EDUCATIONAL SIMULATORS. WHAT IS BEHIND THE CURTAIN? J. Kofránek Laboratoř biokybernetiky, Ústav patologické fyziologie 1. LF UK, Praha Abstrakt Autor popisuje metodologii určenou pro vytváření e-learningového obsahu s využitím simulačních her. Je popsán celý návrhový proces, od sestavení formalizovaného popisu fyziologické reality, až vytváření interaktivního výukového softwaru. Při tom se využívají nejrůznější nástroje – od softwarových nástrojů pro numerickou simulaci jako Matlab/Simulink nebo Modelica, přes Adobe Flash pro tvorbu interaktivních animací, Control Web a Microsoft Visual Studio .NET pro vytváření uživatelského rozhraní, až po nástroje pro publikování na webu včetně Adobe Breeze. Tvorba moderních výukových aplikací je náročný a komplikovaný projekt, vyžadující týmovou spolupráci řady profesí – pedagogů, lékařů, tvůrců simulačních modelů, výtvarníků a programátorů. Cílem je poskytnout studentům výukový software, který jim pomůže pochopit složitou dynamiku fyziologických systémů. Klíčová slova e-learning, fyziologie, počítačem podporovaná výuka, simulační modely, simulační hry Abstract The authors present a methodology of creating e-learning content with simulation games for the students of physiology and pathophysiology courses. The design process is explained starting from a formalized description of the physiological reality up to interactive educational software. Various software tools are used during the design, i.e. numerical simulation software Matlab/Simulink or Modelica, Adobe Flash for interactive animations, Control Web or Microsoft Visual Studio.NET for user interface design, and web publishing tools including the Adobe Breeze learning management system. Various professions are involved in complicated projects of modern educational applications – teachers, physicians, simulation/modeling experts, graphic designers and programmers. The aim is to provide students with software that helps them understand complex dynamics of physiological systems. Keywords computer aided learning, e-learning, medicine, physiology, simulation games, simulation models Mí s t o ú v o du – p a v u č i n a f y z i o l o g i c k ýc h regulací Před šestatřiceti lety vyšel v časopise časopise Annual of Biomedical Physiology článek [8], který se svou podobou na již první pohled naprosto vymykal navyklé podobě fyziologických článků té doby. Byl uveden rozsáhlým schématem na vlepené příloze. Schéma plné čar a propojených prvků na první pohled vzdáleně připomínalo nákres nějakého elektrotechnického zařízení (obr. 1). Místo elektronek či jiných elektrotechnických součástek však zde byly zobrazeny propojené výpočetní bloky (násobičky, děličky, sumátory, integrátory, funkční bloky), které symbolizovaly matematické operace prováděné s fyziologickými veličinami (obr. 2). Svazky propojovacích vodičů mezi bloky na první pohled vyjadřovaly složité zpětnovazebné propojení fyziologických veličin. Bloky byly seskupeny do osmnácti skupin, které představovaly jednotlivé propojené fyziologické subsystémy. Centrálním byl subsystém reprezentující cirkulační dynamiku – s ním byly do jednoho celku zpětnovazebně provázány ostatní bloky: od ledvin, přes tkáňové tekutiny, elektrolyty, až po autonomní nervovou regulaci a hormonální řízení zahrnující ADH, angiotenzin a aldosteron (obr. 3). Vlastní článek tímto tehdy naprosto novým způsobem pomocí matematického modelu popisoval fyziologické regulace cirkulačního systému a jeho širší fyziologické souvislosti a návazností na ostatní subsystémy organismu – ledviny, regulaci objemové a elektrolytové 64 rovnováhy aj. Místo vypisování soustavy matematických rovnic se v článku využívalo grafické znázornění matematických vztahů. Tato syntaxe umožnila graficky zobrazit souvislosti mezi jednotlivými fyziologickými veličinami ve formě propojených bloků reprezentujících matematické operace. Vlastní popis modelu byl pouze ve formě základního (ale přesto plně ilustrativního) obrázku. Komentáře a zdůvodnění formulací matematických vztahů byly velmi stručné: např. „bloky 266 až 270 počítají vliv buněčného PO2, autonomní stimulace a bazální rychlosti spotřeby kyslíku tkáněmi na skutečnou rychlost spotřeby kyslíku v tkáních“. Od čtenáře to vyžadovalo nadmíru velké soustředění (i jisté fyziologické a matematické znalosti) pro pochopení smyslu formalizovaných vztahů mezi fyziologickými veličinami. O rok později, v roce 1973, vyšla monografie [9], kde byla řada použitých přístupů vysvětlena poněkud podrobněji. Guytonův model byl prvním rozsáhlým matematickým popisem fyziologických funkcí propojených subsystémů organismu a odstartoval oblast fyziologického výzkumu, která je dnes někdy popisována jako integrativní fyziologie. Z tohoto hlediska byl určitým mezníkem, který se snažil systémovým pohledem na fyziologické regulace zachytit dynamiku vztahů mezi regulací oběhu, ledvin, dýchání, objemu a iontového složení tělních tekutin pomocí matematického modelu. 14 MEFANET report 01 Model neměl jen čistě teoretický význam – Guyton si záhy uvědomil i velký význam využití modelů jako svébytné výukové pomůcky. Guyton a jeho žáci model nepřetržitě dále rozvíjeli. V roce 1982 Guytonův žák a spolupracovník Thomas Coleman vytvořil model "Human", určený především k výukovým účelům. Model umožnil simulovat řadu patologických stavů (kardiální a renální selhání, hemorhagický šok aj.) i vliv některých therapeutických zásahů (transfúzi krve, umělou plicní ventilaci, dialýzu atd.) [5]. Moderní interaktivní webovou implementaci tohoto modelu v jazyce Java je možné najít na adrese http://venus.skidmore.edu/human. Posledním výsledkem Guytonových žáků a následovníků je simulátor Quantitative Human Physiology [1]. Model je možné stáhnout z http://physiology.umc.edu/ themodelingworkshop/. Ško l a (s i m u l a č n í ) h r o u Rozvoj osobních počítačů a internetu vnesl zcela nové možnosti pro praktické uplatnění simulačních modelů. Simulační model nemusí být jen nástrojem pro vědecký výzkum, může být i velmi užitečnou výukovou pomůckou. Výukové programy se simulačními komponentami nejsou jen multimediální náhradou klasických učebnic. Jsou zcela novou výukovou pomůckou, kde nachází své moderní uplatnění staré krédo Jana Ámose Komenského "Schola Ludus" (škola hrou), které tento evropský pedagog razil již v 17. století. Spojení multimediálního prostředí se simulačními modely studentům umožňuje pomocí experimentů se simulačním modelem názorně prozkoumat vykládaný problém ve virtuální realitě a přináší tak zcela nové možnosti pro vysvětlování složitých problémů (obr. 4). Simulační hrou je možné bez rizika otestovat chování simulovaného objektu – např. zkusit přistávat virtuálním letadlem nebo, v případě lékařských simulátorů, léčit virtuálního pacienta, či otestovat chování jednotlivých fyziologických subsystémů. Simulační hry umožňují názorně vysvětlit komplexní vztahy ve fyziologických regulačních systémech a kauzální řetězce v patogenezi nejrůznějších onemocnění. Z pedagogického hlediska je důležité, že modelovaný objekt můžeme rozdělit na jednotlivé subsystémy a testovat jejich chování odděleně i jako součást vyššího celku. Tak např. při studiu složitých fyziologických regulací můžeme dočasně odpojit vybrané regulační smyčky a umožnit studentům sledovat reakce těchto subsystémů na změny vstupních veličin (které jsou v reálném organismu ovšem samy regulovány). Tím dovolíme sledovat dynamiku chování jednotlivých subsystémů při postupných změnách pouze jediného vstupu, zatímco jiné vstupy jsou nastaveny na zvolenou konstantní hodnotu (tzv. princip "ceteris paribus"). Postupně pak můžeme jednotlivé dočasně rozpojené regulační vazby opět zapojovat a studovat jejich vliv na chování organismu při nejrůznějších patologických poruchách a reakcích na příslušnou terapii. Podle našich zkušeností právě tento přístup vede k lepšímu pochopení složitých dynamických jevů v patogenezi nejrůznějších onemocnění a porozumění patofyziologických principů příslušných léčebných zásahů. Tak například v našem simulátoru Golem [14] můžeme postupně odpojovat a zapojovat jednotlivé regulační smyčky ovlivňující homeostázu vnitřního prostředí a tím postupně testovat význam jednotlivých regulačních okruhů a ozřejmit si tím například souvislosti poruch iontové a acidobazické rovnováhy (viz obr. 5). Vývoj efektivních výukových programů, kombinujících multimédia se simulačními hrami, je náročnou a komplikovanou prací, vyžadující týmovou spolupráci řady profesí – zkušených pedagogů vytvářejících základní scénář, tvůrců simulačních modelů, lékařů, výtvarníků a programátorů. Tuto interdisciplinární kolektivní tvorbu zefektivňuje využívání vhodných vývojových nástrojů, které umožňují komponentovou tvorbu, propojení simulačních programů a interaktivních multimédií podle daného scénáře do kompaktního celku. Jedním z projektů, kde chceme využít nové možnosti multimédií a simulačních modelů pro výuku je počítačový Atlas fyziologie a patofyziologie [18], koncipovaný jako multimediální výuková pomůcka, která názornou cestou prostřednictvím Internetu s využitím simulačních modelů by měla pomoci vysvětlit funkci jednotlivých fyziologických systémů, příčiny a projevy jejich poruch – viz http://physiome.cz/atlas. Atlas je vytvářen jako společné dílo tvůrčího týmu odborníků různých profesí – lékařů, programátorů, systémových inženýrů a výtvarníků. Projekt atlasu je otevřený – jeho výsledky v českém jazyce chceme na internetu volně zpřístupnit všem zájemcům, a při jeho vývoji uvítáme spolupráci se všemi, kdo se budou chtít podílet na jeho postupném budování. Ukažme si nyní, co vytváření takové interaktivní výukové pomůcky vyžaduje, neboli – "co je za oponou" tvorby výukových simulátorů. S c é n á r i s t é v ý u ko v ýc h p r o g r a m ů Obdobně jako sebelepší učebnice zcela nenahradí učitele, tak ho nevytlačí ani seberafinovanější výukový program. A stejně tak jako klíčovým faktorem pro úspěch vysokoškolských učebnic je schopnost jejich autorů názorně a věcně správně vyložit složitou látku, tak pro zdar výukového programu je nejdůležitější jeho kvalitní scénář. Napsat dobrý učební text vysvětlující složité procesy však není jednoduché a veškeré pomůcky (multimédia, interaktivní animace, simulační modely apod.) – tedy vše co si lze představit pod donekonečna omílaným slovem e learning, jsou bez dobrého scénáře vlastního výukového programu či bez zkušeného učitele, který ví jak složitý simulační model pedagogicky využít, jen pouhou módní ozdobou. V případě využití multimediálních animací je podkladem pro tvorbu scénáře nejen (hyper)textová část, ale, obdobně jako při produkci kresleného filmu, i jakýsi "storyboard" naznačující výtvarníkům jaké mají vytvářet animované obrázky. Složitější to je ovšem při využití simulačních modelů. Tam nestačí jen namalovat návrhy obrázků. Je zapotřebí nejprve vytvořit vlastní simulační model. Obdobně, jako je teoretickým podkladem letového simulátoru více méně realistický matematický model letadla, je v pozadí lékařského simulátoru matematický model lidského organismu (resp. nějakého jeho subsystému). Fo r m a l i z a c e f y z i o l o g i c k ýc h v z t a h ů Při studiu dynamiky regulačních vztahů a pochopení vzájemných dynamických souvislostí fyziologických regulačních vztahů často jen slovní popis a "selský 65 MEFANET report 01 rozum" nestačí. Pro kvantifikované vyjádření dynamických vztahů je zapotřebí tyto vztahy formalizovat, tj. vyjádřit je pomocí rovnic matematického modelu. Formalizace, tj. převedení čistě verbálního popisu příslušné sítě vztahů na popis ve formalizovaném jazyce matematiky, umožňuje zkoumat chování formálně popsaného systému pomocí formálních pravidel – např. řešením rovnic matematického modelu. Obdobně jako fyzika popisuje přírodní zákonitosti pomocí matematických vzorců a soustav rovnic (a popis chování fyzikálního světa je výsledkem řešení těchto rovnic), tak i systémový fyziolog se snaží vyjádřit fyziologické regulace pomocí matematických vztahů jako matematický model fyziologické reality. To obvykle vede na popis prostřednictvím soustavy diferenciálních rovnic (jejichž "ruční" řešení bývá obtížné a často až prakticky nemožné). Pokud ale tyto rovnice převedeme do formy programu pro počítač, můžeme pak přenechat "dřinu strojům" – a na počítači sledovat průběhy hodnot jednotlivých proměnných, které zobrazují chování modelovaného systému jako výsledek řešení rovnic matematického modelu. Na počítači můžeme provádět s modelem nejrůznější experimenty. Průběhy hodnot těchto proměnných v čase nahrazují – tj. simulují chování skutečného fyziologického organismu. V tom je právě podstata využití tzv. simulačních modelů (tj. matematických modelů, implementovaných na počítači). Simulační model, pochopitelně, nenahradí biologický experiment (jak tvrdí někteří fanatičtí bojovníci proti pokusům na zvířatech). Simulační model je ale velice efektivním nástrojem na dedukci a ověřování hypotéz – umožňuje sledovat chování složitého dynamického systému v čase v závislosti na nejrůznějších vstupech a porovnávat průběhy hodnot jednotlivých proměnných modelu s hodnotami získanými pozorováním a měřením biologického originálu. Kritériem pro odmítnutí nebo neodmítnutí hypotézy je vždy porovnání chování modelu s empiricky a experimentálně získaným chováním biologického originálu. Pokud dosáhneme (na zvolené úrovni přesnosti) dostatečné shody chování modelu s chováním biologického originálu (hovoříme o tzv. verifikaci modelu), pak můžeme (s předem jasným omezením přesnosti) využít model k predikci – např. v klinice pro propočítávání kinetiky podaných léků nebo k propočítávání dekompresních zastávek při sportovním potápění atd. Je to obdobné jako ve fyzice – pokud chování fyzikálního modelu dobře predikuje (na dané úrovni přesnosti) chování fyzikálních experimentů, můžeme dané vztahy ve fyzikálních vzorcích využít pro nějaké praktické účely – např. pro počítání statiky budov a další technické aplikace. Fyzika využívá formalizace dávno – již od dob Newtona – a uplatnění formalizovaného vyjádření fyzikálních zákonů je podstatou moderních technických aplikací. Uplatnění formalizace v biologických a lékařských vědách však ani zdaleka není běžné. Oproti technickým vědám, fyzice či chemii má zde biologie a medicína určitý handicap. Jestliže formalizace ve fyzice začala již někdy v sedmnáctém století, proces formalizace lékařských a biologických věd je z důvodů složitosti a komplexnosti biologických systémů relativně opožděn a postupně přichází až s kybernetikou a výpočetní technikou. Ve fyziologii se s formalizovanými popisy setkáváme již od konce šedesátých let dvacátého století (od průkop- 66 nických prací Grodinse a spol., [7] popisujících respiraci). Předělem byl počátek sedmdesátých let, kdy rozvoj výpočetní techniky a programovacích jazyků ve větší míře umožnil praktické vytváření a testování simulačních modelů fyziologických systémů. Určitým mezníkem byl již v úvodu zmíněný popis cirkulace Guytonem a spol. z roku 1972 [8], který byl prvním rozsáhlejším modelem, snažícím se zachytit širší fyziologické souvislosti oběhového systému, dýchání a ledvin. Koncem sedmdesátých let se v odborné literatuře postupně objevují rozsáhlé simulační modely, snažící se integrativně zachytit spletité vztahy mezi regulací ledvin, dýchání, oběhu, iontového složení, acidobazické rovnováhy a dynamiky tělních tekutin pomocí soustav nelineárních diferenciálních rovnic [2, 4, 13]. Bouřlivý rozvoj modelování biologických systémů však přichází zejména v posledních letech v souvislosti s novými možnostmi, které přináší technický pokrok v oblasti výpočetní techniky a Internetu. Stoupá počet prací využívajících počítačové modely pro vyhodnocování a interpretaci výsledků experimentálních dat zejména při studiu nervové tkáně, respirace, oběhu a ledvin. Byl odstartován velký rozvoj v oblasti formalizace fyziologických systémů. Tak jako teoretická fyzika se snaží interpretovat výsledky experimentálního výzkumu ve fyzikálních vědách, tak i nový fyziologický směr základního výzkumu, nazývaný někdy "integrativní fyziologie", se snaží o formalizovaný popis vzájemného propojení fyziologických regulací. Metodickým nástrojem jsou zde počítačové modely. Aktivity v této oblasti se snaží koncentrovat projekt PHYSIOME [3, 11, 12] pod záštitou International Union of Physiological Sciences (http://www.physiome.org). V rámci Evropské Unie je současné době vyhlášen celoevropský projekt EUROPHYSIOME (http://www.europhysiome.org/). Jedním z cílů tohoto projektu je využití simulačních modelů pro výuku. Počítačové modely z oblasti biologie a medicíny nyní stále častěji nacházejí přímé praktické uplatnění v sofistikovaných výukových programech a lékařských simulátorech, jejichž význam s rozšiřováním počítačů a Internetu dále poroste. D v a t y p y p r o b l é m ů p ř i t v o r b ě v ý u ko v ýc h simulátorů Při vytváření simulátorů a výukových simulačních her je nutno řešit dva typy problémů: 1. Tvorba simulačního modelu – vlastní teoretická výzkumná práce, jejímž podkladem je formalizace fyziologických vztahů vyjádřená matematickým modelem. Výsledkem by měl být verifikovaný simulační model, který na zvolené úrovni přesnosti dostatečně věrně odráží chování modelované reality. 2. Tvorba vlastního multimediálního simulátoru, resp. tvorba výukového programu využívajícího simulační hry – je praktická aplikace teoretických výsledků, která navazuje na výsledky řešení výzkumu. Podkladem simulátoru jsou vytvořené (a verifikované) matematické modely. Zde jde o náročnou vývojovou práci, vyžadující skloubit nápady a zkušenosti pedagogů, vytvářejících scénář výukového programu, kreativitu výtvarníků, vytvářejících interaktivní multimediální komponenty a úsilí programátorů, kteří "sešijí" výsledné dílo do konečné podoby. MEFANET report 01 Každý z těchto problémů má svou specifiku a vyžaduje proto použít zcela odlišné vývojové nástroje. Zatímco vytvoření vlastního simulátoru je spíše vývojářskou a programátorskou prací, formalizace fyziologických vztahů a vytváření simulačního modelu není vývojářský, ale (poměrně náročný) výzkumný problém, jehož efektivní řešení vyžaduje použít adekvátní nástroje pro podporu tvorby simulačních modelů. Tvorba simulačního modelu i tvorba simulátoru spolu úzce navzájem souvisejí (viz obr. 6) – předpokladem pro tvorbu výukového simulátoru je dostatečně dobře verifikovaný model, na druhé straně, využití simulátoru ve výuce přináší nové požadavky na vytvoření nových či modifikaci stávajících simulačních modelů. A protože pro tvorbu simulačních modelů a pro vytváření vlastního simulátoru používáme odlišné vývojové nástroje, musíme pak zajistit dostatečně flexibilní přenos výsledků z jednoho vývojového prostředí do druhého. Tak např. modifikujeme-li simulační model v některém nástroji pro tvorbu simulačních modelů, je výhodné zajistit, aby se změny v modelu bez větších potíží mohly rychle promítnout do aktualizace těchto změn ve vlastním simulátoru. K usnadnění tohoto přenosu je vhodné si vytvořit i vlastní softwarové pomůcky. V naší laboratoři jsme při vytváření a verifikaci simulačních modelů sáhli po profesionálních nástrojích firmy Mathworks (Matlab, Simulink a příslušné aplikační knihovny) a v poslední době i po velmi nadějném simulačním jazyku Modelica, pro něž dotváříme i některé vlastní komponenty vývojového prostředí. Při vytváření vlastního simulátoru využíváme standardní vývojová prostředí pro tvorbu a vývoj interaktivní grafiky (např. Adobe Flash) a nástroje pro tvorbu softwarových a webových komponent (např. Visual Studio .NET, prostředí pro vývoj v jazyce Java jako třeba NetBeans, prostředí pro návrh a programování interaktivní grafiky v jazyce ActionScript jako je např. Adobe Flex aj.). V minulosti jsme výukové simulátory vyvíjeli také pomocí nástroje pro vizualizaci průmyslových aplikací Control Web. Pro propojení obou skupin vývojových nástrojů jsme vyvinuli vlastní softwarové nástroje pro automatizaci přenosu simulačních modelů, vytvořených v prostředí Matlab/Simulink do vývojových prostředí Microsoft Visual Studio .NET a do Control Web [17, 22]. V současné době vyvíjíme softwarové nástroje pro zefektivnění tvorby simulátorů založených na simulačních modelech vyvíjených v prostředí simulačního jazyka Modelica. Tyto programy jsou k dispozici všem zájemcům na vyžádání (e-mailem na adresu autora). Te o r e t i c k ý z á k l a d s i m u l a č n í c h h e r – s i m u lační modely V sedmdesátých a osmdesátých letech minulého století autoři často volili pro grafický popis modelů fyziologických systémů grafickou syntaxi navrženou Guytonem – tak např. Amosov a spol. v roce 1977 [2] publikovali monografii v níž stejnou syntaxí popsali propojený model cirkulace, respirace, ledvin, elektrolytové rovnováhy a termoregulace. Obdobně v roce 1979 tuto syntaxi využil Ikeda a spol. [13] ve svém modelu vnitřního prostředí. Později, s rozvojem výpočetní techniky a softwarových nástrojů, se pro grafické zobrazení fyziologických re- gulačních vztahů začaly využívat nástroje simulačních vývojových prostředí. Jedním z nich je např. vývojové prostředí Matlab/Simulink od firmy Mathworks, které umožňuje postupně sestavovat simulační model z jednotlivých komponent – jakýchsi softwarových simulačních součástek, které se pomocí počítačové myši mezi sebou propojují do simulačních sítí. Obdobně jako u výše zmíněného Guytonova modelu i tyto sítě svými vodiči a součástkami na první pohled vzdáleně připomínají elektronické obvody. Rozdíl je ovšem v tom, že místo elektrických signálů v propojovaných vodičích proudí informace. V jednotlivých uzlech (sumátorech, integrátorech, násobičkách, děličkách atd.) pak dochází ke zpracování přiváděných informací a k trasformaci do výstupní informace, která je rozesílána výstupními vodiči do dalších prvků sítě. V Simulinku tak můžeme názorně graficky vyjádřit i velmi složité matematické vztahy. Vytvořená síť ovšem není jen přehledný obrázek. Je to zároveň i funkční simulační model. K jednotlivým vodičů této sítě můžeme myší připojovat virtuální displeje či osciloskopy. Po spuštění modelu pak můžeme jejich prostřednictvím sledovat číselnou či grafickou podobu hodnot veličin, které proudí v jednotlivých vodičích. Jako příklad můžeme uvést námi vytvořenou implementaci klasického Guytonova modelu cirkulace [19]. Vnější vzhled jsme se snažili zachovat zcela stejný, jako v původním grafickém schématu – rozložení, rozmístění vodičů, názvy veličin i čísla bloků jsou stejné. Simulinkové počítací prvky jsou velmi podobné prvkům, které pro formalizované vyjádření fyziologických vztahů použil Guyton (obr. 7). Rozdíl je jen v grafickém tvaru jednotlivých prvků – tak např. násobička a dělička je v Simulinku realizována čtverečkem a nikoli "prasátkem" jako v Guytonově notaci. Blok integrátoru zobrazený v Simulinku nemá na sobě grafický znak integrálu, ale výraz "1/s" (což souvisí s notací tzv. Lapaceovy transformace). V simulinkovém modelu jsme využili i přepínače, kterými můžeme odpojovat nebo zapojovat jednotlivé subsystémy a regulační smyčky i za běhu modelu. Simulační vizualizace starého schématu ale zdaleka nebyla úplně snadná – v originálním obrázkovém schématu modelu jsou totiž chyby. V nakresleném obrázku to nevadí, pokusíme-li se ho ale oživit v Simulinku, pak se chyba projeví v lepším případě neadekvátním chováním modelu, v horším se model znestabilní, hodnoty proměnných modelu začnou divoce kmitat a model zkolabuje jako celek. Chyby byly drobné – přehozená znaménka, dělička místo násobičky, prohozené propojení mezi bloky, chybějící desetinná tečka u konstanty atd. – ale stačily na to, aby model nefungoval. Při znalosti fyziologie a systémové analýzy se na chyby, při troše námahy, dalo přijít (obr. 8). Je zajímavé, že tento složitý obrázek byl mnohokrát přetiskován do různých publikací a nikdo si nedal práci tyto chyby odstranit. Ostatně, v době, kdy obrázkové schéma vznikalo ještě neexistovaly kreslící programy – obrázek vznikal jako složitý výkres – a ruční překreslování složitého výkresu ani zdaleka není snadné. Možné je i to, že autoři opravovat chyby ani příliš nechtěli – kdo si dal práci s analýzou modelu, snadno obrazové "překlepy" odhalil, kdo by chtěl jen tupě opisovat, měl smůlu. Konec konců, ve své době autoři rozesílali i zdrojové texty 67 MEFANET report 01 programů svého modelu v programovacím jazyce Fortran – takže pokud někdo chtěl pouze testovat chování modelu, nemusel nic programovat (maximálně pouze rutinně převedl program z Fortranu do jiného programovacího jazyka). Námi vytvořená Simulinková realizace (opraveného) Guytonova modelu (obr. 9–11) je zájemcům k dispozici ke stažení na adrese www.physiome.cz/ guyton/. Na této adrese je i naše Simulinková realizace mnohem složitější verze modelu Guytona a spol. z pozdějších let. Zároveň je zde i velmi podrobný popis všech použitých matematických vztahů se zdůvodněním. K dispozici je i výpis zdrojového textu původního modelu z roku 1986 ve Fortranu. Od simulační pav učiny k simulačním čipům Spletitá pavučina počítacích bloků Guytonova modelu, implementovaná v prostředí Simulinku působí sice svou složitostí na první pohled impozantně, pro vlastní práci s modelem je však dosti nepřehledná. Při výstavbě našich vlastních modelů se nesnažíme stavět mraveniště bloků prošpikovaných svazky informačních vodičů, v nichž se uživatel (a nezřídka i sám tvůrce modelu) velmi snadno ztrácí. Snažíme se proto, pokud to jde, model dekomponovat do přehledných částí. Využíváme toho, že jednotlivé části simulační sítě se dají hierarchicky seskupovat do subsystémů s uživatelsky definovanými vstupy a výstupy, v masce subsystému se dají vstupy a výstupy stručně popsat. Na kliknutí je možno k subsystému zpřístupnit i rozsáhlou dokumentaci, kde je možno bez omezení podrobněji popsat i teoretické pozadí vytvořeného subsystému. Takto pojaté subsystémy na první pohled připomínají elektronické integrované obvody, neboť na jednotlivých "pinech" těchto "simulačních čipů" jsou příslušné vstupy a výstupy, které je možno propojovat do sítě s dalšími bloky a subsystémy (obr. 12). Struktura simulačního modelu vyjádřeného jako síť propojených simulačních čipů je pak mnohem přehlednější a srozumitelnější (obr. 13, 14). Důležité je, že nakreslené struktury jsou v prostředí programu Simulink "živé" – pomocí počítačové myši lze na jednotlivé vstupy jednotlivých simulačních čipů přivést konstantní nebo proměnné hodnoty vstupních veličin a na výstupech pak snímat v numerickém či grafickém vyjádření jednotlivé hodnoty výstupních proměnných. Vnitřní struktura "čipu" může být při jeho použití zcela skryta, uživatel musí pouze vědět, jakou vstupní či výstupní veličinu příslušný "pin" reprezentuje. Po¬mocí myši může uživatel přenést čip z příslušné knihovny do vytvářeného modelu, kde příslušné vstupy a výstupy propojí. Chování "čipu" lze také snadno testovat, stačí k jeho vstupům přivést příslušné definované průběhy hodnot vstupních veličin a na jeho výstupy připojit příslušné virtuální osciloskopy či displeje. Každý čip může "uvnitř sebe" obsahovat další propojené "simulační čipy". Obsáhlý simulační čip tak může mít poměrně složitou hierarchii (obr. 15–16). Simulační čipy je možno ukládat do knihoven a opětovně používat v různých modelech (obr. 17). Tvorba simulačních modelů v biomedicínských vědách je nezřídka týmová práce. Na jedné straně stojí systémový analytik – expert na formalizaci a tvorbu simu- 68 lačních modelů (teoretický fyziolog, vytvářející formalizovaný popis fyziologického systému a testující jeho chování pomocí simulačního modelu). Na druhé straně často stojí klasický experimentální fyziolog či klinik, pro kterého je popis fyziologického systému pomocí diferenciálních rovnic španělskou vesnicí, ale který dokáže snadno rozpoznat, nakolik odpovídá chování počítačového simulačního modelu biologické realitě. Podle našich zkušeností může problém dorozumění mezi těmito dvěma skupinami specialistů zásadně usnadnit důsledné využívání simulačních čipů při výstavbě simulačního modelu. Znamená to v prvé řadě věnovat důslednou pozornost dokumentaci. Simulační čipy samy o sobě mohou být i aktuální elektronickou dokumentací k vytvářeným modelům (viz obr. 17). Nejenže v čelní masce simulačního čipu je stručný popis všech vstupů a výstupů a "vnitřek" simulačního čipu graficky reprezentuje síť použitých vztahů, na kliknutí myší lze u každého softwarového simulačního čipu také otevřít okno nápovědy s dalším podrobnějším popisem. Simulační čipy tedy umožňují pečlivě vést aktuální dokumentaci v elektronické podobě ke každému použitému subsystému při zachování veškeré funkčnosti. Aby mohl jednotlivé komponenty využívat i ten, kdo danou část modelu nevytvářel, je podrobná a zároveň přehledná dokumentace nezbytná a čas strávený nad vypisováním spousty informací do masek jednotlivých subsystémů reprezentujících simulační čipy se pak zaručeně vyplatí [Kofránek a spol, 2002]. Výhodou za trochu té dřiny je porozumění – experimentální fyziolog nemusí rozumět vnitřnímu uspořádání simulačního čipu, porozumí ale tomu, jaké chování má od fyziologického subsystému, který čip reprezentuje, očekávat. Fyziolog je nadto schopen porozumět i struktuře složené z propojených simulačních čipů – ze struktury modelu přímo vidí, které veličiny spolu vzájemně souvisejí (a ze znalosti fyziologie i dovede odhadnout, co a na jaké úrovni bylo zanedbáno). O d r o v n i c m o d e l u k t e c h n o l o g i c ké m u know how V sedmdesátých a osmdesátých letech dvacátého století bylo časté, že autoři počítačových modelů na vyžádání posílali zdrojové texty počítačových programů, kterými byly tyto modely realizovány. Dnes se už zdrojové programy rozsáhlých simulačních programů získávají mnohem obtížněji. Rozvoj výpočetní techniky totiž umožnil praktické uplatnění simulačních modelů například v lékařských počítačových trenažérech a výukových programech využívajících simulační hry. Biomedicínské modely mají své místo i v technologických zařízeních – od kapesních počítačů pro sportovní potápěče až po řídící jednotky v sofistikovaných lékařských přístrojích. S možností komerčního využití souvisí i určitá změna náhledu na formalizovaný popis fyziologické reality, který je podkladem výukových simulačních modelů. Podrobný formalizovaný popis (ve formě rovnic, nebo, ještě lépe, algoritmů zapsaných ve formě zdrojového textu v nějakém programovacím jazyce) se proto z čistě vědeckého tématu často stává (před potenciální konkurencí utajovaným) technologickým know how. Jestliže ještě koncem osmdesátých let bylo běžné získat na písemnou žádost přímo výpis příslušného fortranského programu, nyní to již většinou není možné. MEFANET report 01 V naší laboratoři biokybernetiky se zabýváme tvorbou simulačních modelů v rámci výzkumu dotovaného z veřejných zdrojů i díky spolupráci s komerčním sektorem. Struktura námi vytvářených modelů, dotovaných z veřejných prostředků je veřejná. V rámci výzkumných grantů a rozvojových projektů jsme mimo jiné vytvořili knihovnu fyziologických modelů v prostředí Simulink-Matlab, ve formě "simulačních čipů". Tato knihovna byla vytvořena jako Open-Source produkt, byla periodicky aktualizována a je k dispozici zájemcům na našich internetových stránkách (www.physiome.cz/simchips). T vorba simulátorů pro simulační hr y Vývojové nástroje pro tvorbu simulačních modelů jsou určeny pro specialisty. Pro běžného uživatele, který si chce se simulačním modelem jen "pohrát", se příliš nehodí. I když v prostředí těchto nástrojů je možné naprogramovat poměrně příjemné uživatelské rozhraní k ovládání vytvořeného modelu, pro účely uplatnění simulačního modelu ve výuce medicíny je toto rozhraní až příliš komplikované a navíc vyžaduje zakoupení dalších (poměrně drahých) licencí. Student medicíny a lékař vyžaduje uživatelské rozhraní simulátoru připomínající spíše obrázky a schémata obdobná, jako v knižních publikacích typu atlasu fyziologie či atlasu patologické fyziologie. Proto je nutné výukový simulátor včetně jeho multimediálního uživatelského rozhraní naprogramovat zvlášť. Možnosti uživatelského ovládání simulátoru jsou pak pro cílovou skupinu uživatelů podstatně přirozenější. Nezastupitelnou komponentou výukového simulátoru je i část programu, která realizuje simulační model. Známe-li strukturu simulačního modelu, (vytvořeného v některém z vývojových nástrojů pro tvorbu simulačních modelů – např. Matlab/Simulink) pak už zbývá "hlavoruční dřinou" přetvořit strukturu modelu do podoby počítačového programu ve zvoleném programovacím jazyce (např. v C#). Dále je zapotřebí pro vytvoření uživatelského rozhraní nakreslit interaktivní multimediální komponenty. Tyto komponenty je pak nutno propojit se simulačním modelem na pozadí simulátoru. Pro vývoj simulátorů ve výukových programech jsme se proto museli poohlédnout po jiném vývojovém prostředí než je Matlab a Simulink. Po určitém váhání jsme pro tvorbu vlastních simulátorů nejprve sáhli po nástrojích využívaných při tvorbě průmyslových aplikací (měřících ústředen a velínů) [16]. Vedly nás k tomu především dva důvody: 1. Se simulačním modelem chceme v simulátoru fyziologických funkcí zacházet obdobně, jako se v průmyslu z velínu řídí složité technologické zařízení: chceme číst (a v nejrůznější grafické či číselné podobě zobrazovat) množství nejrůznějších měřených dat (jako v průmyslové měřící ústředně) a zároveň chceme jednoduchým způsobem (stiskem tlačítek, otáčením knoflíků, popotahováním táhel apod.) simulační model ovládat (obdobně jako se z velínu řídí nějaká technologie). 2. Druhým důvodem, proč jsme sáhli po softwarovém nástroji z průmyslu, je spolehlivost. Požadavky spolehlivosti, kladené na nástroje, jejichž pomocí se vyvíjejí průmyslové řídící aplikace, jsou obvykle řádově vyšší než u obecných programovacích nástrojů. Nástrojů pro design průmyslových aplikací je na světovém trhu nemálo. Jejich ceny jsou ovšem, na rozdíl od obecných softwarových nástrojů, zpravidla velmi vysoké. Paradoxem je, že velmi dobrý nástroj lze získat velmi levně, a to přímo od domácího výrobce. Zlínská akciová společnost "Moravské přístroje" již léta vyvíjí systém pro tvorbu průmyslových aplikací s názvem "Control Web". Jde přitom o kvalitní vývojový systém: na letáčku jejich skandinávského distributora stojí "Svensk kvalitet (till Tjeckiska priser)" – "Švédská kvalita (za české ceny)". Švédové jsou velmi domýšliví na kvalitu svých výrobků a pokud o vývojovém nástroji Control Web z Valašska veřejně prohlašují, že dosahuje "švédské kvality", je to velké ocenění skupiny tvůrců, kteří na tomto produktu usilovně pracují již od počátku devadesátých let. Control Web je především určen pro vývoj průmyslových vizualizačních a řídících aplikací na platformě WIN32 – sběr, ukládání a vyhodnocování dat, tvorba rozhraní člověk-stroj aj. (viz http://www.mii.cz). Základními stavebními kameny uživatelské aplikace vytvářené v prostředí Control Web jsou virtuální přístroje (komunikující mezi sebou pomocí proměnných a zpráv). Měřené hodnoty z vnějšího světa jsou v průmyslových aplikacích virtuálním přístrojům zprostředkovány přes vstupní kanály, řídící signály mohou virtuální přístroje posílat do okolí pomocí výstupních kanálů. Pro vývoj uživatelského rozhraní poskytuje systém Control Web velmi výkonné prostředky. Tak např. z palety virtuálních přístrojů je možno snadno tažením myši vytáhnout potřebný přístroj a umístit ho na příslušný panel a v interaktivním dialogu mu nastavit hodnoty jeho příslušných atributů, nadefinovat jeho lokální proměnné, či individuální procedury (metody objektu) apod. Abychom mohli využít vývojářské pohodlí systému Control Web, museli jsme použít následující, vcelku jednoduchý, trik. V průmyslových aplikacích Control Web komunikuje (přes příslušné softwarové kanály) přes ovladač příslušné měřící/řídící karty s průmyslovým technologickým zařízením. Je ovšem možné napsat speciální ovladač, jehož interní součástí je simulační model. Tento ovladač je schopen komunikovat (přes softwarové kanály) s objekty systému Control Web, ale na rozdíl od ovladačů ke skutečným měřícím a řídícím kartám nekomunikuje s jejich hardwarem, ale komunikuje se simulačním modelem. Pokud se ovladač napíše dobře, je systém Control Web "ošálen": vstupní kanály (k zobrazovacím prvkům na monitoru) považuje za skutečné měřené signály někde z technologického okolí počítače, zatímco ve skutečnosti to jsou výstupní proměnné simulačního modelu. A také v opačném směru je Control Web přesvědčen, že výstupní kanály, které odcházejí od řídících prvků systému Control Web, nastavují přes příslušný ovladač nějaké aktivní prvky průmyslového zařízení, ale ony namísto toho mění vstupy simulačního modelu. Abychom usnadnili vývoj ovladačů jakési "virtuální měřící/řídící karty", které obsahují simulační model a nemuseli tento ovladač pro každý model psát v programovacím jazyce C "ručně", vyvinuli jsme speciální program, který nám umožní vývoj tohoto ovladače automatizovat. Máme tedy nyní možnost bezpro- 69 MEFANET report 01 středně ze simulinkového schématu generovat zdrojový text příslušného virtuálního ovladače v C. Tím je možné jednoduše a rychle modifikovat ovladač pro prostředí Control Web při nejrůznějších úpravách a nových verzích simulačního modelu. V prostředí Control Web jsme např. vytvořili simulátor Golem (Kofránek a spol 2001). Další platformou pro vývoj simulátorů, kterou nyní v naší laboratoři využíváme převážně, je platforma Microsoft .NET a programovací prostředí Microsoft Visual Studio .NET, které, zejména ve své poslední verzi, poskytuje velké možnosti pro programátorskou práci. V tomto prostředí již nejsme omezeni "předpřipravenými" prvky uživatelského rozhraní jako v prostředí Control Webu a přitom můžeme využívat veškerou sílu moderního nástroje pro tvorbu softwarových aplikací, na druhé straně si však musíme řadu prvků vytvářené aplikace naprogramovat sami. Abychom si vytváření simulátorů ulehčili (a aby nebylo nutné ve Visual Studiu .NET "ručně" programovat již odladěný simulační model) vyvinuli jsme i zde speciální softwarový nástroj [17, 22], který automaticky ze Simulinku vygeneruje simulační model ve formě komponenty pro prostředí .NET (viz obr. 20). Po h y b l i vé a n i m a c e j a ko l o u t k y n a n i t í c h simulačních modelů Pro vytváření uživatelského rozhraní výukového simulátoru je velmi vhodné simulátor navenek reprezentovat jako pohyblivý obrázek. Proto simulační model propojujeme s multimediální animací vytvořenou pomocí Adobe Flash [17]. Pro profesionální výsledný vzhled aplikace je nezbytné, aby vlastní animace vytvářel výtvarník – výsledky jsou neporovnatelně lepší, než když animace vytváří graficky nadaný programátor. Znamenalo to ovšem věnovat určité úsilí výuce výtvarníků, kteří musí zvládnout práci s nástroji pro tvorbu interaktivní grafiky. Takto vzdělaných výtvarníků je ale na trhu práce kritický nedostatek. Proto jsme již před lety začali úzce spolupracovat s výtvarnou školou Václava Hollara a na této škole jsme otevřeli "laboratoř interaktivní grafiky" jako naše detašované pracoviště. Iniciovali jsme také založení Vyšší odborné školy, která vyučuje v tříletém studiu předmět "interaktivní grafika". Pracovníci naší laboratoře se v této Vyšší odborné škole mimo jiné podílejí i na výuce. Animované obrázky mohou být řízeny výstupy implementovaného simulačního modelu a graficky reprezentovat význam číselných hodnot – např. schematický obrázek cévy se může roztahovat nebo komprimovat, plicní sklípek může hlouběji či mělčeji "dýchat", ručička měřícího přístroje se může pohybovat a průběžně zobrazovat hodnotu nějaké výstupní proměnné modelu čtené z běžícího simulačního modelu na pozadí. Na druhé straně můžeme přes vizuální prvky vytvořené pomocí Adobe Flash (nejrůznější tlačítka, knoflíky, táhla apod.) do simulačního modelu zadávat nejrůznější vstupy. Příklady simulátorů, vytvořených v prostředí Control Web a v prostředí Visual Studio .NET s propojením na flashové animace jsou uvedeny na obr. 21 a 22. V případě složitější architektury může být logika propojení flashové animace a simulačního modelu poměrně složitá, proto je vhodnější mezi vrstvu vizu- 70 álních elementů a vrstvu simulačního modelu vložit řídící vrstvu, která na jednom místě řeší veškerou logiku komunikace uživatelského rozhraní s modelem a kde je ukládán i příslušný kontext. V literatuře se hovoří o tzv. MVC architektuře výstavby simulátorů (Model – View – Controller). Toto uspořádání je nezbytné zejména při složitějších modelech a simulátorech, jejichž uživatelské zobrazení je reprezentováno mnoha virtuálními přístroji na více propojených obrazovkách. Výhody tohoto uspořádání zvláště vyniknou při modifikacích jak modelu, tak i uživatelského rozhraní (obr. 23). Při návrhu řídící vrstvy, propojující vrstvu simulačního modelu s uživatelským rozhraním, se nám velmi osvědčilo využít propojené stavové automaty (jejichž pomocí je možno zapamatovat příslušný kontext modelu a kontext uživatelského rozhraní). Vytvořili jsme proto speciální softwarový nástroj, pomocí kterého můžeme propojené stavové automaty vizuálně navrhovat, interaktivně testovat jejich chování a automaticky generovat zdrojový kód programu pro prostředí Microsoft .NET [22]. Tento nástroj umožňuje zefektivnit programování propojek simulačního modelu s vizuálními objekty uživatelského rozhraní ve výukovém simulátoru. Simulační hr y na WEBu Další technologický problém, který bylo při tvorbě výukových simulátorů nutno vyřešit, bylo proto nalezení způsobu, jak včlenit simulátory jako součásti internetových e-learningových aplikací. Při jeho řešení je možno postupovat několika způsoby. Jedním z nich je spouštění modelu na serveru a na klientský počítač posílat pouze výstupy z modelu. Znamená to ale pro každého připojeného uživatele na serveru individuálně spouštět jednu instanci (jeden exemplář) simulačního modelu. Kromě toho, zvláště u vzdálenějších a pomalejších připojení, je nezanedbatelné časové zpoždění mezi výstupem simulačního modelu na serveru a vykreslením výsledku na počítači klienta. Proto jsme se rozhodli jít spíše cestou spouštění simulačních modelů na počítači klienta. U jednodušších modelů je možno využít interpetovaný ActionScript ve Flashi v němž je naprogramován simulační model. Složitější simulační modely už ale vyžadují kompilovaný simulátor. Naše řešení [22] je zobrazeno na obr. 24. Uživatel si nainstaluje platformu .NET (pokud ji již nemá). Dále si na svém počítači nainstaluje speciální klientský program – "dispečer simulačních modelů". V případě potřeby se dispečer rozšíří i o runtime pro prostředí ControlWeb, které zajistí možnost spouštění modelů v tomto prostředí vytvořených. Webová e-learningová aplikace umožní stáhnout potřebné soubory simulačního modelu a dispečer simulačních modelů je spustí. Dispečer tak funguje obdobně jako prohlížeč obrázků, jen s tím rozdílem, že místo zobrazení obrázků spustí simulační program. Zabalení simulačních her do multimediálního v ýkladu Jedním z projektů, který vytváříme v naší laboratoři je již výše zmíněný Atlas fyziologie a patofyziologie (viz www.physiome.cz/atlas). Atlas [18] je průběžně vytvářená internetová multimediální výuková pomůcka z oblasti normální a patologické fyziologie, která s MEFANET report 01 využitím simulačních modelů pomáhá vysvětlit funkci a poruchy jednotlivých fyziologických systémů. Simulační hry (obr. 25) jsou součástí e-learningových multimediálních výukových lekcí, jejichž podkladem je scénář vytvořený zkušeným pedagogem. Pedagog navrhuje vysvětlující text a s textem propojené doprovodné obrázky a animace. Animace jsou vytvářeny v prostředí Adobe Flash v úzké spolupráci pedagoga s výtvarníkem. Text je poté namluven a synchronizován se spouštěním jednotlivých animací a s odkazy na simulační hry. Jednotlivé komponenty jsou kompletovány do výukových lekcí. Pro vytváření a kompletaci multimediálních výukových lekcí využíváme softwarové prostředí serveru Adobe Connect (dříve Macromedia Breeze). Projekt Atlasu fyziologie a patofyziologie je otevřený. Veškeré výukové texty, interaktivní animace a simulační modely včetně jejich zdrojových kódů jsou k dispozici všem zájemcům. Jako open-source jsou i veškeré námi vytvořené podpůrné softwarové nástroje, umožňující vygenerování jádra simulátorů z prostředí Matlab/ Simulink a distribuci simulátorů prostřednictvím Internetu. Náš vývojový tým uvítá spolupráci s dalšími pracovišti na dalším rozšiřování atlasu a vytvoření jeho jazykových mutací. Od entuziazmu k technologii a multidisciplinární spolupráci Navzdory tomu, že se využití počítačů ve výuce stalo tématem řady konferencí, odborných i popularizačních článků, přesto, že hardwarové možnosti i softwarové nástroje dnes již dospěly do úrovně umožňující vytvářet náročná interaktivní multimedia, k výraznému rozšíření multimediálních výukových programů ve výuce medicíny zatím nedošlo. Příčin je několik. • Za prvé, ukazuje se, že tvorba výukových programů je podstatně náročnější na čas, lidské i materiální zdroje, než je obvykle plánováno • Za druhé – tvorba kvalitních medicínských výukových programů vyžaduje týmovou multidisciplinární spolupráci zkušených pedagogů, lékařů, matematiků, fyziků, programátorů i výtvarníků. • Konečně, pro kreativní propojení různých profesí, podílejících se na tvorbě výukové multimediální aplikace, musí být k dispozici vhodně zvolené vývojové nástroje (jejichž ovládnutí ale vyžaduje určité úsilí a čas). • Nároky stoupají, pokud na pozadí výukového programu má běžet simulační program, umožňující interaktivní simulační hry – ve vývojovém týmu pak musí být i odborníci, kteří jsou schopni navrhnout, formalizovat a odladit příslušné modely (lékaři, matematici, fyzici a informatici). Domníváme se, že nejdůležitějším výsledkem, kterého se nám v naší laboratoři zatím podařilo dosáhnout je vybudování multidisciplinárního týmu lékařů, matematiků, programátorů i výtvarníků, který je schopen výše zmíněné bariéry překonat. Mezioborový tým potřebuje nástroje pro usnadnění komunikace a kooperace práce na společně vytvářených projektech. Pro podporu a koordinaci týmové spolupráce dnes existuje řada softwarových prostředků. V naší laboratoři se nám osvědčilo využití open-source nástroje WikiDoc, který umožňuje jednoduše využí- vat webové rozhraní pro vzájemnou komunikaci členů týmu. Pro letmý pohled do "kuchyně" našeho mezioborového týmu i pro seznámení s funkcí "wiki" – rozhraní se čtenář může podívat na "wiki-web" naší laboratoře: http://physiome.ct/wiki. No v á v ý z v a i p ř í l e ž i t o s t p r o v y s o ké š ko l y Současná epocha je charakterizována zásadními změnami v technologiích, které ve svém důsledku mění ekonomiku, společnost i způsob života. Původní soupeření o tuny produktů přešlo do souboje o dokonalejší a rychlejší informace. Vytváří se nový tržní segment, kde se obchoduje s nehmotným produktem, myšlenkami, nápady a knowhow. Pokrok v technologiích vytváří tlak na flexibilitu pracovní síly a zvyšuje požadavek na průběžné rekvalifikace. Celoživotní vzdělávání se stává nutností ve stále větším počtu oborů. Vytváření a realizaci rekvalifikačních kurzů a výuky v procesu celoživotního vzdělávání usnadňuje a podporuje využití informačních technologií. E-learning proto umožňuje rozšířit kapacitu vysokých škol a zároveň jim může přinést další příjmy z tvorby distančních rekvalifikačních a specializačních postgraduálních programů. Z tohoto hlediska je e-learning pro vysoké školy nová výzva, která bude vyžadovat velké úsilí, ale zároveň je i velkou příležitostí pro jejich další rozvoj. Zdá se, že pomalu končí doba, kdy vytváření výukových programů bylo otázkou entuziasmu a píle skupin nadšenců. Tvorba moderních biomedicínských výukových aplikací je náročný a komplikovaný projekt, vyžadující týmovou spolupráci řady profesí – zkušených pedagogů vytvářejících základní scénář, tvůrců simulačních modelů, lékařů, výtvarníků a programátorů. Aby tato interdisciplinární kolektivní tvorba byla efektivní, je nutno pro každou etapu tvorby využívat specifické vývojové nástroje, s dostatečnou technickou podporou, které umožňují komponentovou tvorbu simulačních modelů, vytváření interaktivních multimédií a jejich závěrečné propojení podle daného scénáře do kompaktního celku. K ovládnutí těchto nástrojů je zapotřebí věnovat značné úsilí, které se ale nakonec vyplatí. Vytvořit kvalitní výukové e-learningové aplikace, pokrývající nezanedbatelnou část lékařského oboru není v silách jednoho pracoviště a MEFANET je zde velkou příležitostí. Proto uvítáme spolupráci v rámci sítě MEFANET se všemi jednotlivci i pracovišti, kteří budou mít zájem. Rádi se podělíme o naše zkušenosti včetně námi vytvořených podpůrných softwarových prostředků. Literatura [1] Abram, S. R., Hodnett, B. L., Summers, R. L., Coleman, T. G., Hester R.L. (2007). Quantitative Circulatory Physiology: An Integrative Mathematical Model of Human Physiology for medical education. Advannced Physiology Education, 31 (2), 202–210. [2] Amosov, N. M., Palec B. L., Agapov, B. T., Jermakova, I. I., Ljabach E. G., Packina, S. A., Solovjev, V. P. (1977): Teoretičeskoje issledovanie fiziologičeskich sistěm. Naukova Dumka, Kijev, 1977. [3] Bassingthwaighte J. B. (2000). Strategies for the Physiome Project. Annals of Biomedical Engeneering 28, 1043–1058. [4] Cameron, W.H. (1977): A model framework for computer simulation of overall renal function. J. Theor. Biol. vol. 66., s. 552–572 71 MEFANET report 01 [5] Coleman, T. G. and J.E. Randall (1983): HUMAN. A comprehensive physiological model. The Physiologist, vol. 26, (1): 15–21. [6] P. Fritzson (2003). Principles of Object-Oriented Modeling and Simulation with Modelica 2.1, Wiley-IEEE Press. [7] Grodins, F., S., J. Buell and A. Bart (1967).: Mathematical analysis and digital simulation of the respiratory control system. J. Appl. Physiol., vol. 22, (2): s. 250–276. [8] Guyton AC, Coleman TA, and Grander HJ. (1972): Circulation: Overall Regulation. Ann. Rev. Physiol., 41, s. 13–41. [9] Guyton AC, Jones CE and Coleman TA. (1973): Circulatory Physiology: Cardiac Output and Its Regulation. Philadelphia: WB Saunders Company,1973. [10] Guyton AC (1990): The suprising kidney-fluid mechanism for pressure control – its infinite gain!. Hypertension, 16, s.725–730. [11] Hunter P. J., Robins, P., & Noble D. (2002) The IUPS Physiome Project. Pflugers Archive-European Journal of Physiology, 445, s.1–9 [12] Hunter, P. J. & Borg, T. K. (2003). Integration from proteins to organs: The Physiome Project. Nature Reviews Molecular and Cell Biology. 4, 237–243. [13] Ikeda N, Marumo F and Shirsataka M. A (1979): Model of Overall Regulation of Body Fluids. Ann. Biomed. Eng. 7, s. 135–166 [14] Kofránek, J. Anh Vu, L. D., Snášelová, H., Kerekeš, R., & Velan, T (2001): GOLEM – Multimedia simulator for medical education. In Patel, L., Rogers, R., Haux R. (Eds.). MEDINFO 2001, Proceedings of the 10th World Congress on Medical Informatics. London: IOS Press, 1042–1046. [15] Kofránek, Jiří, Andrlík, Michal, Kripner, Tomáš, and Mašek, Jan (2002). From Simulation chips to biomedical simulator. In Amborski, K. and Meuth, H. Proc. of 16th European Simulation Multiconference, Darmstadt, 2002. SCS Publishing House, 2002, s. 431–436. [16] Kofránek, Jiří, Kripner, Tomáš, Andrlík, Michal, and Mašek, Jan. (2003) Creative connection between multimedia, simulation and software development tools in the design and development of biomedical educational simulators. Simulation Interoperability Workshop, 2003. Orlando, 2003, Position papers, Volume II, paper 03F-SIW-102, s. 677–687. [17] Kofránek J, Andrlík M, Kripner T, Stodulka P. (2005): From Art to Industry: Development of Biomedical Simulators. The IPSI BgD Transactions on Advanced Research 2 (Special Issue on the Research with Elements of Multidisciplinary, Interdisciplinary, and Transdisciplinary: The Best Paper Selection for 2005), s.62–67. [18] Kofránek, J., Matoušek, S., Andrlík, M., Stodulka, P., Wünsch, Z., Privitzer, P., Hlaváček, J., Ondřej Vacek, O. (2007): Atlas of physiology – internet simulation playground. In. Proceedings of the 6th EUROSIM Congress on Modeling and Simulation, Vol. 2. Full Papers (CD). (B. Zupanic, R. Karba, S. Blažič Eds.), University of Ljubljana, ISBN 978-3-901608-32-2, MO-2-P7-5, 1–9. 2007. Článek je dostupný na adrese http://patf-biokyb.lf1. cuni.cz/wiki/media/clanky/development_of_web_accessible_medical_simulators.pdf?id=wiki%3Auser%3Aseznam_publikaci&cache=cache [19] Jiří Kofránek, Jan Rusz, Stanislav Matoušek (2007): Guytons Diagram Brought to Life – from Graphic Chart to Simulation Model for Teaching Physiology. In Technical Computing Prague 2007. 15th Annual Conference Proceedings. Full paper CD-ROM proceedings. (P. Byron Ed.), Humusoft s.r.o. & Institute of Chemical Technology, Prague, ISBN 978-80-7%8%-658-6, 1–13, 2007. Článek, včetně zdrojových textů programů je dostupný na adrese http://www.humusoft.cz/akce/matlab07/sbor07.htm#k [20] Miller, J. A., Nair, R. S., Zhang, Z., Zhao, H. (1997). JSIM: A JAVA-Based Simulation and Animation Environment, In Proceedings of the 30th Annual Simulation Symposium, Atlanta, Georgia, 31–42. 72 [21] Raymond, G. M., Butterworth E, Bassingthwaighte J. B. (2003). JSIM: Free Software Package for Teaching Physiological Modeling and Research. Experimental Biology 280,102–107 [22] Stodulka, P., Privitzer, P., Kofránek, J., Tribula, M., Vacek, O. (2007): Development of WEB accessible medical educational simulators. In. Proceedings of the 6th EUROSIM Congress on Modeling and Simulation, Vol. 2. Full Papers (CD). (B. Zupanic, R. Karba, S. Blažič Eds.), University of Ljubljana, ISBN 978-3-901608-32-2, MO-3-P4-2, 1–6. 2007. Článek je dostupnýá na adrese http://patf-biokyb. lf1.cuni.cz/wiki/_media/clanky/development_of_web_ accessible_medical_simulators.pdf?id=wiki%3Auser%3Aseznam_publikaci&cache=cache P o d ě ko v á n í Práce na vývoji lékařských simulátorů je podporována grantem MŠMT č.2C06031 a společností BAJT servis s.r.o. Obrázek 1: Grafické schéma rozsáhlého modelu cirkulace A. C. Guytona a spol. z roku 1972, publikovaného v Annual Review of Physiology. Přetištěno s laskavým svolením Annual Review of Physiology. Obrázek 2: Detail Guytonova modelu z roku 1972. Model byl pro běžného čtenáře fyziologických časopisů na první pohled poněkud nepřehledný. Nebyl však jen směsicí čar a symbolů. Reprezentoval matematické vztahy, vyjádřené pomocí propojených symbolů pro funkční závislosti (Funtional block), dělení (Divider), násobení (Multiplier), integrování (Interator), scítání a odčítání (Summator). Tak například propojením tří bloků se dala graficky vyjádřit závislost pulmonárního kapilárního tlaku (PCP) na středním tlaku v levé síni (PLA) a na středním tlaku v pravé síni (PPA) vyjádřená vztahem PCP= 0,55 PLA + 0,45 PPA. MEFANET report 01 Obrázek 3: Guytonův model vyjadřoval zpětnovazebné propojení osmnácti subsystémů, ovlivňujících funkci cirkulačního systému, jako graficky zobracenou soustavu matematických vztahů. Obrázek 4: Spojení internetu, multimediálního prostředí, sloužícího jako zvukové a vizuální uživatelské rozhraní, se simulačními modely umožňuje studentům po připojení do kouzelné internetové pavučiny si názorně "osahat" vykládaný problém ve virtuální realitě. Staré Komenského krédo – "škola hrou" tak dnes nachází své moderní uplatnění. Obrázek 5: Příklad využití rozpojení fyziologických subsystémů z vnějších regulačních smyček v simulátoru GOLEM. Stisknutím tlačítka odpojíme řízení hladiny hormonu aldosteron z regulace. Pootočením knoflíku pak hladinu aldosteronu násilně zvýšíme (A). Po čase vidíme na schématu vylučování draslíku v ledvinách, že draslík se ve zvýšené míře vylučuje močí. Jeho zásoby v plazmě jsou však malé a ledvinné ztráty pak vedou k tomu, že draslík se přesouvá do mimobuněčné tekutiny (a plazmy) z buněk (B). Výstup draslíku z buněk je však provázen vstupem vodíkových iontů do buněk (C), důsledkem je rozvoj extracelulární metabolické acidózy (D). Obrázek 6: Dva typy problémů při tvorbě lékařských simulátorů a e-learningových programů využívajících simulační hry. Obrázek 7: Grafické vyjádření násobiček (Multiplier), děliček (Divider), sumátorů (Summator), integrátorů (Integrator) a funkčních bloků (Functional block) v grafické notaci, navržené A.C.Guytonem (fotografie vlevo dole) a v nástroji pro tvorbu simulačních modelů Simulink od firmy Matworks. Obrázek 8: Oprava chyb v grafickém schématu modelu A.C.Guytona z roku 1972. 73 MEFANET report 01 Obrázek 9: Implementace Guytonova modelu z roku 1972 v moderním nástroji pro tvorbu simulačních modelů Matlab/ Simulink. Obrázek 10: Pravá horní část grafického znázornění Guytonova modelu z roku 1972: Subsystém dodávky kyslíku do „nesvalových tkání“. Obrázek 11: Část modelu A.C. Guytona z roku 1972 v nástroji pro tvorbu simulačních modelů, která odpovídá grafickému znázornění z předchozího obrázku. Implementace subsystému dodávky kyslíku do „nesvalových“ tkání v prostředí Matlab/ Simulink. 74 Obrázek 12: Subsystém dodávky kyslíku do „nesvalových tkání“ vyjádřený jako simulační čip. Zapojení odpovídá stejnému schématu jako na předchozím obrázku, vnitřní struktura počítacích prvků je však skryta uvnitř simulačního čipu. Model je pak „čitelnější“ a srozumitelnější i pro experimentální fyziology. Obrázek 13: Implementace Guytonova modelu z roku 1972 v prostředí Matlab/Simulink, vyjádřená jako propojené simulační čipy. Každý ze simulačních čipů odpovídá jednomu z 18 propojených subsystému. Obrázek 14: Implementace Guytonova modelu z roku 1986 v prostředí Matlab/Simulink ve formě simulačních čipů. Matematické vztahy jsou ukryty v simulačních čipech, propojení simulačních čipů znázorňuje uvažované vazby mezi jednotlivými subsystémy. Zdrojový text programu, včetně podrobného popisu významu všech rovnic je k dispozici na adrese http://physiome. cz/guyton. MEFANET report 01 propojené prvky reprezentují jednotlivé matematické vztahy. Ke každému čipu je dynamicky připojena příslušná dokumentační stránka, která obsahuje věcný popis funkce čipu včetně popisu matematických vztahů, které jsou jejím podkladem. Simulační čipy mohou být ve vývojovém prostředí Simulink soustřeďovány do hierarchicky uspořádaných knihoven (viz obrázek vpravo). Z nich pak lze jednotlivé čipy "vytahovat" pomocí myši (jako z palety nástrojů), umísťovat je do vytvářené aplikace, propojovat je a vytvářet složitější modely. Implementace námi vytvořené knihovny simulačních čipů (obsahujících, mimo jiné i simulační čip „Golem“, je volně stažitelná z adresy http://physiome.cz/simchips. Obrázek 15: Ukázka hierarchického uspořádání simulačního čipu, reprezentujícího simulační model, který je podkladem pro simulátor GOLEM. V prostředí Simulinku je možno snadno otestovat jeho chování – k jednotlivým "vstupním pinům" lze přivést vstupní hodnoty (nebo průběhy hodnot) a od "výstupních pinů" na virtuálních displejích či osciloskopech odečítat výstupy, resp. časové průběhy výstupů. Vpravo je zobrazen „vnitřek" simulačního čipu nejvyšší hierarchické úrovně. Struktura připomíná elektrickou síť s propojenými integrovanými obvody, které v daném případě reprezentují simulační čipy nižší hierarchické úrovně. V následujícím obrázku je znázorněn obsah čipu "Blood Acid Base Balance". Obrázek 16: Simulační čipy mají hierarchické uspořádání. Na obrázku je znázorněn "vnitřek" jednoho ze simulačních čipů z předchozího obrázku. Vzhledem k tomu, že každý jednotlivý simulační čip obsahuje dostatečně podrobnou dokumentaci o svých vstupech a výstupech, může být struktura vztahů uvnitř simulačního čipu (reprezentující fyziologické vztahy v reálném organismu) srozumitelná fyziologům. Na dalším obrázku je zobrazen obsah čipu "BEINV". Obrázek 18: Komunikace systému Control Web s ovladačem řídící/měřící karty při tvorbě průmyslových aplikací. Měřící ústředny či velín průmyslové aplikace, vytvořené v prostředí Control Web komunikuje přes vstupní a výstupní kanály s řadičem měřící/řídící karty, která komunikuje s propojeným technologickým zařízením. Obrázek 19: Začlenění simulačního modelu do ovladače "virtuální karty" při tvorbě simulátoru v prostředí Control Web. Simulátor vytvořený v prostředí Control Web komunikuje přes vstupní a výstupní kanály s řadičem virtuální (v hardwarové podobě neexistující) měřící/řídící karty. V tomto řadiči je „ukryt“ simulační model. Vstupní proměnní jsou simulačnímu modelu „posílány“ přes výstupní kanály aplikace v Control Webu. Výstupy modelu jsou čteny, obdobně jako měřené výstupy technologického zařízení, prostřednictvím vstupních kanálů. Aby nebylo nutno ručně programovat řadič s „ukrytým“ simulačním modelem, vyvinuli jsme speciální nástroj, který automaticky generuje zdrojový text řadiče v jazyce C přímo z modelu, implementovaného v Simulinku. Obrázek 17: Simulační čipy na nejnižší hierarchické rovni jsou tvořeny propojenými základními komponenty vývojového systému Matlab/Simulink (sumátory, násobičkami, integrátory aj.) a případně i simulačními čipy dalších nižších úrovní. Tyto 75 MEFANET report 01 Obrázek 20: Kreativní propojení nástrojů a aplikací pro tvorbu simulátorů a výukových programů využívajících simulační hry. Základem e-learningového programu kvalitní scénář, vytvořený zkušeným pedagogem. Tvorba animovaných obrázků je odpovědnost výtvarníků, kteří vytvářejí interaktivní animacev prostředí Adobe Flash. Jádrem simulátorů je simulační model, vytvářený v prostředí speciálních vývojových nástrojů, určených pro tvorbu simulačních modelů. V naší laboratoři zde využíváme prostředí Matlab/Simulink od firmy Matworks (a v poslední době i nástroje pro práci se simulačním jazykem Modelica). Vývoj simulátoru je náročná programátorská práce, pro jejíž usnadnění jsme vyvinuli speciální programy, usnadňující automatický převod vytvořeného simulačního modelu z prostředí Matlab/Simulink do prostředí Control Web a Microsoft .NET. Obrázek 23: Tzv. MVC architektura při tvorbě simulátorů. Mezi vrstvu modelu a vrstvu uživatelského rozhraní je vhodné vložit řídící vrstvu, kam jsou směrovány veškeré zprávy a události vznikající ve virtuálních přístrojích uživatelského rozhraní, a kam je zároveň směrována veškerá komunikace s modelem. V této vrstvě se řeší veškerý kontext zobrazovaných dat a příslušné požadavky na komunikaci s modelem. Veškerá logika zobrazování a komunikace je pak soustředěna do jednoho místa, což podstatně ušetří čas při modifikacích uživatelského rozhraní nebo změnách modelu. Obrázek 24: Využití simulačních modelů v internetových e-learingových kurzech. Dispečer simulačních modelů funguje obdobně jako prohlížeč obrázků, jen s tím rozdílem, že místo zobrazení obrázků spustí simulační program. Obrázek 21: Příklad simulátoru vytvořeného v prostředí ControlWeb. Výstupy modelu jsou zobrazovány na ručkových měřících přístrojích a zároveň ovlivňují i tvar animovaného obrázku ledvinného glomerulu (velikost, tloušťku šipek a číselnou hodnotu aj.), vytvořeného pomocí programu Adobe Flash. Obrázek 25: Ilustrativní ukázka doprovodného simulátoru ve výukovém programu patofyziologie cirkulace. Obrázek 22: Příklad simulátoru vytvořeného v prostředí Microsoft Visual Studio .NET. Výstupy modelu přenosu krevních plynů jsou zobrazovány v číselné podobě i pomocí sloupcových diagramů. Zároveň model ovlivňuje i tvar animovaného obrázku schematicky znázorňujícího distribuci ventilace a perfúze v plicích, který byl vytvořen pomocí programu Adobe Flash. 76 MEDSOFT 2008 Jiří Kofránek, Jan Rusz, Stanislav Matoušek: Vzkříšení guytonova diagramu - od obrázku k simulačnímu modelu. In MEDSOFT 2008. (Editor: Milena Ziethamlová) Praha: Agentura Action M, Praha 2008, s. 37-56. ISBN 978-8086742-22-9 Vzkříšení Guytonova diagramu – od obrázku k simulačnímu modelu 57 VZKŘÍŠENÍ GUYTONOVA DIAGRAMU - OD OBRÁZKU K SIMULAČNÍMU MODELU Jiří Kofránek, Jan Rusz, Stanislav Matoušek Anotace Autoři popisují implementaci klasického mnohokrát přetiskovaného Guytonova diagramu řízení krevního oběhu v prostředí Simulink. Upozorňují, že v obrázkovém diagramu jsou chyby, které bylo nutné při implementaci opravit. Autoři zachovali stejný vzhled simulinkového modelu jako v původním grafickém schématu – rozložení, rozmístění vodičů, názvy veličin i čísla bloků jsou stejné. Autoři závěrem konstatují, že sebesložitější simulační modely jsou pouze teoretickým podkladem pro výukové simulátory určené pro výuku lékařů. Klíčová slova Guytonův diagram, simulační modely, Simulink, výukové simulátory 1. Úvod Před šestatřiceti lety vyšel v časopise Annual Review of Physiology článek [1], který se svou podobou již na první pohled naprosto vymykal navyklé podobě fyziologických článků té doby. Byl uveden rozsáhlým schématem na vlepené příloze (obr. 1). Schéma plné čar a propojených prvků na první pohled vzdáleně připomínalo nákres nějakého elektrotechnického zařízení. Místo elektronek či jiných elektrotechnických součástek však zde byly zobrazeny propojené výpočetní bloky (násobičky, děličky, sumátory, integrátory, funkční bloky), které symbolizovaly matematické operace prováděné s fyziologickými veličinami. Svazky propojovacích vodičů mezi bloky na první pohled vyjadřovaly složité zpětnovazebné propojení fyziologických veličin. Bloky byly seskupeny do osmnácti skupin, které představovaly jednotlivé propojené fyziologické subsystémy. 2. Pavučina fyziologických regulací Vlastní článek tímto, tehdy naprosto novým, způsobem pomocí matematického modelu popisoval fyziologické regulace cirkulačního systému a jeho širší fyziologické souvislosti a návaznosti na ostatní subsystémy organismu – ledviny, regulaci objemové a elektrolytové rovnováhy aj. Místo vypisování soustavy matematických rovnic se v článku využívalo grafické znázornění matematických vztahů. Tato 58 J. Kofránek, J. Rusz. S. Matoušek Obr. 1. Guytonův diagram regulace krevního oběhu syntaxe umožnila graficky zobrazit souvislosti mezi jednotlivými fyziologickými veličinami ve formě propojených bloků reprezentujících matematické operace. Vlastní popis modelu byl pouze ve formě základního (ale přesto plně ilustrativního) obrázku. Komentáře a zdůvodnění formulací matematických vztahů byly velmi stručné. Např. „bloky 266 až 270 počítají vliv buněčného PO2, autonomní stimulace a bazální rychlosti spotřeby kyslíku tkáněmi na skutečnou rychlost spotřeby kyslíku v tkáních“. Od čtenáře to vyžadovalo nadmíru velké soustředění (i jisté fyziologické a matematické znalosti) pro pochopení smyslu formalizovaných vztahů mezi fyziologickými veličinami. O rok později, v roce 1973, vyšla monografie [2], kde byla řada použitých přístupů vysvětlena poněkud podrobněji. Guytonův model byl určitým mezníkem – byl prvním rozsáhlým matematickým popisem fyziologických funkcí propojených subsystémů organismu a odstartoval oblast fyziologického výzkumu, která je dnes někdy popisována jako integrativní fyziologie. 3. Šém pro Guytonův diagram Guytonův model i jeho další modifikace byly původně implementovány ve Fortranu a později v jazyce C++. Dnes jsou pro Vzkříšení Guytonova diagramu – od obrázku k simulačnímu modelu 59 vývoj, ladění a verifikaci simulačních modelů k dispozici specializovaná softwarová simulační prostředí. Jedním z nich je např. vývojové prostředí Matlab/Simulink od firmy Mathworks, které umožňuje postupně sestavovat simulační model z jednotlivých komponent – jakýchsi softwarových simulačních součástek, které se pomocí počítačové myši mezi sebou propojují do simulačních sítí. Simulinkové počítací prvky jsou velmi podobné prvkům, které pro formalizované vyjádření fyziologických vztahů použil Guyton. Rozdíl je jen v jejich grafickém tvaru. Tato podobnost nás inspirovala k tomu, abychom prostřednictvím Simulinku vzkřísili starý klasický Guytonův diagram a převedli ho do podoby funkčního simulačního modelu. V simulinkové implementaci modelu jsme využili i přepínače, kterými můžeme odpojovat nebo zapojovat jednotlivé subsystémy a regulační smyčky i za běhu modelu. Vnější vzhled simulinkového modelu jsme se snažili zachovat zcela stejný jako v původním grafickém schématu – rozložení, rozmístění vodičů, názvy veličin i čísla bloků jsou stejné. 4. Chyby v Guytonově diagramu Simulační vizualizace starého schématu nebyla úplně snadná – v originálním obrázkovém schématu modelu jsou totiž chyby! V nakresleném obrázku to nevadí, pokusíme-li se ho ale oživit v Simulinku, pak model ihned zkolabuje jako celek. Chyb nebylo mnoho – přehozená znaménka, dělička místo násobičky, prohozené propojení mezi bloky, chybějící desetinná tečka u konstanty atd. Stačily však na to, aby model nefungoval. Některé chyby bylo možné vidět na první pohled (i bez znalosti fyziologie) – ze schématu je patrné, že při běhu modelu by hodnota veličin v některých integrátorech (díky špatně zakreslené zpětné vazbě) rychle vystoupala k nekonečnu a model by zkolaboval. Při znalosti fyziologie a systémové analýzy se ovšem na všechny chyby, při troše námahy, dalo přijít (obr. 2). Podrobný popis chyb a jejich oprav je v [5]. Je zajímavé, že Guytonův diagram byl jako složitý obrázek mnohokrát přetiskován do nejrůznějších publikací (v poslední době viz např. [3,8]). Nikdo ale na chyby neupozornil a nedal si práci tyto chyby odstranit. To bylo pochopitelné v době, kdy obrázkové schéma vznikalo. Ještě neexistovaly kreslící programy – obrázek vznikal jako složitý výkres – a ruční překreslování složitého výkresu nebylo snadné. Možné je i to, že sami autoři modelu opravovat chyby ani příliš nechtěli – kdo si dal práci s analýzou modelu, obrazové "překlepy" odhalil, kdo by chtěl jen tupě opisovat, měl smůlu. Konec konců, ve své době autoři rozesílali i zdrojové texty programů svého modelu v programovacím jazyce Fortran – takže pokud někdo chtěl pouze testovat chování modelu, nemusel nic 60 J. Kofránek, J. Rusz. S. Matoušek Obr. 2. Nejzávažnější chyby v Guytonově diagramu a jejich oprava programovat (maximálně pouze rutinně převedl program z Fortranu do jiného programovacího jazyka). Námi vytvořená Simulinková realizace (opraveného) Guytonova modelu (obr. 3) je zájemcům k dispozici ke stažení na adrese www.physiome.cz/guyton. Na této adrese je i naše Simulinková realizace mnohem složitější verze modelu Guytona a spol. z pozdějších let. Zároveň je zde i velmi podrobný popis všech použitých matematických vztahů se zdůvodněním. 5. Od simulační pavučiny k simulátorům Spletitá pavučina počítacích bloků Guytonova modelu, implementovaná v prostředí Simulinku, působí sice svou složitostí na první pohled impozantně, pro využití ve výuce fyziologie na lékařských fakultách je ale nevhodná. Model implementovaný ve vývojovém prostředí pro simulace je možnou výukovou aplikací pro studenty bioinženýrství, nikoli však pro mediky a lékaře. Ti preferují simulátory vyjádřené spíše jako interaktivní animované obrázky fyziologického atlasu provázené grafy, schématy a vysvětlujícími texty. Vzkříšení Guytonova diagramu – od obrázku k simulačnímu modelu 61 NON-MUSCLE OXYGEN DELIVERY MUSCLE BLOOD FLOW CONTROL AND PO2 260 02M OSV 168 269 xo 227 237 239 5 PK1 258 PK3 RDO 238 u^3 198.7 263 BFM 5 225 DOB x 1 o s 200 P4O 235 Xo P2O upper limit 8 224 271 POT^3 1 s 7.983 POT 60 P3O 242 PVO BFN 223 1 u^3 P3O^3 233 250 244 OVA POM 200 QO2 0.00333 8.0001 234 40 P1O 1 RMO 57.14 lower limit .005 251 248 1 272 upper limit 8 232 OSA 255 HM xo 271 POE 1 241 2400 u^3 252 AOM DVS 5 265 0.08 PM5 8 VPF POT 249 PMO 0.5 2.859 PDO 243 122 2.8 8 1 253 247 1 8 MO2 8.0001 1 0.25 -1 P2O 2400 256 264 1 PM4 1 s x o 0.7 231 OVA P40^3 266 236 QOM 257 40 2688 lower limit 50 0.15 246 5 OVA 512 267 AMM 1 s x o u^2 PM1^2 2500 230 40 POV 254 02A 226 262 POT AU 1 lower limit .001 229 RMO 245 PMO 800 5 268 PM3 240 PK2 259 0.7 POV 270 228 BFM 1 261 AOM 1 1 s 57.14 512 EXC HM 40 1 0.0125 PVO 40 8 0.9999 1 NON-MUSCLE OXYGEN DELIVERY VASCULAR STRESS RELAXATION MUSCLE BLOOD FLOW CONTROL AND PO2 260 OSV 168 1 1 s 57.14 02M PK3 RDO 230 198.7 BFM lower limit 50 u^3 263 5 OVA P40^3 225 DOB 1 s 2400 xo 235 271 POT^3 HM xo 271 1 s POT GF3 197 1 223 0.5 250 244 AAR PDO EXC 213 207 CNY NOD CNA 142 0.3333 CN8 139 0.001 0.025 2.5 1.2 177 PRA 0 CNX 178 179 AHM 1 1.2 AOM 1 s CNE 10 0.0007 2 181 REK 28 1 0.9864 AHY 180 AHZ AH7 100 AUM 0.9999 184 lower limit 3 CNR RBF RBF RFN AMM 0.14 AH 222 214 1.2 RFN 1 1 s 158A 183 182 176 1 lower limit 0 lower limit 0.35 PVO AHC 185 0.0785 AH1 187 10u CNZ 175 0.1024 201 1 40 1 40 6 AH2 NOD 6 AM AHM 1.2 ARF 195 0.3 249 512 HM 0.0125 186 AH4 6 AHM upper limit 15.0 lower limit 0.4 RFN 1.5 0.08 243 122 8 189 AHM 0.9996 0.1 215 221 POM PM5 188 1 220 216 1 GP3 1 PMO 0.5 VPF AM 211 APD 202 196 200 2.859 8 210 1 1 u^3 P3O^3 233 2.8 8 POT GF4 GF3 1 s xo VIM OVA QO2 0.00333 VVE P3O 242 PVO BFN 203 algebraic loop breaking VIM 0.01028 1 272 upper limit 8 VV7 VV1 62 0.301 60 234 255 0.009 5 31.67 VV7 61 40 P1O 63 VV2 lower limit .005 251 248 0 TVD 0.0009964 219 217 1 8.0001 57.14 TVD lower limit 0 0.01 209 PPC 51.66 1000 191 190 AHM GLP VV6 1 7.983 241 AAR 198 18 POE P2O upper limit 8 RMO 232 OSA 1 4 Z11 Z10 1 212 1 224 u^3 AAR 0 1 8 Xo DVS 2400 194 STH 8.25 1 TRR 0.8 33 AOM P2O 0.7 231 200 5 265 193 192 POT STH 0.001022 0.00781 SRK 252 VUD 0.001 PFL EVR VV7 247 MO2 8.0001 1 253 8 VUD lower limit 0.0003 199 -1 218 GFR 208 0.25 256 264 P4O 266 206 0.125 1 s PM4 1 s xo 512 267 236 QOM 238 THIRST AND DRINKING GFN 205 200 65 64 5 257 40 KIDNEY DYNAMICS AND EXCRETION RR 1 246 OVA 2688 1 u^2 PM1^2 2500 40 POV AMM 1 s xo 0.15 226 262 254 02A 237 239 PK1 258 POT AU 1 lower limit .001 229 5 RMO 245 PMO 800 227 5 268 PM3 240 PK2 259 0.7 POV 270 228 BFM 1 xo 261 AOM 269 AOM 0.9864 AMM PPC AM 1 1 AU AH8 1 lower_limit_0 1 NON-MUSCLE LOCAL BLOOD FLOW CONTROL 40 POV POB 276 277 278 POD 274 275 273 ARM 1 s xo AK1 1 POK lower limit 0.2 1 40 1 s xo VIM A2K 1 lower limit 0.5 30.5 1 AR2 AUM PAM RAR 0.1 1.2 1 POC 283 286 100 284b 0.495 A3K 0.3 1 if (POD<0) {POJ=PODx3.3} 1 PA VAE VAS VVR 6 1 s BFN PGS VV8 VVS 0.3 QVO VVS lower limit 0.0001 VVE 0.0825 QVO 0.4 PPC 73 0.001879 VTC 75 152 CPK 0.001 VVS PA2 LVM 0 1 0 P2O 293 295 8 296 297 PLA -4 PP1 QLN = f(PLA) u^3 AUK 304 0 50 RVM = f(PP2) RPT Z8 309 AUB calculation 0 PLA 23 6 RPT QPO QRO 20 21 22 PGL AU8 xo 1 AUJ xo 314 AUL 312 AUV 0.9993 VID CKI GP2 PIF 84 313 PTS VIF 12 GPD VVR 2.95 319 0.9998 PPA 150 0.4667 0.55 0.9994 xo 12 151 0.9997 138 VIE 0.375 PPD 32 327 0.0003 152 HMD AU 0.5 PFI 2-(0.15/u) 0.0125 142 xo 1 347 0.1 xo 1 96 V2D 352 HPR VPF PPI = 2 - (0.15/VPF) 93 94 PGC PGR 0.01252 333 CNA 118 NED 0.25 119 xo 2130 0.1 1 s NAE CNA 142.1 142 NID 334 344 1 349 HMD VRC 2 1 xo 1 s 1 HPL 1 xo 1 s HPR 1 STH PGH 0.1 1 VG 1 RKC VRC 117 99 PGP PTC 5 RC2 CHY^2 116 upper limit 1 HMD 100 VPF REK u^2 PG2 95 PIF 57600 348 40 -1.154e-008 1 s 0.00042 NOD 1 s 0.4 VB DFP 0 124 CKE 125 126 KOD 1 57600 343 40 0.0000058 DFP PLF 1 5 123 98 342 HM 335 PPI 141 1 HEART RATE AND STROKE VOLUME KE 120 HM 143 1 s xo 75 0.013332 DHM 336b 2 2 VRC 1 KID 11.4 VGD 100 u^0.625 PP3^0.1 HPL xo 11 0.00014 KED 0.0028 (u/12)^2 0.0025 351 1 s 140 5 HMK 90 RCD 144 0.0003 PTT = (VTS/12)^2 6 PP3 346 u^0.625 PA4^0.625 336 PPO CPF 0 40 140 AM 122 121 97 332 2 PRA 321 324 325 2850 KE1 127 CKE 5 xo 350 345 PTT PLF PLF 145 PPI 322 323 HR POT 15 1 340 PPA4 341 KIR KIE KCD 0.013 KCD HM2 RC1 331 POS 139 SVO 100 1 0.5333 POS PPC QLO 337 3550 1 464e-7 PPD 0 VIC 1 s 128 129 GPR 1 s 85 330 -9.648e-008 148 PPN PCP 130 113 101 VTS PPA HSR POY 147 AVE 11.98 PA HSL xo AVE AUTONOMIC CONTROL 8 15 100 1.5 lower limit 0.2375 xo VG VG 0.000225 1 10 86 VTS 338 0.333 0.4 xo 25 PTS = f(VIF) VIM 339 1 VPF 1 s 135 VID 1 s 88 0 0.999 VIM POT 329 PO2 PPR 149 137 AUM 0 134 1 s 112 8.25 146 15 PPC 320 PO1 CPN CPP 28 136 AUH 1 1 0.01 131 171 xo 0 8 70 2.949 AUH 0.5 0 VVR 0.7 AUY CCD CNA KI -6.3 1 s PLA AUD 315 1 318 133 132 111 VIC VID VV9 0.3 1 8.154e-006 110 0.0005 87 20 3.159 AU 0.15 326 1 s VTL 83 VTD 0.85 0.07026 xo 12 GPD 0 CIRCULATORY DYNAMICS 1 0 0.21 AU9 328 VIF DPL 0.1 IFP AUJ^AUZ 316 1 SVO 14 103 DPI VPA 0.0048 VTC 1 s uv AUN calculation AUM 0.005 PRA 0.09477 0.38 0.30625 15 GP1 0.002 311 AU 1 104 102 PRA 1 s VPA VPE PPA AUZ 1 310 AUN AUN 15 18 19 15.18 170 xo ALDOSTERONE CONTROL DPC 0.04 VRA QRN = f(PRA) QPO PPA xo 0.25 lower limit 4 20 -4 PTT 20 PIF PR1 0 109 CPI -6.334 AUH 1 1 s 1 s AMC lower limit 6 9 1 s VRA 169 60 KN1 CNA 0.04 PRA QRN PPA AUB PTC xo 51 AUH 0.026 308 AMR 200 166 165 CKE 5 142 105 AMT AMP = f(PA) 0.00352 7.8 CPI 0.1 13 1 0 106 PIF 20.18 108 DPL 5 DRA 15 0 PLD 0.004 lower limit 5 0.002 PTC 0 PP2 AUN CALCULATION when PA1<50: AUN=6 when 20>PA1<50: AUN=0.2*(50-PA1) when PA1>=50: AUC=0 317 107 VTL 5.045 12 QRO 16 52 PL1 AU2 0.0005 305 when PA1<40: AUB=1.85718 AUB when 40>PA1<170: AUB=0.014286*(170-PA1) when PA1>=170: AUB=0 0.0357 20 57 PLA DAU AUB^3 171 -0.017 168 AM1 DPL VTL HMD HMD RVM lower limit 0 0.4 DLA 24 0.03791 0.001879 HPR 1.4 55 1 RPV AUB CALCULATION PA1 QVO 1 1 56 307 1 303 AU6 301 AM2 AM3 AMP HSR 50 20 xo 302 A1B 19.8 167 PA 100 AUH 48 RPA 1 s VLA 11 49 sqrt QLO 1 AUC 172 AM5 10u 1 RVM 53 VLA AUC AUC calculation PA1 54 0 AUC CALCULATION CPA QLN 25 173 174 AM 1 ANM 164 4 26 EXC when PA1<40: AUC=1.2 when 40>PA1<80: AUC=0.03*(80-PA1) when PA1>=80: AUC=0 15 1 0.4 Z12 PA1 AM 1 RVG 2.738 VLE 0.1 1.24 PA1 20.039 0.9984 QRF 47 28 8 POQ 3 EXE VP PR1 PVS 0.6 QLN 44 27 298 3.002 VTL 0.002 10 QLO 260 LVM = f(PA2) 0 100 294 ANGIOTENSIN CONTROL DPC PVS 45 46 0.01453 PLA 0.03824 20 3 0 8 upper limit 8 PA lower limit 4 15 ANT VP 1 s VRA PLA POT POQ xo 3 DFP DPC 0.04 71 VPD VUD 5 VPA HMD HPL QLO 5.07 QLO 291 8 70 0.001 VB VLA 58 QLN 0.1 CPI TVD 292 ANM 1.6283e-007 60 VAS PA 1.4 1 LVM QAO 158 AN1 74 PVS 59 HSL 29 5 30 157 156 155 CNE CP1 PC^3 VAS3 DAS 1 10 154 CNA 142 1 s xo (1.2/RFN)^3 10 CPP 74 ANC (1.2/u)^3 69.76 u^3 3.7 159 RFN 1.2 CNE 0.002 CV 0.042 153a 16.79 PTC AN2 10u 153b 28 5 160 161 AN3 4.0 REK VTC PVS 3.3 lower limit 0.7 210 CPP 9 xo 3.25 2.8 100 3.774 8 AN5 1.004 xo PPC 69 0.007 -6.3 2.95 DVS 7 xo 0.85 AR3 1 s xo 1 s POZ 289 1 32 lower limit 0.3 5 VBD 2 RSN 33 0.33 11520 288 CFC PIF PVS 162 163 1 ANM ANM 1 s VP 72 VP 0 QAO 2.859 0.00355 31 PRP 2 VV7 0.3216 BFN 0.04 61 CPP 62 4 PA POJ VVE RBF 80 70 68 VRC BFM 100 16.79 VB RVS DPP 0.00047 PC 5.002 2.781 34 DPL DLP LPK CPR VB 5 17 284 287 PC 17 1.011 AUM DP0 78 77 85 17 PC 0.007 0 67 PVS 3.7 79 PPD PVG BFN 2.8 39 41 CN2 17 PAM AUM 66 1.6379 0 0.2 0.0212 RV1 2.9 BFM PGS RAR 1 PON 20 RV1 43 1 3 37 ANTIDIURECTIC HORMONE CONTROL RVS 1 s xo CN7 1.79 RVS RSM AUM RAM VIM CAPILLARY MEMBRANE DYNAMICS 2.9 41A 38 AMM VIM RAM 96.3 35 ANU 1.6 ARM AR3 AR1 36 ANU 1 279 280 42 1 1 290 POA 281 282 285 algebraic loop breaking 40 1 AVE lower limit 0.95 ARM POR 0.06 1 AR1 ANM 1 0.9387 57 HYL PTS 89 90 91 VIC PIF 92 VPF 114 0.0125 115 VEC CHY 39.97 VTW PRM -5.9 3 VP VTW 24.2 12 VTS 0.0125 PULMONARY DYNAMICS AND FLUIDS RED CELLS AND VISCOSITY HEART HYPERTROPHY OR DETERIORATION TISSUE FLUIDS, PRESSURES AND GEL ELECTROLYTES AND CELL WATER Obr. 3. Implementace Guytonova diagramu regulace krevního oběhu v Simulinku Simulační model je proto pouze teoretickým východiskem k výukovému simulátoru. Od simulačního modelu k interaktivnímu výukovému simulátoru je poměrně náročná cesta, kterou mohou usnadnit vhodně zvolené vývojové nástroje a odpovídající technologický postup [4]. Technologiím tvorby simulátorů, trendům budoucího vývoje, našim zkušenostem i záměrům v této oblasti jsou věnovány naše dva další články v tomto sborníku [6, 7]. 62 J. Kofránek, J. Rusz. S. Matoušek 6. Literatura [1] Guyton AC, Coleman TA, and Grander HJ. (1972): Circulation: Overall Regulation. Ann. Rev. Physiol., 41, s. 13-41. [2] Guyton AC, Jones CE and Coleman TA. (1973): Circulatory Physiology: Cardiac Output and Its Regulation. Philadelphia: WB Saunders Company,1973. [3] Hall J.E. (2004): The pioneering use of system analysis to study cardiac output regulation. Am.J.Physiol.Regul.Integr.Comp.Physiol. 287:R1009-R10011,2004,287: s. 1009-1001. [4] Kofránek J, Andrlík M, Kripner T, Stodulka P. (2005): From Art to Industry: Development of Biomedical Simulators. The IPSI BgD Transactions on Advanced Research 2 (Special Issue on the Research with Elements of Multidisciplinary, Interdisciplinary, and Transdisciplinary: The Best Paper Selection for 2005), s.62-67. [5] Kofránek, J, Rusz, J., Matoušek S., (2007): Guytons Diagram Brought to Life - from Graphic Chart to Simulation Model for Teaching Physiology. In Technical Computing Prague 2007. Full paper CD-ROM proceedings. (P. Byron Ed.), Humusoft s.r.o. & Institute of Chemical Technology, Prague, ISBN 978-80-78-658-6, 113, 2007. Článek, včetně zdrojových textů programů je dostupný na adrese http://www.humusoft.cz/akce/matlab07/sbor07.htm#k [6] Kofránek, J., Privitzer P., Stodulka, P. (2008): Technologie a trendy tvorby výukových simulátorů. Ibid. [7] Stodulka, P., Privitzer, P., Kofránek, J. (2008): Jednoduchá simulační hra krok za krokem aneb od představy k hotovému. Ibid. [8] Van Vliet, B.N., Montani J.P. (2005):,Circulation and fluid volume control. In: Integrative Physiology in the Proteomica and Post Genomics Age. Humana Press, 2005, ISBN 918-1-58829-315-2, s. 43-66 Poděkování Práce na vývoji lékařských simulátorů je podporována projektem Národního programu výzkumu č. 2C06031, rozvojovým projektem MŠMT C34/2008 a společností BAJT servis s.r.o. Jiří Kofránek Laboratoř biokybernetiky a počítačové podpory výuky, ÚPF 1. LF UK, Praha U nemocnice 5, 128 53 Praha 2 tel: 777686868 e-mail: [email protected] http://www.physiome.cz MEDSOFT 2008 Jiří Kofránek, Pavol Privitzer, Petr Stodulka: Technologie a trendy tvorby výukových simulátorů. In MEDSOFT 2008. (Editor: Milena Ziethamlová) Praha: Agentura Action M, Praha 2008, str. 37-56. ISBN 978-80-86742-22-9. Technologie a trendy tvorby výukových simulátorů 37 TECHNOLOGIE A TRENDY TVORBY VÝUKOVÝCH SIMULÁTORŮ Jiří Kofránek, Pavol Privitzer, Petr Stodulka Anotace Autoři popisují stávající a budoucí technologii vytváření výukových simulátorů. Zdůrazňují oddělené řešení dvou problémů – tvorbu simulačních modelů a tvorbu vlastních simulátorů, pro něž musí být zvoleny různé nástroje. Budoucnost nástrojů pro tvorbu simulačních modelů vidí v programovacím jazyku Modelica, pro vytváření simulátorů se orientují na platformu .NET. Plánují vytvořit implementaci vývojového prostředí Modelicy v platformě .NET. Prozatím vytvořili pro projekt OpenModelica rozšíření pro konverzi modelu z jazyka Modelica do jazyka C#. Klíčová slova Výukové simulátory, simulační hry, fyziologické modelování, Modelica, .NET 1. Úvod – škola (simulační) hrou Výukové programy se simulačními komponentami nejsou jen multimediální náhradou klasických učebnic. Jsou zcela novou výukovou pomůckou, kde nachází své moderní uplatnění staré krédo Jana Ámose Komenského "Schola Ludus" (škola hrou), které tento evropský pedagog razil již v 17. století. Spojení multimediálního prostředí se simulačními modely studentům umožňuje pomocí experimentů se simulačním modelem názorně prozkoumat vykládaný problém ve virtuální realitě a přináší tak zcela nové možnosti pro vysvětlování složitých problémů. Simulační hry umožňují názorně vysvětlit komplexní vztahy ve fyziologických regulačních systémech a kauzální řetězce v patogenezi nejrůznějších onemocnění. Vývoj efektivních výukových programů kombinujících multimédia se simulačními hrami je ale náročnou a komplikovanou prací, vyžadující týmovou spolupráci řady profesí – zkušených pedagogů vytvářejících základní scénář, tvůrců simulačních modelů, lékařů, výtvarníků a programátorů. Tuto interdisciplinární kolektivní tvorbu zefektivňuje využívání vhodných vývojových nástrojů, které umožňují komponentovou tvorbu, propojení simulačních programů a interaktivních multimédií podle daného scénáře do kompaktního celku. 38 J. Kofránek, P. Privitzer, P. Stodulka Jedním z projektů, kde chceme využít nové možnosti multimédií a simulačních modelů pro výuku, je počítačový Atlas fyziologie a patofyziologie 1. Atlas [7] je koncipovaný jako multimediální výuková pomůcka, která by názornou cestou prostřednictvím Internetu a s využitím simulačních modelů měla pomoci vysvětlit funkci jednotlivých fyziologických systémů, příčiny a projevy jejich poruch. Viz http://physiome.cz/atlas. Atlas je vytvářen jako společné dílo tvůrčího týmu odborníků různých profesí lékařů, programátorů, systémových inženýrů a výtvarníků 2. Projekt atlasu je otevřený – jeho výsledky v českém jazyce na internetu volně zpřístupňujeme všem zájemcům a při jeho vývoji uvítáme spolupráci se všemi, kdo se budou chtít podílet na jeho postupném budování. Ukažme si nyní, co vytváření obdobné interaktivní výukové pomůcky vyžaduje, co je v zákulisí tvorby výukových simulátorů a jaké jsou současné i budoucí možnosti technologií, které tvorbu těchto moderních výukových pomůcek usnadňují. 2. Scénáristé výukových her Obdobně jako sebelepší učebnice zcela nenahradí učitele, tak ho nevytlačí ani seberafinovanější výukový program. A stejně tak jako klíčovým faktorem pro úspěch vysokoškolských učebnic je schopnost jejich autorů názorně a věcně správně vyložit složitou látku, tak pro zdar výukového programu je nejdůležitější jeho kvalitní scénář. Napsat dobrý učební text vysvětlující složité procesy není jednoduché a veškeré pomůcky (multimédia, interaktivní animace, simulační modely apod.) – tedy vše co si lze představit pod donekonečna omílaným slovem e-learning – jsou bez dobrého scénáře vlastního výukového programu či bez zkušeného učitele, který ví, jak složitý simulační model pedagogicky využít, jen pouhou módní ozdobou. Zkušenosti s využitím simulátorů ve výuce ukazují, že sebesložitější simulátor je bez doprovodu jasného scénáře jeho výukového využití jen těžko ovladatelným počítačovým "Frakensteinem". Příkladem z poslední doby může být simulátor "Quantitative Circulatory Physiology" [1] a jeho nástupce, v současné době snad nejsložitější model fyziologických regulací, "Quantitative Physiological Human" 3, který umožňuje vhodným nastavováním cca 750 parametrů simulovat nejrůznější patologické stavy. Autoři simulátoru ho na své univerzitě s úspěchem využívají ve výuce. Pro ty, kdo složitý simulátor dobře neznají, je však sledování stovek proměnných nadmíru obtížné. 1 http://www.physiome.cz/atlas více o technologii výstavby atlasu: http://www.physiome.cz/atlas/info/01/index.htm 3 dá se stáhnout z adresy: http://physiology.umc.edu/themodelingworkshop/ 2 Technologie a trendy tvorby výukových simulátorů 39 Z vlastní zkušenosti víme, že pro autory je mnohem kreativnější zamýšlet se nad vylepšením struktury a funkce vlastního simulátoru, než psaní učebních textů a návodů. Bez jasně popsaného scénáře pedagogického využití rafinovaně složitého simulátoru však úsilí, které tvůrci po léta věnují jeho výstavbě, nepřináší kýžený pedagogický efekt. Pro efektivní využití simulátorů by proto scénáře jejich využití ve výuce neměly být opomíjeny. U složitých simulátorů je z pedagogického hlediska výhodné, když modelovaný objekt můžeme rozdělit na jednotlivé subsystémy a testovat jejich chování odděleně i jako součást vyššího celku. Tím studentům umožníme sledovat dynamiku chování jednotlivých subsystémů při postupných změnách pouze jediného vstupu, zatímco jiné vstupy jsou nastaveny na zvolenou konstantní hodnotu (tzv. princip "ceteris paribus"). Postupně pak můžeme jednotlivé dočasně rozpojené regulační vazby opět zapojovat a studovat jejich vliv na chování organismu při nejrůznějších patologických poruchách a reakcích na příslušnou terapii. Tak například v našem simulátoru Golem [6] můžeme postupně odpojovat a zapojovat jednotlivé regulační smyčky ovlivňující homeostázu vnitřního prostředí a tím postupně testovat význam jednotlivých regulačních okruhů a ozřejmit si tím například souvislosti poruch iontové a acidobazické rovnováhy. Podle našich zkušeností právě tento přístup vede k lepšímu pochopení složitých dynamických jevů v patogenezi nejrůznějších onemocnění a porozumění patofyziologických principů příslušných léčebných zásahů. Ideální je, když jsou simulátory přímo začleněni do multimediálního výukového programu ve formě simulační hry. Příkladem jsou simulační hry ve výše zmiňovaném Atlasu fyziologie a patofyziologie, o nichž jsme referovali na minulých dvou seminářích MEDSOFT. Pro začlenění multimediálních animací do simulačních her a výkladu je podkladem pro tvorbu scénáře nejen (hyper)textová část, ale i jakýsi "storyboard", který, obdobně jako při produkci kresleného filmu, naznačuje výtvarníkům, jaké mají vytvářet animované obrázky. Důležité je i vytvoření grafického manuálu, který sjednotí grafickou podobu celé aplikace. 2. Dva typy problémů – dva druhy nástrojů Při vytváření simulátorů a výukových simulačních her je nutno řešit dva typy problémů: 1. Tvorba simulačního modelu – vlastní teoretická výzkumná práce, jejímž výsledkem je formalizace fyziologických vztahů vyjádřená matematickým modelem. 40 J. Kofránek, P. Privitzer, P. Stodulka 2. Tvorba vlastního multimediálního simulátoru a výukového programu využívajícího simulační hry – vývojová práce, která navazuje na vytvořené (a verifikované) matematické modely. Obr. 1 Dva typy problému při tvorbě výukových simulátorů Tvorba simulačního modelu i tvorba simulátoru spolu navzájem úzce souvisejí (viz obr. 1). Předpokladem pro tvorbu výukového simulátoru je dostatečně dobře verifikovaný model a na druhou stranu využití simulátoru ve výuce přináší nové požadavky na vytvoření nových či modifikaci stávajících simulačních modelů. Každý z těchto problémů má svou specifiku a je proto výhodné pro každou etapu použít zcela odlišné vývojové nástroje. Vytvoření vlastního simulátoru je spíše vývojářskou prací, která vyžaduje skloubit nápady a zkušenosti pedagogů, vytvářejících scénář výukového programu, kreativitu výtvarníků, vytvářejících interaktivní multimediální komponenty a úsilí programátorů, kteří "sešijí" výsledné dílo do konečné podoby. Formalizace fyziologických vztahů a vytváření simulačního modelu není vývojářský, ale (poměrně náročný) výzkumný problém, jehož efektivní řešení vyžaduje použít adekvátní nástroje. Těchto nástrojů je celá řada – od profesionálních firemních nástrojů např. Matlab/Simulink Technologie a trendy tvorby výukových simulátorů 41 od firmy Mathworks, které používáme v naší laboratoři až po nástroje typu open-source, jako např. JSIM [8, 9], vyvíjený na Washington University a používaný pro knihovnu fyziologických modelů v rámci celosvětového projektu Physiome 4, koordinujícího aktivity v oblasti formalizace popisu fyziologických regulací [2,4]. Někdy se nástroje pro tvorbu simulačních modelů zároveň využívají i jako nástroje pro tvorbu výukových simulátorů. To ovšem v konečném důsledku vede k určitému omezení, danému výrazovými prostředky, které má příslušný vývojový nástroj k dispozici. Častější je opačná situace – programování simulačního modelu přímo v prostředí běžného programovacího jazyka na základě struktury modelu známé z literatury. To je obvykle možné u jednodušších modelů. U složitějších simulátorů je tento postup obtížnější, protože struktura rozsáhlých simulačních modelů se ne vždy kompletně zveřejňuje (rovnice modelu ne často stávají technologickým know-how), a vytvářet a ladit rozsáhlejší simulační model pouze v prostředí standardního programovacího jazyka (Java, C, C#...) je zdlouhavé. Jestliže pro tvorbu simulačních modelů a pro vytváření vlastního simulátoru používáme odlišné vývojové nástroje, pak musíme zajistit dostatečně flexibilní přenos výsledků z jednoho vývojového prostředí do druhého. Tak např. modifikujeme-li simulační model v některém nástroji pro tvorbu simulačních modelů, je výhodné zajistit, aby se změny v modelu bez větších potíží mohly rychle promítnout do aktualizace těchto změn ve vlastním simulátoru. U jednodušších modelů je možné změny ručně přeprogramovat. U složitějších modelů je však pracnost a pravděpodobnost zavlečení chyby příliš vysoká. K usnadnění přenosu z jednoho vývojového prostředí do druhého je proto vhodné vytvořit si softwarové pomůcky. V naší laboratoři (obr. 2) jsme při vytváření a verifikaci simulačních modelů sáhli po profesionálních nástrojích firmy Mathworks (Matlab, Simulink a příslušné aplikační knihovny) a v poslední době i po velmi nadějném simulačním jazyku Modelica, pro něž dotváříme i některé vlastní komponenty vývojového prostředí. Při vytváření vlastního simulátoru využíváme standardní vývojová prostředí pro tvorbu a vývoj interaktivní grafiky (např. Adobe Flash), nástroje pro tvorbu softwarových a webových komponent Visual Studio .NET a prostředí pro návrh a programování interaktivní grafiky v jazyce ActionScript, jako je např. Adobe Flex. V minulosti jsme výukové simulátory vyvíjeli také pomocí nástroje pro vytváření průmyslových aplikací Control Web. Pro propojení obou skupin vývojových nástrojů jsme vyvinuli vlastní softwarové nástroje pro automatizaci přenosu simulačních 4 viz http://physiome.org/jsim/ 42 J. Kofránek, P. Privitzer, P. Stodulka Automatické generování modelu jako virtuálního řadiče Model jako virtuální řadič Vývoj simulátoru (programátorská práce) Tvorba simulačního modelu v prostředí Matlab/Simulink Automatické generování modelu jako .NET assembly Řídící vrstva Model jako .NET assembly Tvorba animací (v Adobe Flash) Interaktivní animace Interaktivní animace Vývojové prostředí Control Web Řídící vrstva Vývojové prostředí Microsoft VisualStudio.NET Distribuce simulátorů Tvorba scénářů výukových programů využívajících simulační hry a simulátory Obr. 2 Kreativní propojení nástrojů a aplikací pro tvorbu simulátorů a výukových programů využívajících simulační hry. modelů, vytvořených v prostředí Matlab/Simulink do vývojových prostředí Microsoft Visual Studio .NET a do Control Web [10]. 3. Nové trendy a nové výzvy Zdá se, že pomalu končí doba, kdy vytváření výukových programů bylo otázkou entuziasmu a píle skupin nadšenců. Tvorba moderních biomedicínských výukových aplikací je náročný a komplikovaný projekt, vyžadující týmovou spolupráci řady profesí – zkušených pedagogů vytvářejících základní scénář, tvůrců simulačních modelů, lékařů, výtvarníků a programátorů. Aby tato interdisciplinární kolektivní tvorba byla efektivní, je nutno pro každou etapu tvorby využívat specifické vývojové nástroje s dostatečnou technickou podporou, které umožňují komponentovou tvorbu simulačních modelů, vytváření interaktivních multimédií a jejich závěrečné propojení podle daného scénáře do kompaktního celku a začlenění do výukových multimediálních programů, dostupných prostřednictvím internetu. Technologie a trendy tvorby výukových simulátorů 43 Zároveň se objevují technologie, které propojení simulačních nástrojů, programového prostředí, multimédií a internetu podstatně usnadňují. Byl také učiněn velký pokrok ve vývojových softwarových prostředích, které dnes dávají malému týmu programátorů takové možnosti, které dříve měly pouze větší softwarové firmy. To nás vedlo k určitému přehodnocení našeho dosavadního technologického postupu při tvorbě výukových simulátorů (popsaného na obr. 2). 4. Modelica versus Simulink – dřinu lidem versus dřinu strojům Dlouho jsme pro vývoj simulačních modelů používali výlučně nástroje Matlab/Simulink od firmy Mathworks. Tyto nástroje dnes patří mezi osvědčené průmyslové standardy. V poslední době se nicméně pro modelování systémů stále více začíná používat nový objektově orientovaný programovací jazyk Modelica. Byl původně vyvinut ve Švédsku a nyní je dostupný jak ve verzi open-source (vyvíjené pod záštitou mezinárodní organizace Modelica Association, http://www.modelica.org/), tak i ve dvou komerčních implementacích – od firmy Dynasim AB (prodává se pod názvem Dymola) a od firmy MathCore (prodává se pod názvem MathModelica). Zásadní inovaci, kterou na rozdíl od námi dosud používaného Simulinku Modelica přináší je deklarativní (a tedy akauzální) zápis modelů, kdy jednotlivé části modelu popisujeme přímo jako rovnice a nikoli jako algoritmus řešení těchto rovnic. Rozdíl mezi modelováním v Simulinku a v Modelice si ilustrujme na malém příkladu. Uvažujme jednoduchý model mechaniky plic, který schematicky zobrazuje obr. 3. Plíce si ve velkém zjednodušení představíme jako tři vaky propojené dvěma trubicemi. Plíce jsou připojeny k ventilátoru umělé plicní ventilace, který periodicky vhání tlakem PAO vzduch do plic. P0 je tlak okolní atmosféry. Proud vzduchu Q proudí skrze horní cesty dýchací, jejichž odpor je RC. Z horních cest dýchacích se vzduch prodírá dolními dýchacími cestami do alveolů. Odpor dolních dýchacích cest je RP, tlak v centrálních partiích dýchacích cest (na rozhraní horních a dolníh dýchacích cest) je PAW, tlak v alveolech je PA. Vzduch roztahuje plicní alveoly, jejichž poddajnost je CL (jako celková poddajnost plic). Mezi plícemi a hrudním košem je interpleurální dutina. Tlak v ní je PPL. Při umělé plicní ventilaci, kdy se pod tlakem 44 J. Kofránek, P. Privitzer, P. Stodulka vhání vzduch do plic, se ještě musí roztáhnout hrudník – poddajnost hrudníku je CW. Malá část vzduchu, která se nedostane až do alveolů, pouze roztahuje dýchací cesty – jejich poddajnost je CS (prodýchávání tzv. mrtvého prostoru). PAO RP RC Q QA PAW CL PA CW PPL P0 Q-QA P0 CS Q QA PAW PAO RC Q-QA RP CS PA CL PPL CW P0 Obr. 3 Jednoduchý model plicní mechaniky (hydraulická a elektrická analogie) Nyní si můžeme sestavit rovnice. Podle Ohmova zákona musí platit: PAW − PA = RP QA PAO − PAW = RC Q (1) Vztah mezi poddajností, tlakovým gradientem a objemem (vyjádřeným jako integrál průtoku) vyjadřují rovnice: 1 QA dt CL ∫ 1 PPL − P 0 = QA dt CW ∫ 1 (Q − QA) dt PAW − P 0 = CS ∫ PA − PPL = (2) Technologie a trendy tvorby výukových simulátorů 45 Podle zobecněného Kirchhoffova zákona musí být součet všech tlaků (napětí) podél uzavřené smyčky rovný nule, tj. ve smyčce podél uzlu PAW a podél uzlu PA0 musí platit: ( PAW − PA) + ( PA − PPL) + ( PPL − P0) + ( P0 − PAW ) = 0 ( PAO − PAW ) + ( PAW − P0) + ( PO − PAO ) = 0 Po dosazení z rovnic Ohmova zákona a poddajností dostaneme: 1 1 1 (Q − QA) dt = 0 + QA dt − RP QA + CL CW CS Q RC + 1 (Q − QA) dt + ( P0 − PAO) = 0 CS ∫ ∫ (3) ∫ 4.1 Modelování v Simulinku Mux respm2.mat Mux To File 1/s Integrator Volume vs time Q vs time Pao vs time Pao Q 1 Ventilator QA 1/Rc Sum Sum1 1/s Integrator1 Qs -KPaw Memory du/dt CS dPaw/dt PA 0.5 Rp 1/CL PAW Sum3 1/0.2 Sum2 1/0.2 1/Cw Obr. 4 Implementace modelu v Simulinku podle rovnic (3). 46 J. Kofránek, P. Privitzer, P. Stodulka Stavíme-li model v Simulinku, musíme přesně určit postup výpočtu ze vstupních proměnných na výstupní. Chceme-li počítat reakci toku vzduchu do/z plic (Q) na vstup – tj. na změny tlaku na začátku dýchacích cest (PAO) způsobované aparátem umělé plicní ventilace – bude simulinkový model vypadat jako na obr. 4. Simulinkový model můžeme vyjádřit i jednodušeji. Nejprve z rovnice (3) dostaneme diferenciální rovnici (vstupní proměnná PAO, výstupní Q): d 2 PAO dPAO d 2Q 1 RC dQ 1 1 1 1 Q (4) RC + + + = + + 2 2 RP CT dt RP CS CL CW dt dt CS RP CT dt Při zadání číselných parametrů odporů (v jednotkách cm H2O/L/sec) a poddajností (v jednotkách L/cmH2O) [5]: RC = 1; RP = 0,5; CL = 0,2; CW = 0,2; CS = 0,005 se rovnice (4) zjednoduší: d 2 PAO dPAO d 2 Q dQ 420 620 + = + + 4000 Q dt dt dt 2 dt 2 (5) V Laplaceově transformaci rovnice (5) dostaneme: Q( s) s 2 + 420 s = PAO( s ) s 2 + 620 s + 4000 (6) To umožní simulinkový model zjednodušit (obr. 5): PAO vs time s2 +420s Ventilator PAO s2 +620s+4000 Respiratory Mechanics Mux respm1.mat Mux To File 1/s Integrator Q Volume vs time Q vs time Obr. 5 Implementace modelu v Simulinku s využitím Laplaceovy transformace podle rovnice (6). Technologie a trendy tvorby výukových simulátorů 47 Při změnách hodnot parametrů ale se musí transformační funkce (6) přepočítat a simulinkový model se změní. Nyní model mírně zesložitíme tak, že budeme uvažovat inerci vzduchu v horních dýchacích cestách (obr. 6). RP RC LC Q PAW PAO QA CW CL PA PPL P0 Q-QA P0 CS Q PAW QA RP=0,5 RC=1 LC=0,01 CS=0,005 Q-QA PA CL=0,2 PPL CW=0,2 P0 Obr. 6 Jednoduchý model plicní mechaniky s uvažovánim inerce (hydraulická a elektrická analogie) Nyní navíc uvažujeme inerční element LC=0,01 cm H2O s2 L-1: LC = ∆P dQ dt dQ dt je kde ∆P je tlakový gradient a zrychlení průtoku, neboli: dQ ∆P = LC dt Potom místo soustav rovnic (3) dostaneme: 1 1 dQA 1 (Q − QA) = 0 + + − RP QA dt CS CL CW 2 RC dQ + LC d Q + 1 (Q − QA) + dP0 − dPAO = 0 dt dt 2 CS dt dt (7) (8) 48 J. Kofránek, P. Privitzer, P. Stodulka Místo rovnice (5) dostaneme: d 2 PAO dPAO d 3Q d 2Q dQ + 420 = 0,01 3 + 5,2 2 + 620 + 4000 Q 2 dt dt dt dt dt (9) a v Laplaceově transformaci dostaneme: Q( s ) s 2 + 420s = PAO( s ) 0,01s 3 + 5,2s 2 + 620s + 4000 (10) Simulinkový model se změní (obr. 7): PAO vs time Ventilator PAO s2 +420s 3 0.01s +5.2s2 +620s+4000 Respiratory Mechanics Mux respm1.mat Mux To File 1/s Integrator Q Volume vs time Flow vs time Obr. 7 Implementace modelu v Simulinku s využitím Laplaceovy transformace podle rovnice (10). Díky tomu, že v Simulinku musíme vždy uvažovat směr výpočtu, je vlastní Simulinkové schéma dosti vzdáleno skutečné fyzikální realitě popisovaného systému. I malá změna v modelu, jako je přidání inerčního elementu, nutí k pečlivém propočtu a změně struktury modelu. K zásadní změně modelu dojde i tehdy, pokud bychom místo umělé plicní ventilace uvažovali spontánní dýchání. Vstupem modelu pak nebude tlak PAO vytvářený respirátorem umělé plicní ventilace, ale například poddajnost hrudní stěny CW (cyklickou změnou poddajnosti se dá modelovat funkce dechových svalů). Simulink pracuje s propojenými bloky. V propojkách mezi jednotlivými bloky tečou signály, které přenášejí hodnoty jednotlivých proměnných od výstupu z jednoho bloku ke vstupům do dalších bloků. V blocích dochází ke zpracování vstupních informací na výstupní. Propojení bloků v Simulinku proto odráží spíše postup výpočtu a nikoli strukturu modelované reality. Technologie a trendy tvorby výukových simulátorů 49 4.1 Modelování v Modelice V Modelice je to jinak. Místo bloků Modelica pracuje s propojenými komponenty, které představují instance jednotlivých tříd. Na rozdíl od implementace tříd v jiných objektově orientovaných jazycích (jako jw C#, Java apod.), mají třídy v Modelice navíc zvláštní sekci, v níž se definují rovnice. Rovnice neznamenají přiřazení (tj. uložení výsledku výpočtu přiřazovaného příkazu do dané proměnné), ale definici vztahů mezi proměnnými (tak, jak je v matematice a fyzice zvykem). Komponenty (instance tříd) se mohou v Modelice propojovat prostřednictvím přesně definovaných rozhraní – konektorů. Konektory jsou instance konektorových tříd, v nichž se definují proměnné, používané pro propojení. Propojovat se mohou konektory, patřící ke stejným konektorovým třídám (v nichž se tak mohou propojovat proměnné patřící k ekvivalentním typům). Jinak řečeno – v propojení typ zástrček musí přesně odpovídat typům zásuvek. Důležité je to, že propojením komponent vlastně dochází k propojení soustav rovnic v jednotlivých komponentách mezi sebou. Je-li v konektoru propojených komponent definována stejná proměnná (a nereprezentuje-li tok – viz dále) propojením definujeme, že hodnota této proměnné bude ve všech komponentách stejná. Je-li tato proměnná součástí rovnic v propojených komponentách, propojením zároveň definujeme propojení rovnic, v nichž se tato proměnná vyskytuje. V bodě, kde je propojeno více komponent, musí být hodnoty proměnných propojených přes společný bod stejné (analogicky jako napětí na společné svorce v elektrických obvodech musí odpovídat prvnímu Kirchoffovu zákonu). Ale nejenom to. V konektoru můžeme definovat, že některé propojované proměnné budou reprezentovat tok (flow) – pak to bude znamenat, že hodnoty všech takto označených proměnných budou ve všech komponentách propojených ve stejném bodě nastaveny na takovou hodnotu, aby jejich algebraický součet se rovnal nule (analogicky jako součet proudů na společné svorce v elektrických obvodech musí odpovídat druhému Kirchoffovu zákonu). Je-li takto označená proměnná součástí rovnic v propojených komponentách, přidáváme tak do propojené soustavy rovnic další rovnici, definující požadavek nulovosti algebraického součtu hodnot této proměnné) 50 J. Kofránek, P. Privitzer, P. Stodulka e ∫ e=Rf C q=Ce R p p=Lf q ∫ L f Obr. 8 Vztahy mezi zobecněnými systémovými vlastnostmi • • • • • e znamená zobecněné úsilí (effort) – v mechanice mu odpovídá síla, v elektrických schématech napětí, v hydraulice tlak atd. f je zobecněný tok (flow) – v mechanice mu odpovídá rychlost, v elektrických schématech proud, hydraulice průtok a v termodynamice teplotní tok apod. q je zobecněná akumulace,či výchylka, reprezentuje integrál zobecnělého toku. V mechanice jí např. odpovídá natažení pružiny, v hydraulice objem tekutiny, v elektrických schématech náboj, v termodynamice naakumulované teplo atd. p je zobecněná hybnost (inertance) - integrál zobecnělého úsilí, reprezentující kinetickou energii, v hydraulice představuje změnu rychlosti proudu úměrnou rozdílu tlaků (průtočnou hybnost), v elektrických obvodech potenciál nutný ke změně elektrického proudu (indukce) apod. R, C a L představují konstanty úměrnosti mezi jednotlivými zobecněnými systémovými vlastnostmi. jednotlivými zobecnělými systémovými vlastnostmi. jednotlivými zobecnělými systémovými vlastnostmi. Odpovídá jim např. odpor, kapacitance či hmotnost. Propojením modelicových komponent tedy nedefinujeme postup výpočtu, ale modelovanou realitu. Způsob řešení rovnic pak "necháváme strojům". Zobrazení modelu v Modelice tak více připomíná fyzikální realitu modelovaného světa než propojená bloková schémata v Simulinku. Souvisí to se zobecněnými systémovými vlastnostmi reálného světa (obr. 8) v nichž hrají důležitou roli zobecnělé úsilí (v reálném světě Technologie a trendy tvorby výukových simulátorů 51 mu odpovídá síla, tlak, napětí apod.) a zobecněný tok (jemuž v reálném světě mu odpovídá proud, průtok aj.). Zobrazujeme-li v Modelice realitu propojenými komponenty, pak pro tokové proměnné musí hodnota v bodě propojení odpovídat druhému Kirchhoffovu zákonu (proud se nemůže v propojení akumulovat ani ztrácet) a pro ostatní proměnné musí ve společném propojovacím bodě platit rovnost (podle prvního Kirchhoffova zákona). Modelica obsahuje knihovny nejrůznějších tříd pro modelování elektrických, mechanických a hydraulických objektů reálného světa. Jednoduchý model mechaniky dýchání podle obrázku 3 můžeme v Modelice vyjádřit velmi přímočaře. Zobrazení vztahů odporu, tlakového gradientu a průtoku podle rovnice (1) a vztahů poddajnost, tlaku a průtoku podle rovnice (2) pak v Modelice vypadá takto: Obr. 9 Jednoduchý model plicní mechaniky podle obr. 3 v Modelice Zesložitění modelu přidáním inerčního elementu (dle rovnice 7 a obr. 6 je jednoduché: Obr. 10 Změněný model plicní mechaniky po přidání inerčního prvku 52 J. Kofránek, P. Privitzer, P. Stodulka V daném případě jsme pro rychlé sestavení modelu využily vizuální komponenty elektrických obvodů, nic ale nebrání vytvořit jiný tvar ikon, reprezentujících jednotlivé odporové, kapacitní a inerční elementy v plicích. Zdaleka nejde jen o obrazové ikony. Modelica je objektový jazyk a nic nebrání sestavit speciální třídy, a jejich pomocí např. modelovat toky kyslíku a oxidu uhličitého (s uvažováním vazby kyslíku na hemoglobin, přeměny CO2 na bikarbonát, vlivu acidobazické rovnováhy na přenos krevních plynů apod.). Vytvoření knihovny fyziologických vztahů je jedním z našich budoucích cílů. Plánujeme převést (a dále v Modelice rozšířit) naši simulinkovou knihovnu fyziologických vztahů Physiology Blockset (www.physiome.cz/simchips). Vzhledem k tomu, že ve fyziologických modelech se vyskytuje celá řada vztahů (které v Simulinku vedou na řešení implicitních rovnic) je akauzální popis modelovaných vztahů, používaný v Modelice, velkou výhodou. Akauzální popis mnohem lépe vystihuje podstatu modelované reality a simulační modely jsou mnohem čitelnější, a tedy i méně náchylné k chybám. Pro modelování fyziologických systémů je proto Modelica velice vhodným prostředím. 5 WPF animace - loutky na nitích modelů v .NET Pro vytváření uživatelského rozhraní výukového simulátoru je velmi vhodné simulátor navenek reprezentovat jako pohyblivý obrázek. Animované obrázky mohou být řízeny výstupy implementovaného simulačního modelu a graficky reprezentovat význam číselných hodnot. Např. schematický obrázek cévy se může roztahovat nebo komprimovat, plicní sklípek může hlouběji či mělčeji "dýchat", ručička měřícího přístroje se může pohybovat a průběžně zobrazovat hodnotu výstupní proměnné modelu čtené ze simulačního modelu běžícího na pozadí. Na druhou stranu můžeme přes vizuální prvky (nejrůznější tlačítka, knoflíky, táhla apod.) do simulačního modelu zadávat vstupy. Proto simulační model implementovaný v simulátoru propojujeme s multimediální animací prozatím vytvářenou pomocí Adobe Flash. Jednou z klíčových platforem pro tvorbu simulátorů je prostředí .NET. Do tohoto prostředí vkládáme Flashové animace jako ActiveX komponentu. V nové platformě .NET Framework 3.0 je k dispozici nové grafické prostředí WPF (Windows Presentation Foundation). Při tvorbě uživatelského rozhraní programů nahrazuje Windows Forms a navíc umožňuje vytváření animací plně integrovaných s vlastním programem. Tím padá technologická bariéra mezi .NET a interaktivními animacemi, kterou jsme překlenovali v případě ActiveX komponent s Flashovými animacemi. Technologie a trendy tvorby výukových simulátorů 53 WPF umožňuje těsnější integraci a přesnější řízení animací a vizualizací než ActiveX. Jednou z klíčových vlastností je možnost spouštět aplikace přímo v okně webového prohlížeče. Proto další technologickou inovací je postupný přechod od Flashových animací k animacím vytvářeným v prostředí WPF. To samozřejmě neznamená, že se Flashových animací zcela vzdáváme (ještě dlouho bude řada výtvarníků umět kreslit animace v prostředí Flash a nikoli v prostředí WPF). Pouze si myslíme, že budoucnost (alespoň v prostředí .NET) bude mít WPF, na něž se chceme orientovat. Toto prostředí umí dokonale rozčlenit rozhraní určené pro výtvarníka a rozhraní určené pro programátora – tvůrce aplikace. Logika propojení animace a simulačního modelu v simulátoru bývá poměrně složitá. Proto je vhodné mezi vrstvu vizuálních elementů a vrstvu simulačního modelu vložit řídící vrstvu, která na jednom místě řeší veškerou logiku komunikace uživatelského rozhraní s modelem. V této vrstvě se řeší veškerý kontext zobrazovaných dat a příslušné požadavky na komunikaci s modelem. U složitějších simulátorů tato vrstva mimo jiné řeší nastavování parametrů simulačního modelu v závislosti na zvoleném scénáři (např. při modelování patogenezy různých patologických stavů nebo terapeutických zásahů, při rozpojování a opětovném spojování regulačních smyček Vrstva během vysvětlování jednotlivých uživatelského fyziologických regulací apod.). rozhraní Důležité je, že veškerá logika zobrazování a komunikace je pak soustředěna do jednoho místa, což podstatně ušetří čas při modifikacích uživatelského rozhraní nebo změnách modelu. Řídící Stavový vstupy výstupy vrstva V literatuře se hovoří o tzv. automat pro určení kontextu MVC architektuře výstavby simulátorů (Model – View – Controller). Toto uspořádání je Vrstva modelu nezbytné zejména při složitějších Simulační model modelech a simulátorech, jejichž uživatelské zobrazení je reprezentováno mnoha Obr. 11 MVC architektura při tvorbě virtuálními přístroji na více propojených obrazovkách. simulátorů. Výhody tohoto uspořádání 54 J. Kofránek, P. Privitzer, P. Stodulka zvláště vyniknou při modifikacích jak modelu, tak i uživatelského rozhraní. Při návrhu řídící vrstvy, která propojuje vrstvu simulačního modelu s uživatelským rozhraním, se nám velmi osvědčilo využít propojené stavové automaty (jejichž pomocí je možno zapamatovat si příslušný kontext modelu a kontext uživatelského rozhraní). Vytvořili jsme proto speciální softwarový nástroj, pomocí kterého můžeme propojené stavové automaty vizuálně navrhovat, interaktivně testovat jejich chování a automaticky generovat zdrojový kód programu pro prostředí Microsoft .NET. Tento nástroj umožňuje zefektivnit programování propojení simulačního modelu s vizuálními objekty uživatelského rozhraní ve výukovém simulátoru. 5 Náš cíl: Modelica .NET Základní platformou, na níž se orientujeme při vytváření simulátorů, je platforma .NET a WPF. Prozatímní nevýhodou je to, že nejnovější verze tohoto frameworku je zatím k dispozici pouze pro Windows XP a vyšší. Takto to ale nebude natrvalo. Nastupující platforma MS Silverlight, založená na technologii WPF, přinese plug-in pro internetové prohlížeče a do značné míry zpřístupní tuto technologii i pro jiné operační systémy jako OS Mac či Linux. Pro publikaci simulačních her využijeme schopnost .NET aplikací běžet přímo v okně webového prohlížeče. Výuková aplikace se transparentně nahraje do paměti počítače a spustí se v bezpečném prostředí, tzv. security sandboxu. Pro bezešvou technologii vytváření výukových simulátorů potřebujeme propojit Modelicu a prostředí .NET. Proto jsme se pustili do ambiciózního úkolu: implementovat Modelicu a vytvořit příslušné vývojové prostředí pro tvorbu modelů a simulátorů na platformě .NET. Toto prostředí by mělo umožňovat spolupráci více lidí na tvorbě modelu. Vývojové prostředí by mělo běžet v prohlížeči uživatele, který bude komunikovat se serverem na němž poběží kompilátor jazyka Modelica (OCM - Open Modelica Compiler). Pro projekt OpenModelica jsme zatím vytvořili rozšíření pro konverzi modelicového modelu do jazyka C#, který je dostupný na adrese http://patf-biokyb.lf1.cuni.cz/wiki/modelica.net. Tento nástroj umožňuje převádět model vytvořený v Modelice do podoby třídy napsané v jazyce C#. Tato třída obsahuje soustavu diferenciálních rovnic (reprezentujících model) převedenou do explicitního tvaru vhodného pro řešení pomoci ODE solveru. Technologie a trendy tvorby výukových simulátorů 55 Pro demonstraci jednotlivých kroků naší nové technologie jsme vytvořili jednoduchou výukovou aplikaci, jejíž vytváření popisujeme v samostatném příspěvku ve sborníku této konference [11]. 6 Závěr Zdá se, že pomalu končí doba, kdy vytváření výukových programů bylo otázkou entuziasmu a píle skupin nadšenců. Tvorba moderních biomedicínských výukových aplikací je náročný a komplikovaný projekt, vyžadující týmovou spolupráci řady profesí – zkušených pedagogů vytvářejících základní scénář, tvůrců simulačních modelů, lékařů, výtvarníků a programátorů. Aby tato interdisciplinární kolektivní tvorba byla efektivní, je nutno pro každou etapu tvorby využívat specifické vývojové nástroje, s dostatečnou technickou podporou, které umožňují efektivní tvorbu simulačních modelů, programování výukových simulátorů, kreslení interaktivních multimédií a jejich závěrečné propojení všech komponent podle daného scénáře do kompaktního celku. K ovládnutí těchto nástrojů i vytvoření jejich technologického propojení je zapotřebí věnovat značné úsilí, které se ale nakonec vyplatí. Nové technologie přinášejí pro tvorbu výukových simulátorů nové možnosti i nové výzvy. Jednou z nich je objektový jazyk Modelica, který podle našeho názoru podstatným způsobem usnadní modelování tak složitých a komplexních systémů jakými jsou fyziologické systémy. Druhou výzvou jsou nové možnosti platformy .NET a WPF. Budoucnost (a naše další práce) ukáže, zda a jak se tyto nové možnosti uplatní. 7 Literatura [1] [2] [3] [4] [5] Abram, S. R., Hodnett, B. L., Summers, R. L., Coleman, T. G., Hester R.L. (2007). Quantitative Circulatory Physiology: An Integrative Mathematical Model of Human Physiology for medical education. Advannced Physiology Education, 31 (2), 202 - 210. Bassingthwaighte J. B. (2000). Strategies for the Physiome Project. Annals of Biomedical Engeneering 28, 1043-1058. Fritzon, P. (2004): Principles of object oriented modeling and simulation with modelica 2.1. IEE Press, A. John Willey & Sons Inc. Publication, New York, 2004, ISBN 0-471-47163-1 Hunter P. J., Robins, P., & Noble D. (2002) The IUPS Physiome Project. Pflugers Archive-European Journal of Physiology, 445, s.1– 9 Kho M.C.K. (2000) Physiological control systems,.IEE Press, New York 2000, ISBN 0-7808-3408-6 56 J. Kofránek, P. Privitzer, P. Stodulka [6] Kofránek, J. Anh Vu, L. D., Snášelová, H., Kerekeš, R., & Velan, T (2001): GOLEM – Multimedia simulator for medical education. In Patel, L., Rogers, R., Haux R. (Eds.). MEDINFO 2001, London: IOS Press, 1042-1046. [7] Kofránek, J., Matoušek, S., Andrlík, M., Stodulka, P., Wünsch, Z., Privitzer, P., Hlaváček, J., Ondřej Vacek, O. (2007): Atlas of physiology - internet simulation playground. In. Proceedings of the 6th EUROSIM Congress on Modeling and Simulation, Vol. 2. Full Papers (CD). University of Ljubljana, ISBN 978-3-901608-32-2, MO2-P7-5, 1-9. 2007. [8] Miller, J. A., Nair, R. S., Zhang, Z., Zhao, H. (1997). JSIM: A JAVABased Simulation and Animation Environment, In Proceedings of the 30th Annual Simulation Symposium, Atlanta, Georgia, 31-42. [9] Raymond, G. M., Butterworth E, Bassingthwaighte J. B. (2003). JSIM: Free Software Package for Teaching Physiological Modeling and Research. Experimental Biology 280,102-107 [10] Stodulka, P., Privitzer, P., Kofránek, J., Tribula, M., Vacek, O. (2007): Development of web accessible medical educational simulators. In. Proceedings of the 6th EUROSIM, Vol. 2. Full Papers (CD), MO-3-P4-2, str. 1-6, ISBN 978-3-901608-32-2, University of Ljubljana, 2007. [11] Stodulka, P., Privitzer, P., Kofránek, J. (2008): Jednoduchá simulační hra krok za krokem aneb od představy k hotovému. Ibid. Poděkování Práce na vývoji lékařských simulátorů je podporována projektem Národního programu výzkumu č. 2C06031, rozvojovým projektem MŠMT C34/2008 a společností BAJT servis s.r.o. Jiří Kofránek Laboratoř biokybernetiky a počítačové podpory výuky, Ústav patologické fyziologie 1. LF UK, Praha U nemocnice 5 128 53 Praha 2 tel: 777686868 fax:224912834 e-mail: [email protected] http://www.physiome.cz MEDSOFT 2008 Petr Stodulka, Pavol Privitzer, Jiří Kofránek: Jednoduchá simulační hra krok za krokem aneb Od představy k hotovému. In MEDSOFT 2008. (Editor: Milena Ziethamlová) Praha: Agentura Action M, Praha 2008, s. 149-156. ISBN 978-8086742-22-9 Jednoduchá simulační hra krok za korkem aneb od představy k hotovému 149 JEDNODUCHÁ SIMULAČNÍ HRA KROK ZA KROKEM ANEB OD PŘEDSTAVY K HOTOVÉMU Petr Stodulka, Pavol Privitzer, Jiří Kofránek Anotace Článek popisuje tvorbu interaktivních simulačních her. Ukazujeme postup práce od prvotní myšlenky (scénáře) přes tvorbu fyziologického modelu, návrh uživatelského rozhraní, řídící logiky, propojení do podoby funkční aplikace až k publikaci aplikace na internetu. Sestavíme jednoduchý simulátor resuscitace pacienta pomocí masáže hrudníku a umělého dýchání (první pomoc). Simulátor je založený na jednoduchém fyziologickém modelu krevního oběhu. Uživateli se zobrazuje průběh hry pomocí animací a grafů příslušných fyziologických proměnných. Sledujeme nejnovější trendy na poli modelování a vývoje aplikací. V oblasti modelování se přikláníme k modernímu modelovacímu jazyku Modelica, při tvorbě aplikace využíváme možností platformy .NET Framework 3.5 (C# 3.0, WPF, XBAP). Pro návrh používáme vzor ModelView-ViewModel. K řízení logiky simulace potom využíváme možností stavových automatů. Tato práce navazuje na dlouhodobý výzkum a vývoj v oblasti fyziologického modelování a tvorby výukových simulátorů v naší laboratoři. Klíčová slova Výukové simulátory, simulační hry, fyziologické modelování, Modelica, .NET 1. Úvod Nejprve připomeňme, co míníme simulačními hrami a jaké jsou problémy při jejich tvorbě. O tomto tématu se může čtenář více dočíst např. v [1]. Simulační hra, nebo výukový multimediální simulátor, je aplikace postavená na fyziologickém modelu, která má prezentovat procesy odehrávající se v modelu a umožnit jejich ovlivnění. To vše pokud možno pomocí sofistikovaného, po grafické stránce bohatého, uživatelského rozhraní. Modely, multimedia a programování aplikací jsou 150 P. Stodulka, P. Privitzer, J. Kofránek tři víceméně nesourodé okruhy. Pro každý existují speciální nástroje, ale zajistit jejich vzájemnou integraci je náročné. Náš tradiční přístup bylo vytvořit animace v Adobe Flash, model v Matlab Simulink a jádro simulátoru na platformě .NET v jazyce C#. Flashové animace lze v .NET použít (s omezenými možnostmi) jako ActiveX komponentu. Model jsme konvertovali do použitelné podoby pomocí vlastního převodního nástroje podrobně popsaného v [2]. V tomto článku představujeme technologickou inovaci spočívající v nahrazení Flashových animací technologií WPF a proprietárního Simulinku platformou OpenModelica. WPF (Windows Presentation Foundation) je novinkou ve verzi platformy .NET Framework 3.0, která jednak při tvorbě uživatelského rozhraní programů nahrazuje Windows Forms a jednak umožňuje vytváření animací plně integrovaných s vlastním programem. Odstraněním technologické bariéry mezi .NET a Flash nám WPF umožňuje těsnou integraci a přesnější řízení animací a vizualizací. Důležitým rysem je také možnost spouštět aplikace přímo v okně webového prohlížeče. Jazyk Modelica je moderním modelovacím jazykem, který podporuje objektově-orientovanou hierarchii a modularitu a oproti dříve používanému Simulinku umožňuje deklarativní (tzv. akauzální) zápis modelů. Jeho otevřená implementace OpenModelica nám umožňuje detailně prozkoumat použité algoritmy a také se zapojit do vývoje tohoto nástroje. Tento článek má ukázat uvedené technologie a naše postupy v praxi. Provedeme čtenáře postupem tvorby simulátoru od scénáře přes návrh uživatelského rozhraní, fyziologického modelu a řídícího stavového automatu až po kompletaci samotné aplikace a její zveřejnění na internetu. Zdrojové soubory simulátoru včetně modelu v Modelice je možné získat na stránce http://patf-biokyb.lf1.cuni.cz/wiki/firstaidgame. 2. Architektura Vycházíme z varianty návrhového vzoru Model-View-Controller, která se ve světě WPF aplikací používá častěji a nazývá se Model-ViewViewModel. Podrobný popis této architektury lze najít na webu [3-5]. Model je obdobou datové vrstvy. V našem případě představuje fyziologický model konvertovaný z jazyka Modelica. Třída modelu (Borat) nabízí vstupy a výstupy modelu a metody pro jeho řízení (Reset(), Step(), …). ViewModel představuje vrstvu, která řídí chod aplikace i modelu a zprostředkovává data vizualizační vrstvě ve vhodné podobě. Na návrh a řízení chodu aplikace používáme stavové automaty. Jednoduchá simulační hra krok za korkem aneb od představy k hotovému 151 View je prezentační vrstva, která komunikuje s uživatelem. V optimálním případě jeimplementovaná jako čistý XAML kód a je přímo napojena na ViewModel pomocí událostí, commandů a databindingu. Důsledné rozvrstvení umožňuje souběžnou práci programátora a grafika, který vytváří vizuální stránku aplikace včetně animací. 3.1. Scénář MainWindow PamAndBorat data binding calls 3. Postup práce events View ViewModel PBViewModel Obr. 2 Obrazovka simulační hry input / output calls Cílem hry bude prezentovat statechart nový doporučený poměr třiceti stlačení hrudníku ku dvěma vdechům z úst do úst při resuscitaci pacienta. Tento poměr bude prezentován jednoduchou hrou, kdy klikáním myší Borat Model na hrudník nebo na hlavu pacienta dává záchranář masáž hrudníku nebo umělé dýchání. Správný postup pro Obr. 1 Využití architektury Model-ViewController v simulační hře oživení pacienta: 1. kontrola dechu poslechem 2. třicetkrát masáž hrudníku 3. zaklonění hlavy 4. dvakrát stisk nosu a vdech z úst do úst 5. opakování bodů 2. až 4. dokud je potřeba 152 P. Stodulka, P. Privitzer, J. Kofránek Simulátor kontroluje správný poměr akcí a fyziologický model počítá arteriální tlak pacienta. Podle frekvence stisku hrudníku (obdoba frekvence srdečního tepu) a podle počítaného tlaku je pacient po určité době prohlášen za úspěšně resuscitovaného nebo za mrtvého. V případě, že tlak pacienta je po určitou dobu mimo vyhrazený interval (tepová frekvence je příliš vysoká nebo příliš nízká), je zobrazeno varování a uživateli je připsán trestný bod. Naopak za dokončený resuscitační cyklus je mu trestný bod upsán. Po odepsání všech trestných bodů je hra úspěšně dokončena. Dosažením 10 trestných bodů pacient umírá. Kromě animace záchranáře a pacienta je uživateli zobrazen graf arteriálního krevního tlaku pacienta a číselné údaje o průběhu hry – celkový čas resuscitace, tepová frekvence pacienta apod. 3.2. Model Pro účely tohoto příkladu stačí jednoduchý model, který nahrazuje krevní řečiště elastickou trubicí a krevní tlak počítá pomocí elasticity, rezistence a objemu tohoto kontejneru. Vstupem modelu je příznak tlaku na hruď pacienta c (0 nebo 1), výstupem je tlak p (v mmHg) tekutiny v popsané elastické trubici. p zastupuje v tomto případě arteriální krevní tlak. Druhou proměnnou vystupující z modelu je q, tok tekutiny v ml/s. Tok tekutiny však v simulátoru nepoužíváme. Pro projekt OpenModelica jsme vytvořili rozšíření pro konverzi modelicového modelu do jazyka C#, který je dostupný na adrese: http://patf-biokyb.lf1.cuni.cz/wiki/modelica.net. Popsaný model pomocí tohoto nástroje převedeme do podoby třídy napsané v jazyce C# (třída Borat). Tato třída obsahuje soustavu diferenciálních rovnic reprezentujících model převedených do explicitního tvaru vhodného pro řešení pomoci ODE solveru. Borat dědí z obecné třídy ModelicaModel, která poskytuje základní funkcionalitu modelu jako je řízení běhu, vstupů, výstupů apod. 3.3. Animace WPF je prezentační technologie, která kromě standardních ovládacích prvků uživatelského rozhraní, jako jsou tlačítka apod., umí nativně definovat a zobrazovat animace. Ty jsou zapsány v podobě XAML zdrojových souborů, které lze upravovat ručně nebo pomocí speciálních designerských nástrojů (např. MS Expression Blend). Animované sekvence jsou vyjádřeny pomocí časové osy (třída Storyboard). Ovládáním časové osy potom řídíme zobrazované animace. Jednoduchá simulační hra krok za korkem aneb od představy k hotovému 153 Obr. 3 Simulační model v Simulinku Obr. 4 Simulační model v Modelice Animace v jazyce XAML je možné získat také konverzí Flashových animací pomocí nástroje The Converted [6]. Tímto postupem jsme získali soubor s animací PamAndBorat.xaml. Identifikovali jsme úseky časové osy vyjadřující jednotlivé fáze animace a vložili je podpůrného kódu (viz konstruktor PamAndBorat v souboru PamAndBorat.xaml.cs). Dosáhli jsme tak oddělení implementace animace od vyvolávání jednotlivých sekvencí. 154 P. Stodulka, P. Privitzer, J. Kofránek 3.4. Řízení aplikace Logikou simulátoru myslíme hlídání počtu cyklů, správné pořadí prováděných resuscitačních akcí a následné řízení zobrazovaných animací, nebo reakce na vstupy od uživatele. Tato pravidla lze lehce vyjádřit v grafické podobě pomocí stavových automatů detailně popisovaných v článku [7]. Použitím nástroje Statecharts můžeme navrhovat řídící automaty a generovat kód, který se integruje do ViewModel vrstvy aplikace a zajišťuje její řízení. Domovská stránka projektu Statecharts je http://patf-biokyb.lf1.cuni.cz/wiki/statecharts. Definice řídícího automatu našeho simulátoru je v souboru FirstAidWPFChart.xml. Výstupem po jeho kompilaci je zdrojový soubor FirstAidWPFChart.xml.cs a knihovna FirstAidWPFChart.xml.dll. Tyto dva soubory musí být spolu s knihovnou Statecharts/Runtime.dll připojeny k projektu vytvářené aplikace. Obr. 5 Hierarchický stavový automat využívaný pro řízení aplikace Jednoduchá simulační hra krok za korkem aneb od představy k hotovému 155 3.5. Zveřejnění hotové aplikace Pro publikaci aplikace využijeme schopnost .NET aplikací běžet přímo v okně webového prohlížeče. Aplikace se transparentně nahraje do paměti počítače a spustí se v bezpečném prostředí, tzv. security sandboxu. Spuštění aplikace je z pohledu uživatele rovno návštěvě běžné webové stránky. Před samotným spuštěním aplikace je provedena kontrola přítomnosti frameworku .NET 3.5, případně je uživateli nabídnuta jeho instalace. Technologie běhu aplikace v okně prohlížeče se nazývá XBAP – XAML Browser Application. Pro vytvoření XBAP aplikace je potřeba ve Visual Studiu při výběru typu projektu zvolit šablonu WPF Browser Application. 4. Závěr Ve stručnosti jsme ukázali architekturu simulátorů vyvíjených v naší laboratoři. Na konkrétním jednoduchém příkladu simulační hry pro nácvik základů moderní laické první pomoci jsme prošli jednotlivé kroky potřebné k realizaci výsledné aplikace. Výraznou inovací je použití moderních softwarových nástrojů jak v oblasti modelování, tj. jazyka Modelica, tak i na aplikační úrovni, kde se technologie WPF ukazuje jako robustní platforma pro silně graficky orientované aplikace. Nemalou výhodu použitého postupu vidíme v bezešvém skloubení různých technologií pro návrh simulačních matematických modelů, aplikační logiky, grafické stránky a vlastní implementace výukového simulátoru. Na jednom projektu takto mohou současně spolupracovat modeláři, grafici i programátoři, a to každý ve své vlastní doméně bez ohrožení udržitelnosti integrity zdrojových souborů. To je, jak nám praxe ukazuje, zásadní báze pro realizaci mnohem komplexnějších simulátorů, než je uvedený demonstrační příklad simulační hry první pomoci. Z uživatelského hlediska zatím zůstává omezením dostupnost .NET Frameworku použité verze jenom na platformě Windows XP a vyšší. Mnohé si v tomto směru slibujeme od nové nastupující platformy MS Silverlight, zvláště od očekávané verze 2.0. Je to ve své podstatě plug-in pro internetové prohlížeče, který je založen na technologii WPF, avšak bude dostupný i pro jiné operační systémy jako OS Mac či Linux. Kompletní zdrojové kódy simulační hry první pomoci je možno stáhnout ze stránek http://patf-biokyb.lf1.cuni.cz/wiki/firstaidgame. 156 P. Stodulka, P. Privitzer, J. Kofránek 5. Literatura [1] Stodulka, P., Privitzer, P., Kofránek, J., Tribula, M., Vacek, O. (2007): Development of web accessible medical educational simulators. In. Proceedings of the 6th EUROSIM, Vol. 2. Full Papers (CD), MO-3-P4-2, str. 1-6, ISBN 978-3-901608-32-2, University of Ljubljana, 2007. [2] Stodulka, P., Privitzer, P., Kofránek, J., Mašek, J. (2006): Nové postupy v tvorbě simulátorů – inteligentní propojení Matlab Simulinku s platformou .NET a tvorba stavových automatů řídících výslednou aplikaci.In MEDSOFT 2006, str. 171-176, Agentura Action-M, ISBN 80-86742-12-1, Praha, 2006 [3] http://blogs.msdn.com/johngossman/archive/2005/10/08/478683.aspx [4] http://www.orbifold.net/default/?p=550 [5] http://blog.quantumbitdesigns.com/2008/01/20/wpf-applicationdesign-and-architecture/ [6] The Converted – Swf to Xaml Converter – http://theconverted.ca/ [7] Kofránek, Stodulka (2004): Hierarchické komunikující stavové automaty. Objekty 2004, str. 116-133, VŠB Ostrava, ISBN 80-2480672-X, Ostrava 2004. Poděkování Práce na vývoji lékařských simulátorů je podporována projektem Národního programu výzkumu č. 2C06031, rozvojovým projektem MŠMT C34/2008 a společností BAJT servis s.r.o.. Petr Stodulka Laboratoř biokybernetiky a počítačové potobry výuky, Ústav patologické fyziologie 1. LF UK, Praha U nemocnice 5 128 53 Praha 2 tel: 224965912 fax:224912834 e-mail: [email protected] http://www.physiome.cz OBJEKTY 2008 Marek Mateják, Jiří Kofránek: Modelica vs. blokovo-orientované jazyky matematického modelovania. In OBJEKTY 2008 (Žilina SR): Žilinská Univerzita, 20.-21.11.2008, (editor Jan Janech), vydavatel: Edis, Žilina, str. 79-94. ISBN 97880-8070-923-3. Modelica vs. blokovo-orientované jazyky matematického modelovania Marek Mateják1, Pavol Privitzer1, Jiří Kofránek1 1 Oddelenie biokybernetiky a počítačovej podpory výuky, ÚPF, 1. LF UK, Praha, U nemocnice 5, 128 53 Praha [email protected] Abstrakt. Simulácie f yzikálnych de jov vy stupujú do popredia ni elen v počítačových hrách a virtuálnej realite. Sú neodmysliteľnou súčasťou mnohých pr iemyselných a vedeckých pracovíšť. Podobne je tomu aj v našej Laboratórii bi okybernetiky a počítačovej podpory výuky na Ústave patofyziologie 1. LF U K v Prahe. J edným z našich cieľov je porozumieť, vytvárať a zlučovať rôzne matematické modely fyziologických regulačných systémov v ľudskom tele. Nielen pri samotnom modelovaní, a le hl avne pr i prezentovaní a popise m odelu j e dôl ežité, aby j eho š truktúra a význam čo najlepšie zach ytávala fyzikálnu p odstatu j ednotlivých d ejov. U kazuje s a, že práve objektovo orientovaný prístup zápisu modelu pomocou jazyku Modelica je vhodnou cestou. Jazyk Modelica dokáže zachytiť fyzikálne deje už vo vopred známych anotáciách doteraz často používaných iba ako dokumentačné schémy. Na rozdiel od signálovo orientovaných modelovacích prístupov zápis dovoľuje objektovo a bez nutnosti definovania postupu výpočtu popisovať jednotlivé komponenty modelu, ktoré odpovedajú jednotlivým objektom z reálneho sveta. Zrovnanie rôznych prístupov máme preukázateľné na rôznych modeloch napr. model Hodgkin-Huxleyho akčného membránového potenciálu alebo pri modeli syntézy a vylučovania Atidiuretického hormónu vyňatej z komplexného veľkého modelu T.Colemana. Kľúčové slová: Modelovanie, O bjekty, Simulačné jazyky, M odelica, Fyziologické modelovanie, Fyzikálne modelovanie, Matematické modelovanie, Objektovo orientované modelovanie 1 Úvod Pred tridsiatimišiestimi rokmi vyšiel v časopise Annual Review of Physiology článok [4], k torý s a svojou podobou už na p rvý pohľad vymykal obvyklej podobe fyziologických článkov tej doby. B ol uvedený rozsiahlym s chématom na vlepenej prílohe (obr. 1). Schéma p lná čiar a p repojených p rvkov na p rvý pohľad vzdialene pripomínala nákres n ejakého el ektrotechnického za riadenia. Namiesto elektróniek či iných elektrotechnických s účiastok tu však b oli zobrazené prepojené výpočtové bloky (násobičky, deličky, sumátory, integrátory, funkčné bloky), ktoré symbolizovali matematické o perácie p revádzané s fyziologickými veličinami (obr. 2). Zväzky prepojovacích vodičov medzi b lokmi na p rvý pohľad vyjadrovali zložité spätnoväzobné prepojenia fyziologických veličín. B loky b oli zoskupené do osemnástich skupín, kt oré pr edstavovali jednotlivé p repojené f yziologické subsystémy. 80 Marek Mateják, Pavol Privitzer, Jiří Kofránek 2 Pavučina fyziologických regulácií Vlastný článok, týmto, vtedy celkom n ovým spôsobom pom ocou matematického modelu popi soval f yziologické r egulácie cirkulačného s ystému a j eho ši ršie fyziologické súvislosti a náväznosti na ostatné subsystémy organizmu – napr. obličky, reguláciu objemovej a elektrolytovej rovnováhy atď. Namiesto vypisovania sústavy matematických r ovníc sa v článku v yužívalo g rafické znázornenie m atematických vzťahov. Táto s yntax umožnila graficky zobraziť súvislosti medzi j ednotlivými fyziologickými veličinami vo forme prepojených blokov reprezentujúcich matematické operácie. Vlastný popis modelu bol iba vo forme základného (ale i tak úplne ilustratívneho) obrázku. K omentáre a zd ôvodnenia f ormulácií m atematických vz ťahov boli veľmi stručné. Napr. „bloky 266 až 270 počítajú vplyv bunk ového PO2, a utonómne stimulácie a b azálne r ýchlosti s potreby k yslíka tkanivami na s kutočnú rýchlosť spotreby kyslíka v t kanivách“. Od čitateľa to vyžadovalo nadmieru veľké sústredenie (i isté fyziologické a matematické z nalosti) pre pochopenie zmyslu formalizovaných vzťahov medzi fyziologickými veličinami. O r ok neskôr, v r oku 1973, vy šla monografia [5], k de b ola rada pou žitých prístupov vysvetlená podrobnejšie. G uytonov model bo l určitým medzníkom – bol prvým r ozsiahlym matematickým popi som f yziologických f unkcií pr epojených subsystémov o rganizmu a o dštartoval o blasť fyziologického výskumu, ktorá j e dnes niekedy popisovaná ako integratívna fyziológia. Obr. 1. Rozsiahla schéma fyziologických regulácií obehovej sústavy A. C. Guytona a spolupracovníkov z roku 1972 Modelica vs. blokovo-orientované jazyky matematického modelovania 81 Obr. 2. Detail zo spletitej schémy fyziologických regulácií obehovej sústavy. Vzájomné vzťahy sú zobrazované ako prepojené symboly označujúce násobičky, deličky, sumátory, integrátory a funkčné bloky. Celá schéma tak vyjadruje grafické vyjadrenie sústavy rovníc. 3 Od simulačnej pavučiny k simulačným čipom Guytonov model a jeho ďalšie modifikácie boli pôvodne implementované vo Fortrane a neskôr v jazyku C++. Dnes sú pre vývoj, ladenie a verifikáciu simulačných modelov k dispozícii špecializované softwarové simulačné prostredia. Jedným z nich je napr. vývojové prostredie Matlab/Simulink od firmy Mathworks, ktoré umožňuje postupne zostavovať simulačný model z j ednotlivých k omponentov – akýchsi s oftwarových simulačných súčiastok, ktoré sa pomocou počítačovej myši medzi sebou prepojujú do simulačných sietí. Simulinkové počítacie prvky sú veľmi podobné prvkom, ktoré pre formalizované vyjadrenie fyziologických vzťahov použil Guyton. Rozdiel je len v ich grafickom t vare. Táto podobnosť nás inšpirovala k t omu, aby sme p rostredníctvom Simulinku vz kriesili starý klasický Guytonův diagram v jeho pôv odnej podobe a previedli ho do podoby funkčného simulačného modelu v prostredí Matlab/Simulink. Simulačná vizualizácia starej schémy nebola úplne ľahká – v originálnej o brázkovej schéme modelu sú totiž chyby! V nakreslenom obrázku to nevadí, ak sa ho pokúsime ale oživiť v Simulinku, potom model ihneď skolabuje ako celok. Pri znalosti fyziológie a systémovej a nalýzy sa však na v šetky chyby, p ri tr oche n ámahy dalo prísť. Podrobný popis chýb a ich opráv je v [11]. Je zaujímavé, že Guytonov diagram bol ako zložitý obrázok mnohokrát pretlačovaný do najrôznejších p ublikácií. N ikto ale na chyby neupozornil a nedal si prácu tieto chyby odstrániť. To bolo pochopiteľne v dobe , k edy o brázková s chéma v znikala. E šte n eexistovali k resliace p rogramy – obrázok vznikal ako zložitý výkres – a ručné prekresľovanie zložitého výkresu nebolo jednoduché. Možné je i to, že sami autori modelu opravovať chyby ani príliš nechceli 82 Marek Mateják, Pavol Privitzer, Jiří Kofránek – kto si dal prácu s analýzou modelu, obrazové "preklepy" odhalil, kto by c hcel len tupo opisovať, m al smolu. Ko niec k oncov, vo svojej d obe autori rozosielali a j zdrojové texty programov svojho modelu v programovacom jazyku Fortran – takže pokiaľ niekto chcel iba testovať správanie sa modelu, nemusel nič programovať (maximálne iba r utinne pr eviedol pr ogram z Fortranu do iného p rogramovacieho jazyka). Nami v ytvorená S imulinková r ealizácia (opraveného) G uytonova modelu j e záujemcom k di spozícii k s tiahnutiu na ad rese www.physiome.cz/guyton. Na t ejto adrese j e a j n aša S imulinková r ealizácia zložitejšej verzie modelu G uytona a s pol. z neskorších rokov. Prevedením pôvodného Guytonova modelu do Simulinku získame živý simulačný model. Pre f yziológa skúmajúceho š truktúru modelu a j eho správanie j e model v podobe pr epojenej s iete s imulinkových pr vkov zle zrozumiteľný. Vhodnejšie je jednotlivé s ubsystémy ukryť do komplexných e lementov, kt oré p otom pr edstavujú akési simulačné čipy [10]. Tak napr. ak agregujeme jednotlivé časti simulačnej siete Guytonovho modelu do jednotlivých blokov, reprezentujúcich jednotlivé fyziologické subsystémy s gr aficky v yjadrenými vs tupmi a výstupmi. S ú t o "piny" k ni m sa privádza, al ebo od ni ch sa rozvádza i nformácia k ďalším blokom. Pre užívateľa tak bude funkcia graficky vyjadrenej simulačnej siete omnoho prehľadnejšia. Simulink je jedným z veľmi efektívnych simulačných nástrojov, ktorými (podobne ako na v yššie uvedenej grafickej schéme) umožňuje vytvárať simulačné modely pomocou prepojovania jednotlivých simulačných blokov, reprezentujúcich jednotlivé matematické operácie. O jeho využití pri tvorbe rozsiahlych fyziologických modelov a komponentovej výstavbe vý ukových s imulátorov s me r eferovali na predchádzajúcich ročníkoch konferencie Objekty [8,9]. 4 Blokovo orientované simulačné nástroje Simulink patrí do rodiny tzv. "blokovo orientovaných" simulačných j azykov. T ieto jazyky umožňujú zostavovať počítačové modely z jednotlivých h ierarchicky usporiadaných bl okov, s definovanými vstupmi a výstupmi. T ieto bl oky, reprezentujúce jednotlivé subsystémy modelu potom predstavujú akési "simulačné čipy". Simulačný čip skrýva pred užívateľom štruktúru počítajúcu siete podobne, ako elektronický čip pred užívateľom skrýva prepojenie jednotlivých tranzistorov a ďalších elektronických prvkov. Užívateľa zaujíma iba správanie čipu, a nie j eho vnútorná š truktúra. S právanie simulačného čipu môže užívateľ testovať pomocou sledovania výstupov na p ripojených vi rtuálnych d isplejoch al ebo v irtuálnych osciloskopoch. T o j e veľmi výhodné pre testovanie správania modelu a vyjadrenia vzájomných z ávislostí medzi j ednotlivými p remennými. C elý model môžeme zobraziť ako prepojené simulačné čipy a z tejto štruktúry je potom jasné, ktoré vplyvy a akým spôsobom sa v modeli uvažujú. Zároveň je z hierarchicky usporiadaného blokovo orientovaného popisu jasné, akým spôsobom sa v modeli počítajú hodnoty jednotlivých premenných – tj. a ký je spôsob výpočtu. Modelica vs. blokovo-orientované jazyky matematického modelovania 83 Hierarchické blokovo orientované simulačné nástroje n ašli s voje u platnenie hlavne p ri p opise z ložitých s ystémov, s ktorými sa stretávame vo f yziológii. Formalizovanému popi su f yziologických systémov j e ve novaný medzinárodný projekt P HYSIOME, kt orý j e ná stupcom p rojektu G ENOME. V ýsledkom p rojektu GENOME bol popis ľudského genómu, cieľom p rojektu P HYSIOME j e formalizovaný popis fyziologických funkcií. Metodickým nástrojom sú tu počítačové modely [ 2,7]. V r ámci tohto pr ojektu bol o vy tvorených niekoľko blokovo orientovaných ná strojov, kt oré s lúžia ako referenčné databázy pr e f ormalizovaný popis š truktúry z ložitých fyziologických modelov. P atrí k nim J SIM [ 13], tiež aj jazyk C ellML (http://www.physiome.org/model/doku.php) a (http://www.cellml.org/). Žiaci a nasledovníci pr of. G uytona p ôvodný rozsiahly simulátor cirkulačného systému ( Quantitative C irculatory P hysiology [ 1]) r ozšírili o i ntegrované z apojenie všetkých dôl ežitých fyziologických systémov. P osledným výsledkom j e simulátor Quantitative Human Physiology, ktorý predstavuje v súčasnej dobe najkomplexnejší a najrozsiahlejší m odel f yziologických f unkcií. Model je možno stiahnuť z http://physiology.umc.edu/themodelingworkshop/. P re v yjadrenie zl ožitej š truktúry modelu vytvorili špeciálny blokovo orientovaný simulačný systém QHP. 5 Kauzálny a akauzálny prístup – drinu ľuďom verzus drinu strojom. Blokovo orientované nástroje pr acujú s hierarchicky pr epojenými bl okmi. V prepojeniach medzi jednotlivými blokmi tečú signály, ktoré prenášajú hodnoty jednotlivých premenných od výstupu z jedného bloku k vstupom do ďalších blokov. V bl okoch d ochádza k s pracovaniu vs tupných i nformácií na v ýstupné. Prepojenie blokov preto odráža skôr postup výpočtov a nie štruktúru modelovanej reality. U zložitých systémov sa ale vďaka tomuto prístupu pod štruktúrou výpočtov stráca fyzikálna realita modelovaného systému. Preto sa v poslednej dobe pre modelovanie najmä zložitých systémov začínajú využívať nástroje, v ktorých sa jednotlivé časti modelu popisujú priamo ako rovnice a nie ako algoritmus riešenia týchto rovníc. Hovorí s a t zv. de klaratívnym ( akauzálnym) z ápisom modelov, na rozdiel o d k auzálneho záp isu v b lokovo o rientovaných jazykoch matematického modelovania, kde musíme vyjadriť (kauzálny) popis spôsobu výpočtu jednotlivých premenných modelov. K týmto nástrojom predovšetkým patrí objektovo orientovaný programovací jazyk Modelica [3]. B ol pôv odne vyvinutý vo Švédsku a t eraz je dos tupný ako vo verzii open-source (vyvíjanej pod záštitou medzinárodnej organizácie Modelica Association, http://www.modelica.org/), tak i v dvoch komerčných implementáciách – od f irmy D ynasim AB ( predáva s a pod n ázvom Dymola) a o d f irmy Mat hCore (predáva sa pod názvom MathModelica). Namiesto bl okov M odelica pr acuje s prepojenými ko mponentmi, k toré predstavujú inštancie jednotlivých tried. 84 Marek Mateják, Pavol Privitzer, Jiří Kofránek Na rozdiel od implementácie tried v iných objektovo orientovaných jazykoch (ako jw C #, J ava ap od.), m ajú triedy v Modelice n avyše z vláštnu sekciu, v k torej s a definujú rovnice. Rovnice neznamenajú p riradenie ( tj. u loženie výsledku vý počtu priraďovaného príkazu do danej premennej), ale definíciu vzťahov medzi premennými (tak, ako je v matematike a fyzike zvykom). Komponenty ( inštancie tried) sa môžu v Modelice prepojovať prostredníctvom presne definovaných r ozhraní – konektorov. K onektory s ú i nštancie ko nektorových tried, v ktorých sa definujú premenné, používané pre prepojenie. Prepojovať sa môžu konektory, patriace k rovnakým konektorovým triedam (v ktorých sa tak môžu prepojovať premenné patriace k ekvivalentným t ypom). I nak povedané – prepojený typ zástrčiek musí presne zodpovedať typom zásuviek. Dôležité j e t o, že p repojením k omponent v lastne dochádza k prepojeniu sústav rovníc v jednotlivých komponentoch medzi sebou. Pokiaľ v konektore prepojených komponent de finovaná r ovnaká pr emenná ( a nereprezentuje j u t ok – viď ďalej) prepojením definujeme, že hodnota tejto premennej bude vo všetkých komponentoch rovnaká. Ak je táto premenná súčasťou rovníc v prepojených komponentoch, prepojením zároveň definujeme prepojenie r ovníc, v ktorých s a t áto pr emenná vyskytuje. V bode, kde je prepojených viacej komponentov, musia byť hodnoty premenných prepojených cez spoločný bod rovnaké (analogicky ako napätie na spoločnej svorke v elektrických obvodoch musí zodpovedať prvému Kirchoffovemu zákonu). Ale nielen to. V ko nektore môžeme definovať, že niektoré prepojované premenné budú reprezentovať tok (flow) – potom to bude znamenať, ž e ho dnoty vš etkých t akto označených premenných budú vo všetkých komponentoch prepojených v rovnakom bode nastavené na takú hodnotu, aby ich algebraický súčet sa rovnal nule (analogicky ako súčet prúdov na spoločnej svorke v elektrických obvodoch mu sí zodpovedať druhému Kirchoffovemu zákonu). Ak je takto označená premenná súčasťou rovníc v prepojených komponentoch, pridávame t ak do pr epojenej sústavy rovníc ďalšiu rovnicu, definujúcu požiadavky nulovosti algebraického súčtu hodnôt tejto premennej). Prepojením modelicových komponentov teda nedefinujeme postup výpočtu, ale modelovanú realitu. Spôsob riešenia rovníc tak "nechávame strojom". 6 Zovšeobecnené systémové vlastnosti reálneho sveta Zobrazenie modelu v Modelice tak viacej pripomína fyzikálnu realitu modelovaného sveta, než prepojená bloková schéma v blokovo orientovaných jazykoch ako je napr. Simulink a lebo Q HP. S úvisí to s o zovšeobecnenými systémovými vlastnosťami reálneho sveta (obr. 3) , v k torých hrajú dôl ežitú úl ohu zovšeobecnené úsilia ( v reálnom s vete mu zodpovedá s ila, t lak, napätie a p od.) a zo všeobecnený t ok ( v reálnom svete mu zodpovedá prúd, prietok ai.). Ak zobrazujeme v Modelice realitu prepojenými komponentmi, potom pre tokové premenné musí h odnota v b ode pr epojenia zodpovedať druhému K irchhoffovému Modelica vs. blokovo-orientované jazyky matematického modelovania 85 zákonu (prúd sa nemôže v prepojení akumulovať ani strácať) a pre ostatné premenné musí v spoločnom prepojovacom bode platiť rovnosť (podľa prvého Kirchhoffoveho zákona). Modelica o bsahuje k nižnice najrôznejších t ried p re modelovanie elektrických, mechanických a hydraulických objektov reálneho sveta. e ∫ e=Rf C q=Ce R p p=Lf q ∫ L f Obr. 3 Vzťahy medzi zovšeobecnenými systémovými vlastnosťami • e znamená zo všeobecnené ú silie ( effort) – v m echanike mu zo dpovedá s ila, v • • • • elektrických schémach napätie, v hydraulike tlak atď. f je zo všeobecnený t ok ( flow) – v mechanike mu zodpovedá rýchlosť, v elektrických s chémach pr úd, hy draulike pr ietok a v t ermodynamike t eplotný t ok a pod. q je zovšeobecnená akumulácia, či výchylka, reprezentuje integrál zovšeobecneného toku. V mechanike jej na pr. odpovedá natiahnutie pr užiny, v hy draulike obj em tekutiny, v e lektrických s chémach ná boj, v t ermodynamike na akumulované t eplo atď. p je zovšeobecnená hybnosť (inertancia) - integrál zo všeobecneného ú silia, reprezentujúci k inetickú en ergiu, v h ydraulike pr edstavuje z menu r ýchlosti pr údu úmernú rozdielu tlakov (prietočnú hybnosť), v elektrických obvodoch potenciál nutný k zmene elektrického prúdu (indukcie) apod. R, C a L predstavujú k onštanty ú mernosti m edzi j ednotlivými z ovšeobecnenými systémovými vlastnosťami. Zodpovedá im napr. odpor, kapacitancia či hmotnosť. Rozdiel medzi modelovaním v bl okovo orientovaných simulačných nástrojoch a v Modelice s i i lustrujme na d voch p ríkladoch modelovania f yziologickej r eality: na implementácii k lasického modelu bunkovej m embrány ne urónu podľa HuxleyHuxley [ 6] a na ukážke i mplementácie j edného z o s ubsystémov r ozsiahleho modelu fyziologických regulácií (QHP), ktorý sa týka sekrécie antidiuretického hormónu. 86 Marek Mateják, Pavol Privitzer, Jiří Kofránek 7 Model vzrušivej bunečnej membrány podľa Hodgkina a Huxleyho V roku 1963 z ískali pá ni A lan Lloyd H odgkin a Andrew Huxley N obelovu c enu vo Fyziológii a Medicíne za matematický model akčného membránového potenciálu. Práve ich článok [6] sa stal základom mnohých modelov správania sa membránových potenciálov r ôznych t ypov b uniek. Model primárne vysvetľuje šírenie nervového vzruchu depolarizáciou bunečnej membrány pomocou spojenia dvoch fyzikálnych domén – elektrickej a chemickej. Vďaka štúdii vodivosti membránových kanálikov v závislosti na čase a aktuálnom m embránovom napätí p opisuje vz nik e lektrického prúdu, ktorý vzniká tokom sodíkových a draslíkových iónov skrz membránu. Tento elektrický prúd má potom vplyv na aktuálne membránové napätie. V kľudnom stave je bunka vzhľadom na jej okolie záporne nabitá napr. aj vďaka veľkým záporne nabitým bielkovinám. Tie zostávajú v bunke, pretože nie sú schopné prejsť cez bunečnú membránu. Naopak presun katiónov je dobre kontrolovaný vďaka membránovým kanálikom. Ak sa na malý moment otvoria, tak zväčšenie toku katiónov spôsobí, že prúd v oblasti kanálikov membránu depolarizuje. Dokonca sa na malý moment prejaví aj kladné napätie v tejto oblasti membrány. Kanáliky sa však na to začnú vplyvom zmeny napätia uzatvárať a zabezpečia to, že sa koncentrácie iónov v bunke takmer nezmenia. Táto krátka depolarizácia závisí najmä na katiónoch sodíka a draslíka. Sodík do bunky tlačí ako koncentračný tak aj elektrický gradient. Pri draslíku pôsobia gradienty oproti sebe, prevažuje však gradient elektrický. Po odznení depolarizácie nastáva dôležitá fáza obnovy membránového potenciálu. Práve tento jav má na svedomí to, že sa akčný potenciál šíri len dopredu. Až po krátkom časovom okamihu sa totiž sodíkové kanáliky dostanú do pôvodného stavu. To ako je možné porovnať chemický a koncentračný gradient hovorí N ernstova rovnica. Rozdiely v koncentrácii sa pomocou nej prevádzajú na membránové napätie, ktoré j e p otrebné n a i ch udržanie n a o boch s tranách membrány. T ieto r ozdiely koncentrácií v tomto modeli v ytvárajú ak ési zd roje n apätia p re k onkrétne ióny. Pokiaľ je rozdiel Nernstovho mínus aktuálneho napätia pre katión väčší ako nula, tak je katión tlačený do bunky. O dobíjanie koncentrácií draslíku v bunke a sodíku mimo bunky s a s tará z dlhodobého hľadiska Na-K-APTáza. Jej funkčnosť a zmena koncentrácií sodíka a draslíka je však v tomto modeli zanedbaná. Akumulovanie náboju na membráne je typickým príkladom kondenzátoru, kde je nevodivá bunečná membrána ako médium, ktoré oddeľuje dve nabité plochy. Modelica vs. blokovo-orientované jazyky matematického modelovania 87 Obr. 4. Schéma modelu Hodgkin-Huxley v implementácii pomocou jazyka Modelica v prostredí Dymola Matematický zápis modelu odpovedá elektrickej schéme (obr. 4). Zdrojové kódy je možné stiahnuť z http://patf-biokyb.lf1.cuni.cz/wiki/objekty_2008. Špeciálnymi komponentmi sú však membránové kanáliky pre sodík (resp. draslík). Tie sa správajú ako zd roj n apätia s meniacim sa vnú torným odpor om. J eho k onštantné n apätie j e určené chemickým gradientom sodíku (resp. draslíku), zatiaľ čo ich vnútorný odpor odpovedá stavu otvorenosti kanálikov. Cez draslíkové kanáliky môžu prechádzať iba katióny draslíku a cez sodíkové iba katióny sodíku. Ostatné elektricky nabité atómy, ktoré môžu prechádzať cez membránu sú implementované pomocou konštantného zdroja aj konštantného odporu, ktorý sa v závislosti na čase ani napätí nemení. Ručne je tak nutné v jazyku Modelica definovať iba triedy membránových kanálikov. V šetko o statné s a p repojí vi zuálne. Základné elektrické komponenty j e možné použiť zo štandardnej knižnice. R ovnako ako abstraktnú triedu pre kanáliky definujúcu súčiastku elektrického obvodu s dvomi p inmi. D oplnením e mpiricky potvrdených vzťahov z článku Hodgkina a Hyxleyho [6] tak z ískavame no vý t yp elektrického ko mponentu, ktorá popisuje správanie sa membránových ka nálikov a ko konštantných z drojov s meniacim s a v nútorným odporom. Spustením s imulácie celého obvodu budeného pulzmi elektrického prúdu získavame požadovaný priebeh akčného potenciálu a vodivostí kanálikov počas vzruchu (obr. 5). A nielen to . Je možné nahliadnuť na priebehy všetkých premenných modelu v závislosti n ielen n a čase ale aj inej zvolenej premennej. 88 Marek Mateják, Pavol Privitzer, Jiří Kofránek • • • • Obr. 5. Výstup simulácie modelu Hodgkin-Huxley. Časové jednotky sú v ms. capacitor.v je aktuálne napätie bunečnej membrány v mV k_channels.G je elektrická vodivosť pre draslíkové kanáliky na_channels.G je elektrická vodivosť pre sodíkové kanáliky na_channels.R je elektrický odpor pre sodíkové kanáliky =1/(1000*G) Obr. 6. Model Hodgkin-Huxley [6] je možné implementovať aj pomocou blokovo orientovaného prostredia Matlab/Simulink, ktoré však zostáva zviazané z postupom výpočtu. Modelica vs. blokovo-orientované jazyky matematického modelovania 89 8 Modelovanie vylučovania antidiuretického hormónu Pri vytváraní matematického modelu je vhodné postupovať od veľmi zjednodušeného systému postupne k systému zložitejšiemu, ktorý dostatočne podrobne vystihuje požadované záv islosti. P riebežné s ledovanie simulácií zj ednodušených medzikrokov pomôže skôr odhaliť chyby. Ak v danom kroku neprídu požadované výsledky, tak je ľahké analyzovať iba zmeny z predchádzajúcej v erzie. T áto k apitola ukáže ak o j e možné zostrojiť model syntetizovania a vylučovania antidiuretického hormónu (ADH) postupným pridávaním znalostí podľa modelu QHP T.Collemana [12]. Zdrojové k ódy našej i mplementácie v j azyku M odelica j e možné stiahnuť z http://patf-biokyb.lf1.cuni.cz/wiki/objekty_2008. Ak chceme vytvoriť model syntézy nejakej látky, tak by sme v prvom r ade mali vedieť ako je daná syntéza riadená. V prípade ADH j e r ýchlosť syntézy v centrách neurónov v hypotalame závislá na množstve už nasyntetizovaného hormónu, ktorý sa nestačil z daného miesta vzdialiť. Obr. 7. Riadená syntéza ADH so zjednodušeným odtokom. Krivka vzniku ADH a množstvo ADH v komponentu mass, ktorá predstavuje bezprostredné okolie syntézy je brané z modelu QHP [12]. Koeficient odtoku je dosadený tak, aby v danom okolí zostávalo počas priebehu syntézy dané konštantné množstvo hormónu. Simulácia ukazuje, že tok hormónu z miesta jeho vzniku do výlevky je očakávaných 3.2ng/min. Vytvorené komponenty v jazyku M odelica sú navzájom p repojené p omocou d voch typov konektorov. Jeden je fyzikálny konektor, ktorý určuje správanie sa komponent gradientom koncentrácie a tokom r ozpustenej l átky. T en dr uhý j e n ormalizovaný konektor určujúci správanie komponenty iba podľa množstva látky a jej t oku. V poradí a kom s ú z názornené s ú t riedy komponentov (obr. 7) d efinované a ko: závislosť toku od množstva látky v naviazanom komponente; k umulovanie l átky podľa prítoku a odtoku; odpor určujúci prietok podľa množstva látky a koncentrácie v druhom komponente pomocou konštantných koeficientov; výlevka. Vylučovanie hormónu však neprebieha v mieste jeho vzniku. To má za následok, že množstvo ho rmónu p ripraveného na o kamžité vylučovanie v axóne ne urónu v zadnej hypofýze je iné ako množstvom v mieste jeho vzniku v hornej časti bunky. Do modelu je tak nutné zaviesť ďalšie miesto, cez ktoré hormón preteká. 90 Marek Mateják, Pavol Privitzer, Jiří Kofránek Obr. 8. Doplnenie miesta vylučovania hormónu axónom neurónu tak, aby aj tu množstvo hormónu zostávalo na úrovni určenej v modeli QHP [12]. Koeficient toku do výlevky je teda naďalej určený tokom, ktorý zostane na hodnote 3.2ng/min. V poslednom kroku vytvorenia modelu je nutné vložiť komponent vyjadrujúci rozpustenie ADH v extracelulárnej tekutine. Táto koncentrácia je výstupom modelovanej komponenty vylučovania ADH a zároveň vstupom do iných komponentov, ktoré s týmto v ýznamným ho rmónom s úvisia. Našej konštanty prietoku do výlevky sa zbavíme pomocou zaradenia odbúravania hormónu v rôznych orgánoch. A samozrejme je treba doplniť riadenie vylučovania hormónu z bunky pomocou závislých vplyvov. Tými sú v našom prípade najme receptory na osmotický tlak v tele. Vhodné je taktiež sprístupniť pomocou riadenej pumpy možnosť zásahu z vonku a umožniť tak príjem iného, než vlastného hormónu ADH. Obr. 9. Výstupy simulácie modelu s pravidelným stimulovaním sekrécie s frekvenciou 100 minút. Na prvý pohľad je vidieť, že samotné vylúčenie hormónu z okamžitých zásob je veľmi rýchla záležitosť. Nasleduje jeho zvýšené odbúravanie v pečeni, obličkách a iných tkanivách. No a samotné doplnenie zásob na vylučovanie prebieha v tomto porovnaní pomaly a kontinuálne. • fastMass.from.q je rýchlosť doplňovania zásob k okamžitému vylučovaniu • ECF.from.q je rýchlosť vylučovania hormónu zo sekrečných buniek • Clearance.from.q je rýchlosť odbúravania hormónu v tele Modelica vs. blokovo-orientované jazyky matematického modelovania 91 Obr. 10. Model komponentu ADH z rozsiahleho modelu Quantitative Human Physiology od týmu T. Collemana a spol. z Mississsippi Medical Center [12] implementovaný v jazyku Modelica v prostredí Dymola. Pôvodný m odel [11] je i mplementovaný vo v lastnom xml-jazyku, kt orý kauzálne určuje postup výpočtu podobne ako v iných blokovo orientovaných simulačných prostrediach. Takúto implementáciu je omnoho horšie ladiť, modifikovať alebo nedajbože znovu používať jej komponenty na rozdielnych miestach ko mplexného modelu. Grafický zápis prepojenia závislostí jej parametrov je ekvivalentný prepisu blokov do pr ostredia Matlab-Simulink (obr. 11). Táto implementácia je však veľmi zviazaná s o s pôsobom v ýpočtu narozdiel od modeliky, kde vovnútri ko mponenty možno všeobecne popísať ich rovnice a nielen algoritmus výpočtu. 92 Marek Mateják, Pavol Privitzer, Jiří Kofránek Hlavnou výhodou i mplementácie v jazyku Modelica je to, že väčšina komponent je znova použiteľná na vytvorenie ďalších modelov. Komponenty majú vždy definovaný j ednoduchý fyzikálny význam, ktorý im umožňuje priamo definovať určitý fyzikálny dej aj bez ohľadu na tom, ktoré premenné do neho vstupujú a ktoré z neho vystupujú. Samozrejme, že je vhodné ponechať určitú kauzalitu vstupným premenným, ktoré s a v danom deji nemenia, alebo výstupným premenným, ktoré by sa v ďalších blokoch už modifikovať nemali. Obr. 11. Implementácia komponenty ADH v prostredí Matlab/Simulink generovaná z pôvodných zdrojových kódov v QHP (pre zrovnanie) 9 Záver Nové technológie prinášajú pre tvorbu simulačných modelov nové možnosti aj nové výzvy. J ednou z n ich j e obj ektový j azyk Modelica, ktorý podľa nášho názoru podstatným spôsobom uľahčí modelovanie tak zložitých a komplexných systémov akými sú fyziologické systémy. Vzhľadom k tomu, že vo fyziologických modeloch sa vyskytuje celý rad vzťahov (ktoré v b lokovo o rientovaných j azykoch, napr. v S imulinku, vedú na r iešenie implicitných r ovníc) j e akauzálny popis modelovaných vzťahov, pou žívaný v Modelice, veľkou výhodou. Akauzálny popis oveľa lepšie vystihuje podstatu Modelica vs. blokovo-orientované jazyky matematického modelovania 93 modelovanej reality a simulačné modely sú oveľa čitateľnejšie, a teda i menej náchylné k ch ybám. P re modelovanie fyziologických systémov j e p reto M odelica veľmi vhodným prostredím. Referencie [1] Abram, S.R., Hodnett, B.L., Summers, R.L., Coleman, T.G., Hester R.L.: Quantitative Circulatory Physiology: An Integrative Mathematical Model of Human Physiology for medical education. Advannced Physiology Education, 31 (2), 2007, 202 - 210. [2] Bassingthwaighte J. B. Strategies for the Physiome Project. Annals of Biomedical Engeneering 28, 2000, 1043-1058. [3] Fritzson P. (2003). Principles of Object-Oriented Modeling and Simulation with Modelica 2.1, Wiley-IEEE Press. [4] Guyton A.C, Coleman T.A., and Grander H.J. (1972): Circulation: Overall Regulation. Ann. Rev. Physiol., 41, s. 13-41. [5] Guyton AC, Jones CE and Coleman TA. (1973): Circulatory Physiology: Cardiac Output and Its Regulation. Philadelphia: WB Saunders Company, 1973. [6] Hodgkin, A.L., Huxley A.F.: The components of memebrane conductance in the giant axon of Loligo. Journal of Physiology, 116, 1952, s. 473-496. [7] Hunter P.J., Robins, P., Noble D. (2002) The IUPS Physiome Project. Pflugers Archive-European Journal of Physiology, 445, s.1–9 [8] Kofránek J., Velan T.: Komponenty pro Golema. Využívání Simulinku a Control Webu při tvorbě simulátoru fyziologických funkcí. Objekty 1999, Česká zemědělská univerzita. Praha, 189-204. (elektronická verze sborníku konference: http://objekty.pef.czu.cz/Objekty99/index.html). [9] Kofránek J, Andrlík, M.: Od „umění“ k „průmyslu“ – komponenty pro kreativní propojení vývojových nástrojů při tvorbě výukových programů. Objekty 2002, Česká zemědělská univerzita. Praha, s. 129-142 (elektronická verze sborníku: http://objekty.pef.czu.cz/2002/sbornik/). [10] Kofránek J., Andrlík M., Kripner T, and Mašek J.: From Simulation chips to biomedical simulator. Amborski, K. and Meuth, H. 2002. Darmstadt, SCS Publishing House. Modelling and Simulation 2002 Proc. of 16th European Simulation Multiconference, s. 431-436 (full textová verze: http://patf-biokyb.lf1.cuni.cz/wiki/technical_computing_2007 ) 94 Marek Mateják, Pavol Privitzer, Jiří Kofránek [11] Kofránek, J, Rusz, J., Matoušek S., (2007): Guytons Diagram Brought to Life - from Graphic Chart to Simulation Model for Teaching Physiology. In Technical Computing Prague 2007. Full paper CD-ROM proceedings. (P. Byron Ed.), Humusoft s.r.o., Institute of Chemical Technology, Prague, 2007, ISBN 978-80-78-658-6, s. 1-13, (http://www.humusoft.cz/akce/matlab07/) [12] Quantitative Human Physiology (2008 Edition) Free software for download. (Hester R.L., Coleman T., Summers R., The University of Mississippi Medical Center, Dept. of Physiology and Department of Emergency Medicine) http://physiology.umc.edu/themodelingworkshop [13] Raymond, G. M., Butterworth E, Bassingthwaighte J. B.: JSIM: Free Software Package for Teaching Physiological Modeling and Research. Experimental Biology 280, 2003, s.102-107 Poďakovanie: Práca je podporovaná Grantem MŠMT 2C06031 –"e-Golem" a spoločnosťou Creative Connections s.r.o. Jackson Cardiovascular-Renal Meeting 2008 Jiří Kofránek, Jan Rusz, Marek Mateják: From Guyton's graphic diagram to multimedia simulators for teaching physiology. (Resurection of Guyton's Chart for educational purpose) Proceedings of the Jackson Cardiovascular-Renal Meeting 2008. (Stephanie Lucas Ed), CD ROM Jackson Cardiovascular-Renal Meeting 2008 FROM GUYTON'S GRAPHIC DIAGRAM TO MULTIMEDIA SIMULATORS FOR TEACHING PHYSIOLOGY (RESURRECTION OF GUYTON’S CHART FOR EDUCATIONAL PURPOSE) Jiří Kofránek, Jan Rusz, Marek Matejak st Laboratory of Biocybernetics, Department of Pathophysiology, 1 Faculty of Medicine, Charles University, Summary: Prague, Czech Republic The authors describe an implementation of a classic many ‐times‐copied Guyton's circulatory‐systemcontrol chart in the Simulink environment. They point out that there were mistakes in the original pictographic chart that were necessary to be corrected before the implementation. The appearance of the model has been preserved in the Simulink similar to the Guyton's graphic chart ‐the scheme layout, the wiring placement, the quantity names and the block numbers are the same. The model behaviour demonstrates the pathogenesis of different pathological states truly enough to be used for teaching of physiological regulatory systems in the biomedical‐engineering‐students education, as well as as a theoretical basis for a multimedia simulator, created in the .NET environment and web ‐accessible for medicine students at Charles university in Prague. 1. Introduction: Thirty‐six years ago, an especial article appeared in Annual Review of Physiology, Guyton et al. 1972 [4] that surpassed all the traditional papers on physiology of that time. It was introduced by a large diagram in a tip‐in plate (a detail at Fig. 1). The chart full of lines and interconnected elements reminded of an electrical device at first sight. Instead of the vacuum tubes or other electrical components, coupled computational blocks (multipliers, divisors, summators, integrators, and functions) were displayed here symbolising mathematical operations performed on the physiological quantities. The leader bundles between the blocks expressed complicated feedback bindings. The blocks were clustered into eighteen groups, each one representing a particular interconnected physiological subsystem. Fig. 1: A detail of the large circulatory‐dynamics chart 1 Jackson Cardiovascular-Renal Meeting 2008 2. A web of physiological regulations In this completely new way, the Guyton's paper described physiological circulatory ‐system regulations and wider context of other organism subsystems ‐kidneys, blood volume and ion balance etc. by a mathematical model. Instead of listing sets of equations, graphical illustration of mathematical relations was employed. This syntax enabled the author to depict the dependencies between particular physiological quantities in the form of interconnected blocks representing mathematical operations. The definition of the model consisted only of this basic (yet fully illustrative) figure. Comments and justifying of the mathematical formulation were very brief, e. g., "blocks 266 ‐270 compute the influence of the cellular pO2, the autonomous stimulation and the basal oxygene consumption on the real tissue‐oxygene‐consumption rate". This required a high level of concentration (and even certain physiological and mathematical knowledge) from the reader to understand the meaning of the formalised relations between the physiological quantities. One year later, in 1973, a monograph appeared [5] that explained many of the used approaches more in detail. The Guyton's model was a milestone ‐it was the first large‐scale mathematical description of physiological functions of coupled organism subsystems and launched a brand‐new research area, known as integrative physiology today. The integrative physiology aspires to formalised description of the interconnected physiological regulations, with computer models as the methodical tool. The main activities in this branch are concentrated under the PHYSIOME project (Bassingthwaighte 2000, Hunter et al. 2002) under the auspices of the International Union of Physiological Sciences (www.physiome.org), or the project EUROPHYSIOME for the European Union respectively (www.europhysiome.org). The Guyton's school kept on evolving the model. In 1983, Thomas Coleman, one of his scholars and colleagues, built a model called "Human" intended mainly for the educational purposes [3]. "Human" allowed simulation of a number of pathological states (cardiac and renal failure, hemorrhagic shock etc.) as well as the influence of some therapeutic interventions (blood transfusion, artificial pulmonary ventilation, dialysis and others). A modern interactive Java implementation of this model can be found at http://venus.skidmore.edu/human. The latest outcome of Guyton's followers is the Quantitative Human Physiology simulator [8] representing the most complex and most extended model of physiological functions so far. The model has been created as an open‐source Windows‐based project and all its aspects, including over 3000 variables and the mathematical equations describing the physiological processes, have an XML text ‐readable description. The simulator demonstrates human physiology applying whole ‐body properties, organs and multi‐organ systems, users can view time‐dependent solutions and interactively alter parameters to investigate new hypotheses. Model can be downloaded from http://physiology.umc.edu/themodelingworkshop/. 3. Implementation and errors in Guyton's chart The Guyton's model and his further modifications were originally implemented in Fortran and later in C++. Today, there are specialised software simulation tools available for its development, tuning and verification. One of them is the Matlab/ Simulink environment by the MathWorks company, supporting successive model assembly ‐the particular components can be joined into the simulation networks by 2 Jackson Cardiovascular-Renal Meeting 2008 computer‐mouse dragging of connecting lines. Simulink computational elements are very alike to those used by Guyton for the formalised expression of physiological relations. The only difference is in their graphic form. This similarity (and also the last year's 35th anniversary of the idea publishing) has inspired us to resurrect the old classic Guyton's chart and convert it in a functional simulation model [10]. In the Simulink implementation, we have employed switches to turn on and off the particular subsystems and regulatory loops even while running the simulation. We have tried to keep the outer model appearance identical to the original graphic chart ‐the scheme layout, the wiring placement, the quantity names and the block numbers are the same. Fig. 2: The most significant errors in chart and their correction The simulatory visualisation of the old diagram was not as easy as expected ‐in the original model, several mistakes were found. Although it does not matter in a figure, if we try to animate it in Simulink then the model collapses as a whole instantly. There were not many of those errors ‐inverse signs, a divisor in place of a multiplier, a mutually interchanged block connection, a missing decimal point in a constant etc. However, they were sufficient for the model not to work. Some of them were evident even with no physiology knowledge ‐it was obvious from the chart that during the run, the values in some integrators would (due to the wrongly applied feedback) steeply increase to the infinite and the model would break down. With some physiological and system‐analysis background and with some effort, all the mistakes could be found eventually (Fig. 3). A detailed description of the errors and the corrections provides Kofránek [10]. 3 Jackson Cardiovascular-Renal Meeting 2008 It is interesting, that Guyton’s chart was many times overprinted as a complicated picture in several publications [7] and nobody made an effort to fix these errors. After all, at the time the pictographic chart was created, there had been no convenient drawing tool yet – the picture had originated as a complex schematic figure – and to copy it manually was not so easy. It is not impossible that the authors didn’t even want to correct the errors – who took the pain over analysing the model, easily uncovered the diagrams mistakes – who wanted to just blindly copy, failed. The Fortran implementation was very typical for this time – because of the scant power of processors, advanced numerical methods were engaged to accelerate the program run that were using a various integration step in different part of the model. A direct conversion of the Fortran source to a Simulink model results in a very confusing code [12]. Our implementation was based on original Guyton’s chart with graphical mistakes fixed. The point was in creating a visual educational tool for the course Physiological regulatory systems. The model enables connecting and disconnecting single loops, analysing individually regulation circuits and their importance in development of particular pathological states. The source code in Simulink of both the corrected original, and much more sophisticated late Guyton’s model is available to download at http://www.physiome.cz/guyton, together with a detailed description and explanation of all the mathematical relations included. As a new simulation framework for design and implementation of simulation models we have chosen modern simulation language Modelica and we are developing original framework ”ModelicaNet” based on Modelica.NET (see http://patf‐biokyb.lf1.cuni.cz/wiki/modelica.net). Implementation of Guyton’s model in Modelica simulation language is available to download at http://www.physiome.cz/guyton. 4. Experiments The aimed resurrection was intended to produce a graphical application displaying all the regulatory connections which would allow to verify the influence of the individual parameters on the progress of pathological conditions. Since the first implementation in 1972, the basic pictographic model has been many times upgraded, however, having brought it to life now give us a unique opportunity to apprehend the circulatory‐dynamics physiology. This can be observed in the following experiments corresponding to those published in Guyton’s first paper in 1972. 4.1. Hypertension in a salt‐loaded, renal‐deficient patient This was the first and very fundamental experiment revealing the importance of kidneys in blood‐pressure control and their influence of essential‐hypertension development. Renal deficiency causing limited salt‐load‐elimination ability leads to an increase of the total extracellular‐fluid volume and consequently of the blood volume after a higher salt and water intake. The hypervolemia incites a cardiac‐output increase and the initial hypertension. Via the baroreflex, the sympathetic activity is reduced which in combination with the vascular stretching effect of the elevated 4 Jackson Cardiovascular-Renal Meeting 2008 arterial pressure dilates the peripheral blood vessels so that the total peripheral resistance falls below normal. Fig. 4.1.: Simulation of hypertension in a salt‐loaded, renal‐deficient patient This shows that all the initial arterial‐pressure increase is caused only by the raised cardiac output and not by a change in total peripheral resistance. But as the regulatory mechanisms try to suppress the tissue hyperperfusion, even the peripheral resistance starts to grow significantly after two days which becomes the factor that eventually maintains the arterial hypertension, whereas the cardiac output is decreasing towards the norm since the day 3 of the process. The experimental simulation was run for an 8‐days time equivalent (Fig. 4.1.). In the day 1, renal mass was decreased to 30 % of the norm by modifying the REK parameter (percent of normal renal function) of the model. In the day 2, the salt intake was five‐times heightened compared to the norm by setting the NID‐parameter (rate of sodium intake) value to 0.5. 5 Jackson Cardiovascular-Renal Meeting 2008 The results are displayed in the plots in Fig. 3: the initial renal mass reduction affected the monitored variables only slightly, except of a moderate decrease in cardiac output due to simultaneous elevation of total peripheral resistance and depressed urine production. Applying the salt load caused more dramatic effects. The extracellular ‐fluid and blood volume arose wherefore the cardiac output increased considerably and then stabilised, while the total peripheral resistance fell, yet not enough to prevent the arterial‐pressure augmentation. By 120 hours of simulation, the cardiac output had stabilised but the peripheral resistance was still rising. As the arterial pressure continued increasing, this demonstrates that it is the peripheral resistance, not the cardiac output, that is responsible for the long‐term arterial hypertension. 4.2. Nephrosis due to protein loss by plasma Fig. 4.2.: Simulation of nephrosis due to protein loss by plasma 6 Jackson Cardiovascular-Renal Meeting 2008 Fig. 4.3.: Simulation of circulatory changes during severe muscle exercise The second experiment illustrates the progress of a nephrotic edema caused by a plasma ‐protein loss. The principal effect of nephrosis consists of urine protein excretion that may not be associated with any significant changes in other renal functions. A deficit of the total plasma protein reduces the oncotic pressure, resulting in a fluid redistribution from the blood to the interstitial compartment and an increase of the (mostly free‐) interstitial‐fluid volume. Another effect is a mild cardiac‐output and arterial‐pressure decrease. A 12‐days simulation was run (Fig. 4.2.). In the day 1, the plasma‐protein loss was seven‐times multiplied 7 Jackson Cardiovascular-Renal Meeting 2008 by setting the DPO parameter (rate of plasma‐protein loss) to 0.05 g/min. After 7 days, the value was reduced to 0.02 g/min which is still three‐times above the norm. The initial hypoproteinemia only slightly decreased both arterial pressure and cardiac output but induced a notable restriction of the urinary output. Thus the fluid was being retained in the organism causing the interstitial swelling, although the volume of the free interstitial fluid remained relatively unchanged until the interstitial‐fluid pressure stayed negative. After it reached positive values, an apparent edema occurred with a sharp drop in the arterial pressure. As soon as the renal protein loss returned to the level of possible liver compensation capacity by plasma protein production in the day 8 of the experiment, the edema receded which was accompanied by high diuresis and cardiac‐output adjustment. 4.3. Circulatory changes during severe muscle exercise Next experiment describes simulation changes of extremely severe exercise. A 5-minutes simulation was run (Fig. 4.3.). In the half minute, the exercise activity was sixty times their normal resting level changed by setting the EXC parameter (exercise activity-ratio to activity at rest) to 60. After 3 minutes exercise was over, the value was set back to 1. At the onset of exercise, cardiac output and muscle blood flow increased considerably and within seconds. Urinary output fell to its obligatory level while arterial pressure rose moderately. Muscle cell and venous P02 fell rapidly. Muscle metabolic activity showed an instantaneous increase, but then decreased considerably because of the development of a metabolic deficit in the muscles. When exercise was stopped, muscle metabolic activity fell to below normal, but cardiac output, muscle blood flow, and arterial pressure remained elevated for a while as the person was repaying his oxygen debt. 4.4. Atrioventricular fistula A 8-days simulation was run (Fig. 4.4.). In the day 1, a fistula, which would double cardiac output was increased 5% normal by setting the FIS parameter (fistula) to 0.05. After 5 days fistula was closed, the value was set back to 0. Opening the fistula caused an immediate dramatic change in cardiac output, total peripheral resistance, and heart rate. Urinary output decreased to obligatory levels. As the body adapted, extracellular fluid volume and blood volume increased to compensate for the fistula with the result that after a few days arterial pressure, heart rate, and urinary output were near normal levels, while cardiac output doubled and peripheral resistance halved. When the fistula was closed, dramatic effects again occurred with rapid decrease in cardiac output, rapid increase in peripheral resistance, moderate increase in arterial pressure, and moderate decrease in heart rate. Marked diuresis reduced extracellular fluid volume and blood volume to normal or slightly below. After several days, the patient was nearly normal. 8 Jackson Cardiovascular-Renal Meeting 2008 Fig. 4.4.: Simulation of atrioventicular fistula 5. Conclusion The implementation of Guyton's model as an interactive control scheme is a helpful educational instrument for our biomedical‐engineering students. However, the intricate web of physiological 9 Jackson Cardiovascular-Renal Meeting 2008 regulatory systems of the chart is hardly intelligible to medics and medicine students who would prefer interactive picture animations of a physiological atlas, extended by plots, diagrams and explaining texts. Therefore this model is only a theoretical basis for an educational web ‐accessible simulator which still represents a long and hard future development that can be partially simplified by using suitable tools [11]. We have started a new educational tool “Atlas of physiology and pathophysiology” (www.physiome.cz/atlas) that combined interactive animation with simulation models in the background of multimedia interactive user interface. The most valuable advantage of this work lies in the resurrection of the original Guyton's chart, now available for anyone interested. The previously described (and similar) experiments are of fundamental importance for understanding of the pathogenesis of different disorders that is essential both for biomedical engineers, and for medical doctors. References [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Abram SR, Hodnett BL, Summers RL, Coleman TG, Hester RL (2007). Quantitative Circulatory Physiology: An Integrative Mathematical Model of Human Physiology for medical education. Advannced Physiology Education, 31 (2), 202 ‐210. Bassingthwaighte JB (2000). Strategies for the Physiome Project. Annals of Biomedical Engeneering, 28, 1043‐1058. Coleman TG and Randall JE (1983). HUMAN. A comprehensive physiological model. The Physiologist, 26 (1), 15‐21. Guyton AC, Coleman TA, and Grander HJ (1972). Circulation: Overall Regulation. Ann. Rev. Physiol., 41, 13‐41. Guyton AC, Jones CE, and Coleman TA (1973). Circulatory Physiology: Cardiac Output and Its Regulation. Philadelphia: WB Saunders Company. Hunter PJ, Robins P, Noble D (2002). The IUPS Physiome Project. Pflugers Archive ‐European Journal of Physiology, 445, 1‐9. Hall JE (2004). The pioneering use of system analysis to study cardiac output regulation. Am. J. Physiol. Regul. Integr. Comp. Physiol., 287, R1009 ‐R10011. Hester RL, Coleman T, Summers T (2008). A multilevel open source integrative model of human physiology, FASEB J., 22, 756.8. Kofránek J, Andrlík M, Kripner T, Stodulka P (2005). From Art to Industry: Development of Biomedical Simulators. The IPSI BgD Transactions on Advanced Research 2 (Special Issue on the Research with Elements of Multidisciplinary, Interdisciplinary, and Transdisciplinary: The Best Paper Selection for 2005), 62‐67. Kofránek J, Rusz J, Matoušek S (2007). Guytons Diagram Brought to Life ‐from Graphic Chart to Simulation Model for Teaching Physiology. In: Technical Computing Prague 2007. Full paper CD‐ROM proceedings. (P. Byron Ed.), Humusoft s.r.o. & Institute of Chemical Technology, Prague, ISBN 978‐80‐78‐658‐6, 1‐13. The paper, incl. the source code, is available online at http://phobos.vscht.cz/konference_matlab/MATLAB07/#k Stodulka P, Privitzer P, Kofránek J, Tribula M, Vacek O (2007). Development of WEB accessible medical educational simulators. In: Proceedings of the 6th EUROSIM Congress on Modeling and Simulation, Vol. 2. Full Papers (CD). (B. Zupanic, R. Karba, S. Blažič Eds.), University of Ljubljana, ISBN 978‐3‐901608‐32‐2, MO‐3‐P4‐2, 1‐6. The paper is available online at http://patf‐biokyb.lf1.cuni.cz/wiki/_media/clanky/ 10 Jackson Cardiovascular-Renal Meeting 2008 [12] [13] Thomas SR, Baconnier P, Fontecave J, Francoise JP, Guillard F, Hannaert P, Hernándes A, La Rolle V, Maziere P, Tahi F, White W (2008). SAPHIR: a physiome core model of body fluid homeostasis and blood pressure regulation. Phil. Trans. R. Soc., 366, 3175‐3197. Van Vliet BN, Montani JP (2005). Circulation and fluid volume control. In: Integrative Physiology in the Proteomica and Post Genomics Age. Humana Press, ISBN 918‐1‐58829‐3152, 43‐66. Acknowledgement This research was supported by aid grant MŠMT 2C06031 and Creative Connections Ltd. Address of author for correspondence Jiří Kofránek, M.D., Ph.D. Laboratory Laboratory of Biocybernetics, Dept.of Pathophysiology U nemocnice 5, 128 53 Prague, Czech Republic [email protected] 11 Digital Technologies 2008 Jan Rusz, Jiří Kofránek: Tools development for physiological educational simulators. In Digital Technologies 2008 (Editor: Daša Ticha) [CD-ROM]. Žilina: University of Žilina, Fakulty of electrical engineering, 2008, vol. 1, ISBN 978-808070-953-2, 4 strany (CD ROM) Tools development for physiological educational simulators Jan Rusz1, Jiří Kofránek2 Faculty of Electrical Engineering, Czech Technical University in Prague Department of Pathophysiology, 1st Faculty of Medicine, Charles University in Prague [email protected], [email protected] 1 2 Abstract — One of our main goals is to incorporate the usage of computers into the process of education. The aim of the work lies in the development of applications that would demonstrate non-trivial physiological systems behavior, their dynamics and regulation. In the process of the development of simulators, our main focus is creating the model and creating high quality animations to visualize the simulation results. In this paper, we describe our approach to usage of simulators, the development of these applications, their layered architecture and technologies we use. We use Matlab/ Simulink for creating physiological models, .NET framework or Control Web as the main platforms and Adobe Flash for controllable animations. Simulation models are used for biomedical-engineering-students education, as well as a theoretical basis for a multimedia simulator for medicine students at Charles University in Prague and biomedical engineering students at Czech Technical University in Prague. 1 professions – experienced pedagogue creating basic scenario, creators of simulation models, medics, artists and programmers. This interdisciplinary collective production is being effected by using useful tools, which enable a component creation, connection of simulating programs and interactive multimedia according to given scenario to compact complex. There are two types of problems which we have to consider during the creation of simulation model. First is the theoretical research itself, which basis in formalization of physiological relations expressed by a mathematical model. In our case, problem was solved within the branch of research grants and research purposes. Second problem is creating an own multimedia simulator, or more precisely creating an educational program which uses simulation games – is the practical application of the theoretical results which is related to the results of the research. The principle of creating the simulator is in the creation or verification of mathematical models. INTRODUCTION The development of personal computers and internet in the end of last century brought new opportunities for a practical use of simulating models. Simulating model doesn’t have to be just a tool for scientific research but also a very useful educational tool. Educational programs with simulating components aren’t just a multimedia replacement of traditional textbooks. They are new educational tools, where old J. A. Komensky’s credo "Schola Ludus" (School of game) finds its modern usage [1]. Connection of multimedia environment (sound and visual interface) with simulating models enables students to become familiar with problem in virtual reality and brings entirely new possibility for explanation of difficult problems. In simulating game, behavior of simulated object can be tested without any risks. You can try e.g. land with virtual airplane, cure virtual patient or test behavior of particular physiological subsystems. Simulating games can clearly explain complex relations in physiological regulating systems and causal chains in pathogenesis of all sorts of diseases. 2 PRINCIPLE OF DEVELOPING SIMULATORS Development of effective educational program, which combines multimedia with simulation games [2-4] isn’t easy and expects a working team of many Figure 1: Two types of problems during educational models development We are using more software technologies to build simulators, because we haven’t found a single environment that would satisfy all our needs regarding effective visual expressiveness of physiological models, richness and maturity of the resulting simulators user interface and the ability to produce standalone and web-accessible applications. Generally we use either Microsoft .NET or Control Web as the base platforms we build upon. The models are created in Matlab Simulink and the animations created in Adobe Flash are used as a user interface [5]. We have spent significant amount of time on development of our own unique tools that allow the Simulink model to be used in a .NET or Control Web application [6]. Flash animations are inserted into the form of ActiveX objects. final output of the Wizards is a Matlab independent dynamic library. Figure 3: Example of “non-muscle oxygen delivery” subsystem created in Simulink as a graphic chart (left) and same subsystem as a simulation chips (right). 3 Figure 2: Development cycle of simulator application 2 MATLAB/SIMULINK We use Simulink from Mathworks company as a modeling tool providing graphical design and simulation of mathematical models. Simulink allows us to gradually create models using single components connected to each other by a simulating net, which can remind us of electronic circuits. We can graphically express very complicated mathematical relations in Simulink. The created net is not only a well-arranged illustration; it is at the same time a functional simulating model. To each element we can we can add a virtual display or oscilloscope. After starting the simulation we can see the numerical or graphical form of the values flowing thru the connectors. Elements of a model can be grouped and hierarchically ordered, giving rise to subsystems with user defined inputs and outputs. We have adopted the concept of simulation chips that represent the building blocks of our simulation models. Another Matlab toolbox, Real-Time Workshop (RTW), exports the model as a C/C++ code. This code consists of a routine that executes the model logic, a structure that holds the model data and an ODE solver. We have developed two new RTW targets (we call them Wizards) that transform this code to be compatible with the .NET or Control Web. For the .NET the code is wrapped in a C++ .NET class that exposes the model’s inputs and outputs as its interface. For Control Web the code is transformed into a C++ class that implements the interface making it possible to be used as a virtual driver in a CW application. Thus, the THE .NET PLATFORM The .NET represents a modern and strong platform that allows rapid and comfortable application development with support for visual design of the GUI, creation of custom visual controls and the web deployment. The .NET platform is nowadays most supported for Windows, but open source projects such as Mono or Portable.NET promise the future of portable Simulator based on this platform. Verification relationships formalization Figure. 4: Example of educational simulator created in .NET platform 4 CONTROL WEB Control Web of the Moravian instruments company is a platform mainly intended for development of industrial visualization and control applications on the WIN32 platform. It is optimized for realtime controlling and visualization. Its visual framework is component based and gives a great efficiency and rapid application development. We used the Control Web platform mainly for its advantages such as rapid prototyping and easy visual interconnection of model and visual controls. Figure 5: Example of a renal function simulator (up) in Control Web and virtual device generation (down) for Control Web 5 FLASH Although it is possible to create the presentation layer of the application using standard or custom made .NET (or CW) visual components, for more sophisticated visualizations we use movie clips created in Adobe Flash. Fundamental feature of these animations is the possibility to control them programmatically (using Action Script) and thus affect the presentation. It is also possible to get the user input from a Flash clip and that way create animated user controls. As the execution speed of the Flash and Action Script is increasing over the time, it is a good platform for implementation of simulators based on less komplex models. Pure Flash based simulators are very portable and in-browser what is the most desirable deployment scenario for our simulation games. Some of our Flash based simulators can be seen in our Atlas of Physiology and Pathophysiology [6]. In our complex simulators based on the .NET or Control Web the Flash animations are embedded as ActiveX objects. Their behavior is than controlled by the underlying model layer. Figure 6: Demonstrating of right heart failure (up) and plasma buffer system (down) in Flash 6 LAYERS In case of more complicated architecture the logic of connection between the flash animation and the simulation model can be relatively complex; therefore it is preferable to input an operation layer between layer with visual elements and the layer with simulation model. This operation layer takes care of the communication logic between user interface and the model. Between model layer and GUI layer is useful paste a control layer, where are directed all messages and events in the virtual GUI machines and where are simultaneously solved all communications with the model. The layer solves all context of imaging data and appropriate requirements on communication with the model by using finite state machines [7]. Logic is concentrated to one place, which essentially saves time through modification of GUI or model changes. [4] [5] [6] Figure 7: Architecture layers along simulators developing 7 CONCLUSION We have shown our motivations for using simulators as simulation games in medical education. Our main improvement is usage of rich graphical user interface as a gaming element in simulators based on complex models. We use Matlab/Simulink for physiological modeling, Adobe Flash for controllable animations and the .NET or Control Web as the base environment. We have developed a unique way of exporting the Simulink model into the .NET framework and into the Control Web platform. Acknowledgments This work was supported by research MSM 0021620806 and by aid grant MŠMT 2C06031 and BAJT servis s.r.o company and by the research program “Transdisciplinary Research in Biomedical Engineering” No. MSM6840770012 and by the grant „Analysis and modelling biological and speech signals”, GAČR č. 102/08/H008. References [1] [2] [3] Comenius Johann Amos (1592-1670): The Great Didactic. ed. by M. W. Keatinge (PDF files at Roehampton), available on: http://onlinebooks.library.upenn.edu/webbin/ book/lookupid?key=olbp34684 Clark Aldrich's web page: http://clarkaldrich.blogspot.com/2007/03/im mersive-learning-simulation_14.html Kofránek J, Andrlík M, Kripner T, Stodulka P.:From Art to Industry: Development of Biomedical Simulators. The IPSI BgD Transactions on Advanced Research 1 #2[Special Issue on the Research with Elements of Multidisciplinary, [7] Interdisciplinary, and Transdisciplinary: The Best Paper Selection for 2005], 63-68. 2005. New York, Frankfurt, Tokyo, Belgrad. 2005. Journal (Full) Kofránek J, Andrlík M, Kripner T.: Multimedia educational simulators in pathophysiology – how to design and why to use them. In: Gamal Attiya and Yskandar Hamam editors. Proceedings of the 5th EUROSIM Congress on Modeling and Simulation. Full Papers CD Volume.; Marne la Vallee, Paris, France: Eurosim Francosim - Argesim; 2004. p. Simulation in Education 22-27. Atlas of physiology and pathophysiology available on: http://physiome.cz/atlas Stodulka, P., Privitzer, P., Kofránek, J., Tribula, M., Vacek, O. Development of WEB accessible medical educational simulators. In. Proceedings of the 6th EUROSIM Congress on Modeling and Simulation, Vol. 2. Full Papers (CD). (B. Zupanic, R. Karba, S. Blažič Eds.), University of Ljubljana, ISBN 978-3-901608-32-2, MO-3-P4-2, 1–6. 2007. Available on: http://patfbiokyb.lf1.cuni.cz/wiki/_media/clanky/ Harel, D.: Statecharts (1987): A visual formalism for complex systems. Science of Computer Programming, vol. 8, 1987, 231274. Technical Computing Prague 2008 Jiří Kofránek, Marek Mateják, Pavol Privitzer: Causal or acausal modeling: labour for humans or labour for machines. In Technical Conmputing Prague 2008, 16th Annual Conference Proceedings. (Editoři: Cleve Moler, Aleš Procházka, Robert Bartko, Martin Folin, Jan Houška, Petr Byron). Humusoft s.r.o., Prague, 2008, ISBN 978-80-7080-692-0. CD ROM, str. 1-16, [Online] http://www2.humusoft.cz/kofranek/058_Kofranek.pdf CAUSAL OR ACAUSAL MODELLING: LABOUR FOR HUMANS OR LABOUR FOR MACHINES J. Kofránek, M. Mateják, P. Privitzer, M. Tribula Laboratory of Biocybernetics, Institute of Pathological Physiology, First Faculty of Medicine, Charles University in Prague Abstract Models designed using classical Simulink networks provide a clear graphic visualization of individual mathematical relationships. Signals flow in connections between individual blocks, transmitting values of individual variables from the output of one block to inputs of other blocks. Processing of input information to output information takes place in the blocks. Interconnection of the blocks in Simulink thus reflects rather the calculation procedure than the very structure of the modelled reality. This is the so called causal modelling. However, it is important in designing and especially presenting and describing the model that the very structure of the model, rather than the very algorithm of the simulation calculation, captures well especially the physical essence of the modelled reality. Therefore, declarative (acausal) notation of models is starting to be used in a growing extent in modern simulation environments; this means that individual components of the model describe the equations directly and not the algorithm of their solution. By interconnecting individual components, the systems of equations become connected with each other. Interconnection of the components does not define the calculation procedure but the modelled reality. The way of solving the equations is then “left up to the machines”. Application of acausal approach has been made possible by new Simulink libraries Simscape, and linked domain libraries SimElectronics, SimHydraulics, SimMechanics etc. Modelica is a modern simulation language built directly on acausal notation of models. Implementation of this language of the company Dynasim is interesting for Mathworks products users as it allows for direct connection with Simulink and Matlab (Modelica is implemented under the name Dymola in this case). 1 Introduction An article was published in the journal Annual Review of Physiology [3] 36 years ago, whose form surpassed at the very first sight the accustomed form of the then physiological articles. It was introduced by a large diagram pasted in as an attachment (Fig. 1). At the first sight, the diagram full of lines and mutually connected elements remotely resembled a drawing of some electrotechnical device. However, instead of tubes or other electrotechnical parts, computational blocks were shown in the diagram (multiplication, division, summation, integration, functional blocks), symbolizing mathematical operations performed with physiological quantities. Bunches of connecting conductors between the blocks seemed at the first sight to express complex feedback interconnection of physiological quantities. The blocks were grouped in 18 groups, representing individual interconnected physiological subsystems. The very article gave a quantitative description of physiological regulation of the circulation system in a manner absolutely new in the then medical professional literature, as well as its connexion with and linkage to other subsystems of the organism – the kidneys, regulation of volumetric and electrolyte equilibrium etc. Instead of writing a set of mathematical equations, the article made use of graphic depiction of mathematical relationships. This syntax made it possible to provide a graphic depiction of connexions among individual physiological quantities in the form of interconnected blocks representing mathematical operations. These elements are very similar to Simulink blocks; there is a difference only in their graphic shape. Technical Computing Prague 2008. Conference Proceedings. Prague, 2008, Figure 1: Extensive diagram of the physiological circulatory regulations according to A. C. Guyton et al from 1972 This resemblance inspired us to bring the old classical Guyton’s diagram back to life using Simulink, and to transform it into the shape of a functional simulation model. We developed an effort to preserve the outside appearance of the Simulink model quite the same as that of the original graphic diagram – the layout, placement of conductors, quantity names as well as block numbers. We reported on this implementation last year [10]. 2 Web of Physiological Relationships in Simulink Simulation visualization of the old diagram was not quite easy – there are namely mistakes in the original image diagram of the model! This is no problem in a drawn picture; however, upon attempting at bringing it to life in Simulink, the model collapses as a whole immediately. Not many mistakes were found – switched signs, a division block instead of a multiplication one, switched connection between blocks, missing decimal point in a constant etc. However, they were enough to make sure the model did not function (Fig. 2). Some mistakes could be seen at the first sight (even without any physiological knowledge) – it is apparent from the diagram that during the run of the model, value of some quantities in some integrators (due to wrongly indicated feedback) would rise quickly to the infinite and the model would collapse. However, with knowledge of physiology and system analysis, all the mistakes could be found upon exerting some effort. For a detailed description of the mistakes and their corrections see [10]. It is interesting that the Guyton’s diagram as a complex image has been reprinted many times in various publications (recently, see for example [5, 12]). However, no one called attention to the mistakes and took the trouble to remove them. This was understandable in the times the image-based diagram was being created. No drawing programs existed – the image was created as a complex manual drawing – and manual redrawing of the complex diagram was not easy. However, it is also possible that the model authors themselves did not really want to correct the mistakes perhaps – those who took the trouble analyzing the model revealed the image “spelling mistakes”; those who wanted 2 Technical Computing Prague 2008. Conference Proceedings. Prague, 2008, nothing but copy the diagram mindlessly had bad luck. After all, in those times, the authors also mailed out source program codes of their model in the Fortran programming language – thus if somebody wanted only to test the model behaviour, there was no need to program anything (perhaps only to perform a routine conversion from Fortran to another programming language at the maximum). Our Simulink implementation of the (corrected) Guyton’s model (Fig. 3) is available to those interested at www.physiome.cz/guyton. On this website, our Simulink implementation of a much more complex model version of Guyton et al from subsequent years can be found, as well. At the same time, very detailed description of all the mathematical relationships applied is presented together with the reasons. Figure 2: Correction of the most significant errors in the model of A. C. Guyton et al. 3 Block-Oriented Simulation Networks The Guyton’s block diagram augured occurrence of block-oriented simulation languages. However, in the year 1972, Guyton himself and his collaborators implemented the model in Fortran – Simulink version 1 was not marketed until 18 years later (in 1990). Block-oriented simulation languages, Simulink being one of their typical representatives, make it possible to set up computer models using individual hierarchically arranged blocks with defined inputs and outputs. It is apparent from such a hierarchically arranged block-oriented description how the values of individual variables are calculated in the model – i.e. the computational algorithm. The blocks can be grouped into individual subsystems, which communicate with the surrounding environment through defined input and output “pins”, thus representing something like “simulation chips”. A simulation chip hides the simulation network structure from the user, similarly as an electronic chip hides the interconnection of individual transistors and other electronic elements. The user can thus be concerned only with the chip behaviour, without having to take care of its inner structure and the computational algorithm. Behaviour of a simulation chip can be thus tested by observing the outputs on connected virtual displays or virtual 3 Technical Computing Prague 2008. Conference Proceedings. Prague, 2008, oscilloscopes. This is very advantageous especially in testing the model behaviour and to express mutual dependencies among variables. The entire complex model can be then displayed as interconnected simulation chips, while it is clear from the structure of their mutual connections what effects are taken into account in the model and how. NON-MUSCLE OXYGEN DELIVERY MUSCLE BLOOD FLOW CONTROL AND PO2 260 OSV 168 269 237 239 5 PK1 PK3 RDO 40 2688 lower limit 50 5 238 198.7 u^3 263 5 PM4 DOB 231 P2O 2400 x 1 o s 200 235 265 P2O upper limit 8 224 271 POT^3 1 s HM xo 271 7.983 60 234 BFN P3O 242 223 1 u^3 P3O^3 233 250 244 OVA POM 200 QO2 0.00333 8.0001 PVO 40 POT 1 RMO 57.14 lower limit .005 251 248 1 272 upper limit 8 P1O 232 OSA 255 POE 1 241 2400 u^3 1 8 Xo MO2 8.0001 AOM DVS 5 252 247 0.7 256 264 0.08 PM5 PMO 0.5 2.859 249 8 VPF POT PDO 243 122 2.8 8 1 1 253 0.25 -1 1 s x o OVA 225 P4O 266 236 QOM BFM P40^3 1 246 230 OVA 257 512 267 0.15 u^2 PM1^2 2500 40 POV AMM 1 s xo 02A 226 262 254 lower limit .001 258 POT AU 1 229 RMO 245 PMO 800 227 5 268 PM3 240 PK2 259 0.7 POV 270 228 BFM 1 xo 261 AOM 1 1 s 57.14 02M 512 EXC HM 40 1 0.0125 PVO 40 8 0.9999 1 NON-MUSCLE OXYGEN DELIVERY VASCULAR STRESS RELAXATION MUSCLE BLOOD FLOW CONTROL AND PO2 260 OSV 168 237 239 5 PK1 258 PK3 OVA 2688 lower limit 50 238 198.7 236 QOM BFM OVA P40^3 225 DOB 1 s 235 265 HM xo 271 223 POT PDO 512 EXC HM upper limit 15.0 lower limit 0.4 RFN NOD 0.1024 201 213 207 214 CNA 142 184 lower limit 3 139 0.025 2.5 177 PRA 0 CNX 178 179 CNE 10 AHY 180 AHZ 1 s AH7 AHM 1 0.0007 2 181 REK 28 0.14 AH 222 0.001 1.2 RFN 1.2 1 0.3333 CNR RBF RBF 100 AOM 0.9864 AMM 182 CN8 1.2 RFN 1 1 s 183 176 1 175 CNY lower limit 0 AUM 0.9999 AH1 158A 6 AM AHM 1 lower limit 0.35 PVO AHC 185 0.0785 187 10u CNZ 1.2 ARF 195 0.3 40 40 6 AH2 NOD 221 1 0.0125 186 AH4 6 AHM GP3 1 249 8 189 AHM 0.9996 0.1 215 APD 202 196 AAR 243 122 VPF 188 1 220 216 1 1.5 PMO 0.5 2.859 AM 211 0.5 0.08 PM5 2.8 8 217 210 1 POM 0.00333 8 GF4 GF3 1 s xo VIM 1 u^3 P3O^3 233 200 POT 203 GF3 197 VVE OVA QO2 TVD 0.0009964 0.009 0.301 250 244 191 0.01 algebraic loop breaking VIM 0.01028 60 0 190 5 VV7 1 P3O 242 lower limit 0 Z11 AHM 1000 1 31.67 VV7 VV1 62 1 234 40 P1O 57.14 PVO TVD 4 Z10 219 8.0001 1 BFN 272 upper limit 8 232 OSA 255 1 s 194 STH 8.25 1 GLP 63 61 224 271 POT^3 193 1 STH 0.001022 1 209 PPC 51.66 18 VV6 VV2 lower limit .005 251 248 AAR 198 33 POE 1 7.983 241 2400 u^3 252 P2O upper limit 8 RMO VUD 0.001 TRR 0.8 212 0 1 8 Xo DVS 192 POT 8 VUD lower limit 0.0003 AAR SRK AOM P2O 2400 xo 5 218 GFR 208 0.25 247 0.7 231 200 MO2 8.0001 THIRST AND DRINKING 206 0.125 0.00781 PFL 199 -1 256 264 P4O GFN 205 1 s VV7 PM4 1 s xo 263 5 u^3 266 KIDNEY DYNAMICS AND EXCRETION 200 65 1 253 64 5 257 40 1 EVR 512 267 0.15 RR 1 246 230 POV AMM 1 s xo 226 40 RDO 254 02A u^2 PM1^2 2500 262 POT AU 1 lower limit .001 229 RMO 245 PMO 800 227 5 268 PM3 240 PK2 259 0.7 POV 270 228 BFM 1 xo 261 AOM 1 1 s 57.14 02M 269 AOM 0.9864 AMM PPC AM 1 1 AU AH8 1 lower_limit_0 1 NON-MUSCLE LOCAL BLOOD FLOW CONTROL 40 POV 277 278 POB 276 274 275 POD 273 ARM xo AK1 1 POK lower limit 0.2 0.06 1 40 AR1 1 s xo lower limit 0.5 1 20 AUM PAM RAR 1.011 AUM 283 286 284b 0.495 11520 lower limit 0.3 0.3 1 1 1 PA VAE PIF 8 VVS VVS 2.8 lower limit 0.0001 VVE 0.0825 QVO 5 0 1 0 P2O 1 PLA 0 RPA 20 -4 1 s VLA 0.4 57 301 304 PLA 0 107 xo Z8 309 0 19 15.18 PLA 23 6 RPT QPO 21 102 0.005 PRA 14 xo VID CKI GP2 314 312 AUV 0.9993 AUL VV9 PIF AU 313 0.3 VIF 12 84 GPD PTS 318 0.5 319 0.9998 8 70 PPA 150 0.4667 0.55 0.9994 137 AUM 0.4 1 s 0.000225 151 AVE 0.9997 138 VIE 0.375 PPD 32 327 0.0003 152 325 AU 5 0.5 HPL DFP 142 xo PPI = 2 - (0.15/VPF) 333 57600 0.1 348 343 40 93 94 PGC PGR 0.01252 RC2 CHY^2 CNA 118 NED 0.25 119 xo 2130 0.1 1 s NAE CNA 142.1 142 PGP NID PGH 2 344 1 349 HMD 1 xo 1 s 1 HPL 1 xo 1 s HPR 1 STH 0.1 1 VG 1 334 VRC VRC 117 99 HMD 40 RKC 100 VPF REK u^2 PG2 95 PIF upper limit 1 PTC -1.154e-008 0.00042 NOD 1 s 57600 5 VPF 1 s 124 CKE 126 116 HM VB 0.0125 5 123 125 96 V2D xo 1 0.4 335 0.0000058 143 2-(0.15/u) DFP 0 1 352 HPR 347 342 HM PPI PLF 1 DHM 1 336b 2 2 141 1 HEART RATE AND STROKE VOLUME KE 120 KOD 98 xo VRC PFI 1 1 s xo 75 0.013332 VGD 100 1 s 40 HMD HMK 90 RCD 140 11 0.00014 122 KED KID 11.4 PTT 0.0025 351 u^0.625 PP3^0.1 u^0.625 PA4^0.625 332 144 0.0003 121 0.0028 (u/12)^2 97 PPO CPF 0 KCD xo PTT = (VTS/12)^2 331 PLF 145 PPI 2 PRA 321 324 140 6 PP3 346 341 336 PLF POS 322 323 HR 5 1 s 350 345 2850 KE1 CKE AM 1 HM2 RC1 KIR 127 0.013 85 POT 15 1 340 PPA4 0.5333 POS PPC 139 SVO PPA HSR 100 1 464e-7 PPD 0 VIC 1 s 128 129 KIE 113 101 VTS 330 -9.648e-008 148 PPN PCP QLO 337 POY 147 AVE 11.98 PA HSL lower limit 0.2375 xo 1 AUTONOMIC CONTROL 130 KCD VG VG 8 15 100 1.5 3550 GPR 86 VTS 338 0.333 VPF xo 1 s 10 PTS = f(VIF) VIM PO2 PPR 149 PPC 320 12 339 1 8.25 146 15 135 xo 25 1 s xo 0 0.999 VIM POT 329 PO1 CPN CPP 28 136 AUH 88 0 0 VVR 2.949 AUH 1 1 171 112 1 s VVR 2.95 0.7 AUY 0 134 131 KI -6.3 xo PLA AUD 315 1 0.01 VIC 20 3.159 CCD CNA VID 87 VID 0 133 132 111 0.0005 VTD 0.21 0.85 1 8.154e-006 110 CIRCULATORY DYNAMICS 1 0.15 326 VIF 1 s VTL 83 AUJ^AUZ 316 0.07026 xo 12 GPD 0 VPA 0.0048 VTC 1 s 1 IFP 0.002 AUJ v u AU9 328 DPI 0.1 0.09477 0.38 0.30625 15 103 DPL PRA 1 s VPA xo 311 AUN calculation 15 QRO VPE PPA AUZ 1 310 1 AU 170 xo ALDOSTERONE CONTROL GP1 VRA 18 20 22 PGL AU8 AUN PTT 20 DPC 0.04 QRN = f(PRA) 1 s AMC lower limit 6 104 lower limit 4 20 -4 169 60 166 KN1 CNA 109 CPI -6.334 PIF 0.25 QPO PPA AMT AMR 200 165 CKE 5 9 1 s VRA PR1 0 1 0.00352 7.8 0.04 PRA PPA 1 s PTC 0 AMP = f(PA) 106 PIF 142 105 xo QRN 51 AUH 0.026 308 0 PLD 0.004 20.18 CPI 0.1 13 1 RVM = f(PP2) RPT VTL 108 DPL 5 DRA 15 50 AUH AUN 1 171 -0.017 168 AM1 DPL lower limit 5 0.002 PTC 0 PP2 AU2 0.0005 305 AUB calculation SVO 0.001879 5.045 12 QRO 16 52 PL1 DAU AUK AUB^3 AUB 0.03791 VTL HMD HMD RVM 0.0357 20 DLA 24 AUN CALCULATION 317 QVO 1 HPR 1.4 55 lower limit 0 307 1 303 AU6 AUB CALCULATION AUM AM2 AM3 AMP HSR 1 56 1 RPV 302 when PA1<50: AUN=6 when 20>PA1<50: AUN=0.2*(50-PA1) when PA1>=50: AUC=0 19.8 167 PA 100 AUH 50 PP1 QLN = f(PLA) xo 11 49 48 sqrt QLO 1 AUC when PA1<40: AUB=1.85718 AUB when 40>PA1<170: AUB=0.014286*(170-PA1) when PA1>=170: AUB=0 172 AM5 10u 1 RVM 53 QLN VLA 25 EXC Z12 CPA 54 AUC AUC calculation u^3 173 174 AM 1 ANM 164 2.738 VLE 0.4 AUC CALCULATION PA1 AM 1 RVG 47 26 A1B 20.039 0.9984 QRF 44 0.1 295 8 296 1.24 PA1 PR1 PVS 0.6 QLN 15 4 293 297 when PA1<40: AUC=1.2 when 40>PA1<80: AUC=0.03*(80-PA1) when PA1>=80: AUC=0 10 QLO 260 LVM = f(PA2) 28 8 3 EXE ANGIOTENSIN CONTROL DPC VP 0.002 45 46 0.01453 27 298 0.03824 20 3 3.002 PVS PLA 5.07 PLA ANT DPC 0.04 VP 1 s VTL 0 100 POQ 15 CPI 71 VRA PA2 LVM 8 upper limit 8 PA lower limit 4 294 0.1 0 HMD HPL POT POQ 158 AN1 ANM 152 xo 3 DFP 155 CNE 157 74 VPD VUD 5 VPA CNA 156 CP1 PC^3 VLA 58 QLN 1 10 154 142 1 s xo (1.2/RFN)^3 10 75 70 0.001 VB 1.4 1 LVM 159 ANC (1.2/u)^3 CPP CPK QLO 291 8 74 TVD 0.001 VVS 59 HSL 0.042 153a RFN 1.2 69.76 CNE PPC 160 AN2 10u 153b 60 VAS PA1 0.001879 VTC CV 3.3 161 AN3 4.0 REK 0.4 u^3 3.7 PA 29 5 QLO AN5 lower limit 0.7 210 1.6283e-007 DAS 292 28 73 0.002 PVS QAO xo VTC PVS 0.3 162 163 1 1.004 ANM 1 s CPP VAS3 30 PA1 0.007 PTC xo 3.25 QVO PRP 16.79 9 VV8 PPC 69 -6.3 3.774 7 1 s 61 CPP VP CFC 2.95 DVS BFN PGS 100 AR3 1 s xo VAS VBD xo 0.85 POZ 289 32 1 s if (POD<0) {POJ=PODx3.3} VVR 6 2 RSN 68 72 VP ANM 80 70 62 PVS 5 2.859 0.00355 33 0.33 A3K VV7 0 QAO BFN 100 31 288 VB 4 PA POJ 16.79 2 0.3216 RBF 0.04 DPP PC VRC VVE 100 284 POC 287 5 RVS 1.2 1 DLP 0.00047 5.002 BFM DPL 78 LPK CPR 17 PC 0.007 0 77 85 PC VB 17 34 DP0 79 PPD PVG 67 PVS 3.7 2.781 PAM AUM 66 BFN 39 17 2.9 BFM PGS ANTIDIURECTIC HORMONE CONTROL RVS 1.6379 0 2.8 41 CN2 CAPILLARY MEMBRANE DYNAMICS 2.9 1 s xo 0.2 0.0212 RV1 17 37 30.5 0.1 1 AR2 RV1 43 1 3 RAR 1 PON 41A CN7 1.79 RVS RSM AUM RAM VIM VIM A2K 40 42 38 AMM VIM RAM 96.3 35 ANU 1.6 ARM AR3 36 ANU 1 279 280 1 1 1 290 POA 281 AVE lower limit 0.95 ARM POR 1 282 285 ANM 1 0.9387 1 s AR1 algebraic loop breaking 57 HYL PTS 89 90 91 VIC PIF 92 VPF 114 0.0125 115 VEC CHY 39.97 VTW PRM -5.9 3 VP VTW 24.2 12 VTS 0.0125 PULMONARY DYNAMICS AND FLUIDS RED CELLS AND VISCOSITY HEART HYPERTROPHY OR DETERIORATION TISSUE FLUIDS, PRESSURES AND GEL ELECTROLYTES AND CELL WATER Figure 3: Implementation of the model of A. C. Guyton et al in Simulink This means a high advantage for multidisciplinary cooperation – especially in borderline areas such as, for example, biomedical systems modelling [9]. An experimental physiologist is not forced to examine in detail what mathematical relationships are hidden “inside” the simulation chip; however, based on interconnection of individual simulation chips with each other he or she can understand the model structure and can verify its behaviour in an appropriate simulation visualization environment. Hierarchical block-oriented simulation tools have therefore found their significant application in description of complex regulation systems, which can be seen in physiology. The international project PHYSIOME is devoted to formalized description of physiological systems; it is the successor of 4 Technical Computing Prague 2008. Conference Proceedings. Prague, 2008, GENOME project. GENOME project output was represented by detailed description of the human genome; PHYSIOME is aimed at formalized description of physiological functions. Computer models are used as the methodological tool [2, 7]. Several block-oriented simulation tools were designed as part of PHYSIOME project, serving as a reference database for formalized description of the structure of complex physiological models. They include JSIM [11] (http://www.physiome.org/model/doku.php) and also the CEllML language (http://www.cellml.org/). Disciples and followers of Prof. Guyton expanded the original extensive simulator of the circulatory system (Quantitative Circulatory Physiology [1]) by an integrated connection of all important physiological systems. The simulator Quantitative Human Physiology is the most recent result, which describes the currently most complex and most extensive model of physiological functions. The model can be downloaded from http://physiology.umc.edu/themodelingworkshop/. In order to express the complex structure of the model, its authors created a special, block-oriented simulation system, QHP. 4 Causal and Acausal Approach Block-oriented tools use hierarchical connected blocks. Signals are transmitted through links between individual blocks; the signals serve to transfer values of individual variables from the output of one block to inputs of other blocks. Input information is processed in the blocks to output information. Interconnection of blocks therefore reflects rather the calculation procedure than the very structure of the modelled reality. In complex systems, physical reality of the modelled system slowly disappears under the computation structure thanks to this approach. That is why in recent times, such tools are starting to be used in modelling complex systems, in which individual parts of the model are directly described as equations and not as an algorithm of the solution of such equations. This is the so called declarative (acausal) notation of models, unlike causal notation in block-oriented languages where the (causal) description of the way of calculating individual model variables must be (for example, also visually using graphic connection of individual computational elements) expressed. Acausal approach is made possible by the new Simulink libraries Simscape and linked domain libraries SimElectronics, SimHydraulics, SimMechanics etc. A modern simulation language built directly on acausal notation of models is the programming language Modelica [4]. Originally, it was developed in Sweden and now is available both as an opensource version (developed under the auspices of the international organization Modelica Association, http://www.modelica.org/), and in two commercial implementations. One of them is the commercial implementation of the company Dynasim AB – purchased recently by the supranational concern Dassault Systemes (marketed under the name Dymola, currently version 7.1) and the other one is offered by MathCore (marketed as MathModelica). Dynasim Modelica provides good linkage to Matlab and Simulink while MathModelica can connect with the Mathematica environment supplied by the company Wolfram. Modelica utilizes mutually connected components, which represent instances of individual classes. Unlike implementation of classes in other object-oriented languages (such as jw C#, Java etc.), classes in Modelica have a special section in addition, in which equations are defined. The equations do not express assignment (i.e. saving of the calculation result of an assigned statement into a given variable) but a definition of relationships among variables (as is the custom in mathematics and physics). In Modelica, components (instances of classes) can be connected through exactly defined interfaces – connectors. Connectors are instances of connector classes in which variables used for connection are defined. Connectors falling in the same connector classes can be connected (while in these classes, variables of equivalent types can be connected). In other words – in the connection, the type of plugs must correspond exactly to the socket types. 5 Technical Computing Prague 2008. Conference Proceedings. Prague, 2008, The important thing is that by connecting the components, connection of sets of equations in individual components with each other occurs actually. in cases an identical variable is defined in the connector of connected components (and if it does not represent the flow – see further), by establishing the connection it is defined that the value of this variable should be the same in all components. When the variable is a part of equations in the connected components, by means of connection we also define interconnection of the equations in which the given variable is found. At the point where multiple components are connected, values of the variables connected through the common point must be the same (similarly to voltage on the common terminal in electric circuits, which must correspond to Kirchhoff’s first law). And not only that. In the connector, it is possible to define that some connected variables shall represent the flow – in such a case, this means that values of all variables marked in this way shall be set in all components interconnected at the same point to such a value so that their algebraic sum is equal to zero (similarly to the sum of currents on the common terminal in electric circuits, which must correspond to Kirchhoff’s second law). If a variable marked in this way is a part of equations in interconnected components, another equation is thus added to the connected set of equations, which defines the requirement of the zero value of the algebraic sum of this variable’s values). By means of connecting Modelica components, we thus do not define the computation procedure but the modelled reality. The way of solving the equations is then “left up to the machines”. 5 Generalized System Properties e e=Rf C q=Ce R p p=Lf q L f Figure 4: Relationships among generalized system properties: e means generalized effort – matched by force in mechanics, voltage in electric diagrams, pressure in hydraulics etc. f is generalized flow – matched by velocity in mechanics, current in electric diagrams, flow in hydraulics, temperature flow in thermodynamics etc. q is generalized accumulation or deflection, represented by the generalized flow integral. It is matched, for example, by spring stretching in mechanics, liquid volume in hydraulics, charge in electric diagram, accumulated heat in thermodynamics etc. p represents generalized inertance – generalized effort integral, representing kinetic energy; matched by the flow velocity change proportional to pressure difference (inertance of flow) in hydraulics, potential needed to change electric current (induction) in electric circuits etc. R, C and L represent constants of proportionality among individual generalized system properties. Matched, for example, by resistance, capacitance or mass. 6 Technical Computing Prague 2008. Conference Proceedings. Prague, 2008, Depiction of the model in the acausal simulation environment thus resembles the physical reality of the modelled world more than classical interconnected block schemata in Simulink or QHP. This is related to generalized system properties of the real world (Fig. 4) in which generalized efforts (to which the force, pressure, voltage etc. correspond in real world) and generalized flow (to which the current, flow etc. correspond in real world) play an important role. Provided that the reality is depicted in Modelica by means of connected components, then as for flow variables, the value at the connection point must correspond to Kirchhoff’s second law (the current cannot accumulate or be lost at the connection point), and equality must hold true for other variables at the common connecting point (according to Kirchhoff’s first law). In Modelica, there is a standard library of varied classes to model electric, mechanical, hydraulic objects of the real world. Mathworks, too, has responded to development trends of acausal modelling by creating Simscape toolboxes and linked application libraries to model electric circuits, mechanical and hydraulic systems. We shall illustrate the difference between modelling in block-oriented simulation tools and in Modelica on two examples of modelling physiological reality: On the model of simple mechanics of pulmonary ventilation and on implementation of a classical model of cellular membrane of the neurone pursuant to Hodgkin-Huxley [6]. 6 Pulmonary Ventilation Mechanics Model Let us consider a simple model of pulmonary mechanics, shown schematically in Fig. 5. Upon applying significant simplification, the lungs can be viewed as three bags connected using two tubes. The lungs are connected to the ventilator of artificial pulmonary ventilation, which blows air into the lungs periodically under the pressure PAO. P0 is the pressure of ambient atmosphere. The air flow Q flows through upper respiratory tract whose resistance is RC. From the upper respiratory tract, air struggles through the lower respiratory tract into alveoli. The resistance of the lower respiratory tract is RP, the pressure in central parts of the respiratory tract (at the borderline of the upper and lower respiratory tract) is PAW, pressure in alveoli is PA. PAO RP RC Q QA PAW CL PA CW PPL P0 Q-QA P0 CS Q QA PAW PAO RC Q-QA RP CS PA CL PPL CW P0 Figure 5: Simple model of pulmonary mechanics (hydraulic and electric similarity) 7 Technical Computing Prague 2008. Conference Proceedings. Prague, 2008, The air expands pulmonary alveoli whose elasticity is CL (as total pulmonary elasticity). The interpleural cavity is found between the lungs and the chest. The pressure in the chest is PPL. In artificial pulmonary ventilation in which case the air is blown into the lungs under pressure, the chest must expand in addition – chest elasticity is CW. A small part of air, which does not reach all the way to the alveoli only expands the respiratory tract – its elasticity is CS (the so called dead space breathing). Now the equations can be set up. According to Ohm’s law the following must hold true: PAW PA RP QA PAO PAW RC Q (1) The relationship between elasticity, pressure gradient and volume (expressed as the flow integral) is expressed by the equations: 1 QA dt CL 1 PPL P 0 QA dt CW 1 Q QA dt PAW P 0 CS PA PPL (2) According to the generalized Kirchhoff’s law, the sum of all pressures (voltages) along a closed loop must be equal to zero, i.e. the following must hold true in the loop along the PAW node and along the PA0 node: ( PAW PA) ( PA PPL) ( PPL P0) ( P0 PAW ) 0 ( PAO PAW ) ( PAW P0) ( PO PAO ) 0 And upon substitution using Ohm’s law and elasticity equations: 1 1 1 (Q QA) dt 0 QA dt RP QA CS CL CW Q RC 1 (Q QA) dt ( P0 PAO) 0 CS (3) 6.1 Implementation of the Pulmonary Ventilation Mechanics Model in Simulink When setting up the model in Simulink, the computation procedure from input variables to the output ones must be exactly defined. If we want to calculate the reaction of air flow to/from the lungs (Q) to the input – i.e. pressure changes at the initial point of the respiratory tract (PAO) caused by the artificial pulmonary ventilation apparatus – the Simulink model shall be similar to that in Fig. 6. The Simulink model can also be expressed in a simpler form. At first, from Equation (3) we shall derive the differential equation (input variable PAO, output variable Q): d 2 PAO d 2Q 1 dPAO RC RP CT dt dt 2 dt 2 1 RC dQ 1 1 1 RP CS CL CW CS RP CT dt 8 Q (4) Technical Computing Prague 2008. Conference Proceedings. Prague, 2008, Mux respm2.mat Mux To File 1/s Integrator Volume vs time Q vs time Pao vs time Pao Q 1 Ventilator QA 1/Rc Sum 1/s Integrator1 Sum1 Qs -KPaw Memory du/dt CS dPaw/dt PA 0.5 Rp 1/0.2 1/CL PAW Sum3 Sum2 1/0.2 1/Cw Figure 6: Implementation of the model in Simulink according to Equations (3) Upon entering the following numerical parameters of resistances (in the units: cm H2O/L/sec) and elasticities (in the units: L/cmH2O) [8]: RC 1; RP 0.5; CL 0.2; CW 0.2; CS 0.005 Equation (4) becomes simplified: d 2 PAO dPAO d 2 Q dQ 420 2 620 4000 Q 2 dt dt dt dt (5) Upon Laplace transform of Equation (5) we obtain: Q( s) s 2 420s PAO( s ) s 2 620s 4000 (6) This gives us the possibility to simplify the Simulink model (Fig. 7): PAO vs time s2 +420s Ventilator PAO s2 +620s+4000 Mux respm1.mat Mux To File 1/s Integrator Respiratory Mechanics Q Volume vs time Q vs time Figure 7: Implementation of the model in Simulink using Laplace transform according to Equation (6) 9 Technical Computing Prague 2008. Conference Proceedings. Prague, 2008, However, when the parameter values change, the transformation function (6) must be recalculated and the Simulink model changes. Now let us make the model slightly more complicated by taking into account inertia of air in the upper respiratory tract (Fig. 8). Now we shall moreover include the inertial element LC=0.01 cm H2O s2 L-1: LC P dQ dt dQ where P is the pressure gradient and dt is flow acceleration, or: P LC dQ dt (7) PAO CL RP RC LC Q PAW QA PA CW PPL P0 Q-QA P0 CS Q QA PAW RP=0,5 RC=1 LC=0,01 Q-QA CS=0,005 PA CL=0,2 PPL CW=0,2 P0 Figure 8: Simple model of pulmonary mechanics taking inertia into account (hydraulic and electric similarity) Then instead of the Set of Equations (3) we shall obtain: 1 1 dQA 1 RP dt CL CW QA CS Q QA 0 2 RC dQ LC d Q 1 Q QA dP 0 dPAO 0 dt dt 2 CS dt dt (8) And instead of Equation (5): d 2 PAO dPAO d 3Q d 2Q dQ 420 0 , 01 5 , 2 620 4000 Q 2 3 2 dt dt dt dt dt (9) And finally, upon Laplace transform: Q( s ) s 2 420s PAO( s ) 0,01s 3 5,2s 2 620s 4000 (10) The Simulink model shall change (Fig. 9): 10 Technical Computing Prague 2008. Conference Proceedings. Prague, 2008, PAO vs time Ventilator PAO s 2 +420s 0.01s 3 +5.2s 2 +620s+4000 Respiratory Mechanics Mux respm1.mat Mux To File 1/s Integrator Q Volume vs time Flow vs time Figure 9: Implementation of the model in Simulink using Laplace transform according to Equation (10) Thanks to the fact that the computational direction must be always taken into account in Simulink, the very Simulink diagram is quite distant from the actual physical reality of the system described. Even a small change in the model, such as addition of the inertial element, causes the need of careful calculation and change of the model structure. An essential change of the model occurs also in the case that spontaneous breathing is considered instead of artificial pulmonary ventilation. The model input shall not be represented by the pressure PAO created by the artificial pulmonary ventilation respirator but, for example, the thoracic wall elasticity CW (function of the breathing muscles can be modelled by cyclic change of elasticity). Connection of blocks in Simulink reflects rather the calculation procedure and not the modelled reality structure. 6.2 Implementation of the Pulmonary Ventilation Mechanics Model in Modelica In Modelica (or even in the Simulink library Simscape), the situation is different (source codes of the example can be downloaded from http://patf-biokyb.lf1.cuni.cz/wiki/objekty_2008). Instead of blocks, Modelica operates with connected components, which represent instances of individual classes, in Modelica moreover equipped with a special section in which equations are defined. By connecting Modelica components, not the calculation procedure but the modelled reality is defined. The way of solving the equations is thus “left up to the machines”. The model representation in Modelica thus resembles rather the physical reality of the modelled world than connected block diagrams in Simulink. The simple ventilation mechanics model according to Fig. 3 can be expressed in a very straightforward way in Modelica. We shall make use of the fact that Modelica includes libraries of various classes to model electric, mechanical and hydraulic objects of the real world. Representation of the relationships of resistance, pressure gradient and flow according to Equation (1) and relationships of elasticity, pressure and flow according to Equation (2) thus takes the following form in Modelica: Making the model more complex by adding the inertial element - pursuant to Equation (7) and Fig. 7 is easy (see Figure 11). In the given case, we have used visual components of electric circuits for quick setting up of the model; however, nothing prevents us from creating a different shape of icons representing individual resistance, capacity and inertial elements in the lungs. These are far more than picture icons. Modelica is an object language and there is no obstruction in creating a special class using which it is possible, for example, to model oxygen and carbon dioxide flows (considering the oxygen bond to hemoglobin, CO2 conversion to bicarbonate, acidobasic equilibrium effect on blood gases transport etc.). Formation of the physiological relationships library is one of our future aims. We are planning to transfer (and extend further in Modelica) our Simulink library of physiological relationships, Physiology Blockset (www.physiome.cz/simchips). In respect of the fact that there are numerous relationships in physiological models (leading to solution of implicit equations in Simulink), acausal description of modelled relationships applied in Modelica provides a great advantage. Acausal description describes much better the essence of 11 Technical Computing Prague 2008. Conference Proceedings. Prague, 2008, modelled reality and the simulation models are much more legible, and thus much less prone to mistakes, as well. Modelica is therefore a very suitable environment to model physiological systems. Figure 10: Simple model of pulmonary mechanics according to Fig. 5 in Modelica Figure 11: Modified model of pulmonary mechanics upon adding the inertia element in Modelica 7 Excitable Membrane of the Neuron according to Hodgkin and Huxley In 1963, Alan Lloyd Hodgkin and Andrew Huxley were awarded the Nobel Prize for physiology and the mathematical model of the action membrane potential. Precisely their article [6] has become the foundation of many models describing the membrane potentials behaviour in varied cell types. 12 Technical Computing Prague 2008. Conference Proceedings. Prague, 2008, Primarily, the model provides explanation of the nervous impulse spreading by depolarization of the cellular membrane using the connection of two physical domains – the electric and chemical one. Thanks to the conductivity study of membrane channels, in dependence on time and current membrane voltage, the model describes the course of electric current that is formed by the flow of sodium and potassium ions through the membrane. This electric current subsequently affects the current electric voltage. At rest, the inside of the cellular membrane has a negative charge. Proteins with the negative charge cannot pass through the cellular membrane and remain on the inside of the membrane. Potassium and sodium ions are (thanks to the sodium-potassium pump) distributed non-uniformly between the cell and its surroundings – inside the cell, there is a high potassium concentration and low sodium concentration in respect of the surroundings of the cell. Transfer of the ions can take place only through ionic channels. The concentration and electric gradient has an impact on the ions movement – at rest, the cellular membrane has a negative charge and sodium concentration outside the cell is much higher than inside. Sodium is pushed into the cell both by the electric and concentration gradient. As for potassium, both gradients act against each other; however, the concentration gradient prevails (and potassium thus shows the tendency to leave the cell). Nernst equation describes how the chemical and concentration gradients can be compared. Differences in concentrations are transformed using this equation to the membrane voltage needed to maintain their different concentrations on both sides of the membrane. These concentration differences in the model form a kind of power supplies for specific ions. When the difference of the Nernst minus current voltage for the cation is greater than zero, the cation is pushed into the cell. The sodiumpotassium pump (Na-K-ATPasis) takes care, from the long-term point of view, of maintaining the concentration differences of potassium and sodium in the cell and outside the cell; this pump keeps pumping sodium from the cell and potassium into the cell constantly. However, its functionality and change of sodium and potassium concentrations is disregarded in this model and the concentrations are considered constant, and the concentration differences (thanks to the Nernst equation) form a power supply of +40 mV for sodium and -87 mV for potassium. Charge accumulation on the membrane is a typical example of a capacitor, where the nonconductive cellular membrane acts as a medium, which separates two charged surfaces. However, sodium and potassium flows through appropriate channels depend on the channels permeability (much lower for sodium than for potassium at rest). The channels permeability depends on the membrane voltage. If the membrane voltage rises from the rest (negative) voltage to a certain boundary value, sodium channels start to open for a very short moment and the current of sodium ions breaks into the cell and “discharges the negatively charged membrane capacitor” – and even charges it to the opposite (positive) value – we speak of depolarization and occurrence of the action potential. At the same time, sodium channels start to close again due to the change of the voltage (and thus make sure that the concentration of ions in the cell virtually does not change). At the same time, permeability for potassium channels changes, potassium starts to leave the cell more rapidly (and the current of positive potassium ions flowing out of the cell recharges the “membrane capacitor” again to the rest negative value). 7.1 Implementation of the Model according to Hodgkin and Huxley in Modelica The model implementation in Modelica corresponds to an electric diagram (Fig. 12). Source codes can be downloaded from http://patf-biokyb.lf1.cuni.cz/wiki/objekty_2008. Special components are represented by membrane channels for sodium (or potassium, respectively). These behave as a power supply with changing inner resistance. Its constant voltage is given by the chemical gradient of sodium (or potassium, respectively) according to the Nernst equation, while their inner resistance corresponds to the open state (permeability) of the channels. Only potassium cations can pass through potassium channels and only sodium ones through sodium channels. Other electrically charged atoms that can pass through the membrane are implemented using a constant power supply and constant resistance, not changing in dependence on time and voltage. 13 Technical Computing Prague 2008. Conference Proceedings. Prague, 2008, Figure 12: Diagram of the Hodgkin-Huxley’s model in Modelica (in the Dymola environment) Figure 13: Model simulation outputs. Time units are given in ms. capacitor.v is current voltage of the cellular membrane in mV k_channels.G is electric conductivity for potassium channels na_channels.G is electric conductivity for sodium channels na_channels.R is electric resistance for sodium channels = 1/(1000*G) When implementing the model in Modelica, basic electric components from the standard library can be used: We shall thus use models of a constant voltage supply, a capacitor. Afterwards, it is only necessary to define the membrane channel classes and connect all elements visually. Membrane channels can be modelled as special components. Using the empirically confirmed relationships (equations) from the Hodgkin’s and Huxley’s article [6], we shall create a new type of an electric component describing the behaviour of membrane channels as constant voltage sources 14 Technical Computing Prague 2008. Conference Proceedings. Prague, 2008, (pursuant to the Nernst equation) with changing inner resistance dependent on the membrane voltage. And finally, it only remains to connect all the elements visually. Upon running the simulation of the entire circuit actuated by electric current pulses, the required course of the action potential and conductivity of the channels during an impulse is obtained (Fig. 13). 7.2 Implementation of the Model according to Hodgkin and Huxley in Simulink In implementation of the model in Simulink, the model structure corresponds more to the calculation process than the physical structure of the modelled system. Comparison of the model implementation in Simulink (Fig. 14) and Modelica (Figs. 12 and 13) is very eloquent. Figure 14: The Hodgkin-Huxley’s model [6] can also be implemented using the block-oriented Matlab/Simulink environment; however, this environment remains tied to the calculation procedure. 8 Conclusion New technologies provide new opportunities and challenges in simulation models creation. One of such technologies is represented by acausal simulation environments, such as the library Simscape in Simulink and especially the new object simulation language Modelica, which shall make modelling of complicated and complex systems such as physiological systems considerably easier. In respect of the fact that numerous relationships are found in physiological models (leading to solution of implicit equations in block-oriented languages), the acausal description of modelled relationships used in Modelica (but also in Simscape) provides a great advantage. Acausal description captures the essence of the modelled reality much better, and the simulation models are much more legible and thus also less prone to mistakes. Acausal simulation tools therefore represent a very suitable environment in physiological systems modelling. References [1] Abram, S.R., Hodnett, B.L., Summers, R.L., Coleman, T.G., Hester R.L.: Quantitative Circulatory Physiology: An Integrative Mathematical Model of Human Physiology for medical education. Advanced Physiology Education, 31 (2), 2007, 202 - 210. [2] Bassingthwaighte J. B. Strategies for the Physiome Project. Annals of Biomedical Engineering 28, 2000, 1043-1058. [3] Guyton AC, Coleman TA, and Grander HJ. (1972): Circulation: Overall Regulation. Ann. Rev. Physiol., 41, p. 13-41. 15 Technical Computing Prague 2008. Conference Proceedings. Prague, 2008, [4] Fritzson P. (2003). Principles of Object-Oriented Modeling and Simulation with Modelica 2.1, Wiley-IEEE Press. [5] Hall J.E. (2004): The pioneering use of system analysis to study cardiac output regulation. Am.J.Physiol.Regul.Integr.Comp.Physiol. 287:R1009-R10011,2004,287: p. 1009-1001. [6] Hodgkin, A.L., Huxley A.F.: The components of membrane conductance in the giant axon of Loligo. Journal of Physiology, 116, 1952, p. 473-496. [7] Hunter P.J., Robins, P., Noble D. (2002) The IUPS Physiome Project. Pflugers Archive-European Journal of Physiology, 445, p.1–9 [8] Kho M.C.K. (2000) Physiological control systems. IEE Press, New York 2000, ISBN 0-78083408-6 [9] Kofránek J., Andrlík M., Kripner T, and Mašek J.: From Simulation chips to biomedical simulator. Amborski, K. and Meuth, H. 2002. Darmstadt, SCS Publishing House. Modelling and Simulation 2002 Proc. of 16th European Simulation Multiconference, p. 431-436 (full text version: http://patf-biokyb.lf1.cuni.cz/wiki/technical_computing_2007 ). [10] Kofránek, J, Rusz, J., Matoušek S., (2007): Guytons Diagram Brought to Life - from Graphic Chart to Simulation Model for Teaching Physiology. In Technical Computing Prague 2007. Full paper CD-ROM proceedings. (P. Byron Ed.), Humusoft s.r.o. & Institute of Chemical Technology, Prague, ISBN 978-80-78-658-6, 1-13, 2007. The article including source program codes is available at http://www.humusoft.cz/akce/matlab07/sbor07.htm#k [11] Raymond, G. M., Butterworth E, Bassingthwaighte J. B.: JSIM: Free Software Package for Teaching Physiological Modeling and Research. Experimental Biology 280, 2003, p. 102-107 [12] Van Vliet, B.N., Montani J.P. (2005):,Circulation and fluid volume control. In: Integrative Physiology in the Proteomica and Post Genomics Age. Humana Press, 2005, ISBN 918-1-58829315-2, p. 43-66 Acknowledgments This work has been supported by research MSM 0021620806 and by the aid grant MŠMT 2C06031, and by Creative Connections s.r.o. Jiří Kofránek, M.D., Ph.D. Laboratory of Biocybernetics, Institute of Pathological Physiology, First Faculty of Medicine, Charles University in Prague U Nemocnice 5 128 53 Praha 2 e-mail: [email protected] Tel.: 777 68 68 68 16 MEFANET 2008 Jiří Kofránek, Marek Mateják, Stanislav Matoušek, Pavol Privitzer, Martin Tribula, Ondrřej Vacek: School as a (multimedia simulation) play: use of multimedia applications in teaching of pathological physiology. In MEFANET 2008. (Editoři: Daniel Schwarz, Ladislav Dušek, Stanislav Štípek, Vladimír Mihál), Masarykova Univerzita, Brno, 2008, ISBN 978-80-7392-065-4, CD ROM, str. 126, [Online] http://www.mefanet.cz/res/file/articles/prispevek-mefanetanglicky-kofranek.pdf SCHOOL AS A (MULTIMEDIA SIMULATION) PLAY: USE OF MULTIMEDIA APPLICATIONS IN TEACHING OF PATHOLOGICAL PHYSIOLOGY J. Kofránek, M. Mateják, S. Matoušek, P. Privitzer, M. Tribula, O. Vacek Laboratory of Biocybernetics, Institute of Pathological Physiology, First Faculty of Medicine, Charles University in Prague Abstract Nowadays, the old Comenius`s motto – “schola ludus“ (“school as a play”) has found its modern use in interactive educational programs using simulation games. Connection of the Internet and a multimedia environment serving as an audio and visual user interface with simulative models makes it possible to have a graphic feel in the virtual reality of the problem currently studied, upon connecting to the magical Internet network. By means of a simulation game it is possible to test, without any risk, the simulated object’s behaviour – e.g. trying to land with a virtual airplane or to heal a virtual patient. Through the simulation game we can test the behaviour of individual physiological subsystems, both under normal conditions and in the presence of a disorder. The Atlas of Physiology and Pathophysiology (http://www.physiome.cz), designed as a multimedia-teaching tool, which helps to explain the function of individual physiological systems, causes and symptoms of their disorders in a visual way through the Internet is one of the projects in which we want to utilize new opportunities of multimedia and simulation models. Development of the Atlas requires cooperation of many professionals: Starting from experienced teachers whose design provides the foundation of quality educational applications, system analysts responsible for creating simulation models for educational simulation games in cooperation with professionals in their field, artists creating the visuals, and finally up to programmers who “knit” together the whole application to achieve its final form. For the inter-disciplinary collective creation to be successful, specific development tools with sufficient technical support must be used in each phase of creation; such tools allow for component-based creation of simulation models, creation of interactive multimedia and their final interconnection into a compact unit based on the given design. Creative interconnection of the various professions is the key to success. The Atlas of Physiology and Pathophysiology is a freely available application. Any form of cooperation in its gradual development is welcome. Keywords: Internet, Multimedia, Simulation Games Schola Ludus in a Modern Garment Multimedia programs with simulation components for educational purposes are not only a replacement of classical textbooks. They serve as an entirely new instruction aid making it possible to explore the studied problem in virtual MEFANET 2008 reality through instruction simulation games, thus bringing quite new possibilities to explain complex problems – and this is precisely the point where the old credo of John Amos Comenius “Schola Ludus” (School as a Play), promoted by this European pedagogue as early as in the 17th century, finds its modern application. Many instruction-oriented simulators of individual physiological subsystems for free pedagogical use can be found on the Internet. Thus for example, the simulator ECGsim makes it possible to study the generation and spreading of electric potential in heart ventricles and to study the mechanism of origination of the ventricular complex QRS in various pathologies (from impulse conduction disorders to ischemias and infarctions) [14]. The heart simulator from Columbia University allows for observing the pressure-circulation curves in heart ventricles in various cardiac pathologies (valvular defects, left-sided or right-sided failure) [2]; anaesthesiological device simulators from the University of Florida provide the possibility to administer anaesthesia to a virtual patient [17] and to observe appropriate physiological responses (however, more complex simulators require paid access) etc. Complex Methods of Integrative Physiology and Teaching Complex simulators are of large importance for teaching of pathophysiology and study of pathogenesis of varied pathological conditions; such simulators include models of not only individual physiological subsystems but also their mutual connection into a more complex unit. Prof. Guyton was a pioneer of making these models. In 19972, he published an article [6] in the journal Annual Review of Physiology, whose form quite surpassed the usual forms of physiological articles of those times at the very first sight. An extensive diagram pasted in as an attachment was used as introduction, showing interconnection of essential subsystems that have an effect on circulation, by means of special symbols expressing mathematical operations. Guyton’s model was the first extensive mathematical description of physiological functions of interconnected subsystems of an organism, and it initiated development of physiological research, sometimes described today as integrative physiology. From this point of view, it was a certain milestone, which attempted at capturing the dynamics of relationships among the controls of circulation, kidneys, breathing, the volume and ionic composition of body fluids using a mathematical model, while applying a system view of physiological regulation. The Guyton’s diagram (Fig. 1) was reprinted many times in various publications (even in recent years). However, in spite of that, none of the authors reprinting the Guyton’s monumental diagram pointed out the fact that there were mistakes in the diagram. Provided that the classical Guyton’s model is implemented using current simulation tools and accurately according to 2 MEFANET 2008 the graphic scheme, the model shall not work. However, such special tools were not available at the time this diagram was designed. The diagram was made only as a figure, the very program to implement the model was written by the authors in Fortran; however, the original source code is not available today. Figure 1: Extensive diagram of physiological circulatory regulations according to A. C. Guyton et al from 1972. As our aim was to apply the original classical Guyton’s model in education of bioengineers, we had to correct the original diagram (Fig. 2). The correction required thorough revision of the entire model and system analysis of physiological regulations of the circulation system as well as numerous simulation experiments and their comparison with published results. A system of formalized physiological relationships expressed in the graphic form is the result; the system corresponds to the original model of Guyton et al [11] in its appearance but also behaviour. The model has been implemented as an interactive physiological diagram, making it possible, through simulation experiments, to understand better and deeper the physiological meaning of regulating bonds and their application in development of numerous pathophysiological conditions. We apply this diagram as an instruction teaching aid in education of physiological regulation systems for bioengineering specializations (Fig. 3). 3 MEFANET 2008 Figure 2: Corrections of the most significant errors in the graphic diagram of physiological circuit regulations according to A. C. Guyton et al. However, the diagram is not very suitable for teaching of medical students – as they require simulators whose user interface looks more like interactive images of a physiological atlas than a control circuit diagram. Simulink implementation of the (corrected) Guyton’s model created by us is available for download at www.physiome.cz/guyton. Our Simulink implementation of a much more complex version of the Guyton et al model from later years is available at the same address, as well. At the same time, very detailed description of all mathematical relationships, together with reasoning, is provided on the website. Guyton and his disciples continued constant further development of the model. In 1982, Thomas Coleman, Guyton’s disciple and collaborator, created the model “Human” intended especially for educational purposes. The model allowed for simulating numerous pathological conditions (cardiac and renal failure, haemorrhagic shock etc.), as well as the effect of some therapeutic interventions (infusion therapy, effect of some drugs, blood transfusion, artificial pulmonary ventilation, dialysis etc.) [4]. Recently, Meyers et al made the original Coleman’s model available on the web using Java implementation [13]. 4 MEFANET 2008 Figure 3: Application of the physiological regulation model according to A. C. Guyton et al in education of bioengineers. However, the model is not quite suitable for medical education; an educational simulator should be designed for teaching of medical students, the user interface of which shall evoke images from medical textbooks and monographs rather than an interactive regulation diagram The simulator Quantitative Human Physiology is the most recent result of Guyton’s disciples and followers, representing probably the most complex and extensive model of physiological functions at present times. The simulator is an extension of the original large circulatory system simulator (Quantitative Circulatory Physiology [1]) achieved by integrated connection of all important physiological systems. The model can be downloaded from the Internet [3]. We, too, created an instruction simulator “Golem” in the past, based on a complex model of integrated physiological regulations [8]. Our simulator “Golem” was focused on teaching of complex disorders of the internal environment [9]. 5 MEFANET 2008 Internet Atlas of Physiology and Pathophysiology: Explanation Using Simulation Games However, experience in application of complex models (of the Golem or QHP type mentioned above) in teaching shows that large and complex models are connected with a disadvantage from the didactic point of view, namely their complex control. The large number of input variables as well as the broad scale of options of observing the input variables require rather thorough understanding of the very structure of the simulation model on part of the user, as well as knowledge of what processes should be observed in simulations of certain pathological conditions. In the opposite case, a complex sophisticated model seems to the user only as a “complicated and not very understandable technical play” (similarly as if the user should face a complex airbus simulator without a prior theoretical instruction). Instruction models (and apparently not only complex ones with hundreds of variables) in themselves therefore are not enough for efficient use in teaching. They must be accompanied by explanation of their application – using interactive educational applications at best. The possibility of using all advantages of virtual reality to explain complex pathophysiological processes arises only upon establishing connection between explanation and simulation play. In order to link the possibilities offered by interactive multimedia and simulation models in medical teaching, we have designed the concept of an Internet computer project, the Atlas of Physiology and Pathophysiology [10], conceived as a multimedia instruction aid that should help to explain, in a visual way using the Internet and simulation models, the function of individual physiological subsystems, the causes and manifestations of their disorders – see http://physiome.cz/atlas. The Atlas thus combines explanation (using an audio and animation) with interactive simulation play with physiological subsystems models, all available for free from the Internet. Simulation Models as “Live” Interactive Illustrations The user interface of models used as the foundation for simulation plays rather evokes animated images from the printed Atlas of Physiology [15] or Atlas of Pathophysiology [16] than abstract regulation diagrams used in teaching of bioengineers (similar to those in Fig. 3). Unlike printed illustrations, however, images forming the user interface of multimedia simulators are “live” and interactive – changes of the simulation model variables are manifested by changes of the images. Using interactive illustrations thus conceived, it is possible to implement simulation plays which shall help to explain dynamic connexions in physiological systems, better than a static image or even a simple animation, and help especially to understand casual connexions in development of pathogeneses of varied diseases. 6 MEFANET 2008 Figure 4a: Interactive educational model of the buffering plasma system. Fluid level values represent concentrations. Initial condition. Figure 4b: Dilution can be invoked using the control slide; levels of all substances including CO2 concentration and hydrogen ions concentration shall become reduced. 7 MEFANET 2008 Figure 4c: Chemical equilibrium establishment in the buffering system can be engaged by pressing the button “Buffering Equilibration”; at the same time, plasma pH value returns to 7.4. Figure 4d: Respiration increases (originally decreased upon dilution) the CO2 concentration value to the original level 1.2 mmol/L. Upon establishing new chemical equilibrium, hydrogen ions concentration increases and plasma pH value decreases. 8 MEFANET 2008 The model of acid-base equilibrium in plasma can be mentioned as an example of a “pictorial” user interface in an instruction simulation play, where buffering systems in the user interface are shown as interconnected containers displaying compartments of individual substances. The model can be downloaded from: http://www.physiome.cz/atlas/acidobaze/02/ABR_v_plazme1_2.swf. The “level” in these containers represents concentration. Chemical reactions are shown as “flows of liquid” among the containers with individual buffering system components. Substances from/into metabolism, respiratory system or kidneys can “flow in or out” of the containers. Using simulation plays with this models, the development of various acidobasic equilibrium disorders can be visually explained. Fig. 4a-d shows application of this simulator in a simulation play to explain pathogenesis of dilution acidosis. Dilution of individual buffer components is shown as expansion of appropriate containers – as the amount of components in the containers remains the same, the level (representing concentration) drops. The level of hydrogen ions drops as well (Fig. 4b). By pressing the button “buffering equilibration”, chemical reactions are started in the buffering systems, visualized as “flowing in/out” of individual components. Upon dissociation of carbonic acid and weak buffering acids (denoted as HBUF in the model – represented especially by albumin and phosphates in reality), the hydrogen ions level settles on the original value again (Fig. 4c). Nevertheless, the value of carbonic acid, just like the value of CO2, remains reduced due to dissociation. However, respiration in the organism maintains the CO2 level in arterial blood on a constant level (given especially by the alveolar ventilation value). By pressing the button “respiratory regulation”, the CO2 level increases back to its original value before dilution. By pressing the button “buffering equilibration”, a chemical reaction takes place, establishing a new chemical equilibrium with increased concentration of hydrogen ions (Fig. 4d). The “Ceteris Paribus” Principle in Instruction Simulation Plays From the didactic point of view, it is always necessary to proceed from simple to more complex things in explanations. According to this principle, it is therefore suitable to use rather simple aggregated models (with few variables) during explanation, explain essential principles using these models, and then start making the model (and described physiological reality) more complex gradually. Instruction simulation plays forming part of the Atlas need not be always based on a highly complex model demanding from the calculation point of view with hundreds of variables – even a simple interactive model can be a good helper in explaining pathogenic chains of development of various pathological conditions. 9 MEFANET 2008 From the didactic point of view, it is very efficient to disconnect regulation loops in the model at first and enable the students to study the responses of the selected physiological subsystem on changes of input variables in the simulation play (however, themselves regulated in a real organism). The dynamics of behaviour in gradual changes according to a single input are observed at first, while other inputs are set on a chosen constant value (the so called „ceteris paribus“ principle). This shall enable the students to understand better the meaning of individual regulation circuits and to study the effect (of disconnected and manually controlled at first) regulation bonds on behaviour of the organism in various pathological disorders and responses to relevant therapy. Based on our experience, it is precisely this approach that leads to better understanding of the meaning of individual regulation loops and understanding of their task in pathogenesis of various diseases, as well as understanding of pathophysiological principles of relevant therapeutic interventions. Thus for example, it is not suitable to start with a simulation play with a model when explaining physiology and pathophysiology of circulation as its complexity is approximately on the same or higher level compared to the Guyton’s circulation model mentioned in the introduction (see Fig. 1). It is more advisable to choose a simple aggregated model at the beginning, making it possible to demonstrate fundamental principles of the blood circulation structure and behaviour, as well as possibilities of its affection by means of regulation. The simplest circulation system model with disconnected regulation bonds as part of our Atlas is available at: http://www.physiome.cz/atlas/cirkulace/05/ SimpleUncontrolledSimulation.swf. Its control (see Fig. 5) is very easy and serves especially to clarify fundamental relationships among individual variables of the circulatory system (i.e. pressures and flows in the pulmonary and body circulation) and essential variables affecting the pressures and flows (however, themselves regulated in neurohumoral ways). They are as follows: • Peripheral resistances (system and pulmonary); • Pumping function of the right and left ventricle – implemented using the simplest way in the model, namely as inclination of the Starling curve (expressing dependence of the minute heart volume on filling pressures in the right and left atrium); • Elasticity of arteries and veins (expressing pressure dependence on the vascular fill); • Total volume of circulating blood. 10 MEFANET 2008 The organism regulates the variables mentioned above (resistance is controlled by means of nervous and humoral regulation; myocardial frequency and inotropy modifies the shape of the Starling curve; venous tonus of large veins changes their elasticity; and the circulating blood volume is affected especially by renal activity, renin-angiotensin regulation etc.). However, these variables represent input (i.e. non-regulated) quantities in an aggregated model – the aim of the simulation play with the model is to obtain a clear notion of the meaning of these quantities for regulation of pressures, flows and distribution of the blood volume among individual parts of the bloodstream. Simulation play with this model makes it possible to explain the meaning of regulation of essential quantities of the circulatory system in pathogenesis of various circulatory system disorders to the students. Figure 5 shows a simulation play of development of right-sided circulatory failure. Figure 5: Use of a simple (non-controlled) circulatory system model to explain pathogenesis of right-sided circulation failure. See the text for more detailed explanation. The procedure is to reduce the Starling curve inclination in the right heart using the slide at first – this models reduction of contractility of the right heart 11 MEFANET 2008 upon acute right-sided circulatory failure (Fig. 5b). Minute heart volume drops to the value 3.29 L/min; mean system arterial pressure decreases to 59.56 Torr. Sympaticus responds to the blood pressure decrease by distinct vasoconstriction especially in the splanchnic region, in order to preserve perfusion of coronary blood vessels. The next step is therefore to increase peripheral system resistance by moving the slide right (Fig. 5c) – mean arterial pressure increases to 89.21 Torr; however, minute heart volume drops further from 3.29 L/min to 3.07 L/min! However, sympaticus does not affect only vasoconstriction of arterioles and subsequent increase of peripheral resistance. It also increases the tonus of large veins, which is manifested by increased pressure in them with the same blood fill – the venous tonus increase can be modelled by reduced elasticity of system veins (Fig. 5c). Reduced elasticity increases the pressure in large system veins and thus also the filling pressure in the right atrium, leading to increased minute heart volume (however, at the same time, the increase of venous pressure leads to higher filtration in capillaries and to oedemas). Mean arterial pressure increases to the normal value and it is not necessary to maintain the resistance value in the system bloodstream too high in order to preserve the pressure value – therefore the resistance should be reduced using the slide from 28.37 Torr/L/min to 19.24 Torr/L/min. The simulation play can be continued further by demonstrating the meaning of the total blood volume increase, which occurs due to activation of the renin-angiotensin-aldosterone loop (not shown in the figure). Upon increasing the circulating blood volume using the slide, it can be shown in the model that peripheral resistance as well as venoconstriction can be reduced further (i.e. elasticity of large veins can be increased) in order to maintain normal minute heart volume and normal mean arterial pressure. The simulation experiment can be furthermore used to demonstrate the effect of therapy, as well: Administration of cardiotonics can be illustrated by increasing the Starling curve inclination, and administration of diuretics can be simulated by reducing the increased circulating blood volume – pressure in large veins decreases as a consequence with subsequent reduction of oedemas. It was our intention to illustrate using the example above how simulation plays with a model shall contribute to better understanding of the meaning of individual regulation circuit application in pathogenesis of various pathological conditions and in subsequent therapeutic interventions. The Atlas as a Web-Based Application The Atlas of Physiology and Pathophysiology is currently designed as a webbased application that can be run in an Internet browser (a Flash player installed 12 MEFANET 2008 in the browser is a prerequisite). Some simulation models require Microsoft .NET framework installed on the computer (if this part is not installed, its installation is offered before installing the first simulator, which requires .NET). Explanatory chapters of the Atlas are designed as audio lectures accompanied by interactive multimedia images (see Fig. 6). Every animation is synchronized accurately with the explanatory text. Figure 6: Audio interactive lecture in the explanatory part of the Atlas of Physiology and Pathophysiology. Every explanation is accompanied by animated images synchronized with the explanatory part. Explanation can be stopped in any moment, to have a more detailed look at the accompanying animation. Explanation including the synchronized animations can also be moved backward using the slide in the bottom part of the player. However, the Internet-based Atlas of Physiology and Pathophysiology is much more than just an animated explanation with an audio track. The foundation of didactic efficiency is represented by explanation accompanied by a simulation games. Simulation models forming part of the Atlas are implemented as Flash applications and need not be installed separately (such as, for example, simulators in Figs. 4, 5 and 7) or (in more complex models) their separate installation is required directly from the Internet browser. 13 MEFANET 2008 More complex models require somewhat more complicated control – a suitable scenario is therefore important, according to which the model can be used in the simulation play as an instruction aid to explain more complicated physiological relationships. Some simulators combine the model as well as the explanatory part – simulator of mechanical properties of muscles (Fig. 7) can be mentioned as an example. Figure 7: Simulator of the skeletal muscle mechanical properties is a Flash application designed as an explanatory chapter, which includes practical exercises with the model (accessible at http://www.physiome.cz/atlas/sval/svalEN/SvalEN.html ) Other simulators can be run separately and scenarios used in their control are designed as part of relevant explanatory chapters. The complex model of blood gases transport can be given as an example; this model shall be used as an instruction aid in explanation of physiology and pathophysiology of oxygen and carbon dioxide transport. Examples of using this simulator in explanation of consequences of ventilation-perfusion relationships disorders are shown in Figs. 8a-8e. The simulator can be downloaded from our Atlas using the link: http://physiome.cz/atlas/sim/BloodyMary/. 14 MEFANET 2008 Figure 8a: Simulation play with the blood gases transport model to explain the consequences of ventilation – perfusion non-uniformity failures. Initial condition. Figure 8b: Setting of different ventilation distribution shall cause decrease of PO2 and increase of pCO2 in mixed arterial blood. 15 MEFANET 2008 Figure 8c: Slight increase of the breath frequency means achievement of pCO2 normalization in mixed arterial blood; however, PO2 still remains low. Different shape of O2 and CO2 dissociation curves is the cause – see the following figure. Figure 8d: Comparison of total concentrations and partial pressures O2 and CO2 in hyperventilated, hypoventilated alveoli and in mixed arterial blood. 16 MEFANET 2008 Figure 8e: Perfusion limitation by poorly ventilated alveoli limits admixing of hypooxygenated blood from hypoventilated alveoli, thus causing increased partial pressure of oxygen in mixed arterial blood. However, another consequence is also represented by increased resistance of the pulmonary bloodstream and development of precapillary pulmonary hypertension. Beyond the Atlas of Physiology and Pathophysiology Curtain – Creation Technology of Instruction Simulators The creation process of the Atlas takes the form of a joint work made by creative specialist's team encompassing various professions (Fig. 9): • Experienced teachers whose scenario is the foundation of a quality educational application; • System analysts, responsible in cooperation with professionals of the given field, for designing simulation models for educational simulation plays; • Artists designing the outside visual form; • Computer science engineers (programmers) whose role is to “knit” the entire application into the resulting form. For the interprofessional collective creation process described above to be efficient, each stage of the process should utilize specific development tools, with sufficient technical support, making it possible to apply component-based 17 MEFANET 2008 creation of simulation models, interactive multimedia preparation, and their final interconnection pursuant to a given scenario into a compact unit. Creative interconnection of various professions and development tools is therefore a prerequisite of success. A multimedia presentation available from the Internet, found at http://www.physiome.cz/atlas/info/01EN/index.htm discusses the technologies used in the building process; methodology of creating educational simulators is described in [12]. Figure 9: Atlas of Physiology and Pathophysiology is a joint work of a multidisciplinary team of pedagogues, system analyst, artists and computer scientists. In its process of creation, we strive to connect specialists of various professions as well as the development tools. Foundation of an e-learning Educational Application – Scenario of Good Quality The foundation of every explanatory chapter of the Atlas is represented by a quality scenario, designed by an experienced pedagogue. High attention must be paid to preparing the scenario. According to our experience, underestimating of thorough scenario preparation is paid for dearly by the necessity of unnecessary 18 MEFANET 2008 iteration steps in development of the educational application and in subsequent extension of the development time. The scenario must include a detailed proposal of assignment for the artist concerning the graphic appearance of every individual page, including animations, and the interactive behaviour proposal. The final graphic appearance is then up to the artist cooperating with the author of the given chapter. At the same time, the scenario must include key points of synchronizing the audio track with beginnings of individual animations. When the explanation is accompanied by a simulation play (in the form of “training” using the simulation model), the scenario according to which the students should manipulate with the model must be thought over carefully so that the model behaviour clarifies those relationships, which are rather difficult to explain without a simulation play with the model (see the example of simulation plays application in Figs. 4, 5, 8). Interactive Animations Built using the Threads of Simulation Models The making of interactive animated images (interconnected with explanations and simulation models) is frequently and wrongly underestimated – the truth is that precisely the graphic appearance of an educational application is frequently the aspect which “sells“ the e-learning product to potential users from the marketing point of view. However, at the same time it should be noted that a professional artistic appearance of educational applications is demanding as for financial as well as human resources. Every image is an author’s work of art. The number of artists on the labour market who have mastered making of interactive computer animations is not really excessive. Moreover, thanks to development of Internet media, digital television, computer gaming industry and other information technology branches, the demand for these professionals on the labour market is rather increasing. We tried to resolve the lack of interactive graphics professionals years ago already by establishing narrow working cooperation with Václav Hollar School of Fine Arts where we have built our external workplace – Interactive Graphics Laboratory. Our activities focused on training the teachers at first (and later students, as well) of the school in the field of using modern computer graphics tools, and thanks to our joint efforts we have created a new, three-year specialization “Interactive Graphics” at this school (at present, there are graduates from two year-classes already). We provide especially teaching of “Interactivity Mastering” specialization at the Václav Hollar College of Fine Arts, as well as guidance of the students’ practical experience. The students (and 19 MEFANET 2008 also graduates today) of this college are those who provide the prevailing part of artistic appearance of our educational applications. Until today, we have used especially Adobe products in designing interactive graphics – especially Adobe Flash and Adobe Flex. Lately we have started to turn to the Microsoft development environment, which offers very suitable tools allowing for good cooperation between programmers and artists – Microsoft Expression Blend (on part of the artists) and Visual Studio 2008 (with the WPF framework on part of the programmers) [7]. “Brain” of the Educational Simulator – Mathematical Model The core of the simulator consists in a mathematical model representing a formalized (mathematical) description of the physiological reality. Special development tools exist for development of mathematical models. In our laboratory, we have been using the environment Mathworks Matlab/Simulink on a long-term basis. We have developed a special library of formalized physiological relationships Physiology Blockset in Simulink, available for free on our website (http://www.physiome.cz/simchips). Today, Mathworks development tools (Matlab and Simulink) rank among well-established industrial standards. As a rule, Simulink operates using connected blocks. Signals are transmitted through links between individual blocks; the signals serve to transfer values of individual variables from the output of one block to inputs of other blocks. Input information is processed in the blocks to output information. Interconnection of blocks in Simulink therefore reflects rather the calculation procedure than the very structure of the modelled reality. This is the so called causal modelling. Recently, development of new, the so called “acausal” tools occurred, intended for making of simulation models. An essential innovation introduced by such tools consists in declarative (thus acausal) writing of models when individual parts of the model are described directly as equations and not as an algorithm to solve the equations. These tools operate using interconnected components in which equations are defined. The equations do not express assignment (i.e. saving of the calculation result of an assigned statement into a given variable) but a definition of relationships among variables (as is the custom in mathematics and physics). These components (representing instances of classes with equations) can be connected through exactly defined interfaces – connectors. The important aspect is the fact that by connecting the components, sets of equations in individual components become connected with each other. A typical representative of acausal modelling tools is the new objectoriented programming language Modelica [5]. Originally, it was developed in 20 MEFANET 2008 Sweden and now is available both as an open-source version (developed under the auspices of the international organization Modelica Association, http://www.modelica.org/ ), and in two commercial implementations (Dymola of the company Dynasim AB and MathModelica of the company MathCore). Mathworks, the producer of well-established Matlab/Simulink tools, responded to the new trends by designing a special Simulink library Simscape and related domain libraries SimElectronics, SimHydraulics, SimMechanics etc. In accordance with modern trends, lately we have expanded the development tools used in making mathematical models (i.e. Matlab/Simulink) by tools using the acausal modelling language – Modelica. We are in the process of making our own development tool for this perspective modelling language, which shall make it possible to generate the resulting model in the environment Microsoft .NET, thus facilitating conversion of created and debugged models in the environment in which the very educational simulator shall be designed. Development of the Very Educational Simulator Development of the educational simulator is demanding programming work, linked to the results of the mathematical model development and to the created elements of interactive graphics. In accordance with the designed scenario, graphic elements of the user interface must be “knitted” together with the mathematical model programmed in the background. In the past, we have used the development environment Control Web to create simulators; this environment was originally designed to make industrial applications (control, management, control centres design) using a PC. Control Web provides numerous tools to create a complex user interface, allows for connecting Flash animations to the interface and to control it according to values of variables on the background. A Control Web application in its classical industrial deployment form communicates through a software controller of the hardware control and measurement card with the industrial technological device. Using the Control Web environment to create simulators, we have programmed a special software controller in whose core a simulation model is programmed. Control Web was thus “cheated”: It did not communicate with some industrial technology through the relevant software input/output channels but with a simulation model in the controller (see Fig. 10). In order to facilitate development of “virtual measurement/control card” controllers containing a simulation model and not to have to write such a controller for each model “manually” in the C programming language, we have developed a special program that enables us to generate the source text of the relevant virtual controller in C directly from a Simulink diagram. This has 21 MEFANET 2008 Figure 10: Simulator development in the Control Web environment, originally designed for visualization of control and measurement industrial applications. The simulation model is programmed as a software controller of a (non-existent) virtual card, and the application under development in Control Web communicates with the model as if it was a technological device. allowed for simple and quick modification of the controller for Control Web upon making various adaptations and new versions of the simulation model. For example, in Control Web we have created the simulator Golem [8] and as for the Atlas of Physiology and Pathophysiology, the kidneys simulator. Currently, we are using classical programming tools to design the simulators. As far as simple Flash simulators are concerned, these are programmed directly in ActionScript, thus the programming language for Flash applications. As for the Atlas of Physiology and Pathophysiology, the simulator of mechanical properties of skeletal muscles is programmed in this language (see Fig. 7). However, the ActionScript language development environment is not sufficient for more complex simulators. Therefore we use the Microsoft Visual Studio .NET programming environment in our laboratory, which, especially its latest version, provides extensive possibilities for programming work. In this environment, we are no more limited by “preset” elements of the user interface as is the case of Control Web, and moreover we can use all the power of a 22 MEFANET 2008 Figure 11: Making simulators in the .NET environment. The model is programmed as a component of the .NET environment (the so called .NET assembly) – preferably by means of automatic generation from models development tools (from the Matlab/Simulink or Modelica programming language environment). Graphic components are created in Adobe Flash or Microsoft Expression Blend. Creating animations in Expression Blend offers the advantage of creating both the animations as well as the simulator in the common .NET platform modern software application development tool; however, on the other hand, we must program ourselves many elements of the user interface for the application under development. In order to make writing of the simulators easier (and not to have to program an already debugged simulation model “manually” in Visual Studio .NET), here, too, we have developed a special software tool [12] to automatically generate the simulation model from Simulink in the form of a component for the .NET environment (see Fig. 11). To facilitate conversion of mathematical models from the Modelica language environment into .NET, we are extending OpenModelica compiler (as part of the international project Open Modelica) to C# simulation code generation (see Fig. 11). 23 MEFANET 2008 Besides interconnection with the model creation tools, easy connection to graphic components of the user interface under development is important, as well. Flash components can be incorporated into the simulator in the process of creation through an Active X component. The new .NET environment version also introduces entirely new possibilities of creating graphic components. Thanks to the new WPF (Windows Presentation Foundation) technology, complex graphic components can be created directly in the .NET platform, which include animations, vector graphics, 3D elements etc. (similarly as in Adobe Flash or even with potentially greater possibilities). It is important that the graphic user interface under development is directly integrated with the .NET platform, which removes the need of bridging the heterogeneous worlds of .NET and Adobe Flash in the simulators development. Besides the above, the development tool to create graphic components (Microsoft Expression Blend) provides considerable support of cooperation of artists and programmers [13] thanks to the interface, which separates (and connects) the work of an artists and programmer. An artist can create complex animations in this tool very comfortably (using a graphic user interface), and the animations can be controlled easily. The programmer specifies such control by connecting to relevant program modules (the animations can be thus controlled by the simulation model on the background similarly as puppets on strings). Currently, we have trained artists in using this perspective tool. Moreover, the new tool Silverlight shall make it possible to develop simulators, which can run directly in the Internet browser (even on computers with different operating systems – it is only necessary to install the relevant plugin in the browser). New development tools of Microsoft provide a very perspective environment for development of simulators, and for the future, they represent our main development platform. Conclusion Educational applications using simulation play, available through the web, represent a new educational aid, very efficient from the didactic point of view in explaining complex pathophysiological processes. However, their process of creation is not very easy – it requires multidisciplinary team cooperation and use of suitable development tools. Their making is a combination of research and development work. Research work consists in formalizing physiological reality by designing 24 MEFANET 2008 mathematical models, while development work is the very creation of multimedia simulators, which make use of the mathematical models designed. As our contribution to making modern e-learning tools which combine multimedia explanation with simulation plays, we have established the Internetbased Atlas of Physiology and Pathophysiology project. The Atlas project is open-based – We shall make its results available in the Czech language for all those interested, and in the course of its development, we shall welcome cooperation with all who would like to take part in its gradual building process. References [1] Abram S. R., Hodnett, B. L., Summers R. L., Coleman T. G., Hester R.L., (2007), "Quantitative Circulatory Physiology: An Integrative Mathematical Model of Human Physiology for medical education.", Advanced Physiology Education, 31 (2), 202 – 210. [2] Burkhoff D. [2008, August] The Heart Simulator. [Online]. http://www.columbia.edu/itc/hs/medical/heartsim/ [3] Coleman T. (2008, September). Quantitative Human Physiology [Online]. Available: http://physiology.umc.edu/themodelingworkshop/ . [4] Coleman T. G. Randall J.E., (1983). "HUMAN. A comprehensive physiological model.", The Physiologist, vol. 26, (1): 15-21. [5] Fritzson P. (2003). Principles of Object-Oriented Modeling and Simulation with Modelica 2.1, ISBN 0-471-47163-1,Wiley-IEEE Press. [6] Guyton AC, Coleman TA, and Grander HJ. (1972). "Circulation: Overall Regulation." Ann. Rev. Physiol., 41, p. 13-41. [7] Januszewski K., Rodrigues J. (2008 November) The new iteration. How XAML transform the collaboration between designers and developers in window presentation foundation. [Online] Available: http://windowsclient.net/wpf/white-papers/thenewiteration.aspx [8] Kofránek J. Anh Vu L. D., Snášelová H., Kerekeš R., Velan T., (2001). "GOLEM – Multimedia simulator for medical education." In Patel, L., Rogers, R., Haux R. (Eds.). MEDINFO 2001, Proceedings of the 10th World Congress on Medical Informatics. London: IOS Press, 1042-1046. [9] Kofránek J., Andrlík M, Kripner T and Matoušek S., (2005). "Biomedical Educations with Golem." In: Interdisciplinary Aspects of Human-Machine Co-existence and Co-operation, edited by Mařík V, Jacovkis P, Štěpánková O and Kléma J. Prague: Czech Technical University in Prague, 142-151. 25 MEFANET 2008 [10] Kofránek J., Matoušek S., Andrlík M., Stodulka P., Wünsch, Z., Privitzer P., Hlaváček J., Vacek O., (2007). "Atlas of physiology - internet simulation playground." In. Proceedings of the 6th EUROSIM Congress on Modeling and Simulation, Vol. 2. Full Papers (CD). (B. Zupanic, R. Karba, S. Blažič Eds.), University of Ljubljana, ISBN 978-3-901608-32-2, MO-2P7-5, 1-9. The article is available at http://patfbiokyb.lf1.cuni.cz/wiki/_media/clanky/development_of_web_accessible_me dical_simulators.pdf?id=wiki%3Auser%3Aseznam_publikaci&cache=cache [11] Kofránek J, Rusz J., Matoušek S., (2007). "Guytons Diagram Brought to Life - from Graphic Chart to Simulation Model for Teaching Physiology." In Technical Computing Prague 2007. 15th Annual Conference Proceedings. Full paper CD-ROM proceedings. (P. Byron Ed.), Humusoft s.r.o. & Institute of Chemical Technology, Prague, ISBN 978-80-7080-658-6, 1-13, 2007. The article including source program codes is available at http://dsp.vscht.cz/konference_matlab/MATLAB07/prispevky/kofranek_rus z/kofranek_rusz.pdf [12] Kofránek J. (2008), "Design of Educational simulators, What is behind the curtain". (in Czech). In: Mefanet report 01 Institut biostatistiky a analýz, Masarykova Univerzita. str. 60-72 [13] Meyers R., Doherty C, Geoffrion L. (2008, September). Web-Human Physiology Teaching Simulation (Physiology in Health, Disease and During Treatment) [Online]. Available: http://placid.skidmore.edu/human/index.php [14] Oostendorp T. (2008,September). ECGSim, version1.3 [Online]. Available: http://www.ecgsim.org/. [15] Silbernagl S., Despopoulos A. (2003). Color Atlas of Physiology. 5th edition. Georg Thieme VerlagThieme., New York, ISBN 9781604061147 [16] Silbernagl, S., Lang, F. (2000) Color Atlas of Pathophysiology. Georg Thieme, New York, ISBN 9781604061444 [17] University of Florida. (2008,September). Virtual Anaesthesia Machine, Simulation Portfolio. [Online] Available: http://vam.anest.ufl.edu/simulations/simulationportfolio.php Acknowledgements: Development of the Atlas and educational simulation models takes place under the support of the MŠMT (Ministry of Education, Youth and Sports) grant 2C06031 – “e-Golem”, research MSM0021620806 and the company Creative Connections s.r.o. 26
Podobné dokumenty
medsoft 2008 - Laboratoři biokybernetiky a počítačové podpory výuky
aplikaci.In MEDSOFT 2006, str. 171-176, Agentura Action-M, ISBN
80-86742-12-1, Praha, 2006
[3] http://blogs.msdn.com/johngossman/archive/2005/10/08/478683.aspx
[4] http://www.orbifold.net/default/?...
Komplexní modely integrovaných fyziologických systémů
particular in modelling acid‐base homeostasis. Our implementation model Hummod
(http://physiome.cz/hummod) will provide a theoretical basis for training simulators. In its
implementation we will ...
od obrázku k simulačnímu modelu. - Laboratoři biokybernetiky a
Vlastní popis modelu byl pouze ve formě základního (ale přesto
plně ilustrativního) obrázku. Komentáře a zdůvodnění formulací
matematických vztahů byly velmi stručné. Např. „bloky 266 až 270
počíta...
2012 - Ústav patologické fyziologie
a psychofyzikálních experimentů na sluchové dráze.
Dále jsou studovány zákaznické akustické sestavy
a softwarové a hardwarové emulace a implementace
algoritmů užitých při kódování zvuku v multimédi...
ročník 4 – číslo 3/2010
k neúplné blokádě RAAS [16,17]. Při podání ARB, který
blokuje vazbu ANG-II na receptory AT1, dochází ke značnému zvýšení koncentrací ANG-II, čímž se mohou částečně zachovat signální funkce receptor...
saMOTNÝ sIMULÁTOR NEsTačÍ Zuzana dukátová
stavů i jako podklad pro klinické trenažéry využívající robotizovanou figurínu
pacienta mají velký význam komplexní simulátory, zahrnující modely
nejen jednotlivých fyziologických subsystémů, ale i...
Časoprostorová diferenciace struktury úmrtnosti dle příčin
republiky rovněž silně ovlivněn procesy urbanizace,
demografického a epidemiologického přechodu již
po několika desetiletí.
Z příslušných důvodů má tematika věnující se
prostorové distribuci indiká...
Akauzální modelování - nový přístup pro tvorbu simulačních her
jazykem, který je přímo postaven na akauzálním zápisu modelů je Modelica. Pro modelování rozsáhlých a komplexních systémů je velmi vhodným
prostředím.
Klíčová slova
Akauzální modelování, Kauzální m...
Co je dobré vědět o maligním lymfomu
Když mi bylo 22 let, prožívala jsem jedno z nejlepších období života. Studovala jsem,
cestovala, užívala si mládí a v létě 2004 jsem jela na letní brigádu do USA. Tam jsem začala
být hodně unavená,...