Nota Técnica #55
Janeiro 2021

Por Marga Delgado

Em modelos estáticos, você pode querer incluir as diferentes percepções de custo que os usuários da rede terão sobre certos componentes da rede, dependendo do objetivo da viagem. Um viajante pode considerar o uso de uma estrada com pedágio, mas pode ficar mais relutante em usá-la quando for fazer compras.

No Aimsun Next, tanto as atribuições estáticas (veículos particulares) quanto as atribuições de trânsito (passageiros) podem levar em consideração o propósito da viagem ao avaliar o custo de um trajeto.

Na Nota Técnica nº 53, damos algumas dicas sobre como modificar o custo para a atribuição estática com base no tipo de veículo. As exigências em modelos estáticos são codificadas através de matrizes OD e estas são dadas por classe de usuário (tipo de veículo + finalidade de viagem). O acesso ao propósito de viagem em uma função de atraso de volume, função de penalidade de giro e função de atraso de junção é, portanto, tão fácil quanto acessar o tipo de veículo:

vehicle = context.userClass.getPurpose()

Por exemplo, em uma função BPR que tem um termo adicional para pedágios, podemos diminuir o VoT (valor do tempo) do veículo, que converte um pedágio (codificado no primeiro custo definido pelo usuário) em unidades de tempo incluindo um peso, quando a finalidade do percurso é “Trabalho”.

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

Outra opção, se você quiser definir um VoT ou VOC (custo operacional do veículo) diferente por tipo de veículo e finalidade de viagem, é definir estes valores como um atributo da Classe do Usuário em vez de usar o parâmetro Tipo de Veículo. Ative a janela Tipos, encontre o tipo de Classe do Usuário e clique duas vezes em Classe do Usuário (GKUserClass) para acessar o Editor de Tipo.

How to define different costs per trip purpose in static models

Clique no botão Adicionar e crie um novo atributo do tipo Double.

How to define different costs per trip purpose in static models

Este atributo estará agora disponível para qualquer Classe de Usuário. Você pode encontrá-lo na guia Atributos no Editor de Classe do Usuário. Basta preencher os valores e acessar este atributo nas funções de custo (para seção, movimento, ou ambos).

How to define different costs per trip purpose in static models

col = section.getModel().getColumn("GKUserClass::VoTperPurpose")
VoT = context.userClass.getDataValueDouble(col)

As funções de custo de Transporte Público também podem acessar o propósito da viagem através do parâmetro de contexto, e podem acessar atributos de classe de usuário, de modo que você ainda pode usar as abordagens apresentadas acima. Além disso, outra abordagem está disponível. No editor de Classe de Usuário, para cada tipo de veículo e finalidade de viagem, está disponível um conjunto de pesos para o TP. Estes pesos são automaticamente levados em conta ao somar todos os componentes de custo para a avaliação do custo total de uma viagem de TP.

How to define different costs per trip purpose in static models

Para mais informações sobre as funções estáticas privadas e de TP, por favor veja qthelp://aimsun.com.aimsun.20.0/doc/UsersManual/FunctionEditing.html ou participe de um de nossos Macroscopic or Strategic Modeling courses.

Para mais informações sobre scripts, por favor veja qthelp://aimsun.com.aimsun.20.0/doc/UsersManual/ScriptIntro.html ou comparecer à um de nossos Scripting courses.