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

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 – 19.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.
  • Rozšíril som prácu s presetmi: pridal som možnosť ich vytvárania, úpravy, mazania a filtrovania priamo v aplikácii.
  • Implementoval som ukladanie a načítanie nastavení aplikácie (napr. jazyk, preferencie používateľa).
  • Zabezpečil som, aby sa dôležité zmeny automaticky ukladali a boli dostupné aj pri ďalšom spustení 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.