Difference between revisions of "User:ZdenekP"

From Simulace.info
Jump to: navigation, search
Line 90: Line 90:
 
|}
 
|}
  
=== '''Závěr''' ===
+
== '''Závěr''' ==
 
Simulace ukázala, že zvolený algoritmus řízení výtahu významně ovlivňuje průběh přepravy cestujících během ranní špičky.
 
Simulace ukázala, že zvolený algoritmus řízení výtahu významně ovlivňuje průběh přepravy cestujících během ranní špičky.
  

Revision as of 03:36, 16 June 2025

Simulace vytížení osobních výtahů v budově

Model – simulace ranní špičky v 12patrové residenční budově

Cíl simulace

Cílem simulace je analyzovat chování jednoho výtahu ve 12patrové budově během ranní špičky, kdy obyvatelé postupně opouštějí budovu. Sleduje se průměrná doba čekání, jízdy a celková doba přesunu.

Popis modelu

Prostředí:

  • 12 podlaží (v rozsahu y = 0 až 12), každý patro výšky 3 metry.
  • Rozměr světa: resize-world 0 4 0 12, velikost patche 50.

Aktéři:

  • passengers (pasažéři) – modří, každé patro obsahuje 12 pasažérů (celkem 144).
  • elevator (výtah) – jeden červený výtah, začíná v přízemí (y=0).

Vlastnosti pasažéra:

  • home-floor – domovské patro
  • destination-floor – cílové patro (v ranní špičce 0)
  • active – označuje aktivované pasažéry
  • in-elevator – zda je pasažér ve výtahu
  • wait-start, wait-stop, ride-start, ride-stop – pro výpočet čekací a jízdní doby

Parametry simulace:

  • 100 tick = 3 sekundy → 1 tick = 0.03 s
  • passenger-speed = 0.02 (pohyb na x-ové ose k výtahu)
  • max-elevator-speed = 0.01 (1 ms)
  • activate-interval = volání každých 25 vteřin – během půl hodiny opustí budovu polovina obyvatel

Algoritmus výtahu

  • Dvě strategie:
    • alg-down-first = false → klasický algoritmus, jede nahoru/dolů podle požadavků
    • alg-down-first = true → výtah nejprve obsluhuje horní patra a sjíždí dolů
  • Fronta požadavků: elevator-calls
  • Pasažér volá výtah při aktivaci
  • Přesun výtahu zahrnuje zrychlení a zpomalení (podle vzdálenosti k cílovému patru)
Simulační prostředí v NetLogo


Výzvy při tvorbě simulace

Mezi největší výzvy patřila funkce move-elevator, kde jsem se rozhodl implementovat plynulý rozjezd a brzdění výtahu. Kvůli tomu bylo nutné vypočítávat vzdálenost potřebnou k zastavení, což vyžadovalo pečlivou synchronizaci s cílovým patrem. Složitým úkolem bylo také správně nastavit chování pasažérů. Narazil jsem například na problém, kdy po nastoupení do výtahu zavolal cílové patro jiný agent než ten, který skutečně nastoupil – trvalo mi několik hodin, než jsem tuto chybu objevil. Další výzvou byl samotný algoritmus volání výtahu, který v této simulaci vychází z algoritmu SCAN – preferuje aktuální směr jízdy a nevrací se, dokud neobslouží všechna volání v daném směru. Bylo obtížné ošetřit hraniční situace, například když volací funkce změnila cíl výtahu, ale funkce move-elevator už dané patro projela. V takovém případě bylo nutné zajistit, aby se ze seznamu volání odstranilo skutečné patro, na kterém výtah zastavil – ne to, které naposledy zavolala funkce call-elevator. Poslední výzvou bylo sledování času a synchronizace simulace, zejména kvůli velkému množství blokujících smyček, které jsem použil pro postupné nastupování/vystupování pasažérů. Celkově je kontinuita simulace velmi složitá a vyžadovala náročné sladění všech částí.

Experimenty a výsledky

Scénář 1: Ranní špička, klasický algoritmus

  • Všichni obyvatelé směřují do přízemí (floor = 0)
  • Interval aktivace pasažérů: 25 vteřin
  • Doba simulace: 30 minut (60 000 ticků)
Metrika Hodnota
Průměrná doba čekání 57 s
Průměrná doba jízdy 56 s
Průměrná doba přesunu 110 s
Celkový čas simulace 67 minut
Algoritmus look - down first

Scénář 2: Algoritmus „nejdříve nahoru“

  • alg-down-first = true
Metrika Hodnota
Průměrná doba čekání 42 s
Průměrná doba jízdy 64 s
Průměrná doba přesunu 107 s
Algoritmus look - up first

Závěr

Simulace ukázala, že zvolený algoritmus řízení výtahu významně ovlivňuje průběh přepravy cestujících během ranní špičky.

Při použití klasického algoritmu s preferencí směru dolů (look – down first) byla průměrná doba čekání vyšší (57 s), avšak doba jízdy kratší (56 s). Celkový čas přesunu činil 110 sekund. Naopak při algoritmu look – up first (nejprve nahoru) byla doba čekání nižší (42 s), ale cestující strávili více času jízdou (64 s). Celková doba přesunu byla mírně nižší (107 s).

Z výsledků vyplývá, že algoritmus "nejdříve nahoru" přinesl nižší průměrnou dobu čekání i o něco kratší celkový čas přesunu. Tento přístup je tedy v podmínkách simulované ranní špičky mírně efektivnější, přestože cestující urazí delší trasu. Optimalizace směru pohybu výtahu podle očekávaného zatížení pater se tedy jeví jako účinná strategie.

Potenciál a využitelnost simulace

Simulace výtahu má široký potenciál jak pro výukové, tak i praktické účely. V didaktickém kontextu slouží jako názorný příklad agentově orientovaného modelování, kde lze demonstrovat interakci mezi jednotlivými entitami (pasažéři, výtah) a vliv různých algoritmů řízení na celkovou efektivitu systému. V praxi by podobný model mohl být dále rozšířen a využit například pro optimalizaci výtahových systémů ve vícepodlažních budovách, testování různých řídicích strategií, nebo simulaci zatížení během špiček. S drobnými úpravami by bylo možné model přizpůsobit také pro více výtahů nebo různá pravidla chování cestujících, což by umožnilo reálnější nasazení v oblasti inteligentních budov a facility managementu.