• No results found

Para avaliar o impacto da introdução da dupla semaforização no desempenho do cruzamento é necessário comparar as medidas mais importantes para o problema em causa, designadas por medidas de desempenho, ou KPI (Key Performance Indicators). No SIMIO são designadas como Responses.

Tempo de Permanência no Sistema:

Para calcular estas medidas foram definidas como início do sistema, a altura em que os veículos entram num dos acessos do cruzamento e como fim, o momento em que saem do cruzamento. Para calcular o tempo de permanência no sistema é necessário fazer a diferença entre os tempos de simulação correspondentes à entrada e à saída do sistema. Assim, a primeira etapa do MAIN_PROCESS atribui o primeiro à variável TEMP_CrossStartTime. Nesta etapa, é executada a seguinte expressão:

(3)

Uma vez que os tokens que representam os veículos do sistema podem executar várias vezes o MAIN_PROCESS recursivamente, foi necessário garantir que apenas o tempo de simulação, correspondente à entrada de um veículo no sistema, seria guardado na variável TEMP_CrossStartTime. Por este motivo, todos os veículos são criados com o valor -1 guardado na mesma variável. Desta forma, apenas durante a primeira execução do MAIN_PROCESS, os tokens substituem o valor -1 pelo valor pretendido.

O tempo de saída dos veículos do sistema é guardado na variável PRE_EndTime de cada veículo, através do processo Exit_Intersection, executado quando as entidades entram nos nodos que iniciam as vias a jusante do cruzamento, tal como se pode verificar pela Figura 44 na área assinalada a azul. O processo Exit_Intersection está representado na Figura 50.

Figura 50 - Processos AtArrival e Exist_Intersection

Como se pode verificar, a última etapa Tally, é executada depois de ser guardado o tempo de simulação na variável TEMP_CrossEndTime, restando apenas efetuar a diferença entre os valores de início e fim e guardar o resultado na variável estatística TALLY_TimeToCross.

Tempo de Espera dos Veículos:

Tal como na medida anterior, é necessário efetuar a diferença entre o fim do tempo de espera de um veículo e o início do mesmo. Este corresponde ao momento em que um veículo interrompe o seu percurso por o sinal estar vermelho. Porém, devido ao enorme comprimento das vias, foi definido que apenas os veículos que interrompem o seu percurso a uma distância inferior a 150 metros do próximo semáforo é que entram na estatística. Caso contrário, o tempo de espera seria muito superior, pois nos casos de tráfego com muita intensidade, os veículos podem demorar muito tempo a chegar às proximidades do cruzamento (e.g. filas de 600 metros). Nos casos em que o veículo parou a menos metros da distância definida, os respetivos tokens atribuem o valor 1 à variável SavedWaitingTime.

O início do tempo de espera não é de determinação imediata, tal como na medida anterior, uma vez que o processo MAIN_PROCESS, executa recursivamente. Assim, nas respetivas áreas do fluxo de etapas do MAIN_PROCESS, depois de os veículos pararem, o tempo de simulação é guardado na variável TEMP_StarWaitingTime, através da seguinte expressão:

(4)

Por outro lado, o fim do tempo de espera é determinado com base no momento em que um veículo consegue ultrapassar o semáforo. No MAIN_PROCESS, quando as etapas Decide ―Passed PRE?‖ ou ―Passed MAIN?‖ retornam o valor lógico verdade, significa que os veículos ultrapassaram os respetivos semáforos. Nestas situações, os tokens executam, de seguida, o Decide ―Vehicle Stopped?‖ que avalia o valor contido nas variáveis EffectivelyStopped e SavedWaitingTime. Apenas nos casos em que ambas contém o valor 1 (o veículo em causa interrompeu o seu movimento a menos de 150 metros do semáforo), o tempo de simulação é guardado na variável TEMP_EndWaitingTime e, de seguida, subtrai-se a este valor o valor da

variável TEMP_StarWaitingTime . O resultado é guardado na variável estatística TALLY_WaitingTime.

Tamanho das Filas de Veículos:

No processo STOP, sempre que um veículo interrompe o seu percurso, devido ao semáforo ter mudado a sua sinalização para vermelho, os respetivos tokens executam o processo QueueLength, representado na Figura 51.

Figura 51 - Processo QueueLength

Este processo limita-se a verificar em que acesso o veículo em causa circula e a atualizar a respetiva variável que conta o número de veículos que estão a formar a fila do acesso em causa. Assim, resta apenas terminar a contagem no momento em que o semáforo muda para verde. Naturalmente, dependendo do modo de execução do modelo de simulação, esta situação pode ser desencadeada pelo pré-semáforo ou pelo principal. Assim, no processo da Figura 24, que altera a luz do pré-semáforo para verde, a etapa Decide ―Pre Signal?‖, garante que, apenas no modo de execução com pré-semáforos, o tamanho da fila é guardado na variável estatística TALLY_QueueLength. Da mesma forma, se o modelo executar sem pré-semáforos, apenas no processo responsável pela alteração dos semáforos principais para verde (Figura 25) é que a etapa Tally é executada.

Fluxo de Cruzamento:

Esta medida pode ser calculada de duas diferentes formas. A primeira resulta da divisão do número de veículos que passam o cruzamento pelo número de horas. Este procedimento é calculado através das etapas Assign ―Number in Intersection‖ e Tally ―Flow‖ do processo Enter_Intersection, apresentado na Figura 52. A Figura 53 ilustra o momento em que o processo em causa é executado.

Figura 52 - Processo Enter_Intersection

Figura 53 - Momento da execução do processo EnterIntersection

A primeira etapa deste processo incrementa uma unidade à variável NumberInIntersection. Esta atua como um contador de veículos que passam pelo cruzamento, restando apenas dividir este valor pelo número de horas de simulação (subtraíndo o tempo de aquecimento do sistema) para se obter o resultado nas unidades desejadas. Assim, na propriedade Value Type desta etapa, define-se a opção Expression e insere-se a seguinte expressão para ser guardada na variável estatística TALLY_IntersectionFlow:

( )

O objeto Run é uma coleção de funções que permitem obter informação acerca do relógio de simulação, bem como outras opções relacionadas com o controlo da execução do modelo. Uma dessas funções é a TimeNow, que devolve o tempo de simulação, em horas, obtendo-se assim, através desta expressão, o resultado pretendido.

Intervalo de tempo entre passagens de veículos pelo cruzamento:

A segunda possibilidade, corresponde ao inverso do intervalo de tempo entre passagens de veículos pelo cruzamento. Esta medida é obtida através da etapa Tally ―Time between‖ do processo representado na Figura 52. Na propriedade Value Type desta etapa, altera-se a opção para TimeBetween e o intervalo de tempo entre passagens de veículos pelo cruzamento será guardado na variável estatística TALLY_TimeBetween. O Gráfico 2 e o Gráfico 3 representam a

evolução das duas formas distintas de cálculo do fluxo de um cruzamento, com e sem tempo de aquecimento, respetivamente.

Gráfico 2 - Evolução das duas formas de cálculo do fluxo, sem tempo de aquecimento

Gráfico 3 - Evolução das duas formas de cálculo do fluxo, com tempo de aquecimento Como se pode verificar, existe uma convergência mais lenta, contudo sujeita a menos oscilações, usando o método que calcula o número de veículos que passaram pelo cruzamento por tempo de simulação. O inverso do intervalo de tempo entre passagens de veículos pelo cruzamento tem mais oscilações, na medida em que, quando ocorre uma transação de permissões (o semáforo de um acesso muda para vermelho e o semáforo do acesso seguinte muda para verde), este intervalo aumenta e, consequentemente, o fluxo diminui. Por outro lado, converge mais rapidamente para valor correto, pois não considera o tempo decorrido até à passagem do primeiro veiculo pelo cruzamento, ao contrário do primeiro método.

Velocidade que os veículos apresentam no momento em que ultrapassam a linha de stop

Esta medida é guardada na variável estatística TALLY_VelocityAtIntersection, através da etapa Taly do processo representado na Figura 52. Assim, sempre que um veículo passa pela linha de stop do cruzamento a sua velocidade é guardada.

Apesar das várias medidas aqui abordadas, o fluxo de veículos, o tamanho médio das filas e o tempo médio de espera são os KPI definidos para este projeto.