Modellierung verbundener Fahrzeuge mit Aimsun API: Kooperative adaptive Geschwindigkeitsregelung
Technischer Hinweis Nr. 22
Januar 2017
Von Paolo Rinelli und Dimitris Triantafyllos
Wussten Sie, dass Sie das Aimsun micro Advanced Programming Interface (API) verwenden können, um einige Anwendungen für vernetzte Fahrzeuge zu modellieren, wie z. B. die kooperative adaptive Geschwindigkeitsregelung (CACC)?
Für diese Anwendung benötigen Sie Funktionen zum:
Lesen des Zustands eines Fahrzeugs und des vorausfahrenden Fahrzeugs (um zu prüfen, ob sich beide innerhalb der maximalen Kommunikationsreichweite des Systems befinden, und um die Informationen zu lesen, die zwischen den beiden übertragen werden würden, z. B.: Position, Geschwindigkeit, Beschleunigung usw.)
Modifizieren Sie die Verhaltensparameter eines Fahrzeugs, um den Übergang von der menschlichen zur maschinellen Steuerung zu emulieren
Steuern Sie die Geschwindigkeit eines Fahrzeugs während der Simulation
Die API stellt alle Funktionen zur Durchführung dieser Aufgaben zur Verfügung.
Kooperative adaptive Geschwindigkeitsregelung
Die kooperative adaptive Geschwindigkeitsregelung stützt sich auf die Kommunikation zwischen den Fahrzeugen, um auf die Geschwindigkeit, den Abstand und die Beschleunigung des/der führenden Fahrzeugs/Fahrzeuge zuzugreifen und die Geschwindigkeit oder Beschleunigung zu berechnen, die das nachfolgende Fahrzeug annehmen sollte.
Ein Beispiel für die CACC-Logik ist (siehe Bart van Arem et al., The Impact of Cooperative Adaptive Cruise Control on Traffic Flow Characteristics, 2006):
ad = k3a + k2ev + k1ex, k1, k2, k3 > 0
wo:
ad ist die Beschleunigung, die der Folger anwenden soll a ist die Beschleunigung des Vorspanns ev,i ist der Geschwindigkeitsfehler, gleich der relativen Geschwindigkeit zwischen Leader und Follower exi ist der Abstandsfehler, gleich der Differenz zwischen dem gewünschten Abstand xd,i und das aktuelle Spiel xr,i k1, k2, k3 sind Reglerrückführungsverstärkungen für Beschleunigung a, Geschwindigkeit vx und Abstandsfehler ex
Aimsun Mikro-API-Implementierung
Der beigefügte Quellcode zeigt ein Beispiel für die Implementierung der oben beschriebenen CACC-Logik. Die Implementierung stützt sich auf die folgende Funktionalität.
Alle Fahrzeuge, die in das Netzwerk einfahren, müssen als getrackt eingestellt werden, damit Sie ihre Geschwindigkeit nachträglich ändern können.
Erläuterung: Ein Fahrzeug als nachgeführt einstellen
int AKIVehSetAsTracked(int aidVeh)
Schritt 1
Bei jedem Simulationsschritt erhalten wir die Anzahl der Fahrzeuge in einem einzelnen einspurigen Abschnitt* mit Hilfe der folgenden Funktion:
Erläuterung: Lesen Sie die Gesamtzahl der Fahrzeuge in einem Abschnitt ab
int AKIVehStateGetNbVehiclesSection(int aidSec, bool considerAllSegments)
* In diesem Beispiel ist das Finden des Führenden trivial, da es nur einen Abschnitt und eine Spur gibt und die API die Fahrzeuge vom Ende zum Anfang des Abschnitts geordnet zurückgibt. Sie sollten diese Funktion neu schreiben, wenn Sie komplexere Situationen mit mehreren Fahrspuren und Abschnitten behandeln wollen.
Ermitteln Sie den Zustand jedes Fahrzeugs und den seines Leitfahrzeugs mit der folgenden Funktion:
Erläuterung: Lesen Sie die Informationen eines Fahrzeugs in einem Abschnitt
infVeh = AKIVehStateGetVehicleInfSection(id, i)
Schritt 2
Prüfen Sie, ob der Abstand zwischen den beiden Fahrzeugen innerhalb der maximalen Kommunikationsreichweite des Systems liegt; in diesem Fall wird CACC aktiviert. Die Aktivierung von CACC wird durch Änderung einiger Fahrzeugparameter modelliert, die das menschliche Fahrverhalten widerspiegeln.
Um die Verhaltensparameter eines Fahrzeugs zu ändern, zum Beispiel reactionTime, reactionTimeAtStop, reactionTimeAtTrafficLight, sensitivityFactor, minDistanceVeh, verwenden Sie die folgende Funktion*:
Erläuterung: Ändern Sie die statischen Parameter eines Raupenfahrzeugs. Statische Parameter sind solche, die einmalig beim Erzeugen des Fahrzeugs eingestellt wurden
* Vergessen Sie nicht, die Anfangswerte dieser Parameter zwischenzuspeichern, um sie wiederherstellen zu können, wenn die CACC deaktiviert wird.
Schritt 3
Berechnen Sie die Geschwindigkeit mit der oben beschriebenen CACC-Formel und wenden Sie die neue Geschwindigkeit mit der folgenden Funktion an:
Erläuterung: Ändern Sie die Geschwindigkeit eines Kettenfahrzeugs für den nächsten Simulationsschritt
int AKIVehTrackedModifySpeed(int aidVeh, double newSpeed)
Beachten Sie, dass Aimsun Ihnen nicht erlaubt, eine höhere Geschwindigkeit einzustellen, als die, die es unter Anwendung der Standard-Autofollowing berechnet. Die Fahrzeugparameter, die wir bei aktiviertem CACC einstellen, zielen darauf ab, dass die Standardgeschwindigkeit des nachfolgenden Fahrzeugs weniger restriktiv ist als die CACC-Geschwindigkeit.
Wenn der Führer eines CACC-Fahrzeugs den Zug verlässt, muss das nachfolgende Fahrzeug in den manuellen Fahrzustand zurückkehren. Dies wird durch die Wiederherstellung der Anfangswerte der Fahrzeugparameter erreicht.
Ausführen der Beispiel-API
Laden Sie die folgenden Beispieldateien herunter und stellen Sie sicher, dass sich alle Dateien im gleichen Verzeichnis befinden:
Denke daran, dass die Aimsun AAPI-Datei mit der aktuell verwendeten Aimsun-Version übereinstimmen muss. Du kannst es hier abrufen: C:\Programmdateien\TSS-Transport Simulation Systems\Aimsun\Programmierung\Aimsun API\AAPIPython\Micro
Verfahren
Starte Aimsun und öffne dann die mitgelieferte CACC.ang Datei
Führe die Replikation aus. Siehe Log-Fenster für detailliertes Feedback über den Betrieb der CACC
Lizenz: Beachte, dass du eine API-Lizenz benötigst, um dieses Beispiel auszuführen. Für mehr Informationen, kontaktiere bitte info@aimsun.com
This website uses cookies to enhance your browsing experience. AcceptRead More
Privacy & Cookies Policy
Privacy Overview
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
TEILEN
Zitieren Aimsun Next
Klartext
BibTeX
RIS
Aimsun Next 23
Aimsun (2023). Aimsun Next 23 User’s Manual, Aimsun Next Version 23.0.0, Barcelona, Spanien. Zugriff am: July. 19, 2023. [Online]. Verfügbar: https://docs.aimsun.com/next/23.0.0/
Aimsun Next 20.0.5
Aimsun (2021). Aimsun Next 20.0.5 User’s Manual, Aimsun Next Version 20.0.3, Barcelona, Spanien. Accessed on: May. 1, 2021. [In software]. Available: qthelp://aimsun.com.aimsun.20.0/doc/UsersManual/Intro.html
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