Erweiterte Funktionen und Werkzeuge

"Grüne Welle" Werkzeug

Einleitung

Das "Grüne Welle"-Werkzeug bietet dir ab sofort die Möglichkeit, im Spiel Ampelphasen verschiedener Kreuzungen zu koordinierten Streckenzügen zu synchronisieren. 

Beispielsweise im Innenstadtgebiet kann es häufig dazu kommen, dass mehrere Querstraßen hintereinander die Hauptverkehrsachse kreuzen.
Um den Verkehr dennoch bestmöglich der Hauptverkehrsachse entlang über die jeweiligen Kreuzungen zu leiten, kann man mit diesem Werkzeug einzelne Kreuzungen in Gruppen zusammenfassen.

In diesen Streckenzug-Gruppen kann dann eine Referenzkreuzung definiert werden, an der die weiteren Kreuzungen der Gruppe ausgerichtet werden.

Gibt man weiteren Kreuzungen in der Gruppe nun jeweils einen "Offset", also Versatzzeitraum in Bezug auf die Referenzkreuzung, kann man definieren, in welchem zeitlichen Versatz die jeweilige Kreuzung nach der Referenzkreuzung in Phase 1 schaltet.

Mit etwas tüfteln und/oder guter Planung schalten deine Ampeln entlang des Streckenzugs dann idealerweise kurz vor eintreffen der Anfahrenden Fahrzeuge auf Grün (um Fahrzeuge, die den früheren Phasenlauf verpasst haben noch abgeführt werden können, bevor neuer Verkehr eintrifft)


Grüne Welle vorbereiten

Um das Werkzeug für die Grüne Welle verwenden zu können menu_customphase.pngist es unabdingbar, dass du benutzerdefinierte Phasenzyklen an den jeweiligen Kreuzungen verwendest und keine der vordefinierten Optionen.

Um dir Arbeit zu ersparen, könntest du den Phasenzyklus bspw. der Referenzkreuzung kopieren und bei von der Grünen Welle betroffenen Kreuzungen einfügen.

 greenwave_group_created.png

Usecase Demonstration (Beispiel)
Inklusive der markierten Referenzkreuzung

greenwave_tutorial_reference.png

Algorithmus Design 
(Systemarchitektur der Grünen Welle)

Für eine funktionierende "Grüne Welle" muss die erste Phase (P1) jedes Phasenzyklus zwingend die Verkehrsrichtung/en priorisieren, in die die Welle geleitet werden soll. 

Beachte also:

Die erste Phase eines Gesamtzyklus 
muss die Phase sein, die die Richtung der grünen Welle vorgibt. Das System synchronisiert alle Kreuzungen so, dass sie zur richtigen Zeit bereit sind, in Phase 1 zu wechseln, sobald sie an der Reihe sind.

Die zweite Phase eines Gesamtzyklus sollte eine "nützliche Phase" sein. Das bedeutet: Das System muss bei zu stark abweichender Gesamtzyklusdauer der einzelnen Kreuzungen (weil nicht gut auf einander angeglichen) oder einer zu stark abweichenden Anzahl von Phasen an den Kreuzungen (≥2 Phasen Unterschied zwischen mindestens einer Kreuzung zu den anderen/einer anderen) die letzte Phase nutzen, um etwaiges Ungleichgewicht auszugleichen.
Die letzte Phase von Kreuzungen wird also hin und wieder gestreckt werden, um das System synchron zu halten. Um querende Straßen nicht "verhungern" zu lassen, also deren Phasenlänge zu stauchen, damit die Kreuzung aufholen kann, habe ich mich dazu entschieden, lieber die letzte Phase im Notfall lang zu halten und zu warten, bis die Kreuzung durch ihren Zyklus gehen konnte. Es gibt auch einen Rush Mode, diesen setzt das System beim Force Release ein.

*Der Force Release ist in der Version 2.2.2 hin und wieder aufgefallen durch teils rabiates Eingreifen. Im anstehenden Versions-Update werden auch diese Systeme noch einmal adjustiert. In den meisten Use-Cases sollte das allerdings nicht zum Problem werden und kann durch eigene Aktionen auch wieder umgangen werden. Etwas tüfteln ist dann nötig. (Ich beeile mich, die Stabilität dieses Systems zu verbessern)


Erstelle eine Streckenzug-Gruppe

greenwave_group_select.pnggreenwave_offset_zoom.pnggreenwave_tutorial_secondjunction.png

Systemarchitektur & Referenzlogik (zusammengefasst)
Um die Synchronität über verschiedene Kreuzungstypen hinweg zu gewährleisten, etabliert das System eine dynamische Referenzsteuerung. Für einen stabilen Betrieb gelten folgende Logik-Regeln:

- P1-Priorisierung: Die erste Phase (P1) eines Zyklus definiert die Richtung der „Grünen Welle“. Das System taktet alle Kreuzungen basierend auf ihrem individuellen Offset so, dass sie pünktlich zum errechneten Zeitpunkt in Phase 1 initialisieren

- Sequentieller Phasenwechsel: Für den Betrieb einer Grünen Phase ist es unerlässlich, dass die Phasen nach dem neuen, mit TTE etablierten Wechselmodus "Sequentieller Modus" durch ihre Phasen wechseln, da sich der Wechsel von Phasen im Legacy Mode von TLE nicht vorhersagen und somit nicht synchronisieren lässt. Nirgendwo auf der Welt würde auf diese Weise eine Grüne Welle programmiert werden, so auch nicht in diesem Fall. Um den Legacy Mode wieder zu nutzen, musst du die betroffene Kreuzung aus der jeweiligen Streckenzug-Gruppe entfernen

- Dynamischer Drift-Ausgleich: Bei unterschiedlichen Gesamtzykluslängen einzelner Kreuzungen oder stark abweichender Phasenanzahl (Differenz ≥2) schützt das System den Querverkehr vor dem "verhungern". Statt Phasen zu stauchen, wird die letzte Phase des Zyklus einer Kreuzung bei Bedarf gestreckt, um Ungleichgewichte auszugleichen und auf den globalen Takt der Referenzkreuzung zu warten

- Referenz-Anker (Offset 0s): Die Kreuzung mit dem niedrigsten Offset (idealerweise 0s) fungiert als Taktgeber. Alle weiteren Offsets müssen relativ zur Referenzkreuzung berechnet werden – nicht zur jeweils vorherigen Kreuzung


Gruppen-Panel

greenwave_grouptab_rename.png

Im Tab „Groups“ verwaltest du die logischen Einheiten deiner Streckenzüge. Hier definierst du das Grundgerüst, bevor du in die Feinjustierung der einzelnen Kreuzungen gehst.

Benenne deine Gruppen erst um, nachdem du die gewünschten Kreuzungen im „Kreuzung“-Tab zugewiesen hast. Dies beugt zunächst einfach Edge-Cases bei der Daten-Synchronisation vor, falls du komplexe Änderungen an der Gruppenstruktur vornimmst


Dashboard

Das Dashboard ist dein Kontrollzentrum. Hier siehst du in Echtzeit, ob deine Planung in der Spielwelt aufgeht.

Wenn du signifikante Änderungen an einer Streckenzuggruppe vornimmst, kann es mitunter vorkommen, dass du chaotisches Verhalten bemerkst - ist abhängig von den Differenzen der jeweiligen Kreuzungen

greenwave_dashboard_pt1.pnggreenwave_dashboard_pt2.png

Den "perfekten" Offset finden

- Nutze das Dashboard, um den realen Verkehrsfluss zu beobachten. Wenn du siehst, dass Fahrzeuge an Kreuzung #2 ankommen, der Balken aber erst bei 10% von Phase 1 steht, ist dein Offset zu hoch. Ziel ist es, dass Phase 1 dann startet (Balken beginnt zu laufen), wenn die Fahrzeugkolonne der Referenzkreuzung die Haltelinie erreicht, oder vielleicht auch etwas früher, um zuvor durch eventuell eine Straßenbahn aufgehaltene Grüne Welle. Du hast völlige Freiheit!

Bekanntes Problem

- Beim erstellen und Einrichten von Gruppen kann es dazu kommen, dass im Dashboard alle Kreuzungen bei P1 hängen und nichts tun. Das ist wirklich nicht schön, aber du kannst es umschiffen. Entferne alle Kreuzungen aus der betroffenen Gruppe, lösche diese Gruppe sobald sie keine Kreuzungen mehr enthält, erstelle eine neue Gruppe und benenne diese auch erst um, wenn gewünschte Kreuzungen drin sind und laufen. Danach sollte es nicht mehr zu Problemen kommen, egal welche Änderungen du vornimmst. Wenn alle Phasenzyklen der Kreuzungen identisch lang sind, kann das System manchmal in einen Edge-Case rennen, in dem die Force Release Logik gar nicht aufgerufen wird, die in solchen Fällen greifen sollte.