Petri Pdevs

También podría gustarte

Está en la página 1de 9

See discussions, stats, and author profiles for this publication at: https://www.researchgate.

net/publication/317413579

Modelo y simulación de Redes de Petri con el formalismo DEVS

Conference Paper · August 2010

CITATIONS READS

0 94

3 authors:

Taihú Pire Federico Bergero


National Scientific and Technical Research Council Rosario National University
16 PUBLICATIONS   49 CITATIONS    22 PUBLICATIONS   155 CITATIONS   

SEE PROFILE SEE PROFILE

Ernesto Kofman
National Scientific and Technical Research Council
106 PUBLICATIONS   1,702 CITATIONS   

SEE PROFILE

Some of the authors of this publication are also working on these related projects:

MPC for applications View project

S-PTAM View project

All content following this page was uploaded by Taihú Pire on 08 June 2017.

The user has requested enhancement of the downloaded file.


AADECA 2010 - Semana del Control Automático - XXII◦ Congreso Argentino de Control Automático
31 de Agosto al 2 de Septiembre de 2010 - Buenos Aires, Argentina.

MODELADO Y SIMULACIÓN DE REDES DE PETRI


CON EL FORMALISMO DEVS

Taihú Piré 1 Federico Bergero 2 Ernesto Kofman 3

Departamento de Ciencias de la Computación. FCEIA - UNR.


Laboratorio de Sistemas Dinámicos. FCEIA - UNR.
CIFASIS–CONICET. Riobamba 245 bis - (2000) Rosario

Resumen: En este trabajo se presenta el desarrollo de una librerı́a de Redes de Petri


implementada completamente bajo un simulador de eventos discretos (DEVS) llamado
PowerDEVS. Se describe la metodologı́a utilizada para sortear los problemas que
surgen de las diferencias entre estos formalismos (modularidad vs. no-modularidad,
cambios locales vs. cambios globales, prioridades vs. no determinismo) con el objetivo
de mantener la apariencia gráfica de las Redes de Petri.
Esta nueva librerı́a permite el modelado y simulación de modelos hı́bridos inter–
formalismos (DEVS y Redes de Petri) tomando ventajas de cada uno de ellos y
utilizando cada uno donde es más apropiado. Se presentan también dos ejemplos
de uso de la librerı́a donde se ilustran algunas de sus caracterı́sticas.

Palabras Claves: Redes de Petri, DEVS, PowerDEVS, Sistemas Hı́bridos

1. INTRODUCCIÓN Pese a su generalidad, DEVS no es un lenguaje


gráfico, y en gran cantidad de casos es mucho
La rápida evolución tecnológica de las últimas más simple obtener un modelo en Redes de Petri
décadas emergió junto con nuevos sistemas dinámi- que hacerlo directamente en DEVS. Por otro lado,
cos entre los cuales encontramos, por ejemplo, hay muchos modelos que no pueden representarse
redes de computadoras, sistemas de producción con Redes de Petri (aproximaciones de sistemas
automatizados, sistemas de control supervisorio, continuos, por ejemplo, o modelos hı́bridos en
etc. En estos sistemas los cambios se deben a la general), y que el formalismo DEVS puede simular
ocurrencia asincrónica de eventos, lo que motivó la de manera muy eficiente.
formulación del término Sistemas de Eventos Esto sugiere la conveniencia de utilizar ambos
Discretos (DES) y la definición de formalismos formalismos en conjunción. De hecho, hay un
que permitan modelar, analizar y simular dichos antecedente del uso de PN en un simulador
sistemas. DEVS (Jacques and Wainer, 2002). Sin embargo,
Entre los formalismos más populares para estos debido a las caracterı́sticas del simulador utilizado
sistemas se encuentran las Redes de Petri (Petri (CD++) (Wainer, 2002), en dicho trabajo los
Nets o PN) (Cassandras and Lafortune, 2008; modelos tienen muchas restricciones y en el
Cohen, 2001), que proveen una representación modelado se deben agregar puertos y conexiones
gráfica muy conveniente para modelizar y analizar que no existen en la Red de Petri original.
distintos tipos de problemas. Por otra parte, orien- En el presente trabajo se desarrolla e implementa
tado a los problemas de modelado y simulación una metodologı́a que permite utilizar Redes de
más generales, se desarrolló el formalismo DEVS Petri dentro de una herramienta de modelado
(Discrete EVent System specification) (Zeigler et y simulación de DEVS denominada PowerDEVS
al., 2000). DEVS es un formalismo universal que (Bergero and Kofman, 2010). A diferencia de
permite expresar todos los modelos que pueden lo desarrollado en CD++, esta implementación
ser representados por cualquier otro formalismo respecta la apariencia gráfica de las Redes de Petri
DES (como las PN por ejemplo). y no tiene restricciones, incluyendo temporización,
asignación de prioridades e interconexión con
otros modelos DEVS (incluyendo aproximaciones
de modelos continuos). Además de describir la im-
1 taihup@gmail.com
2 bergero@cifasis-conicet.gov.ar
plementación, se muestran ejemplos de aplicación
3 kofman@fceia.unr.edu.ar que utilizan la librerı́a desarrollada.
AADECA 2010 - Semana del Control Automático - XXII◦ Congreso Argentino de Control Automático
31 de Agosto al 2 de Septiembre de 2010 - Buenos Aires, Argentina.

El trabajo está estructurado de la siguiente Las transiciones que no poseen lugares anteriores
manera: en la sección 2 se presentan los con- reciben el nombre de transiciones de entrada (o
ceptos y herramientas utilizados en el resto del fuentes). Los disparos de las mismas se deben a
trabajo. En la sección 3 se describe el trabajo decisiones externas (son “controladas” desde el
desarrollado y en la sección 4 se exponen distintos exterior). Las transiciones que no poseen lugares
ejemplos y aplicaciones que manifiestan distintas posteriores se llaman transiciones de salida (o
caracterı́sticas de la implementación. Finalmente, sumideros). Los disparos de las mismas nos
en la sección 5 se comentan algunas conclusiones indican cuando se producen marcas desde la red
y posibles trabajos futuros. hacia el exterior.
Las mismas definiciones pueden hacerse para los
lugares (los lugares de entrada deben ser provistos
2. CONCEPTOS PREVIOS de marcas desde el exterior).
2.1 Redes de Petri Los cambios de estados ocurren según las siguien-
tes reglas de evolución:
Las Redes de Petri (PN) (Cassandras and Lafor- una transición Ti puede dispararse o activar-
tune, 2008; Cohen, 2001) son una herramienta se, si cada lugar anterior a Ti contiene al
gráfica, creada por Carl Adam Petri, que se menos tantas marcas como el peso del arco
utilizan para representar fenómenos tales como que los une.
la dinámica de eventos, la evolución en paralelo, cuando una transición Ti es disparada o
la dependencia condicional (sincronización), la activada, se elimina de cada lugar anterior a
competencia de recursos, etc. Estos fenómenos se dicha transición tantas marcas como el peso
manifiestan frecuentemente en sistemas de pro- del arco que los une. También se agrega a
ducción, protocolos de comunicaciones, compu- cada lugar posterior a Ti tantas marcas como
tadoras y redes de datos, software de tiempo real, el peso del arco que los une (ver Fig. 1).
sistemas de transporte, etc.
En lugar de asociar pesos a los arcos, se puede
Desde el punto de vista de la teorı́a de grafos suponer que todos los arcos tienen peso uno y
las redes de Petri son un par dirigido (ϑ, M ) permitir varios arcos “paralelos” entre lugares y
compuesto por un grafo dirigido bipartito ϑ = transiciones.
(E, V ) y una marca inicial M. El conjunto
de vértices está dividido en dos subconjuntos Las Redes de Petri permiten también incorporar
disjuntos P (lugares) y T (transiciones). Los temporización, añadiendo un parámetro a los
lugares serán representados por: Pi , i = 1, ..., |P | lugares y/o transiciones que denota:
y las transiciones por: Tj , j = 1, ..., |T |. Los arcos lugares: el tiempo mı́nimo que las marcas
de E van de los lugares a las transiciones o bien deben permanecer antes de contribuir a ha-
de las transiciones a los lugares. Gráficamente los bilitar el disparo de una transición posterior.
lugares serán representados mediante cı́rculos y Se denomina tiempo de espera.
las transiciones mediante arcos. A los arcos se les transiciones: el tiempo que separa el comien-
asigna un peso el cual está dado por un número zo (el consumo de marcas de los lugares
entero (en ausencia de dicho número se considera anteriores) y la finalización (la producción
que el peso es 1). La marca inicial asigna un entero de marcas hacia los lugares posteriores)
no negativo Mi a cada lugar Pi . Gráficamente, del disparo de una transición. Se denomina
Mi puntos o marcas serán colocados en el cı́rculo tiempo de disparo.
que representa a Pi . El vector columna M , cuyas
componentes son las Mi , recibe el nombre de
marca inicial de la red de Petri. Diremos que un
lugar Pi es anterior a una transición Tj , si hay un 2.2 Simuladores de Redes de Petri
arco que va de Pi a Tj . Análogamente, diremos
que un lugar Pi es posterior a la transición Tj , si
Dado que las Redes de Petri son muy utilizadas,
hay un arco que va de Tj a Pi . Una representación
se han desarrollado numerosas herramientas para
gráfica de una Red de Petri puede verse en la
su modelado, simulación y análisis:
Fig. 1.
2 2
Hay un conjunto de herramientas de código
T1 P1 T2 P3 T1 P1 T2 P3 abierto desarrolladas en Java, que permiten
2 2
editar, simular y analizar redes de Petri
P2 T3 T3 P2 T3
(a) (b)
de manera gráfica. Entre ellas encontramos
P4 T1 P4
Pipe2 (Bonet et al., 2007), Tapaal (Byg
et al., 2009) y HPSim. Cada una de estas
herramientas ofrece distintas opciones de
Figura 1. Evolución de una Red de Petri temporización, análisis, etc.
AADECA 2010 - Semana del Control Automático - XXII◦ Congreso Argentino de Control Automático
31 de Agosto al 2 de Septiembre de 2010 - Buenos Aires, Argentina.

Matlab posee un toolbox para diseñar, ana- Durante una transición externa no se produce
lizar y simular redes de Petri (Zdenk et al., ningún evento de salida.
2001),.
Los modelos DEVS pueden acoplarse de forma
Modelica cuenta con una librerı́a de Redes
equivalente a los diagramas de bloques, a través
de Petri (Mosterman et al., 1998), que
de puertos de entrada y salida. Los modelos
permite modelar y simular Redes de Petri
acoplados constituyen modelos DEVS válidos, que
en las distintas herramientas de software que
pueden acoplarse a su vez con otros modelos
implementan este lenguaje. Estos modelos
DEVS atómicos o acoplados.
pueden interactuar con modelos más gene-
rales representados en Modelica.
2.4 Redes de Petri y DEVS

2.3 Formalismo DEVS Como se mencionó en la introducción, el formalis-


mo DEVS permite representar cualquier sistema
DEVS(Zeigler et al., 2000) es un formalismo de eventos discretos y existe un antecedente de la
para modelar y analizar sistemas de eventos utilización de Redes de Petri en una herramienta
discretos(es decir, sistemas en los cuales en un de simulación DEVS (Jacques and Wainer, 2002).
lapso finito de tiempo, ocurren una cantidad finita
de cambios). En dicha implementación, se desarrollan dos
modelos DEVS atómicos: uno para los lugares y
Un modelo DEVS puede ser visto como un otro para las transiciones.
autómata que procesa una secuencia de eventos
de entrada y genera una secuencia de eventos de La Fig. 2 ilustra el modelo DEVS que describe el
salida. lugar. Éste tiene un único puerto de entrada y un
único puerto de salida.
Formalmente un modelo DEVS está descripto por
dos clases de componentes, modelos atómicos y IN PLACE OUT
modelos acoplados.
Un modelo atómico representa la unidad “mole- Figura 2. Modelo conceptual de un lugar
cular” de procesamiento, en el sentido que es la
pieza fundamental y más básica. Formalmente un El puerto de entrada (IN ) es usado para recibir
modelo atómico esta conformado por la 7-upla eventos desde las transiciones que indican que hay
que sumar o restar marcas.
(X, Y, S, δint , δext , λ, ta) donde:
El puerto de salida (OU T ) es usado para enviar
Cada posible estado s (s ∈ S) tiene asociado eventos notificando a las transiciones posteriores
un Avance de Tiempo calculado por la Función el número de marcas. De esta manera las tran-
de Avance de Tiempo ta(s). Luego, si el estado siciones pueden determinar si están activas. Este
toma el valor s1 en el tiempo t1 , tras ta(s1 ) proceso es ejecutado cada vez que el número de
unidades de tiempo (o sea, en tiempo ta(s1 )+t1 ) el marcas en el lugar es modificado y cuando el
sistema realiza una transición interna yendo a un modelo es inicializado.
nuevo estado s2 . El nuevo estado se calcula como
s2 = δint (s1 ). La función δint se llama Función de La Fig. 3 ilustra el modelo DEVS que describe la
Transición Interna. transición.
IN0 OUT1
Cuando el estado va de s1 a s2 se produce también
TRANSITION

IN1 OUT2
un evento de salida con valor y1 = λ(s1 ). La
IN2 OUT3
función λ (λ : S → Y ) se llama Función de IN3 OUT4
Salida. Ası́, las funciones ta, δint y λ definen el IN4 FIRED
comportamiento autónomo de un modelo DEVS.
Cuando llega un evento de entrada el estado Figura 3. Modelo conceptual de una transición
cambia instantáneamente. El nuevo valor del
Este modelo posee cinco puertos de entrada y
estado depende no sólo del valor del evento
cinco puertos de salida. Por el puerto de entrada
de entrada sino también del valor anterior de
IN 1 llegan eventos de los lugares anteriores
estado y del tiempo transcurrido desde la última
notificando la cantidad de marcas que tienen los
transición. Si el sistema llega al estado s3 en el
mismos. Los puertos de entrada IN 2, IN 3, e
instante t3 y luego llega un evento de entrada
IN 4 tienen la misma función que el puerto IN 1
en el instante t3 + e con un valor x1 , el nuevo
excepto que los arcos representan una conexión
estado se calcula como s4 = δext (s3 , e, x1 ) (notar
doble, triple y cuádruple respectivamente.
que ta(s3 ) > e). En este caso se dice que el
sistema realiza una transición externa. La función El puerto de entrada IN 0 cumple la misma
δext se llama Función de Transición Externa. función que el puerto IN 1 con la excepción de
AADECA 2010 - Semana del Control Automático - XXII◦ Congreso Argentino de Control Automático
31 de Agosto al 2 de Septiembre de 2010 - Buenos Aires, Argentina.

que las conexiones consisten en un arco inhibidor. Por otra parte, los eventos que procesan los
Es decir, los lugares de entrada deben contener modelos atómicos también son instancias de una
cero marcas para que la transición esté activa y clase llamada Event. Como vimos en la sección
cuando esta se dispara ninguna marca es removida 2.3 tanto los eventos de entrada como los de
del lugar. salida de un modelo DEVS pueden pertenecer
a cualquier conjunto definido por el modelador.
Por el puerto de salida OU T 1 se envı́an eventos
Para representar esto en el motor de simulación,
a los lugares posteriores indicando que deben
el valor que contiene la clase Event es del tipo
incrementar su estado en una marca. Los puertos
void *, o sea un puntero sin tipo. C++ hace
de salida OU T 2, OU T 3 y OU T 4 cumplen con el
posible que cualquier tipo sea convertido desde y
mismo propósito que el puerto OU T 1, excepto que
hacia void * dejando ası́ que los eventos tomen
los arcos representan una conexión doble, triple y
valores de cualquier tipo.
cuádruple respectivamente. Finalmente, F IRED
es un puerto de salida que se utiliza para indicar a Esta caracterı́stica también será explotada para
los lugares anteriores que deben remover marcas. evitar conexiones inexistentes transmitiendo pun-
teros a los distintos modelos como parte del valor
Este último puerto (y sus conexiones hacia los
del evento.
lugares anteriores) no existen en la representación
gráfica original de la red, sino que son un requisito
de esta implementación. En consecuencia, los
modelos de Redes de Petri representados en 3. TRABAJO DESARROLLADO
CD++ no lucen como la red original y obligan
al usuario a agregar muchos puertos y conexiones En esta sección se describe la metodologı́a desa-
adicionales. rrollada y la implementación de Redes de Petri en
el entorno PowerDEVS.

2.5 PowerDEVS 3.1 Dificultades Básicas

PowerDEVS (Bergero and Kofman, 2010) es un La principal dificultad para representar Redes
entorno de simulación multi-plataforma de mode- de Petri en DEVS está asociada a la dinámica
los DEVS de propósito general. Fue desarrollado del disparo de una transición. En ese momento
y es mantenido por el Laboratorio de Sistemas todos los lugares anteriores deben decrementar su
Dinámicos de la Facultad de Ciencias Exactas, número de marcas y (de no haber temporización)
Ingenierı́a y Agrimensura de la Universidad Na- todos los lugares posteriores deben incrementarlo.
cional de Rosario. Esto a su vez, puede modificar el estado activo o
inactivo de otras transiciones.
Una de las caracterı́sticas salientes de Power-
DEVS es que contiene una librerı́a completa de Debido a la modularidad de DEVS (un modelo
implementación de los métodos de QSS (Cellier no puede ver ni modificar directamente el estado
and Kofman, 2006), los cuales realizan una apro- de otro), estos cambios implican la necesidad
ximación DEVS de sistemas continuos. De esta de conexiones desde las transiciones hacia los
manera, PowerDEVS permite simular sistemas lugares anteriores y posteriores. En las Redes
continuos y discretos (es decir, sistemas hı́bridos) de Petri, en cambio, sólo hay arcos desde las
de una manera muy simple y eficiente. transiciones hacia los lugares posteriores. Esta
diferencia provocará que, de no utilizarse algún
Esta herramienta permite acoplar modelos gráfi-
truco para romper la modularidad, el modelo
camente a través de una interfaz sencilla e
DEVS de la Red de Petri contendrá puertos
intuitiva (ver Fig. 5) lo que la hace apropiada
y conexiones inexistentes, tal como ocurre en
para el modelado con formalismos gráficos como
(Jacques and Wainer, 2002).
las Redes de Petri .
Otro problema es que todos los cambios de marcas
El motor de simulación de PowerDEVS, imple-
y de activación asociados a un disparo deben
mentado completamente en C++, mapea cada
realizarse simultáneamente. Este comportamiento
modelo DEVS atómico a un clase. Al ejecutarse
no es trivial de representar en DEVS, ya que
la simulación, habrá tantas instancias de esta
los modelos DEVS cambian su estado de a uno
clase como modelos atómicos hubiere en el modelo
por vez, es decir no puede haber cambio en dos
DEVS. Esto permite referenciar a través de
modelos al mismo tiempo.
punteros a los modelos atómicos en tiempo de
ejecución. Esta caracterı́stica, como se verá más Finalmente, hay una dificultad adicional asociada
adelante, será crucial para evitar el agregado al no determinismo de las Redes de Petri. Cuando
de las conexiones y puertos inexistentes que dos transiciones están activas, el formalismo no
aparecı́an en (Jacques and Wainer, 2002). especifica cuál es la que debe dispararse. En
AADECA 2010 - Semana del Control Automático - XXII◦ Congreso Argentino de Control Automático
31 de Agosto al 2 de Septiembre de 2010 - Buenos Aires, Argentina.

la presente implementación se optó por asignar T imeF lag indica en que estado está el
prioridades estáticas (asignadas por el usuario) lugar: 0 cuando no hay marcas nuevas, 1
a los modelos DEVS que representan las tran- cuando hay marcas que están cumpliendo el
siciones, modificando la semántica de ejecución, tiempo de espera del lugar y 2 cuando hay
disparando la transición de mayor prioridad, marcas nuevas que han cumplido el tiempo
cuando hay múltiples transiciones activas. de espera. La lista T okenT imes mantiene
el tiempo de espera actual de cada marca
contenida en el lugar.
3.2 Implementación δint : Si el lugar estaba esperando que alguna
marca se active (T imeF lag = 1), al cum-
Siguiendo la idea de (Jacques and Wainer, 2002), plirse el tiempo correspondiente, una marca
la transición y el lugar serán representados por es agregada a tokens, se asigna Sigma = 0
modelos DEVS atómicos, mientras que los arcos para notificar a las transiciones posteriores
serán conexiones DEVS entre los puertos corres- que hay una nueva marca activa y se va
pondientes. En este trabajo se implementarán a un estado en el cual hay marcas activas
tanto lugares como transiciones temporizadas. (T imeF lag = 2). Si el lugar ya tenı́a
marcas activas al momento de cumplirse
Los eventos transmitidos entre las transiciones y
el tiempo de espera (T imeF lag = 2), se
lugares tienen la siguiente estructura:
debe corroborar si quedan marcas en la
typedef struct msg{ lista. En caso afirmativo se toma como
double y[10]; tiempo de avance el tiempo en que la
Simulator *src; próxima marca va a estar activa (Sigma =
int tokens; min(T okenT imes); T imeF lag = 1), en caso
}Message; contrario se transiciona a un estado pasivo
(Sigma = ∞; T imeF lag = 0).
El campo double y[10] está ubicado prime-
δext : Se actualiza la lista de T okenT imes
ro para tener compatibilidad con los demás
teniendo en cuenta el tiempo transcurrido. Se
bloques de PowerDEVS. Cuando un evento
agrega una nueva marca a la lista con tiempo
es emitido por un lugar, y[0] contiene el
de espera igual al del lugar. Luego se asigna
número de marcas del mismo. Cuando es
a Sigma el tiempo en el cual se va a activar
emitido por una transición, tiene valor 0. El
la próxima marca.
resto de los componentes es siempre 0.
Simulator *src es un puntero que hace Cuando una transición cambia la cantidad de
referencia al objeto que emitió el evento. marcas en un lugar, el lugar debe ser notificado.
Este puntero es utilizado por el receptor del Esto se realiza utilizando un mecanismo provisto
evento para acceder y modificar el estado por el motor de simulación de PowerDEVS,
del atómico que envió el mensaje. Esto es el cual permite simular la ocurrencia de una
lo que permite quebrar la modularidad de transición externa aún sin haber recibido un
DEVS para evitar las conexiones adicionales evento. Cuando el lugar recibe un aviso de este
ya mencionadas. tipo (una transición externa simulada), emite un
int tokens indica la cantidad de marcas evento instantáneamente haciendo Sigma = 0
que contiene un lugar y en el caso de una para notificar a las transiciones posteriores su
transición siempre tiene el valor 0. nuevo número de marcas.

3.3 Modelo del lugar 3.4 Modelo de la Transición

El modelo DEVS del lugar tendrá un puerto El modelo DEVS de la transición tendrá un
de entrada por cada transición anterior y un puerto de entrada por cada lugar anterior y un
único puerto de salida que podrá ser conectado a único puerto de salida que podrá ser conectado
múltiples transiciones posteriores. Los valores de a múltiples lugares posteriores. Si la transición
los eventos de entrada y de salida, serán instancias no tiene ningún puerto de entrada (es decir no
de la clase Message. tiene lugares anteriores), se comportará como una
fuente periódica de marcas teniendo como perı́odo
El modelo DEVS del lugar tendrá las siguientes
el tiempo de disparo.
caracterı́sticas:
El modelo DEVS de la transición tiene las
El estado es s = (tokens ∈ N0+ , Sigma ∈
siguientes caracterı́sticas:
R+ , T imeF lag ∈ {0, 1, 2}, T okenT imes ∈
List(R+ )). El entero tokens mantiene la el estado es s = (Sigma ∈ R+ , enabled ∈
cantidad de marcas “activas” que contiene el bool, portsinit ∈ bool, dataBase ∈ N →
lugar. Sigma mantiene el tiempo de avance. (N × N )) donde Sigma representa el tiempo
AADECA 2010 - Semana del Control Automático - XXII◦ Congreso Argentino de Control Automático
31 de Agosto al 2 de Septiembre de 2010 - Buenos Aires, Argentina.

de avance y enabled indica cuando la tran-


sición está activada. La variable portsinit
indica si todos los lugares anteriores ya han
notificado cuantas marcas tienen y quienes
son estos lugares (a través del puntero). El
arreglo dataBase indica cuantas marcas tiene
cada lugar anterior y que peso tiene el arco
que lo conecta.
δint : Si la transición está activa (enabled =
true), se vuelve a verificar si todos los lugares Figura 4. Libreria de Redes de Petri de Power-
anteriores contienen las marcas suficientes DEVS
para el disparo. Esto debe realizarse ya que tokens es un valor entero define la cantidad de
otra transición pudo haber realizado un dis- marcas iniciales del lugar.
paro en ese instante quitando alguna marca time es un valor flotante que especifica el tiempo
necesaria. Si todos los lugares anteriores de espera del lugar.
contienen la cantidad de marcas necesarias, inputs permite cambiar la cantidad de puertos
la transición se dispara quitando las marcas de entrada (igual al número de transiciones
correspondientes de los lugares anteriores. anteriores).
Esto se realiza de manera no modular,
El bloque que representa la transición tiene los
accediendo directamente al estado de los
siguientes parámetros:
lugares a través de los punteros recibidos
en los eventos. Luego, se hace Sigma = 0 time es un valor flotante que especifica el tiempo
produciendo un evento que notifica a los de disparo de la transición.
lugares posteriores que deben agregar una inputs permite cambiar la cantidad de puertos
marca y además se notifica a los lugares de entrada (igual al número de lugares anterio-
anteriores que se les han quitados marcas (a res).
través de una transición externa simulada.
Finalmente, la transición especial disparada por
Si en los lugares anteriores no habı́a
eventos no tiene ningún parámetro ya que se
suficientes marcas para que la transición se
dispara instantáneamente frente a la recepción de
dispare, esta vuelve a desactivarse y tran-
cualquier evento de entrada.
siciona hacia un estado pasivo (enabled =
f alse; Sigma = ∞). Al haberse mantenido la convención utilizada
δext Cuando la transición recibe un mensaje por los bloques de la librerı́a de PowerDEVS en
de un lugar, debe ver si todos los lugares los valores de los eventos emitidos, la salida de
anteriores tienen la cantidad de marcas los lugares y transiciones pueden conectarse a
necesarias para activarse. Si es ası́, y la cualquier otro bloque. Esto permitirá el modelado
transición no estaba activa, la transición hı́brido utilizando Redes de Petri, aproximaciones
se activa y espera su tiempo de disparo de sistemas continuos, y bloques DEVS conven-
(enabled = true; Sigma = time). Si la cionales dentro de un mismo modelo.
transición ya estaba activa, sigue esperando
su tiempo de disparo tomando en cuenta el
tiempo ya transcurrido. 4. EJEMPLOS
Se realizó también un modelo de una transición
En esta sección analizaremos dos ejemplos que
especial que se dispara instantáneamente cuando
ilustran el uso de la librerı́a desarrollada.
recibe un evento por su único puerto de entrada.
Esta transición tiene el fin de hacer de interfaz
entre partes del modelo que estén expresadas en
Redes de Petri y partes que estén expresadas 4.1 Cola-Procesador
utilizando los bloques DEVS convencionales.
El modelo Cola-Procesador representa un sistema
en el cual un procesador recibe un trabajo, lo
ejecuta durante un lapso de tiempo y luego
3.5 Librerı́a de PowerDEVS está libre para recibir otro trabajo. Se introduce
también una cola (o buffer), para recordar (o
Los tres modelos atómicos desarrollados fueron encolar) los trabajos que surgen mientras el
incluidos en una nueva librerı́a de PowerDEVS procesador está ocupado. La Fig. 5 muestra el
(Fig. 4) dando la posibilidad al usuario de modelar modelo de la Red de Petri correspondiente usando
Redes de Petri arrastrando y conectando bloques. la librerı́a de PowerDEVS desarrollada.
El bloque que representa el lugar posee los En el estado inicial, el sistema tiene asignada
siguientes parámetros: una marca en el lugar Processor Free indicando
AADECA 2010 - Semana del Control Automático - XXII◦ Congreso Argentino de Control Automático
31 de Agosto al 2 de Septiembre de 2010 - Buenos Aires, Argentina.

Figura 7. Modelo PowerDEVS del Robot y su


Control
Figura 5. Sistema Cola-Procesador

Figura 8. Subsistema continuo de control de


posición

Figura 6. Evolución del sistema Cola-Procesador


que el procesador está desocupado, y por lo del centro calcula las señales de referencias para
tanto puede procesar un pedido. El resto de los la posición del robot en función de las tareas
lugares (Buffer y Processor ) se encuentran sin correspondientes. Los restantes bloques calculan
marcas. Además, Processor tiene un tiempo de la distancia hasta la referencia para determinar si
espera de dos unidades, representando el tiempo el robot llegó a destino.
de procesamiento. El modelo del robot y su control de posición
Las transiciones, en tanto, son instantáneas (ti- fueron tomados de (Oriolo et al., 2002), siguiendo
me=0), a excepción de la Transition1 que genera el método de linealización por realimentación
los trabajos. Esta tiene un tiempo de disparo de dinámica. La Figura 8 muestra una parte de
1,3. este control modelado en PowerDEVS utilizando
bloques de la librerı́a de sistemas continuos.
En la Fig. 6 se puede ver la evolución de
la cantidad de trabajos en cola (lı́nea sólida Para el control de alto nivel, se consideró que
ascendente) y, graficados como eventos (lı́nea de hay una mesa con objetos de dos clases en la
puntos), los avisos del procesador al terminar cada posición (0,0) y el robot debe tomarlos de a uno
trabajo y tomar otro. y llevarlos a dos mesas (según el tipo de objeto)
en las posiciones (1,1) y (1,-1). Tras llevar un
En este ejemplo puede verse el uso conjunto de objeto, debe volver al origen a buscar uno nuevo,
Redes de Petri y diagramas de bloques continuos preferentemente alternando el tipo de objeto. La
e hı́brido, aprovechando las ventajas que los for- Figura 9 muestra el modelo en Redes de Petri del
malismos ofrecen para modelar cada subsistema. control de alto nivel.
El modelo completo se simuló considerando que
inicialmente hay cuatro paquetes de un tipo y dos
4.2 Control Supervisor de un Robot
del otro en la mesa y que el robot está en el origen.
La Figura 10 muestra la evolución de la posición
La Figura 7 muestra un modelo PowerDEVS
del robot en el tiempo.
que consta de tres subsistemas. El de la derecha
representa la dinámica continua de un robot móvil En este ejemplo puede verse el uso combinado
con ruedas y su sistema de control de posición. El de las Redes de Petri y de los bloques continuos
subsistema de la izquierda modela un sistema de e hı́bridos explotando las ventajas que ofrece
control de alto nivel que define las tareas que debe cada formalismo para el modelado de los distintos
realizar dicho robot. Finalmente, el subsistema sistemas.
AADECA 2010 - Semana del Control Automático - XXII◦ Congreso Argentino de Control Automático
31 de Agosto al 2 de Septiembre de 2010 - Buenos Aires, Argentina.

sólo pueden graficarse resultados como los de la


Fig.6.
La nueva librerı́a (con varios ejemplos de apli-
cación) está incluida en la distribución de Po-
werDEVS. Su uso y distribución es libre (bajo
licencia GPL). Para más información https://
sourceforge.net/projects/powerdevs/.

REFERENCIAS
Bergero, F. and E. Kofman (2010). PowerDEVS.
A Tool for Hybrid System Modeling and Real
Time Simulation. Simulation: Transactions
of the Society for Modeling and Simulation
Figura 9. Control de Alto Nivel en PowerDEVS International. in Press.
Bonet, P., C.M. Llado, R. Puijaner and W.J.
Knottenbelt (2007). PIPE v2.5: A Petri Net
1.2 Tool for Performance Modelling. In: Proc. 23rd
1.0 Latin American Conference on Informatics
0.8 (CLEI 2007). San Jose, Costa Rica.
Byg, J., K.Y. Joergensen and J. Srba (2009).
Pos X

0.6

0.4
TAPAAL: Editor, simulator and verifier of
0.2
timed-arc Petri nets. In: Proceedings of the
0.0
7th International Symposium on Automated
−0.2
0 20 40 60 80 100 120 Technology for Verification and Analysis (AT-
VA’09). Macao, China. pp. 84–89.
1.5
Cassandras, C. and S. Lafortune (2008). Introduc-
1.0
tion to Discrete Event Systems. Second Edition.
0.5
Springer. New York.
Pos Y

0.0
Cellier, F. E. and E. Kofman (2006). Continuous
−0.5
System Simulation. Springer. New York.
−1.0 Cohen, G. (2001). Análisis y Control de Sistemas
−1.5
0 20 40 60 80 100 120
de Eventos Discretos: De Redes Temporizadas
Tiempo (s) al Álgebra. Cuadernos del Instituto de Ma-
Figura 10. Resultado de Simulación del Robot temática Beppo Levi. FCEIA - Universidad
Nacional de Rosario.
5. CONCLUSIONES Y TRABAJO A FUTURO Jacques, C. and G. Wainer (2002). Using the
CD++ DEVS Tookit to Develop Petri Nets.
In: Proceedings of the Summer Computer
Se desarrolló una nueva librerı́a para modelado y
Simulation Conference.
simulación de Redes de Petri dentro del simulador
Mosterman, P., M. Otter and H. Elmqvist
PowerDEVS, habiéndose resuelto los principales
(1998). Modeling petri nets as local constraint
problemas de incompatibilidad de los formalis-
equations for hybrid systems using modelica.
mos. De esta forma, se logró una implementación
In: Proceedings of the Summer Computer
que, para el usuario, conserva la apariencia gráfica
Simulation Conference. pp. 314–319.
de las Redes de Petri (esta caracterı́stica no habı́a
Oriolo, G., A. De Luca and M. Vendittelli
sido lograda nunca en simuladores basados en
(2002). WMR Control Via Dynamic Feedback
DEVS).
Linearization: Design, Implementation, and
Otra caracterı́stica saliente de la librerı́a es Experimental Validation. IEEE Transactions
que puede ser utilizada para realizar modelos on Control Systems Technology 10(6), 835–852.
que combinen las Redes de Petri con otros Wainer, G. (2002). CD++: a toolkit to develop
formalismos. DEVS models. Software: Practice and Expe-
rience 32(13), 1261–1306.
Mediante dos ejemplos de aplicación, se verificó el
Zdenk, M. S., M. Svádová and Z. Hanzálek
funcionamiento de la librerı́a y se ilustró su uso
(2001). Matlab toolbox for petri nets. In:
en casos hı́bridos de relativa complejidad.
22nd International Conference ICATPN 2001.
Como trabajo futuro, queda pendiente desarrollar pp. 32–36.
alguna herramienta de visualización especı́fica Zeigler, B., T. G. Kim and H. Praehofer (2000).
para mostrar la evolución de las Redes de Petri Theory of Modeling and Simulation. Second
modeladas en PowerDEVS, ya que actualmente edition. Academic Press. New York.

View publication stats

También podría gustarte