Simulace emisi spalovacich motoru
Tato stránka je slouží jako Výzkumná zpráva simulace "Doprava na semaforové křižovatce a kruhové křižovatce" k semestrálnímu projektu pro předmět 4IT495 Simulace systémů (LS 2022/2023) na VŠE v Praze.
Contents
Definice problému
Jelikož jsme si mohli všimnout, že se v České republice děly protesty proti aktuálnímu limitu rychlosti 50 km/h, kde skupina "30 pro Prahu" bojuje za to, aby byly nastaveny limity na 30 km/h. Jedním z jejich cílů je snížení emisí. Rozhodl jsem se tedy sestavit simulaci, která znázorňuje jak by v aktuální dopravě vypadaly emise, kdyby byla nastavena maximální rychlost na 30 oproti 50 km/h. Budu porovnávat, zda jet pomaleji, spotřebovávat méně a generovat méně emisí je výhodnější oproti vyšší rychlosti, spotřebě a emisím.
Metoda
Pro simulaci dopravy na semaforové zvolíme aplikaci NetLogo, která je díky svému specializovanému prostředí pro modelování a simulaci komplexních systémů velmi vhodná. Pomocí programovacího jazyka v NetLogu můžeme přesně definovat chování vozidel, semaforů a dopravních pravidel. Real-time vizualizace nám umožní sledovat pohyb vozidel a změny na semaforech, což poskytne důležité informace o dopravním chování. NetLogo také umožňuje zkoumat různé dopravní scénáře a parametry, což nám dává příležitost analyzovat a optimalizovat provoz na křižovatkách. Celkově je NetLogo ideálním nástrojem pro simulaci dopravy na semaforové křižovatce díky svému specializovanému prostředí, programovacímu jazyku a možnostem vizualizace a analýzy.
Model
Samotný model má rozměry 81x81.
Agenti
Simulace obsahuje dva typy agentů a to vozidla (turtles), roads + intersections (patches).
Vozidla
Vozidla obsahují proměnné které udávají jejich rychlost, směr, délku po jakou čekají na křižovatce nebo zácpě, jejich délku života, ujetou vzdálenost a počet vygenerovaných emisí (při jízdě a v klidu).
Ujetá vzdálenost slouží k výpočtu celkových vyprodukovaných emisí.
speed ;; the speed of the turtle up-car? ;; true if the turtle moves downwards and false if it moves to the right wait-time ;; the amount of time since the last time a turtle has moved lifetime ;; how many tics the turtle has until it dies distance-traveled ;; distance traveled by the car emissions ;; emissions generated by the car emissions-idle ;; emissions generated by the car on idle
Spawn a nastavení vozidla
K nastavení slouží funkce setup-cars, která nastaví počáteční hodnoty speed, wait-time a lifetime na 0. Následně je zavolána funkce, která auto spawne na cestu (jedná se o jednoduchý kód, který postaví auto na patch (road), který na sobě nemá žádné jiné vozidlo. Poslední část se zabývá počátečním natočením vozidla. Pokud pojede vertikálně nebo horizontálně. Pokud se vozidlo spawne na křižovatce, tak je jedno, kudy pojede, proto necháme rozhodnout náhodu, která vygeneruje číslo 0 nebo 1. Pokud je vybráno číslo 0, tak vozidlo pojede vertikálně.
V případě, že je vozidlo spawnuto na silnici, tak je potřeba ověřit, zda se jedná o silnici vertikální, či horizontální. To zjistíme pomocí podmínky, která určuje, zda je vozidlo zarovnáno se vertikálním gridem na základě jeho souřadnice x (pxcor). Pokud je podmínka pravdivá, nastaví se hodnota up-car? na true (což znamená, že se auto bude pohybovat vertikálně). V opačném případě je hodnota up-car? nastavena na false (což znamená, že se auto bude pohybovat horizontálně).
Rychlost vozidla
Regulace rychlosti vozidla je tvořena ze čtyř částí, akcelerace, decelerace a hlídání si vozidel před sebou a zastavení na semaforech. Akcelerace a decelerace jsou poměrně jednoduché, jedná se o postupné navyšování/snižování rychlosti o malé části (acceleration) každý běh (go). Limity jsou maximální rychlost (proměnná speed-limit) a 0, tudíž stav, kdy auto stojí.
Roads & Intersections
Způsob jakým jsou cesty a křižovatky generovány, tj. dynamický grid, tak je potřeba evidovat v jakém sloupci a v jaké řadě se cesta nebo křižovatka nachází.
Nastavení patches
Nastavení obsahuje proměnné:
- boolean zda se jedná o křižovatku
- zda křižovatka obsahuje zelené světlo, pro cestu je to false
- informace o tom, v jaké části gridu se cesta/křižovatka nachází
- fáze pro křižovatku, slouží k časování změny světel, pro cestu je to -1
patches-own [ intersection? ;; true if the patch is at the intersection of two roads green-light-up? ;; true if the green light is above the intersection. otherwise, false. ;; false for a non-intersection patches. my-row ;; the row of the intersection counting from the upper left corner of the ;; world. -1 for non-intersection patches. my-column ;; the column of the intersection counting from the upper left corner of the ;; world. -1 for non-intersection patches. my-phase ;; the phase for the intersection. -1 for non-intersection patches. auto? ;; whether or not this intersection will switch automatically. ;; false for non-intersection patches. ]
Simulace
Nastavení
Jak již zaznělo v úvodu, cíl této simulace je zobrazení vytvořených emisí vozidla během cesty přes křižovatky. K tomu využijeme tyto proměnné: Globální proměnné
emission-rate ;; grams of CO2 per kilometer emission-rate-idle ;; grams of CO2 per second
Hodnoty emisí jsou získány z ověřených zdrojů. Pro simulaci si zvolíme vozidlo, které je v České republice jedno z nejčastěji používaných Škoda Octavia. Jedná se o 112 gramů/km[1] a po výpočtu 0,4032 gramů/sekundu [2]
set emission-rate 112 ;; grams of CO2 per kilometer set emission-rate-idle 0.4032 ;; grams of CO2 per second
Běh
V samotném běhu simulace (funkce go) se dějí čtyři hlavní události.
- Mění se světla na semaforech.
- Vozidla se uvádí do pohybu a zapisují se důležité hodnoty per tick.
- Probíhá kontrola, zda se vozidla nezasekla.
- Spawning dalších vozidel do předem definovaného počtu.
Výpočet důležitých údajů
Proměnné vozidla
emissions ;; emissions generated by the car emissions-idle ;; emissions generated by the car on idle
Výpočet samotných vyprodukovaných emisí jedoucím vozidlem je představen ve funkci record-data.
let distance-per-tick speed ;; Assuming speed is in meters per tick, convert to kilometers set distance-traveled distance-traveled + distance-per-tick ;; Add distance traveled set emissions distance-traveled * emission-rate ;; emissions in kilograms
V případě, že vozidlo stojí, tak předpokládáme, že má zapnutý motor, tudíž stále spaluje palivo a vytváří emise.
ifelse speed = 0 [ set num-cars-stopped num-cars-stopped + 1 set wait-time wait-time + 1 set emissions-idle emissions-idle + emission-rate-idle ;; emissions in grams ] [ set wait-time 0 ]
Hodnoty, které vozidlo za svůj život nasbírá budou uloženy do globálních proměnných
total-emissions total-emissions-idle
Interface
V samotném interface jsou připraveny monitory, které zobrazují:
- Průměrná rychlost vozidel
- Průměrný čas čekání (tj. rychlost = 0)
- Průměrné emise v klidu
- Průměrné emise během jízdy
- Počet stojících vozidel
Dále nabízí možnost si za běhu simulace upravit:
- Max povolenou rychlost
- Zda budou fungovat semafory nebo budou křižovatky jen bez semaforů.
- Nastavení semaforů a jejich intervalu přepínání
Výsledky
Prahou denně projede kolem 300 tisíc vozidel[3]. Simulace bude tedy nastavena na porovnání dvou běhů, jednou s maximální povolenou rychlostí 30 km/h. Druhý běh s 50 km/h.
3O km/h
- Total cars: 300000
- Total emissions (total-emissions): 433986592,5 g/km
- Total emissions idle (total-emissions-idle): 8105994,49 g/sec
- Total sum of emissions per car 1473,641957 gramů
50 km/h
- Total cars: 300000
- Total emissions (total-emissions): 445937330,6 g/km
- Total emissions idle (total-emissions-idle): 2710763,194 g/sec
- Total sum of emissions per car 1495,493646 gramů
Simulace ukázala, že sice při rychlejší jízdě jsou ušetřeny emise při čekání (8105994,49-2710763,194 = 5395231,296g), tak ale za rychlou jízdu a větším spalování jsou tyto rozdíly vyrovnány (445937330,6 - 433986592,5 = 11950738,1g).
Při finálním součtu emisí a zprůměrovaným na jedno vozidlo, tak vidíme, že při jízdě 30 km/h je vygenerováno méně emisí. Tímto experimentem jsem ověřil, že hnutí "30 pro Prahu" má vskutku pravdu, nicméně se jedná o tak zanedbatelné množství, že se nevyplatí reformu maximální rychlosti prosazovat.
Nedostatky a prostor pro zlepšení
Současná implementace dopravní situace v programu NetLogo úspěšně simulovala řadu klíčových jevů. Stejně jako všechny modely však není bez omezení a potenciálních oblastí pro zlepšení. Níže je popsáno několik nedostatků a návrhů na vylepšení:
Měřítko vs. realita
Simulace byla nastavena tak, aby křižovatkami projelo odpovídající počet vozidel, nicméně již nepočítá s ujetou vzdáleností, kterou průměrně vozidla v Praze ujedou. Tím mohou být výsledky zkresleny, protože se na trase potkají s více křižovatkami a tudíž i vzroste rozdíl mezi generováním emisí v klidovém stavu a za běhu.
Start-stop
Simulace nepracuje s technologií start-stop, kterou moderní vozy disponují, tato technologie vypne motor v době, kdy jej řidič nevyužívá. Při opětovném startu motoru se ale vytvoří více emisí naráz, proto by implementace této technologie do simulace mohla zajímavě ovlivnit výsledky.
Závěr
Získané výsledky prokazují, že regulace maximální rychlosti v obci není ten kritický bod, který by planetě zásadně pomohl. Rozvojem této simulace by mohl být upravený pohled na nastavení maximální rychlosti, a to regulace rychlosti s ohledem na plynulost provozu, místo ekologického dopadu.
Kód
File:Doprava emise.nlogo File:Doprava emise.nlogo.zip
Reference
- ↑ Anon. n.d. “Srovnání: Emise CO2 (WLTP) Skoda Octavia vs. Konkurence 2024.” Retrieved June 10, 2024 (https://www.motorvize.cz/katalog/skoda/octavia/co2-emissions-wltp/)
- ↑ US EPA, OAR. 2016. “Greenhouse Gas Emissions from a Typical Passenger Vehicle.” Retrieved June 10, 2024 (https://www.epa.gov/greenvehicles/greenhouse-gas-emissions-typical-passenger-vehicle).
- ↑ Prague Transportation Yearbook 2020. (2024, June 6 ). Development of vehicle and car ownership TSK Praha. https://www.tsk-praha.cz/static/udi-rocenka-2020-vm-cz-HTML/kapitola_03.html#:~:text=Based%20on%20counts%20done%20at,the%20outer%20cordon%2C%20of%20which