
Umstieg auf Python 3
Mai 2021: Python 2 wurde im Januar 2020 eingestellt. Tessa Hayman gibt Ihnen einige Tipps, wie Sie Ihr Skript für eine optimale Leistung in Aimsun Next Python-3-fähig machen.
Von Dimitris Triantafyllos
Dezember 2021
Die Aimsun Next API ist eine Sammlung von Funktionen in Python oder C++, mit denen du Informationen lesen und Maßnahmen während einer mesoskopischen, mikroskopischen oder hybriden mesoskopisch-mikroskopischen Simulation durchführen kannst. Mit der API kannst du Änderungen vornehmen, während die Simulation läuft, während du bei der Skripterstellung alle Änderungen vornehmen musst, bevor die Simulation startet.
Du kannst die API auch nutzen, um eine externe Anwendung mit der Simulation zu verbinden. Auf der Teilstrecke innerhalb von Aimsun Next kann die API mit der Simulation Engine kommunizieren, auf der Teilstrecke mit der externen Anwendung.
Die häufigste Anwendung der Aimsun Next API ist die Emulation von Intelligent Transportation Systems (ITS), Advanced Fahrer Assistance Systems (ADAS) und Connected Fahrzeug (CV) Anwendungen: zum Beispiel die Implementierung von benutzerdefinierten Algorithmen für die Bevorrechtigung von Signalgruppen und die adaptive Verkehrssteuerung, die Anwendung von Verkehrsmanagement im laufenden Betrieb, die Steuerung von Parametern für das Fahrverhalten von Fahrzeugen usw. Der Funktionsumfang der API hängt von der Simulations-Engine ab:
Sowohl in mesoskopischen als auch in mikroskopischen Simulationen kannst du:
In einer mikroskopischen Simulation (oder im mikroskopischen Bereich einer hybriden Meso-Mikro-Simulation), kannst du:
In einer mesoskopischen Simulation kannst du:
Im folgenden Beispiel verwenden wir die API, um die Geschwindigkeit und den Fahrstreifen der Fahrzeuge, die sich einem Knoten vereinigen, zu kontrollieren. Dies ist eine sehr einfache (wahrscheinlich vereinfachte) Implementierung eines kooperativen Knotens, der für vernetzte Fahrzeuge eingesetzt wird.
Zeitschritt 1: Wir setzen alle Fahrzeuge, die die Strecke vor dem Knoten vereinigen, als verfolgt ein, damit wir ihre Geschwindigkeit und ihr Ziel Fahrstreifen bei Bedarf ändern können. Dies geschieht durch den Aufruf der Funktion
int AKIVehSetAsTracked(int aidVeh)
in dem AAPIEnterVehicleSection Callback
Zeitschritt 2: Bei jedem Simulationsschritt ermitteln wir die Anzahl der Fahrzeuge auf den ausgewählten Strecken mithilfe der folgenden Funktion:
int AKIVehStateGetNbVehiclesSection(int aidSec, bool considerAllSegments)
Zeitschritt 3: Dann lesen wir den Status dieser Fahrzeuge mit
int AKIVehStateGetVehicleInfSection(int aidSec, int indexveh)
Zeitschritt 4: Als Nächstes ändern wir die Geschwindigkeit der Fahrzeuge vor dem Knoten mit
int AKIVehTrackedModifySpeed(int aidVeh, double newSpeed)
Beachte, dass du mit dieser Funktion nur eine Geschwindigkeit einstellen kannst, die niedriger ist als die vom Folgefahrzeug-Modell berechnete Geschwindigkeit. Wenn du nicht an die Geschwindigkeit des Folgefahrzeugs gebunden sein willst, kannst du stattdessen die folgende Funktion verwenden:
int AKIVehTrackedForceSpeed (int aidVeh, double newSpeed)
Zeitschritt 5: Im Abschnitt des Knotens vereinigen wir die ganz linke Fahrspur als Zielfahrstreifen, indem wir
AKIVehTrackedModifyLane (int aidVeh, int nextLane)
Zeitschritt 6: Wenn die Fahrzeuge die Strecke des Knotens vereinigen, setzen wir die Fahrzeuge durch einen Aufruf zurück auf nicht verfolgt
int AKIVehSetAsNoTracked(int aidVeh)
in dem AAPIExitVehicleSectionc allback
Hinweis: Denke daran, dass die Aimsun AAPI Datei mit der aktuell verwendeten Aimsun Version übereinstimmen muss. Du kannst sie hier abrufen:
Aimsun_Next_installation_folder/programming/Aimsun Next API/python/private/Micro/AAPI.py
Die Erweiterung der Aimsun Next Benutzeroberfläche (API) kann mit einem Python Skript implementiert werden. Dieses Python-Skript ist eine ASCII-Datei (mit der Erweiterung: „.py„), die in jedem Texteditor bearbeitet werden kann. Dieses Python Skript wird mit der Aimsun Next Software im Aimsun_Next_installation_Ordner bereitgestellt (Rechtsklick auf die Aimsun Next Verknüpfung > Wähle „Standort der Datei öffnen“).
Lizenz: Beachte, dass du eine API-Lizenz benötigst, um dieses Beispiel auszuführen. Für mehr Informationen, kontaktiere bitte info@aimsun.com
Mai 2021: Python 2 wurde im Januar 2020 eingestellt. Tessa Hayman gibt Ihnen einige Tipps, wie Sie Ihr Skript für eine optimale Leistung in Aimsun Next Python-3-fähig machen.
März 2021: Tessa Hayman führt Sie durch die Komplexität der Verarbeitung von Zeitreihen über Python-Skripte und erklärt, wie Sie Ihre eigenen Zeitreihen so erstellen, dass sie in der Bedienoberfläche visualisiert werden können.
TEILEN
Aimsun Next 23
Aimsun Next 20.0.5
Aimsun Next 23
@manual {AimsunManual,
title = {Aimsun Next 23 User's Manual},
author = {Aimsun},
edition = {Aimsun Next 23.0.0},
address = {Barcelona, Spain},
year = {2023. [Online]},
month = {Accessed on: Month, Day, Year},
url = {https://docs.aimsun.com/next/23.0.0/},
}
Aimsun Next 20.0.5
@manual {AimsunManual,
title = {Aimsun Next 20.0.5 User's Manual},
author = {Aimsun},
edition = {Aimsun Next 20.0.5},
address = {Barcelona, Spain},
year = {2021. [In software]},
month = {Accessed on: Month, Day, Year},
url = {qthelp://aimsun.com.aimsun.20.0/doc/UsersManual/Intro.html},
}
Aimsun Next 23
TY - COMP
T1 - Aimsun Next 23 User's Manual
A1 - Aimsun
ET - Aimsun Next Version 23.0.0
Y1 - 2023
Y2 - Accessed on: Month, Day, Year
CY - Barcelona, Spain
PB - Aimsun
UR - [In software]. Verfügbar: https://docs.aimsun.com/next/23.0.0/
Aimsun Next 20.0.5
TY - COMP
T1 - Aimsun Next 20.0.5 User's Manual
A1 - Aimsun
ET - Aimsun Next Version 20.0.5
Y1 - 2021
Y2 - Accessed on: Month, Day, Year
CY - Barcelona, Spanien
PB - Aimsun
UR - [In software]. Available: qthelp://aimsun.com.aimsun.20.0/doc/UsersManual/Intro.html