domingo, 7 de junio de 2020

Simulación de eventos discretos: JaamSim


Tutorial técnico del uso y proceso de simulación


1. Requerimientos de HW y SW 



JaamSim se ejecutará en la mayoría de las computadoras modernas que admite tengan java 7 o una versión superior y  gráficos OpenGL versión 3.0 o posterior, incluidos computadoras portátiles con procesadores Intel Core i5 e i7 o series que se basan en gráficos integrados.


2. Proceso de configuración e instalación 


JaamSim es una aplicación extremadamente ligera que consta de un solo ejecutable de 10 MB. El ejecutable se puede copiar directamente a la computadora del usuario. No hay un programa de instalación especial necesario. 

Se puede descargar de la siguiente página web https://jaamsim.com/downloads.html, una vez descargado se ejecuta:
Figura 1: Ejecutable JaamSim


El programa ofrece una serie de herramientas entre ellas están el Model Builder que sirve para arrastrar y soltar componentes del modelo: 



Los objetos, como el servidor, se pueden arrastrar desde el generador de modelos directamente a cualquiera de las vistas 3D abiertas. Las paletas y objetos provistos al momento de escribir son:



Una vez instalado el programa se visualiza de la siguiente manera: 
Figura 2: programa JaamSim



3. Tutorial del uso de la herramienta



Modelo de entradas y salidas

JaamSim permite construir modelos a través de la GUI o un archivo de entrada. El archivo de entrada utiliza una estructura de objeto-palabra clave-valor. Por ejemplo, las siguientes líneas de entrada:

Definir nave {LargeShip}
Largo del barco grande {300 m}

definiría el objeto "LargeShip" (una instancia de "Ship") y asignaría el valor de trescientos metros a su entrada de "Longitud". Los cálculos internos se realizan en unidades SI por JaamSim.

El software utiliza anotaciones para codificar este material, lo que hace que el programa se documente en gran medida. 

Ejemplo de servidor cola

El servidor y la cola son dos de los bloques de construcción estándar provistos con cada paquete de simulación. El primer ejemplo para la mayoría del software de simulación es una peluquería, un cajero de banco o algún otro sistema de servidor / cola equivalente: 


El generador crea entidades esféricas y las envía a través de un transportador al servidor. El servidor procesa las entidades y las envía a través de un segundo transportador al sumidero donde se destruyen. Las entidades creadas por el generador son copias de la entidad prototipo y se generan a una velocidad determinada por la distribución del tiempo entre llegadas (IAT). El tiempo de servicio para el servidor está determinado por la distribución del tiempo de servicio. El modelo de servidor y cola proporciona un buen ejemplo para ilustrar algunas de las características básicas de JaamSim.

Tiempo discreto 


La característica definitoria de una simulación de evento discreto es el uso del avance de tiempo del próximo evento, es decir, el tiempo avanza de manera discontinua de un evento al siguiente. Esta lógica es mucho más eficiente y flexible que el tiempo de avance en un incremento fijo


4. Planteamiento y descripción del problema. 



Para aprender de mejor manera el uso y aplicación del programa JaamSim, se plantea como ejemplo el siguiente problema: 


A un lavado de autos llega un automóvil cada 4 minutos. El automóvil cuenta con servicio para lavado de automóvil interno y externo, pero no se sabe hasta que pasan por la cabina principal a que se dirigen. La cabina principal está ubicada en la entrada del autolavado y es quien cobra los importes por cada tipo de lavado. Los lavados interiores se realizan en 10 minutos aproximadamente mientras que los lavados exteriores les toma solamente 5 minutos, luego cada uno sale de la cabina de lavado y se retira del lugar.

Con los datos expuestos y explicado el proceso se debe modelar el sistema. 



5. Proceso de solución. 



  • SimEntity
Entidad que será generada, representará a los automóviles. Es posible declarar variables propias de la entidad




  • Exponential Distribution
Genera valores entre un valor mínimo y un valor máximo, valores que recibe como parámetro

  • DiscreteDistributio
Genera valores discretos de una lista de valores, con una probabilidad asignada a cada una


  • EntityGenerator
Generador de entidades, la frecuencia con la que generará viene dada porsd la probabilidad distribución asignada.

  • Assign
Asigna o modifica las variables de la entidades (asignamos el valor que genere el  Discrete Distribution)


  • Branch
Permite clasificar las entidades basándose en el valor de la variable en la entidad.

  • Queue
Esta cola acumula las entidades hasta que un servidor los consuma.


  • Server
Consume los recursos de las colas, el tiempo que demore en procesar su tarea, viene definida por un objeto ExponentialDistribution

  • EntitySink
Elimina las entidades de la simulación, simula que un cliente sale de la simulación.



6. Resultados 

El modelo del sistema queda estructurado de la siguiente manera: 





7. Conclusiones y recomendaciones



JaamSim es un programa de simulación de eventos discretos de código abierto escrito en el lenguaje de programación Javaque ofrece muchas ventajas entre ellas la velocidad de procesamiento, el ser un software libre, tener una interfaz bastante amigable con el usuario. Por lo que facilita su uso dentro de cualquier área de investigación. 



8. Video explicativo del proceso de simulación y resultados 










No hay comentarios:

Publicar un comentario