User:ZdenekP

From Simulace.info
Revision as of 03:36, 16 June 2025 by ZdenekP (talk | contribs)
Jump to: navigation, search

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.