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.
Download

Coordenação de Eventos