Skip to content

Criação Automática de Nós

Regras de Geração de Virações

As seguintes regras são aplicadas ao gerar automaticamente as virações no nó:

  1. Virações em U não serão geradas
  2. Se todas as seções de origem estão alinhadas com todas as seções de destino e o número total de faixas de entrada é igual ao número total de faixas de saída, as virações são geradas como uma junção.


    Regras de geração de virações. Junção

  3. Se houver apenas uma vira saída da seção, a vira vai de todas as faixas para todas as faixas.


    Regras de geração de virações. Uma vira vai de todas as faixas para todas as faixas

  4. Se uma seção de origem está alinhada com uma seção de destino e o número de faixas de entrada é menor ou igual ao número de faixas de saída:

    • Movimento reto vai de todas as faixas de entrada para todas as faixas de saída.


      Regras de geração de virações. Movimento reto vai de todas as faixas para todas as faixas

      NentryLanesTM = NentryLanes,
      NexitLanesTM = NexitLanes,
      
      onde
      NentryLanes - número de faixas de uma seção de origem,
      NexitLanes - número de faixas de uma seção de destino,
      NentryLanesTM - número de faixas de entrada de um movimento reto,
      NexitLanesTM - número de faixas de saída de um movimento reto.
      
    • A vira à esquerda vai da faixa de entrada mais à esquerda para todas as faixas de saída.


      Regras de geração de virações. Vira à esquerda

      NentryLanesLT = 1,
      NexitLanesLT = NexitLanes,
      
      onde
      NexitLanes - número de faixas de uma seção de destino,
      NentryLanesLT - número de faixas de entrada de uma vira à esquerda,
      NexitLanesLT - número de faixas de saída de uma vira à esquerda.
      
    • A vira à direita vai da faixa de entrada mais à direita para todas as faixas de saída.


      Regras de geração de virações. Vira à direita

      NentryLanesRT = 1,
      NexitLanesRT = N<sub>exitLanes,
      
      onde
      NexitLanes - número de faixas de uma seção de destino,
      NentryLanesRT - número de faixas de entrada de uma vira à direita,
      NexitLanesRT - número de faixas de saída de uma vira à direita.
      
  5. Se uma seção de origem está alinhada com uma seção de destino e o número de faixas de entrada é maior que o número de faixas de saída:

    • O número de faixas do movimento reto é igual ao número de faixas de saída.


      Regras de geração de virações. Movimento reto

      NentryLanesTM = NexitLanes,
      NexitLanesTM = NexitLanes,
      
      onde
      NexitLanes - número de faixas de uma seção de destino,
      NentryLanesTM - número de faixas de entrada de um movimento reto,
      NexitLanesTM - número de faixas de saída de um movimento reto.
      
    • O número de faixas de entrada da vira à esquerda é igual à diferença entre o número de faixas de entrada e saída (as faixas das seções alinhadas).


      Regras de geração de virações. Vira à esquerda

      NentryLanesLT = NentryLanes - NexitLanesAS,
      NexitLanesLT = NexitLanes,
      
      onde
      NentryLanes - número de faixas de uma seção de origem,
      NexitLanesAS - número de faixas de uma seção de destino alinhada,
      NexitLanes - número de faixas de uma seção de destino,
      NentryLanesLT - número de faixas de entrada de uma vira à esquerda,
      NexitLanesLT - número de faixas de saída de uma vira à esquerda.
      
    • A vira à direita vai da faixa de entrada mais à direita para todas as faixas de saída.


      Regras de geração de virações. Vira à direita

      NentryLanesRT = 1,
      NexitLanesRT = NexitLanes,
      
      onde
      NexitLanes - número de faixas de uma seção de destino,
      NentryLanesRT - número de faixas de entrada de uma vira à direita,
      NexitLanesRT - número de faixas de saída de uma vira à direita.
      
  6. Se uma seção de origem tem várias seções de destino alinhadas:

    • Com um número par de seções de destino: As faixas de entrada e saída são distribuídas proporcionalmente ao número total de faixas e ao número de faixas de cada seção.


      Regras de geração de virações. Número par de seções de destino alinhadas

      • Se o número de faixas de saída da vira à esquerda for igual ao número de faixas de saída da vira à direita, mas o número de faixas de entrada da seção de origem for ímpar, a divisão das faixas sempre favorece a vira à esquerda.


      Regras de geração de virações. Distribuição de faixas

    • Com um número ímpar de seções de destino: A seção de destino mais próxima é considerada como a seção de destino principal. As faixas de entrada e saída são distribuídas proporcionalmente ao número total de faixas e ao número de faixas de cada seção. Todas as faixas das seções de origem vão para todas as faixas da seção de destino principal.


      Regras de geração de virações. Número ímpar de seções de destino alinhadas

  7. Se uma seção de destino tem várias seções de origem alinhadas:

    • As mesmas regras são aplicadas como para a seção de origem que possui várias seções de destino alinhadas.


      Regras de geração de virações. Seções alinhadas de origem

  8. Se uma seção de origem não tem nenhuma seção de destino alinhada, mas tem viras à esquerda e à direita e seu número de faixas é maior que 2, dividimos as faixas entre a esquerda e a direita, mas sempre com prioridade para a esquerda (caso o número de faixas seja ímpar, por exemplo, 2 faixas para a esquerda e 1 para a direita).


    Regras de geração de virações. Sem seções alinhadas

Velocidade da Viração

Cálculo Automático da Velocidade

Em viras curvas, a velocidade automática é calculada como a velocidade máxima que um veículo pode alcançar sem deslizar para fora da via. A fórmula utilizada é:

V = sqrt(g*Rmean*ft)

onde

  • g é a aceleração da gravidade (g=127 para V em km/h e Rmean em metros),
  • Rmean é o raio médio encontrado ao longo da viração,
  • ft é o coeficiente de atrito (considerado como 0.9).

Rmean é obtido a partir das equações da primeira e segunda derivadas da Curva de Bezier representando a viração. Rmean é calculado como a média de R(t)=||C'(t)||\^3/|C'(t)C''(t)| ao longo dos 20 pontos que definem o movimento da viração. Para lidar com um valor infinito para o raio em porções retas, seu inverso é usado para calcular a média e invertido de volta para obter o resultado. Note que este método favorece valores de raio pequeno. Um limite inferior de 15 km/h é aplicado ao resultado.

Para evitar valores de velocidade irrealisticamente baixos causados por má alinhamento da seção, o resultado é filtrado para pequenas alturas de vira (menos de 5 metros) e pequenos ângulos entre seções precedentes e seguintes (menos de 30 graus). Nesses casos, uma variação máxima de velocidade em relação à velocidade média da viração Vmean, obtida pela média do limite de velocidade da seção precedente e seguinte, é aplicada: para viras curtas, um limite de velocidade inferior de Vmean - 5.0 * comprimento da viração é aplicado, enquanto para ângulo pequeno o limite de velocidade inferior é Vmean * cosseno (3.0 * ângulo da seção).

Quando as viras são representadas por linhas retas, a velocidade é adaptada usando uma interpolação linear da seguinte dependência tabulada (para o caso de 120 km/h) entre ângulo de vira e velocidade, corrigida pelo comprimento da viração com um termo adicional de 0.1 * comprimento da viração.

Ângulo em graus Velocidade em km/h
10 115
22 60
40 25
62 15
100 9