- Portfolio
- Innovationslabor
- Software
Aimsun Next bekommen
Aimsun Next verwenden
Über Aimsun Next
- Über
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.
TEILEN