Skip to main content

"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.

  • Falls noch nicht geschehen: Stelle den Phasenmodus im Dropdown Menü auf "Eigene Phase" und erstelle benötigte Phasen in der Kreuzung bzw. kopiere Phasen aus anderen Kreuzungen
  • Danach kannst du bereits auf den erscheinenden "Grüne Welle" Button drücken

 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

  • Klicke jetzt auf "Neue Gruppe", daraufhin wird diese erstellt
  • Wähle im Dropdown Menü die soeben erstellte Gruppe, die noch "Neue Gruppe" heißt, und/oder benenne sie (vorzugsweise im dafür vorgesehenen Tab "Gruppen") um
    • Die erste, hinzugefügte Kreuzung ist in den meisten Fällen auch als Referenzkreuzung gedacht. Die Referenzkreuzung wird mit dem Offset 0s bestimmt. Oder es wird automatisch 

       

      die Kreuzung zur Referenzkreuzung, dessen Offset am niedrigsten ist.
  • Füge nun eine weitere Kreuzung hinzu, im Idealfall direkt die auf die Referenzkreuzung folgende Kreuzung, dann die darauf folgende - und immer so weiter
  • Die Kreuzungen lassen sich jederzeit ganz einfach via Offset-Einstellung in der Reihenfolge priorisieren
    • Der Offset Rechner kann dir vielleicht eine erste Hilfestellung sein, um in etwa die Werte einzuschätzen, die du einstellen musst. Mit zunehmender Größe einer Stadt und zunehmender Verlangsamung der Simulation sind 12 eingestellte Sekunden natürlich nicht mehr genau 12s. Im Backend werden Frames in menschlich verständliche Werte umgesetzt und dann ans Frontend übermittelt. 

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

Dasgreenwave_grouptab_rename.png

Gruppen-Panel unter dem

Im Tab "Gruppen"„Groups“ gibtverwaltest dirdu die Möglichkeit,logischen deineEinheiten Gruppendeiner zuStreckenzüge. verwalten.
DuHier kannstdefinierst hierdu Gruppendas erstellen,Grundgerüst, siebevor umbenennen, oder auch löschen.
Wobei angemerkt sein sollte

greenwave_grouptab_rename.png

TIPPS

1.:
 Erstelle eine separate Fußgängerphase an Kreuzungen großer Verkehrsadern, an denen auch viele Fußgänger auftreten (sehr wahrscheinlichdu in der Innenstadt, oder an nachträglich beplanten, großen Umgehungsstraßen etc.)

2.: Wichtig für "Grüne Welle":
Die letzte Phase im Gesamtzyklus sollte (ist nur von Belang bei Verwendung der "Grünen Welle" Funktion) eine ZUSÄTZLICHE "nützliche Phase" sein - also eine Phase, die Verkehr auf wichtigen Strecken transferiert, da die letzte Phase vom Sync-System als Puffer zum synchronisieren genutzt wird, wenn Gesamtzykluslängen von Kreuzungen in einer Gruppe stark von einander abweichen bzw. sich die Anzahl der PhasenFeinjustierung der einzelnen Kreuzungen zugehst.

sehr
    unterscheiden.
  • Zentrales Management: Erstelle neue Gruppen mit einem Klick, benenne sie für eine bessere Übersicht um (z. B. nach Hauptverkehrsachsen wie „B1 / Potsdamer Str.“) oder lösche nicht mehr benötigte Verbünde
  • ECS-Logik: Das System arbeitet ressourcenschonend. Dank der Architektur des Entity Component Systems (ECS) werden leere Gruppen, in denen keine Daten hinterlegt sind, automatisch nicht dauerhaft gespeichert. Du musst dich also nicht um das „Aufräumen“ verwaister, leerer Gruppen kümmern – das System erledigt das im Backend für dich
  • Status-Feedback: Direkt im Panel siehst du auf einen Blick, wie viele Kreuzungen einer Gruppe bereits zugewiesen sind und ob die Gruppe initialisiert wurde (erkennbar am grünen Punkt/Status).

 

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


Phasen kopieren und einfügenDashboard

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

  • KlickeDer SYNC-Status: auf* Leuchtet das SYNC-Icon grün, ist die Kreuzung erfolgreich im globalen Takt der Gruppe verankert.
    • Sollte eine Kreuzung aus dem Takt geraten (z. B. durch manuelle Eingriffe oder extreme Simulations-Lags), siehst du hier, wie die CheckboxForce Release Logik oder der "AlleRush auswählen"Mode imversucht, PBM,die Synchronität wiederherzustellen.

  • linksPhasen-Fortschrittsbalken: obenDer grüne Balken unter „Phase X / Y“ zeigt dir exakt, an welchem Punkt des Zyklus sich die Kreuzung befindet.

    • Wichtig: Da das System bei denUngleichgewicht 3teilweise Buttondie letzte Phase streckt, wirst du hier beobachten können, wie der Balken am Ende des Zyklus manchmal „wartet“. Das ist kein Bug, sondern der Dynamische Drift-Ausgleich in Aktion

  • PasseZyklus-Varianz: deineHier Auswahlsiehst du auch die Gesamtdauer eines Durchlaufs in Sekunden. Achte darauf, dass diese Werte bei Bedarfallen an
  • Kreuzungen
  • Klickeeiner aufGruppe denmöglichst "Kopieren"nah Button
  • beieinander
  • Wechsleliegen dann(harmlos: inz.B. 476s zu 472s im Screenshot). Je größer die Differenz, desto massiver muss das PBMSystem der anderen Kreuzung, welcher du die Phasen hinzufügen willst
  • Klicke auf den "Einfügen" Button, den mittigen der 3 Buttoneingreifen

phaseeditor_standard_copynpaste_complete.pnggreenwave_dashboard_pt1.pnggreenwave_dashboard_pt2.png

Kopieren/EinfügenDen Werkzeug"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 Werkzeugist kannwirklich nicht zaubern.schön, Beiaber 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 baugleichenmehr zu Problemen kommen, egal welche Änderungen du vornimmst. Wenn alle Phasenzyklen der Kreuzungen wirdidentisch lang sind, kann das System versuchen,manchmal beimin kopiereneinen möglichstEdge-Case vielerennen, Ampelschaltungenin zudem übernehmen,die duForce solltestRelease sieLogik allerdingsgar nochmalnicht überprüfenaufgerufen undwird, gegebenenfallsdie anpassen.

-in Beimsolchen SynchronisierenFällen vongreifen Kreuzungen, bei Nutzung der "Grüne Welle" Funktion, kann man das System am besten optimieren, wenn gruppierte Kreuzungen mithilfe des Tools, bezogen auf Timing-Einstellungen, also Min. Laufzeit, Max. Laufzeit, etc., perfekt auf einander angeglichen werdensollte.