
Visualisierung von Matrix-Trip-Gesamtsummen und Wunschlinien
Oktober 2019: Margarida Delgado erklärt, wo Matrixzellwerte zu finden sind und wie man Wunschlinien und Gesamtfahrten pro Schwerpunkt visualisiert.
Bei makroskopischen Modellen wird die Fahrzeit (und damit die Geschwindigkeit) eines Fahrzeugs durch CR-Funktionen (VDF, TPF, JDF) festgelegt. Diese Funktionen können zur Fahrzeitschätzung auf einer Strecke oder entlang eines Abbiegers entsprechende Parameter wie z. B. die geltenden Höchstgeschwindigkeiten auslesen. Um die Geschwindigkeit dem jeweiligen Fahrzeugtyp entsprechend zu ändern, müssen Sie diese Funktionen bearbeiten.
Bei diesem Profi-Tipp codieren wir die in Großbritannien auf einbahnigen Landstraßen geltenden Höchstgeschwindigkeitsregeln für eine CR-Funktion (VDF). Bei Abbieger-CR-Funktionen (TPF) ist die Vorgehensweise ähnlich. Zunächst müssen Sie den Straßentyp, den Fahrzeugtyp und die Fahrstreifenanzahl überprüfen.
Zur Ermittlung des entsprechenden Fahrzeugtyps verwenden Sie folgenden String:
vehicle = context.userClass.getVehicle()
Zur Ermittlung der jeweiligen Höchstgeschwindigkeit verwenden Sie folgenden String:
SectionSpeed=section.getSpeed()
Zur Ermittlung der Fahrstreifenanzahl verwenden Sie folgenden String:
NbLanes=section.getNbFullLanes()
Die Geschwindigkeit auf einer Strecke kann anschließend mit folgender Funktion festgelegt werden:
def freeFlowTravelTime(context, section, funcVolume):
model = context.experiment.getModel()
vehicleName = context.userClass.getVehicle().getName()
SectionSpeed=section.getSpeed()
NbLanes=section.getNbFullLanes()
if vehicleName==”HGV” and SectionSpeed==96 and NbLanes==1: #If its a HGV on a single carriageway road with a 96kph/60mph limit
speed=80
else:
speed=SectionSpeed
distance=section.length3D() / 1000.0 # Km
t0 = distance/speed # hour
return t0
Diese kann bei Bedarf um weitere Fahrzeugtypen wie beispielsweise Anhängerfahrzeuge erweitert werden.
This freeflowspeed function should then be integrated into the VDF. For example using the BPR function. Dabei ist jedoch weiterhin die Verlustzeit innerhalb der Gesamtfahrzeit zu berücksichtigen. Die Reisezeit wird daher als maximale belastungspezifische Fahrzeit aus der zulässigen Fahrzeughöchstgeschwindigkeit berechnet.
def freeFlowVehicleTravelTime(context, section, funcVolume):
model = context.experiment.getModel()
vehicleName = context.userClass.getVehicle().getName()
SectionSpeed=section.getSpeed()
NbLanes=section.getNbFullLanes()
if vehicleName==”HGV” and SectionSpeed==96 and NbLanes==1: #If its a HGV on a single carriageway road with a 96kph/60mph limit
speed=80
else:
speed=SectionSpeed
distance=section.length3D() / 1000.0 # Km
t0 = distance/speed # hour
return t0
def freeFlowTravelTime(context, section, funcVolume):
model = context.experiment.getModel()
speed=SectionSpeed
distance=section.length3D() / 1000.0 # Km
t0 = distance/speed # hour
return t0
def vdf( context, section, funcVolume ):
#coefficients alpha and beta must be modified accordingly
alpha = 0.15
beta = 4.0
freeFlowVehicleTravelTime = freeFlowVehicleTravelTime(context, section, funcVolume)
freeFlowTravelTime=freeFlowTravelTime(context, section, funcVolume)
volume = funcVolume.getVolume()
addVolume = section.getAdditionalVolume()
capacity = section.getCapacity()
cost = max(freeFlowTravelTime * (1 + alpha * ((volume + addVolume) / capacity ) ** beta), freeFlowVehicleTravelTime)
return cost
Denken Sie daran, dass Sie zur Anwendung der Funktion auf alle Strecken im Netz die Tabellenansicht verwenden können. Diese finden Sie unter Window > Windows > Table View. Zur Aktualisierung aller Strecken wechseln Sie in die Spalte „Volume Delay Function“ und geben die gewünschte Änderung in die unterste Zeile ein.
For more information on scripting and functions, please see qthelp://aimsun.com.aimsun.20.0/doc/UsersManual/ScriptIntro.html
or attend one of our Scripting courses.
Oktober 2019: Margarida Delgado erklärt, wo Matrixzellwerte zu finden sind und wie man Wunschlinien und Gesamtfahrten pro Schwerpunkt visualisiert.
February 2023: Tessa Hayman explains different options for multiple centroid connections and the effects of different parameters and assignment algorithms.
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