Sim Practicas Post Rect Version Final 12-10-2006
Short Description
Download Sim Practicas Post Rect Version Final 12-10-2006...
Description
SIMULACIÓN DISCRETA –MODULO DE PRÁCTICAS ____________________________________________________________________________________
MÓDULO LABORATORIO DE SIMULACIÓN
Presentado por: José A. Soto Mejía
UNIVERSIDAD TECNOLÓGICA DE PEREIRA FACULTAD DE INGENIERIA INDUSTRIAL MAESTRIA EN INVESTIGACION OPERATIVA Y ESTADISTICA
Pereira, Noviembre de 2006 ___________________________________________________________________ FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
i
SIMULACIÓN DISCRETA –MODULO DE PRÁCTICAS ____________________________________________________________________________________
Tabla de Contenido Tabla de Contenido........................................................................................................................................ii 1
INTRODUCCIÓN ....................................................................................................................................1 1.1
El paradigma de ProModel.................................................................................................................1
1.2 Construyendo los elementos del modelo .............................................................................................1 1.2.1 Para construir estaciones: ............................................................................................................1 1.2.2 Para construir entidades: ..................................................................................................................2 1.2.3 Para crear el Procesamiento: ............................................................................................................2 1.2.4 Para crear llegadas: ..........................................................................................................................2 1.3 Ejecutando la simulación........................................................................................................................3 1.4 Enunciado resumen de las prácticas de simulación ...............................................................................3 2
PRÁCTICAS .............................................................................................................................................6 2.1
PRÁCTICA # 1 ................................................................................................................................6
2.2
PRÁCTICA # 2 .............................................................................................................................13
2.3
PRÁCTICA # 3 ..............................................................................................................................21
2.5
PRÁCTICA # 5 ..............................................................................................................................40
2.6
PRÁCTICA # 6 ..............................................................................................................................45
2.7
PRÁCTICA # 7 ..............................................................................................................................52
2.8
PRÁCTICA # 8 ..............................................................................................................................56
2.9 PRÁCTICAS # 9 y # 10 ............................................................................................................66 2.9.1 PRIMERA ETAPA: ..................................................................................................................67 2.9.2 SEGUNDA ETAPA:.................................................................................................................69 2.9.3 TERCERA ETAPA:..................................................................................................................73 2.9.4 CUARTA ETAPA: ...................................................................................................................76 2.9.5 QUINTA ETAPA: ....................................................................................................................81 2.11
PRÁCTICA # 11 ............................................................................................................................82
2.12
PRÁCTICA # 12 ............................................................................................................................86
2.13
PRÁCTICA # 13 ............................................................................................................................89
2.14
PRÁCTICA # 14 ............................................................................................................................92
2.15
PRÁCTICA # 15 ..........................................................................................................................104
___________________________________________________________________ FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
ii
SIMULACIÓN DISCRETA –MODULO DE PRÁCTICAS ____________________________________________________________________________________
1
INTRODUCCIÓN
Los ejercicios prácticos del curso de simulación se modelaran usando un software específico de simulación denominado ProModel 4.22 ™. En la sub-sección 1.1 se presentara el panorama general asociado con el paradigma de modelaje de ProModel 4.22 ™, sus conceptos básicos y las instrucciones esenciales y necesarias para la construcción de un modelo de simulación usando el mencionado paquete. Seguidamente se presentara en la sub-sección 1.2 la lista de prácticas a ser adelantadas. Finalmente en la sección 2-Prácticas, se describen cada una de las prácticas y los pasos a seguir en cada una de ellas para modelar las situaciones planteadas. 1.1
El paradigma de ProModel
En Promodel, todo se ajusta al paradigma de , , , y . Cualquier sistema de manufactura, logística y servicio puede ser modelado utilizando este paradigma. Estaciones: Las estaciones representan lugares fijos en el sistema. Las entidades son en-rutadas a estas estaciones para procesamiento, almacenamiento, cualquier actividad o toma de decisiones. Entidades: Cualquier cosa que el modelo “procesa” es llamada entidad. Algunos ejemplos incluyen piezas, productos, gente y aún papeles de trabajo. Procesamiento: El Procesamiento describe las operaciones que tienen lugar en una estación, como la cantidad de tiempo que una entidad pasa en dicha estación, los recursos necesarios para realizar el trabajo, y cualquier otra cosa que ocurra o suceda en la estación, incluyendo la elección del siguiente destino para la entidad. Llegadas: Cualquier nueva entidad que se alimente al sistema se conoce como llegada. Cada vez que una nueva entidad es introducida en el sistema, se le conoce como llegada. 1.2
Construyendo los elementos del modelo
1.2.1 Para construir estaciones: Entrar por el menú Build-Locations Hacer click izquierdo en el icono deseado para representar la estación el cual puede ser encontrado en la , posteriormente hacer nuevamente click izquierdo en la ventana de Layout en donde desees que aparezca la estación. ___________________________________________________________________ FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
1
SIMULACIÓN DISCRETA –MODULO DE PRÁCTICAS ____________________________________________________________________________________
Se creará un registro automáticamente para la estación recién creada en la tabla de . El nombre, unidades, capacidad, etc. pueden ahora ser cambiados con sólo dar click en el cuadro apropiado y teclear los cambios deseados. 1.2.2 Para construir entidades: Entrar por el menú Build-Entities Hacer click izquierdo en el gráfico deseado para representar la entidad(es) el cual puede ser encontrado en la caja de . Se creará un registro automáticamente en la tabla de . El nombre de la entidad puede ser cambiado y el tamaño del grafico de la entidad puede ser ajustado con sólo mover la barra de edición en la caja de herramientas. 1.2.3 Para crear el Procesamiento: Entrar por el menú Build-Processing. Hacer click izquierdo sobre el nombre de la entidad (que va a ser procesada) y que aparece en la barra de herramientas, posteriormente hacer click izquierdo en la estación de inicio del procesamiento (que ya debe haber sido creada y encontrarse creada en el layout). Hacer click izquierdo en la estación de destino a donde va a dirigirse la entidad una vez haya sido procesada en la estación de inicio. Se creará un registro automáticamente en la tabla de . Para añadir más lineas de enrutamiento al mismo registro, hacer click izquierdo en el botón de Añadir Rutas (AddRoutings) en el cuadro de herramientas. Para enrutar la entidad a la salida del sistema, simplemente hacer click izquierdo en el botón Route to Exit en el cuadro de herramientas. 1.2.4 Para crear llegadas: Entrar por el menú Build-Arrivals Hacer click izquierdo en la entidad cuya llegada va a procesarse y que debe aparecer en el y hacer click izquierdo en la estación a donde “llegará” la entidad. En el (Arrivals) aparece: Entity (Entidad): La entidad que llega. Location (Estación): La estación a la que se llega. Qty Each (Cantidad por llegada): El número de entidades (en un grupo) que llegarán en el momento específico. ___________________________________________________________________ FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
2
SIMULACIÓN DISCRETA –MODULO DE PRÁCTICAS ____________________________________________________________________________________
First Time (Primera Ocasión): La primera vez (en tiempo de reloj de simulación) que ocurrirá la llegada. Occurrences (Ocurrencias): El número de repeticiones de esta llegada que habrá durante la simulación. Frequency (Frecuencia): El tiempo entre las ocurrencias. 1.3 Ejecutando la simulación Una vez modelado el proceso el siguiente paso consiste en ejecutar la simulación. Hay que grabar el modelo (Hay que alimentar un nombre de 8 letras) y luego ejecutarlo. Del menú de Simulation podemos escoger Run (Correr) o Save and Run (Grabar y Correr). Dentro del menu de Simulation en Options (Opciones) aparecerá un cuadro de que debe ser llenado. El número de horas de ejecución puede ser especificado en el campo Run Hours (Horas de Ejecución), asi como la precisión del reloj. Revisaremos las otras opciones posteriormente en el curso. 1.4 Enunciado resumen de las prácticas de simulación Práctica 1. Presenta el modelaje de estaciones de procesamiento, entidades a ser procesadas, definición de llegadas, tiempos de procesamiento en cada estación (comando WAIT), la operación de cortar o particionar una entidad en dos o mas partes, traslado de una entidad de una estación a otra y el tiempo que la entidad invierte en viajar entre estaciones (comando MOVE FOR). Introduce la definición de atributos para las estaciones como: calibrador, contador, luces de status y texto. Resumen: Definición de estaciones, definición de entidades, definición de llegadas, definición de procesos, ejecución, definición de atributos de las estaciones (calibrador, luces de status, contador, texto). Práctica 2. Agrega a los conceptos modelados en la Práctica 1, (donde se modelaron entre otros conceptos el de particionar una entidad en mas piezas o partes) el modelaje de juntar piezas o partes en grupos o lotes (comando COMBINE). Resumen: Corte y destarimado, loteo, capacidad de las estaciones, combinación de entidades. Práctica 3. Esta práctica introduce la representación de variables y la manipulación de ellas (operadores de incremento y decremento INC, DEC) como forma de modelar parámetros claves para las decisiones como rastrear defectos, calcular inventario en proceso, contar partes terminadas, etc. Además del enrutamiento simple presentado en las dos prácticas anteriores ésta práctica introduce el enrutamiento probabilístico para modelar la probabilidad de que una pieza sea enruta___________________________________________________________________ FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
3
SIMULACIÓN DISCRETA –MODULO DE PRÁCTICAS ____________________________________________________________________________________
da a una estación en vez de otra. Resumen: añadir estaciones, bloques de ruta, enrutamiento probabilística, gráficas de fondo, variables, cambio de gráficas de las entidades. Práctica 4. Esta práctica introduce el modelaje de bandas de transporte y filas de espera. Modela el concepto de ensamblar dos entidades después del ensamble las entidades quedan permanentemente unidas (comando JOIN y IF JOIN REQUESTED). Modela el concepto de ensamblar dos entidades (o colocar una entidad sobre otra) que más tarde pueden ser desensambladas o descargadas, usando los comandos LOAD Y IF LOAD REQUESTED. Resumen: Bandas transportadoras, colas (filas), Comando JOIN(ensamblar), comando LOAD/UNLOAD (carga/descarga) Práctica 5. Esta práctica introduce el modelaje de recursos a ser usados o utilizados para realizar actividades como transportar entidades, operar en una estación de trabajo, apoyar en el mantenimiento de las estaciones de trabajo, etc. Igualmente se presenta la forma de modelar las rutas sobre las cuales se mueven los recursos. La forma como los recursos son capturados y liberados (comandos GET, USE, FREE, MOVE WITH). Resumen: Definición de redes de ruta, definición de recursos, comando MOVE WITH, GET, FREE, USE. Práctica 6. En ésta práctica se introduce el concepto de atributos que caracterizan o contienen información sobre una entidad o estación. A diferencia de los modelos presentados en las prácticas anteriores con llegadas de entidades al sistema de forma determinística en ésta práctica se introduce la forma de modelar las llegadas de acuerdo con una distribución probabilística experimental dada por el usuário y se amplian las estructuras de comandos para presentar la lógica de proceso. Resumen: Atributos, creación de una distribución probabilística, lógica de proceso (IF/ ELSE / BEGIN / END / ROUTE ). Práctica 7. Esta práctica introduce el uso de distribuciones probabilísticas teóricas y la forma de hacerle seguimiento a los tiempos de ciclo de cada una de las entidades que se están procesando en un sistema mediante el uso de las funciones CLOCK() y LOG. Resumen: Función de probabilidad normal, Funciones CLOCK() y LOG, atributos. Práctica 8. Esta práctica introduce la forma de simular tiempos en los cuales la operación de una máquina (estación) debe ser detenida por ejemplo para el mantenimiento preventivo de ella. También es presentada la forma de modelar los turnos de trabajo ___________________________________________________________________ FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
4
SIMULACIÓN DISCRETA –MODULO DE PRÁCTICAS ____________________________________________________________________________________
de una empresa y el despliege de textos y expresiones numéricas en puntos específicos durante la ejecución de un modelo (comando DISPLAY) Resumen: Tiempos de parada (Down Times), definición de turnos (Shifts), asignación de turnos, comando DISPLAY. Práctica 9 y Práctica 10 Esta práctica modela las oficinas de una institución de educación superior informal en la época de matrículas. La práctica permite utilizar conjuntamente todos los conceptos de modelaje introducidos en las prácticas anteriores, además de introducir conceptos nuevos como: importar gráficos (importar los planos del edificio elaborados con Autocad), tiempos de parada por reloj (downtimes/Clock); ciclos de llegada (arrival cycle);y los comandos BACKUP y USE. Práctica 11 Esta práctica introduce aspectos estadísticos relacionados con el experimento de simulación. En particular se ilustra la forma de estimar la cantidad de tiempo necesaria para el calentamiento de un sistema (tiempo para llegar al estado estable). Se utiliza adicionalmente al ProModel el software SimRunner, que implementa la técnica de promedios móviles y los gráficos de Welch. Práctica 12 Esta práctica continúa tratando con otros importantes aspectos estadísticos relacionados con el experimento de simulación. En particular compara dos técnicas para estimar un parámetro: a) correr varias replicaciones del modelo vs. b) usar intervalos de loteo. Además discute los problemas de autocorrelación relacionados con el tamaño del intervalo de lote (batch interval length). Se hace uso de Excell y del software Stat::Fit, para probar la normalidad e independencia de las observaciones obtenidas de cada intervalo de loteo.
___________________________________________________________________ FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
5
PRÁCTICA de Simulación Nº 1 _______________________________________________________________________________________
2
PRÁCTICAS
MODULO 1: Prácticas #1, #2 y #3. Las prácticas #1, #2 y #3 forman parte de un mismo módulo que introduce los elementos básicos del paradigma de modelaje con Promodel: Estaciones, Entidades, Llegadas y Procesamiento. Además, en ellas se ilustra la forma de particionar entidades para luego combinarlas. Se introducen también ayudas gráficas y variables para monitorear el estado del sistema. Los conceptos de Inspección y enrutamiento probabilístico. Creación de estaciones (multiestaciones) lo que .permite estudiar el efecto que sobre las características de un sistema de manufactura tiene la creación de estaciones paralelas (clones).
2.1
PRÁCTICA # 1
Considere la siguiente situación para una telera de madera en una pequeña fábrica de muebles de madera:
En este modelo, unas teleras de madera en bruto (materia prima) entran al sistema en la estación Entrada y luego van a la cortadora, donde se recortan en las dimensiones apropiadas saliendo como piezas, de ahí las piezas pasan al taladro, donde se realizan algunas perforaciones particulares, después al torno, donde se realiza una operación de torneado, y luego a la pulidora, donde se realiza una ope___________________________________________________________________ FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
6
PRÁCTICA de Simulación Nº 1 _______________________________________________________________________________________
ración de pulimento a la pieza. De la pulidora va a la estación Salida, lugar desde el cual abandona al sistema ya como producto_terminado. Para este modelo se necesita crear los siguientes registros: MÓDULO DE INFORMACIÓN GENERAL. Después de abrir el software de ProModel entrando por el menú File-New se encuentra la caja de dialogo que aparece a continuación y que debe ser llenada con la información general del modelo .
Esta caja de diálogo permite darle un nombre al modelo a ser creado y especificar información necesaria para el modelo como son las unidades de tiempo y distancia. Debe especificarse también la librería de gráficos a ser utilizada para crear las estaciones y las entidades. En este caso utilice la biblioteca gráfica student.glb (buscar por Graphic Library File, por ejemplo: c: /ProMod4/glib/student.glb Coloque un título apropiado para el modelo por ejemplo Modelo de Manufactura simple. MÓDULO DE ESTACIONES: Entrar por el menú Build-Locations (ver seccion 1.1 El paradigma de ProModel Para construir estaciones). Cree los siguientes registros de estaciones: ESTACIONES Entrada Cortadora Taladro
CAPACIDAD 1 1 1
ESTACIONES Torno Pulidora Salida
CAPACIDAD 1 1 1
___________________________________________________________________ FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
7
PRÁCTICA de Simulación Nº 1 _______________________________________________________________________________________
Finalmente deberá tener en el modulo de registro de estaciones (Locations) una ventana como la que aparece en la siguiente figura
MÓDULO DE ENTIDADES: Entrar por el menú Build-Entities (ver sección 1.1 El paradigma de ProModel Para construir entidades). Cree los siguientes registros de entidades: ENTIDADES Telera pieza producto_terminado Finalmente deberá tener en el modulo de registro de entidades (Entities) una ventana como la que aparece en la siguiente figura.
MÓDULO DE PROCESAMIENTO (Tiempos en minutos) Tiempos de Proceso ProModel utiliza el comando WAIT para los tiempos de procesamiento. Esto hace que la entidad tenga que “esperar” en la estación mientras es procesada. Tam___________________________________________________________________ FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
8
PRÁCTICA de Simulación Nº 1 _______________________________________________________________________________________
bién, que ocupe la capacidad disponible en la estación durante una cantidad especificada de tiempo. En las primeras prácticas veremos casos simples en los cuales los tiempos de procesamiento son constantes. En las últimas prácticas se introducirá la aleatoriedad en el tiempo de procesamiento en las estaciones (o sea, se tendrán en cuenta las distribuciones estadísticas para los tiempos de procesamiento). Tiempos de Movimiento entre estaciones ProModel utiliza el comando MOVE FOR para especificar la cantidad de tiempo que una entidad invierte en viajar entre dos estaciones. Ahora, entre por el menú Build-Processing ( ver sección 1.1 El paradigma de ProModel - Para crear el procesamiento ) y cree los siguientes registros de procesamiento:
ENTIDAD ESTACIÓN OPERACIÓN
SALIDA
Telera Telera pieza pieza pieza pieza
Telera pieza pieza pieza pieza Producto_terminad o
Entrada Cortadora Taladro Torno Pulidora Salida
0 5 4 3 8 0
LÓGICA DESTINO DE MOVIMIENTO Cortadora .1 Taladro .1 Torno .1 Pulidora .1 Salida .1 EXIT 0
El procesamiento y los tiempos de movimiento se incluyen arriba pero falta incluir los comandos WAIT y MOVE FOR en los lugares apropiados, WAIT en el campo de Operación (Operation) y MOVE FOR en Lógica de Movimiento (Move Logic); ver la figura de abajo. Por ejemplo en el campo de operación de la cortadora: wait 5, y en la lógica de movimiento Move for 0.1. Nota: La estación “EXIT”, como tal no se crea en el “layout” (área de trabajo), simplemente se hace click en la estación de origen “Salida” y luego “clic” en el botón ROUTE TO EXIT, que se encuentra en la ventana “Tools” del modulo de procesamiento (Build/Processing). EXIT es una estación virtual que permite que las entidades abandonen el sistema y se les calculen estadísticas. Finalmente deberá tener en el modulo de procesamiento (Entities) dos ventanas como las que aparecen en la siguiente figura. ___________________________________________________________________ FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
9
PRÁCTICA de Simulación Nº 1 _______________________________________________________________________________________
En la ventana de la izquierda se registran las entradas a la estación de procesamiento (por ejemplo una telera (entidad) está llegando a la estación de Entrada para su procesamiento). En la ventana de la derecha se muestra hacia donde son dirigidas las salidas del procesamiento anterior (por ejemplo de la estación Entrada después del procesamiento salió la misma telera (entidad) hacia la estación Cortadora). Nota: Solo se está mostrando el primer registro de cada una de las ventanas. Si se dá click en el segundo registro de la ventana de la izquierda (telera en la cortadora), aparecerá en el primer registro de la ventana de la derecha el destino de esa telera después de haber sido procesada en la estación Cortadora. MÓDULO DE LLEGADAS Entrar por el menú Build-Arrivals ( ver seccion 1.1 El paradigma de ProModel Para crear las llegadas. Cree los siguientes registros ENTIDAD Telera
ESTACIÓN Entrada
QTY EACH 1
FIRST TIME 0
OCCUR inf
FREQ 15
Finalmente deberá tener en el modulo de registro de llegadas (Arrivals) una ventana como la que aparece en la siguiente figura.
___________________________________________________________________ 10 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 1 _______________________________________________________________________________________
Gráficas de Estaciones e información asociada con ellas Cuando se está en el módulo de “estaciones” (Build-Locations) se observa la ventana “Graphics”.
Los gráficos de la parte derecha de esta ventana corresponden a los íconos de la biblioteca gráfica seleccionada. Los gráficos de la parte izquierda de esta ventana son una columna de íconos fijos, muy útiles para mejorar la óptica de la simulación e incrementar la información disponible asociada a las estaciones en el modelo. Hay que tener cuidado en activar la estación (haciendo click en ella) para la cual se desea añadir alguno de los elementos de ayuda (elementos que estan en la columna izquierda). Luego antes de añadir un elemento de ayuda desmarcar el botón NEW y hacer click en el elemento que se va a utilizar, el cual queda asociado con la estación inicialmente seleccionada. Los iconos para incrementar información son los siguientes: Botón Contador: Presenta los contenidos numéricos de la estación (es el botón con 00 en la figura anterior). Botón Calibrador (el segundo botón en la columna de la izquierda): Presenta gráficamente los contenidos de la estación. ___________________________________________________________________ 11 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 1 _______________________________________________________________________________________
Botón Texto: Asocia texto a la estación ( es el botón con la letra Aa) Botón para la Luz de Status (es el botón con el círculo): Cambia el color de acuerdo al status (o estado) de la estación (los status de una estación son: ocupada, ociosa, bloqueada). Botón para el Lugar de la Entidad (es el botón que tiene una X dentro del círculo): Define el lugar físico en el que aparecerá la entidad en la estación en la corrida de simulación. Botón Región ( es el botón con un cuadrado): Área (invisible durante la simulación) útil en definir estaciones de área. Se recomienda cuando en la ventana de diseño se tiene un plano del lugar que se está simulando. Para terminar la práctica debe en la ventana de diseño (layout) utilizando el botón de ayuda marcado con Aa, colocar a cada estación el nombre correspondiente. Además, en el modelo (en la ventana de diseño-layout-.) al lado de la pulidora colocar un calibrador y hacer doble click en él para editarlo a gusto. También añadir un contador en la salida1. Haciendo doble clic en el contador permitirá definirlo a gusto. El modelo debe grabarse como “PRAC_01.MOD”. Análisis de la simulación Una vez tenga el modelo corriendo realice las siguientes actividades: 1. Correr una simulación por 10 horas. 2. Revisar las estadísticas de salida. 3. Responder a las siguientes preguntas: ¿Que cambia cuando se corre la simulación no 10 sino 20 hr, 30 hr ? ¿Qué sucede cuando en el modulo de llegadas se cambia el 1 de “Qty each” por 5,?. Explique el significado de éste cambio. ¿Que sucede si la capacidad de la entrada pasa de 1 a 5? 4. Graficar el comportamiento durante el tiempo de las estaciones (usar la opción de gráficos “History Plot”5. Familiarizarse con la opción “View Text” del menú “File”.
1
Este contador en la Salida siempre estará en cero durante la simulación ya que la estación Salida siempre estará vacía, dado que su tiempo de procesamiento es cero (WAIT O).
___________________________________________________________________ 12 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 2
13 _______________________________________________________________________________________
2.2
PRÁCTICA # 2
Vamos a considerar el mismo modelo anterior, con las siguientes adiciones:
Una Telera llega a la estación de Entrada de donde es enrutada a la estación Cortadora. En la Cortadora (nueva estación de origen) cada Telera se corta en 5 Piezas que van al Taladro (estación de destino), una por una. De ahí, las Piezas van al Torno. Después pasan a la Pulidora, donde son combinadas en Lotes de 10 Piezas antes de la correspondiente operación de pulimento (el pulimento se realiza al lote de 10 piezas). El Lote va después a la Salida en donde 5 Lotes se combinan de nuevo como un Producto_Terminado. De ahí el Producto_Terminado es enrutado a EXIT (Fuera del sistema). (Nota: No trabaje en el modelo hasta que comprenda bien los pasos que hay que dar ver la conceptualización en los parágrafos siguientes) Corte y Destarimado Se define así a cualquier tipo de operación en donde una parte se convierte en dos o más partes. Esto puede ser por operaciones de corte, destarimado (despaletizado), desempacado, etc. ProModel se ocupa de esta situación cambiando la cantidad de salida en el cuadro de diálogo de las reglas de enrutamiento (campo ___________________________________________________________________ 13 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 2
14 _______________________________________________________________________________________
«Rule» cuando se está en el módulo de procesamiento). Si por ejemplo, en el campo «Quantity» que aparece después de haber activado «Rule» se escribiera 4 indicaría a ProModel que por cada entidad que entra a la estación salen 4 para la siguiente estación. Loteo Es lo contrario del corte. En este caso, lo que se quiere es juntar varias piezas en lotes, tarimas, grupos, etc. Para ésto, ProModel utiliza varios comandos, en esta práctica utilizaremos el comando COMBINE. El comando COMBINE espera hasta que estén disponibles el número especificado de piezas en la estación y entonces se combinan en una sola unidad que es enrutada a la siguiente estación. Es posible cambiar el nombre de la entidad que sale en la estación donde se tiene lugar el cambio. Entonces, en el modelo anterior PRÁCTICA #1, hacer los siguientes cambios para adecuarnos al nuevo enunciado: En el módulo de entidades (entities) agregar la siguiente: Lote. Finalmente el registro de entidades debe quedar como sigue:
En el módulo de estaciones (locations) cambiar las capacidades de la Pulidora (de 1 a 10) y de la Salida (de 1 a 5). Las estaciones que cambiarán su capacidad son aquellos lugares en los que tendrán lugar las combinaciones Además borrar el calibrador de la Pulidora ya que al cambiar la capacidad de la estación de (1 a 10 ) se requiere actualizar la información del calibrador, lo mismo que en la estación de Salida. Finalmente el registro de estaciones debe quedar como sigue:
___________________________________________________________________ 14 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 2
15 _______________________________________________________________________________________
En el módulo de procesamiento (Build-Processing) cambiar la cantidad de salida de la Cortadora (activar el registro de la Cortadora, click en el campo Rules, y en el cuadro de diálogo que aparece (Routing Rule)cambiar en el campo Quantity 1 por 5, marcar la opción First Available y por último click en OK. Debe quedar finalmente en el campo Rules :FIRST 5. Vea las siguientes figuras:
___________________________________________________________________ 15 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 2
16 _______________________________________________________________________________________
En el módulo de procesamiento (Build-Processing) hacer los cambios necesarios para incluir la nueva entidad del enunciado, lote. Y en el campo de Operación (Operation) incluir las instrucciones COMBINE en la Pulidora y en la Salida, como Combine 10 y Combine 5 así: Activar el registro de la Pulidora, click en el campo Operation, click en el botón Build, click en el comando Combine, click en el botón Keypad, click en 1 y en 0, click en el botón Paste, click en el botón Close (Observe cuidadosamente los cambios que se van presentando). Activar el registro de la Salida, click en el campo Operation, click en el botón Build, click en el comando Combine, click en el botón Keypad, click en 5, click en el botón Paste, click en el botón Close. Después de realizar los pasos arriba descritos, el cuadro de registro de procesamiento deberá quedar como se muestra en las siguientes figuras:
Volver al módulo de estaciones (locations) y allí colocar en la Pulidora un nuevo calibrador, ya que al cambiar la capacidad de la estación (de 1 a 10) y al modificar el proceso (comando Combine) se requiere actualizar la información del calibrador, lo mismo que en la estación de Salida. Edítelo para que muestre la escala. Nota importante en este momento: No olvide quitar la X en el botón NEW y activar la Pulidora antes de agregar el calibrador, igualmente con la Salida. (ver una explicación mas detallada en la práctica #1en el parágrafo titulado como Gráficas de Estaciones e información asociada con ellas). Grabar como “PRAC_02.MOD” Correr el modelo por 10 horas (Entrar por Simulation-run), en un comienzo a baja velocidad (Cuando se corre el modelo en la parte superior aparece una barrque permite controlar la velocidad de la simulación) para alcanzar a observar el comportamiento del calibrador y del contador. ___________________________________________________________________ 16 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 2
17 _______________________________________________________________________________________
Note que tanto el calibrador como el contador muestran el valor numérico del momento de la simulación. Observe que en la Cortadora por cada Telera que entra deben salir 5 Piezas, y que cuando llega una Telera a la Entrada debe esperar allí hasta que la Cortadora se desocupe. Observe también cómo el dibujo animado para el Producto_Terminado espera en la estación de Salida hasta que se completa con una cantidad de 5. Observe finalmente las luces de status. Por último, aumentar la velocidad de simulación para completar las 10 horas requeridas. Resultados de la Simulación (Salidas /Output) Después de correr el modelo (Entrar por Simulation-run), un cuadro de dialogo preguntando si desea ver los resultados (Do you want to see the results? ) que le permitirá ver los resultados estadísticos de la simulación. A manera de ilustración enseguida aparece un posible reporte estadístico de salida (output) de un modelo de simulación similar. El reporte estadístico que Ud. va a obtener tendrá por supuesto resultados diferentes. Observe en la salida del ejemplo los porcentajes de operación y de bloqueo de las estaciones y el número de partes que se están produciendo. -------------------------------------------------------------------------------General Report Output from C:\SVCMOD3\MODELS\TRABAJOS\PRAC02.MOD Date: Jan/24/2004 Time: 04:41:42 PM -------------------------------------------------------------------------------Scenario : Normal Run Replication : 1 of 1 Simulation Time : 10 hr -------------------------------------------------------------------------------LOCATIONS Location Name
ScheduTotal led Hours Capaci- Entries ty
Entrada Cortadora Taladro Torno Pulidora Salida
10 10 10 10 10 10
1 1 1 1 10 5
33 32 159 158 157 15
Average Minutes Per Entry 13.000000 18.650000 3.452830 2.556962 23.755414 76.000000
Average MaxiConmun tents Contents 0.715 1 0.99467 1 0.915 1 0.67333 1 6.216 10 1.9 5
Current Contents
% Util
1 1 1 1 7 0
71.50 99.47 91.50 67.33 62.16 38.00
___________________________________________________________________ 17 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 2
18 _______________________________________________________________________________________
LOCATION STATES BY PERCENTAGE (Multiple Capacity) Location Name ----------Pulidora Salida
Scheduled Hours ------------10 10
% Empty -------1.82 24.00
% Partially Ocupied ----------73.18 76.00
% Full ------25.00 0.00
| | | | | |
% Down -------0.00 0.00
Ojo ¡Las estadísticas de % Operación y de % de Bloqueo son claves para localizar cuellos de botella! LOCATION STATES BY PERCENTAGE (Single Capacity) Location Name
Scheduled Hours ----------- -----------Entrada 10 Cortadora 10 Taladro 10 Torno 10
% Operation -----------0.00 21.33 79.00 52.33
% Setup
% Idle
% Waiting
------0.00 0.00 0.00 0.00
----28.50 0.53 8.50 32.67
---------0.00 0.00 0.00 0.00
% Blocked ---------71.50 78.13 12.50 15.00
% Down -------0.00 0.00 0.00 0.00
FAILED ARRIVALS Entity Name -------Telera
Location Name -----------Entrada
Total Failed -------28
ENTITY ACTIVITY Current Entity Total Quantity Name Exits In System ------------------ ------- -----------Telera 31 2 Pieza 165 9 Producto 3 0 Term Lote 18 0
Average Minutes In System
Average Minutes In Move Logic
Average Minutes Wait For Res, etc.
Average Minutes Average In Minutes Operation Blocked
---------31.903226 19.712121 0.000000
----------0.100000 0.272727 0.000000
----------0.000000 13.05155 0.000000
-----------4.000000 5.454545 0.000000
---------27.80326 0.933333 0.000000
63.416667 0.083333 63.33333 0.000000 0.000000
ENTITY STATES BY PERCENTAGE ___________________________________________________________________ 18 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 2
19 _______________________________________________________________________________________
% % Entity In Move Wait For Name Logic Res, etc. ----------------- ------------ -----------Telera 0.31 0.00 Pieza 1.38 66.21 Lote 0.13 99.87 Interpretación de resultados:
% In Operation ---------------12.54 27.67 0.00
% Blocked ----------87.15 4.73 0.00
Nos interesa por el momento lo siguiente: Primer Resultado: Cuellos de botella: ¿ En dónde están?
Observe la siguiente tabla como ejemplo: LOCATION STATES BY PERCENTAGE (Single Capacity) Location Name
Scheduled Hours ----------- -----------Entrada 10 Cortadora 10 Taladro 10 Torno 10
% % Operation Setup
% Idle
% Waiting
% % Blocked Down
-----------0.00 21.33 79.00 52.33
----28.50 0.53 8.50 32.67
---------0.00 0.00 0.00 0.00
---------71.50 78.13 12.50 15.00
------0.00 0.00 0.00 0.00
-------0.00 0.00 0.00 0.00
Porcentaje de Operación y de Bloqueo Segundo Resultado: ¿ Cuántas partes se están produciendo ?
Observe la siguiente tabla: ENTITY ACTIVITY Current Quantity In System ------------------ ------- -----------Telera 31 2 Pieza 165 9 Producto 3 0 Terminado Lote 18 0 Entity Name
Total Exits
Salidas Totales Análisis final de la simulación ___________________________________________________________________ 19 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 2
20 _______________________________________________________________________________________
Una vez tenga el modelo corriendo realice las siguientes actividades: 1. Correr una simulación por 10 horas. 2. Revisar las estadísticas de salida. 3. Responder a las siguientes preguntas: ¿Que cambia cuando se corre la simulación no 10 sino 20 hr, 30 hr ? ¿Qué sucede cuando en el modulo de llegadas se cambia el 1 de “Qty each” por 5,?. Explique el significado de éste cambio. ¿Que sucede si la capacidad de la entrada pasa de 1 a 5? 4. Graficar el contenido durante el tiempo de las estaciones Salida y Pulidora (usar la opción de gráficos “History Plot”5. Analice los resultados de la simulación y sugiera alguna mejora al sistema
___________________________________________________________________ 20 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 3 21 _______________________________________________________________________________________
2.3
PRÁCTICA # 3
En la práctica anterior en un análisis superficial podría llegarse a concluir que uno de los responsables de retraso en la operación del sistema podría ser la cortadora o el taladro o el torno o inclusive la pulidora (ya que los minutos promedio por entrada en la pulidora, Average Minutes per Entry para la Pulidora de 23.75 es el mayor de todas las estaciones, excepto la salida). Para intentar corregir esto supongamos que queremos aumentar la efectividad del sistema añadiendo otra pulidora (debemos al final de ésta práctica también intentar añadiendo un taladro y dejando solo una pulidora, o añadiendo un torno y dejando solo un taladro y una pulidora, y comparar los resultados de todas éstas alternativas). También en ésta práctica vamos a inspeccionar las piezas ya que tenemos información que nos dice que el 25% son defectuosas. Para desplegar y monitorear la información crearemos variables y mantendremos un registro del inventario en proceso, las piezas rechazadas como defectuosas y las partes terminadas. CONCEPTUALIZACIÓN Añadir Estaciones Existen varias formas de añadir estaciones de trabajo. En ésta práctica vamos a incrementar el número de unidades de una estación específica. Estando en el módulo de Estaciones (Locations) ésto último se hace simplemente activando el registro de la estación correspondiente y cambiando el valor del campo de las unidades de la estación (Units), oprimiendo «enter» en seguida. Esta acción crea unidades «clones» que son idénticas a la estación que las generó. (Vea el siguiente pantallazo el caso de la creación de una unidad clon para la estación pulidora).
___________________________________________________________________ 21 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 3 22 _______________________________________________________________________________________
Las unidades individuales (las diferente estaciones ) son seleccionadas para el enrutamiento de acuerdo a las reglas definidas en la estación original cuando se da click en la estación principal (la que las genera) en el botón de Reglas (Rules). Nota: Con ésta aproximación, no se debe enrutar desde o hacia una unidad específica de una estación multi-unidad. El enrutamiento se debe hacer desde o hacia la estación principal. En el módulo de procesamiento (Build-Processing ) la caja de diálogo que se abre cuando se da click en el campo Rules permite seleccionar diferentes criterios de enrutamiento. Bloques de Rutas Cuando en un proceso, una entidad se enruta desde una estación, a veces es necesario ofrecer rutas múltiples para que la entidad salga. Ésto se logra creando líneas múltiples o bloques múltiples de enrutamiento. Si un registro de enrutamiento tiene líneas múltiples dentro de un mismo bloque, (lo que es diferente a tener varios bloques de enrutamiento), en el campo de Procesamiento-(Build-Processing) aparecerá numerado solo un bloque de destino dentro del proceso. En el caso de ésta práctica deberá aparecer solo un bloque de destino pero con varios renglones como destinos, y de esa manera solamente una de las líneas (renglón) de destino será ejecutada. En otras palabras, la entidad se irá solamente a una estación. La línea de enrutamiento que la entidad escoge se basa en las reglas de enrutamiento que se establecen en el cuadro de diálogo de reglas. En el ___________________________________________________________________ 22 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 3 23 _______________________________________________________________________________________
módulo de procesamiento (Build-Processing) la caja de diálogo que se abre cuando se da click en el campo “Rules” permite seleccionar diferentes criterios de enrutamiento). Si hay múltiples bloques en el enrutamiento, lo que es diferente a líneas múltiples dentro de un mismo bloque entonces cada línea será ejecutada y la entidad especificada irá a cada una de las estaciones (esta situación se planteará en prácticas posteriores- práctica #6). Esto se logra a través de seleccionar (marcar) la opción de Iniciar un nuevo Bloque (Start New Block) en la caja de dialogo que se abre cuando se da click en el campo “Rules”. Inspección y enrutamientos probabilísticos En algunos casos (como en la presente práctica) existe la probabilidad de que una pieza sea enrutada a un área en vez de otra. En ésta práctica existe un 75% de probabilidad de ocurra el hecho de que la pieza no tenga defectos y vaya a la Pulidora y un 25% de probabilidad de que sea defectuosa y se despache para la Salida (Exit). Este efecto se modela en ProModel creando líneas múltiples en el mismo bloque de enrutamiento y seleccionando la opción PROBABILIDAD. Obviamente, la suma de las probabilidades debe ser igual a uno, y la segunda línea del bloque 1 no está numerada (Es importante recordar que estas múltiples líneas deben estar en el mismo bloque).
Gráficas de fondo Si queremos colocar texto u otros gráficos en el modelo, lo podemos hacer a través de Build / Background Graphics. En éste módulo se tienen dos barras: la barra de herramientas (que nos permite dibujar y modificar formas) y la barra de íconos (que nos permite presentar íconos de estaciones o de entidades como simples gráficas).La herramienta de textos aparece en la barra de herramientas como una A. ___________________________________________________________________ 23 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 3 24 _______________________________________________________________________________________
Variables Las Variables en ProModel son apoyos definidos por el usuario para representar valores importantes de parámetros claves para la decisión que se va a tomar. Para incluir una variable en el modelo, dar click en el menú Build/Variables (global). El nombre que se le de en el campo ID es el nombre con el cual la variable será identificado en el modelo. El tipo de la variable (Type) puede ser entero o real. Como en cualquier aplicación de computador, una variable es simplemente una porción de memoria RAM donde se almacena algún valor, lo reales ocupan mas memoria. Se colocan en el layout para comunicación visual. Para colocar una variable en la ventana gráfica del modelo (layout) como un contador gráfico, simplemente se debe activar el registro de la variable en la ventana Variables (que se encuentra por Build/Variables(global) ), y luego hacer click en el lugar de la pantalla de diseño (layout) donde se quiere que aparezca el valor de la variable. Dando doble click en dicho lugar permitirá modificar el tipo de letra, el color, así como otras características de la caja de texto. Las variables son útiles cuando sus valores se pueden manipular. Esto se realiza con los comandos de ProModel, INC y DEC. INC hará que el valor de la variable se aumente en un valor definido o bien “1” si no se especifica dicho valor. DEC causa que el valor de la variable se disminuya en el valor específico definido o bien “1” si no se especifica dicho valor Las variables y estos comandos son válidos en cualquier campo lógico. Estas variables se introducirán en ésta práctica estando en el módulo de Proceso (Build/Processing), tanto en el campo de Operación (Operation) como en el campo de Movimiento (Move Logic). Allí también se pueden utilizar operadores numéricos (+, -, *, /) para manipular a las variables. Cambio de las gráficas de las entidades Una de las buenas facilidades de ProModel es la habilidad de cambiar las gráficas de las entidades (y de las estaciones) durante la simulación. Para las entidades, ésto se logra a través de Build / Entities, y activando el registro de la entidad de interés. ___________________________________________________________________ 24 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 3 25 _______________________________________________________________________________________
Apagando el botón NEW y presionando el botón Edit aparecerán espacios adicionales para los gráficos.
Dar click para seleccionar dichos espacios, y escoger cualquier ícono deseado. Podemos diseñar gráficos diferentes para la misma entidad. Se puede cambiar el color, la rotación, la dirección y el tamaño de la entidad. Para utilizar las gráficas alternas durante la ejecución de un modelo hay que ejecutar el comando GRAPHIC. Este comando colocado en cualquier campo lógico (Build/Processing) permite seleccionar el gráfico que aparecerá (Por ejemplo, GRAPHIC 2 cambia al segundo gráfico).
___________________________________________________________________ 25 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 3 26 _______________________________________________________________________________________
Enunciado de la Práctica
Suponga que el análisis de la práctica #2 nos hubiese llevado a concluir que uno de los responsables en la operación del sistema es la pulidora. Supongamos que queremos aumentar la efectividad del sistema añadiendo otra pulidora. Además, supongamos que se nos dice que el 25 % de la producción es rechazada. Para obtener más información en la simulación vamos a introducir algunas variables, una estación de inspección y llevaremos registro del inventario en proceso, de las partes rechazadas y de las partes terminadas. Entonces, al modelo de la práctica anterior se agregará lo siguiente: Módulo de Estaciones: Nombre Inspección Pulidora
Capacidad 1
Unidades 1
10
2
Observación Nueva estación (entre el Torno y la Pulidora) Sólo cambiar el valor de las unidades
___________________________________________________________________ 26 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 3 27 _______________________________________________________________________________________
Observar las unidades clones Pulidora.1 y Pulidora.2 que aparecen en el módulo de Estaciones y en la ventana de Diseño. (Ver como debe quedar el registro observando el pantallazo que se presento atrás en la sección sobre Conceptualización- Añadir Estaciones). Módulo de Entidades: Agregar la entidad Rechazos Módulo de Procesamiento: La estación de Inspección se colocará después del Torno (puede colocarse también como último registro). Del torno la pieza pasa a inspección en donde se preparará un bloque de enrutamiento con dos líneas de salida, cada una con probabilidad de ocurrencia, así: Entidad Pieza Pieza
Tiempo de Estación proceso Salida Torno 2 Pieza Inspección 1 Pieza Rechazos
Destino Inspección Pulidora EXIT
Enrutamiento .75 .25
Movimiento .1 .1 0
Notar que la estación Inspección, tiene un solo bloque de salida marcado como “blk”, 1, al frente de pieza y con dos líneas Pieza y Rechazos (múltiples líneas de enrutamiento). Para crear el nuevo renglón “Rechazos”, después de “Pieza”, estando en el renglón de la Inspección dar “Enter”, y luego click en los títulos de los campos “output”de la tabla para buscar “Rechazos” y click en el títulos de destino (destination) para buscar “EXIT”. Nota: No olvidar colocar los WAIT para los tiempos de proceso y los MOVE FOR. Ver como debe quedar el registro anterior observando el pantallazo que se presento atrás en la sección sobre Conceptualización- Inspección y enrutamientos probabilísticas Texto de fondo antes de las variables: Colocar en la ventana de diseño (layout) el siguiente texto: Estadísticas del Sistema: Piezas en proceso Piezas terminadas Piezas rechazadas ___________________________________________________________________ 27 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 3 28 _______________________________________________________________________________________
(Recuerde: Build / Background Graphics. / Behind grid dando click en el botón A de la barra de herramientas, y click en la parte de la ventana de diseño donde quedará el texto). Ver el pantallazo que está al iniciar el enunciado de la práctica. Variables (primer paso: definición): Introducir las siguientes variables: Nombre Piezas_Proceso Piezas_Terminadas Piezas_Rechazadas
Tipo Entero Entero Entero
Ver como se crean en la sección al inicio de ésta práctica en ConceptualizaciónVariables, al final debe obtener una pantalla como la siguiente:
Variables (Segundo paso: Programación) Para entrar comandos de programación de las variables proceder así: Cierre el módulo de variables. Entre al módulo de procesos. Utilice los siguientes pasos: Activar el registro donde se requiera programar la variable, dar click en los campos Operation o Move Logic (donde corresponda), luego dar click en el botón Build y así construir la orden necesaria (En nuestro caso INC o DEC) La variable Piezas_Proceso aumenta cuando una Telera se divide en Piezas, y disminuye cuando el Producto_Terminado abandone el sistema o cuando haya un rechazo. DEC Piezas_Proceso,50 en el campo Move Logic cuando el Output es producto_terminado que va con destino a Exit.
___________________________________________________________________ 28 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 3 29 _______________________________________________________________________________________
La variable Piezas_Terminadas aumenta cuando un Producto_Terminado abandone el sistema. INC Piezas_Terminadas en el mismo lugar donde se encuentra la anterior variable
La variable Piezas_Rechazadas aumenta cuando un rechazo abandone el sistema. INC Piezas_Rechazadas en el campo Move Logic cuando el Output es Piezas_Rechazadas que van con destino a Exit (en la línea de registro que ha sido creada en el proceso como segunda línea de la salida del proceso de Inspección)
Recuerde que las variables se definen así: Click en Build/Variables (global). En la ventana de edición de variables dar click en el campo ID y allí entrar el nombre de la variable, luego click en el campo Type y escoger Integer. (En la columna «Icon» debe aparecer automáticamente «No») Colocar estas variables en la ventana de diseño. (Basta activar la variable de interés y dar click en la parte de la ventana de diseño donde se quiera observar el ___________________________________________________________________ 29 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 3 30 _______________________________________________________________________________________
respectivo contador. En la columna «Icon» debe aparecer automáticamente «Yes») Cambio de gráfico de la Pieza: Finalmente, queremos cambiar la gráfica de las entidades cuando salgan del Taladro y posteriormente cuando abandonen el Torno. Ésto requerirá entrar por la Build / Entities lo que activa la ventana de gráficos (Entity Graphics). Para generar gráficos adicionales de una determinada entidad, (por ejemplo de pieza) debe en la ventana del registro de entidades (Entities) seleccionar la entidad pieza y luego en la ventana de gráficos (Entity Graphics) desmarcar el botón “New” y presionar el botón “Edit”, con lo cual se activan espacios para crear nuevos gráficos para la entidad piezas ( ver la sección anterior “Cambio de las gráficas de las entidades” ). Posteriormente, en la lógica de proceso de las estaciones respectivas se deberá utilizar el comando GRAPHIC para cambiar el gráfico de la entidad cuando se termine su tiempo de procesamiento. Asi, en el campo “Operation” de la estación Taladro, después del WAIT 4 debe ir GRAPHIC 2 (lo que hará que se utilize el segundo gráfico creado para la entidad piezas). Ai mismo en el campo de operación del Torno debe ir GRAPHIC 3. Vea el siguiente pantallazo:
No olvide grabar este modelo como "PRAC_03.MOD" Análisis final de la simulación Ahora ya sabiendo como se crean (añaden) estaciones paralelas debemos al final de ésta práctica retomar el modelo de la práctica #2 (recuerde que ella no tiene ___________________________________________________________________ 30 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 3 31 _______________________________________________________________________________________
inspección, ni doble pulidora) y comparar los resultados del sistema de la práctica #2 analizando las 3 siguientes alternativas: 1. Añadir un taladro extra y dejar el resto como en la práctica 2 original 2. Añadir un torno extra y dejar el resto como en la práctica 2 original (es decir borrar el taladro extra de la alternativa 2) 3. Añadir una pulidora extra y dejar el resto como en la práctica 2 (es decir sin taladro, ni torno extra). Correr cada una de las tres alternativas, analizar los resultados de cada corrida y finalmente debe responder al siguiente interrogante: ¿Cual de las alternativas mejora el desempeño del sistema planteado en la práctica #2, explique su respuesta y justifique basado en los resultados de salida (valores numéricos del reporte de salida) de cada corrida
___________________________________________________________________ 31 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 4 32 _______________________________________________________________________________________
MODULO 2: Prácticas #4 y #5. Las prácticas #4 y #5 hacen parte de un mismo módulo que trata de sistemas con filas y bandas de transporte. En ellas se introducen los comandos JOIN (para Ensamblar piezas), LOAD (para Cargar una pieza sobre otra) y UNLOAD (para descargar una pieza que está sobre otra). A diferencia de la práctica #4 la práctica # 5 adiciona a la #4 la inclusión de rutas y de recursos humanos para adelantar las operaciones, lo cual permite analizar el efecto que sobre el desempeño tiene la inclusión de recursos dinámicos en ese sistema.
2.4
PRÁCTICA # 4
CONCEPTUALIZACIÓN: Banda Transportadora: Permiten modelar los casos de cintas de transporte de materiales, o cualquier método de manejo de materiales que sea similar a una banda o cinta transportadora. Las partes solamente pueden ser cargadas en la banda una a la vez. El número de partes que se permiten en la banda está limitado por su capacidad, así como por las dimensiones de la entidad que se transporta en la banda y por la longitud de la banda. La entidad se mueve en la banda dependiendo de la longitud de la banda y de la velocidad de movimiento de la banda. Las bandas transportadoras son de dos clases: Las bandas transportadoras de acumulación, que actúan como rodillos (las piezas se pueden pegar unas con otras al moverse la banda), o bandas de no acumulación, que actúan como cintas (las piezas respetan las distancias entre ellas). En una banda de acumulación si la entidad que va adelante no puede salir de la banda las otras entidades que están viajando sobre la banda se van acumulando detrás de la primera. Para una banda de no acumulación si la entidad que está adelante pára la banda y todas las demás entidades que estén sobre ella también pararán. La capacidad asignada a la banda limita el número de entidades que pueden acceder a la banda. Sin embargo en una banda de acumulación la longitud y ancho de las entidades no puede exceder la longitud de la banda. De hecho las estadísticas de este tipo de estación reflejan la cantidad de espacio utilizada sobre la banda y no el número de entidades que ocupan la banda. A diferencia de otro tipo de estaciones (Locations) una entidad no pude ser ruteada a la banda a menos que ___________________________________________________________________ 32 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 4 33 _______________________________________________________________________________________
exista espacio al comienzo de ella para que quepa aunque exista capacidad en la banda para soportar la entidad. El comando a utilizar con las bandas transportadoras es MOVE. ProModel ejecuta la lógica de operación para las entidades que entran en una banda inmediatamente ellas entran a la banda a menos que la lógica siga al comando MOVE. Si no existe un comando MOVE las entidades comienzan su movimiento sobre la banda después de procesar cualquier lógica. Si un comando MOVE es encontrado el movimiento es iniciado y cualquier lógica definida después del comando MOVE es procesada solo cuando la entidad llega al final de la banda. El tiempo de movimiento sobre una banda está basado en la longitud y velocidad de la banda al mismo tiempo que en la longitud y ancho de la entidad que viaja sobre la banda. El tiempo de movimiento se calcula con la siguiente fórmula: Tiempo = (Longitud de la banda – longitud de la entidad o ancho de la entidad) / velocidad de la banda. El porcentaje de utilización se calcula usando la formula: tc C % de Utilización = ∀entidades c T
∑
Nota: La sumatoria es realizada sobre todas las entidades.
tc , Cc, T,
es el tiempo que una entidad pasa sobre la banda no importa si se está moviendo o no. es la capacidad de la banda para un tipo dado de entidad. es el tiempo total de la simulación.
Una banda se crea entrando por el menú Build/Locations y en la ventana de gráficos haciendo click sobre el icono que representa una escalera. Este ícono está predeterminado solo para representar bandas y filas. Una vez colocado en el layout, doble click en el permite editarlo y definirlo como banda de acumulación o no acumulación o como fila. Al definir una banda transportadora deberá activarse la regla para la salida de las entidades (lo predeterminado es FIFO). Colas (Filas): Las filas son utilizadas como almacenes (área de espera antes de las estaciones de trabajo).Gráficamente, la cola solamente desplegará las entidades que se puedan mostrar dependiendo del tamaño del gráfico de la entidad y de la cola. O sea, ___________________________________________________________________ 33 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 4 34 _______________________________________________________________________________________
las unidades en cola que se ven no necesariamente corresponden al tamaño de la cola (número de entidades en la cola) en el modelo. Además, como en el caso de las bandas transportadoras, el límite de las entidades que pueden ser guardadas en una cola también depende de la capacidad de la cola (el valor predeterminado es infinito); pero no del tamaño de las entidades como sucede en las bandas de transporte. Como en el caso de las bandas el comando MOVE nos permite controlar cuando será ejecutada la lógica de la fila. Un comando MOVE hace que la entidad se mueva al final de la cola donde cualquier lógica de operación adicional ya definida será procesada. La lógica del comando MOVE se ejecuta al comienzo de la cola (o de la banda). La lógica posterior al comando MOVE se ejecuta cuando la entidad llega al final de la cola (o de la banda). Si un comando MOVE incluye tiempo de movimiento (por ejemplo MOVE FOR 5.2 sec) la velocidad de la entidad y el tamaño de la cola serán ignorados. Si el tiempo del MOVE no es incluido el tiempo del MOVE se basa en la velocidad de la entidad y longitud de la cola. El comando MOVE FOR permite controlar el tiempo que le lleva a una entidad viajar de principio a fin de una cola. Si no especifica el tiempo, entonces el tiempo será definido por la longitud de la cola y la velocidad de la entidad. Al definir una cola es opcional la regla para la salida de las entidades (en la banda de transporte es obligatorio). Notas: El comando MOVE FOR no se utiliza en bandas de transporte solo en las filas Tanto para las bandas como para las colas la longitud está determinada por la escala del gráfico y cuando ella es modificada gráficamente la longitud es automáticamente recalculada basada en el nuevo gráfico, a menos que se desmarque previamente la opción “Recalculate path lengths when adjusted”. Esta opción puede accesarse a través del menú Tools / Options. Comando JOIN (Ensamblar): El proceso JOIN se utiliza para ensamblar dos entidades. Después del ensamble las entidades estarán permanentemente unidas (ésta es la diferencia con COMBINE pues las entidades anteriores pierden su identidad).
___________________________________________________________________ 34 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 4 35 _______________________________________________________________________________________
El comando JOIN tiene dos partes y trabaja así: Una parte del JOIN es el comando JOIN, con el cual una entidad “invita” a otras a unirse. La regla correspondiente actúa como un retardador, deteniendo la entidad hasta que la otra entidad ejecute el JOIN. Esta parte del JOIN se activa con la regla, IF JOIN REQUEST RULE. La otra parte se activa en el campo de Operation de la otra entidad que se va a ensamblar. Para cada comando JOIN deberá haber una regla correspondiente IF JOIN REQUEST RULE; JOIN siempre resulta en un cambio de una entidad por otra diferente. Ver como ejemplo cuadro siguiente.
Comandos LOAD / UNLOAD
(Carga / Descarga):
El comando LOAD trabaja en forma similar a JOIN, excepto que las partes cargadas pueden ser más tarde descargadas o desensambladas. Similarmente a JOIN, LOAD tiene dos partes: el comando LOAD y la regla IF LOAD REQUEST. El comando UNLOAD descargará el número específico de entidades en la estación. Por tanto, es necesario crear un registro en el módulo de procesamiento para las entidades que hayan sido descargadas. Ver como ejemplo cuadro anterior.
___________________________________________________________________ 35 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 4 36 _______________________________________________________________________________________
Enunciado de la Práctica En este modelo, las Fotocopiadoras y las Cajas Vacías se unen en la Mesa de Trabajo formando una Caja Llena. Las Cajas Llenas van a la Zona de Carga a través de la Cola de Embarque. De ahí, las Cajas Llenas son cargadas en una Tarima (que llegó a través de la Banda de Tarimas) y viajan hasta la estación Embarque a través de la Banda de Embarque. En el Embarque las Cajas Llenas se descargan de la Tarima y salen del sistema. Las Tarimas se regresan a la Banda de Tarimas para ser reutilizadas dentro del sistema. Ver distribución en el pantallazo siguiente:
Usar como unidad de longitud metros y como unidad de tiempo minutos. A continuación está la información que debe usarse para crear las Estaciones (Locations), las Entidades (Entities), los Procesos (Processing) y las Llegadas (Arrival
___________________________________________________________________ 36 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 4 37 _______________________________________________________________________________________
MÓDULO DE ESTACIONES Estaciones Capacidad Cola_Fotoc Cola_Cajas Mesa_Trab Cola_Emb Banda_Tarim Zona_Carga Banda_Emb Embarque Salida
5 5 1 5 Infinita 1 Infinita 1 1
Especificaciones Longitud de la cola = 20 Longitud de la cola = 20 Longitud de la cola = 20 Velocidad = 20, Longitud = 20, Acumulación Velocidad =20, Longitud = 20, Acumulación
Nota_1: Para construir una banda de transporte solo se puede usar el icono en forma de escalera que se encuentra en la ventana de gráficos. Este mismo icono se utiliza para construir as colas. Nota_2: Para colocar las especificaciones de la banda (longitud y velocidad ) estando en el módulo de estaciones hacer doble click en la banda, luego entrar por opciones de la banda (conveyor options) y digitar la longitud y velocidad de ella. Nota_3: No olvidar activar para las bandas la regla de salida de las bandas. Estando en el modulo de estaciones y en el registro de la banda de transporte hacer click en el campo “Rules” y activar lar regla FIFO. Nota_4: señalar que la colocación de las entidades sobre la banda de transporte será a lo largo de la entidad para estando en el módulo de estaciones hacer doble click en la banda, luego entrar por opciones de la banda (conveyor options) y señalar la orientación de la entidad (lengthwise). MÓDULO DE ENTIDADES Entidades Fotocop Caja_vacía Caja_llena Tarima_vacía Tarima_llena Nota_1: la velocidad de las entidades se define en el modulo de entidades Build / Entities en el campo Speed. Colocar como velocidad de cada una de las entidades 150 metros por minuto. ___________________________________________________________________ 37 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 4 38 _______________________________________________________________________________________
Nota_2: hacer que la dimensión de todas las entidades sea exactamente de 2.5 metros de longitud y un ancho de 3 metros. MÓDULO DE PROCESAMIENTO Nota_1: Estos procesos no se digitan, deben crearse como ya fue explicado en la introducción al módulo de prácticas, ver página 2 sección 1.2.3 Para crear el Procesamiento. Nota_2: los comando MOVE, JOIN, LOAD, UNLOAD, WAIT no deben digitarse, debe usarse el ayudante constructor. A éste último se accede haciendo click en el campo “Operation”, y luego haciendo click en el ícono del martillo. Y para los comando que aparecen en el campo de Reglas para la estación destino dar click en el campo “Rules” y activar según sea el caso: I Join Request o If Load Request según sea el caso Entidad
Estación
Fotocop Caja_vacía Caja_vacía
Cola_Fotoc Cola_Cajas Mesa_Trab
Operación MOVE MOVE JOIN 1 Fotocop WAIT 4 MOVE MOVE
Caja_llena Cola_Emb Tarima_vacía Banda_Tarim Tarima_vacía Zona_Carga LOAD 1 WAIT 1 Tarima_llena Banda_Emb MOVE Tarima_llena
Embarque
Caja_llena Caja_llena
Embarque Salida
Entidad Fotocop Caja_vacía Tarima_vacía
Estación Cola_Fotoc Cola_Cajas Banda_Tarim
Salida
UNLOAD 1 WAIT 2 WAIT .5
Destino
Reglas
Fotocop Mesa_Trab Caja_vacía Mesa_Trab Caja_llena Cola_Emb
JOIN 1 FIRST 1 FIRST 1
Caja_llena Tarima_vacía Tarima_llena Tarima_llena Tarima_vacía Caja_llena Caja_llena
Zona_Carga Zona_Carga
LOAD 1 FIRST 1
Banda_Emb
FIRST 1
Embarque
FIRST 1
Banda_Tarim FIRST 1 Salida EXIT
FIRST 1
MÓDULO DE LLEGADAS Cantidad 5 5 1
Primera vez 0 0 0
Ocurrencias infinito infinito 3
Frecuencia 20 20 2
Nota_1: La cantidad 5 y la frecuencia de 20, significa que las entidades están llegando en paquetes de 5 unidades cada 20 minutos. Finalmente: ___________________________________________________________________ 38 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 4 39 _______________________________________________________________________________________
1. Correr la simulación por 10 horas y observar los resultados. 2. Posteriormente hacer los siguientes cambios en el modulo de llegadas: • Cambiar la cantidad de llegadas de fotocopiadoras y cajas vacías a solo una de cada una de ellas • Cambiar la frecuencia de llegadas de las fotocopiadoras y de las cajas vacías a tres minutos y la de las tarimas a 5 minutos. 3. Correr de nuevo la simulación por 10 horas 4. Interpretación de resultados: Observe e interprete el reporte de salida. ¿ Cuánto tiempo van a esperar las partes antes de ser trabajadas ? Nota: Este es un reporte de prueba, por supuesto sus resultados serán diferentes. LOCATION STATES BY PERCENTAGE (Single Capacity) Location Schedu- % Name led OperaHours tion ------------ ------------ ---------------Mesa 10 99.93 Trab Zona 10 24.83 Carga Embar- 10 49.54 que Salida 10 0.00
% Setup
% Idle
% Waiting
% Blocked
% Down
----------- ----------- ------------ ------------ ---------------0.00 0.07 0.00 0.00 0.00 0.00
0.16
75.01
0.00
0.00
0.00
50.46
0.00
0.00
0.00
0.00
100.0
0.00
0.00
0.00
En la barra de íconos del reporte, dar click en el 6º botón de izquierda a derecha (View a state or utilization summary graph), luego click en OK para aceptar Location Utilization. Observe e interprete el gráfico resultante. No olvide grabar este modelo como "PRAC_04.MOD"
___________________________________________________________________ 39 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 5 40 _______________________________________________________________________________________
2.5
PRÁCTICA # 5 CONCEPTUALIZACIÓN:
Red de rutas: Cuando las entidades y los recursos se mueven entre las estaciones siguen un camino llamado red de rutas. Varias entidades y recursos pueden compartir una red de rutas común. El movimiento a lo largo de la red de rutas puede definirse en términos de la velocidad y de la distancia, o simplemente en términos del tiempo. Las redes de rutas se componen de nodos que se conectan por segmentos de ruta. Un segmento de ruta se define con un nodo inicial y un nodo final, y puede ser tanto unidireccional como bidireccional. Los segmentos de ruta pueden tener quiebres, o ser sólo líneas rectas que unen a dos nodos. La creación de una ruta se inicia seleccionando Build / Path Networks, (antes dar click en el campo paths de la ventana Path Networks ) y después haciendo click con el botón izquierdo del ratón en la parte de la ventana de diseño en donde se debe iniciar el segmento. Clicks izquierdos subsecuentes señalarán los quiebres en la ruta y un click derecho marcará el fin de la ruta. Las interfases se utilizan para decirle a ProModel en dónde interactúa un recurso con una estación. Para crear una interfase entre un nodo y una estación, estando en la ventana de Path Networks debe activarse primero el campo Interfaces (hacer click en él) y luego proceder a crearlas así: hacer click izquierdo sobre un nodo que va a interfasarse Interfaces (se apreciará una línea punteada) y posteriormente un click izquierdo en la estación correspondiente. Recursos: Un recurso es una persona, una pieza de un equipo, o algún otro aparato usado para una o varias de las siguientes funciones: transporte de entidades, asistencia en la ejecución de operaciones sobre las entidades en las estaciones, ejecución de mantenimiento en las estaciones, o casos similares. Un recurso puede constar de varias unidades con características comunes, tales como un equipo de electricistas o una flota de camiones. ___________________________________________________________________ 40 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 5 41 _______________________________________________________________________________________
Los recursos pueden ser dinámicos (cuando se mueven a lo largo de la red de rutas) o estáticos (cuando no se mueven a lo largo de la red de rutas). Para identificar un recurso hay que definir dos elementos: el recurso propiamente dicho y la red de rutas del recurso. Generalmente los recursos tienen un «home» ( una «casa» ) donde están (a donde van) cuando no se utilizan. Este home será uno de los nodos de la ruta. La creación de un recurso se inicia seleccionando Build / Resources dando click en el gráfico deseado en la ventana de herramientas de los recursos. Esta acción (como en los módulos anteriores) generará un registro en la Tabla de Edición de Registros. Allí se pueden editar los campos del recurso (nombre, número de unidades, especificaciones, tiempos muertos, etc.) El campo de especificaciones permite definir la red sobre la cual viaja el recurso, los nodos sobre los cuales se estaciona y el movimiento del recurso. Nota: Los recursos no son ni entidades ni estaciones. Comandos GET / FREE: El comando GET capturará el recurso para una actividad en una estación. El recurso permanecerá en la estación hasta que se especifique un FREE. El comando GET utilizado conjuntamente con AND y OR permite capturar recursos múltiples para una tarea, o bien para una selección alternativa. Se utilizan en el campo «Operation». Comando USE: Este comando capturará el recurso por la cantidad especificada de tiempo y posteriormente lo liberará en forma automática. Se utiliza en el campo «Operation». Comando MOVE WITH: Se utiliza para capturar un recurso de transporte entre estaciones (cuando en la estación actual no hay actividad). El recurso permanecerá con la entidad hasta que se encuentre más adelante el comando THEN FREE o el comando FREE. Nota: Al utilizar MOVE WITH o GET no olvide liberar el recurso más adelante. Se utilizan en el campo «Move Logic».
___________________________________________________________________ 41 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 5 42 _______________________________________________________________________________________
Enunciado de la Práctica Nº 5
En este caso vamos a añadir recursos al modelo de la práctica #4 anterior. Realizar los siguientes cambios: Crear Rutas. Crear 2 redes de rutas llamadas Red_1 y Red_2. (por Build / Path Networks, ver Conceptualización Red de rutas) •
La Red_1 permite al operario ir de la Mesa de Trabajo a la Zona de Carga (2 nodos), ver el siguiente pantallaza con la red_1.
•
La Red_2 permite al operario ir de la estación de Embarque a la Zona de Carga y a la parte superior de la Banda de Tarimas (3 nodos), ver el siguiente pantallaza con la red_2.
___________________________________________________________________ 42 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 5 43 _______________________________________________________________________________________
Crear interfases. Las interfases se utilizan para decirle a ProModel en dónde interactúa un recurso con una estación. Para crear una interfase entre un nodo y una estación se debe hacer click en el campo de interfaces que se presenta en el pantallazo anterior con lo cual se abre la caja de registro de interfaces. Luego click izquierdo sobre el nodo que se va a interfazar (se apreciará una línea punteada, como en el gráfico anterior ) y posteriormente un click izquierdo en la estación correspondiente al nodo interfazado. • •
En la Red_1 para la Mesa de Trabajo y la Zona de Carga. En la Red_2 para el Embarque, Zona de carga y Banda de Tarimas.
A continuación se presentan las interfaces de la red_2.
Crear recursos ___________________________________________________________________ 43 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 5 44 _______________________________________________________________________________________
Crear dos operarios (por Build / Resources, ver antes Conceptualización recursos), así: • •
Martha (en SPECS colocarla en la Red_1) Carlos (en SPECS colocarlo en la Red_2)
Nuevos comandos Poner GET, FREE y MOVE WITH / THEN FREE en las estaciones apropiadas en tal forma que las siguientes actividades sean llevadas a cabo: • •
Martha realiza el JOIN y el WAIT en la mesa de trabajo. (GET Martha JOIN 1 fotocopiadora WAIT 4 FREE Martha)
•
Martha y Carlos realizan el LOAD y el WAIT en la zona de carga. (GET Carlos AND Martha LOAD 1 WAIT 1 FREE ALL)
•
Carlos realiza el UNLOAD en el embarque y toma las tarimas vacías y las lleva a la banda de tarimas. (GET Carlos UNLOAD 1 WAIT 2 FREE Carlos). Además, en el campo de “Move Logic” debe ir MOVE WITH Carlos THEN FREE
Nota: Todos los comando enunciados anteriormente No deben digitarse- debe usarse el constructor (el icono del martillo como se explico en la práctica #4 anterior). Correr la simulación por 10 horas. Interpretación de resultados: ¿ Qué tan efectivos son los recursos ? (Examinar los recursos en el reporte general y en las gráficas de estado para el uso y los estados posibles de un recurso) ¿ Qué nivel de detalle será necesario en un modelo ? (Reflexionar sobre la siguiente afirmación: “Una mayor complejidad no necesariamente añade mayores beneficios”) No olvide grabar este modelo como "PRAC_05.MOD"
___________________________________________________________________ 44 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 6 45 _______________________________________________________________________________________
MODULO 3: Prácticas #6, #7 y #8. (Las prácticas #6 y #7 permiten comparar el efecto que sobre un sistema tiene la aleatoriedad en los tiempos de servicio. En el sistema de la práctica #6 introduce con ProModel la creación de atributos, y la la forma de programar en ProModel lógicas mas complejas para producir enrutamientos múltiples. En la práctica #6 los tiempos de servicio son determinísticos mientras que en la práctica #7 para el mismo sistema se utilizan tiempos aleatorios que siguen distribuciones normales, lo que permite analizar el efecto de ése cambio, además esa práctica enseña la forma de registrar el tiempo de ciclo de una entidad siendo procesada. La práctica #8 adiciona a la práctica #7 intervalos de tiempos aleatorios de paradas de máquinas para su mantenimiento preventivo y la adición, al sistema de la práctica #7, de recursos dinámicos que siguen determinado horario de trabajo, de lo que permite también estudiar el efecto de esos cambios.
2.6
PRÁCTICA # 6
CONCEPTUALIZACIÓN: Atributos: Son entes similares a las variables, pero están ligados a entidades y estaciones específicas, y usualmente contienen información de esa entidad o estación. Los atributos pueden ser números enteros o reales, y se definen siguiendo el orden Build / Attributes. Para entender mejor el concepto de atributo, y a manera de ejemplo, consideremos la siguiente situación: Suponga que unos clientes llegan a un banco para solicitar uno de tres servicios: (1) hacer depósitos o retiros, (2) abrir o cancelar una cuenta, y (3) solicitar un crédito hipotecario. El 90% de los clientes va directamente a un “cajero” para realizar depósitos o retiros, el 6% desea abrir o cancelar una cuenta, ésto se hace en “información” y el 4% restante desea solicitar un préstamo hipotecario, lo que se hace ante el “gerente” En lugar de modelar esta situación con tres entidades diferentes (tres clientes diferentes), se puede utilizar una sola entidad (un mismo cliente) a la cual se le «pega» un atributo que represente el tipo de servicio solicitado. Utilizaremos entonces el atributo «Tipo» al cual se le asignan los valores 1, 2, o 3, que aparecerán en el modelo de acuerdo a una distribución probabilística definida por el usuario (usted), y que llamaremos, por ejemplo, Distrib. A manera de ejemplo (No es para que Ud. lo modele). En el campo «Operation» de la estación en la cual se encuentra el cliente deberían aparecer las siguientes instrucciones: Tipo=Distrib() If Tipo=1 Then Route 1 Else If Tipo=2 Then ___________________________________________________________________ 45 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 6 46 _______________________________________________________________________________________
Route 2 Else Route 3 La primera instrucción Tipo=Distrib(), estaría asignando al atributo que tiene como nombre Tipo (y que previamente debe haber sido creado, a través de Build / Attributes) valores que son especificados en la distribución de probabilidad que tiene el nombre distrib (y que también previamente debe haber sido creada, a través de Build/More Elements/User Distributions). Además, la lógica anterior selecciona Route 1, Route 2 o Route 3 según el valor del atributo Tipo y utilizará entonces una de las tres salidas siguientes: Cajero, Información, Gerente (que deben haber sido definidas en la ventana de enrutamiento, en bloques diferentes). Blk 1 2 3
Output ... Cliente Cliente Cliente
Destination ... Cajero Información Gerente
Rules ... FIRST 1 FIRST 1 FIRST 1
Move Logic ... Move for 15 sec Move for 10 sec Move for 15 sec
Así, en éste ejemplo conceptual hay múltiples bloques de enrutamiento entonces cada línea será ejecutada y la entidad especificada, según su atributo irá a cada una de las estaciones (los clientes con atributo 1-Tipo=1- irán al Cajero, los clientes con atributo 2 se dirigirán hacia la Información y los de Tipo=3 hacia el Gerente). Esto se logra a través de seleccionar (marcar) la opción de Iniciar un nuevo Bloque (Start New Block) en la caja de dialogo que se abre cuando se da click en el campo Rules, estando en el registro de la estación de destino (Destination). Los comandos IF THEN permiten al usuario ejecutar líneas específicas de lógica basados en ciertas condiciones. Los comandos BEGIN y END son requeridos si se incluyen varias líneas de instrucciones para una posibilidad. Si no hay BEGIN y END el modelo solo ejecuta la primera línea después del IF-THEN. El comando ELSE permite continuar listando condiciones específicas. También se puede continuar con instrucciones ELSE IF THEN. Si ya tiene claro los conceptos anteriores está preparado conceptualmente para modelar la situación que se describe en el enunciado de ésta práctica. Asegúrese de entender primero la situación que va a ser modelada antes de iniciar su modelaje.
___________________________________________________________________ 46 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 6 47 _______________________________________________________________________________________
Enunciado de la Práctica Nº 6 Unas Partes (entidades) que llegan a la Cola de Entrada (recuerde como se modelan las estaciones/Locations del tipo Cola) se mueven o a la Fresadora o al Torno. Ésto se modelará con un atributo que llamaremos Clase, con la siguiente convención: Si el atributo Clase es igual a 1 la Parte se enrutará a la Fresadora y si es igual a 2 se enrutará al Torno. Se sabe que el 65% de las Partes deben ir a la Fresadora y el resto al Torno. De la Fresadora o del Torno las Partes pasan a la Cola de Inspección. Al final de esta cola se debe seguir la siguiente lógica: las Partes van a la Salida excepto las que en su orden de llegada tienen múltiplo de cinco (o sea que las Partes número 1, 2, 3, y 4 van a la Salida, la Parte número 5 va a Inspección, las Partes 6, 7, 8 y 9 van a la Salida, la Parte número 10 va a Inspección, y así sucesivamente); es decir 1/5 parte van a ser inspeccionadas equivalentes al 20%. Se sabe además que de las Partes inspeccionadas, el 30 % deben ser reprocesadas, o sea, deben regresar a la Cola de Entrada. El pantallazo siguiente ejemplifica la ubicación de las estaciones:
Para modelar la situación arriba descrita realice los siguientes pasos: ___________________________________________________________________ 47 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 6 48 _______________________________________________________________________________________
1. CREACIÓN DE UNA DISTRIBUCIÓN PROBABILÍSTICA Esta distribución probabilística (que se modela como una Distribución de Usuario) pretende repartir las Partes que llegan al sistema aleatoriamente hacia la Fresadora o hacia el Torno (con porcentajes respectivos de 65% y 35%). Esta distribución probabilística se llamará «Distribuc», tendrá los siguientes valores PORCENTAJE VALOR 65 1 35 2 Para crear la distribución con los valores anteriores: 1) cree el nombre de la distribución en el campo ID, como de tipo (Type) discreto (Discrete) a través de ( Build / More Elements / User Distributions) 2) luego dé click en el campo Table para que pueda definir los valores y la probabilidad de cada valor (porcentualmente por ejemplo) Como guía observe los siguientes pantallazos:
Observe que la tabla anterior no es acumulativa, y que los valores que tomará el atributo son discretos. (El funcionamiento interno en el computador es así: Cada vez que se active esta distribución se genera aleatoriamente por un proceso de muestreo llamado MonteCarlo un valor para el atributo de 1 con probabilidad .65 o de 2 con probabilidad .35. Este atributo se le «pega» como una etiqueta a la Pieza (entidad llamada Parte) en el momento de su llegada, y así, al final de la Cola de Entrada las Piezas (Parte) se repartirán hacia la Fresadora o hacia el Torno de acuerdo al enunciado. ___________________________________________________________________ 48 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 6 49 _______________________________________________________________________________________
2. MÓDULO DE ESTACIONES: Cree las siguientes estaciones: Estaciones Cola_Entrada Fresadora Torno Cola_Inspeccion Inspeccion Salida
Capacidad infinita 1 1 infinita 1 1
Nota: Coloque como dimensiones de cada una de las colas las siguientes: Longitud (length): 20 metros 3. ATRIBUTOS: Cree el siguiente atributo, como se explicó en la conceptualización. ID Type Classification Clase Entero Ent 4. MÓDULO DE ENTIDADES Cree la siguiente entidad: Entidad Parte Nota: Especifique las características de la entidad así: Ancho (width):1.7143 metros Longitud (length): 0.7143 Velocidad (Speed): 150 metros por minuto 5. MÓDULO DE LLEGADAS: Entrar por Build/Arrivals y consignar la información sobre las llegadas asi: Entidad Estación Parte Cola_entrada
Cantidad 1
Primera vez Ocurrencias 0 Inf
Frecuencia 3
Logic Clase=Distribuc
La frecuencia 3 está indicando que una parte llega cada 3 minutos a la cola de entrada En el campo “Logic” (en el momento de la llegada de la Parte a la estación Cola_entrada) se le asigna a cada Parte en el atributo clase (un 1 o un 2) de acuerdo con la distribución (Distribuc) dada por el usuario en el pa___________________________________________________________________ 49 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 6 50 _______________________________________________________________________________________
so 1-Creación de una Distribución Probabilística (65% de las veces un 1 y 35% de las veces un 2). 6. MÓDULO DE VARIABLES: Cree las siguientes variables de tipo entero. Entrar al modulo de definición de variables por Build/Variables(global). ID Contador_separacion Contador_rechazos
Type Integer Integer
Nota_1: La variable "Contador_separacion" se manejará para controlar la exigencia del enunciado en el sentido de que las Piezas numeradas con múltiplos de cinco deben ir a la estación Inspección, y las otras deben ir a la estación Salida. Nota_2: La variable "Contador_rechazos" debe ser utilizada para mostrar las partes que se rechazan en la Inspección y que deben ser reprocesadas (Ud. debe colocar las instrucciones donde correspondan en el módulo de procesos). 7. MÓDULO DE PROCESAMIENTO Entidad Estación Parte Cola_Entrada Parte Parte Parte Parte Parte
Fresadora Torno Cola_Inspección Inspección Salida
Operación Aquí insertar lógica apropiada
3 min 4 min Aquí insertar lógica apropiada
1 min
Salida Destino Parte Fresadora Parte Parte Parte Parte
Torno Cola_Inspección Cola_Inspección Salida
Parte Parte Parte
Inspección Salida Cola_Entrada
Parte
EXIT
Rule
Prob .70 Prob .30
Move Logic
Incrementar la variable apropiada
En el campo Operación de la Cola_Entrada debe ir la lógica de enrutamiento de acuerdo con el atributo (por ej: if clase = 1 then Route 1 else Route 2). Los destinos Fresadora y Torno deben ser creados como bloques independien___________________________________________________________________ 50 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 6 51 _______________________________________________________________________________________
tes, Fresadora como bloque 1 y Torno como bloque 2 (releer en la conceptualización al comienzo de ésta práctica de como se crean múltiples bloques de enrutamiento-“ (Esto se logra a través de seleccionar (marcar) la opción de Iniciar un nuevo Bloque (Start New Block) en la caja de dialogo que se abre cuando se da click en el campo Rules, estando en el registro de la estación de destino (Destination)”.
En el campo de Operación de la Cola_Inspección debe incluirse la lógica que enviará la Parte cuya numeración sea múltiplo de cinco a la estación Inspección y las otras cuatro a la estación Salida. Esta lógica aparece a continuación (Utilizar el constructor a través de ícono con el martillito buscar la instrucción IF THEN ELSE, llenar los campos y luego apropiadamente con el contructor ir incluyendo las instrucciones BEGIN y END). El uso del contructor le garantizará que los corchetes necesarios sean colocados correctamente en las siguientes instrucciones: INC contador_separacion IF contador_separacion = 5 THEN BEGIN contador_separacion = 0 ROUTE 2 END ELSE BEGIN ROUTE 1 END Nota: No olvidar colocar los corchetes que las instrucciones anteriores requieren No olvidar colocar los contadores de manera apropiada :Contador_rechazos en el enrutamiento a la Cola_Entrada y Contador_separación en la Cola_Inspección. En este momento grabar con el nombre «PRAC_06.MOD». Actividades 1. Correr el modelo, y analizar los resultados. 2. Explicar en que momentos hay utilización del método montecarlo 3. Analizar con el profesor el manejo de las semillas.
___________________________________________________________________ 51 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 7
52 _______________________________________________________________________________________
2.7
PRÁCTICA # 7
Esta práctica introduce el uso de distribuciones probabilísticas teóricas y la forma de hacerle seguimiento a los tiempos de ciclo de cada una de las entidades que se están procesando en un sistema mediante el uso de las funciones CLOCK() y LOG.
CONCEPTUALIZACIÓN: Distribuciones Estadísticas: Se utilizan para simular los tiempos de operación y los tiempos de movimiento con mayor realidad, creando la aleatoriedad requerida por el mundo real. La escogencia de una distribución es una tarea difícil, que implica conocimiento del sistema ha ser modelado y conocimiento de la teoría matemática de la estadística,(Percepción gráfica de las distribuciones estándares mas conocidas; Pruebas de bondad de Ajuste; Estimación de parámetros), sin contar con el trabajo logístico de recolección de información. Funciones CLOCK() y LOG: Permiten hacer el seguimiento de eventos en el tiempo dentro de un modelo. CLOCK(), es una función que devuelve el tiempo transcurrido en la simulación. Esta función regresa un número real, por lo tanto los atributos y/o variables que reciban el valor generado por ésta función deben de ser de tipo real. LOG, es una función que resta del tiempo corriente de la simulación el valor guardado en otra y almacena el resultado de ésta resta en un archivo de texto llamado .LAP. La sintaxis es como sigue: LOG, Por ejemplo, si se guarda en el atributo tiempo_de_entrada el momento en que una entidad entra en una estación dada, mediante la utilización de la función CLOCK(), asi: tiempo_de_entrada= Clock(), y luego ésta expresión (tiempo_de_entrada) se coloca en la función LOG, y se define también en ella, como archivo de texto “Tiempo de Ciclo”, entonces, la función: LOG “Tiempo de Ciclo”, tiempo_de_entrada, resta el valor guardado en el atributo tiempo_de_entrada del tiempo corriente de la simulación y el resultado de ésta resta, lo almacena en el archivo de texto llamado “Tiempo de Ciclo”. ___________________________________________________________________ 52 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 7
53 _______________________________________________________________________________________
En el siguiente ejercicio utilizaremos estas funciones para calcular el tiempo de ciclo promedio que las partes gastan en el sistema. Nota especial: Entrando por Simulation / Options aparecen varias opciones, de las cuales merece destacar por ahora: Number of replications: Cada replicación dará diferentes resultados, ya que se utilizarán diferentes semillas (ver la unidad VI de la guía de fundamentos teóricos). Warmup Hours: Corresponde al tiempo de estabilización que algunos modelos requieren, si aquí se entra algún valor de tiempo, la simulación no calcula estadísticas sino a partir de ese tiempo. (Ver Unidades VI y VII de la guía teórica, sobre simulaciones terminantes, simulaciones no terminantes y períodos de calentamiento) Enunciado de la Práctica Nº 7 En el modelo anterior (Práctica #6) se desea agregar distribuciones estadísticas a los tiempos de proceso, e investigar las entidades en el sistema (partes) calculando los tiempos de ciclo. Entonces, efectuar los siguientes cambios: 1. MÓDULO DE ATRIBUTOS: Agregar el atributo “tiempo_entrada”, tipo “real”. Nota: para recordar como se crean los atributos, ver la conceptualización de la práctica anterior #6. Nota: En el campo Classification de la tabla de registro de Atributos seleccionar Entity 2. MÓDULO DE PROCESOS: Los tiempos de operación ya no serán valores constantes sino variables aleatorias que siguen una distribución de probabilidad teórica (por ejemplo en el caso de ésta práctica tiempos de operación normalmente distribuidas): ___________________________________________________________________ 53 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 7
54 _______________________________________________________________________________________
Entidad Parte Parte Parte
Estación Fresadora Torno Inspección
Operación N(3,.1) N(4,.1) N(1,.1)
Para construir el generador de variables normal sobre la práctica Nº 6 ( por ejemplo: N(3, 0.1) ) siga los siguientes pasos: Activar el registro correspondiente, click en el campo «Operation», borrar el anterior WAIT, click en el botón «Build», escoger WAIT, click en «Build Expresion», click en «Distribution Functions», click en «Normal», click en el valor de la media (3), click en el botón «Std Deviation», click en el valor de la desviación estándar, (0.1), click en el botón «Return», click en el botón «Paste». Nota: El tiempo de la operación quedará como N(3,.1) - para el caso de la fresadora - posteriormente, al correr la simulación el paquete pedirá confirmación para el WAIT implícito, y al final tendremos WAIT N(3,.1). Nota: Construir los demás generadores de igual forma Cuando la Parte entre a la cola de entrada pegar a cada entidad la hora de entrada con el comando CLOCK(). Ésto se hace introduciendo en el campo “Operation” del registro “Parte” a la “Cola_Entrada” la siguiente instrucción: tiempo_entrada = CLOCK(MIN) Nota: Esto se hace haciendo click en el ícono del martillo, dando luego clic en el campo Build Expressions, luego señalando atributos (Attributes) en la ventana de elemento lógicos (logic Elements), seleccionar el atributo tiempo_entrada que aparece a la derecha de la ventana del constructor lógico, dar un espacio en blanco, luego hacer click en el signo =, después en la ventana de los elementos lógicos señalar la opción de todas las funciones (All Functions) y buscar la función CLOCK, colocarle como unidad de tiempo MIN y finalmente Retun y Paste. De esa manera registramos la hora del reloj cuando la entidad pasa por esta lógica, o sea, cuando la entidad entra al sistema. No olvidar en ese mismo campo de operación (como en la práctica #6) también incluir la lógica de enrutamiento (con los corchetes necesarios) de acuerdo con el atributo ( IF clase = 1 then Route 1 else Route 2). Recordar que las entidades ya llegan etiquetadas ya que el atributo les fue colocado en el campo de lógica (Logic) del modulo de llegadas, en el cual debe ___________________________________________________________________ 54 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 7
55 _______________________________________________________________________________________
aparecer: Clase = Distribuc() (ver en la práctica Nº 6 anterior, el numeral 5. MODULO DE LLEGADAS). Posteriormente implementar una bitácora a la hora de salida (en la estación Salida) utilizando el mismo atributo (tiempo_entrada) y la función LOG. Ésto se hace colocando al final del procesamiento por donde pasan las entidades (En Salida, cuando el output es EXIT) la siguiente instrucción: LOG “Tiempo de Ciclo”, tiempo_entrada Nota: para construir la anterior expresión usando el icono del martillo, señalar como categoría “All Statments”, luego buscar la función LOG, en el campo “String” digitar Tiempo de Ciclo y en el campo Value el atributo tiempo_entrada (señalando la categoría “Attributes” en la caja de “Logic elements”), y finalmente click en “Paste”. Como se dijo en la CONCEPTUALIZACIÓN- FUNCIONES CLOCK() y LOG, la función LOG resta del valor del reloj en el momento de la salida del sistema de una entidad el valor del reloj que se le asignó a la entidad al momento de entrar al sistema (tiempo_entrada). Lo anterior da como resultado el tiempo durante el cual la entidad estuvo en el sistema (llamado tiempo de ciclo). Los diferentes tiempos de ciclo se almacenarán en un archivo tipo texto llamado «Tiempo de Ciclo.lap». De los tiempos de ciclo podemos obtener conclusiones, analizando el reporte general de salida (el reporte estadístico), en la sección de bitácoras (Sección al final del reporte encabezada como LOGS). Los tiempos individuales pueden ser graficados utilizando las gráficas de series de tiempos (History Plot). Estando en el Reporte General de Estadísticas dar click en el octavo botón que activa los graficos de tiempo “Choose Statistics for Plot” En este caso, ¿Cuál es el máximo ? ¿Cuál es el mínimo ? ¿Cuál es el promedio ? ¿En qué rango se mueve ese valor ? ¿Cómo se puede explicar la variabilidad de este parámetro ? No olvide grabar este modelo como "PRAC_07.MOD"
___________________________________________________________________ 55 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 8 56 _______________________________________________________________________________________
2.8
PRÁCTICA # 8
Esta práctica introduce la forma de simular tiempos en los cuales la operación de una máquina (estación) debe ser detenida por ejemplo para el mantenimiento preventivo de ella. También es presentada la forma de modelar los turnos de trabajo de una empresa y el despliegue de textos y expresiones numéricas en puntos específicos durante la ejecución de un modelo (comando DISPLAY)
CONCEPTUALIZACIÓN: Tiempos de Parada (Down Times = DT): Se utilizan para simular tiempos durante los cuales la operación de las máquinas debe ser detenida por alguna razón predeterminada (por ejemplo, el mantenimiento preventivo de la maquinaria se puede programar en intervalos regulares de acuerdo a horario preestablecido). Estando en el módulo de Estaciones (Build / Locations columna DT’s -por Down Times-), al dar click en el botón DTs... aparecen las siguientes alternativas: •
Clock = Pausa por Reloj, cuando la parada se inicia según horario preestablecido (Ej: a las 9:15 a.m. hay descanso general en la fábrica)
•
Entry = Pausa por Número de operaciones realizadas (Ej: cada 200 huecos se debe cambiar la broca de un taladro)
•
Usage = Pausa por Utilización efectiva (Ej: siempre que un camión recorra 4.000 Km. se debe hacer un cambio de aceite, o cada que transcurran 2 horas de trabajo se debe hacer un mantenimiento preventivo)
•
Setup = Pausa por tiempo de preparación de una máquina antes de que se utilice por primera vez, o cada que llegue una entidad diferente a hacer algo diferente en la estación.
La lógica (campo Logic…, que se encuentra entrando en el modulo (Build / Locations, y dando click en el botón DTs... ) se ejecuta en el momento de la pausa y puede incluir casi cualquier comando de ProModel, como capturar recursos, comando GET, procesos, comando WAIT y la asignación de valores a variables por mencionar algunos (por ejemplo en el momento de un “Usage downtimes” su lógica podría ser: GET Operador WAIT N(10,.2) FREE Operador). ___________________________________________________________________ 56 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 8 57 _______________________________________________________________________________________
Turnos (Shifts): ProModel permite dar más realismo a un modelo reflejando los turnos de trabajo de las empresas. Permite crear horarios de entrada/salida para cualquier recurso o estación. La especificación de los turnos requiere de tres pasos generales: Definición, Asignación y Ejecución. La Definición de los turnos de trabajo se hace a través de Build / Shifts / Define. Aparecerá el Editor de turnos (Shift Editor) a través del cual se creará un archivo (con extensión .sft) donde se define el turno. A continuación se ilustra un pantallazo como ejemplo.
En este editor hay dos colores, el azul para tiempo de trabajo (en la gráfica anterior corresponde a las zonas mas oscuras), el rojo para tiempo de descanso. Los espacios en blanco se consideran como tiempo no disponible. Se utiliza el procedimiento de “click” y luego “arrastrar el puntero” (en la barra apropiada del día) hasta la hora del día pertinente. Con Edit / Duplicate se puede duplicar la programación de un día. Además, si se da click en la programación de la pausa (el ícono con la taza de café) se activan los tiempos de comienzo y finalización, los cuales se pueden modificar. La Asignación de los turnos de trabajo se hace a través de Build / Shifts / Assign. Los turnos se asignan a las estaciones o a los recursos, haciendo click en la columna de estaciones (Locations) o recursos (Resources). En la ventana de Shift ___________________________________________________________________ 57 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 8 58 _______________________________________________________________________________________
Assignments se presentará el cuadro de diálogo para seleccionar los recursos y estaciones que estarán sujetos a ese turno (ver como ejemplo el siguiente pantallazo).
Para la ejecución de un modelo con turnos, en Simulation / Options dar click en “Define Run Length by Calendar Date” y entrar las fechas y horas apropiadas. Comando DISPLAY Este comando permite hacer una pausa en la simulación y desplegar textos y expresiones numéricas en puntos específicos durante la ejecución de un modelo. Este comando es válido en cualquier lógica. El mensaje que se quiere presentar debe ir entre comillas. Para que la simulación se reanude es necesario dar click en «Aceptar», en el cuadro que aparece en la pausa. ENUNCIADO DE LA PRÁCTICA Nº 8 Para observar el efecto que la tiene la inclusión de tiempos de parada (downtimes) en las estaciones, en el modelo anterior (práctica Nº 7) realizar lo siguiente: a) Correrlo y observar las estadísticas de la fresadora y del torno, para que ésta salidas le sirvan como referencia, cuando se corra el mismo modelo, adicionándoles tiempos de parada a éstas mismas estaciones. b) Ahora si, agrege a las estaciones los tiempos de parada. Entrar los siguientes tiempos de parada tipo “ Usage “, para lo cual entrar por: Build / Locations y click en la columna DT’s hace que aparezca la caja de diálogo para entrar la información sobre downtimes por uso. Con éste mantenimiento preventivo correr nuevamente, observar y comparar las estadísticas de la fresadora y del torno. En la siguiente tabla está resumida la información sobre los tiempos de parada para las estaciones fresadora y torno y parte de la lógica a ser ejecutada durante el tiempo de parada.
___________________________________________________________________ 58 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 8 59 _______________________________________________________________________________________
Estación Fresadora Torno
Frequency 120 100
First time 120 100
Priority 99 99
Logic N(10,.2) N(10,.2)
Los siguientes pantallazos muestran en detalle la información de tiempo de uso para la estación fresadora, y detalles sobre la lógica (campo Logic…) a ser ejecutada durante ésta parada y que será descrita mas adelante en la segunda parte de ésta práctica.
Frequency: Es el tiempo de uso entre los downtimes First time: Es el tiempo en uso antes de la ocurrencia del primer downtime (es decir se usa la Fresadora 120 minutos antes de que se de el primer downtime. Priority: La prioridad del downtime (es entre 0 y 999). La prioridad por defecto es 99 la cual es la prioridad mas alta no preemtitiva. Generalmente los downtime por uso tienden a ser preemtitivos2 y deberían tener valores de prioridad mayores a 100.
2
Preemtitivos: Es el acto de reemplazar una actividad (downtime, entidad ) que esté usando una estación con otra actividad de una prioridad preemtitiva mas alta. Para las estaciones ProModel coloca la actividad que esta siendo reemplazada (una entidad o un downtime) en una lista particular para esa estación hasta que pueda re continuar la actividad en esa estación particular ___________________________________________________________________ 59 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 8 60 _______________________________________________________________________________________
Logic: En este campo se coloca cualquier enunciado lógico a ser procesado cuando ocurra el downtime. Típicamente éste campo contiene expresiones de tiempo representando la duración del downtime. Por ejemplo la expresión USE M1 for N(2.4, .3) colocada en el campo Logic en el renglón de la Fresadora indicaría que el recurso M1 (persona de mantenimiento) será usado para mantenimiento de ella durante los downtime que se dan cada 120 minutos. El tiempo de reparación está normalmente distribuído con una media de 10 minutos y una desviación estándar de 0.2 minutos. Nota_1: No olvidar colocar el comando WAIT para acompañar el tiempo de la reparación. Nota_2: Los downtime por uso (Usage) no son acumulativos. Por ejemplo, si un downtime no ocurre debido a que la prioridad de las entidades que están siendo procesadas sean dos niveles superiores a la prioridad del downtime programado, solo el primer downtime se ejecutará después de procesar las entidades que tengan mayor prioridad, todos los demás downtime son ignorados. Para prepararnos para trabajar con turnos de trabajo, realizar lo que sigue: 1. Crear una nueva estación (Area_descanso, con capacidad 1) que será utilizada por los recursos dinámicos cuando no sean utilizados. Estación Area_descanso 2. Crear los red de rutas para los recursos dinámicos (Ver diagrama mas abajo de la red con 4 nodos).
___________________________________________________________________ 60 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 8 61 _______________________________________________________________________________________
3. Crear interfaces entre los nodos de la red al Area de descanso, a la Fresadora y al Torno. (Ver diagrama mas abajo).
A continuación se presenta el diagrama de red e interfaces: Area_descanso
N1 Cola_Inspección
Fresadora
N2
N3 (Red1)
Torno N4
4. Crear el recurso que va a ir al nodo 1, nodo 2, nodo 3 y nodo 4.
Recordar (releer) Conceptualización sobre Recursos en la práctica #5. Una vez se está en la ventana de Recursos, un click sobre la columna de especificaciones del recurso (Spec..) permite abrir la ventana que contiene la información para de___________________________________________________________________ 61 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 8 62 _______________________________________________________________________________________
finir las características operativas del recurso como: Path Network, Home, Off Shift, Break, Motion
a) Path Network: El nombre de la red a lo largo de la cual se mueve el recurso. b) Home: Si al recurso le ha sido asignado una red, Home es el nombre del nodo en el cual el recurso es posicionado al comienzo de la simulación. c) Off Shift: Si al recurso le ha sido asignado una red y un turno (Shift) éste es el nodo al cual el recurso va cuando no está de turno (cuando termina el turno). d) Break: Si al recurso le ha sido asignado una red y un turno (Shift) éste es el nodo al cual el recurso va cuando está de descanso (Break). Asignar los valores como aparecen en la pantalla anterior. Nota: No olvidar marcar la casilla “volver a casa si está ocioso” (Return Home if idle ). 5. Definir turno de trabajo diario, así: Horario: 8 a.m. – 5 p.m. Descansos: 10:00-10:15 12:00-13:00 15:00-15:15 Días Lunes, Martes, Miércoles, Jueves, Viernes Grabar como: Turno.sft (en h:) Nota: releer la sección Conceptualización de Turnos (Shifts) ___________________________________________________________________ 62 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 8 63 _______________________________________________________________________________________
Nota: una vez creado este turno debe grabarse en alguna parte como: turno.sft, ya que al momento de asignarse a algún recurso (ver paso siguiente) debe darse la dirección de éste archivo. 6. Asignar el turno de trabajo así (releer al inicio de ésta práctica la sección Conceptualización-Asignación de turnos). Build /Shifts/ Assign permite entrar a la ventana de asignación de turnos (Shift Assignments.
Locations: Las estaciones fresadora y torno. (Observe los botones que permiten seleccionar algunos items de una lista ya establecida). Resources: El recurso operador. Shift files: Seleccionar el archivo turno.sft (debió haberse gravado en alguna parte cuando se creo en el paso anterior). Priorities: Aceptar el 99,99,99,99. ___________________________________________________________________ 63 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 8 64 _______________________________________________________________________________________
El primer campo establece la prioridad para terminar un turno (Priority for Ending Shift). El 99 es la prioridad para terminar el turno de manera normal. Una entidad o un downtime debe tener un nivel de prioridad mayor para evitar que la estación o el recurso finalize el turno en el momento originalmente establecido (debe postergar su salida). El segundo campo establece la prioridad para que la estación o el recurso permanezca fuera de turno (Off Shift Priority) una entidad o un downtime deben tener un nivel de prioridad mas alto para obligar a que la estación o el recurso retornen a trabajo antes del tiempo originalmente establecido para ello (debe adelantar su entrada). El tercer campo establece la prioridad para ir de descanso (Priority for Starting Break). Una entidad o un downtime debe tener un nivel de prioridad mayor para evitar que la estación o el recurso vaya a descanso en el momento originalmente establecido para ello (debe postergarlo). El cuarto campo establece la prioridad para que la estación o el recurso permanezca de descanso ( Break Priority). Una entidad o un downtime deben tener un nivel de prioridad mas alto para obligar a que la estación o el recurso retornen al trabajo antes del tiempo originalmente establecido para ello (debe disminuir su período de descanso). Logic: Dejar en blanco 7. Ajuste la lógica de Procesamiento. En la lógica de tiempos de falla en las estaciones (DTs...) utilizar los comandos GET / FREE para capturar el recurso Operador para el mantenimiento, en ambas máquinas. Nota_1: Entre GET y FREE debe quedar el tiempo de utilización. Vea el caso del torno como ejemplo: Nota_2: Utilizar el comando DISPLAY para notificar al usuario cuando el operador comience el correspondiente mantenimiento preventivo.
___________________________________________________________________ 64 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 8 65 _______________________________________________________________________________________
8. Ejecución del Modelo. Para ejecutar este modelo que contiene turnos, por Simulation / Options hacer que este modelo corra únicamente por un día de 8 a.m. a 5:00 p.m. Nota_1: Defina la longitud de la corrida de la simulación por fecha de calendario (Calendar Date). Nota_2: Entrar igual la fecha de inicio del calentamiento e inicio de la simulación, (Warmup Start y Sim. Begin). No olvide grabar este modelo como "PRAC_08.MOD, luego correr el modelo y comparar los resultados con los obtenidos en la práctica Nº 7anterior.
___________________________________________________________________ 65 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICAS de Simulación Nº 9 y N° 10 66 _______________________________________________________________________________________
2.9
PRÁCTICAS # 9 y # 10
Las oficinas de una institución de educación informal, en la época de matrículas, tienen la siguiente distribución: SALIDA
ENTRADA
SALA DE ESPERA
OFICINA PRIMIPAROS
RECEPCION LINEA DE RECEPCION
OFICINA ANTIGUOS
RECTORIA OFICINA REPITENTES
Esta práctica pretende hacer un repaso de todo lo estudiado durante el semestre, a la vez que se aprenderán nuevos conceptos, con el objetivo de acreditar un conocimiento a nivel básico del paquete de ProModel. Vamos a elaborar el modelo en diferentes etapas.
___________________________________________________________________ 66 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICAS de Simulación Nº 9 y N° 10 67 _______________________________________________________________________________________
2.9.1 PRIMERA ETAPA: Seguir los siguientes pasos: Entrar al Módulo de Información General, cambiar unidades de distancia a metros y escoger la biblioteca gráfica SVCMOD2.GLB. Escriba un título apropiado. Antes de entrar al Módulo de Estaciones, vamos a importar los planos del edificio de esta institución de educación. Con otra aplicación (por ejemplo Autocad) se han elaborado dos archivos (llamados Oficina1 y Oficina2). Para ello, click en Build/Background Graphics/Behind Grid. Luego en Edit/Import Graphic/Oficina1 (Nota: es posible que tenga que navegar para encontrar el archivo Oficina1. Pregunte al profesor) Usted observará en la ventana de Layout parte del diseño que necesitamos. Importe ahora el archivo Oficina2. Siempre que se importe un gráfico quedará colocado en la esquina superior izquierda de la ventana de Layout, por tanto utilice el ratón para arrastrar el gráfico importado al lugar de la Oficina de Primíparos. Repita para la Oficina de Antiguos y la Oficina de Repitentes. Ahora que tenemos un fondo para nuestra simulación, podemos entrar al Módulo de Estaciones. En la tabla que aparece a continuación está la información necesaria para este módulo. Usted deberá escoger el botón “Región” para las estaciones de Entrada y Salida. Recuerde que el botón “Región” no coloca físicamente ningún ícono en el Layout, pero ya tiene incorporado el “Lugar de la Entidad”. Edite la Línea de Recepción en tal forma que sea una línea, invisible durante la simulación, longitud de 10 metros, con capacidad de 5. La Sala de Espera tendrá 7 sillas repartidas apropiadamente, deberá ser creada con un ícono que represente a una silla (repetida 7 veces, pero recuerde desactivar botón NEW) y deberá asignársele un contador que muestre la cantidad de estudiantes que en su momento estén esperando a ser atendidos. En cada silla coloque un lugar para entidad. Para la Recepción, Oficina de primíparos, Oficina de antiguos, Oficina de repitentes y Rectoria utilice el ícono de un escritorio que tiene encima un computador. Coloque nombres a las estaciones (en color rojo) y lugares para las entidades. Note la capacidad infinita para las estaciones Entrada y Salida.
___________________________________________________________________ 67 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICAS de Simulación Nº 9 y N° 10 68 _______________________________________________________________________________________
NAME Entrada Salida Linea_Recep Sala_Espera Recepcion Ofic_Primip Ofic_Antig Ofic_Repit Rectoria
CAP. Inf Inf 5 7 1 1 1 1 1
UNITS 1 1 1 1 1 1 1 1 1
STATS Time Series Time Series Time Series Time Series Time Series Time Series Time Series Time Series Time Series
RULES Oldest Oldest Oldest Oldest Oldest Oldest Oldest Oldest Oldest
Para el Módulo de Entidades sólo considerar al estudiante. Deberá quedar así (el ícono del estudiante debe ser proporcional al tamaño de las sillas): NAME Estud
SPEED (mpm) 50
STATS Time Series
A continuación, en el Módulo de Procesos, entrar la información de la siguiente tabla. Como Ud. observará, un estudiante entra al sistema a través de la estación Entrada, de allí va a la Línea_Recepción, desde donde pasa a la estación Recepción. Allí tiene una conversación con una secretaria. Esta conversación tiene una duración que sigue una distribución Normal con media 2 minutos y desviación estándar de 0.3 minutos. De allí pasa a la Sala de Espera, donde toma uno de los 7 asientos disponibles, y donde esperará hasta que pueda seguir a la siguiente estación. Note que no hay tiempo de espera en la Sala de Espera. Un 30% de los estudiantes debe pasar a la Oficina de Primíparos, otro 30% a la Oficina de Antiguos y el restante 40% a la Oficina de Repitentes. Se muestran los correspondientes tiempos para las diferentes oficinas, los que siguen distribuciones normales. De cada oficina el estudiante pasa a la estación Salida, y de allí sale del sistema. Note también los correspondientes tiempos constantes de movimiento entre estaciones. ENTITY Estud Estud Estud Estud
LOCATION Entrada Linea_Recep Recepcion Sala_Espera
OPERATION
Estud Estud Estud Estud
Ofic_Primip Ofic_Antig Ofic_Repit Salida
WAIT N(20,5) WAIT N(15,3) WAIT N(12,3)
WAIT N(2,.3)
Blk 1 1 1 1
1 1 1 1
OUTPUT Estud Estud Estud Estud Estud Estud Estud Estud Estud Estud
DESTINATION Linea_Recep Recepcion Sala_Espera Ofic_Primip Ofic_Antig Ofic_Repit Salida Salida Salida EXIT
RULE FIRST 1 FIRST 1 FIRST 1 0.3 0.3 0.4 FIRST 1 FIRST 1 FIRST 1 FIRST 1
MOVE LOGIC MOVE FOR .5 MOVE FOR 0 MOVE FOR .1 MOVE FOR .3 MOVE FOR .2 MOVE FOR .3 MOVE FOR .2 MOVE FOR .3 MOVE FOR .4
___________________________________________________________________ 68 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICAS de Simulación Nº 9 y N° 10 69 _______________________________________________________________________________________
Para el Módulo de Llegadas tener en cuenta lo siguiente: Un estudiante entra al sistema a través de la estación Entrada, en grupos de uno, el primer estudiante llega en el tiempo cero de simulación, se espera que llegarán 50 estudiantes, y que el tiempo entre llegadas de dos estudiantes consecutivos sigue una distribución exponencial con media de 10 minutos. Por tanto, para el Módulo de Llegadas entrar la siguiente información: ENTITY Estud
LOCATION Entrada
QTY EACH 1
FIRST TIME 0
OCCURRENCES FREQUENCY 50 E(10)
Al correr la simulación debe observar los siguientes detalles (entre otros): No se entra ningún tiempo para finalizar la corrida. La simulación terminará en el momento en que hayan ingresado 50 estudiantes al sistema (Debe entenderse bien el significado de E(10) en el campo Frecuency. Si el tiempo entre llegadas fuera constante de 10 minutos, se tardaría unos 490 minutos para que ingresaran los 50 estudiantes, pero en este caso, el tiempo entre llegadas es variable. ¿Cuánto dura su simulación?) Si un estudiante llega y la cola en la Línea de Recepción está saturada (su capacidad es de 5 estudiantes), debe quedar en espera en la estación de Entrada (la cual tiene capacidad infinita), pero este estudiante no se retira sin entrar al sistema. La estación de Rectoría no ha sido utilizada aún. El ícono de la cola no es visible en la simulación. Los estudiantes toman asiento en las sillas de la Sala de Espera. Ahora, en el Módulo de Llegadas, cambiar Frequency por E(5), correr el modelo y observar lo que sucede. Después, vuelva a dejar E(10) 2.9.2 SEGUNDA ETAPA: Para esta segunda etapa vamos a agregar una red que llamaremos “Aaa”, la cual debe tener las siguientes características:
___________________________________________________________________ 69 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICAS de Simulación Nº 9 y N° 10 70 _______________________________________________________________________________________
SALA DE ESPERA
N11
SALIDA ENTRADA N13 N1 N2 OFICINA PRIMIPAROS N3
N18
RECEPCION N12 N4 LINEA DE N16 RECEPCION N10 N9 N6 N14
OFICINA ANTIGUOS N5
RECTORIA N7 N15
OFICINA REPITENTES N8
N17
Para ello (estando en el módulo de Redes de Rutas): Dar doble click al botón Graphic, y escoger color rojo y no visible en la simulación. En el campo Name entrar la palabra Aaa. Dar un click en el botón Type. Las dos opciones, Non-Passing y Passing, significan, respectivamente, que las entidades o recursos que circulen por la red deben hacer cola (o no hacer cola) detrás de otras entidades o recursos. En este caso, escoger Passing. Dar un click en el botón T/S. Corresponde a las opciones ‘Time’ y ‘Speed & Distance’ como base para el movimiento a lo largo de la red. En este caso, escoger Speed & Distance. ___________________________________________________________________ 70 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICAS de Simulación Nº 9 y N° 10 71 _______________________________________________________________________________________
Dar click en el botón Paths para activar la ventana en la cual quedarán las rutas de la red. Quedarán registradas a medida que se vaya creando la red en el Layout. Al final, deberá quedar así (Nota: sus valores de Distancias pueden ser un poco diferentes. Trate de ubicar los Nodos como aparece en el dibujo anterior. Bi=Bidireccional): PATHS FROM N1 N2 N2 N4 N4 N6 N7 N6 N9 N10 N11 N12 N9 N10 N14 N14 N14 N16 N16
TO N2 N3 N4 N5 N6 N7 N8 N9 N10 N11 N12 N10 N13 N14 N12 N15 N16 N17 N18
BI Bi Bi Bi Bi Bi Bi Bi Bi Bi Bi Bi Bi Bi Bi Bi Bi Bi Bi Bi
DISTANCE 1.30 13.30 12.70 11.80 5.00 10.50 12.30 3.90 5.50 21.70 10.90 16.00 17.70 7.30 10.60 8.10 15.00 26.80 14.70
Dar click en el botón Interfaces para activar la ventana en la cual quedarán las interfaces de la red. Quedarán registradas a medida que se vayan creando. Al final, deberá quedar así (Nota: Tal vez es más fácil si da click en el botón Node y selecciona el nodo correspondiente, luego click en el botón Location y seleccione la estación correspondiente): INTERFACES NODE N1 N13 N3 N5
LOCATION Entrada Salida Ofic_Primip Ofic_Antig
NODE N8 N10 N12 N11
LOCATION Ofic_Repit Linea_Recep Recepcion Sala_Espera
Al finalizar este módulo, la correspondiente ventana de edición deberá quedar así: ___________________________________________________________________ 71 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICAS de Simulación Nº 9 y N° 10 72 _______________________________________________________________________________________
GRAPHIC NAME Aaa
TYPE Passing
T/S Speed & Distance
PATHS 19
INTERFACES 8
MAPPING NODES 0 18
Vamos a agregar también el recurso llamado Secretaria. Después de entrar al módulo de Recursos, escoger un ícono apropiado, editarlo para que su tamaño sea proporcional al de los íconos de los gráficos utilizados en el Layout, luego en el campo Name entrar Secre, dar click al botón Specs, en el cuadro de diálogo correspondiente asignar la Secre a la Red Aaa, el Nodo N12 como Nodo Home, activar la casilla de regreso a casa si el recurso está ocioso (Return Home if Idle) y asegurarse de que las velocidades (Empty y Full) sean de 50 mpm. En esta segunda etapa, en el Módulo de Llegadas, en el campo Occurrences colocar Inf. Entonces, para controlar el tiempo que dure la simulación, click en Simulation/Options, entrar 9 en el campo de horas de simulación. Además, coloque la precisión del reloj en 0.01. Deseamos controlar el número de estudiantes que en cualquier momento están en el sistema, y el número de estudiantes que han sido atendidos (o sea, que han salido del sistema). Para ello, en el Módulo de Background Graphics, Behind Grid, entrar en lugares apropiados los textos “Estudiantes en proceso de matrícula” y “Estudiantes matriculados”. Luego en el módulo de Variables, entrar lo siguiente: ICON Yes Yes
ID Dentro Matricul
TYPE Integer Integer
INITIAL VALUE 0 0
STATS Time Series Time series
Ahora, revise el Módulo de Procesos para que tenga lo siguiente (analice e interprete la lógica correspondiente): ENTITY Estud Estud Estud
LOCATION
OPERATION
Blk
Entrada Linea_Recep Recepcion
INC Dentro
1 1 1
Estud
Sala_Espera
Estud
Ofic_Primip
USE Secre FOR N(2,.3)
1
WAIT N(.5,.2) FREE Secre WAIT N(20,5)
1
OUTPUT Estud Estud Estud
DESTINATION
RULE
MOVE LOGIC
Linea_Recep Recepcion Sala_Espera
FIRST 1 MOVE ON Aaa FIRST 1 MOVE FOR 0 FIRST 1 MOVE ON Aaa
Estud Estud Estud Estud
Ofic_Primip Ofic_Antig Ofic_Repit Salida
0.3 0.3 0.4 FIRST 1
MOVE WITH Secre MOVE WITH Secre MOVE WITH Secre MOVE ON Aaa
___________________________________________________________________ 72 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICAS de Simulación Nº 9 y N° 10 73 _______________________________________________________________________________________
Estud
Ofic_Antig
Estud
Ofic_Repit
Estud
Salida
WAIT N(.5,.2) FREE Secre WAIT N(15,3) WAIT N(.5,.2) FREE Secre WAIT N(12,3)
1
Estud
Salida
FIRST 1 MOVE ON Aaa
1
Estud
Salida
FIRST 1 MOVE ON Aaa
1
Estud
EXIT
FIRST 1 DEC Dentro INC Matricul
Observaciones sobre algunos de los cambios: MOVE ON (válido únicamente en Move Logic) se utiliza para mover una entidad a lo largo de una de las rutas de la red de rutas. Por eso, aparece en varias partes del modelo. USE captura un recurso. Una vez que ha sido capturado, la entidad lo utiliza por la cantidad especificada de tiempo, y cuando este tiempo termina, el recurso es liberado. En este ejemplo es equivalente a las siguientes tres instrucciones: GET Secre, WAIT N(2,.3) y FREE Secre (Nota: USE Secre FOR N(2,.3) debe ir en un solo renglón). MOVE WITH (válido únicamente en Move Logic) se utiliza para mover una entidad utilizando el recurso designado. Observe en este ejemplo cómo el estudiante y la secretaria llegan juntos a una de las oficinas, allí ambos realizan alguna actividad que dura N(.5,.2), tal vez revisando papeles, y luego la secretaria queda libre. El estudiante tiene en seguida otra espera charlando con el Jefe de la Oficina (que no ha sido aún introducido como otro recurso). Note que, al moverse con la Secretaria, el estudiante necesariamente debe hacerlo a través de la red Aaa, por tanto allí no necesita la instrucción MOVE ON (La Secretaria sólo se puede mover por la Red Aaa).
2.9.3 TERCERA ETAPA: En esta tercera etapa se debe adicionar lo suficiente para cumplir el siguiente requerimiento: No todos los estudiantes que llegan a las tres oficinas (primíparos, antiguos y repitentes) son atendidos plenamente, sino que algunos tienen algunas situaciones especiales que deben ser resueltas por el Rector, pero ésto sólo se viene a conocer en la oficina respectiva. ___________________________________________________________________ 73 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICAS de Simulación Nº 9 y N° 10 74 _______________________________________________________________________________________
Se sabe que el 5% de los primíparos, el 10% de los antiguos y el 15% de los repitentes están en esta situación especial. Como la visita a Rectoría viene después de la charla en la oficina, utilizaremos un atributo que llamaremos “Especial”, el cual tendrá dos valores: Uno, cuando el estudiante entra al sistema, donde se supone que no tendrá que ir a rectoría, y Dos, cuando el estudiante es despachado desde la oficina respectiva a hacer nuevamente cola en la Línea de Recepción, desde donde pasará a Recepción, y de allí irá, acompañado de la secretaria, a la Rectoría. En la Rectoría con la secretaria también revisará sus papeles, y después de ser atendido por el Rector (tiempo uniforme entre 5 y 25 minutos) irá directamente a la Salida. Además, se quiere tener una bitácora (o sea un registro) de los tiempos que requieren los estudiantes dentro del sistema. Para ello utilizaremos otro atributo, que llamaremos “Ciclo”. Por tanto: En el Módulo de Redes de Rutas agregar una interface entre el nodo N15 y la estación Rectoría. Las interfaces deberán quedar así: INTERFACES NODE N1 N13 N3 N5 N8 N10 N12 N11 N15
LOCATION Entrada Salida Ofic_Primip Ofic_Antig Ofic_Repit Linea_Recep Recepcion Sala_Espera Rectoria
El Módulo de Atributos deberá quedar así: ID Especial Ciclo
TYPE Integer Real
CLASSIFICATION Entity Entity
Nota: Los atributos se clasifican en atributos de entidades y atributos de estaciones. En este ejemplo, estos atributos (que son valores numéricos) se “pegan” como unas etiquetas a los estudiantes. El atributo “Especial” es de tipo entero, ya que sólo tomará los valores 1 o 2, en el módulo de procesos (que viene a continuación) se programará la toma de estos valores sin utilizar ninguna distribución ___________________________________________________________________ 74 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICAS de Simulación Nº 9 y N° 10 75 _______________________________________________________________________________________
de usuario. Recuerde que el atributo que se utilice para llevar la bitácora de los tiempos de ciclo debe ser de tipo real. El módulo de procesos deberá quedar como aparece a continuación. Realice los cambios pertinentes y reflexione sobre ellos: ENTITY Estud
LOCATION
OPERATION
Entrada
INC Dentro Especial=1 Ciclo=CLOCK()
Estud Estud
Linea_Recep Recepcion
Estud
Sala_Espera
Estud
Ofic_Primip
Estud
Estud
Ofic_Antig
Ofic_Repit
Estud
Rectoria
Estud
Salida
USE Secre FOR N(2,.3) IF Especial=2 THEN ROUTE 2 ELSE ROUTE 1 WAIT N(.5,.2) FREE Secre WAIT N(20,5)
Blk OUTPUT 1 Estud
DESTINATION
RULE
Linea_Recep
FIRST 1 MOVE ON Aaa
1 1
Estud Estud
Recepcion Sala_Espera
FIRST 1 MOVE FOR 0 FIRST 1 MOVE ON Aaa
1
Estud Estud Estud Estud Estud
Ofic_Primip Ofic_Antig Ofic_Repit Rectoria Salida
0.3 0.3 0.4 FIRST 1 0.95
MOVE WITH Secre MOVE WITH Secre MOVE WITH Secre MOVE WITH Secre MOVE ON Aaa
Estud
Linea_Recep
0.05
Estud
Salida
0.90
Especial=2 MOVE ON Aaa MOVE ON Aaa
Estud
Linea_Recep
0.10
Estud
Salida
0.85
Estud
Linea_Recep
0.15
2 1
WAIT N(.5,.2) FREE Secre WAIT N(15,3)
1
WAIT N(.5,.2) FREE Secre WAIT N(12,3)
1
WAIT N(.5,.2) FREE Secre WAIT U(15,10)
1
Estud
Salida
1
Estud
EXIT
MOVE LOGIC
Especial=2 MOVE ON Aaa MOVE ON Aaa
Especial=2 MOVE ON Aaa FIRST 1 MOVE ON Aaa
FIRST 1 DEC Dentro INC Matricul LOG “Ciclo”,Ciclo
Agregue lo necesario para que en la simulación se pueda observar el número de estudiantes que llegan a Rectoría, y el tiempo que el Rector demora atendiéndolos. ( Nota: esta parte no está en estas conferencias. Recuerde sus conceptos de adquiridos en las informáticas ). Al finalizar la simulación, revise “completamente” el reporte de salida e interprete sus resultados
___________________________________________________________________ 75 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICAS de Simulación Nº 9 y N° 10 76 _______________________________________________________________________________________
2.9.4 CUARTA ETAPA: Aquí vamos a adicionar conceptos relacionados con los Tiempos de Parada (Downtimes). Un Tiempo de Parada detiene la operación de una estación o de un recurso. Los Tiempos de Parada pueden representar interrupciones programadas, tales como turnos de trabajo, descansos o mantenimiento preventivo programado. También pueden utilizarse para representar interrupciones aleatorias o no programadas, tales como fallas en la maquinaria. En nuestra práctica, vamos a suponer que el Rector ha decidido que no atiende estudiantes (sino que se dedica a otras funciones) de 2 a 2:30 p.m. Para lograr ésto, estando en el Módulo de Estaciones, activar el registro de Rectoría, y luego dar click al botón DTs. Del menú presentado (Clock, Entry, Usage, Setup) escoger Clock. Llenar la ventana de Tiempos de Parada para la Rectoría tal como aparece a continuación: FREQUENCY 24 hr
FIRST TIME 6 hr
PRIORITY 99
SCHEDULED Yes
LOGIC WAIT 30
DISABLE No
En el campo Frequency (el tiempo entre dos paradas sucesivas) nos dice que se hace diariamente. Note que como la unidad de tiempo escogida en el Módulo de Información General fue el minuto hay que especificar el cambio de unidad a hr. En el campo First Time se ingresa el tiempo de ocurrencia de la primera parada. Hay un dato que no se ha presentado, y es que el turno de trabajo va de las 8 a.m. a las 5 p.m. En el campo Priority aceptar el valor sugerido de 99. El campo Scheduled sugiere el valor No, pero en nuestro caso vamos a entrar Yes, ya que el Tiempo de Parada de la Rectoría va a ser considerado como una parada programada. Esto se reflejará en las estadísticas de salida, ya que las paradas programadas serán deducidas del total de horas programadas reportadas en las estadísticas de salida, y no serán consideradas en los cálculos de porcentajes, etc. En el campo Logic se entrarán las instrucciones que deberán ejecutarse cuando se presente la parada. Si se da click en el botón Logic aparecerá otra ventana para escribir algunas instrucciones de programación (Similar al campo Operation del Módulo de Procesos) ___________________________________________________________________ 76 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICAS de Simulación Nº 9 y N° 10 77 _______________________________________________________________________________________
En el campo Disable dejar el valor sugerido No. (Si se escogiera Yes, lo programado en esta parada no se lleva a cabo) Ahora, vamos a considerar otra adición a nuestro modelo, la correspondiente a los Turnos de Trabajo. Normalmente los turnos de trabajo implican unos tiempos de parada, pero se trabajan por separado, ya que se consideran como tiempos de descanso. Vamos a suponer que en nuestro caso hay tres turnos de trabajo (de lunes a viernes), así: TurnoA: De 8 a.m. a 5 p.m. con tres descansos, de 10 a 10:15, de 12 a 12:30 y de 2 a 2:15. TurnoB: De 8 a.m. a 5 p.m. con un descanso de 11:30 a 12:30 TurnoC: De 8 a.m. a 5 p.m. con un descanso de 12 a 1. Recuerde que los Turnos de Trabajo implican dos acciones: Su definición y su asignación. Para nuestro caso, asignar el TurnoA a la Recepción, el TurnoB a las Oficinas de Primíparos y Antiguos y el Turno C a la Oficina de Repitentes y a la Rectoría. Además, asignar el recurso Secre al TurnoA (debe quedar en un renglón separado de la tabla de edición). Después de definir y asignar Turnos de Trabajo hay que programarlos dando click en Simulation/Options. En el cuadro de diálogo que aparece (donde se habían programado 9 horas de simulación) dar click en la casilla Define Run Length by date (Definir la longitud de la corrida por fechas). En este momento aparecen tres botones (Warm Up, Begin y End). Entrar datos en tal forma que Warm Up y Begin sean lo mismo, y que cubran un día de trabajo desde las 8 a.m. hasta las 5 p.m. (Note que no se tiene tiempo de calentamiento). Las interrupciones para descanso de este caso también generan un pequeño cambio en el Módulo de Recursos. Entrar allí, dar click en el botón Specs y asignar el nodo N18 en las casillas Off Shift (Fin del Turno) y Break (Parada) (Observe que la Rectoría tiene tiempo de parada y tiempo de descanso) Cuando en un modelo se introducen interrupciones (por ejemplo, tiempos de parada o turnos de trabajo) se presentan problemas en el flujo de las entidades por el sistema, ya que algunas entidades tendrán que esperar hasta que se restablezca el trabajo normal. El comando BACKUP se puede utilizar para enrutar a las enti___________________________________________________________________ 77 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICAS de Simulación Nº 9 y N° 10 78 _______________________________________________________________________________________
dades hacia un lugar diferente del que estaban destinadas cuando una estación deja de atender por una interrupción. Este comando BACKUP sólo funciona en el campo Rules del Módulo de Procesos, se colocará como último registro dentro de un Bloque y se interpretará como el movimiento de la entidad cuando no pueda ir al destino programado en los registros anteriores (dentro del bloque) debido a una interrupción. En la tabla que aparece más adelante (la correspondiente al Módulo de Procesos) se encuentran algunos comandos BACKUP. Ud. debe reflexionar sobre ellos e interpretar sus significados). Antes de presentar el nuevo Módulo de Procesos vamos a comunicar otro pequeño cambio, y es el referente al tiempo que utiliza el Rector para atender a un estudiante, el cual en la etapa anterior seguía una distribución Uniforme entre 5 y 25 minutos. En este caso vamos a cambiarlo por una distribución de usuario, que llamaremos T_Rector. Supongamos que de un estudio estadístico previo hemos llegado a la conclusión de que el tiempo que el Rector demora atendiendo a un estudiante sigue la siguiente distribución de probabilidad, y que cada valor de tiempo en realidad representa un intervalo de tiempo (para poder considerar al tiempo como una variable continua): TIEMPO (min) 5 8 10 12 15
PROBABILIDAD .10 .20 .30 .30 .10
Si graficáramos esta distribución de probabilidad no se vería que el histograma pudiera suavizarse con ninguna distribución teórica, por lo cual debemos entrarla como una distribución empírica. Recordando que internamente el computador realiza un proceso de muestreo Montecarlo para generar observaciones que sigan alguna distribución determinada, vamos a introducir esta distribución en forma acumulada (aunque no es necesario). Para ello, entrar al módulo de Distribuciones de Usuario y llenar la siguiente ventana de edición: ID T_Rector
TYPE Continuous
CUMULATIVE Yes
TABLE Defined
Y la tabla correspondiente sería de la siguiente forma: PERCENTAJE 0 10
VALUE 0 5
___________________________________________________________________ 78 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICAS de Simulación Nº 9 y N° 10 79 _______________________________________________________________________________________
30 60 90 100
8 10 12 15
(Note que el primer punto es 0,0) Ahora, Ud. debe entrar al Módulo de Procesos y realizar los cambios necesarios para que luzca como aparece a continuación. Además, a la luz de los nuevos conceptos presentados, Ud. debe reflexionar sobre el significado de los cambios realizados (algunos no comentados aquí): ENTITY Estud
LOCATION
OPERATION
Entrada
INC Dentro Especial=1 Ciclo=CLOCK()
Estud
Linea_Recep
Estud
Recepcion
Estud
Sala_Espera
USE Secre FOR N(2,.3) IF Especial=2 THEN ROUTE 2 ELSE ROUTE 1
Blk OUTPUT 1 Estud
DESTINATION Linea_Recep
RULE
MOVE LOGIC
FIRST 1
MOVE ON Aaa
1
Estud Estud Estud
Recepcion Sala_Espera Sala_Espera
FIRST 1 BACKUP FIRST 1
MOVE FOR 0 MOVE ON Aaa MOVE ON Aaa
Estud Estud Estud Estud Estud Estud Estud Estud Estud
Ofic_Primip Salida Ofic_Antig Salida Ofic_Repit Salida Rectoria Salida Salida
0.3 BACKUP 0.3 BACKUP 0.4 BACKUP FIRST 1 BACKUP 0.95
MOVE WITH Secre MOVE ON Aaa MOVE WITH Secre MOVE ON Aaa MOVE WITH Secre MOVE ON Aaa MOVE WITH Secre MOVE ON Aaa MOVE ON Aaa
Estud
Linea_Recep
0.05
Estud
Salida
0.90
Especial=2 MOVE ON Aaa MOVE ON Aaa
Estud
Linea_Recep
0.10
Estud
Salida
0.85
Estud
Linea_Recep
0.15
1 1
2 Estud
Estud
Estud
Ofic_Primip
Ofic_Antig
Ofic_Repit
Estud
Rectoria
Estud
Salida
WAIT N(.5,.2) FREE Secre WAIT N(20,5)
1
WAIT N(.5,.2) FREE Secre WAIT N(15,3)
1
WAIT N(.5,.2) FREE Secre WAIT N(12,3)
1
WAIT N(.5,.2) FREE Secre WAIT T_Rector
1
Estud
Salida
FIRST 1
1
Estud
EXIT
FIRST 1
Especial=2 MOVE ON Aaa MOVE ON Aaa Especial=2 MOVE ON Aaa MOVE ON Aaa DEC Dentro INC Matricul LOG “Ciclo”,Ciclo
(Nota: El WAIT T_Rector que aparece en el penúltimo registro debe adaptarse por la exigencia hecha en la etapa anterior de presentación de tiempos de Rectoría) Para terminar esta cuarta etapa, vamos a realizar otro cambio referente a las llegadas de los estudiantes al sistema: ___________________________________________________________________ 79 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICAS de Simulación Nº 9 y N° 10 80 _______________________________________________________________________________________
Recuerde que en el campo Frequency del Módulo de Llegadas se debe entrar el tiempo entre llegadas. Hasta ahora hemos supuesto que el tiempo entre llegadas para cualquier par de estudiantes sigue una distribución exponencial con media de 10 minutos. También se ha supuesto que la cantidad de estudiantes que llega en cada tiempo de llegada es uno. Ahora vamos a cambiar esta suposición. La suposición de llegada de un estudiante cada vez no es muy realista. Mejor, podemos suponer que los estudiantes llegan en paquetes. Estos paquetes serán variables, o sea que tenemos que utilizar una distribución probabilística. El software que estamos estudiando permite simular la llegada de cantidades variables de entidades al sistema. Esto se hace entrando un Ciclo de Llegadas en el campo de Qty Each. En este caso, el campo Frequency representará el tiempo entre el comienzo de dos ciclos diferentes de llegadas, y el campo Occurrences representará el número de veces que se repite el ciclo de llegadas. Entonces, en esta etapa vamos a ingresar un Ciclo de Llegadas, que llamaremos “Lleg_Estud”, de la siguiente forma: Click en Build/More Elements/Arrival Cycles. Llenar la Ventana de Edición correspondiente de la siguiente manera: ID Lleg_Estud
QTY / % Percent
CUMULATIVE Yes
TABLE Defined
Y la tabla como aparece a continuación: TIME (HOURS) 2 4 5 7 9
VALUE 10 30 60 90 100
Ahora vamos al Módulo de Llegadas y arreglamos para que luzca así: ENTITY Estud
LOCATION Entrada
QTY EACH 1; Lleg_Estud
FIRST TIME 0
OCCURRENCES FREQUENCY LOGIC 1 24 Hr
Nota: Al dar click en el botón Qty Each aparecerá un cuadro de diálogo donde se dará click en el Ciclo de Llegadas “Lleg_Estud”. Luego coloque el 1 a la izquierda. Oprima F10 para realizar una corrida de ensayo. Observe allí el movimiento de la secretaria al Nodo N18 cuando está en descanso. Además observe cómo sólo entra un estudiante (fue generado por muestreo Montecarlo en la distribución ___________________________________________________________________ 80 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICAS de Simulación Nº 9 y N° 10 81 _______________________________________________________________________________________
Lleg_Estud), y cómo la simulación se detiene cuando este único estudiante sale del sistema. Ahora, ensayemos con el ingreso de dos estudiantes. Cambie el Módulo de Llegadas para que luzca como aparece a continuación y luego oprima F10. ENTITY Estud
LOCATION Entrada
QTY EACH 2; Lleg_Estud
FIRST TIME 0
OCCURRENCES FREQUENCY LOGIC 1 24 Hr
Ahora, simulemos la llegada de 50 estudiantes. El Módulo de Llegadas debe lucir como aparece a continuación: ENTITY Estud
LOCATION Entrada
QTY EACH 50; Lleg_Estud
FIRST TIME 0
OCCURRENCES FREQUENCY LOGIC 1 24 Hr
Alerta: La introducción de las interrupciones y del comando BACKUP han cambiado el sentido que se tenía anteriormente para el conteo de los estudiantes que se han matriculado. Recuerde que, de acuerdo a nuestra lógica, cada vez que un estudiante abandona el sistema se incrementa la variable de estudiantes matriculados. Pero ahora, algunos estudiantes salen del sistema sin ser matriculados. Ésto se va a arreglar en la quinta etapa. 2.9.5 QUINTA ETAPA: Debe haber notado que algunos estudiantes salen del sistema sin ser matriculados. En ésta quinta etapa resuelva el problema mencionado, y corra de nuevo la simulación. Además, supongamos que el Rector decide, temporalmente, suspender su parada programada de 30 minutos, pero se quiere dejar programada para un futuro.Para realizar esto debe entrar al Módulo de Estaciones, activar el registro de Rectoría, dar click al botón DTs, y en la ventana que aparece dar click en el botón Scheduled y escoger No. La ventana correspondiente debe lucir así: FREQUENCY 24 hr
FIRST TIME 6 hr
PRIORITY 99
SCHEDULED No
LOGIC WAIT 30
DISABLE No
___________________________________________________________________ 81 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 11 82 ____________________________________________________________________________________
2.11
PRÁCTICA # 11 NÚMERO DE CORRIDAS Y PERÍODO DE CALENTAMIENTO.
En esta práctica ilustraremos la forma de estimar la cantidad de tiempo necesario de calentamiento (warm up period) de un sistema y el número de corridas independientes necesarias para estimar un parámetro con un error de estimación, E, y un nivel de confianza, Z, dado. Haremos uso de un modelo simplificado de una compañía manufacturera como el que se muestra en la figura 11.1.
Figura 11.1.La Compañía Manufacturera de 4 máquinas. El tiempo entre llegadas de los pedidos es constante e igual a 1.17.5 minutos. Los pedidos requieren procesarse en cada una de las cuatro Almacenamientos. Los tiempos de procesamiento para cada pedido en cada una de las cuatro máquinas están dados en la Tabla 11.1. Actividad Máquina 1 Máquina 2 Máquina 3 Máquina 4
Tiempo de proceso (min) Exponencial con media=1.0 Weibull con mínimo = 0.10, α=5 β=1 Weibull con mínimo = 0.25, α=5 β=1 Weibull con mínimo = 0.25, α=5 β=1
Formato ProModel Wait E(1.0) min Wait (0.10 + W(5,1)) min Wait (0.25 + W(5,1)) min Wait (0.25 + W(5,1)) min
Tabla 11.1. Tiempos de procesamiento en la Compañía Manufacturera Hay disponible suficiente capacidad de almacenamiento para los trabajos que deben esperar al frente de cada una de las cuatro Máquinas (Almacenamiento 1, 2, 3 y 4 capacidad infinita). El objetivo de la práctica es adelantar una simulación no terminante para estimar la cantidad promedio de trabajos en proceso (WIP-inventario), es decir el número esperado de trabajos en el sistema durante el estado estable. La figura 11.2 muestra el listado del programa para modelar la compañía manufacturera. ________________________________________________________________ 82 ___ FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICA de Simulación Nº 11 83 ____________________________________________________________________________________
Estaciones Name Cap Units Stats Rules Cost ---------- --- ----- ----------- ---------- -----------Almacenamiento1 inf 1 None Oldest, , Máquina1 1 None Oldest, , Almacenamiento2 inf 1 None Oldest, , Máquina2 1 None Oldest, , Almacenamiento3 inf 1 None Oldest, , Máquina3 1 None Oldest, , Almacenamiento4 inf 1 None Oldest, , Máquina4 1 None Oldest, , Entities * ******************************************************************************** Name Speed (fpm) Stats Cost ---------- ------------ ----------- -----------Trabajo 150 Basic ******************************************************************************* * Processing * ******************************************************************************** Process Routing Entity Location Operation Blk Output Destination Rule Move Logic -------- ---------- ------------------ ---- -------- ----------- ------- -----------Trabajo Almacenamiento1 Inc WIP 1 Trabajo Máquina1 FIRST 1 Trabajo Máquina1 Wait E(1) min 1 Trabajo Almacenamiento2 FIRST 1 Trabajo Almacenamiento2 1 Trabajo Máquina2 FIRST 1 Trabajo Máquina2 Wait (0.1 + W(5,1)) min 1 Trabajo Almacenamiento3 FIRST 1 Trabajo Almacenamiento3 1 Trabajo Máquina3 FIRST 1 Trabajo Máquina3 Wait (0.25 + W(5,1)) min 1 Trabajo Almacenamiento4 FIRST 1 Trabajo Almacenamiento4 1 Trabajo Máquina4 FIRST 1 Trabajo Máquina4 Wait (0.25 + W(5,1)) min Dec WIP 1 Trabajo EXIT FIRST 1 ******************************************************************************** * Arrivals * ******************************************************************************** Entity Location Qty Each First Time Occurrences Frequency Logic -------- -------- ---------- ---------- ----------- ---------- -----------Trabajo Almacenamiento1 1 0 inf 1.175 min ******************************************************************************** * Variables (global) * ******************************************************************************** ID Type Initial value Stats ---------- ------------ ------------- ----------WIP Integer 0 Time Series ******************************************************************************** * Macros * ******************************************************************************** ID Text --------------- -----------Artificial 1
Figura 11.2.Código del modelo de simulación para la Compañía Manufacturera de 4 maquinas.
________________________________________________________________ 83 ___ FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICAS de Simulación Nº 11 84 _______________________________________________________________________________________
Actividades a realizar 1. Correr el modelo 250 horas 2. Ver el grafico de tiempo (History Plot) para la variable “WIP value History” y estime visualmente cuando estaría terminando la fase transiente del sistema. 3. Especifique las horas de calentamiento de acuerdo con su apreciación anterior y corra de nuevo el modelo. Observe que las salidas de la simulación durante el período de calentamiento han sido descartadas. 4. El anterior método visual debe ser evitado. El proceso puede ser substancialmente mejorado realizando múltiples replicaciones del mismo modelo y luego combinando las salidas de la serie de tiempo de cada replicación en un grafico con el promedio de las series de tiempo. El promediar las series de tiempo de las replicaciones individuales ayuda a filtrar las fluctuaciones (valores altos de una replicación son compensados por valores pequeños de otra replicación) y estimar mejor la verdadera pero desconocida serie de tiempo. Entonces vamos a calcular series de tiempo con promedios móviles para cinco replicaciones, y utilizar el modulo de optimización (SimRunner) para calcular el período de calentamiento para lo cual debe: a) Crear en el modelo un macro con cualquier nombre (por ejemplo: artificial) y declárelo como RTI (run time interface). b) Abra el modulo SimRunner y en la ventana “Create new project/Select Model” ubique su modelo a analizar. Click en “next”. (Modulo: “Select Model/Project”). c) En la ventana de medidas de desempeño (Performance Measures) seleccione la categoría de “variable” y a la variable “WIP_Average_Value”, como objetivo de maximización del SimRunner.(Modulo: “Define Objectives”). Click en “next” y entrara en el modulo: “Define Inputs). d) Seleccione el macro creado (artificial) que aparece en la ventana “Macros Available for Input”, como factor de entrada. (modulo: “Define Inputs). Click en “next” y entrara en el submodulo: “Define Experiment” del modulo: “Analize Model” ). e) Llene los valores del experimento así: Longitud de la simulación: 250 hr; Tamaño del intervalo: 1hr; Número de replicaciones: 5; Nivel de confianza: 90; Error relativo en la estimación de la función objetivo:7.Este error, e , tiene que ver con el error máximo permitido para estimar el promedio de la variable WIP y que como recordará determinará conjuntamente con el nivel de confianza, Z, el numero de corridas necesarias, n , (número de replicaciones) del modelo para ga___________________________________________________________________ 84 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICAS de Simulación Nº 11 85 _______________________________________________________________________________________
2
f)
g)
h)
i)
Z (α )S rantizarlo, así, n = 2 . Es decir estamos buscando encontrar el e número de replicaciones necesarias para estimar el promedio de WIP con un porcentaje de error del 7% y un nivel de confianza del 90%, al mismo tiempo que estamos estimando el final de la fase del periodo de calentamiento. Click en “next” y entrara en el submodulo: “Conduct analysis” del modulo: “Analize Model” ). Observe los valores de defecto de 2a) “Moving Avg Window”: 1 period ; y de 2b) “Warm up”: 0 periods; y “No of Replications”. Click en “Run” y espere con paciencia mientras se realizan los cálculos. Obtendrá la serie de tiempo para el número de replicaciones que garantizan el error y nivel de confianza especificado. Observe que el tamaño de la ventana de promedios móviles es solo de 1 y que el número de replicaciones necesarias para garantizar el e=7% y Z del 90% es de 8 replicaciones. Ahora entraremos estimar la terminación del período de calentamiento suavizando la serie de tiempo obtenida al promediar las 8 replicaciones aumentando el tamaño de la ventana móvil de suavizamiento. Para esto aumentamos el número de sus períodos en “Moving Avg Window” (sección 2a) hasta 54 períodos para obtener una serie de tiempo bien suavizada. Observe que el final del período de calentamiento parece ocurrir entre los períodos 33 y 100. El siguiente paso consiste en eliminar la información referente los periodos de inestabilidad, es decir los primeros 100 períodos, de una corrida de 250 horas (ver literal e). Entonces ajuste el período de calentamiento a 100 períodos, Warm up = 100, en la sección 2b).Observe que al ir eliminando períodos cambia el número de replicaciones necesarias que me garantizan el error, e=7% y el nivel de confianza, Z del 90%, ya que estamos eliminando la información de esos períodos. Finalmente observe que con un período de calentamiento de 100 horas ser requerirían 10 replicaciones para garantizar el e=7% y el nivel de confianza, Z del 90%. Finalmente dar click en “Final Report”.
___________________________________________________________________ 85 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICAS de Simulación Nº 12 86 _______________________________________________________________________________________
2.12
PRÁCTICA # 12
REPLICACIONES ó INTERVALOS DE LOTEO y LONGITUD DE LOS INTERVALOS DE LOTEO (“Batch Interval Length”) Para estimar un parámetro con un error de estimación, E, y un nivel de confianza, Z, dado, podemos escoger entre: 1. correr varias replicaciones del modelo (ver práctica x), ó, 2. usar intervalos de loteo (“batch intervals”). En esta práctica, ya habiendo estimado (ver práctica # 11, anterior) el período de calentamiento del sistema (warm up period), ilustraremos la forma de usar intervalos de loteo para estimar un parámetro y los problemas asociados con la estimación del tamaño del intervalo de loteo. Haremos uso del modelo de la compañía manufacturera creado en la práctica #11.
Figura 12.1 La Compañía Manufacturera de 4 máquinas. Ya establecimos en la práctica # 11, anterior que el período de calentamiento para nuestro modelo es de 100 horas. Ahora corramos el modelo por otras 100 horas (longitud de corrida arbitraria que no tiene nada que ver con el período de calentamiento ¡¡¡), pero que es tiempo suficiente para que ocurran miles de veces los diferentes eventos de la simulación (llega un (1) trabajo cada 1.175 minutos, es decir en 1 hora llegan 51 trabajos. -60 minutos/1.175 minutos- y en 100 horas deberán llegar 5100 trabajos). ___________________________________________________________________ 86 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICAS de Simulación Nº 12 87 _______________________________________________________________________________________
Actividades a realizar A. Primero vamos a estimar a WIP con una muestra de tamaño 10 (10 replicaciones) 1. Correr el modelo (deshabilitar la animación) con 10 replicaciones durante 100 y horas con un período de calentamiento de 100 horas. 2. Establecer un intervalo de confianza del 90% y observar que el nivel de inventario-WIP- estimado está ente 17.64 y 21.09 trabajos. B. Ahora, vamos a estimar a WIP con una sola corrida (una (1) replicación) dividiéndola en intervalos de loteos (batch intervals). 1. Correr el modelo (deshabilitar la animación) con solo una larga replicación de 1000 hrs., por ejemplo, y con intervalos de loteo igual a 100 horas (no olvidar colocar la unidad de tiempo-hr-en el cuadro de “interval length” y dejar el mismo período de calentamiento de 100 horas). 2. Establecer un intervalo de confianza del 90% y observar que el nivel de inventario está entre 18.64 y 23.19 trabajos. Si deseáramos un intervalo de confianza de menor tamaño podríamos el tamaño de la muestra extendiendo la longitud de la corrida, por ejemplo a 1500 hrs., y tendríamos 15 observaciones. (ensaye para ver si el tamaño del intervalo disminuye). C. Longitud requerida del intervalo de loteo (batch interval length). Un punto importante del método de loteo por intervalos es garantizar que los valores obtenidos en cada intervalo de loteo (el valor promedio en cada lotebatch-) corresponda a observaciones “aproximadamente” independientes. La palabra “aproximadamente” se ha enfatizado porque sabemos que las observaciones dentro de una misma corrida ha menudo están auto correlacionadas (no son independientes, por ejemplo puede darse una mayor probabilidad de que un artículo sea defectuoso si el anterior lo fue; o el tiempo de corte de una operación manual puede crecer cada vez debido al desgaste del cuchillo). De hecho a menudo están positivamente correlacionadas, lo que sesga la desviación estándar de la media del intervalo de loteo hacia un valor bajo y esto sesgará también la estimación de nuestro intervalo de confianza. Así, que debemos “chequear” la auto correlación (lag-1) de las observaciones antes de interpretar los resultados. Si se generan al menos 100 observaciones se puede estimar la auto correlación entre observaciones adyacentes (lag-1 autocorrelación). Las observaciones se consideran casi independientes si la estimación de la autocorrelación-lag-1, para al menos 100 observaciones cae entre -0.20 y +0.20 (recuerde que los valores de autocorrelacion caen entre +1.). Si la estimación de la autocorrelación lag-1 no cae entre -0.20 y +0.20, entonces la longitud original del intervalo de loteo debe ser incrementada en un 50% a100% y volver a correr la simulación. Recolectar las estadísticas y estimar de ___________________________________________________________________ 87 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICAS de Simulación Nº 12 88 _______________________________________________________________________________________
nuevo el factor de autocorrelación lag-1. Como debemos tener al menos 100 observaciones (y solo tenemos 10 observaciones, resultado de 1000hrs., de corrida con lotes (batches) de 100 horas, entonces aumentemos la longitud de corrida del modelo a 10 000 horas lo que nos permitirá obtener 100 observaciones. 1. Correr el modelo (deshabilitar la animación) con solo una larga replicación de 10 000 hrs., y con intervalos de loteo igual a 100 horas (no olvidar colocar la unidad de tiempo-hr-en el cuadro de “interval length” y dejar el mismo período de calentamiento de 100 horas). 2. Salve el reporte de salida de ProModel como formato de Microsoft Excel y luego transfiéralo a una tabla del Stat::Fit. 3. Realice una prueba de autocorrelacion para la variable WIP y verifique que el factor de autocorrelación está entre 0.192 y – 0.132 4. Realice una prueba de normalidad para garantizar que la estimación del intervalo es la correcta. Observación final: El método de intervalos de loteo requiere bastante trabajo (probar los supuestos) para emplearlo bien. Por lo tanto, si el tiempo de simulación a través del período de calentamiento es corto, debe usarse el método de varias replicaciones. Reserve el método de intervalos de loteo para simulaciones que requieran un período de tiempo muy largo para alcanzar el estado estable.
___________________________________________________________________ 88 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
PRÁCTICAS de Simulación Nº 13 89 _______________________________________________________________________________________
2.13
PRÁCTICA # 13 STAT:FIT
En esta práctica se pretende familiarizarse con el software “Stat::Fit” par facilitar el analisis de los datos de entrada, procesamiento y salidas de los modelos de simulación. En particular se deberan realizar las siguientes actividades: 1. Introducir los datos (generar la tabla de datos a analizar) 2. Generar el histograma correspondiente a los datos 3. Generar las estadísticas descriptivas (mínimo valor, el máximo, la media, la moda, la mediana, la varianza, la “kurtosis”, el sesgo (“skewness”), y el coeficiente de variación. 4. Analizar las pruebas de independencia (Scatter Plot, Autocorrelación, Pruebas de corridas –“Run Tests”) 5. Calculo de estimadores maximo verosimil para los parámetros dediferentes funciones de densidad. 6. Realizar pruebas de bondad de ajuste (Kolomogorov Smirnov, Chi cuadrado y Anderson Darling. 7. Analisis de comparación de gráficos de ajuste. 8. Efecto que sobre la forma de la distribucion de probabilidad (funcion de densidad) tiene el cambio en el valor de sus correspondientes parámetros (evaluación de las distribuciones: exponencial, Gamma, Weibull, Beta y otras). A. CREACIÓN DE LOS DATOS 1. Crear un nuevo docuemto: Stat:FitDocument (File/New) esto genera la Data Table, con el nombre Document 1. 2. Guardelo con (File/Save As) y el nombre del archivo del proyecto, y todo el documento (Stat:FitDocument) quedará asociado con este nombre de archivo y con la extensión .SFP (de Stat Fit Project). Este ultimo archivo contiene: • • • •
La Tabla de datos Todos los calculos Todas las gráficas Y todos los view points
•
Si solo se desea guardar los datos de entrada (la Tabla de Datos) en un archivo de texto debe guardarse como (File / Save Input). ___________________________________________________________________ FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
89
PRÁCTICAS de Simulación Nº 13 90 _______________________________________________________________________________________
3. Crear la Tabla de Datos (todos los datos deben entrarse como datos simples, no acumulados). Si son datos continuos debe especificarse el número de intervalos de clases. El número de intervalos es usado para mostrar los datos continuos en un histograma y comparar los datos de entrada con los datos ajustados (fitted data), a través de una prueba Chi Cuadrado. Hay tres formas de escoger el número de intervalos: Auto: Número de intervalos K = (2N ) 2 : • Sturges: Regla empírica K = 1+ 3.3 log 10 N • Manual: el número de intervalos y el tamaño de ellos, es escogido por el usuario. Lo anterior se hace a traves de (Input/Options). Allí mismo también se establece el tipo de la distribución, que puede ser: continuos, discreto o ambas (either). 4. Ver el grafico de entrada por (Input / Input Graph), para ver el histograma creado. 1
•
B. ANÁLISIS DE LOS DATOS DE ENTRADA (INPUT DATA ANALYSIS) El análisis de los datos que se entraron, es de dos tipos: • Estadísticas descriptivas: Se entra por (Statistics / Descriptive), e incluye el mínimo valor, el máximo, la media, la moda, la mediana, la varianza, la kurtosis, el sesgo, el coeficiente de variación y el número de datos. • Pruebas de Independencia. Se entra por (Statistics / Independence), Hay disponible tres tipos: 1. Scatter Plot, 2. Autocorrelation 3. Runs Tests : Son específicos para diferentes tipos de independencia y de aleatoridad, asi que deben pasarse todos los tests. C. AJUSTE DE LA DISTRIBUCIÓN (DISTRIBUTION FITTING ANALYSIS) Existen dos alternativas: • •
Automática Manual
La automática, exige que previamente se establezca si la distribución a ser usada es continua o discreta. Esto se hace a través de (Input/Options). Luego la prueba de ajuste automático (Goodness of Fit Test) es realizado a través de (Fit / AutoFit ). Básicamente los pasos que sigue ésta opción son: 1.
Escoge distribuciones (continuas o discretas) para ajustar los datos de entrada. Al escoger el conjunto de distribuciones continuas, el paquete
___________________________________________________________________ FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
90
PRÁCTICAS de Simulación Nº 13 91 _______________________________________________________________________________________
2. 3.
4.
las limita según algunos criterios como, el lower bound, o por ejemplo, Skewness de datos negativos elimina varias distribuciones candidatas. Calcula los estimadores de Máxima Verosimilitud para los parámetros de cada una de las distribuciones seleccionadas. Prueba el ajuste de cada una de las distribuciones (Prueba de Bondad de Ajuste), usa el Test de Kolmogorov Smirnov, el Chi cuadrado y el Test de Anderson Darling. Muestra los resultados en un Ranking.
Si se desean observar los detalles de cada una de las pruebas debe hacerse click en el boton [TEST], que queda sobre la speed bar. El manual. Esta opción requiere: 1. Seleccionar manualmente las distribuciones a ser probadas y los cálculos matemáticos de interés. Debe entrarse por (Fit / Setup >>Distributions ), y alli seleccionar de la lista de distribuciones disponibles las de interés. 2. Pasar a la sección de Cálculos (Calculations) por (Fit / Setup>>Calculations ), y seleccionar el tipo de estimadores a ser calculados (Máxima verosimilitud, por ejemplo), el test (o pruebas) ha ser usado (el Chi Cuadrado, o el de Kolmogorov Smirnov, o el de Anderson Darling), el nivel de confianza de la prueba, y otros. 3. Luego pueden calcularse los estimadores Maximo verosimil de los parámetros requeridos en cada una de las distribuciones seleccionadas. Entrar por (Fit / Maximum Likelihood ). 4. El análisis de Bondad de Ajuste para todas las distribuciones ha ser testadas se realiza por (Fit / Goodness of Fit ), o si se desean observar los detalles de cada una de las pruebas debe hacerse click en el boton [TEST], que queda sobre la speed bar. 5. Luego pueden observarse gráficos comparativos de las distribuciones candidatas contra la distribución de los datos. Entrar por (Fit / Results Graphs >> Comparison ).
___________________________________________________________________ FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
91
PRÁCTICAS de Simulación Nº 14 92 _______________________________________________________________________________________
2.14
PRÁCTICA # 14
(Esta práctica ha sido extraida de “Simulación con ProModel- Casos de producción y logistica”. Luis Ernesto Blanco Rivero, Ivan Dario Fajardo Piedrahita. Editorial Escuela Colombiana de Ingeniería, Mayo 2001, pag 41 a 53)
Juan Carlos Rodríguez, ingeniero industrial recién egresado, ha comenzado a trabajar en Industrias ECl y ha sido asignado al área de producción con la tarea específica de mejorar la productividad. Juan Carlos todavía recuerda toda una serie de herramientas que aprendió en su curso de producción, relacionadas con dicha área: pronósticos, inventarios, MRP, JIT, PERT, planeación agregada, secuenciación, etc., pero no sabe por dónde comenzar. En su última visita a la planta encontró exceso de inventarios, desorden, atraso en los pedidos, órdenes de producción incompletas y un clima organizacional bastante caldeado, debido a las recriminaciones mutuas entre trabajadores y directivos. Al comentar la situación con uno de sus compañeros de estudio, éste le recomendó que leyera La meta, uno de los libros de Eliyahu Goldratt3, porque la situación que se describía correspondía a la narrada en dicha obra.
Parámetros de producción según Goldratt Después de leer la obra, Juan Carlos comprendió que la meta de su empresa era “ganar dinero” y que para hacerlo debía entender el funcionamiento de nuevos parámetros de producción, como los siguientes: Throughput (TH): Tasa a la cual la empresa produce unidades vendibles por unidad de tiempo (algunos traducen Throughput como facturación). Work In Process (WIP): Cantidad de materias primas y de productos en proceso que se encuentran en el sistema. WIP = Inventario en proceso en el sistema. Cycle Time(CT): Tiempo que gasta un producto desde que ingresa en el sistema, hasta que sale. TC = Tiempo de ciclo.
Cuello de botella: Operación más lenta del proceso, o la que produce el menor Throughput en un determinado tiempo. Es la operación que marca el ritmo de la producción.
3
Eliyahu Goldratt y Jeff Cox, La meta, un proceso de mejora continua, 2 ed., Monterrey, México, Ediciones Castillo.
___________________________________________________________________ FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
92
PRÁCTICAS de Simulación Nº 14 93 _______________________________________________________________________________________
Tasa del cuello de botella: Tasa de producción de la operación cuello de botella. Se mide en productos por unidad de tiempo. Inventario: Todo el dinero que la empresa invierte en materiales, instalaciones, tecnología, etc., y que posteriormente se puede vender. Gastos de operación: Es el dinero que la empresa invierte para convertir los inventarios en Throughput. Poco a poco, Juan Carlos comenzó a comprender que las actividades principales de organización de la producción debían encaminarse a incrementar el Throughput. Para el gerente era inadmisible encontrar a un empleado descansando o una máquina parada, razón por la cual los operarios permanecían ocupados la mayor parte del tiempo, “adelantando trabajos”. Juan Carlos comprendió que esta política únicamente conducía a incrementar los inventarios en proceso (WIP), a aumentar los gastos de operación y a congestionar el sistema productivo, pero no ayudaba a incrementar el Throughput. Pero, ¿cómo hacerle ver al gerente que estaba equivocado? Importancia de la simulación para solucionar el problema Muy pronto, Juan Carlos recordó que en situaciones en las que la experimentación real es muy costosa, lo mejor es utilizar la simulación para observar diferentes comportamientos del sistema. La simulación es una representación ficticia de una situación real, que permite cambiar sus parámetros y variables. Se experimenta con un modelo, que es una abstracción de la realidad, y el conocimiento adquirido en la simulación se aplica en el mundo real. Cuanto mejor sea el grado de aproximación de la simulación a la realidad, mayor será su utilidad. El primer paso, entonces, era construir el modelo del sistema, comenzando por dar respuesta a los siguientes interrogantes: • • • • • • • • • •
¿Cómo está distribuida la planta? (layout). ¿Cuáles son sus dimensiones? ¿Cuántos centros de trabajo (locations) tiene el proceso? ¿Cuáles son los tiempos de proceso de cada centro de trabajo? ¿Cuántos productos o subproductos (entities) se quieren incluir en el modelo? ¿Quién, dónde y cuándo requiere un recurso? ¿Qué se desea medir? ¿Cuáles serán los indicadores que se deberán tener en cuenta? ¿Cuánto tiempo se simulará el proceso? ¿Qué tan variable es el proceso? ¿Se podría estandarizar? ¿Quién es la persona que utilizará el programa de simulación?
Parámetros y leyes de la producción según Hopp y Spearman ___________________________________________________________________ FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
93
PRÁCTICAS de Simulación Nº 14 94 _______________________________________________________________________________________
En su proceso de investigación bibliográfica, Juan Carlos encontró el libro Factory physics4, también relacionado con las ideas de Goldratt. En dicho libro se definen algunos parámetros y leyes importantes de la física de planta: Tiempo de proceso global (To): Es la suma de los tiempos de proceso promedio de cada una de las estaciones de trabajo, a largo plazo. Si ti es el tiempo de proceso de la estación i, entonces: To = ∑ti, para toda estación de trabajo i. Tasa del cuello de botella (rb): Es la tasa o rata (el número de partes o trabajos por unidad de tiempo) de producción de la estación de trabajo u operación que tiene la mínima capacidad del proceso. Si ri es la tasa de producción de la operación i, entonces: rb = min (ri), para toda operación i. WIP crítico de la línea (Wo): Es el nivel de inventario con el que la línea produce el máximo Throughput. A partir de dicho nivel, el inventario únicamente produce congestión y costos de almacenamiento. Wo = (rb).To
Ley de Little: TH = (WIP/CI) La ley de Little establece que hay una relación estrecha entre el Throughput (TH), el Cycle Time (CT) y el Work In Process (WIP), definida por la fórmula anterior, en la que se observa que mientras más largo sea el tiempo de ciclo, menor será el Throughput con un nivel de inventario constante. Ley del mejor desempeño: THmejor = w/To si w Wo, siendo w el nivel de WIP La ley del mejor desempeño establece que para un nivel dado de inventario w, el mayor Throughput se obtiene cuando el nivel de inventario igual al nivel crítico Wo; a partir de ahí lo máximo que se obtiene es rb, o sea la tasa del cuello de botella.
Wallace J. Hoppe y Mark L. Spearmun, Factory physics , foundations of manufacturing management, cap. 7, Boston, Irwin McGraw Hill, Inc., 1996 4
___________________________________________________________________ FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
94
PRÁCTICAS de Simulación Nº 14 95 _______________________________________________________________________________________
La ley del mejor desempeño también se puede formular de la siguiente manera: CTmejor = To, si w Wo Esta ley se puede interpretar como que el mejor tiempo de ciclo es el que corresponde al nivel crítico de inventario Wo. Ley del peor desempeño práctico: THpeor = (w/(Wo+w-1))rb, para cualquier nivel de inventario w. CTpeor = To + (w-1)/rb, para cualquier nivel de inventario w. Modelando el sistema de producción de Industrias ECl Para convencer al gerente, Juan Carlos elaboró un modelo con nueve instalaciones (locations): limpieza, torno, fresa, inspección, paletizadora, recepción1, recepción2, recepción3, recepción4. Los datos iniciales fueron los siguientes: Name
Capacity
Units
Down Times
Limpieza
1
1
None
Torno
1
1
None
Fresa
1
1
None
Inspección Paletizadora Recepción 1 Recepción2 Recepción3 Recepción4
1
1
None
Infinite
1
None
Infinite
1
None
Infinite
1
None
Infinite
1
None
Infinite
1
None
Statistics Time Series Time Series Time Series Time Series Time Series Time Series Time Series Time Series Time Series
Rules
Notes
Qldest Oldest Oldest Oldest Oldest. Oldest Oldest Oldest Oldest
Las recepciones se concibieron como áreas marcadas en el piso con capacidad teórica de almacenamiento infinita. Se hicieron con el menú Build-Locations-Graphics, haciendo click en el cuadrado negro que aparece en la ventana Graphics. ___________________________________________________________________ FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
95
PRÁCTICAS de Simulación Nº 14 96 _______________________________________________________________________________________
Para señalar el sitio dentro del área en donde se ubicarán los materiales, se uso el ícono cuadrados rojos con X blancas, borrando primero el chulo de New de la ventana y haciendo click en el cuadrado rojo y luego en el sitio en donde se quiere ubicar. De manera similar se ponen los nombres de las estaciones, haciendo click primero en la tecla Aa y luego en el sitio en donde se va a ubicar el letrero (es conveniente volver a colocar el chulo una vez localizados el puesto y el letrero). En el modelo se incluyeron dos entidades o (entities), piñón y pieza, que fluyen a través del sistema, definidas así: Speed (mpm)
Name Piñón
50
Pieza
50
Statistics Notes Time Series Time Series
La información de las llegadas o arrivals se introdujo al modelo, así: las entidades piñón y pieza llegan, una por una, a la primera instalación recepción1. La primera vez no llega ninguna (cero). Los piñones están llegando uno cada cinco minutos y las piezas una cada siete minutos. Se generan infinitas ocurrencias, lo cual quiere decir que durante el tiempo de simulación siempre estarán llegando entidades al sistema. Entity Piñón Pieza
Location Recepción1 Recepción1
Quantity
First Time
Occurrences
Frequency
Logic
Disable
1
0 Infinite
5
No
1
0 Infinite
7
No
Se definió una red de movimientos o Path Network, llamada desplazamientos, con 16 trayectorias o Paths bidireccionales, haciendo coincidir cada una de las locations con un nodo de la red, mediante las interconexiones o interfaces. La red es de tipo Passing, o sea que las entidades pueden adelantar a otras durante la simulación. En el campo Time/Speed se puede introducir información en el sistema sobre la distancia de cada tramo de la red y la velocidad a la que se mueven las entidades y los recursos en la red de movimiento. En este caso se tomó la opción Tiempo, que la asume el ProModel® automáticamente. Esta información se introdujo en el modelo mediante el menú Build-Path Networks, con los siguientes datos: ___________________________________________________________________ FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
96
PRÁCTICAS de Simulación Nº 14 97 _______________________________________________________________________________________
Name
Type
Time/Speed
Paths
Interfaces
Nodes
Desplazamientos
Passing
Time
16
9
9
Paths From N1 N2 N3 N4 N5 N6 N8 N9 N8 N8 N8 N2 N2 N7 N1 N6
To N2 N3 N4 N5 N6 N8 N9 N7 N5 N3 N4 N9 N8 N8 N9 N7
Interfaces Node
Location
Nl
Recepción1
N2
Limpieza
N3
Recepción2
N4
Torno
N5
Recepción3
N6
Fresa
N7
Paletizadora
N8
Recepción4
N9
Inspección
___________________________________________________________________ FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
97
SIMULACIÓN - PRÁCTICAS --- PRÁCTICA Nº 14
98 _______________________________________________________________________________________
En el modelo se incluyeron cuatro operarios, mediante el menú Build-Resources, con la siguiente información: Name Operario
Units DownTimes 4 None
Statistics Specifications By unit Desplazamiento
Search None
Logic 0
Points 1
Al hacer click en Specifications aparecerá una ventana con dicho nombre. Allí se define Path Network con su nombre, esto es, Desplazamientos, tambien se define Home como el nodo 1 (N1, que está asociado con Recepción1 mediante una interface) y se marca Closest Resource. Esta información le dice al modelo que los operarios se mueven de acuerdo con las trayectorias de la red Desplazamientos —que se ha definido previamente—, que el sitio de trabajo de los operarios es el nodo 1, o sea, la recepción1, a donde se dirigirán cuando no estén ocupados, y que se debe utilizar el operario que esté más cercano a la instalación en donde se requiera. Las demás se ajustan automáticamente. Al hacer click en Points aparecerá una ventana, en donde se le definen las coordenadas al nodo 1 como (0,0). Esto le permitirá al sistema ubicar cartesianamente todas las instalaciones del modelo. Se utilizaron tres atributos (attributes), que son “supervariables” que asignan un atributo, en este caso el tiempo de llegada al sistema de cada una de las entidades. Obsérvese que se usa la palabra general cuando las dos entidades piñón y pieza entran simultáneamente en el sistema. Se incluyeron en el sistema mediante el menú Build-More Elements-Attributes, con la siguiente información Identification Att_piñon Att_pieza Att_general
Type Integer Integer Integer
Classification Entity Entity Entity
Se utilizaron 17 variables, para medir los siguientes parámetros del proceso: Tasas de los cuellos de botella (Rb) Tiempos de proceso (Tp) Tiempos de ciclo (Ct) Inventarios en proceso (Wip) Throughput (Th). La información se introdujo en el modelo mediante More Elements-Variables, con los siguientes datos: ___________________________________________________________________ 98 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
SIMULACIÓN - PRÁCTICAS --- PRÁCTICA Nº 14
99 _______________________________________________________________________________________
Identification
Type
Initial Value
Rb1
Real
o
Rb2
Real
o
Rb3
Real
o
Rb4
Real
o
T1
Integer
o
T2
Integer
o
T3
Integer
o
T4
Integer
o
Ct_piñon
Real
o
Ct_pieza
Real
o
Ct_general
Real
o
Wi_piñon
Integer
o
Wi_pieza
Integer
o
Wi_general
Integer
o
Th_piñón
Real
o
Th_pieza
Real
o
Th_general
Real
o
Los contadores de las variables se van colocando en el layout. El lugar en el layout donde se ubican las variables puede encabezarse con el letrero Indicadores. Los nombres de las variables y el de Indicadores se hacen con Build-Background Graphics-Front of the Grid. Se definió una subrutina (subroutine), llamada id mediante el menú Build-More Elements-Subroutines, de la siguiente manera: Identification
Type
id
None
Parameter
Logic IF Ct_pieza 0 THEN Th_pieza = Wip_pieza /Ct_pieza ELSE Th_pieza = 0 IF Ct_piñon 0 THEN Th_piñón = Wip_piñón/ Ct_piñon ELSE Th_piñón =0 IF Ct_general 0 THEN Th_general = Wip_general/ Ct_general ELSE Th_general = 0
___________________________________________________________________ 99 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
SIMULACIÓN - PRÁCTICAS --- PRÁCTICA Nº 14
100 _______________________________________________________________________________________
Esta subrutina id ejecuta lo siguiente: si el tiempo de ciclo es diferente de cero, calcula entonces el Throughput como el Wip dividido por el tiempo de ciclo; de lo contrario, hace el Throughput igual a cero. Su papel es evitar que en el proceso aparezca una división por cero, debido a que el tiempo de ciclo sólo se calcula hasta cuando haya salido la primera pieza. El proceso o processing se definió mediante el menú Build-Processing. Como el proceso es un poco largo, se irá comentando en grupos de cuatro instrucciones: Entity
Location
Piñon
Recepción1
Piñon
Limpieza
Piñon
Recepción2
Piñon
Torno
Operation REAL x Id() Att_piñon=CLOCK() Inc Wip_piñon Inc Wip_general REAL x Id() Tp1=4 X = n(Tp1,.8) Rb1=1/x WAIT X
REAL x Id() REAL x Id() Tp2=6 X = n(Tp2, 1) Rb2=1/x WAIT X
Output
Destination
Rule
Piñon
Limpieza
First 1
Move Logic MOVE WITH Operario THEN FREE
Piñon
Recepción2
First 1
Piñon
Torno
First 1
MOVE WITH Operario THEN FREE MOVE WITH Operario THEN FREE
First 1
MOVE WITH Operario THEN FREE
Piñon
Recepción3
En la primera instrucción, la entidad piñón llega a la instalación recepción1 e inicia la siguiente operación: la subrutina id() chequea si Ct_piñón, Ct_pieza, Ct_general, son diferentes de cero, o sea, verifica si los tiempos de ciclo del piñón, de la pieza y el general son diferentes de cero. Mediante la instrucción atributo = clock (), el programa coloca la hora que está marcando el reloj de la simulación, en el momento en que entra la entidad piñón en el sistema, en el atributo att_piñón (es el mismo efecto de una persona que marca tarjeta en el reloj de entrada). Después, el programa incrementa las variables Wip_piñón y Wip_general, en donde se están contando y acumulando los inventarios en proceso de piñones y en general de piñones y piezas, mediante la instrucción INC. Después la entidad piñón es enviada a Limpieza, pasando el primer piñón que se encuentre disponible. Uno de los cuatro operarios recoge el piñón en recepción1, ___________________________________________________________________ 100 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
SIMULACIÓN - PRÁCTICAS --- PRÁCTICA Nº 14
101 _______________________________________________________________________________________
lo lleva hasta limpieza y queda libre, para retornar a su sitio de trabajo, en el nodo1 o recepción1. Esto se realiza mediante las dos últimas instrucciones, First 1 y MOVE WITH Operario THEN FREE, que se encontraran de nuevo de aquí en adelante, de manera que no se comentarán más. En la segunda instrucción, mediante REAL x, el programa crea una variable real x en donde se va a almacenar un tiempo definido por una distribución normal con media Tp1 y desviación estándar 0.8. En este paso se almacena en la variable Tp1 el valor 4, que corresponde al tiempo de proceso en la estación Limpieza. A continuación, en la variable Rb1, que es la tasa del cuello de botella de la Limpieza, se guarda el valor 1/x. Con WAIT x el programa hace que la entidad piñón espere un tiempo n(4,0.8) en la Limpieza. En la tercera instrucción, la entidad piñón es llevada desde la recepción2 hasta el torno por uno de los cuatro operarios. En la cuarta instrucción, la entidad piñón es llevada desde el torno hasta la recepción3 por uno de los cuatro operarios. Estas son las siguientes cuatro instrucciones: Entity
Location
Operation
Output
Destination
Rule
Piñon
Fresa
First 1
REAL x Id() Piñon
Recepción3
Piñon
Fresa
Piñon
Recepción4
Piñon
Inspección
REAL x Id() Tp3=5 X = n(Tp3,.4) Rb3=1/x WAIT X
REAL x Id() REAL x Id() Tp4=2 X = n(Tp4, .2) Rb4=1/x WAIT X
Move Logic MOVE WITH Operario THEN FREE
Piñon
Recepción4
First 1
Piñon
Inspección
First 1
MOVE WITH Operario THEN FREE MOVE WITH Operario THEN FREE
First 1
MOVE WITH Operario THEN FREE
Piñon
Paletizadora
___________________________________________________________________ 101 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
SIMULACIÓN - PRÁCTICAS --- PRÁCTICA Nº 14
102 _______________________________________________________________________________________
Este grupo de instrucciones es similar a las del grupo anterior. Las cuatro siguientes son: Destina tion Entity
Piñon
Pieza
Pieza
Pieza
Location
Operation REAL x Id() Paletizado- DEC Wip_piñon ra DEC Wip_general REAL x Id() Att_pieza=CLOCK() INC Wip_pieza INC Wip_general Recepción1 WAIT X REAL x Id() Tp1=2 X = n(Tp1, .5) Rb1=1/x Limpieza WAIT X REAL x Id() Tp1=2 X = n(Tp4, .2) Rb4=1/x Recepción2 WAIT X
Output
Rule
Move Logic
Piñon
EXIT
Ct_piñon= CLOCK() - att_piñon First 1 Ct_general=Ct_piñon
Pieza
Limpieza
MOVE WITH Operario First 1 THEN FREE
Pieza
Recepción2
MOVE WITH Operario First 1 THEN FREE
Pieza
Fresa
MOVE WITH OpFirst 1 erario THEN FREE
En este grupo de instrucciones se observa: En la primera instrucción, la entidad piñón abandona el sistema luego de pasar por la paletizadora, de manera que deja de ser inventario en proceso (Wip), para convertirse en producto terminado y, por tanto, en Throughput. Los inventarios en proceso Wip....piñón y Wip....general se decrementan, mediante la instrucción DEC. Se calcula el tiempo de ciclo del piñón, restando del tiempo actual de la simulación (que debe estar marcando el reloj en el momento en que el piñón sale del sistema) el tiempo de entrada que estaba guardado en el atributo att_piñón. A continuación, se toma como tiempo de ciclo general el tiempo de ciclo del piñón. Las demás instrucciones de este grupo son similares a las anteriores. Las siguientes cuatro instrucciones son:
___________________________________________________________________ 102 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
SIMULACIÓN - PRÁCTICAS --- PRÁCTICA Nº 14
103 _______________________________________________________________________________________
Entity
Location
Pieza
Fresa
Pieza
Recepción3
Pieza
Torno
Pieza
Recepción4
Operation REAL x Id() Tp3=3 X = n(Tp3,.6) Rb3=1/x WAIT X REAL x Id() REAL x Id() Tp2=4 X = n(Tp2, 1) Rb2=1/x WAIT X REAL x Id()
Output
Destination
Rule
Move Logic
Pieza
Recepción3
First 1
Pieza
Torno
First 1
Pieza
Recepción4
First 1
Pieza
Inspección
First 1
MOVE WITH Operario THEN FREE MOVE WITH Operario THEN FREE
MOVE WITH Operario THEN FREE MOVE WITH Operario THEN FREE
En este grupo las instrucciones son similares a las anteriores. Las dos últimas instrucciones son:
Entity
Pieza
Pieza
Location
Operation REAL x Id() Tp4=6 X = n(Tp4,.2) Rb4=1/x WAIT X
Inspección
Paletizadora
REAL x Id() DEC Wip_pieza DEC Wip_general
Output
Destination
Rule
Pieza
Paletizadora
First 1
Pieza
EXIT
First 1
Move Logic
MOVE WITH Operario THEN FREE Ct_pieza= CLOCK() – Att_pieza Ct_general= Ct_pieza
Estas instrucciones también son similares a las anteriores.
___________________________________________________________________ 103 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
SIMULACIÓN - PRÁCTICAS --- PRÁCTICA Nº 15
104 _______________________________________________________________________________________
2.15
PRÁCTICA # 15
(Extraida de “Simulación con ProModel- Casos de producción y logistica”. Luis Ernesto Blanco Rivero, Ivan Dario Fajardo Piedrahita. Editorial Escuela Colombiana de Ingeniería, Mayo 2001, pag 93 a 53),)
Sistemas pull vs sistemas push El gerente de Industrias ECI, en una reunión en el Club de Ejecutivos, escuchó que los sistemas de planeación y control de la producción pull, inventados por los japoneses, eran mejores que los sistemas push, creados por los estadounidenses, de manera que llamó a su ingeniero de producción, Juan Carlos Rodríguez, para que le diera un concepto sobre el tema. Juan Carlos recordó inmediatamente que los inventarios se han usado, tradicionalmente, como colchones de ajuste contra la falta de materiales, cambios bruscos en la demanda, paradas de las máquinas y faltas de coordinación en la planeación de la producción; sin embargo, muchas veces el exceso de inventarios también puede causar mayores problemas que los originales de escasez, al congestionar el sistema y ocasionar “trancones” en el flujo de los materiales. Más tarde, Juan Carlos revisó su biblioteca y encontró la historia del ingeniero japonés Taiichi Ohno, quien trabajó para Toyota, en donde tenía la tarea de coordinar la producción y la entrega de materiales y partes, con la producción y entrega de subensambles, con los requerimientos de productos finales. El problema era complejo por la gran cantidad de componentes y por el elevado número de operaciones que tiene un proceso de producción de automóviles. En un viaje a Estados Unidos, al observar el funcionamiento de los grandes supermercados, Ohno advirtió que el secreto de éstos estaba en conservar pequeñas cantidades de inventario (la de los exhibidores), de las que se surten los clientes, y pedir a los proveedores a medida que se agotaban las existencias, de tal modo que el inventario siempre estaba a la vista y se encontraba limitado. Ohno fue el primero en utilizar la palabra pull (halar) para indicar que es el cliente quien “hala” el sistema de inventarios. “Si el cliente no demanda, el inventario no aumenta”. El sistema pull que desarrolló Ohno se basó en dos grandes ideas: 1. El Just In Time (JJT) y 2. La Automatización con Operarios Incluidos (Autonomation). En su filosofía de producción Just In Time (Justo A Tiempo), Olmo imagina la producción como un flujo continuo de productos en proceso, a través de operaciones, con inventarios en cada una de ellas, funcionando como “un supermercado de par___________________________________________________________________ 104 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
SIMULACIÓN - PRÁCTICAS --- PRÁCTICA Nº 15
105 _______________________________________________________________________________________
tes y subensambles”, de manera que el producto que fluye va “tomando” las partes o subensambles necesarios en cada operación y a medida que éstas se van gastando, se hacen pedidos a los proveedores, con el compromiso de que la reposición se haga en el instante preciso en que se necesita. Se capacita además a los operarios para que puedan manejar varias máquinas simultáneamente, se establecen equipos de trabajo y círculos de mejoramiento para estudiar y resolver los problemas relacionados con la calidad, y se hace una inmensa inversión en tecnología: se diseñan sistemas de aprestamiento (set up) muy rápidos y a prueba de errores (fool proof) en las máquinas, se ubican las máquinas muy cerca unas de otras, formando como una especie de U (celdas de manufactura), para minimizar el número de operarios y el número de desplazamientos de éstos, y se establecen sistemas de información visuales para poder parar la producción en caso de problemas, dentro de lo que Ohno llama Autonomation. Revisando sus apuntes de clase, Juan Carlos encontró que el creador del sistema Material Requirements Planning (MRP), prototipo de los sistemas push (empujar), fue Joseph Orlicky, quien como programador de IBM aprovechó las ventajas del manejo computarizado de bases de datos para diseñar una nueva forma de calcular los inventarios, para productos con demanda dependiente, incluyendo además el tiempo como una nueva variable en el sistema. El MRP es, entonces, un muy buen sistema de información, porque calcula la lista de materiales necesarios para cada orden y el tiempo en el cual se debe terminar ésta. Posteriormente se desarrollaron sistemas MRP mucho más complejos, como el Mapics, el Vipics y otros conocidos. Estos son los sistemas MRP II (Materials and Resources Planning), que incluyen módulos para el cálculo de capacidades, costos y rutas de producción alternativas, hasta llegar a los más modernos, que incluyen módulos de distribución y servicio al cliente como el DRP. Juan Carlos hojeó otro de los libros de Eliyahu Goldratt, denominado La carrera , porque allí, le parecía recordar, se explicaba otro de los sistemas pull, denominado DBR (Drum Buffer Rope), que se puede traducir como tambor, inventario o colchón de seguridad, cuerda; en este prototipo de los sistemas logísticos de fabricación sincronizada fundamentalmente se trata de reducir la dispersión causada por las diferentes capacidades de las operaciones y por los niveles de inventario, en un proceso de producción. 5
Las ideas centrales de este sistema consisten en buscar, primero que todo, las operaciones cuellos de botella, que son las más lentas y las “que marcan el paso” 5
Eliyahu Goldratt y Robert Fox. La carrera, NY. USA, North River Press, Inc.
___________________________________________________________________ 105 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
SIMULACIÓN - PRÁCTICAS --- PRÁCTICA Nº 15
106 _______________________________________________________________________________________
de la producción, para procurar que siempre trabajen al ritmo planeado, que semeja un tambor (drum), y asegurar que a estas operaciones no les falten materias primas. Esto se hace mediante un inventario de seguridad (Buffer) que se mantiene siempre en dichas operaciones. La cuerda (Rope) que gráficamente une la pieza que se está fabricando en el cuello de botella, con la última materia prima del inventario de seguridad, no es otra cosa que un sistema para informar el instante en que debe entrar una nueva materia prima al inventario, para que éste no disminuya. La segunda idea importante es que el tambor (que marca el ritmo de producción) no debe “sonar” si no existe demanda para los productos. Sólo se produce cuando hay demanda. De manera que como en el sistema JIT, es el cliente quien “hala” la producción. Cada golpe de tambor equivale a una “autorización” para producir. Juan Carlos imaginó que el “tamborilero” no podía ser otra persona que “el programador de la producción”, quien debe organizar las órdenes de pedido de acuerdo con su fecha de entrega o en las secuencias previamente establecidas, preparar los materiales, organizar a los operarios, llenar los inventarios de seguridad y finalmente empezar a “tocar su tambor”. En su reciente lectura del libro Factory physics62 , había visto otro sistema pull, conocido con la denominación de sistema Conwip (Constant Work In Process), creado por Hopp y Spearman, recogiendo lo más positivo de los sistemas JIT, DBR y MRP. La idea central de este sistema consiste en establecer un límite al inventario en proceso o WIP, no permitiendo entrada a ningún material o parte, hasta que haya salido un producto terminado, esto es, se haya incrementado el Throughput. Lo primero que se debe hacer en este caso es definir “un nivel de inventario constante” y como se explicó en la práctica 20, un valor candidato será el nivel de inventario crítico, Wo. Pero el problema de Juan Carlos para dar un concepto al gerente de Industrias ECL iba más allá de la simple definición de los dos sistemas. Se necesitaba la experimentación de los dos sistemas para compararlos, y la mejor forma de hacerlo era mediante simulación.
6
Wallace Hoop y Mark Spearman, Factorv phvsics, foundations of manufacturing managment, Boston, lrwin-McGraw Hill 1996.
___________________________________________________________________ 106 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
SIMULACIÓN - PRÁCTICAS --- PRÁCTICA Nº 15
107 _______________________________________________________________________________________
Parámetros que se deben considerar en la comparación Juan Carlos nuevamente utilizó los siguientes parámetros de producción: Throughput (TH), o tasa a la cual la empresa produce partes vendibles, cuantificable en productos por unidad de tiempo; Work In Process (WIP) como cantidad de materiales y productos en proceso que se encuentran en el sistema, que se mide en unidades, y Cvcle Time (CT), o tiempo que emplea un producto desde que ingresa en el sistema hasta que sale, cuantificable en la unidad de tiempo con la que se esté trabajando, para la comparación entre los dos sistemas. Modelando el sistema MRP (push) Se consideraron catorce instalaciones o locations: Recepción, Pulidora, Rectificadora, Troqueladora, Producto terminado, Proveedor y Consumidor; las tres máquinas tienen una zona para materias primas y otra para producto terminado. Los datos iniciales fueron: Down Times Statistics Statistics
Name
Capapacity
Units
Pulidora Rectificadora Troqueladora ZonaMat_dos ZonaMat_tres ZonaMat_cuatro Producto_terminado Proveedor ZonaPT_dos ZonaPT_tres ZonaPT_cuatro Consumidor ZonaEmbarque Recepción
1 1 1 30 30 10
1 1 1 1 1 1
None None None None None None
Time Series Time Series Time Series Time Series Time Series Time Series
Rules Oldest Oldest Oldest Oldest Oldest Oldest
30 30 30 10 Infinite Infinite Infinite Infinite
1 1 1 1 1 1 1 1
None None None None None None None None
Time Series Time Series Time Series Time Series Time Series Time Series Time Series Time Series
Oldest Oldest Oldest Oldest Oldest Oldest Oldest Oldest
En el modelo se incluyeron siete entidades, cuatro de flujo de valor agregado: Pieza, Pieza2, Pieza3, Pieza4, y tres de flujo de información: Orden, Orden2, Orden_troqueladora. Name Pieza
Speed(mpm) 150
Statistics Time Series
Notes
___________________________________________________________________ 107 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
SIMULACIÓN - PRÁCTICAS --- PRÁCTICA Nº 15
108 _______________________________________________________________________________________
Pieza2 Pieza3 Pieza4 Orden Orden2 Orden_troqueladora
150 150 150 150 150 150
Time Series Time Series Time Series Time Series Time Series Time Series
La entidad Pieza llega a la primera instalación del proceso, que es Recepción. Las demás entidades de flujo agregado (Pieza2, Pieza3 y Pieza4) son “piezas transformadas”. Los arrivals se definieron así: Entity Pieza
Location Recepción1
Quantity
First Time
Ocurrences
1
0
Infinite
Frequency Logic
Disable
e(15)
no
Se definió una red de movimientos (path network), llamada Desplazamientos, con trayectorias (paths), bidireccionales, que interconectan todas las instalaciones, entre si, y 13 interfaces que unen las instalaciones con los nodos. La siguiente es la información que se introdujo en el modelo. Name Desplazamientos
Type
Time/Speed
Paths
Interfaces
Nodes
Passing
Time
53
13
27
Interfaces Node N3 N4 N5 N6 N7 N8 N9 N13 N15 N16 N19 N25 N27
Locations ZonaMat_dos Pulidora ZonaMat_tres Rectificadora ZonaMat_cuatro Troqueladora Producto_terminado Proveedor ZonaPT_dos ZonaPT_tres ZonaEmbarque Consumidor Recepción
Bidireccional Bi Bi Bi Bi Bi Bi Bi Bi Bi Bi Bi Bi Bi
___________________________________________________________________ 108 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
SIMULACIÓN - PRÁCTICAS --- PRÁCTICA Nº 15
109 _______________________________________________________________________________________
En el modelo se utilizan tres tipos de recursos: seis operarios, un montacargas y dos operators, información que se introduce usando el menú Build-Resources. Name
Units
DTs
Statistics
Operario Montacargas
6
None
By Unit
1
None
By Unit
Operator
2
None
By Unit
Specifications Desplazamientos Desplazamientos Desplazamientos
Hom e
Speed Empty
Closest Resource
N(100,20)
Speed Full N(100,20 )
N1 N13
150
150
Yes
N1
E(100)
N(50,20)
Yes
Yes
Al hacer clic en el campo Logic se coloca la siguiente información: Resource Montacargas
Node
Entry Logic
Exit Logic
N13
GRAPHIC 2
GRAPHIC 1
Esto hace que el recurso Montacargas en el momento de llegar al nodo N13 (Proveedor) utilice Graphic 1 y cuando sale del mismo nodo utilice Graphic 2. Estos gráficos se definen utilizando la ventana de Resources Graphics y quitando el “chulo” de New en la misma ventana. Se utilizaron dos atributos (attributes), con la siguiente información: Identification Att Att_orden
Type Real Real
Classification Entity Entity
Además se incluyeron catorce variables, con los datos que se relacionan a continuación: Identification ct th qzona_cuatro órdenes órdenes_troqueladora qrectificadora órdenes_pulidora wip wip2 wip3
Type Real Real Integer Integer
Initial Value 0 0 0 0
Statistics Time Series Time Series Time Series Time Series
Integer Integer Integer Integer Integer Integer
0 0 0 0 0 0
Time Series Time Series Time Series Time Series Time Series Time Series
___________________________________________________________________ 109 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
SIMULACIÓN - PRÁCTICAS --- PRÁCTICA Nº 15
110 _______________________________________________________________________________________
wip4 CT_orden qtroqueladora órdenes_rectificadora
Integer Real Integer Integer
0 0 0 0
Time Series Time Series Time Series Time Series
Se utilizó la Subroutine CaLth para calcular el Throughput mediante la ley de Little, definida así: Identification Cal_th
Type None
Parameter
Logic If (ct0) then th=wip/ct
También se trabajó con un archivo externo o External file, llamado archivo para escribir en resultados.txt, definido así: Identification Archivo
Type General Write
File Name C:\Temp \MRP\resultados.txt
Prompt
Como el proceso o processing es extenso, se comentarán las instrucciones en grupos de cuatro:
Entity All
Location Recepción
Operation Output INC wip All Att=CLOCK() Cal_th()
Destination ZonaMat_dos
Rule First1
Move Logic MOVE WITH Operario OR Operator THEN FREE
All
ZonaMat_dos
Cal_th()
Pieza2
Pulidora
First1
Pulidora
Cal_th() WAlT e(10) INC wip3
Pieza2
ZonaPT_dos
First1
ZonaPT_dos
Cal_th()
Pieza2
ZonaMat_tres
First1
MOVE WITH Operario OR Operator THEN FREE MOVE WITH Operario OR Operator THEN FREE MOVE WITH Operario OR Operator THEN FREE
AIl
All
___________________________________________________________________ 110 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
SIMULACIÓN - PRÁCTICAS --- PRÁCTICA Nº 15
111 _______________________________________________________________________________________
En la primera instrucción, cualquier entidad que llegue a Recepción hace incrementar la variable Wip, o sea el inventario en proceso; se guarda el tiempo de entrada de la entidad en el atributo Att y se calcula el Throughput mediante la subrutina Cal_th(). La entidad que entra sale con destino a la instalación ZonaMat_dos en el mismo orden de llegada, transportada por el recurso Operario o por el recurso Operator, y tan pronto llegan a la instalación ZonaMat_dos el recurso regresa a su base. En la segunda instrucción, la entidad entra a la instalación ZonaMat_dos; se calcula el Throughput mediante la subrutina Cal_th(); la entidad que sale es Pieza2 con destino a la instalación Pulidora, transportada por el recurso que esté disponible entre el Operador y el Operator. En la tercera instrucción la entidad Pieza2 entra en la instalación Pulidora y se calcula el Throughput mediante la subrutina Cal_th(); espera un tiempo con distribución exponencial con media 10, incrementa el inventario en proceso de la instalación 3, Wip 3, y sale con destino a la instalación ZonaPT_dos, llevada por el recurso disponible. En la cuarta instrucción, Pieza2 entra a la instalación ZonaPT_dos; se calcula el Throughput mediante la subrutina Cal_th() y sale con destino a la instalación ZonaMat_tres, llevada por el recurso disponible. Entity All
Location ZonaMat_tres
Operation Cal_th()
Output Pieza3
Destination Rectificadora
Rule First 1
All
Rectificadora
DEC wip3 WAlT n(20,10) INC wip2 Cal_th()
Pieza3
ZonaPT_tres
First 1
Move Logic MOVE WITH Operario OR Operator THEN FREE MOVE WITH Operario OR Operator THEN FREE
All
ZonaPT_tres
Cal_th()
Pieza3
ZonaMat_cuatro
First 1
MOVE WITH Operario OR Operator THEN FREE
All
ZonaMat_cuatro
Cal_th()
Pieza4
Troqueladora
First 1
MOVE WITH Operario OR Operator THEN FREE
___________________________________________________________________ 111 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
SIMULACIÓN - PRÁCTICAS --- PRÁCTICA Nº 15
112 _______________________________________________________________________________________
En estas cuatro instrucciones no hay nada nuevo, distinto de observar que al pasar una entidad de una operación a otra, se decrementa el WIP de la anterior y se incrementa el WIP de la siguiente, y que la entidad se va transformando: Pieza2 en Pieza3, etcétera. Entity All
Location Troqueladora
All
Zona Embarque
All
Producto_ terminado
All
Producto_ terminado
Operation
Output
DEC wip2 WAlT e(15) INC wip4 Cal_th() Ct=CLOCK-Att
Pieza4
Destination Zona Embarque
Pieza4
Producto_ terminado
First 1
MOVE WITH Operario OR Operator THEN FREE DEC wip
Orden_ troqueladora
Producto_ terminado
First 1
MOVE WITH Operario OR Operator THEN FREE
All
EXIT
First 1
MOVE WITH Operario OR Operator THEN FREE
Cal_th()
DEC wip4 Cal_th() CT_orden= CLOCK()-Att_orden WAlT 300hr
Rule
Move Logic
First 1
MOVE WITH Operario OR Operator THEN FREE
En este grupo vale la pena comentar que el tiempo de Ciclo de la orden se calcula en la tercera instrucción, tomando la hora del reloj y restándole el contenido del Att_orden. Mediante Siniulation-Options-Browse se definió que sc guarda en C:Temp, se trabaja con Weekly Time y es período de calentamiento Warm Up.y se corre tres días.
Modelando el sistema JIT o Kanban (pull) Este es básicamente el mismo modelo anterior, con las siguientes adiciones: En locations: ___________________________________________________________________ 112 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
SIMULACIÓN - PRÁCTICAS --- PRÁCTICA Nº 15
113 _______________________________________________________________________________________
Name Orden_cuatro Orden_rectificadora Orden_pulidora Prod_term
Capacity 20
Units 1
Down Times None
Statistics Time Series
Rules Oldest
20 20 INFINITE
1 1 1
None None None
Time Series Time Series Time Series
Oldest Oldest Oldest
Se incluyeron cuatro sitios para colocar las órdenes. En el sistema JIT, como se mencionó anteriormente, la demanda es “halada” por el cliente. La orden del cliente se ubica en la instalación Prod_term, si existe inventario en la instalación Producto terminado, el cliente se “lleva” su orden y se incrementa el Throughput. Si no existe inventario, se coloca una Orden_cuatro, que corresponde a la Troqueladora, autorizando a esta operación para que haga un producto. Si en la ZonaPT_cuatro, que es el sitio en donde se coloca el producto terminado de la Troqueladora, existe inventario, éste pasa a Producto terminado; si no, se genera una Orden_rectificadora. De la misma manera, si en la ZonaPT_tres, que corresponde a la Rectificadora, existe inventario, éste se pasa a la Troqueladora; si no, se genera una Orden_pulidora. Nuevamente, si en la ZonaPT_dos, que es el de la Pulidora, no existe inventario, se genera Orden a recepción, para que envíe materias primas. Es fácil entender que si se dejan vacíos los almacenamientos de las diferentes operaciones, la atención a una orden del cliente se va a demorar todo el tiempo de ciclo, o sea el tiempo necesario en pedir los materiales, pulir, rectificar, troquelar y enviar a producto terminado. En la analogía con el supermercado, es como si éste se encontrase vacío y hubiese necesidad de llamar a cada uno de los proveedores. Por esta razón en las zonas de producto terminado “debe existir un inventario de seguridad”, que es e WIP. En entities: Name Orden
Sneed (mpm) 150
Statistics Time Series
Notes
Los arrivals se definieron así: Entity Location Quantity Orden Consumidor 1
First Time 0
Occurrences Infinite
Frequency e(15)
Logic
Disable no
___________________________________________________________________ 113 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
SIMULACIÓN - PRÁCTICAS --- PRÁCTICA Nº 15
114 _______________________________________________________________________________________
En interfaces. Node N21 N22 N24
Interfaces Locations Orden_pulidora Orden_rectificadora Orden_cuatro
En el processing: Entity
Location
Operation
All
Recepción
INC wip Att=CLOCK( ) Cal_th()
Output Destination ZonaAll Mat_dos
Rule
Move Logic
First 1
MOVE WITH Operario OR Operator THEN FREE
Pieza
ZonaMat_dos
Cal_th() Pieza2 JOIN 1 orden
Pulidora
First 1
MOVE WITH Operario OR Operator THEN FREE
Orden
Orden_pulidora
Cal_th()
Orden
ZonaMat_dos
JOIN 1
MOVE WITH Operario OR Operator THEN FREE
Pieza2
Pulidora
Cal_th() WAlT e(1O) INC wip3
Pieza2
ZonaPT_dos
First 1
MOVE WITH Operario OR Operator THEN FREE
En este grupo de instrucciones se observa cómo la entidad Orden, que es un pedido de material, se coloca en el sitio de las órdenes de la Pulidora, que se ha llamado Orden_pulidora, se dirige a ZonaMat_dos y “trae” de allí un material mediante la instrucción JOIN1, porque con este comando la Orden únicamente “regresa si encuentra material disponible; de lo contrario se queda esperando, de manera que se pueden “almacenar” varias de ellas. A medida que se va produciendo en cada instalación, se va incrementando el WIPi, y cuando se traslada material a la siguiente operación, se decrementa el WIPi de la operación i. ___________________________________________________________________ 114 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
SIMULACIÓN - PRÁCTICAS --- PRÁCTICA Nº 15
115 _______________________________________________________________________________________
Entity
Location
Operation
Output Destination ZonaPieza2 Mat_tres
Rule
Move Logic
Pieza2
ZonaPT_dos
Cal_th()
First 1
MOVE WITH Operario OR Operator THEN FREE
Pieza2
ZonaMat_tres
JOIN 1 orden Cal_th()
Pieza3
Rectificadora
First 1
MOVE WITH Operario OR Operator THEN FREE
Orden
Orden_rectificadora
Cal_th()
Orden
ZonaMat_tres
JOIN 1
MOVE WITH Operario OR Operator THEN FREE
Pieza3
Rectificadora
DEC wip3 WAlT n(20,1O) INC wip2 Cal_th()
Pieza3
ZonaPT_tres
First 1
MOVE WITH Operario OR Operator THEN FREE
En este grupo se envía una Orden por materiales al sitio donde se colocan las órdenes de la Rectificadora, y ésta “se devuelve” con material, mediante la instrucción JOIN 1. Entity
Location
Operation
Output Destination ZonaPieza3 Mat_cuatro
Pieza3 ZonaPT_tres
Cal_th()
Pieza3
ZonaMat_cuatro
JOIN 1 orden Pieza4 Cal_th()
Orden
Orden_cuatro
Cal_th()
Orden
Rule
Move Logic
First 1
MOVE WITH Operario OR Operator THEN FREE
Troqueladora
First 1
MOVE WITH Operario OR Operator THEN FREE
ZonaMat_cuatro
JOIN 1
MOVE WITH Operario OR Operator THEN FREE
___________________________________________________________________ 115 FACULTAD DE INGENIERÍA INDUSTRIAL UNIVERSIDAD TECNOLÓGICA DE PEREIRA
José A. Soto Mejía
SIMULACIÓN - PRÁCTICAS --- PRÁCTICA Nº 15
116 _______________________________________________________________________________________
Pieza4
Troqueladora
DEC wip2 WAlT e(15) INC wip4 Cal_th() Ct=CLOCK() Att
Pieza4
ZonaEmbarque
First 1
MOVE WITH Operario OR Operator THEN
FREE
En la cuarta instrucción de este grupo se calcula el tiempo de ciclo de la entidad, tomando la hora actual (CLOCK()) y restándole la hora de entrada de la entidad, que se ha guardado en el atributo Att. Entity
Location
Operation
Ouput
Destination
Pieza4
ZonaEmbarque
Cal_th()
Pieza4
Producto terminado
Att_orden= CLOCK() Orden
Consumidor
Cal_th()
Orden_ troqueladora
Rule JOIN 1
Move Logic MOVE WITH Operario OR Operator THEN FREE DEC Wip
Producto terminado
First 1 INT cant cant=CONTENTS (zonaMat_dos) IF (Wip3
View more...
Comments