Upload
lylien
View
234
Download
0
Embed Size (px)
Citation preview
Sesión 16Sesión 16
SIMULACIÓN DE REDES DE SIMULACIÓN DE REDES DE PETRIPETRI
Primer semestre 2011Primer semestre 2011UPIITA - IPNUPIITA - IPN
Simulación y herramientas
Un modelo de eventos discretos se compone de bloques de un sistem 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 reproduceel 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 predicir 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 objetivos y especificación de requerimientos
●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 posrí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ónSe 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ónDocumentar 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ónLos 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 representates son las máquinas de estados y redes de Petri, y los modelos orientados a objetos.
Modelos de filas
n 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 simplicadas, 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 mantemiento programadas, cargas y descargas de material, etc.
Tiempo y probabildad 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.
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 re-utilizadas como componentes de simulación.
Modelos orientados a objetos
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 nueo estado de la Lista.
6.Agreaga 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 coloradas son creadas para visuaizar 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 trancición por predicado y redes orientadas a objetos con sus ambientes de desarrollo.
Redes coloreadasLas 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 transicion en CPN esta en estado ENABLED si ́ ́todos sus nodos de entrada contien en un numero de ́colores igual o mayor que los definidos por fi <c> donde fi es una funcion linea l asociada al nodo pi con la ́transicion tj. Entonces ademas del concepto de color, ́ ́estas redes manejan una funcion asociada para los ́elementos de las funciones I, O de la PN.
Marcado para Envio
Send
INTxDATA 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 de tokensNúmero de tokens
Multi-set deColores de tokens
Multi-set deColores de tokens
Envía paquetes
● El enlace <n=1,p="Modellin">
se habilita.
Send
INTxDATA8
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,"########")
Send Packet A
INTxDATA
NextSendINT
1
1 1`1
(n,p)
(n,p)
n
n = 1
p = "Modellin"
El paquete no es removido de la plaza Send y el contador NextSend no cambia.
Esto representa que el paquete (1,"Modellin")es enviado a la red.
1 1`(1,"Modellin")
(1,p)
Cuando el enlace ocurre, agrega un token a la plaza A.
A
INTxDATA
1 1`(1,"Modellin")
Transmit
Packet
RP8
Int_0_10
1 1`8
B
INTxDATA
(n,p)
if Ok(s,r)
then 1`(n,p)
else empty
s
Transmite paquete
● Todos los enlaces habilitados son de la forma:● <n=1,p= "Modellin",s=8,r=...>
● donde r ∈1. .10
n = 1,p = "Modellin"
s = 8
r ∈1. .10
Pérdida de paquetes
● 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.
if Ok(s,r) then 1`(n,p) else empty
Recibe paquete
● El número de paquetes que llegan ny el número de paquetes esperados kse comparan.
B
INTxDATA
1 1`(1,"Modellin")
Receive Packet
NextRecINT
1
1 1`1
ReceivedDATA
""1 1`""
CINT
(n,p)
if n=k andalso p<>stop then str^p else str
if n=k then k+1 else k
k
if n=k then k+1 else k
str
Número correcto de paquetes
Un Reconocimiento es enviado. Contiene el número del siguiente paquete que el receptor desea obtener.
B
1 1`(3,"alysis b")
Receive Packet
NextRec1
1 1`3
Received 1 1`"Modelling and An"
C
(n,p)1
1`(3,"alysis b")
if n=k andalso p<>stop then str^p else str
11`"Modelling and Analysis b"
if n=k then k+1 else k
11`4
k
11`3
if n=k then k+1 else k
11`4
str
11`"Modelling and An"
El dato en el paquete es concatenado al dato que ya se ha recibido.
El contador NextRec se incrementa en uno.
Número de paquete equivocado
B
1 1`(2,"g and An")
Receive Packet
NextRec1
1 1`3
Received 1 1`"Modelling and An"
C
(n,p)1
1`(2,"g and An")
if n=k andalso p<>stop then str^p else str
11`"Modelling and An"
if n=k then k+1 else k
11`3
k
11`3
if n=k then k+1 else k
11`3
str
11`"Modelling and An"
Un Reconocimiento es enviado. Contiene el número del siguiente paquete que el recpetor desea obtener.
El dato en el paquete es ignorado
El contador NextRec no cambia.
Transmite Reconocimiento
● Esta transición trabaja de manera similar como un paquete transmitido.
● El marcado de RA determina el ritmo de éxito.
CINT
1 1`2
Transmit Acknow.D
INT
RAInt_0_10
81 1`8
nif Ok(s,r) then 1`n else empty
s
Recibe Reconocimiento
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.
Receive Acknow.
NextSendINT
1
1 1`1
DINT
1 1`2
n
k n
Tres módulos diferentesSender Receiver
Network
In
Out InIn
In OutOut
Out
I/O
Las plazas de interface son usadas para intercambiar tokens entre módulos
Vista abstracta
HS HSHS
Sender Network Receiver
Protocolo
Substitución de transiciones referidas a módulos Plazas de contacto se relacionan a las plazas de
interface.
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.
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 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
UPPAAL
Conclusiones
Hemos visto estratégias 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