Está en la página 1de 260

Jared R.

Ocampo, MSc
Flexsim Centroamrica
2
Capitulo 1. Introduccin a la Simulacin
Capitulo 2. Introduccin a Flexsim
Capitulo 3. Pasos de Modelado en Flexsim
Capitulo 4. Librera de Objetos de Flexsim
Capitulo 5. Funciones y Declaraciones
Capitulo 6. Conceptos y Modelos
Introduccin a la Simulacin
4
La simulacin es la imitacin de un
sistema, basado en conocimiento o
supuestos acerca del comportamiento
de las partes de ese sistema, con el
propsito de obtener una idea del
comportamiento de todo el sistema.
5
Simulacin es la imitacin de un sistema
dinmico utilizando un modelo
computarizado para poder evaluar y mejorar
el desempeo de un sistema.
6
Un modelo es una abstraccin (hecha
a propsito). Solo debera contener
aquellos elementos de la realidad que
son necesarios para resolver el
problema. El modelo mas sencillo es el
mejor modelo posible para cumplir con
el propsito.
7
Conceptos de Simulacin
Un modelo es una representacin de un
sistema o de un proceso.
Un modelo de simulacin es una
representacin que incorpora el tiempo y
los cambios que ocurren a travs de el.
En esta clase se estudiara la utilizacin de
modelos dinmicos, estocsticos y de
eventos discretos.
8
Conceptos de Simulacin
Un modelo de eventos discreto es el que
cambia de estado solamente en puntos
discretos a un determinado tiempo
(como resultado de eventos
especficos) y no continuamente.
9
Simulacin de Eventos-Discretos
Ejemplos de EVENTOS de un sistema:
arribo de ordenes/partes, descanso de un operario
movimiento de un producto: recoleccin, entrega
comienzo y final de un proceso de maquinado
descompostura de una maquina, reparacin
Ejemplos de variables de ESTADO:
estatus de una maquina: idle (ocio), setup (preparacin),
processing (procesando), down (descompuesta)
contenido de un queue (lnea de espera), average stay
time (tiempo de estada promedio)
disponibilidad del operador, travelling (viajando), loading
(cargando), utilizacin
10
Un evento es una ocurrencia instantnea que
cambia el estado del modelo. Ejemplo: la llegada de
un cliente al banco y la completacin del servicio
requerido por el cliente. A este tipo de eventos se
les llama eventos primarios.
En simulacin estos eventos estn programados a
ocurrir en un tiempo futuro, calculado a travs datos
estadsticos.
Concepto de Simulacin
11
Los eventos secundarios son generados
internamente por un modelo lgico. Ejemplo: en
una lnea de espera el servicio se inicia hasta
cuando un servidor esta libre y el evento es
programado a ocurrir inmediatamente.
Un modelo puede incorporar aspectos lgicos,
matemticos y estructurales del sistema o
procesos.
Concepto de Simulacin
12
Una entidad es un objeto en el modelo. Entidades
dinmicas son creadas a un tiempo cero o en el
momento de llegadas del evento, usualmente
representan objetos reales que fluyen a travs de
un sistema
Un recurso es una entidad que provee un servicio a
entidades dinmicas. Su capacidad es finita.
Ejemplo: un operario o una maquina
Concepto de Simulacin
13
En el caso de una lnea de manufactura..
De un ejemplo de entidad dinmica
De un ejemplo de entidad no-dinmica
De un ejemplo de evento primario
De un ejemplo de evento secundario
De un ejemplo de recurso
14
Ejemplo de Simulacin (Promodel)
15
Ejemplo de Simulacin (Flexsim)
16
Desafos de los nuevos sistemas
1. Ciclos de vida mas corto Debido a cambios de
producto mas frecuentes y radicales y a
actualizaciones del sistema mas frecuentes.
2. Complejidad mas avanzada Debido a tecnologas
cada vez mas sofisticadas y el incremento en
integracin horizontal y vertical
3. Requerimientos de desempeo mas elevados
Debido a un incremento en la expectativa del cliente
en cuanto a calidad, tiempo de entrega y precio y a
una competencia global mas feroz.
1950 2000
17
Mtodos de planeacin actuales
Clculos matemticos Problemas: hace
suposiciones irreales y demasiado simplistas, no
puede manejar relaciones complejas y es difcil de
comunicar a otros.
Hoja electrnica (spreadsheet) Problemas: hace
suposiciones irreales y demasiado simplistas, no toma
en consideracin interdependencias y esta basada en
average.
Prueba y error Problemas: es costosa, consume
mucho tiempo y es disruptiva.
E = mc
2
18
Regla de Dieses (Rule of Tens)
El costo de corregir errores se incrementa por
un factor de diez por cada etapa que pasa sin
ser corregido.
Operation
Cost

System Stage
Installation Design Concept
19
Debido a estos desafos y a los problemas que las
actuales herramientas de planeacin tienen es
necesario el uso de mejores herramientas que:
1. Sean flexibles
2. Sen confiables
3. Sean rpidas y fciles de utilizar
O sea
20
La simulacin es:
Rpida y fcil de usar
Suficientemente verstil para modelar cualquier
sistema
Captura la dinmica de un sistema y su variacin
La animacin proporciona comunicacin efectiva
Le obliga a pensar a travs de los detalles
operacionales del sistema
21
Aquellos poco familiarizados con la simulacin
tienen la idea errnea que la simulacin por si
misma resuelve problemas. Ellos asumen que
al definir el problema, la simulacin les
generara una solucin
La simulacin es un evaluador de soluciones,
no un generador de soluciones. No produce una
solucin terica optima, sino que le dirige al
usuario hacia la mejor solucin posible.
22
Cuales son los desafos de la manufactura
moderna?
Que ventajas tiene la simulacin sobre otras
alternativas en el diseo de un sistema?
Cmo la actividad de modelar por si misma
(sin correr el modelo) ayuda en el diseo de
un nuevo sistema?
Puede la simulacin por si misma mejorar el
diseo de un sistema?
23
Entradas y Salidas de la Simulacin
Operating Information
Product/customer Mix
Routings
Schedules
Operating Rules
Performance Metrics
Flow Times
Resource Utilizations
Inventory levels
Output rates
Bus. Processes
Resource Mgmt.
Supply Chain
Factory Design
24
Preguntas de Revisin
a. Que razones existen para que aumente la
popularidad de la simulacin por
computadora?
b. Como sigue la simulacin el mtodo
cientfico?
c. Que tan importante son las estadsticas para
hacer simulacin?
d. Es un ejercicio de simulacin desperdiciado
si no se encuentran problemas? Explique
25
26
Un software de simulacin es formado por objetos
que pueden ser utilizados dentro de un modelo
para representar diferentes actividades en un
sistema.
En un modelo de simulacin estos objetos tienen
parmetros que pueden ser ajustados para
adecuarse a las situaciones especificas del
sistema. Esta funcionalidad les permite ser
configurables para representar distintos sistemas
o procesos.
La evaluacin, la comparacin y el anlisis son las
razones claves para utilizar la simulacin.
27
Permite la experimentacin con un modelo del
sistema
Permite la comparacin de varios diseos de
alternativas y procedimientos de operacin
Permite el estudio de la dinmica de un sistema,
como cambia a travs del tiempo y como
interacta con otros subsistemas y
componentes
Vent aj as ( Pros)
28
Consume tiempo, la informacin no est
disponible o es difcil de obtener
Puede llevar a conclusiones prematuras basadas
en evidencia insuficiente
Se puede enfocar mucho a embellecer el sistema
en el software y se pierde el objetivo del modelo
Desvent aj as ( Cont ras)
29
1. El sistema real es regularizado y sus componentes
pueden ser definidos o caracterizados
2. El sistema real posee un grado de complejidad,
interaccin o interdependencia entre varios
componentes o es demasiado grande lo cual
dificulta o es imposible predecirlo o imaginarlo
3. Si se est diseando un nuevo sistema
considerando cambios es su distribucin fsica o
procedimientos de operacin
La Simulacin es t il Cuando:
30
4. Se est considerando una gran inversin en un
sistema nuevo o ya existente y este representa una
modificacin en la cual no se posee experiencia o
existe un alto grado de riesgo.
5. Se requiere una herramienta en la cual todas las
personas involucradas puedan llegar a una sola
conclusin y luego poder visualizar los resultados
y efectos.
6. La simulacin con animacin es una excelente
forma para entrenar y educar gerentes, ingenieros,
supervisores y operarios ya que visualizan su
trabajo y contribucin dentro del sistema.
31
Cuando la nica herramienta que
tenemos es un martillo, todo problema
comienza a parecerse a un clavo.
- Abraham Maslow
32
Otras alternativas (herramientas)
Mientras la simulacin es tal vez la herramienta
de anlisis de sistema ms verstil y poderosa,
otras tcnicas estn disponibles que pueden ser
de ayuda en la planeacin de sistemas.
Estas tcnicas alternativas estn usualmente
basadas en clculos matemticos y funcionan
muy bien en sistemas simples con poca
interdependencia y variabilidad.
33
Cuando No Utilizar Simulacin?
1. El problema se puede resolver usando anlisis de
sentido comn
2. El problema se puede resolver analticamente
(formulas)
3. Es mas fcil o barato realizar experimentos en el
sistema real
4. El costo de simular excede los ahorros posibles
5. No existen los recursos apropiados disponibles
para el proyecto
34
Cuando No Utilizar Simulacin?
6. No hay suficiente tiempo para que los resultados
del modelo sean tiles
7. No existen datos ni siquiera estimados
8. El modelo no puede ser verificado o validado
9. Las expectativas del proyecto no pueden ser
alcanzadas
10. Si el comportamiento del sistema es demasiado
complejo, o no puede ser definido.
35
Modelacin por medio de ecuaciones
matemticas y hojas electrnicas
Ejemplos:
Modelos Estadsticos
Modelos de Teora de Colas
Modelo de Sistemas de Inventarios
36
Parte de la Investigacin Operativa que
estudia el comportamiento de sistemas
cuyos elementos incluyen lneas de
espera (colas).
37
.
..
.
Entidades que arriban Servidor Entidades que salen Queue
Se basa en el uso de averages
38
personas esperando por un servicio (bibliotecas,
bancos, gasolineras, hospital)
maquinas esperando por una reparacin, piezas de
un producto esperando a ser ensambladas
programas de ordenador esperando a ser ejecutados
por un procesador,
informacin de Internet esperando en un nodo para
ser transferida a su destino
aviones esperando a despegar o aterrizar,
39
Los elementos mas importantes en un sistema de colas:
clientes y servicio.
Los clientes se caracterizan por los intervalos de tiempo que
separan sus llegadas.
El servicio se caracteriza por el tipo y tiempo de servicio,
adems de por el numero de servidores. El tipo de servicio o
disciplina representa el orden en el que los clientes se
seleccionan de la cola.
Las llegadas de clientes pueden ser deterministas o
aleatorios (en este caso se modelan mediante una
distribucin estadstica).
Los tiempos de servicio tambin pueden ser deterministas o
aleatorios (distribucin estadstica).
40
Pueden existir una o varias fuentes.
Se suele asumir independencia entre llegadas.
Intervalos entre llegadas: deterministas o
aleatorios.
Tasa de llegadas: l = numero medio de clientes
que acceden al sistema por unidad de tiempo.
Tiempo medio entre llegadas: 1/l
41
Puede ser infinita o finita (sistemas abiertos o cerrados,
respectivamente). Ejemplo de sistema abierto: un banco, ya que
es prcticamente imposible que todos los posibles clientes
coincidan en su llegada.
Ejemplo de sistema cerrado: un servidor de Internet con un
numero relativamente pequeo de usuarios autorizados (es
posible que en un momento determinado se conecten todos los
usuarios al servidor).
Si la fuente es finita, entonces el numero de clientes en la cola
afecta al numero de clientes fuera del sistema.
La llegada puede ser en bloque o de forma unitaria.
Frecuentemente el bloque se trata como un solo cliente.
42
Pueden ser impacientes.
Por tanto, los clientes se pueden perder, bien porque
no entran en el sistema, bien porque abandonan tras
un tiempo en el sistema.
Tambin, los clientes pueden percibir un ritmo mas
acelerado en una cola distinta y por tanto decidir
cambiarse.
43
Puede ser de uno o varios canales.
Puede existir interferencia entre canales.
Puede ser de capacidad limitada.
Disciplina de la cola: orden de seleccin en el
servicio (FIFO, LIFO, aleatorio, orden de
prioridad, etc.).
44
Pueden existir uno o varios servidores.
Se suele asumir independencia entre tiempos de
servicio.
Duracin de los servicios: deterministas o aleatorios.
Tasa de servicio: m= numero medio de clientes que
son atendidos por unidad de tiempo.
Tiempo medio entre llegadas: 1/m.
45
Una vez caracterizado el sistema, se puede contestar:
Que proporcin de tiempo estn los servidores
desocupados?
Cual es el tiempo medio de espera para un cliente?,
es este un tiempo razonable?, se pierden clientes
por tiempos de espera largos?
Es conveniente aadir mas servidores para reducir
el tiempo medio de espera?
Cual es el numero medio de clientes en cola?
Cual es la probabilidad de que la espera sea mayor
que una determinada longitud en un tiempo
determinado?.
46
Notacin de Kendall: las caractersticas del
sistema se especifican por los smbolos:
A/B/s/k/t/d
donde A y B denotan las distribuciones de los
tiempos entre llegadas y de servicio,
respectivamente.
s denota el numero de servidores en paralelo
o canales, k denota la capacidad del sistema,
t denota el tamao de la fuente de entrada, y
d es la disciplina de la cola.
47
La distribucin puede ser
M Exponencial
D Constante o determinista
Ek Erlang de parmetro k
G Genrica e independiente
La disciplina puede ser
FIFO First in, First out
LIFO Last in, Last out
SIRO Service in random order
GD General discipline
48
Por ejemplo, un sistema que se describe como
(M/M/1)(8/8/FIFO)
denota un sistema abierto que contiene un nico
servidor con tiempos de llegada y servicio
exponenciales, capacidad infinita y disciplina primero
que entra, primero que se sirve.
Solo un numero pequeo de sistemas se puede
resolver analticamente.
Modelos sencillos: M/M/1, M/M/s, M/M/1/k.
49
Dados los siguientes parmetros (estimados
usualmente de manera estadstica):
= tasa de llegadas
= tasa de servicio
- s = numero de servidores
Se calcula:
= factor de utilizacin del sistema o intensidad de
trafico (proporcin de tiempo esperado en el que los
servidores estn ocupados). Si < 1 entonces el
sistema se estabiliza de otro modo el numero de
clientes se incrementa sin limite.
50
Se calcula:
L = valor esperado del numero de clientes en el
sistema.
Lq = valor esperado del numero de clientes en
cola.
W= tiempo medio de espera en el sistema.
Wq = tiempo medio de espera en la cola.
pn = probabilidad de que n clientes estn en el
sistema (en estado estacionario).
51
Ver Ejemplo Teora de Colas 1
52
53
Avg Depth
10 ft.
54
Los elementos de un sistema
operan en forma conjunta unos
con otros, esto significa que
muchas veces se forman
interacciones muy complejas
Desafortunadamente, la intuicin
humana no es muy buena
analizando y entendiendo
sistemas complejos

55
1. Interdependencia entre elementos de
forma que cada elemento afecte a otros
elementos
2. Variabilidad en el comportamiento de los
elementos que produce incertidumbre
56
Las Interdependencias causan que el comportamiento de
un elemento afecte otros elementos en un sistema.
Si una mquina se para, el personal de reparacin es
puesto en accin mientras hay una disminucin en la
operacin y las siguientes estaciones se vuelven ociosas
debido a la falta de partes.
Un aumento en otras operaciones pueden hasta causar
toda una lnea a pararse debido a un cuello de botella en
el flujo de una entidad causando un bloqueo de otras
actividades.
Otro lugar donde esta reaccin en cadena o efecto
domino se manifiesta es en situaciones donde los
recursos son compartidos entre dos o ms actividades.
57
Variabilidad es una caracterstica inherente en
cualquier sistema que contiene personal y
maquinaria.
Incertidumbre en las entregas de suplidores, rango
de fallas de los equipos, impredecible
abstencionismo y demanda fluctuante todo se
combina para producir un caos en la planeacin de
los sistemas de operaciones.
La variabilidad hace que los ya impredecibles
efectos de las interdependencias conviertan a los
sistemas en sistemas ms complejos e
impredecibles.
58
Interdependencies Variability Complexity
59
Numero de interdependencias y
variables aleatorias
Grado de
dificultad
analtica
60
Interdependencias
Interacciones de flujo
Restricciones por recursos
compartidos
Variabilidad
Tiempos de Actividades
Decisiones, Cantidades
Eventos, Atributos
61
mejorar utilizacin del equipo
reducir tiempo en espera y tamaos de los queue
alocar recursos eficientemente
eliminacin de problemas de stock-out (shortage)
minimizar los efectos negativos de breakdowns (descomposturas)
minimizar los efectos negativos de rechazos y desperdicio
estudiar ideas de inversin alternativas
determinar tiempos de throughput de las piezas
estudiar planes de reduccin de costos
establecer tamaos ptimos de lotes y secuencia de piezas
resolver problemas de manejo de materiales
estudiar el efecto de tiempos de preparacin (setup times) e intercambio
de herramientas (tool changeovers)
optimizar lgica de prioritizacin y despacho para productos y servicios
entrenar operadores en el comportamiento general del sistema y
desempeo relacionado con el trabajo
manejar toma de decisiones operacionales en el da-a-da
62
Elementos de un Sistema de
Procesamiento
Desde la perspectiva de simulacin, se
puede decir que un sistema consiste de
entidades, actividades, recursos y
controles.
63
los productos (items)
procesados a travs del sistema.
Humanos o animados
Inanimados
Intangibles
Continuos
64
las tareas desarrolladas
directamente o indirectamente en soporte del
procesamiento de entidades.
Procesamiento de entidades (check-in,
tratamiento, inspeccin, fabricacin, etc.)
Movimiento de entidades y recursos
Reparacin de recursos, ajuste, setup.
65
los medios mediante los
cuales las actividades son desarrolladas.
Humanos
Inanimados (maquinas, espacio de piso)
Intangibles (energia, datos)
66
determina como, cuando y
donde se desarrollan las actividades.
Planes
Polticas
Schedules
Instrucciones
Lgica de control
67
Ambiente de Modelado y Simulacin
Sistema
bajo
Estudio
Modelo
del
Sistema
Modelo de
Simulacin
Flexsim
Recoleccin
de Datos
Validacin Verificacin
Model Adequacy
Anlisis
Programacin
Interfase
Cambiar parmetros o estructura,
correr, obtener resultados
68
1 - Weibull
0.00 0.25 0.50 0.75 1.00 1.25 1.50 1.75 2.00 2.25 2.50
0.00
0.10
0.20
0.30
0.40
0.50
0.60
0.70
0.80
Density Function Plot
X-Value
f
(
x
)
3 - Normal
0.00 0.50 1.00 1.50 2.00 0.00 -0.50
0.00
0.10
0.20
0.30
0.40
0.50
0.60
0.70
0.80
Density Function Plot
X-Value
f
(
x
)
2 - Exponential
0.0 1.0 2.0 3.0 4.0 5.0 6.0
0.00
0.25
0.50
0.75
1.00
Density Function Plot
X-Value
f
(
x
)
4 - Lognormal
0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
0.00
0.10
0.20
0.30
0.40
0.50
0.60
0.70
0.80
0.90
1.00
Density Function Plot
X-Value
f
(
x
)
Also: Bernoulli
69
Una de las caractersticas ms grande de la
simulacin es su habilidad de imitar el
comportamiento aleatorio o la variacin que es
caracterstica de los sistemas estocsticos.
La simulacin del comportamiento aleatorio
requiere de un mtodo para generar nmeros
aleatorios as como de rutinas para generar
variantes aleatorias basadas en una distribucin
de probabilidad dada.
70
Duraciones tiempos de operacin, tiempos de
reparacin, tiempos de setup, tiempos de
movimiento
Resultados el xito de una operacin, la decisin
de cual actividad hacer despus
Cantidades tamao del lote, cantidad de arribos,
numero de trabajadores ausentes
Intervalos de Evento tiempo entre arribos,
tiempo entre fallas de equipo
Atributos tipo de cliente, tamao de una pieza,
nivel de habilidad.
71
El comportamiento aleatorio es imitado en la
simulacin utilizando un generador de nmeros
aleatorios.
Un generador de nmeros aleatorios es un algoritmo
determinstico usado para crear uniformemente (es
decir cualquier valor es igualmente probable de
ocurrir) e independientemente (es decir el valor
anterior muestreado no afecta la probabilidad del
valor muestreado siguiente) valores verdaderos
distribuidos entre 0 y 1 tales que 0 < X < 1.
Generador Multiplicativo Congruencial Lineal de
Modulo Primo (usado en ProModel):
Z
i
= 630,360,016 X Z
I-1
X mod(2
31
1)
En donde Zi es el i-jesimo valor que es generado de
la ecuacin (el valor Z0 inicial es la semilla o valor
inicial para el generador). El valor Zi, el cual es un
entero, es entonces convertido a un valor
uniformemente distribuido entre 0 y 1.
73
En sentido estricto, los nmeros generados
usando un generador de nmero aleatorios no
son puramente aleatorios porque son fiables y
reproducibles (a veces esto es ventajoso.)
Por esta razn a estos valores se les llama
nmeros pseudo-aleatorios (pseudo significa
imitado)
Estos valores se aproximan adecuadamente a la
aleatoriedad del mundo real para los propsitos
de la simulacin.
74
Las variables aleatorias pueden luego ser
transformadas a valores que se ajustan a una
distribucin de probabilidad particular.
Para generar una variante aleatoria, un nmero
aleatorio (generado por un generador de nmeros
aleatorios) es plasmado en una ecuacin de
transformacin que convierte el nmero aleatorio
en un valor que se conforma a la distribucin de
probabilidad que define la variable aleatoria.
75
Note que para esta funcin particular de probabilidad acumulativa
mientras el nmero aleatorio se acerca ms a 1, la extensin entre
las variantes aleatorias correspondientes disminuye. Observe, el
hecho que la mitad de las variantes aleatorias generadas (de 0 al
0.5) toma speramente el 80% del rango total de los valores.
Nmeros Aleatorios
.1 .2 .3 .4 .5 .6 .7 .8 .9 1.0 0
V
a
r
i
a
n
t
e
s

A
l
e
a
t
o
r
i
a
s
76
Para ilustrar esto, suponga
que las partes pasan por
una operacin de
inspeccin el 80% del
tiempo y fallan la inspeccin
el 20% del tiempo
Para determinar el resultado siguiente para un evento
aleatorio, un nmero aleatorio es generado (es decir un
valor uniformemente distribuido entre 0 y 1)
El valor de la variable aleatoria entonces se compara con
el valor de la probabilidad definida para el evento. Si el
valor es menor que o igual a la probabilidad definida para
el resultado, se observa el resultado, si no el resultado
alternativo ocurre.
incoming parts
fail
pass
.20
.80
Inspection
77
Que tipos de simulacin sern cubiertas en este
curso?
Cuales son algunos ejemplos de variables aleatorias
en un sistema?
Que es un generador de nmeros aleatorios y que
rango de valores genera?
Que es una variante aleatoria y como se generan?
78
La variables aleatorias de un sistema deben de
modelarse de acuerdo a ciertas ecuaciones
matemticas que sean capaces de reproducir su
variabilidad
En la mayora de casos, dicha variabilidad puede
clasificarse dentro de alguna distribucin de
probabilidad, por lo que, uno de los pasos mas
importantes de todo proceso de modelado estocstico
es el encontrar el tipo de distribucin de probabilidad
que modele la variabilidad de los datos de entrada del
sistema.
79
Time of Day
Rate of
Arrival
10:00 a.m. 12:00 a.m. a.m. 2:00 p.m. 4:00 p.m. 6:00 p.m.
Cambio en el Arribo de Clientes Entre las 10 a.m. y 6 p.m.
80
Distribucin de Tiempos en que una Maquina esta Mala
Repair Time
Frequency
of
Occurrence
Part Jams
Mechanical Failures
81
Como se explico anteriormente, los sistemas
estocsticos tienen con frecuencia valores de
tiempo o de cantidad que varen dentro de un
rango dado y de acuerdo una densidad
especificada definida por una distribucin de
probabilidad.
Las distribuciones de probabilidad son tiles para
predecir el tiempo prximo, la distancia, la
cantidad, etc. cuando estos valores son variables
aleatorias.
82
Las distribuciones de probabilidad son definidas
especificando el tipo de distribucin (normal,
exponencial, etc.) y especificando los
parmetros que describen la forma o la densidad
y el rango de la distribucin.
Por ejemplo, puede ser que describamos el
tiempo de registro de una operacin que debe
ser distribuida normalmente con una media de
5.2 minutos y una desviacin de estndar de 4
minutos. Durante la simulacin las variantes
aleatorias se generan usando sta distribucin
para obtener tiempos de operacin exitosos.
83
Las distribuciones de
probabilidad pueden ser:
discretas (describen la
probabilidad de que ocurran
valores especficos)
continuas (describen la
probabilidad de que un valor
este dentro de un rango
dado).
Value
P
r
o
b
a
b
i
l
i
t
y
0 1 2 3 4 5 6 7
0
.2
.4
.6
.8
1.
0
Value
0 1 2 3 4 5 6 7
0
.2
.4
.6
.8
1.0
f
x
84
Las distribuciones discretas mas usadas en la
modelacin de sistemas son:
Bernoulli
Uniforme Discreta
Binomial
Poisson
Geomtrica
La salida de un proceso es defectuosa o
no-defectuosa
Un empleado llega a trabajar o no
Una operacin es requerida o no
f(x)
x
0 1
1.0
0.5
Funcin de
Densidad:
Distribucin
Acumulada:
1
0 1
) (
x si p
x si p
x p
1 1
1 0 1
0 0
) (
x si
x si p
x si
x F
El tipo de una entidad de entrada dado
que cada tipo de entidad posible es
igualmente probable que ocurra
f(x)
x
a b
Funcin de
Densidad:
Distribucin
Acumulada:
x j si
j x i si i i x
i x si
x F
1
0
) (
j i i si
i j
x p , 1 ,
1
1
) (
El numero de items defectuosos en un lote.
El numero de clientes de un tipo particular que
entran al sistema.
El numero de empleados de un grupo de empleados
que no se presentan a trabajar.
f(x)
x
0
1 2 3 4 5 6
.4
.3
.2
.1
Funcin de Densidad:
Distribucin Acumulada:
manera otra de
n x p p
x
n
x p
x n x
0
, , 1 , 0 ) 1 (
) (
n x si
n x si p
i
n
x
x si
x F
p i
x
i
1
0
0 0
) (
1
1
0
El numero de entidades arribando cada hora.
El numero de defectos por item.
El numero de veces que un recurso es interrumpido
cada hora.
f(x)
x
0.2
0.1
0 1 2 3 4 5 6 7 8 9 10
Funcin de Densidad:
Distribucin Acumulada:
manera otra de
x si
x
e
x p
x
0
, 1 , 0
!
) (
x
i
i
x si
i
e x F
0
0
!
) (
El numero de ciclos de maquina antes que una falla
ocurra.
El numero de items inspeccionados antes que un item
defectuoso es encontrado.
El numero de clientes procesados antes de que un tipo
particular sea encontrado
f(x)
x
1 2 3 4 5 6 7
0
0.4
0.3
0.2
0.1
Funcin de Densidad:
Distribucin Acumulada:
manera otra de
x si p p
x f
x
0
, 1 , 0 ) 1 (
) (
manera otra de
x si p
x F
x
0
0 ) 1 ( 1
) (
1
90
Las distribuciones continuas mas usadas
en la modelacin de sistemas son:
Uniforme
Exponencial
Weibull
Triangular
Normal
Lognormal
El tipo de una entidad de entrada dado
que cada tipo de entidad posible es
igualmente probable que ocurra
f(x)
x
a b
a b
x f
1
) (
a b
a x
x F ) (
Funcin de Densidad:
Distribucin Acumulada:
nter arribos entre ocurrencias tales como el
tiempo entre arribos de clientes.
Ciertos tiempo de reparacin o actividades
tales como la duracin de conversaciones
telefnicas.
La inversa de una distribucin Poisson
f(x)
x
Funcin de Densidad:
Distribucin Acumulada:
/
1
) (
x
e x f
/
1 ) (
x
e x F
Usada en teora de confiabilidad para definir el
tiempo hasta una falla particularmente a causa
de objetos o partes (e.g. rodamientos,
herramientas, etc.) que se desgastan
f(x)
x
=
1
2
Funcin de Densidad:
Distribucin Acumulada:
) / ( 1
) (
x
e x x f
) / (
1 ) (
x
e x F
f(x)
x
a m c
Buena primera aproximacin a la verdadera
distribucin cuando se tiene pocos datos y
no se ha realizado un anlisis de bondad de
ajuste
Funcin de
Densidad:
Distribucin
Acumulada:
c x b si
b c a c
x c
b x a si
a b a c
x
x f
) )( (
) ( 2
) )( (
) 1 ( 2
) (
c x b si
b c a c
x c
b x a si
a b a c
a x
x F
) )( (
) (
1
) )( (
) (
) (
2
2
Muy popular pero raramente una
verdadera representacin de datos
reales.
f(x)
x
Funcin de Densidad:
Distribucin Acumulada:
2
2
1
2
1
) (
x
e x f
No existe ecuacin
Actividades manuales tales como
ensamblaje, inspeccin, o reparacin.
El tiempo entre fallas es a menudo
distribuido de forma lognormal.
f(x)
x
Funcin de Densidad:
Distribucin Acumulada:
2
2
2
2
) (ln
exp
2
1
) (
x
x
x f
No existe ecuacin
Proporciones aleatorias tales como el
porcentaje de items defectuosos en un lote
Tiempos de actividades, particularmente
cuando mltiples tareas componen la
actividad (anlisis PERT esta basado en
distribucin beta).
f(x)
x
=0.5, =2
=1.0, =2.0
=.5, =.5
1.0 0
Funcin de Densidad:
Distribucin Acumulada:
SE BUSCA!!
SE BUSCA!!
Tareas manuales tales como tiempos
de servicio o tiempos de reparacin
f(x)
x
>
1
2
Funcin de Densidad:
Distribucin Acumulada:
SE BUSCA!!
SE BUSCA!!
99
Uno de los pasos mas importantes de la
simulacin es el de encontrar el tipo de
distribucin de probabilidad que mejor
modele (represente) el comportamiento de un
set de datos
Existen varias maneras (pruebas) de
encontrar el tipo de distribucin que mejor se
asocie a un set de datos; a estas pruebas se
les llama prueba de bondad de ajuste
100
Determinacin del Tipo de
Distribucin
Para poder determinar el comportamiento de
un set de datos estos deben de ser
presentados usando tablas de frecuencias con
la finalidad de realizar una de las siguientes
pruebas:
Prueba de bondad de ajuste
Prueba de Kolmogorov-Smirnov
2
101
Existe software especializado que le hace
estas pruebas de bondad de ajuste al set de
datos que estn siendo analizados y que
presenta todas aquellas distribuciones que
no pueden ser rechazadas junto con el
ranking (probabilidad de que esta sea la
distribucin que mejor se acerque a la
realidad) que estas presentan
Dos ejemplos de este tipo de software son:
ExpertFit (Usado por Flexsim, y Simul8)
Stat::Fit (Usado por Promodel)
102
103
Terminologa de Flexsim
105
Modelo 1 - Preview
Propsito
Correr y analizar su primer modelo de simulacin en Flexsim!
Descripcin del Sistema Datos Recolectados
Personas arriban a una oficina postal en promedio cada 60
segundos. La distribucin de probabilidad estadstica que
mejor simula el patrn de inter-arribos es una distribucin
exponencial con un location value de 0 y un scale value de 60.
El tiempo de servicio en la nica ventana de servicio en la
oficina postal sigue una distribucin lognormal con location
value = 31, scale value = 3.1, y shape value = 0.5 segundos.
Si el queue para la ventana de servicio excede 10 personas,
los nuevos arribos son conducidos afuera del modelo como
clientes no-felices.
106
Modelo 1 - Preview
Instrucciones
1. Open > Modelo_1.fsm
2. Reset, Run
4. Control de Velocidad
5. El modelo parara despus de 8 hrs.
Preguntas
1. Cual es el tiempo mximo y promedio que la
gente espera en fila?
2. Cuantos clientes no-felices hubieron?
3. Cul es la utilizacin de la ventana de servicio?
4. Cuantos clientes fueron servidos?
107
Un modelo en Flexsim es bsicamente un
sistema de queues, procesos, y transporte.
El procesado es simplemente un tiempo de
retraso forzado en una entidad.
El transporte es el movimiento fsico de una
entidad desde un recurso hasta otro.
Los queues se desarrollan de manera natural
en un modelo cuando las tasas de arribo
exceden las tasas de procesamiento.
108
Tipos de objetos para el modelado en
Flexsim:
Recursos fijos (i.e. queue, processors)
Recursos compartidos (i.e. operators)
Recursos mviles (i.e. forklifts, elevators).
Flowitems - Son las entidades que
pasan de un recurso fijo a otro en un
modelo.
109
Los Flowitems tienen informacin que puede ser
colocada (set) o adquirida (queried) en el modelo
para definir tiempos de proceso y tomar decisiones
de ruteo.
La mayora del comportamiento del modelo es
definido en los recursos fijos de un modelo:
Por cuanto tiempo hay que procesara un flowitem
A donde enviar el flowitem despus
Llamar un recurso compartido (operator) para procesar un
flowitem
Llamar un recurso mvil para transportar el flowitem al
prximo recurso.
110
Objeto un bloque de construccin con
comportamiento heredado, y atributos, variables y
propiedades visuales definidas por el usuario.
Modelo - una coleccin de instancias de objetos que
representa un sistema real con solo el suficiente
detalle como para responder la pregunta en cuestin!
Flowitem las entidades que fluyen a travs de un
modelo tales como productos, clientes, papeles,
llamadas, etc.
111
112
Librera - una lista de objetos
clase que son usados en la
construccin de un modelo.
Instancias son creadas en el
modelo cuando un objeto es
arrastrado de la librera a una de
las ventanas. (ortogrfica o
perspectiva)
113
114
Clase RecursosFijos objetos que
reciven y/o envan flowitems
ej.
Clase EjecutordeTareas recursos
compartidos y mviles que desempean
tareas asignadas
ej.
115
Tareas y Secuencias de Tareas
(Tasks and Tasksequences)
tarea (task) una sola instruccin o accin a
ser desarrollada por un objeto TaskExecuter.
ex. LOAD flowitem
secuencia de tareas (tasksequence) una
serie de tareas (tasks) a ser desarrolladas
en secuencia.
ej. TRAVEL to queue
LOAD flowitem
TRAVEL to processor
UNLOAD flowitem
116
Puertos de Salida/Entrada las conexiones
de puertos de entrada-salida definen las
posibles rutas de y hacia Recursos Fijos.
Input
Output
117
Puertos Centrales usados para propsitos
de referencia, tpicamente para sealar a un
TaskExecuter para que sea llamado para el
procesamiento o transporte de un flowitem.
Center
118
Cuando eventos claves ocurren en un objeto, un trigger
es disparado.
El usuario puede especificar una variedad de cosas que
quiere que pasen cuando un trigger es disparado.
Hay triggers cuando un flowitem entra o sale un objeto.
Hay triggers cuando un tiempo de proceso finaliza o un
tiempo de reparacin se completa.
Cada tipo de objeto tiene un set nico de triggers.
119
Son una oportunidad para
definir y personalizar
comportamiento de un
sistema en la ocurrencia
de un evento especifico.
Write/read information
to/from a flowitem.
Change visual properties of
flowitems or objects.
Send Messages to other
objects.
Change behaviour of other
objects.
Pasos de Modelacin en
Flexsim
121
Pasos Bsicos para el Modelado en
Flexsim
1 - Cree un layout usando la librera de objetos
2 - Haga las conexiones con los puertos
3 - Edite el look y comportamiento de los
objetos
4 - Compile y corra la simulacin
5 - Vea los resultados
122
Operaciones con el Ratn
Navegacin de Ventana:
Trasladar: clic izquierdo y arrastrar
Girar y Rotar: clic derecho y arrastrar
Zoom: clic izquierdo y derecho (o scroll wheel)
Objeto:
Trasladar en X y Y: clic izquierdo en el objeto
Trasladar en Z: clic izquierdo y derecho y arrastrar en el objeto
Rotacin en X,Y,Z: clic derecho y arrastrar en el objeto
Tamao en X y Y: clic izquierdo y arrastrar en el punto amarillo
Resize Z: clic izquierdo y derecho y arrastrar en el punto amarillo
(o usar el scroll wheel cuando el objeto esta seleccionado)
Resaltado = caja amarilla: clic izquierdo
Seleccionado = caja roja: shift-clic o ctrl-clic (+arrastrar)
123
Modelo 1
Propsito
Introduccin a los 5 pasos bsicos de la construccin de un
modelo usando un sistema de un solo queue y servidor (oficina
postal)
Descripcin
La gente llega a la oficina postal cada 60 segundos en
promedio. La distribucin de probabilidad estadstica que mejor
simula el patrn de inter-arribo es una distribucin exponencial
con un location value de 0 y un scale value de 60.
El tiempo de servicio en la ventana de servicio en la oficina
postal es lognormal(31,3.1,0.5) segundos.
Si el queue para la ventana de servicio excede las 12
personas, los nuevos arribos son enviados fuera del modelo
como clientes no satisfechos.
124
Layout del Modelo 1
125
Paso 1. Cree un layout
Arrastre objetos de la librera y colquelos en la ventana ortogrfica
usando el ratn.
Reposicione, cambie de tamao, o rote los objetos usando el ratn.
126
Flujo de los Flowitems
Flowitems pasan de un objeto al siguiente en
tiempo cero no importando en donde en el
modelo estos estn localizados.
Para crear un tiempo de retraso en el flujo del
flowitem, agregue bandas transportadoras o
task executers para su transporte.
El tiempo de movimiento depende de la longitud
y velocidad de la banda transportadora.
El tiempo de transporte entre objetos depende
en la distancia entre los objetos y la velocidad,
aceleracin y desaceleracin del task executer.
127
Las unidades de Tiempo & Longitud son
definibles por el usuario la clave es la
consistencia!
El tamao del Grid puede ser modificado.
Los objetos, imgenes, y formas pueden
ser escalados a cualquier dimensin.
128
Conexiones de Puerto
Los objetos pueden tener un numero ilimitado
de puertos.
Se necesita una conexin de puerto para cada
posible eleccin de ruta en el modelo.
El puerto por el cual un flowitem pasa depende
de la regla seleccionada en el objeto que esta
empujando o halando el flowitem. (Flow tab,
campo Send To Port).
129
Paso 2. Haga conexiones de puerto
Mientras aprieta la tecla A, haga clic y arrastre conexiones de
puerto entre los objetos.
Estos puertos de conexin de salida a entrada son necesarios
entre los objetos en su modelo que envan y reciben flowitems.
130
Viendo las conexiones de puerto
Las conexiones de
puerto pueden
mostrarse u ocultarse
desde la opcin de
Settings.
El tamao de los
puertos puede tambin
ser ajustado (trate
Connector Size = 0.3)
131
Teclas usadas en la Conexin de Puertos
Desconectar
Conectar
Outputs to Inputs Center to Center
Ver
132
Paso 3. Edite los objetos
Ventana de Propiedades
Clic derecho y luego elija Properties
Usados para editar y ver informacin general de todos los
objetos
Visual shape, size, orientation, location
Name a local toggles
Port connections
Statistics
Ventana de Parmetros
Doble clic (o clic derecho y luego elegir Parameters)
Usado para editar comportamiento especifico en los objetos
133
Ventana de Propiedades
Todos los objetos tienen el
mismo set de tabs de
propiedades
Visual Tab
Look y tamano
General Tab
Conexiones de puerto
Display switches
Labels (ensenado luego)
Atributos definidos por el usuario
Statistics
Throughput, states, queuing, and
stay times
Graphs, charts, readings
134
Ventana de Parmetros
Cada objeto clase tiene su
propia Ventana de
Parmetros
Los parmetros afectan el
tiempo que los flowitems
estn en un objeto como
estos son enrutados de
objeto a objeto.
Apply aceptara los cambios
OK aceptara los cambios y
cerrara la ventana
Cancel cerrara la ventana
sin aceptar los cambios
Properties botn que abre
la Ventana de Propiedades
135
Vietas (tabs) de Parmetros
Los parmetros estn agrupados en tabs por categora
Cada recurso fijo tendr un tab de Flow y uno de
Triggers
136
Entendiendo la Lista de Seleccin
(Combo Box)
La lista de seleccin
La preforma de cdigo (edicin amigable)
La edicin de cdigo (acceso a Flexscript y C++)
El borrador
137
Preforma de Cdigo
El texto en azul en la
preforma de cdigo puede
ser reemplazada con
cualquier Flexscript valido.
Estas preformas pueden ser
personalizadas a travs de
la ventana de preforma de
cdigo.
(a ser ensenado mas
adelante)
138
La distribucin de
probabilidad estadstica
que mejor simula el
patrn de inter-arribo
es una distribucin
exponencial con un
location value de 0 y un
scale value de 60.
139
Reset, Run
Controle la velocidad de
corrida con el slide control
(no tiene efectos en los
resultados de la simulacin)
El men de Ejecucin puede
ser usado para colocar la
Velocidad de Corrida y el
Tiempo de Parada
140
Paso 5. Vea los resultados
Cree un Standard Report
o un State Report usando
el menu Stats
Otras formas de reporte sern
discutidas mas adelante:
El objeto VisualTool
Texto dinmico
El objeto Recorder
Grficos de Tiempo,
histogramas, diagramas de
pastel, datos estadsticos
histricos y tabulares
Object Properties Statistics Tab
Triggers escribiendo a
GlobalTables
141
Standard Report
Despliega un reporte tabular (documento csv en Excel) para todos
los objetos en el modelo (o solo aquellos seleccionados en rojo).
Elija de una lista de variables estndar para incluir en el reporte.
O escriba sus propias variables para agregar al reporte
142
Standard Report View
143
Flexsim State Report
Un profile de los
Estados es
mostrado para cada
objeto seleccionado
(rojo) en el modelo.
Porcentaje del tiempo
total de simulacin
que un objeto estuvo
en cada estado.
Formato CSV (default
viewer is Excel).
144 144
Seguimiento al Modelo 1
Preguntas
Cual es el tiempo mximo y promedio que la
gente espera en fila?
Cuantos clientes insatisfechos hubieron?
Cual es la utilizacin de la ventana de servicio?
Cuantos clientes fueron servidos?
Extra
Agregue Modelo_1.dxf al modelo. Modifique su
layout de acuerdo a este documento.
(nota: rtelo 90 grados alrededor de x)
145
Modelo 2
Propsito
Aprenda como duplicar objetos
Vea el efecto de agregar una segunda ventana de
servicio
introduccin al campo Send to port (Flow tab)
Descripcin
Agregue otra ventana de servicio a la oficna de
correos
Preguntas
Responda a las preguntas hechas en el Modelo 1
Si las ventanas difieren por el tipo de servicio que
pueden proveer, y 40% de la gente necesita usar la
ventana 1 y 60% necesita usar la ventana 2,
como el tiempo en el queue aumenta?
146
Edicin de grupos puede ser desarrollada en objetos
seleccionados usando el men Edit Selected Objects.
Solo un objeto puede ser resaltado (caja AMARILLA) en
una ventana dada.
Mltiples objetos puede ser seleccionados (caja ROJA)
La Librera de Objetos de
Flexsim
148
149
Flexsim Standard Objects
Flexsim has 25 objects in
the entire library.
Your ability to model will
be determined by how well
you understand these
basic 25 objects and their
3 superclasses.
Extensive coverage of the
Flexsim Object Library is
found in the Users Manual
under Help.
150
FixedResource objects are the backbone of a
simulation model. They define the flow of the
model.
FixedResources can:
push or pull flowitems
process flowitems (forced delay)
queue up flowitems (accumulate up to maxcontent)
call for an operator to be utilized (for process / setup)
call for a transport to carry flowitems to next resource
151
Purpose
Build a model which uses several objects in the Flexsim library
Description:
A part enters a Separator every 20s where it is split into 3 separate parts.
1. The first part moves via an s-shaped conveyor to a Combiner where a total
of 8 parts are packed on a pallet (supplied by another Source). The loaded
pallet is then conveyed to a Sink.
2. The second part is conveyed to a Queue where it is then carried by an
Operator to a MultiProcessor object where 3 separate processing steps are
performed. The first step can complete on its own in 3 seconds. The second
step requires an operator (same operator that delivered the part) and takes
4 seconds, and the third process can complete on its own in 5 seconds. A
Transporter then picks it up and takes it to a Rack where it is stored.
3. The third part travels via FlowNodes to a Queue where 10 are accumulated
before being released, one at a time, to a Processor with a 20 second cycle
time.They are then placed in a Queue where a Robot transfers one part at a
time over to a Sink.
152
Phase 1:
Create flow with FixedResource Class objects only (neglect
TaskExecuters).
Phase 2:
Add TaskExecuters: Operator, Transporter and Robot.
Try adding a second Transporter to the rack.
Phase 3:
Add NetworkNode path to control the travel path of the
Transporters.
Phase 4:
Add a 3D pie chart to show the status of the Operator
Add 3D text to show the content of the Rack
153
Model 3 Layout Phase 1
154
The Source is used to
introduce flowitems into
the model.
The arrival rate of
flowitems will be based
on an Inter-Arrival Time,
Arrival Schedule or
Sequence.
Most models will start
with a Source
155
The sink is used as an exit point for flowitems.
FlowItems can only exit the model via the Sink.
Your last chance to record information about the system
flowitems is in the OnEntry trigger of the Sink.
156
The Queue is used to
stage FlowItems for
downstream operations.
Queues are used in the
model wherever work-in-
process (WIP) exists
between process steps.
A Queue may be a
table, basket, line, or
waiting room.
157
Used to convey flowitems from one location in the
model to another location.
Convey time depends on the conveyors length
divided by its speed.
Can be accumulating or not. If not, all parts on the
conveyor stop when a part at reaches the end of the
conveyor and is blocked (like a Belt conveyor).
Conveyors can take the actual length of the flowitems
and the Conveyor sections into account when
calculating accumulation and available space.
You can define a combination of many straight and
curved sections all on one conveyor object!
158
The FlowNode is used in a model where it is
desirable to have flowitems move along a
designated path to another object in the
model consuming time as they move.
One use would be to move people (flowitems)
down an open corridor or in a building.
Similar to a Conveyor and is connected to
other FlowNodes and FixedResources.
Each FlowItem can have its own speed.
Flowitems DO NOT spatially accumulate.
159
A Processor is used anytime an operation is
performed on a FlowItem.
A Processor can be any kind of machine or
station; anything that would take time to
manipulate a FlowItem.
The FlowItems must stay in the Processor for
the sum of the Setup Time and the Process
Time plus any Blocked Time. The dwell time
may also include time waiting for an operator,
time waiting for a transporter and time waiting for
the Processor to be repaired if broken down.
160
The MultiProcessor allows you to
perform several operation steps at
one location.
Each operation can have a
different process time, and use a
different number of operators.
A MultiProcessor is a good object
to use when you have large
flowitems that move to a spot
where several operations are
performed before it moves again.
Only 1 flowitem at a time is
allowed in the MultiProcessor.
161
The Separator is used to separate (unpack) or to split
(make copies of) flowitems.
It can unpack flowitems that were previously combined
using the Combiner.
Flowitems can be split into a specific number or call from
a table.
The contents must leave before the container can leave.
162
The Combiner is used to pack or join flowitems
When using the pack option, the flowitems which enter ports 2 and
higher are placed inside of the flowitem which entered port 1.
When using the join option, the flowitems which enter ports 2 and
higher are destroyed, and the flowitem which entered port 1
represents the assembled part.
Note: Component rows are
added automatically for
each input port connections
made for ports 2 and higher.
The first input port is
always reserved for the
container or main part,
and the assumed target
quantity is one !!
163
The Rack is used to store flowitems in a
specific column and row (bay and level).
You can toggle between three different
visual displays of the Rack by holding the
X key and clicking on the Rack.
The physical configuration is defined by
the Rack layout size table.
164
165
Complete Phase 1
Phase 1:
Obtain flow with FixedResource Class objects only (neglect
TaskExecuters).
166
Model 3 Layout Phase 2
167
The Dispatcher receives tasksequences and either queues them up,
OR dispatches the tasksequences immediately to downstream
Dispatchers and/or TaskExecuters (single or team).
One tasksequence may preempt another tasksequence part way
through the current ones list of tasks. The preemption can either
temporarily interrupt the current tasksequence or permanently
destroy the current tasksequence and all sequences in queue.
Tasksequences can be sorted by their priority.
Tasksequences are created and dispatched automatically when the
Use Transport or Use Operator boxes are checked on a
FixedResource type object.
Custom tasksequences can also be created and dispatched using
commands in triggers or elsewhere in your model. (taught later)
168
TaskExecuters are subclasses of the
Dispatcher, and therefore can receive, queue
up, and dispatch tasksequences.
In addition, TaskExecuters have the ability to
execute the tasksequences that they receive.
The Operator, Transporter, Elevator, Robot,
Crane, and ASRSvehicle are all subclasses of
the TaskExecuter and therefore have similar
functionality.
169
An Operator will model
human tasks such as
machine setup or manual
assembly.
It can also be used to
transport FlowItems from
one FixedResource to
another.
It really has no additional
functionality beyond the
TaskExecuter itself.
The Operator can move in
x, y, and z directions.
170
A Transporter is used in a model where a fork truck, AGV or some
other transport vehicle might be used.
It is used to transport FlowItems from one FixedResource to another.
The Transporter can travel in x, y and z directions.
During offset travel the forks lift or lower in the z direction has
needed to pick or place flowitems.
Transporters can load many FlowItems from multiple locations and
then unload the FlowItems separately to multiple locations.
171
172
Output
Center
Dispatcher
TaskExecuter
173
Complete Phase 2
Phase 2:
Add TaskExecuters: Operator, Transporter and Robot.
Try adding a second Transporter to the rack.
174
Model 3 Layout Phase 3
175
A NetworkNode is used to define the path a
TaskExecutor will follow when executing its travel tasks.
A path is made up of a group of NetworkNodes
connected together by using the A key.
At least one NetworkNode needs to be connected to
each load and unload station (FixedResource) using the
A key.
A Task Executor is assigned to a path by connecting it
to any NetworkNode in the path using the A key.
176
Click-and-drag a
connection while
pressing the A key
When connected
you will see a green
path between the
nodes denoting
travel is allowed in
both directions.
177
Click-and-drag a
connection while
pressing the A key
between the
NetworkNode and
the object where the
load takes place.
A blue line will show
the connection. The
line does not
connect to any port.
178
Connecting a TaskExecutor
to a Path
Click-and-drag a
connection between
the TaskExecutor and
a NetworkNode while
pressing the A key.
A red line will indicate
that the connection has
been made. The line
does not connect to
any port.
179
A path can be restricted to
travel in a single direction
by pressing the Q key
and clicking-and-dragging
in the direction you want
to disallow travel.
A red line (right side rule)
will show the restricted
direction.
180
A non-passing path
can be defined by
using the A key
and click-and-
dragging between
two nodes that are
already connected.
Non-passing path
segments turn a
yellow color.
No traveling
Travel but no passing
181
Every path has a spline
point in the center of the
path by default.
Spline points allow
paths to be curved.
Add spline points by
pressing X and
clicking on an existing
spline point.
Delete spline points by
selecting them and
pressing Delete
182
Hide Splines, Paths and
NetworkNodes
The display options
for a path system
can be toggled by
holding the X key
down and then
clicking on any
NetworkNode in the
path system.
183
Complete Phase 3
Phase 3:
Add NetworkNode path to control the travel path of the
Transporters.
Can you make the Transporters travel in a counter-clockwise
direction?
184
Model 3 Layout Phase 4
185
The Recorder is used to display and record
statistical information.
The Recorder can display 3D charts and
graphs from object data or tables.
Turn the objects history On when you want
to display information (under Stats menu).
Can gather point statistics (min, max, avg) or
complete historical data at set time intervals or
based on actual object events.
186
The VisualTool is one of
the most versatile Flexsim
Objects.
VisualTool can be used as
a prop to display planes,
cubes, columns, spheres,
imported objects (2D CAD
or 3D shapes), 3D text and
even presentation slides
(bmp, jpg).
The VisualTool can also
act as a container for other
objects.
187
Complete Phase 4
Phase 4:
Add a 3D pie chart to show the status of the Operator
Add 3D text to show the content of the Rack
BONUS: Can you change the 3D shape of the Operator?
Basic Modeling Functions and
Logic Statements
189
Existing Pick List options are great examples
Sample Models (Help menu)
Commands
Hints
Any C++ book (if youre so inclined)
190
functionname(argument1, argument2, etc)
An argument can be:
Numerical value
String (text)
Pointer (*) to an object or node
Function example: colorrandom(item)
(see OnExit trigger of a Source object)
191
language is case sensitive (A does not equal a)
no specific format is required (free use of spaces, tabs and line
returns is encouraged for readable code)
text strings are entered between quotes. mytext
parenthesis follow a function call and commas separate the
arguments of the function. moveobject(object1,object2);
a function or command will always end with a SEMI-COLON
parenthesis can also be used freely to make associations in
your math and logic statements. Ex: ((x+3)*2)
curly braces (ie { }) are used to define a block of statements.
to comment the rest of a line use // and type note here
dont use spaces or special characters in name definitions
( _ is ok).
names may include numbers, but may not begin with a number
(machine_9 is acceptable, 9machine is not).
192
Basic data structure of Flexsim is a hierarchal tree
main tree (model and project related objects and data)
view tree (gui related objects and picklists)
model tree (model related objects and data)
The node is the basic building block of a tree
Nodes hold all the information behind the scenes
for objects, guis and data.
193
Nodes have a name
Nodes can have a data item
number
string
object
If nodes have object data, use > to view a
separate node list containing the object info
(data members and member functions)
If nodes contain sub nodes, use + to expand
and view the child nodes
194
Standard Folder
Object
Object data
Function (C++)
Function (FlexScript)
195
196
int
double
string
fsnode*
Integer (1, 2, 3, 14324)
double precision (2.5, 3.14159)
text string (Anthony was here.)
pointer to a Flexsim tree node
197
int index = 1;
double weight = 175.8;
string category = groceries;
fsnode* forklift = centerobject(current,1);
198
x+y
x-y
x*y
x/y
sqrt(x)
pow(x,y)
round(x)
frac(x)
fmod(x,y)
x plus y
x minus y
x times y
x divided by y
square root of x
x to the power of y (x
y
)
x rounded to the nearest integer
returns the decimal portion of x
returns the remainder of x/y
199
x > y
x < y
x >= y
x <= y
x == y
x != y
comparetext(string1,string2)
x greater than y
x less than y
x greater than or equal to y
x less than or equal to y
x equal to y
x not equal to y
string1 matches string2
200
&&
||
!
min(x,y)
max(x,y)
logical AND
logical OR
logical NOT
returns minimum of x and y
returns maximum of x and y
201
x = y
x += y
x -= y
x *= y
x /= y
x ++
x --
set x to y
set x to x plus y
set x to x minus y
set x to x times y
set x to x divided by y
add 1 to x
subtract 1 from x
202
current - the current object, the owner of the code
item - the involved flowitem that triggered the event
model() point to model tree
rank(node,ranknum) rank(current,3)
inobject(object,portnum) inobject(current,1)
outobject(object,portnum) outobject(current,1)
centerobject(object,portnum) centerobject(current,1)
node(relativepath,object)
node(/Operator1,model())
203
content( object )
getinput( object )
getoutput( object )
int inventory = content(current);
int produced = getoutput(current);
204
xloc( object ) yloc( object ) zloc( object )
setloc( object, xnum, ynum, znum )
xsize( object ) ysize( object ) zsize( object )
setsize( object, xnum, ynum, znum )
xrot( object ) yrot( object ) zrot( object )
setrot( object, xdeg, ydeg, zdeg )
205
itemtype all flowitems have an attribute
called itemtype. Its a numeric identifier used
to distinguish one type of flowitem from
another in processing and routing decisions in
a model.
206
getname( object )
setname( object, name )
getitemtype( object )
setitemtype( object, num)
setcolor( object, red, green, blue )
colorred( object ) blue,green,random...
207
Purpose
Gain experience in writing C++ code in the Code Edit windows.
Introduction to PROSESTART and PARAMSTART statements
and how they define the Code Template windows.
Introduction to the bernoulli command.
bernoulli(num probability, num succeed-value, num fail-value, [num stream])
Description
See layout slide for model description.
Using the Send To Port field of the Conveyor, send 30% of the
flowitems to port 1 and 70% to port 2.
(Use the bernoulli command)
208
209
if (test expression)
{
code block
}
else
{
code block
}
if (content(item) == 2)
{
colorred(item);
}
else
{
colorblack(item);
}
210
Purpose
Learn how to both set and read the itemtype of a flowitem
using C++
Description
See layout slide for model description.
Set the itemtype of flowitems as they exit the Source.
60% of the flowitems are itemtype 7, the rest are itemtype 3.
Using an if statement in the Send To Port field of the
Conveyor, send flowitems with itemtype 7 to port 1, and those
with itemtype 3 to port 2.
Questions
Can you change the color of the Flowitems based on their
itemtype using code?
211
labels information may
also be stored on
flowitems (and other
modeling objects) in the
form of labels. You may
define as many labels on
a flowitem or object as
you would like. Labels
have a name and data.
The data may be
numeric, string, list, or
table
212
syntax
getlabelnum( object, labelname )
setlabelnum( object, labelname , value )
getlabelstr( object, labelname )
setlabelstr( object, labelname , string )
label( object, labelname )
examples
getlabelnum( item, serialnumber )
setlabelnum( item, serialnumber, 5 )
getlabelstr( current, category )
setlabelstr( current, category, groceries )
inc( label(item, stepnum), 1 ) only works with number data nodes
213
switch ( switchvariable )
{
case casenum:
{
code block
break;
}
default:
{
code block
break;
}
}
int type = getitemtype(item);
switch (type)
{
case 1:
{
coloryellow(item);
break;
}
case 5:
{
colorred(item);
break;
}
default:
{
colorgreen(item);
break;
}
}
214
Purpose
Learn how to both set and read the labels on a flowitem using
C++
Description
See layout slide for model description.
Create a numeric label named routing on the Textured
Colored Box in the FlowItem Bin (see toolbar).
Set the routing label of flowitems as they exit the Source with
a random number between 1 and 4 (use duniform() command).
Use a switch() statement in the Send To Port field of the
Conveyor to send flowitems according to the following
Label values 1 and 3 go to port 2
Label values 2 and 4 go to port 1
Questions
Can you change the color of the flowitems based on their label
using code?
215
while (test expression)
{
code block
}
while (content(current) > 0)
{
destroyobject(last(current));
}
216
for (start expression;
test expression;
count expression)
{
code block
}
for (int index = 1;
index <= content(current);
index++)
{
colorblue(rank(current,index));
}
217
Purpose
Learn how to write your own for loop.
Description
A Combiner packs 8 boxes on a pallet.
Use an infinite supply of pallets from one Source and an infinite supply
of boxes from another Source.
The Combiner sends to a Conveyor which then sends to another
Conveyor.
Using the OnExit trigger of the first Conveyor, write a for loop which
changes the color of all the boxes on the pallet.
Questions
Can you change the 3D shapes of the boxes on the pallet with the
setobjectshapeindex() picklist to a tote?
218
Concepts and Models
220
Itemtypes
Push vs. Pull
Distributions (continuous vs. discrete)
221
Purpose
Learn how to use pull logic in defining routings based on a
flowitems itemtype.
Description
Electronic components need to be tested after manufacture.
There are two types of components that arrive in a queue at
random with the mix being 40% of one and 60% the other.
The inter-arrival time of components is exponential(0,30,1)
There are two testers for component 1 and three testers for
component 2. Components will go to the first available tester.
Testing times are all between 120 and 150 seconds uniformly
distributed.
Questions
Are all testers equally utilized?
Can you model this with push or pull?
Try assigning colors to the itemtypes.
222
223
Labels and Itemtypes
Empirical Distributions ~ Global Tables
Trigger sequence
224
Purpose
Learn how to assign and use labels on flowitems for routing and
processing purposes. Learn how to use an empirical distribution to
assign itemtypes.
Description
Parts arrive in a queue every 30 seconds exponentially distributed.
There are four part types (1,2,3,4) distributed (20%, 30%, 40%, 10%)
respectively.
The four part types are each processed on one of four dedicated
machines. The processing times at each machine is uniform(100,120)
seconds for first time parts, and uniform(120,130) seconds for rework
parts.
After the parts are machined, they are put in a queue and wait to be
tested. The test time is a constant 10 seconds. Parts that pass, leave
the model, failed parts are routed back to the first queue to be
reworked. 10% of the parts fail.
Parts being reworked are given priority in the queue.
Questions
Where is the bottleneck?
Can you change the color and shape of failed parts?
225
Model 5 Layout
226
Global Tables
Labels
Triggers
227
gettablenum( tablename, rownum, colnum )
settablenum( tablename, rownum, colnum, value )
gettablestr( tablename, rownum, colnum )
settablestr( tablename, rownum, colnum, string )
228
Purpose
Small example of using a Global Table to define product routings.
Learn how to use a label to keep track of what step the flowitem is on.
Description
3 different products (uniform) enter a 5 station work cell.
Product 1 needs to be processed at station 1,3, and 2.
Product 2 needs to be processed at station 1, 2, and 4.
Product 3 need to be processed at station 2,4,3, and 5.
Use a global table to make sure the products are sent to the right
station in the proper sequence.
Use a single Queue whose output ports are connected to each of the 5
stations and to a Sink. Each of the five stations have their output port
also connected to the input ports of the Queue.
Questions
Can you change all flowitems in the model to a common color
depending on step?
229
230
TaskSequence Priority
Global Pointers
231
Purpose
Learn how to us an Operator to both carry and process
flowitems
Description
Parts arrive at a queue every 20 seconds exponentially
distributed and need to be carried by the operator to one of the
3 first available machines.
The operator needs to setup the part which takes 10 seconds.
The part will then process for 20 seconds on its own.
When the part finishes, it will leave the system.
One operator will run all three machines.
Questions
See if you can get the operator to stay for setup once he has
carried the product to the machine.
Can you create the same model without center port
connections?
232
233
Send To Port
Break To Requirement
234
Purpose
Learn how to use the Break To Requirement field on
TaskExecuters.
Description
A Source continuously sends Flowitems randomly to 3 Queues.
Flowitems are assigned an itemtype 1,2,3 uniformly distributed.
All three Queues can hold all three itemtypes.
A Transporter carries Flowitems to three Queues that each hold 1
itemtype.
These Queues then go to Processors and a Sink.
The Transporter can carry up to 5 items at a time.
The Transporter should only carry items that have the same itemtype
at any time.
Questions
Experiment with the other available Break To Requirement pick-
options. How does the Transporter behave?
235
236
TaskExecuter Teams
TaskSequence Preemption
Time Tables
237
Purpose
More practice working with teams, priorities and preempting
Description
A single work cell has 5 machines.
Each part must be processed at each of the 5 machines
There are 3 operators who work in the cell as a team.
The operators need to carry each part to the next machine as
well as set up the machine for that part.
Setup times are 5 seconds and process times are 15.
New parts arrive in the system every 25 seconds.
Questions
Whats the throughput rate per hour?
Experiment with priorities and preempting to try and improve the
throughput rate.
Assign each operator to a different timetable so their breaks and
lunches are staggered.
238
239
Update Combiner Component List OnEntry
Excel Imports and Exports ~ Multi-Table
240
Example:
excellaunch( C:\Program Files\Microsoft Office\Office10);
excelopen(C:\mybook.xls);
excelsetsheet(Sheet1);
double thenum = excelreadnum(1,1);
excelwritenum(5,2,thenum)
excelclose(true);
excelquit();
This starts Excel, opens a workbook called mybook, and stores a value read from
row 1, column 1 from Sheet1, then writes the stored value to row 5, column 2. Excel
is then closed.
See also excelimporttable() and excelimporttable()
Rules:
Excel must be opened using excellaunch() before excelopen() is called. Only one
workbook can be open at a time. The use still must call excelclose() before trying to
open another workbook. Before reading from the open file, excelsetsheet() must
also be called to point to the appropriate worksheet.
241
Purpose
Learn how to manipulate the Components List table on a
Combiner object to do custom packing on the fly
Learn how to import and use a Source arrival schedule
Description
A small distributor has 10 product types that he ships to the
same 5 customers.
Each customer has a different order profile.
The distributer has a large supply of each of the 10 products
so all he has to do is wait for an order to come through the
door.
Products are placed on a pallet and then conveyed out.
Use the next two tables to build the model.
Questions
Can you think of other uses for the Combiner?
If time permits, try importing the tables from Excel.
242
243
Model 10 Order Table
0 0 3 1 1 prod 10
2 1 4 2 1 prod 9
0 3 3 3 2 prod 8
3 2 2 0 0 prod 7
0 2 0 4 2 prod 6
1 0 3 3 3 prod 5
2 3 1 2 1 prod 4
2 1 0 1 0 prod 3
1 2 1 0 2 prod 2
4 1 3 2 1 prod 1
Customer 5 Customer 4 Customer 3 Customer 2 Customer 1
244
Model 10 Daily Arrival Schedule
1 5 OrderE 14400 Customer 5
1 4 OrderD 10800 Customer 4
1 3 OrderC 7200 Customer 3
1 2 OrderB 3600 Customer 2
1 1 OrderA 0 Customer 1
Quantity ItemType ItemName ArrivalTime
More Advanced Concepts and
Models
246
Abstract Model Application
Global Object Pointers
For Loop
moveobject() command
247
Purpose
Gain experience in building an abstract model
Learn to write some C++ in a trigger field
Description
Items arrive at a warehouse each day to be stored.
Orders arrive at a warehouse each day to be pulled.
The average number of items and orders received each day is 10, but both are
exponentially distributed.
There are only 5 types of items (and therefore orders) received. The type of
received items and orders is uniformly distributed 1 through 5 on a daily basis.
Whenever an order arrives it must search for a matching item and remove it.
Whenever an item arrives it must search for a matching order and remove it.
1 model time unit = 1 day.
Questions
How big must the warehouse be, so there is always room to store the items
received each day?
Plot the number of unsatisfied orders each day for an entire year.
Whats the average number of days an order waits to be satisfied?
248
Model A1 Layout
249
Custom TaskSequences
Global Pointers
250
Simple Commands
requestoperators( taskexecuter, station, involvedobj, nrofops, priority,
preempting )
freeoperators( taskexecuter, involvedobj )
Custom Built TaskSequence
createemptytasksequence( taskexecuter, priority, preempting)
inserttask(tasksequence, tasktype, involved1, involved2,
parameter1, parameter2, parameter3 )
dispatchtasksequence( tasksequence )
251
fsnode *forklift = centerobject(current,1);
fsnode *origin = centerobject(current,2);
fsnode *destination = centerobject(current,3);
fsnode *item = first(origin);
fsnode *ts = createemptytasksequence(trans,0,0);
inserttask(ts, TASKTYPE_TRAVEL, origin, NULL);
inserttask(ts, TASKTYPE_FRLOAD, item, pickup);
inserttask(ts, TASKTYPE_TRAVEL, destination, NULL);
inserttask(ts, TASKTYPE_FRUNLOAD, item, destination);
dispatchtasksequence(ts);
252
TASKTYPE_LOAD: flowitem, pickup
TASKTYPE_FRLOAD: flowitem, pickup, [outputport]
TASKTYPE_UNLOAD: flowitem, dropoff
TASKTYPE_FRUNLOAD: flowitem, dropoff, [inputport]
TASKTYPE_UTILIZE: involved, station, [state]
TASKTYPE_STOPREQUESTFINISH: stoppedobject, NULL
TASKTYPE_TRAVEL: destination, NULL
TASKTYPE_TRAVELTOLOC: NULL, NULL, [xloc,yloc,zloc,endspeed]
TASKTYPE_TRAVELRELATIVE: NULL, NULL, [xloc,yloc,zloc,endspeed]
TASKTYPE_BREAK: NULL, NULL
TASKTYPE_DELAY: NULL, NULL, [delaytime, state]
TASKTYPE_SENDMESSAGE: receiver, NULL, [param1,param2,param3]
TASKTYPE_MOVEOBJECT: flowitem, container, [port]
TASKTYPE_DESTROYOBJECT: object, NULL
Brown parameters are required, [Gray] parameters are optional
** use profiletasksequence(ts) to print to console full description of ts
253
Purpose
Learn how to manually build your own tasksequences
Description
The model consists of a Source, three Processors in series,
and a Sink.
An operator must pick up a part from the source, carry it to the
first processor, be utilized for the process time, carry the part
to the next processor, etc. until finally dropping it off at the sink.
Use Global Object Pointers instead of center port connections.
Questions
How many operators does it take to make 1000 pieces a day?
254
Model A2 Layout
255
Closing and Opening Output/Input Ports
Message Sending
Stop and Resume commands
256
closeinput( object ), openinput( object )
stopinput( object ), resumeinput( object )
closeoutput( object ), openoutput( object )
stopoutput( object ), resumeoutput( object )
sendmessage( toobject, fromobject, parameter1, parameter2,
parameter3 )
senddelayedmessage( toobject, delaytime, fromobject,
parameter1, parameter2, parameter3 )
stopobject( object ), resumeobject( object )
moveobject( object, containerobject )
257
message information sent from one
object to another. When the message is
received, a trigger is fired. A message is
sent with a command. Messages may be
sent immediately sendmessage(), or after
a specified period of time
senddelayedmessage().
258
Purpose
Learn how to control product flow and send delayed messages.
Description
Assume an infinite supply of A and B components.
The two components must be glued together with epoxy which
takes lognormal(0,2.6,0.8) seconds.
The assembled parts must wait in a staging area for at least 15
seconds for the epoxy to cure before they can enter the paint
booth.
It takes lognormal(0,2.5,0.5) seconds to paint each part
separately.
After each part is painted and exits the paint booth, the booth
must be purged for 3 seconds before another part can enter.
Questions
What is the average and maximum time a part waits in queue?
259
260
TrafficControl Object
TaskExecuter Collision Tab
Experimenter
Presentation Builder
ExpertFit

También podría gustarte