Está en la página 1de 20

SIMULACION DE SISTEMAS

Uso de Atributos y Sentencia IF


THEN en ProModel
Observa la imagen y en función a ella expresa sus
opiniones

¿Qué son:
Distribución de usuario,
Clock( ), LOG?

¿Cómo armar una


simulación
en ProModel utilizando
Atributos?
AGENDA

1. Elementos a revisar en el modelo 5


(Atributos, sentencia IF THEN)
2. Modelo 5A
3. Modelo 5B
4. Evaluación / actividad aplicativa
Características a revisar en el
MODELO 5
• Aplicaciones:
- Sorteo (Acomodos), Inspeccionando una muestra,
- Retrabajos, Tiempos de Ciclo.

• Características de ProModel:
- Atributos.
- Lógica IF-THEN, instrucción ROUTE.
- Mezcla de Modelos.
- Distribuciones de probabilidad.
- Funciones CLOCK() y LOG.

• Interpretación de los Datos:


- Evaluación de los tiempos de ciclo.

• Teoría de Simulación:
- Lista de Eventos.
Atributos
• Atributos en ProModel:
- Hora inicio, número de serie de las partes, tipo de
material, etc.
• Definición
- Build/Attributes
- Nombre, Tipo, Clasificación
• Utilizar operadores e INC/DEC para manipular los valores de los
atributos.

Los atributos son entes similares a las


variables, pero están ligadas a las
entidades específicas y usualmente
contienen información acerca de esa
entidad.
IF - THEN (ELSE)
Sintaxis
IF <Expresión booleana> THEN <instrucción>

Ejemplos: La sentencia IF - THEN permiten al usuario


ejecutar líneas específicas de lógica basados
IF var1=5 THEN WAIT 2 min en ciertas condiciones.

IF attr1<> 4 OR var1>0 THEN Las instruccciones BEGIN y END son


BEGIN requeridas si se incluirán varias líneas para
var1=5 una posibilidad.
WAIT 2 min
END
ELSE Si no hay BEGIN y END el modelo solamente
BEGIN ejecuta la primer línea después del IF-THEN.
var2=3
Att3=7 La sentencia ELSE permite continuar listando
END condiciones específicas. También se puede
continuar con instrucciones
ELSE IF THEN.
Instrucción ROUTE
• Utilizado para controlar el ruteo específico de entidades
• Se utiliza en la lógica de operaciones (Operation)
• Se definen bloques de ruteo correspondientes

La creación de 2 bloques de ruteo enviará las


entidades a ambos destinos. Para controlar los
destinos existe el comando ROUTE, usando la
sentencia IF y el ROUTE tenemos el control absoluto
de los bloques a ejecutar.

La instrucción ROUTE seguido del parámetro “n” especifica que ruta será
referenciada. En el ejemplo mostrado, la ruta 1 ó 2 dependerá del tipo de
parte (1 ó 2). Este atributo ha sido “asignado” o “estampado” en el campo
de lógica (Logic) en la tabla de Llegadas.
EJERCICIO MODELO 5A
EJERCICIO MODELO 5A
En el Modelo 5A tenemos piezas que arriban y al llegar se les asigna un
valor a sus atributos, después son clasificadas de acuerdo al tipo de pieza.
De ahí se mueven a una de las 2 máquinas y pasan a una fila, donde una
de cada cinco ppiezas es inspeccionada. Existe una tasa de re-trabajo del
30%.

Crear lo siguiente:
Locaciones capacidad Atributos
Nombre tipo
fila_entrada infinita tipo_pieza entero
fresadora 1 Hora_Arribo real
torno 1
fila_inspección infinita Variables
ID tipo
Inspección 1 contador_inspección entero
pre_salida 1

Entidades
Pieza
EJERCICIO MODELO 5A
Procesamiento
Entidad Locación Operación Salida Destino Ruteo
Pieza fila_entrada Pieza fresadora
Pieza torno
Pieza fresadora 3 Pieza fila_inspeccion
Pieza torno 4 Pieza fila_inspeccion
Pieza fila_inspeccion Pieza pre_salida
Pieza inspeccion
Pieza inspección 1 Pieza fila_entrada .30
Pieza pre_salida .70
Pieza pre_salida Pieza exit

Llegadas
Entidad Locación Cantidad Primera vez Ocurrencias Frecuencia
Pieza fila_entrada 1 0 inf 3

También añadir la siguiente línea a la lógica de llegadas: tipo_pieza =


distribucion_llegadas()
Las piezas con el atributo tipo_pieza = 1 sean ruteadas a la fresadora, y aquellas cuyo
atributo tipo_pieza sea 2, que vayan directo al torno. (Utilizar la sentencia IF_THEN junto
con la sentencia ROUTE para esto).
En la fila de inspección, crear la lógica que envíe una de cada cinco piezas a inspección; las
demás piezas van directo a pre_salida. (También con IF_THEN y variables).
En la inspección el 70% de las partes son ruteadas a pre_salida y el 30% son enviadas para
re-trabajo a la fila de entrada.
Distribuciones
• Utilizadas para crear
aleatoriedad y representar
tiempos de operación con mayor
realidad.
• Se puede utilizar el constructor
de sentencias para crearlas.

Escoger la distribución correcta es una tarea


difícil, esto sin mencionar la tarea de escoger
los parámetros correctos de la distribución.
Esto generalmente se lleva a cabo con software
de ajuste de curvas, que discutiremos más
adelante.
En nuestro caso, las distribuciones están asociadas con tiempos de proceso, aunque se
pueden utilizar en muchas partes dentro de ProModel.
No todos los eventos son determinísticos en el mundo real. Siempre ocurren con un
grado de aleatoriedad. Las distribuciones son uno de los métodos de ProModel para
reflejar este tipo de efectos dentro del modelo.
Stat::Fit

Inicie Stat::Fit seleccionando


la opción “Tools / Stat::Fit” el
software ProModel incluye
una copia completa de este
modulo que nos permitirá
determinar la mejor
distribución de
probabilidades a usar para
representar un
comportamiento aleatorio.
Tres pasos para
usar Stat::Fit

• Ingrese la data (manualmente, pegándola, o


importando texto)
• Seleccione la opción “Auto-fit”
• Examine los resultados
• Exporte la mejor distribución a ProModel
Reporte de Stat::Fit
Data Actual Vs.
Distribución Seleccionada

Dado que la distribución estándar que seleccione no será exactamente la misma que su
data, estará incluyendo un pequeño error en su modelo.
No olvide examinar los histogramas y las comparaciones gráficas para asegurarse de que
entiende las implicaciones de la selección de su curva.
Funciones CLOCK() y LOG
• CLOCK()
- Utilización: CLOCK(<unidad de tiempo>)
- Retorna el valor del tiempo actual de la simulación .
- () default, (hr), (min), (sec)

• LOG
- Utilización: LOG <texto>, <expresión>
- Resta la expresión del tiempo de simulación actual y
almacena el resultado con el texto como encabezado
- Los resultados se presentan al final del reporte de la salida.

Las funciones CLOCK y LOG le permiten rastrear las demoras de los eventos
(como el tiempo del ciclo y otras demoras) en su modelo. La función CLOCK
retorna un número real, o sea que los atributos y variables a los que se les
asignará el CLOCK deben ser de tipo real.
EJERCICIO MODELO 5B
EJERCICIO MODELO 5B

En el Modelo 5B añadiremos distribuciones al modelo para los tiempos de


los proceso, y rastrearemos las piezas a lo largo del sistema para calcular
los tiempos de ciclo.

Cambiar el tiempo de procesamiento para las siguientes locaciones:


Entidad Locación Operación
Pieza fresadora N(3,.1)
Pieza torno N(4,.1)
Pieza inspección N(1,.1)

Asignar a cada entidad, la hora de llegada cuando la pieza ingrese a la fila


de entrada con la instrucción CLOCK().
Llevar una bitácora a la hora de salida de pre_salida utilizando el mismo
atributo y la instrucción LOG.
Interpretación de los Datos

Cálculo del tiempo de ciclo


Reporte general y gráfico
Un registro por cada
entidad
Técnicas y Teoría de Simulación
• Lista de eventos de Simulación

- Los eventos ocurren en ProModel uno a la vez, en otras


palabras, es un Simulador de Eventos Discretos.
- ¿Qué ocurre cuando varios eventos son programados
para ocurrir al mismo tiempo?

La Computadora solamente puede manejar un evento a la vez y la “máquina” del


simulador determina qué eventos serán programados para ser ejecutados.
Existen muchos métodos muy diferentes para controlar y “romper” los empates dentro
de ProModel, algunos de los cuales serán examinados en el futuro.

Para el ingeniero de simulación, estos conflictos son inexistentes.

También podría gustarte