72
Sesión 16 Sesión 16 SIMULACIÓN DE REDES DE SIMULACIÓN DE REDES DE PETRI PETRI Primer semestre 2011 Primer semestre 2011 UPIITA - IPN UPIITA - IPN

Sesión 16 SIMULACIÓN DE REDES DE PETRI Primer semestre ... · Simulación y herramientas La simulación tiene dos motivaciones principales: Prototipos rápidos para determinar el

  • 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

Procedimiento de simulación

Redes coloreadas

Ejemplos

Contenido

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.

Ejemplo de una Red de Petri coloreada

Protocolo simple

Protocolo simple

PlazasPlazas

Protocolo simple

TransicionesTransiciones

Protocolo simple

Place

Tipo (color)Tipo (color)

Protocolo simple

Marcado inicialMarcado inicialPlace

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

Protocolo simple

Inscripciones de arcoInscripciones de arco

Protocolo simple

Protocolo simple

Interface de lasplazas de bufferInterface de lasplazas de buffer

Protocolo simple

Paquetes a enviarPaquetes a enviar

Protocolo simple

ContadorContador

Protocolo simple

ContadorContador

Protocolo simple

Recepción de datosRecepción de datos

Protocolo simple

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.

Protocolo simple

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

Protocolo simple

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.

Protocolo simple

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

Protocolo simple

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

Modules

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.

Módulos pueden ser reusados

HS

HS

HS

Sender Network

Receiver

Protocolo

HS

Receiver

Protocolo con múltiples receptores

Sender ReceiverNetwork

In

Out In

In

In

Out

Out

OutI/O

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.

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

Próxima sesión

Aplicaciones en Sistemas de Manufactura