Pular para o conteúdo

Aimsun Next API Informações de Caminho do Veículo

Notas

Ao simular uma simulação microscópica com o Aimsun Next, a demanda de tráfego pode ser descrita por estados ou por matrizes OD. Quando o tipo de demanda de tráfego é matrizes OD, os veículos se deslocam pela rede usando caminhos. Esses caminhos são derivados de três fontes diferentes:

  • Caminhos de Escolha de Rota: Estes são os caminhos que foram calculados pelo modelo de escolha de rota.
  • User Defined Paths: Esses caminhos são editados pelo usuário ou podem ser criados automaticamente por um experimento de alocação estática.
  • Árvores de caminhos mais curtos definidas pelo usuário: são as árvores de caminhos mais curtos em que, para cada centroide de destino, há um caminho a partir de cada ponto da rede, supondo que ele exista. Esses caminhos podem ser criados por um experimento Macro ou Dynamic.

As seguintes funções podem ser usadas para recuperar informações do caminho do veículo, bem como o próprio caminho.

Obter Informações do Caminho do Veículo

Em C++ e Python

Explicação

Lê as informações do caminho usado por um veículo. Esta função requer ter a identificação do veículo.

Formato
PathInfVeh AKIVehInfPath( int idveh )
Parâmetros
  • idveh: o identificador do veículo
Saída
struct PathInfVeh{
    int report;
    int idVeh;
    int type;
    int entranceSectionId;
    int numSectionsInPath;
    double totalDistance;
    double totalFreeFlowTravelTime;
};

em que:

  • relatório: 0 OK, caso contrário, verifique o código de erro.
  • idVeh: Identificador do veículo.
  • type: Tipo de caminho:
    • 1: Caminho de escolha de rota
    • 2: Rota Definida pelo Usuário
    • 3: Árvore de Caminho Mais Curto Definida pelo Usuário
  • entranceSectionId. Identificador da seção de entrada. Esta é a seção a partir da qual o veículo entra na rede.
  • numSectionsInPath. Número total de seções que têm o caminho.
  • totalDistance. Distância total do caminho em metros.
  • totalFreeFlowTravelTime. Tempo total de viagem em fluxo livre do veículo em segundos usando a aceitação de velocidade do veículo.

Obter Informações do Caminho do Veículo em uma seção

Em C++ e Python

Explicação

Ler as informações de um veículo em uma seção. Esta função requer que o número de veículos na seção tenha sido obtido chamando AKIVehStateGetNbVehiclesSection.

Formato
PathInfVeh AKIVehInfPathSection(int aidSec, int indexveh)
Parâmetros
  • aidSec: Identificador da Seção
  • indexveh: Índice do veículo, de 0 a (Número Total de Veículos na seção – 1)
Saída
struct PathInfVeh{
    int report;
    int idVeh;
    int type;
    int entranceSectionId;
    int numSectionsInPath;
    double totalDistance;
    double totalFreeFlowTravelTime;
};

em que:

  • relatório: 0 OK, caso contrário verifique o código de erro.
  • idVeh: Identificador do veículo.
  • tipo: Tipo de caminho:
    • 1: Caminho de escolha de rota
    • 2: Rota Definida pelo Usuário
    • 3: Árvore de Caminho Mais Curto Definida pelo Usuário
  • entranceSectionId: Identificador da seção de entrada. Esta é a seção a partir da qual o veículo entra na rede.
  • numSectionsInPath: Número total de seções que têm o caminho.
  • totalDistance: Distância total do caminho em metros.
  • totalFreeFlowTravelTime. Tempo total de viagem em fluxo livre do veículo em segundos usando a aceitação de velocidade do veículo.

Obter a próxima seção no caminho do veículo

Em C++ e Python

Explicação

Retorna o identificador da próxima seção que está usando um veículo. Ao usar matrizes OD, retorna a próxima seção a partir de qualquer seção no caminho do veículo. Se estiver usando estados, então retornará apenas a próxima seção para as próximas 4 seções no caminho do veículo, pois, ao usar estados, o caminho completo até o destino não é pré-calculado desde o início. Apenas as próximas 4 seções estão sempre disponíveis.

Formato
int AKIVehInfPathGetNextSection(int idveh, int fromsection)
Parâmetros
  • idveh: O identificador do veículo
  • fromsection: O identificador da seção "from".
Saída
  • >0: identificador da próxima seção a partir da fromsection
  • -1: fromsection é a última seção do caminho; caso contrário: verificar o código de erro

Verificar se a seção está no caminho do veículo

Em C++ e Python

Explicação

Indica se uma seção especificada está no caminho do veículo fornecido. O caminho completo do veículo é examinado.

Formato
int AKIVehInfSectionInPath(int idveh, int idsection);
Parâmetros
  • idveh: O identificador do veículo
  • seção: O identificador da seção a verificar.
Saída
  • >1: A seção está de fato dentro do caminho do veículo
  • 0: A seção não está dentro do caminho do veículo
  • <0: Verificar código de erro

Obter a próxima seção no caminho do veículo na seção

Em C++ e Python

Explicação

Ler o identificador da próxima seção de determinado veículo em uma seção. Esta função requer, previamente, obter o número de veículos na seção chamando AKIVehStateGetNbVehiclesSection.

Formato
int AKIVehInfPathGetNextSectionInSection(int aidSec, int indexveh, int fromsection)
Parâmetros
  • aidSec: Identificador da Seção
  • indexveh: índice do veículo, de 0 a (Número Total de Veículos na seção – 1)
  • fromsection: O identificador da seção "from".
Saída
  • >0: identificador da próxima seção a partir da fromsection
  • -1: fromsection é a última seção do caminho; caso contrário: verificar o código de erro