MODELICA programming language
Dotaz
Zobrazit nápovědu
Modely vytvářené pomocí klasických simulinkových sítí přehledně graficky vyjadřují jednotlivé matematické vztahy. 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 pak odráží spíše postup výpočtu, než vlastní strukturu modelované reality. Hovoříme o tzv. kauzálním modelování. Při vytváření a hlavně při prezentování a popisu modelu je ale důležité, aby vlastní struktura modelu, spíše než vlastní algoritmus simulačního výpočtu, vystihovala především fyzikální podstatu modelované reality. Proto se v moderních simulačních prostředích začíná stále více uplatňovat deklarativní (akauzální) zápis modelů, kdy v jednotlivých komponentách modelu popisujeme přímo rovnice a nikoli algoritmus jejich řešení. Propojením jednotlivých komponent dochází k propojení soustav rovnic mezi sebou. Propojením komponent pak nedefinujeme postup výpočtu, ale modelovanou realitu. Způsob řešení rovnic pak “necháváme strojům”. Moderním simulačním jazykem, který je přímo postaven na akauzálním zápisu modelů je Modelica. Jazyk se v poslední době velmi využívá v průmyslových aplikacích, v biomedicínských aplikacích však zatím málo. Praxe však ukazuje, že Modelica je pro modelování biomedicínských systémů velmi vhodným nástrojem, zvláště pro modelování rozsáhlých a komplexních systémů pro lékařské výukové trenažéry. V tomto přehledovém článku je uveden praktický příklad modelování hemodynamiky oběhového systému.
- Klíčová slova
- modelování,
- MeSH
- biologické modely MeSH
- hemodynamika fyziologie MeSH
- krevní oběh fyziologie MeSH
- navrhování softwaru MeSH
- plicní oběh fyziologie MeSH
- počítačem řízená výuka * MeSH
- počítačová simulace * MeSH
- programovací jazyk MeSH
- srdce fyziologie MeSH
- studium lékařství * MeSH
- uživatelské rozhraní počítače MeSH
- Publikační typ
- práce podpořená grantem MeSH
- přehledy MeSH
Po zkušenostech s modelováním velkých systémů lidské fyziologie jsme navrhli způsob jak propojit modelování hydrauliky kapalin se standardními komponenty jazyka Modelica. V Modelica Standard Library (MSL) je hydraulická „fluid doména“ poměrně dobře rozpracována v komponentech Modelica. Fluid i Modelica.Media... Naše propojení spočívá v definování kompatibilních knihovních balíčků pro definování tělesných tekutin jako alternativních médií a zároveň v definování konverzí mezi našimi konektory a tím pádem i se všemi komponenty v knihovnách Chemical a Physiolibrary. Vzniká tak plně modulární přístup, kde je možné navzájem kombinovat média i různé komponenty z našich i ze standardních knihoven jazyka Modelica. Tímto způsobem je pak možné reprezentovat i složité modely, které detailně integrují chemickou, buněčnou, tkáňovou i systémovou úroveň.
Vytvořili jsme novou technologii tvorby webových simulátorů BodyLight.js, která kombinuje moderní internetové technologie (JavaScript, ECMA6, HTML5, WebAssembly), moderní na rovnicích založený modelovací jazyk (Modelica), nové standardizované rozhraní simulačních modelů (Functional Mock-up Interface, verze 2), simulační runtime běžící v prohlížeči, využívají technologii WebAssembly a grafické vizualizace, vytvářené pomocí Adobe Animate... Na tvorbu finální aplikace jsme napsali nástroj nazvaný Composer, který umožňuje vizuální tvorbu webových stránek, propojení interaktivních animací a ovládacích prvků (posuvníků, tlačítek a přepínačů) se simulačním modelem do výsledné výukové aplikace. Simulátor je realizován jako interaktivní graf či obrázek propojený se simulačním modelem v pozadí. Výsledkem je webová aplikace s interaktivními simulátory spustitelnými přímo v internetovém prohlížeči.
Ako jednoducho zložiť funkčný matematický fyziologický model a nezašpiniť si ruky algebricko-numerickými výpočtami? Odpoveďou je použitie jazyka Modelica a knižnice Physiolibrary (www.physiolibrary.org), ktorá vám poskytne najpotrebnejšie zákony z chemickej, hydraulickej, osmotickej, či tepelnej domény v podobe grafických komponentov. Tieto komponenty sú navrhnuté na veľmi intuitívne použitie. Ich grafické prepájanie spája premenné na rovnosť a s Kirchhoffovými zákonmi toku. Vznikajú tak schémy akýchsi fyziologických obvodov, kde každá z daných domén má svoje úsilie (v elektrickom obvode - napätie) a tok (v elektrickom obvode - prúd). Chemická doména má koncentráciu a tok látky, hydraulická má tlak a objemový tok, tepelná má teplotu a tok tepelnej energie a osmotická doména má osmolaritu a membránou prepustený objemový tok. Všetky ukážky (allosterický model hemoglobínu; cirkuláciu krvi; bunky v hypo/hyper-tonickom prostredí; model tepelných tokov v tele) je možné namodelovať takmer výhradne použitím myši (drag&drop). Výnimkou je snáď len zadávanie parametrov jednotlivým použitiam daných knižničných bločkov. A to je dokonca možné v rôznych „fyziologických“ fyzikálnych jednotkách a systém sám zabezpečí ich kompatibilitu i v prípade prepájania s ľubovoľnou inou knižnicou v jazyku Modelica. Najväčším fyziologickým modelom využívajúci knižnicu Physiolibrary je model HumMod Golem Edition, ktorý pri kompilácii hlási 90tis. skalárnych rovníc, 5tis. parametrov a 131 diferenciálnych stavov. Nie je nutné odvodzovať stále dokola tú istú sústavu rovníc, ani za každú cenu zminimalizovať počet premenných. A už vôbec nie optimalizovať výpočty na rýchlosť či pamäť. Ukazuje sa, že tieto zautomatizovateľné veci zvládajú kompilátory a prostredia jazyka Modelica veľmi dobre. Navyše sú používané a dobre otestované i v technickom vývoji a v priemysle.
Cíle: Matematické modelování v medicíne (fyziologii) se objevuje ve výzkumu, klinické praxi i výuce. Pro implementaci modelu existuje rada vhodných jazyku a modelovacích nástroju. Pro lepší názornost pri používání modelu pri výuce vznikají grafické simulátory. Je treba, aby spolu mohli tvurci modelu lépe spolupracovat. Proto by melo být možné propojit modely napsané v ruzných jazycích. Výukové simulátory musí být pro studenty i vyucující dobre dostupné. Nutnost instalace aplikace muže být prekážkou. Je potreba zlepšit možnosti sdílení modelu napsaných v jazyce Modelica. Metody: Standardizované rozhraní FMI umožnuje propojení modelu napsaných v rozdílných jazycích. Modely využívané ve výuce jsou vytváreny na platforme .NET, která umožnuje jejich spouštení v prohlížeci. Vzniká editor modelu v jazyce Modelica spustitelný v prohlížeci. Bude propojený s webovým úložištem modelu. Výsledky: Byl implementován simulacní runtime, solver a simulacní centrum v jazycích .NET. Jsou využívány ve webových výukových simulátorech. Budou využity také ve spojení se vznikajícím webovým editorem modelu.
Background: Mathematical modelling in medicine (physiology) takes place in research, clinical practice and learning. There are several suitable modelling languages and tools for physiological model implementation. Graphical simulators are created in order to make models used in teaching more illustrative. Objectives: It is important to make model developers' cooperation easier. For this reason it should be possible to interconnect models written in different languages. Elearning simulators must be well available for students and teachers. Necessity to install the application can be an obstruction. Methods for sharing models written in Modelica language should be enhanced. Methods: Standardised interface FMI allows interconnection of models written in different languages. E-learning models are developed on .NET platform. It enables them to run in web browser. The editor for models written in Modelica is being developed. It will run in browser and will be interconnected with web based model repository. Results: Simulation runtime, solver and simulation centre was implemented in .NET languages. They are used in web e-learning applications. They will be also used together with web-based model repository, that is being developed now. Conclusions: New tools will simplify model creation and interconnection. They will also improve collaboration of model developers.
- Klíčová slova
- model, simulace, diferenciální rovnice, solver, doménově specifický jazyk, blokově orientovaný / akauzální jazyk, simulátor, .NET, výuka, webový repositář modelů,
- MeSH
- financování organizované MeSH
- fyziologie metody přístrojové vybavení statistika a číselné údaje MeSH
- statistické modely MeSH
- statistika jako téma MeSH
- teoretické modely MeSH
- výchova a vzdělávání metody trendy MeSH
V zimním semestru 2011 jsme odučili první semestr inovovaného předmětu Modelování a simulace pro magisterský obor Biomedicínské inženýrství na Katedře kybernetiky FEL ČVUT. Těžiště inovace spočívalo zejména ve změnách cvičení – oproti minulým letům, kdy se na cvičení vyučoval jazyk MATLAB/Simulink, rozhodli jsme se zacílit na moderní jazyk Modelica, což si vyžádalo kompletní revizi předmětu. Získané poznatky se dají využít při výuce jakéhokoli předmětu, kde cvičíme zejména dovednosti. Jelikož jazyk není syntakticky složitý, prakticky od začátku jsme začali pracovat na jednoduchých modelech fyziologických procesů. Důraz byl kladen zejména na analýzu a pochopení modelu, čímž se studenti učili nejen chápat části fyziologie (jejíž základy již mají z minulých předmětů), ale i analyticky přemýšlet a skládat si souvislosti. Stavěli jsme před studenty náročná témata, což povětšinou vedlo k hlubšímu zájmu a pochopení látky. Předmět patřil mezi časové náročné, měl domácí úlohu na každou hodinu (cca 4h domácí práce týdně), testy v semestru a semestrální práci (cca 50h). S náročnými úkoly však musí být cvičící vždy připraveni a ochotni pomoci a vysvětlit. Zejména u méně zorientovaných studentů bylo třeba mnoho úsilí proto, aby z předmětu neodcházeli frustrováni. Studenti FEL obecně nejsou zvyklí chodit konzultovat, přesto se nám podařilo je na tuto jinde běžnou praxi navyknout. V článku prezentujeme výukové postupy a jejich zhodnocení, některé klíčové postřehy, dále srovnáváme vývojová prostředí a praktickou využitelnost znalostí pro absolventy.
An innovated subject, Modelling and Simulation, was taught for the first time in the winter semester of 2011 for the master's course Biomedical Engineering at the Department of Cybernetics, Faculty of Electrical Engineering (FEE), Czech Technical University (CTU). The innovation consisted particularly in modifications of the seminars – unlike previous years when the seminars had been based on the instructional language MATLAB/Simulink, we decided to focus on the modern language Modelica, which required revising the subject completely. The knowledge gained can be used in the teaching of any subject focused specifically on training the skills. Given that the syntax of the language is not complicated, simple models of physiological processes could be worked on virtually from the beginning. An emphasis was laid particularly on the model analysis and understanding, meaning that the students learned not only to understand parts of physiology (whose basics they had gained in previous subjects), but also to develop analytical thinking and find connections. The students could be faced with demanding topics, which usually led to a deeper interest and understanding of the matter. The subject was one of the more time demanding ones, homework was given for every lesson (approx. 4 hours of homework weekly), tests during the semester and a semester paper (approx. 50 hours). However, the trainers must always be ready and willing to help and provide explanation when demanding tasks are handled. A lot of effort was needed particularly in less oriented students to make sure they did not leave the class frustrated. In general, FEL students are not used to attend consultations; in spite of that, we succeeded in making them become accustomed to this practice quite common elsewhere. The article presents teaching procedures and their assessment, some key observations, and a comparison of the development environments and applicability of the knowledge for graduates.
BACKGROUND: Simulators used in teaching are interactive applications comprising a mathematical model of the system under study and a graphical user interface (GUI) that allows the user to control the model inputs and visualize the model results in an intuitive and educational way. Well-designed simulators promote active learning, enhance problem-solving skills, and encourage collaboration and small group discussion. However, creating simulators for teaching purposes is a challenging process that requires many contributors including educators, modelers, graphic designers, and programmers. The availability of a toolchain of user-friendly software tools for building simulators can facilitate this complex task. OBJECTIVE: This paper aimed to describe an open-source software toolchain termed Bodylight.js that facilitates the creation of browser-based client-side simulators for teaching purposes, which are platform independent, do not require any installation, and can work offline. The toolchain interconnects state-of-the-art modeling tools with current Web technologies and is designed to be resilient to future changes in the software ecosystem. METHODS: We used several open-source Web technologies, namely, WebAssembly and JavaScript, combined with the power of the Modelica modeling language and deployed them on the internet with interactive animations built using Adobe Animate. RESULTS: Models are implemented in the Modelica language using either OpenModelica or Dassault Systèmes Dymola and exported to a standardized Functional Mock-up Unit (FMU) to ensure future compatibility. The C code from the FMU is further compiled to WebAssembly using Emscripten. Industry-standard Adobe Animate is used to create interactive animations. A new tool called Bodylight.js Composer was developed for the toolchain that enables one to create the final simulator by composing the GUI using animations, plots, and control elements in a drag-and-drop style and binding them to the model variables. The resulting simulators are stand-alone HyperText Markup Language files including JavaScript and WebAssembly. Several simulators for physiology education were created using the Bodylight.js toolchain and have been received with general acclaim by teachers and students alike, thus validating our approach. The Nephron, Circulation, and Pressure-Volume Loop simulators are presented in this paper. Bodylight.js is licensed under General Public License 3.0 and is free for anyone to use. CONCLUSIONS: Bodylight.js enables us to effectively develop teaching simulators. Armed with this technology, we intend to focus on the development of new simulators and interactive textbooks for medical education. Bodylight.js usage is not limited to developing simulators for medical education and can facilitate the development of simulators for teaching complex topics in a variety of different fields.
- MeSH
- internet MeSH
- lidé MeSH
- software normy MeSH
- studium lékařství metody MeSH
- uživatelské rozhraní počítače * MeSH
- Check Tag
- lidé MeSH
- Publikační typ
- časopisecké články MeSH
- práce podpořená grantem MeSH
Práce se zabývá modelováním oxygenátoru v ECMO pomocí modelovacího jazyka Modelica. Tento virtuální oxygenátor by po propojení s modelem HumMod Golem Edition mohl sloužit pro výuku studentů medicíny, či biomedicínského inženýrství. ECMO je obdoba mimotělního oběhu, s tím rozdílem, že jeho součástí není rezervoár, kde se kumuluje žilní, venózní krev. Používá se jako náhrada srdce a plic v průběhu složitých operačních zákroků, či pomáhá přemostit dobu čekání na transplantaci atd. Oxygenátor v tomto přístroji slouží k ohřevu a okysličení krve, která se vrací pacientovi do cévního systému.
The paper discusses modelling an oxygenator in ECMO using the modelling language Modelica. When connected to the HumMod Golem Edition model, this virtual oxygenator could be used for courses attended by medical students or for biomedical engineering. ECMO is an analogue of extracorporeal circulation with the difference that it does not include a reservoir where venous blood would be cumulated. It is used as heart and lung replacement during complex surgeries, or to bridge the waiting time for a transplantation, etc. The oxygenator in this device is used to warm up and oxygenate blood returned to the patient’s vascular system.
Integrativní modely lidské fyziologie propojují jednotlivé fyziologické subsystémy do jednoho celku. Jsou velmi rozsáhlé (obsahují tisíce proměnných) a reprezentují formalizovaný popis vzájemného propojení fyziologických regulací. Problematika formalizace fyziologických systémů se stala součástí řady mezinárodních projektů (např. celosvětového programu „PHYSIOME“, nebo evropského program „VIRTUAL PHYSIOLOGICAL HUMAN“). Rozvoji rozsáhlých modelů lidské fyziologie napomáhá i nová generace (tzv. equation-based) simulačních prostředí, zejména jazyk Modelica. Tyto modely mohou sloužit pro vysvětlení kauzálních souvislostí patogeneze řady onemocnění, mohou se uplatnit ve vyhodnocování klinických testů i jako jádro sofistikovaných lékařských trenažérů.
The integrative models of human physiology connect individual physiological subsystems into a single unit. They are very large (contain thousands of variables) and represent a formalized description of interconnected physiological regulations. The issue of formalization of physiological systems became part of series international projects (e.g. worldwide program "PHYSIOME", or European program "VIRTUAL PHYSIOLOGICAL HUMAN"). The development of large-scale models of human physiology was facilitated by new generation (i.e. equation-based) simulation environment, especially by Modelica language. These models can be used to explain the causal relations of the pathogenesis of many diseases; they can be applied in the evaluation of clinical trials as well they can be used in the core of sophisticated medical simulators.