如何在静态模型中定义每个出行目的的不同成本

技术注解 #55
2021年1月

作者:Marga Delgado

在静态模型中,你可能想包括路网使用者对某些网络组成部分的不同成本认知,这取决于旅行的目的。 一个通勤者可能会考虑使用收费公路,但在去购物时可能不愿意使用。

在Aimsun Next中,静态分配(私家车)和公共交通分配(乘客)在评估路径成本时都可以考虑到出行目的。

在技术注解#53中,我们给出了一些关于如何根据车辆类型修改静态分配成本的技巧。 静态模型中的需求是通过OD矩阵编码的,这些需求是由用户类别(车辆类型+出行目的)给出的。 因此,在流量延误函数、转弯罚函数和路口延误函数中访问行程目的,就像访问车辆类型一样简单:

				
					vehicle = context.userClass.getPurpose()
				
			
For example, in a BPR function that has an additional term for tolls, we can decrease the vehicle VoT (value of time), which converts a toll (coded in the first user defined cost) into time units including a weight, when the trip purpose is ‘Work’.
				
					def vdf(context, section, funcVolume):
	vehicleName = context.userClass.getVehicle().getName()
	tripPurposeName = context.userClass.getPurpose().getName()
	vehicleVoT = context.userClass.getVehicle().getValueOfTimeMean()
	if vehiclePurpose==”Work”: #If trip purpose is “Work”
		vehicleVoT = 0.5 * vehicleVoT

	#coefficients alpha and beta must be modified accordingly
	alpha = 0.15
	beta = 4.0
	freeflowTravelTime = ( 60.0 / section.getSpeed() ) * section.length3D() / 1000.0 
	volume = funcVolume.getVolume()
	addVolume = section.getAdditionalVolume()
	capacity = section.getCapacity()
	cost = freeflowTravelTime * ( 1 + alpha * ((volume + addVolume) / capacity ) ** beta) + vehicleVoT * section.getUserDefinedCost()
	return cost
				
			
Another option, if you want to define a different VoT or VOC (vehicle operating cost) per vehicle type and trip purpose, is to define these values as an attribute of the User Class instead of using the Vehicle Type parameter. Activate the Types window, find the User Class type and double-click on User Class (GKUserClass) to access the Type Editor.

如何在静态模型中定义每个出行目的的不同成本

点击 “添加 “按钮,创建一个新的“双倍”类型的属性。

如何在静态模型中定义每个出行目的的不同成本

这个属性现在对任何“用户类别”都可用。 你可以在“用户类别”编辑界面的“属性”页中找到它。 只需填入数值,并在成本函数中访问这个属性(针对路段、转弯或两者)。

如何在静态模型中定义每个出行目的的不同成本

				
					col = section.getModel().getColumn("GKUserClass::VoTperPurpose")
VoT = context.userClass.getDataValueDouble(col)
				
			
Transit cost functions can also access the trip purpose through the context parameter, and can access user class attributes, so you can still use the approaches presented above. In addition, another approach is available. In the User Class editor, for each Vehicle Type and Trip Purpose, a set of weights for Transit is available. These weights are automatically taken into account when adding up all cost components for the evaluation of the total cost of a transit trip.

如何在静态模型中定义每个出行目的的不同成本

欲了解更多关于静态私人和公共交通函数的信息,请参见 qthelp://aimsun.com.aimsun.20.0/doc/UsersManual/FunctionEditing.html 或参加我们的 宏观或战略模型课程

关于脚本的更多信息,请参见 qthelp://aimsun.com.aimsun.20.0/doc/UsersManual/ScriptIntro.html 或参加我们的编程课程

  • 有问题吗? 请联系我们。

    我们在这里提供帮助!

  • 有问题吗? 请联系我们。

    我们在这里提供帮助!

分享