Nástroj na vizualizáciu dynamických systémov

Študent
Ivan Dyshliuk
Kontakt
dyshliuk1@uniba.sk
Školiteľ
doc. RNDr. Martin Takáč, PhD.

Zadanie

Anotácia

Cieľom práce je vytvoriť pedagogickú pomôcku pre vysvetlenie základných typov dynamických systémov popísaných lineárnymi aj nelineárnymi diferenciálnymi rovnicami viacerých premenných. Nástroj by mal umožniť nastavenie parametrov / rovníc a následné vizualizácie časového priebehu premenných aj ich fázový portrét.

Cieľ
  1. Naštudovať základy dynamických systémov .
  2. Urobiť prehľad existujúcich nástrojov na ich vizualizáciu.
  3. Implementovať vizualizačný nástroj pre základné typy dynamických systémov.

Zoznam zdrojov

  1. Ermentrout B. XPPaut: The Differential Equations Tool. Dostupné na: odkaz
  2. Simantics System Dynamics. Simantics.org. 2024. Dostupné na: odkaz
  3. Visualization of Dynamical Systems – Max Planck Institute for the Physics of Complex Systems. 2023. Dostupné na: odkaz
  4. DynaSys. SourceForge. 2022. odkaz
  5. GRÖLLER E., LÖFFELMANN H., WEGENKITTl R., 1999. Visualization of dynamical systems. Future Generation Computer Systems, 15. odkaz
  6. ALLIGood K. T., SAUER T. D., YORK J. A., 1996. Chaos: An Introduction to Dynamical Systems. Springer. odkaz
  7. STROGATZ S. H., 2018. Nonlinear Dynamics and Chaos: With Applications to Physics, Biology, Chemistry, and Engineering. 2nd Edition. CRC Press. odkaz
  8. SINAI Y. G., 1970. Dynamical Systems with Elastic Reflections. Russian Mathematical Surveys, 25(2): 137–189. odkaz
  9. STERMAN J. D., 2000. Business Dynamics: Systems Thinking and Modeling for a Complex World. odkaz
  10. MUNZNER T., 2014. Visualization Analysis and Design. AK Peters. odkaz
  11. OpenJFX. Canvas – JavaFX API Documentation. odkaz
  12. OpenJFX. GraphicsContext – JavaFX API Documentation. odkaz
  13. ObjectHunter. ExpressionBuilder – exp4j 0.4.8 API Documentation. odkaz
  14. Oracle. Preferences – Java SE 21 API Documentation. odkaz
  15. Oracle. ResourceBundle – Java SE 21 API Documentation. odkaz
  16. OpenJFX. JavaFX CSS Reference Guide. odkaz
  17. Oracle. ImageIO – Java SE 21 API Documentation. odkaz
  18. LORENZ E. N., 1963. Deterministic Nonperiodic Flow. Journal of the Atmospheric Sciences, 20(2), 130-141. odkaz
  19. Apache Maven. Introduction – Apache Maven. Apache Software Foundation. odkaz

Už napísané / materiály

Denník

16.2 – 22.2.2026
  • Vytvoril som webovú stránku k bakalárskej práci.
  • Vyhľadal som a preštudoval nové zdroje k téme vizualizácie dynamických systémov.
23.2 – 1.3.2026
  • Integroval som knižnicu exp4j a umožnil zadávanie diferenciálnych rovníc ako textových matematických výrazov.
  • Implementoval som pridávanie a odstraňovanie premenných vrátane ošetrenia hraničných stavov.
  • Upravil som logiku tlačidiel Start / Pause / Reset.
  • Pridal som možnosť meniť rýchlosť simulácie pomocou posuvníka.
  • Navrhol a implementoval som vlastné CSS štýlovanie aplikácie.
  • Upravil som rozloženie pravého panelu (blok parametrov a blok počiatočných podmienok) a zabezpečil správne zobrazovanie obsahu pri zmene veľkosti okna.
  • Opravil som problém s orezávaním textovej časti aplikácie pri prepnutí z režimu celej obrazovky do okenného režimu.
  • Implementoval som viacjazyčnú podporu (angličtina, slovenčina, ruština, ukrajinčina) s možnosťou prepínania jazyka počas behu aplikácie.
2.3 – 8.3.2026
  • Pripravil som úvodnú prezentáciu k bakalárskej práci a predstavil som tému na seminári.
  • Poslal som školiteľovi aktuálnu verziu celého projektu.
  • Pripravil som krátky návod na použitie aplikácie.
  • Opravil som menší bug v lokalizácii aplikácie.
  • Urobil som menšie úpravy v rozhraní aplikácie a v štruktúre projektu.
9.3 – 15.3.2026
  • Implementoval som prepínanie medzi svetlou a tmavou témou aplikácie.
  • Upravil som CSS štýly tak, aby sa rozhranie správne zobrazovalo v oboch témach.
  • Pridal som zobrazenie pomocnej mriežky pre časový graf aj fázový portrét.
  • Vylepšil som vykresľovanie časového priebehu premenných.
  • Upravil som zobrazovanie hodnôt na osiach grafov.
  • Implementoval som možnosť meniť farbu grafu pre jednotlivé premenné.
  • Pridal som možnosť zapínať a vypínať zobrazenie konkrétnych premenných v grafe.
  • Urobil som menšie úpravy používateľského rozhrania pre lepšiu prehľadnosť aplikácie.
  • Otestoval som nové funkcionality a opravil drobné vizuálne nedostatky pri vykresľovaní grafov.
16.3 – 22.3.2026
  • Pridal som podporu preddefinovaných modelov dynamických systémov.
  • Implementoval som možnosť načítať pripravené presety priamo cez používateľské rozhranie.
  • Pridal som viacero ukážkových systémov, napríklad Harmonic oscillator, Lotka–Volterra, Lorenz, Van der Pol, Pendulum a Rossler.
  • Pridal som možnosť meniť farbu trajektórie vo fázovom portréte.
  • Upravil som automatické škálovanie časového grafu tak.
  • Prispôsobil som vzhľad grafov, osí, mriežky a textov pre svetlú aj tmavú tému.
  • Upravil som načítanie loga a ikon aplikácie podľa zvolenej témy.
23.3 – 30.3.2026
  • Presety som presunul z kódu do textových súborov.
  • Vďaka tomu ich môže používateľ jednoducho pridávať, upravovať alebo mazať bez zásahu do zdrojového kódu.
  • Do presetov som pridal metadáta (názov, popis, tagy), ktoré umožňujú lepšiu orientáciu a v budúcnosti aj filtrovanie podľa tagov.
  • Implementoval som automatické spustenie simulácie po načítaní súboru cez Load.
  • Upravil som správanie tlačidla Pause – ak je simulácia zastavená alebo pozastavená, tlačidlo sa prepne na Resume.
  • Pridal som tlačidlo Step, ktoré vykoná jeden krok simulácie.
  • Implementoval som históriu posledných otvorených súborov (max. 10).
  • Pridal som tlačidlo Save As na uloženie modelu do nového súboru.
  • Upravil som funkciu Save – ak je otvorený súbor, uloží zmeny priamo do neho, inak funguje ako Save As.
  • Implementoval som detekciu zmien v modeli (rovnice, počiatočné hodnoty, pridanie a odstránenie premenných).
  • Pri pokuse o zatvorenie aplikácie bez uloženia program upozorní používateľa na neuložené zmeny.
31.3 – 5.4.2026
  • Implementoval som ovládanie grafov pomocou myši (posúvanie, zoom).
  • Oddelil som model používaný pri simulácii od modelu v používateľskom rozhraní.
  • Implementoval som systém klávesových skratiek pre ovládanie aplikácie.
  • Pridal som tooltipy k tlačidlám so zobrazením skratky a popisu akcie.
6.4 – 12.4.2026
  • Rozšíril som prácu s presetmi.
  • Pridal som možnosť vytvárania, úpravy, mazania a filtrovania presetov priamo v aplikácii.
  • Upravil som používateľské rozhranie pre jednoduchšiu správu presetov.
  • Otestoval som načítanie a ukladanie vlastných presetov.
13.4 – 19.4.2026
  • Implementoval som ukladanie a načítanie nastavení aplikácie (napr. jazyk a používateľské preferencie).
  • Zabezpečil som automatické ukladanie dôležitých zmien medzi spusteniami aplikácie.
  • Pridal som ľavé bočné menu.
  • Implementoval som samostatné menu nastavení s možnosťou konfigurácie aplikácie a klávesových skratiek.
20.4 – 26.4.2026
  • Pokračoval som vo vývoji aplikácie.
  • Doplnil som analytické prvky vo fázovom portréte, najmä smerové pole, nulklíny a rovnovážne body.
  • Pridal som možnosť zobraziť viac fázových trajektórií naraz.
  • Upravil som pravý panel aplikácie a otestoval som nové funkcie na pripravených modeloch.
27.4 – 3.5.2026
  • Pokračoval som v rozširovaní aplikácie.
  • Pridal som porovnanie modelov a analýzu parametrov.
  • Doplnil som zobrazenie výsledkov analýzy ako krivku alebo farebnú mapu.
  • Upravil som prácu s presetmi a opravil som chyby pri načítaní modelov zo súborov.
4.5 – 10.5.2026
  • Pokračoval som v písaní textu bakalárskej práce.
  • Dopracoval som abstrakt a úvod práce.
  • Napísal som prvú kapitolu.
  • Začal som upravovať druhú kapitolu z ročníkového projektu.
  • Pridal som export grafov do formátov PNG a SVG.
  • Vytvoril som plnohodnotný tutoriál aplikácie, ktorý postupne prevedie používateľa hlavnými funkciami.
  • Doplnil som kontrolu krokov v tutoriáli, aby aplikácia overovala, či používateľ vykonal správnu akciu.
11.5 – 17.5.2026
  • Pokračoval som v písaní textu bakalárskej práce.
  • Dokončil som druhú kapitolu o existujúcich nástrojoch na vizualizáciu dynamických systémov.
  • Napísal som kapitolu Návrh riešenia.
  • Napísal som kapitolu Implementácia riešenia a doplnil som do nej obrázky aplikácie.
  • Poslal som školiteľovi aktuálnu verziu textu bakalárskej práce.