Simulación de patio de grúas en AnyLogic

Esta publicación de blog describe una simulación simple de patio de grúas en AnyLogic . Desarrollé este modelo en AnyLogic con fines de demostración. Ya he publicado una serie de entradas de blog sobre modelado de simulación en AnyLogic. A continuación se muestra una lista de algunos de ellos.

Esta publicación considera un patio de almacenamiento para el almacenamiento de piezas procesadas. No consideraré la tasa de llenado del búfer en sí. Tampoco modelaré el seguimiento de piezas individuales. Es decir, la capacidad de almacenamiento es una caja negra y la atención se centra en evaluar las capacidades de rendimiento de la grúa de patio. Esto asume una matriz de flujo de material específica, que describe las tasas de entrada y salida hacia y desde el búfer.

Descripción general del modelo de simulación del patio de grúas

La siguiente captura de pantalla muestra los componentes principales del modelo de simulación del patio de grúas AnyLogic . El patio de almacenamiento tiene dos transportadores de entrada y tres transportadores de salida. Es operado por una sola grúa de patio horizontal.

Descripción general del modelo de simulación de patio de grúas en AnyLogic

Es un modelo simple que se puede construir en 1 hora. Como se indica en la introducción de este artículo, el seguimiento de piezas individuales no forma parte del modelo. Eso significa que una parte se guarda en el búfer donde se destruye. Este es el proceso de producción y almacenamiento en la sección del bloque lógico anterior. Las recuperaciones del patio se implementan como un proceso separado, utilizando la misma grúa del patio. Este es el proceso de recuperación y envío en la sección anterior del bloque lógico. La vivienda de las partes en el patio no está modelada. No se consideran las tasas de llenado. La atención se centra en evaluar el rendimiento máximo posible de la grúa de patio.

Implementación de ranuras de almacenamiento y asignaciones de transportadores

En este modelo de simulación de patio de grúas, se deben tomar dos decisiones de asignación:

  1. Para una pieza que llega a uno de los transportadores de entrada, se debe decidir en qué parte del patio se debe almacenar la pieza.
  2. Para una pieza que debe entregarse a un proceso posterior, es decir, que debe recuperarse, se debe decidir en qué transportador se debe colocar la pieza.

Asignación de piezas a una ubicación de almacenamiento para almacenamiento

Comenzando con el proceso de producción – almacenamiento : Esto se implementa en la siguiente secuencia de bloques lógicos.

Bloques lógicos desde la producción hasta el almacenamiento

Una parte es creada por la fuente (agente de parte de clase personalizada ). Esta nueva pieza se ubica en uno de los transportadores de entrada utilizando los bloques lógicos carry_a y carry_b . La probabilidad de cada transportador de entrada es del 50%.

A continuación, se llama a una pequeña función personalizada ( asignación_01 / asignación_02 ). Esta función simplemente decide en qué nodo (1 a 7), denominado «bahía», se debe almacenar la pieza. Lo hace configurando las variables targetbay_01 / targetbay_02 . AnyLogic luego toma la grúa y ejecuta el transporte a un atractor aleatorio dentro del nodo especificado.

Recuperar piezas del patio y asignarlas a un transportador

Para modelar la recuperación de piezas del patio de almacenamiento, se debe especificar una bahía de origen (nodo de origen), desde donde se recuperará una pieza, y un transportador de destino , en el que se colocará la pieza. Para hacerlo más fácil, coloqué estas dos variables dentro de la clase de agente de parte personalizada.

clase de agente parcial, personalizado

sourcebay y targetconveyor también son variables en el propio modelo principal. Sin embargo, se utilizan simplemente como memoria temporal. A la llegada de un nuevo agente a la fuente de recuperación, se llama a la función de selección() .

fuente de recuperación

La función de selección establece los marcadores de posición temporales de sourcebay y targetconveyor . Los valores de estas variables luego se escriben en el archivo . fuente y . atributos de transportador de destino del agente de pieza recién llegado (instancia de objeto). La siguiente captura de pantalla muestra la función de selección .

functino para asignar la recuperación al transportador de salida y para decidir de qué nodo recuperar (aleatorio)

Como puede ver en la captura de pantalla anterior del código de función de selección, las ubicaciones de recuperación son completamente aleatorias. El transportador objetivo es entonces siempre el transportador más cercano a la grúa.

Ejecución de la simulación del patio de grúas en AnyLogic

AnyLogic visualiza su marcado en 2D y 3D. La siguiente captura de pantalla muestra una instantánea 2D del modelo de simulación durante el tiempo de ejecución.

Simulación de patio de grúas en 2D

Después de una hora de simulación, se enviaron 9 piezas (recuperadas y entregadas al final de uno de los transportadores de salida) y se guardaron 9 piezas. A continuación se muestra una captura de pantalla de bloques relevantes después de una hora de simulación.

Estado de simulación del patio de grúas después de 1 hora de tiempo de ejecución

Si quiero priorizar las ubicaciones sobre las recuperaciones, o implementar alguna otra lógica relacionada con la priorización de tareas, también podría hacerlo con las funciones de JAVA.

Observaciones finales y contenido relacionado

Presenté un modelo simple de simulación de patio de grúas sin seguimiento de piezas individuales. Un modelo de este tipo es apropiado, por ejemplo, para evaluar el rendimiento del equipo. En este caso, la atención se centró en las capacidades de rendimiento de la grúa de patio horizontal.

You May Also Like

Leave a Reply

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.