Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Curso Avanzado Flexsim
Curso Avanzado Flexsim
Simulador Flexsim
www.flexsim.com.mx
0.80
1.00
0.70
0.60
0.75
f(x)
f(x)
0.50
0.40
0.50
0.30
0.20
0.25
0.10
0.00
-0.50
0.00
0.50
1.00
1.50
0.00
0.0
2.00
1.0
2.0
3.0
X-Value
4.0
5.0
6.0
X-Value
3 - Normal
2 - Exponential
0.80
0.90
0.70
0.70
0.60
0.60
0.50
f(x)
f(x)
0.80
0.50
0.40
0.40
0.30
0.30
0.20
0.20
0.10
0.10
0.00
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.00
0.50
0.75
1.00
1.25
1.50
1.75
2.00
2.25
2.50
X-Value
X-Value
4 - Lognormal
0.25
1 - Weibull
Modelo
Objectos
Flowitems
3
MOVER
ROTAR
ZOOM
4
Tamao
Tama
o y Rotacin de un objeto
Output
Center
8
Center a Center
Conectar
Verlas
Desconectar
13
Fixed Resource
Source
Dispatcher
Navigator
Task Executer
Network Node
Network Navigator
Visual Tool
Recorder
Operator
Queue
Crane Navigator
Transporter
Sink
Traffic Control
Crane
ASRS Vehicle
Rack
Robot
Reservoir
Elevator
MultiProcessor
Conveyor
Processor
MergeSort
Combiner
Separator
14
Tasks y Tasksequences
Task: es una sola instruccin o accin que deber
ser desempeada por una objeto del tipo
TaskExecuter.
ejemplo: LOAD flowitem.
Tasksequence: una serie de tasks (actividades) que
deben desempearse en sequencia.
ejemplo: TRAVEL al queue
LOAD flowitem
TRAVEL al processor
UNLOAD flowitem
15
16
Comprendiendo las
Listas de Opciones.
Opciones.
El cdigo o seleccin actual
Plantilla de Cdigo
Cdigo
El texto azul de la Plantilla
de Cdigo puede ser
reemplazado por culquier
nmero o expresin vlidos.
Estas plantillas pueden ser
personalizadas o bien crear
nuevas opciones desde la
ventana de Edicin de
Cdigo.
18
Orden de Ejecucin
(push flowitem)
flowitem llega
OnEntry
Pick Operator
Process Time
demora
OnProcessFinish
OnExit
demora
Setup Time
Pick Operator
OnSetupFinish
Request
Transport From
demora
Send To Port
posible
demora
19
Anlisis estadstico en
tiempo real del modelo
Reportes de Resultados,
Grficas y Estadsticas
Conforme corre una simulacin en FlexSim, automticamente
almacena informacin estadstica bsica referente a los objetos
en el modelo.
Estas estadsticas pueden verse usando una aplicacin
especial llamada FlexSim Chart; el cual puede ser accedido
desde el botn de inicio de Windows (para analizar datos que
ya fueron recolectados) o bien desde FlexSim (si el analista
desea revisar informacin nueva de un modelo a correr).
Reportes de Resultados,
Grficas y Estadsticas
Para poder usar FlexSim Chart, primero se deber
habilitar la opcin Full History On del men Statistics.
Reporte de resultados
al final de la simulacin
Grficos de Gantt
Reporte
Financiero
Reportes de Resultados,
Grficas y Estadsticas
Existen dos bases de datos de Flexsim Chart muy importantes:
Movement Table y State Table
Movement Table
registra cada vez que un
flowitem se mueve de un
objeto a otro.
ID del Flowitem
Tiempo de inicio de movimiento
Origen
Destino
Itemtype del objeto
Reportes de Resultados,
Grficas y Estadsticas
State Table registra cada vez
que un objeto cambia de estado.
Momento que sucede el cambio
Estado nuevo del objeto
Nombre del objeto que cambi
NetworkNodes
Los NetworkNodes se usan para definir el camino que
seguir un TaskExecuter cuando realice tareas de
viajes.
Un network path est compuesto por un grupo de
NetworkNodes inteconectados.
A un TaskExecuter se le dice que debe moverse sobre
la red de caminos conectndolo a alguno de los
NetworkNode del camino. El nodo al que se conecte se
convierte en su nodo casa.
Si un FixedResource (FR) es visitado por un
TaskExecuter que viaja por una red, ese FR debe estar
conectado por lo menos a un solo NetworkNode, lo que
le permite el acceso mediante la red.
29
Conectando NetworkNodes
30
31
Conectando un
TaskExecuter a la Red.
Haz click y arrastra una
conexin entre el
TaskExecuter y el
NetworkNode mientras
presiones la letra A.
Una lnea roja indica
que la conexin se ha
realizado. Esta lnea no
est conectada a
ningn puerto.
32
33
Caminos de no rebasar
Un camino de no rebasar
(non-passing) puede
activarse conectando con al
letra A entre dos nodos que
ya estn previamente
conectados.
El indicador de direccin se
har amarillo, mostrando la
direccion del tipo nonpasing.
Conectando nuevamente
con la letra A provoca que
vuelva al estado anterior en
color verde.
No hay paso.
Aparecern puntos de
control sobre el camino.
2. A
5. A
3. A
6. a
4. A
37
38
Triggers
Una oportunidad para
definir y personalizar el
comportamiento del
sistema cuando ocurre un
evento en especfico.
Leer o escribir informacin
de un flowitem.
Cambiar las propiedades
visuales tanto de flowitems
como de objetos.
Mandar mensajes a otros
objetos.
Cambiar el comportamiento
de otros objetos.
Y muchas cosas ms
40
Qu es un Nodo?
Nodo?
La estructura bsico de datos de Flexsim es un rbol (tree)
jerrquico.
main tree (objetos y datos del modelo y del proyecto).
view tree (objetos de GUIs y picklist).
model tree (objetos y datos relacionados con el modelo).
43
44
Qu es una funcin?
Nombredelafuncin(argumento1, argumento2, etc)
Los argumentos pueden ser:
Valores numricos.
Textos (string).
Apuntador Pointer (*) a un objeto o node.
colorrandom(item)
46
Reglas Generales
Tipos de Variables
int
integer entero.
(1, 2, 3, 14324)
double
string
Declarando y dando
un valor a las variables
int index = 1;
double peso = 175.8;
string categoria = exportacion;
treenode montacargas = centerobject(current,1);
50
Operadores Matemticos
Matemticos
x+y
x-y
x*y
x/y
sqrt(x)
pow(x,y)
round(x)
frac(x)
fmod(x,y)
min(x,y)
max(x,y)
x ms y
x menos y
x por y
x entre y
raz cuadrada de x
X elevada a la potencia de y (xy)
x redondeado al entero ms cercano
regresa la parte decimal de x
regresa el residuo de x/y
regresa el mnimo de x y y
regresa el mximo de x y y
51
Comparando
x>y
x<y
x >= y
x <= y
x == y
x != y
comparetext(texto1,texto2)
x mayor que y
x menor que y
x mayor o igual que y
x menor o igual que y
x igual que y
x no igual que y
texto1 igual a texto2
52
Relacionando
&&
||
!
Y lgico
O lgico
NO lgico
53
Actualizando
x=y
x += y
x -= y
x *= y
x /= y
x ++
x --
54
Referencias Bsicas
Bsicas de los Objetos
current
item
model()
rank(node, ranknum)
rank(current,3)
node(relativepath, object) node(/Operator1,model())
inobject(object, portnum)
outobject(object, portnum)
centerobject(object, portnum)
inobject(current,1)
outobject(current,1)
centerobject(current,1)
55
Estadsticas
Estad
sticas Bsicas de los Objetos
content( object )
contenido o inventario
getinput( object )
entradas al objeto
getoutput( object ) salidas del objeto
int inventario = content(current);
Int entradas = getinput(current);
int produccion = getoutput(current);
56
zloc( object )
xsize( object )
ysize( object )
setsize( object, xnum, ynum, znum )
zsize( object )
xrot( object )
yrot( object )
setrot( object, xdeg, ydeg, zdeg )
zrot( object )
57
Itemtypes
Itemtype: todos los
flowitems tienen un
atributo llamado itemtype.
Este es un identificador
numrico utilizado para
distinguir cierto tipo de
producto de otros en
decisiones de tiempos de
proceso o de ruteo de
productos en el modelo.
58
getname( object )
setname( object, name )
getitemtype( object )
setitemtype( object, num)
setcolor( object, red, green, blue )
colorred( object ) blue,green,random...
Cmo puedes encontrar los nombres de
los otros colores?
59
Listados y Avisos
Sintxis
pt( text string );
pf( float value );
pd( discrete value );
imprime texto.
imprime nmeros con decimales.
imprime nmeros enteros.
pr( );
salto de rengln.
msg( ttulo de ventana, texto del mensaje ).
Ejemplo:
pt(Producto en ); pt(getname(current)); pt(. Tiempo: ); pf(time()); pr();
60
Parmetros de un Processor
Comprendiendo los campos de edicin de un
Procesador te ayudar a entender mejor
Flexsim.
Debes de ser capaz de responder a las
siguientes 4 preguntas de cada uno de los
campos de edicin:
Cul es su propsito?
En qu momento se evala?
Cules son las variables de acceso?
Qu valor regresa (return)?
61
Variables de Acceso
Returns
Setup Time
tiempo de demora
Process Time
current, item
tiempo de demora
MTBF
current
tiempo de demora
MTTR
current
tiempo de demora
Send To Port
current, item
nmero de puerto
current
nmero de puerto
Pull Requirement
verdadero/falso (1/0)
apuntador numrico
Pick Operator
current, item
apuntador numrico
OnReset
current
N/A
OnMessage
current, msgsendingobject,
msgparam1, msgparam2, msgparam3
N/A
OnEntry
N/A
OnExit
N/A
OnSetupFinish
current, item
N/A
OnProcessFinish
current, item
N/A
OnBreakDown
current
N/A
OnRepair
current
N/A
62
if (SI Lgico)
if (expresin de prueba)
{
bloque de cdigo
}
else
{
bloque de cdigo
if (content(item) == 2)
{
colorred(item);
}
else
{
colorblack(item);
}
63
Labels o Etiquetas
Labels: la informacin
puede ser almacenada en
los flowitems (y en otros
objetos) en la forma de
etiquetas o labels.
Los flowitems y otros
objetos de Flexsim pueden
tener una cantidad
ilimitada de labels.
Los labels deben tener
nombre y datos. Los
datos pueden ser
numricos, texto, lista o
tabla.
64
ejemplos
65
switch lgico
int type = getitemtype(item);
switch ( switchvariable )
{
case casenum:
{
code block
break;
}
case casenum2:
{
code block
break;
}
default:
{
code block
break;
}
}
switch (type)
{
case 1:
{
coloryellow(item);
break;
}
case 5:
{
colorred(item);
break;
}
default:
{
colorgreen(item);
break;
}
}
66
while (mientras
mientras)) lgico
while (test expression)
{
code block
for lgico
for (start expression; test expression; count expression)
{
//code block
}
for (int index=1; index<=content(current); index++)
{
colorblue(rank(current,index));
}
68
Orden de Ejecucin
(pulled flowitem)
if true
Flowitem se encuentra
disponible
en el objeto anterior
OnSetupFinish
Process Time
Pull From
Port
OnExit
Pull Requirement
demora
Pick Operator
demora
demora
Pick Operator
demora
Request
Transport From
OnEntry
Setup Time
Send To Port
demora
69
70
Control Bsico
Bsico de Objetos
closeinput( object );
stopinput( object );
closeoutput( object );
stopoutput( object );
openinput( object );
resumeinput( object );
openoutput( object );
resumeoutput( object );
Mensajes
Message: informacin enviada de un
objeto a otro objeto.
Cuando un objeto recibe un mensaje, un
trigger se dispara.
Los mensages pueden enviarse con
comandos. Pueden enviarse
inmediatamente con el comando
sendmessage() o despus de un periodo
especfico de tiempo utilizando el
comando senddelayedmessage().
72
Orden de Ejecucin
(Messages)
sendmessage()
OnMessage trigger
del objeto que
recibe el mensaje
senddelayedmessage()
demora
OnMessage trigger
del objeto que
recibe el mensaje
73
Control de un TaskExecuter
Comandos simples:
requestoperators( taskexecuter, station, involvedobj, nrofops, priority,
preempting )
freeoperators( taskexecuter, involvedobj )
TaskSequence personalizada y creada por el usuario:
createemptytasksequence( taskexecuter, priority, preempting)
Returns a pointer (fsnode *) to the task sequence created
76
Nmero de
escenarios en
el experimento
Cuntas
rplicas
por cada
escenario
Nmero de
la rplica
que est
corriendo en
el escenario
vigente
Escenario
Actual
Qu es Optimizacin?
Optimizacin es el anlisis
automtico de diferentes
escenarios a partir de los modelos
de simulacin creados en Flexsim,
variando las distintas condiciones
que se le especifiquen para.
encontrar la Solucin ptima.
Las condiciones pueden ser el nmero de personas,
montacargas, inventario, tamaos de lote,
velocidades de las bandas transportadoras,
personal de mantenimiento, demandas y cualquier
otra variable que se desee.
Qu es Optimizacin?
Uno mismo define el criterio para optimizar,
segn el problema que se quiera resolver.
Los objetivos en las optimizacionespueden ser:
Maximizar Utilidades.
Minimizar tiempos de Surtido.
Maximizar el servicio al cliente.
Cualquier otro objetivo que desee.
Pueden combinarse varios objetivos como
una sola meta y darle una importancia
diferente a cada uno de ellos.
Qu es Optimizacin?
Utilizando potentes algoritmos, el
mdulo de optimizacin OptQuest
de Flexsim evala cientos de
escenarios en segundos en forma
automtica y encuentra la solucin
ptima.
Realiza un anlisis exhaustivo mediante
simulaciones aceleradas que sera imposible de
igualar en precisin y tiempo si se realizaran de
forma manual.
Variables de Decisin
La primera parte al disear una optimizacin es seleccionar las
variables de decisin del modelo.
Las variables de decisin generalmente pueden resolverse al
plantear el problema que quieres resolver. Por ejemplo, un
problema puede ser: qu capacidad de produccin necesito
en cierta rea para aumentar mi flujo de produccin?
Este planteamiento define las variables de decisin del modelo,
que son la capacidad de la mquina y el producto terminado del
modelo.
Pero hay que destacar que estas variables tienen roles
totalmente diferentes
La capacidad de la mquina es un valor que queremos cambiar
y experimentar mientras que el producto terminado es nuestra
retroalimentacin pues refleja el resultado de los cambios
realizados, permitiendo comparar que tan bueno es un
escenario con respecto a otros.
Variables de Decisin
Para aadir una variable de decisin, presiona el
botn Add en el panel de Variables. Esto aade una
nueva variable a la tabla de variables. Selecciona
esta variable al posionarte sobre alguna celda del
rengln de la nueva variable, ahora presiona el botn
Modify. Este hace que se despliegue una ventana
que permite editar la nueva variable.
Variables de Decisin
Una vez que especificaste el
nombre de la variable y el
tipo, presiona el botn
Browse para asociar esta
variable con un nodo del
modelo.
Se abrir la ventana del
Tree para seleccionar el
nodo que tiene el valor de la
variable de decisin.
Debes seleccionar un nodo
que tenga un valor numrico
de la contrario la optimizacin
no funcionar correctamente.
Restricciones
Opcionalmente puedes definir restricciones, las cuales
sirven para nulificar ciertos escenarios en caso de que
no se cumplan las restricciones. De esta forma nos
aseguramos que el optimizador no seleccione un
escenario invlido como ptimo.
Algunos ejemplos de restricciones son:
Produccin > 1000
Porcentaje de Ocio <= 0.10
Costo Total <= 350,000
Para aadir una restriccin presiona el botn Add y
escribe la restricciones en la columna de ecuaciones.
Funcin Objetivo
La funcin objetivo es la expresin que se quiere
maximizar o minimizar. Esta podra ser simplemente una
expresin como produccin si es que definiste una variable
de decisin llamada de esa forma.
La funcin objetivo puede calcular la utilidad o prdida de un
proceso. Por ejemplo, si cada producto producido genera un
ingreso de $5 y el costo de cada mquina (ponderado por la
duracin de la corrida de simulacin) es de $50, entonces la
funcin objetivo podra ser:
Maximizar Produccin * 5 NmeroMaximoDeMquinas * 50
Otros ejemplos son los siguientes:
Maximizar utilidades
Minimizar tiempos de surtido
Maximizar produccin minimizando inventario en proceso.
Condiciones de Paro
Maximum Time for Optimization
es el tiempo mximo (en tiempo
real) que el optimizador tendr para
realizar la optimizacin.
AutoStop: si esta opcin est
seleccionada, la optimizacin
parar cuando el valor de la
funcin objetivo deje de mejorarse.
Esto se cumple cuando el valor de
la funcin objetivo de la mejor
solucin encontrada no vara en al
menos 0.0001 despus de 100
iteraciones.
Escenarios
Mximum Scenarios aqu puede limitarse el nmero mximo
de diferentes escenarios que el optimizador probar. Cada
escenario es una configuracin diferente en la bsqueda del
optimizador.
Current Scenario es el valor de la funcin objetivo del
escenario actual.
Best Solution es el valor del funcin objetivo del mejor
escenario encontrado hasta ese momento.
Simulation Time per Scenario/Real Time per Scenario se
refieres al tiempo mximo en el que la simulacin trabajar en
cada escenario, en tiempos de la simulacin en el primer caso
y en tiempo real en el segundo caso.
Rplicas
Si deseas correr la simulacin
varias veces para un mismo
escenario para incrementar la
confianza en la media de la
funcin objetivo, utiliza el panel
de Replications para especificar
cuantas rplicas se efectuarn.
Perform multiple replications per scenario si est activado
el optimizador ejecutar ms de una rplica por cada
escenario.
Minimum number of replications es el nmero mnimo de
rplicas a correr por cada escenario diferente. Si no hay un
critero de salida temprana (Early Exit Criterion) definido
entonces el optimizador siempre correr el nmero mnimo de
rplicas.
Rplicas
Maximum number of replications es el nmero mximo de
rplicas a correr por cada escenario. Si se defini un critero de
salida temprana (Early Exit Criterion) entonces el optimizador
correr el escenario hasta que el criterio haya sido alcanzado,
hasta el nmero mximo de rplicas definido despus del cuale el
optimizador parar ese escenario.
Early Exit Criterion permite al optimizador dejar de correr ms
rplicas para el mismo escenario basndose en el critero que se
seleccione.
Si seleccionaste Confidence Interval Satisfied el optimizador parar las replicas
una vez que pueda determinar el valor verdadero de la media del escenario de
acuerdo al los porcentajes de confianza (Percent Confidence) y error (Error
Percent) especificados. Si especificas un 80% de confianza y un 5% de error, el
optimizador parar las replicas tan pronto est 80% seguro que el valor verdadero
de la media est dentro del 5% de la media muestreada.
Si se selecciona Best Solution Outside Confidence el optimizador parar las
rplicas para cierto escenario si puede determinar, dados los porcentajes de
confianza y error, que la mejor solucin no podr encontrarse nunca con ese
escenario.
Optimizando
Flexsim Chart
Para ver los resultados primero se debe activar la
opcin Full History On y despus se corre la
simulacin
Al finalizar la corrida
selecciona Reports and
Statitiscs.
108