Definition von Höchstgeschwindigkeiten nach Fahrzeugklassen in statischen Modellen

[one_fourth]

 

Technische Mitteilung #53
November 2020

Von Tessa Hayman

[/one_fourth]
[three_fourth_last]

In bestimmten Situationen können je nach Fahrzeugtyp unterschiedliche Geschwindigkeitsbegrenzungen gelten. Auf einbahnigen Landstraßen im Vereinigten Königreich beispielsweise beträgt die zulässige Höchstgeschwindigkeit für Fahrzeuge über 7,5 Tonnen 50 mph bzw. 80 km/h, für alle anderen Fahrzeuge dagegen 60 mph bzw. 100 km/h. Sie können dies für makroskopische Modelle in den CR-Funktionen codieren oder – bei mikroskopischen und mesoskopischen Modellen – wie in Teil 1 erläutert die Verkehrsmanagementfunktion verwenden.

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.

Diese Freeflowspeed-Funktion sollte dann zum Beispiel mit der BPR-Funktion in die CR-Funktion integriert werden. 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.

Definition von Höchstgeschwindigkeiten nach Fahrzeugklassen in statischen Modellen

 

Stellen Sie in der untersten Zeile die gewünschte CR-Funktion ein.
Stellen Sie in der untersten Zeile die gewünschte CR-Funktion ein.

 

Weitere Informationen zum Skripting und den einzelnen Funktionen finden Sie unter qthelp://aimsun.com.aimsun.20.0/doc/UsersManual/ScriptIntro.html, oder besuchen Sie einen unserer Skripting-Lehrgänge.

[/three_fourth_last]