IF6AL – Simulação de Eventos Discretos / Prof. Ricardo Equipe: Júlio César Nardelli Borges Marcelo Teider Lopes Projeto Final - Modelo de Coordenação de Eventos para Simulação de Movimento Simples Resumo Esse trabalho é o projeto final da disciplina de Simulação de Eventos discretos e tratará de um tema no qual a abordagem de eventos discretos é empregada na simulação de movimentos. Este tipo de simulação normalmente é realizado com uma sequência de timesteps bem pequenos, onde a cada passo os objetos se deslocam de acordo com uma equação de movimento. A cada passo todas as relações entre objetos precisam ser recalculadas, o que o que exige um número muito grande de cálculos. Com a simulação baseada em eventos, procura-se reduzir a quantidade de cálculos, de forma a permitir a simulação de sistemas mais complexos. 1.Introdução O trabalho é baseado no modelo descrito no artigo [1], o qual é baseado na coordenação temporal de eventos, onde os mesmos são disparados e mantém uma relação temporal entre si. Um nível de comunicação (“listeners”) garantem a sincronização entre os eventos. 1.1.Descrição do artigo No artigo, é tratado o problema da detecção de objetos por radares, mas as mesmas idéias poderiam ser aplicadas para qualquer simulação de movimentos. A colisão entre obejtos (no caso de um radar, entre o objeto e sua área de detecção) passa a ser calculada com base na sua equação do movimento, ao invés da posição atual em um determinado timestep. Sempre que um objeto mudar sua equação de movimento, ou sua área de colisão, é necessário recalcular todas as relações entre objetos, ao invés de a cada timestep. Isso permite realizar simulações mais complexas, e também “ignorar” os instantes de tempo nos quais nenhuma colisão irá ocorrer. Os componentes descritos no artigo são o Mover, Referee e Sensor-TargetMediator. 1.1.1.Mover O mover é baseado nas equações do movimento x(t), que determina a localização de uma entidade no tempo e gera eventos de movimento. 1.1.2.Referee O referee escuta objetos do mover verificando quando os mesmos geram movimento, efetuando cálculos e ativando os sensores apropriados. 1.1.3.Sensor-Target Mediators Esse componente implementa uma lógica de detecção do objeto baseada na posição do mesmo. 1.2.Objetivo O objetivo é criar uma simulação do movimento utilizando eventos discretos, baseando-se nos conceitos do artigo citado e criar um cenário capaz de validar os conceitos implementados no simulador Arena. 2.Descrição do problema O problema é criar uma estrutura baseada em eventos nos quais os mesmos sejam capazes de criar movimentos para uma determinada entidade e sinalizar um sensor, no instante que o mesmo deve ser ativado para detectar se a posição da entidade está abrangida no alcance do sensor. 3.Descrição do modelo de simulação O modelo será implementado na forma de dois subsistemas. O primeiro é responsável pela coordenação do movimento de uma entidade, correspondendo aos componentes Mover e Referee do modelo do artigo, e é responsável pela geração do movimento e ativação dos sensores. Nessa trabalho, esse componente será denominado Subsistema de Movimento. O segundo corresponde ao componente Sensor-Target-Mediator descrito no artigo, e é responsável pela detecção do objeto, e será denominado Subsistema de Detecção. Um mecanismo de sinalização será usado para a comunicação dos dois subsistemas. 4.Resultados/Análise O modelo foi implementado no Arena e de acordo com os dois subsistemas citados. 4.1.Subsistema de Movimento A Figura 1 ilustra o subsistema de movimento: Figura 1 O sistema inicia-se com a criação de uma entidade de movimento, denominada Robot. Um robot tem os seguintes atributos: PosEndX, posição final do movimento. PosInitX, posição inicial do movimento. Vel, velocidade do robot. NumMovCounter, número de movimentos do robot. O processo InitializeRobot inicializa os atributos do robot, e após isso, o robot entra em um loop para realizar uma sequência de movimentos. O número de vezes que a entidade permanece no loop é o valor do atributo NumMovCounter. Dentro do loop, a entidade aguarda um Delay correspondente a (PosEndX-PosInitX)/Vel. Após isso, a entidade dispara um sinal (Move1), o qual ativa o Subsistema de Detecção. Uma variável global guarda a PosEndX do robot (AssignToVariable), conceitualmente isso é a visão global da posição do robot e não depende do modelo em si, e por fim o processo NextMove gera um novo movimento especificando novos valores aos atributos PosEndX, PosInitX e Vel do robot, e incrementando a variável NumMovCounter. 4.2.Subsistema de Detecção O subsistema de detecção é representado pela Figura 2: Figura 2 O modelo inicia-se com a criação de uma entidade Radar. Um radar possui os seguintes atributos: PositionX, posição x do radar. Radius, raio de alcance do radar. Após isso, o radar passa por um processo de inicialização de variáveis e entra num processo de espera (Wait). O radar sai do wait apenas quando o Subsistema de Movimento gera um sinal de movimento (Mover1). Sendo assim, a entidade radar prossegue a uma processo de decisão a qual testa se a posição do robot esta dentro do alcance do radar. A expressão é Posicao >= (PositionX-Radius) && Posicao <= (PositionX+Radius). Se for verdadeira, o radar é disposto em Radar Detection, caso contrário, em Radar Fail. 4.3.Cenário Um cenário foi proposto para testar o modelo onde é criado um robot, o qual se desloca de 0 a 15 m, com uma velocidade de 1 m/s e cujo movimento é dividido em 15 passos. São usados 3 radares de raio 2,5 m e dispostos ao longo da tragetória nas posições, 2,5 m, 7,5 m e 12,5 m. A Figura 3 ilustra esse cenário: Figura 3 Sendo assim, o modelo em Arena apresenta 1 subsistema de movimento e 3 subsistemas de detecção, sendo que a ativação dos sistemas de detecção é sequencial, isto é, se o primeiro radar não detectar o objeto, então o mesmo ativa o segundo radar, e se este não detectar o objeto, ele ativa o terceiro radar. A Figura mostra a visão geral do modelo em Arena: Figura 4 O cenário possibilita verificar a coordenação de eventos para ativação dos subsistemas e validar o conceito proposto no trabalho. 5.Conclusão Através da simulação em Arena, foi possível verificar o comportamente dos componentes modelados. O subsistema de movimento foi capaz de gerar uma sequência de movimentos para uma entidade, onde a cada ciclo, a mesma atualizava sua posição de acordo com a velocidade e o tempo decorrido. O subsistema de movimento apresenta um delay baseado na variação da posição e velocidade do objetivo, sendo assim, o modelo manteve-se coerente com o tempo. No cenário apresentado, o robot se deslocou 15 m a uma velocidade de 1 m/s. Sendo assim, ao término de todos os ciclos de movimento, o tempo decorrido de simulação foi aproximadamente 15 s. A comunicação entre o subsistema de movimento e os subsistemas de detecção permitiu que ao longo da tragetória do robot, o mesmo fosse detectado adequadamente por cada radar. Isto é, até 5 ciclos de movimento, o robot foi detectado pelo radar 1, após 5 e até 10, o robot foi detectado pelo radar 2 e após 10 até 15, o robot foi detectado pelo radar 3. 6.Referência bibliográfica [1] "SIMPLE MOVEMENT AND DETECTION IN DISCRETE EVENT SIMULATION", de Arnold H. Buss e Paul J. Sànchez, da Naval Posgraduate School, Monterey, USA.