Sesión 17 SIMULACIÓN DE REDES DE PETRI

Transcripción

Sesión 17 SIMULACIÓN DE REDES DE PETRI
Sesión 17
SIMULACIÓN DE REDES DE
PETRI
Contenido
Simulación y herramientas
Procedimiento de simulación
Redes coloreadas
Ejemplos
Simulación y herramientas
Un modelo de eventos discretos se compone de bloques
de un sistema y una caledarización o reglas que
gobiernan el flujo de trabajo en un FMS.
La simulación de eventos discretos es un proceso en el
cual se reproduce el comportamiento de un sistema que
se rige por eventos discretos tal como los eventos de un
FMS.
Uno de los objetivos de la simulación es e de obtener
datos cualitativos y cuantitativos de un proceso para
predecir el comportamiento y rendimiento del sistema.
Simulación y herramientas
La simulación tiene dos motivaciones principales:
Prototipos rápidos para determinar el comportamiento
del sistema, y predicción de rendimiento.
Algunas medidas de interés son el flujo de material,
utilización de recursos, capacidad de buffers, resistencia
a fallas y efectos de las misma.
El modelo de software debería de capturar toda la
dinámica e interacciones del sistema real. Dado que los
sistemas reales de manufactura son difíciles de construir,
la simulación es un medio para predecir con precisión, y
elegir el mejor diseño entre estas alternativas.
Procedimiento de simulación de
eventos discretos
En la simulación de eventos discretos, el modelo
contiene entidades u objetos, atributos, eventos,
actividades y relaciones entre ellos. La colección de
entidades y su estado define el estado general del
sistema.
Los cambios son manejados por ocurrencias de eventos,
generalmente asíncronas. El sistema de manufactura,
una entidad puede ser una máquinas, un robot, material
(trabajo en progreso), y un controlador con su itinerario.
Procedimiento de simulación de
eventos discretos
Los atributos de una máquina incluyen su ritmo
de operación, la naturaleza de la operación y su
confiabilidad.
Ejemplos de eventos son la llegada de materia
prima, carga, descarga, cambio de herramienta y
el comienzo de una operación.
La simulación del sistema de eventos discretos se
involucran los siguientes pasos:
Definición
de
requerimientos
●
objetivos
y
especificación
de
Determinar la especificación de requerimientos y
objetivos de simulación del sistema de manufactura que
se estudia o diseña.
●
Los objetivos son para determinar el mejor sistema
entre diversas alternativas y para investigar el
comportamiento y rendimiento del sistema.
●
Se selecciona el nivel de detalle apropiado para
empatar el objetivo de modelado.
●
Por ejemplo, podría optimizar el rendimiento un
FMS individual o para mejorar la distribución de
las celdas en una planta de fabricación.
Ambientes
de
simulación
y
lenguajes
relacionados podrían ser usados para formular
requerimientos, aunque podrían diferir del
lenguaje usado para construir el modelo de
simulación.
Desarrollo del modelo
Formular un modelo el cual podría ser una Red
de Petri u otro modelo. Por ejemplo, un modelo
de manejo de solicitudes, máquinas de estados y
un modelo orientado a objetos.
La construcción de un modelo puede ser una
tarea difícil, requiendo el entendimiento del
modelador del problema y experiencia en
modelado. El modelo ha capturado la esencia del
sistema real sin un detalle excesivo.
Desarrollo del modelo
Los modelos jerárquicos que podrían representar
los diferentes niveles de detalle son requeridos
para un sistema FMS de gran escala.
Los resultados de simulación pueden ser
presentados a planeadores y administradores
para la toma de decisiones y servir de base para
el diseño y la implementación en tiempo real.
Premisas
y simplificaciones tienen que ser
justificadas.
Construcción del modelo
computacional
Construir una representación computacional del
modelo. Por ejemplo, programar una formulación
matemática usando un lenguaje de simulación o
algún lenguaje de programación de propósito
general, o construir un modelo gráfico en un
editor gráfico en el cual los algoritmos de
simulación están empotrados y no aparente a un
usuario.
Colección de datos
Analizar todos los parámetros involucran en el
modelo y serie de especificaciones, y adquirir
datos basados en conteos, experiencia y desde la
simulación a bajo nivel. La calidad de datos tiene
directo impacto en los resultados obtenidos desde
la simulación. Es necesario tener cuidado en este
proceso.
Ejecuciones de simulación
Se trata de ejecutar el modelo computacional o
simulador para verificar que tan bien emula la realidad.
El proceso de verificación del modelo asegura que la
simulación modela apropiadamente al sistema.
Si la estructura lógica, entradas y salidas son
representadas
correctamente
en
el
modelo
computacional, entonces es cuando se completa la
verificación.
Se usan casos simples y sentido común en el proceso.
Técnicas de animación pueden facilitar el entendimiento
de la dinámica. Finalmente, la validación asegura que el
modelo es una buena representación de la realidad.
Evaluación de resultados de
simulación
Se trata de obtener y evaluar los resultados de la
simulación. Este es una etapa de análisis
estadístico aplicado a los resultados de la
simulación y para validarlos. El sistema es
simulado dentro de un rango aceptable de
parámetros operacionales y configuración optima
pueden ser determinados.
Documentación
Documentar los datos de entrada, métodos ,
herramientas de simulación, tiempo computacional y los
resultados. Los resultados deberán ser presentados en
grafos para patrones y tendencias sobre los parámetros
de interés.
El uso de técnicas de descripción formal en la
construcción de los modelos de simulación, permite la
verificación de estos modelos, con respecto para sus
propiedades de comportamiento, usando técnicas
matemáticas estrictas.
Por ejemplo, las redes de Petri permiten la construcción
de modelos de simulación, de igual manera que su
verificación formal a través de métodos de análisis.
Documentación
Los resultados de simulación deben de ser comparados con
los datos del mundo real, si están disponibles, para los
sistemas existentes, o con los resultados producidos por
modelos teóricos.
Para sistemas complejos, obteniendo soluciones analíticas
para modelos que involucran todas las caras de la
funcionalidad de un sistema es, a menudo, difícil de hacer.
Los modelos de la teoría de filas son usados, en la mayoría
de los casos, para obtener los resultados de referencia.
Estos efectos se deben al periodo de transición, lo cual sigue
el inicio de la ejecución de la simulación,e influido por la
naturaleza del sistema simulado tal como el ambiente de
simulación.
Modelos de simulación, esquemas y
herramientas
Hay tres tipos básicos de modelos de sistema de
eventos discretos: Modelos de filas, modelos de
transición de estados cuyos representantes son
las máquinas de estados y redes de Petri, y los
modelos orientados a objetos.
Modelos de filas
En modelo de filas de un sistema de manufactura puede
ser obtenido si se tratan los recursos tales como
máquinas y robots como servidores, áreas de
almacenamiento, bandas transportadoras como buffers
(filas), y trabajos o partes como clientes.
Cuando se tienen premisas estrictas, quizás no realistas
o simplificadas, que se hacen para el modelo, los
resultados analíticos pueden ser derivados de la
evaluación del rendimiento. Cuando las premisas no
pueden mantenerse, la simulación o los métodos de
aproximación pueden ser usados para derivar los
resultados deseados.
Modelos de transición de estados
Los modelos típicos de transición de estados
incluyen máquinas de estados finitos y redes de
Petri. Cuando un sistema es complejo, la
representación gráfica de una máquina de
estados podría no ser práctica o posible debido a
la explosión exponencial a que estaría sujeto el
problema.
Note que el número de estados está relacionado
con un crecimiento exponencial con el número de
componentes en el sistema.
Es posible incorporar el tiempo y efectos de
retardo en la simulación. Hay dos formas de
considerar el efecto del tiempo:
El tiempo asociado con los eventos: por ejemplo,
aquellos eventos que tienen un tiempo fijo de
ejecución
como
las
operaciones
de
mantenimiento programadas, cargas y descargas
de material, etc.
Tiempo y probabilidad asociado con los estados:
tiempo fijo o aleatorio de retardo asignado a cada
estado, implicando que el retardo en el momento
en que el sistema entra al estado para pasar
antes del disparo a eventos futuros.
Modelos orientados a objetos
Un sistema de manufactura puede ser vista como una
colección de objetos con reglas que gobiernan su
dinámica e interacciona para generar los objetos
deseados (producto). Los objetos pueden ser
representados gráficamente y ser guardados en bases
de datos como miembros de clase similar y compartir
propiedades comunes.
Tales objetos pueden ser construidos a partir de una
base de datos para representar un modelo de sistema
real. Estos modelos pueden crear librerías y ser reutilizadas como componentes de simulación.
Esquemas de simulación y
herramientas
Un sistema de simulación puede ser usado para
la calendarización de eventos o para un esquema
orientado a procesos.
Un proceso puede ser tratado como una
secuencia de funciones o eventos disparados por
una entidad
En un esquema de calendarización de eventos, el
proceso de simulación funciona con los siguientes pasos:
1. Se definen las variables iniciales de las variables,
incluyendo los eventos posibles y sus tiempos de
aparición en algo llamado 'Lista de eventos
calendarizados'. Los eventos son ordenados por el
sistema en base que el primero es que tienen menor
calendarización.
2. Se remueve la primera entrada de la lista de eventos
calendarizados.
3. Tiempo de reloj progresa para remover el tiempo
calendarizado del evento.
4. Actualiza el estado del sistema debido a la ocurrencia del
evento
5. Borra cualquier entrada correspondiente de eventos
imposibles en el nuevo estado de la Lista.
6. Agrega nuevos eventos posibles y su calendarización de
tiempos de ocurrencia.
7. Re-ordena La lista actualizada basado en el criterio de
primero el de menor tiempo de calendarización y regresa al
paso 2.
Unidades de tiempo Marcado
Función F Función Q Función A
0
(1,2,3,0,0)' (1,0)
(1,0)
(0,0)
1
(0,1,2,0,0)'
(0,1)
(0,2)
(1,0)
2
(0,1,2,1,0)'
(0,0)
(0,1)
(1,1)
3
(1,1,2,0,1)'
(1,0)
(1,0)
(1,2)
Descripción de las características de un
paquete de simulación de redes de Petri
Leer y almacenar una red de Petri
Manejo de transiciones
Resolución de conflictos
Tiempo mínimo
Marcado nuevo
Redes de Petri de alto nivel
Las redes de Petri coloreadas son creadas para
visualizar un cambio de estado de eventos al
cambio de tokens a través de la red. Tales redes
son útiles para el modelado de redes grandes,
con múltiples tokens. Otras redes de alto nivel
incluyen las asociaciones a redes de transición
por predicado y redes orientadas a objetos con
sus ambientes de desarrollo.
Redes coloreadas
Las redes de Petri coloreadas (CPN) pertenecen a la
familia de las PN, la diferencia viene marcada por las
consideraciones en CPN de colores y de funciones
lineales asociadas a sus arcos. Los tokens de color
pueden representar un atributo o distintivo, si es
necesario definir dos atributos entonces surge la idea de
colores compuestos.
Una transición en CPN está en estado ENABLED si
todos sus nodos de entrada contiene en un número de
colores igual o mayor que los definidos por fi <c> donde
fi es una función lineal asociada al nodo pi con la
transición tj. Entonces además del concepto de color,
estas redes manejan una función asociada para los
elementos de las funciones I, O de la PN.
Ejemplo de una Red de Petri coloreada
Protocolo simple
Protocolo simple
Plazas
Plazas
Protocolo simple
Transiciones
Transiciones
Protocolo simple
Place
Tipo
Tipo (color)
(color)
Protocolo simple
Place
Marcado
Marcado inicial
inicial
Marcado para Envio
INTxDATA
Send
8
1 ` (1,"Modellin") +
1 ` (2,"g and An") +
1 ` (3,"alysis b") +
1 ` (4,"y Means ") +
1 ` (5,"of Colou") +
1 ` (6,"red Petr") +
1 ` (7,"i Nets##") +
1 ` (8,"########")
Número
Número de
de tokens
tokens
Multi-set
Multi-set de
de
Colores
Colores de
de tokens
tokens
Protocolo simple
Inscripciones
Inscripciones de
de arco
arco
Protocolo simple
Protocolo simple
Interface
Interface de
de las
las
plazas
plazas de
de buffer
buffer
Protocolo simple
Paquetes
Paquetes aa enviar
enviar
Protocolo simple
Contador
Contador
Protocolo simple
Contador
Contador
Protocolo simple
Recepción
Recepción de
de datos
datos
Protocolo simple
Envía paquetes
p = "Modellin"
1`(1,"Modellin")
+ 1`(2,"g and An")
8 + 1`(3,"alysis b")
+ 1`(4,"y Means ")
+ 1`(5,"of Colou")
+ 1`(6,"red Petr")
+ 1`(7,"i Nets##")
+ 1`(8,"########")
INTxDATA
●
El enlace
<n=1,p="Modellin">
se habilita.
Send
(1,p)
(n,p)
INTxDATA


Cuando el enlace ocurre, agrega un
token a la plaza A.
Send
Packet
(n,p)
A
1
Esto representa que el paquete
(1,"Modellin")
es enviado a la red.
n
1

El paquete no es removido de la plaza INT
Send y el contador NextSend no cambia.
NextSend
n=1
1 1`1
1`(1,"Modellin")
Envía paquetes
p = "Modellin"
1`(1,"Modellin")
+ 1`(2,"g and An")
8 + 1`(3,"alysis b")
+ 1`(4,"y Means ")
+ 1`(5,"of Colou")
+ 1`(6,"red Petr")
+ 1`(7,"i Nets##")
+ 1`(8,"########")
INTxDATA
●
El enlace
<n=1,p="Modellin">
se habilita.
Send
(1,p)
(n,p)
INTxDATA


Cuando el enlace ocurre, agrega un
token a la plaza A.
Send
Packet
(n,p)
A
1
Esto representa que el paquete
(1,"Modellin")
es enviado a la red.
n
1

El paquete no es removido de la plaza INT
Send y el contador NextSend no cambia.
NextSend
n=1
1 1`1
1`(1,"Modellin")
Protocolo simple
Transmite paquete
r ∈ 1. .10
if Ok(s,r)
then 1`(n,p)
else empty
INTxDATA
Transmit
Packet
(n,p)
A
1
B
1`(1,"Modellin")
s=8
s
8
n = 1,
p = "Modellin"
●
INTxDATA
RP
1
1`8
Int_0_10
Todos los enlaces habilitados son de la forma:
●
<n=1,p= "Modellin",s=8,r=...>
●
donde
r ∈ 1. .10
Pérdida de paquetes
●
●
if Ok(s,r)
then 1`(n,p)
else empty
La función Ok(s,r) verifica que r ≤ s.
●
para r ∈ 1. .8, Ok(s,r)=true.
El token se mueve de A a B. Esto significa que el paquete se
ha transmitido exitosamente en la red.
●
Para r ∈ 9. .10, Ok(s,r)=false.
Ningún token se agrega a B. Esto significa que el paquete
se ha perdido
El simulador CPN hace elecciones aleatorias entre los
enlaces: 80% de posibilidad para una transferencia exitosa.
Protocolo simple
""
Recibe paquete
Received
1 1`""
DATA
●
El número de paquetes que
llegan n
y el número de paquetes
esperados k
se comparan.
INTxDATA
str
(n,p)
B
if n=k
andalso
p<>stop
then str^p
else str
1 1`(1,"Modellin")
k
1
NextRec
INT
1 1`1
if n=k
then k+1
else k
C
INT
Receive
Packet
if n=k
then k+1
else k
Número correcto de
paquetes
◆
El dato en el paquete es
concatenado al dato que ya
se ha recibido.
Received
1 1`"Modelling and An"
1
1`"Modelling and An"
1`(3,"alysis b")
B
1
str
(n,p)
if n=k
andalso
p<>stop
then str^p
else str
1 1`(3,"alysis b")
◆
◆
El contador NextRec se
incrementa en uno.
Un Reconocimiento es
enviado. Contiene el
número del siguiente
paquete que el receptor
desea obtener.
1
1`"Modelling and Analysis b"
k
1`3
1
1
NextRec
1 1`3
1`4
1
if n=k
then k+1
else k
C
Receive
Packet
1
1`4
if n=k
then k+1
else k
Número de paquete
equivocado
◆
Received
1
1`"Modelling and An"
1`(2,"g and An")
(n,p)
1
B
El dato en el paquete es
ignorado
1 1`"Modelling and An"
if n=k
andalso
p<>stop
then str^p
else str
str
1 1`(2,"g and An")
◆
◆
El contador NextRec no
cambia.
Un Reconocimiento es
enviado. Contiene el
número del siguiente
paquete que el recpetor
desea obtener.
1
1`"Modelling and An"
k
1`3
1
1
NextRec
1`3
1 1`3
if n=k
then k+1
else k
C
1
Receive
Packet
1
1`3
if n=k
then k+1
else k
Número de paquete
equivocado
◆
El dato en el paquete es
ignorado
◆
El contador NextRec no
cambia.
◆
Un Reconocimiento es
enviado. Contiene el
número del siguiente
paquete que el recpetor
desea obtener.
Protocolo simple
Transmite Reconocimiento
8
RA
1 1`8
Int_0_10
s
D
INT
●
●
if Ok(s,r)
then 1`n
else empty
Transmit
Acknow.
n
C
INT
1 1`2
Esta transición trabaja de manera similar como un paquete
transmitido.
El marcado de RA determina el ritmo de éxito.
Protocolo simple
Recibe Reconocimiento
1
NextSend
INT
1 1`1
k
n
Receive
Acknow.
n
D
INT
1 1`2
Cuando un reconocimiento llega al origen, Este es usado para actualizar
el contador NextSend.
●
En este caso, el valor del contador se convierte en 2,
y por lo tanto se empezará a enviar el paquete número 2.
Modules
Tres módulos diferentes
Receiver
Sender
I/O
Network

Out
In
Out
In
Out
In
In
Out
Las plazas de interface son usadas para intercambiar tokens entre
módulos
Vista abstracta
Protocolo
HS
HS
HS
Sender
Network
Receiver


Substitución de transiciones referidas a módulos
Plazas de contacto se relacionan a las plazas de
interface.
Módulos pueden ser
reusados
Protocolo
HS
Receiver
HS
HS
Sender
Network
HS
Receiver
Protocolo con múltiples receptores
Network
Sender
Receiver
I/O
Out
In
Out
In
Out
In
Out
In
Out
In
Herramientas y aplicaciones
Herramientas
●
Design/CPN fue desarrollado a finales de los 80s y
principios de los 90s.
●
●
●
Era uno de los paquetes mas usados para simular redes de
Petri
Fue reemplazado por CPN Tools
CPN Tools es la siguiente generación de soporte para
redes de Petri coloreadas.
●
Es una herramienta para editar, simular y analizar redes de Petri
coloreadas.
●
UPPAAL es una caja de herramientas para la verificación
de sistemas en tiempo real desarrollado por la Uppsala
University y Aalborg University
●
●
Está diseñado para modelar redes de automatas temporizados
extendidos, con variables enteras, tipos de datos estructurados y
canales de sincronización.
TAPAAL es una herramienta para el modelado, simulación y
verificación de Redes de Petri con Arcos temporizados desarrollado
también por el Departamento de Computación de la Universidad
Aalborg en Dinamarca.
CPN Tools
●
La funcionalidad de CPN Tools es:
●
●
●
●
●
●
Editar y verificar sintaxis de Redes de Petri.
Simulación interactiva y automática.
Construcción y análisis de espacios de estado.
Comunicación con otras herramientas.
Simulación basada en análisis de rendimiento.
Animación gráfica de resultados de simulación.
UPPAAL
UPPAAL usa una arquitectura cliente-servidor,
separando la herramienta en una interface gráfica
de usuario y una máquina de verificación del
modelo.
La interface de usuario, o cliente, es
implementada en java y el motor, o servidor, es
compilado en las diferentes plataformas (Linux,
Windows, Solaris)
No está explicitamente diseñado para modelar
redes de Petri
Conclusiones
Hemos visto estrategias para preparar un modelo
de una red de Petri para simulación
Como se hace la construcción de un modelo
computación de la red
Se abordaron ejemplos de simulación
Algunos paquetes que realizan simulación de
sistemas discretos
Próxima sesión
Aplicaciones en Sistemas de Manufactura

Documentos relacionados