scieee AI-readable full text Open interactive document viewer

Simulador para redes de Petri Híbridas

Maestre Torreblanca, José María; Camacho, Eduardo F.

Abstract

El siguiente artículo presenta un programa informático para la simulación de redes de Petri. A pesar de la gran cantidad de simuladores ya existentes, el aquí presentado posee una serie de características únicas que lo convierten en una herramienta de enorme utilidad para el ingeniero. El simulador está orientado a la simulación de sistemas híbridos de manera integrada: todos los componentes de las redes son híbridos, de manera que se rompe con el enfoque tradicional de integrar componentes de naturaleza discreta y continua para el modelado de fen´omenos híbridos. Otra caracter´ıstica de interés es la posibilidad de emplear como coste asociado a las transiciones expresiones en función de magnitudes ya definidas en el sistema, del tiempo o incluso de variables aleatorias, lo que proporciona gran flexibilidad de modelado. Por último, el programa permite su integración de forma sencilla con MATLAB c mediante DDE (Dynamic Data Exchange).

Full text

SIMULADOR PARA REDES DE PETRI H´ IBRIDAS J. M. Maestre pep[email protected] E.F. Camacho [email protected] Resumen El siguiente art´ıculo presenta un programa inform´atico para la simulaci´on de redes de Petri. A pesar de la gran cantidad de simuladores ya existentes, el aqu´ı presentado posee una serie de caracter´ısticas ´unicas que lo convierten en una herramienta de enorme utilidad para el ingeniero. El simulador est´a orientado a la simulaci´on de sistemas h´ıbridos de manera integrada: todos los componentes de las redes son h´ıbridos, de manera que se rompe con el enfoque tradicional de integrar componentes de naturaleza discreta y continua para el modelado de fen´omenos h´ıbridos. Otra caracter´ıstica de inter´es es la posibilidad de emplear como coste asociado a las transiciones expresiones en funci´on de magnitudes ya definidas en el sistema, del tiempo o incluso de variables aleatorias, lo que proporciona gran flexibilidad de modelado. Por ´ultimo, el programa permite su integraci´on de forma sencilla con MATLAB c mediante DDE (Dynamic Data Exchange). Palabras clave: Simulador Redes de Petri, Sistemas H´ıbridos, Sistemas Estoc´asticos, Matlab. 1 INTRODUCCI ´ ON La problem´atica que envuelve el estudio de los sistemas h´ıbridos precisa herramientas de modelado y simulaci´on que simplifiquen las labores de dise˜no y testeo de sus sistemas de control. Por desgracia, la mayor´ıa de las aplicaciones existentes, como el toolbox de redes de Petri de Matlab, est´an poco orientados a tareas de control propiamente dichas. En los ´ultimos a˜nos se han definido un gran n´umero de formalismos para representar sistemas h´ıbridos. Algunos de ellos han sido definidos ad hoc para recoger el fen´omeno h´ıbrido, mientras que otros han aprovechado la mayor penetraci´on dentro de los c´ırculos cient´ıficos de ciertos paradigmas de modelado a los que han a˜nadido diversas extensiones con el mismo objetivo. El lenguaje de modelado que se emplea como punto de partida en esta tarea es el de las redes de Petri. En concreto, el programa que presentamos en este art´ıculo sigue la variante de las redes de Petri presentada por R. Drath en [3], en la que se aplican algunos conceptos de orientaci´on a objetos al paradigma h´ıbrido de las redes de Petri, es decir, se asocia a cada elemento de la red una cierta estructura con campos de informaci´on que la caracterizan. Se asume que el lector dispone de conocimientos b´asicos sobre redes de Petri. En caso contrario se recomienda acudir a alguna de las fuentes bibliogr´aficas b´asicas empleadas en la redacci´on de este documento como el excelente libro de David y Alla [4]. En primer lugar se repasar´an los conceptos de mayor importancia relacionados con este tipo de redes. A continuaci´on se definir´an las ampliaciones que realizaremos al modelo b´asico para la obtenci´on de un nuevo paradigma para la representaci´on de sistemas h´ıbridos basado en redes de Petri. Por ´ultimo se estudiar´an aplicaciones al control. 2 REDES DE PETRI 2.1 REDES DE PETRI CL´ ASICAS Una Red de Petri es una estructura R= hP, T, P re, P ost, midonde: P={P1, P2, . . . , Pi}es un conjunto finito y no vac´ıo de lugares. T={T1, T2, . . . , Tj}es un conjunto finito y no vac´ıo de transiciones. P∩T=∅, es decir, los conjuntos P y T son disjuntos. Pre: P×T→R es la aplicaci´on de entrada o, dicho de otra forma, Pre(Pi,Tj) es el ”peso” del arco que va desde el lugar Pia la transci´on Tj. Post: P×T→R es la aplicaci´on de salida. Post(Pi, Tj) es el ”peso” del arco que va desde Tjal lugar Pi. m: P→Ries el marcado inicial. 2.2 REDES DE PETRI H´ IBRIDAS La necesidad de modelar los fen´omenos h´ıbridos conduce, como dec´ıamos, a la b´usqueda de extensiones a este paradigma de modelado. Las re- des de Petri h´ıbridas pueden recoger el fen´omeno h´ıbrido con ciertas modificaciones al modelo original, aunque a costa de sacrificar la simplicidad y el car´acter intuitivo caracter´ıstico de este tipo de redes. La primera definici´on de inter´es de redes de Petri h´ıbridas fue dada por David y Alla en 1987. Estas redes de Petri h´ıbridas se basan en la combinaci´on de redes continuas y discretas, donde s´olo los lugares y las transiciones tienen caracter´ısticas especiales. Las redes de Petri continuas [4] nos resultan ´utiles porque ofrecen trabajar en el espacio continuo de estados. El espacio de estado se convierte en infinito de este modo y abre la posibilidad de modelar din´amicas continuas. Lo que estas ampliaciones buscan combinar espacios de estado continuos y discretos para modelar sistemas h´ıbridos. La simpleza estructural de las marcas en estas redes impone limitaciones que hacen excesivamente dif´ıcil el modelado de sistemas complejos. Por esto se definieron las redes de Petri de alto nivel [5] donde las marcas son diferentes entre s´ı y pueden contener datos estructurados. 2.3 HDN (HYBRID DYNAMICAL NETS) y HON (HYBRID OBJECT NETS) El modelo de red de Petri h´ıbrida propuesto por David y Alla que no se queda corto dada su imposibilidad de modelar el comportamiento din´amico de sistemas continuos. Dado que las redes de Petri continuas permiten modelar valores reales, s´olo pueden ser utilizadas para modelar variables de estado continuas. Por lo tanto, se sugieren las siguientes ampliaciones: •En las redes din´amicas h´ıbridas (HDN, Hybrid Dinamical Net en adelante), la velocidad de disparo de las transiciones continuas puede darse como una funci´on de cantidades de fichas, lo que permitir´a representar din´amicas continuas. Los valores de esta funci´on pueden ser tanto positivos como negativos. •En HDN la cantidad de fichas puede tomar valores negativos y positivos, lo que permite modelar variables del sistema tanto positivas como negativas. Las HPN s´olo permit´ıan valores positivos. 2.4 MODELO DE RED DE PETRI H´ IBRIDA PROPUESTO PARA EL SIMULADOR Ante todo, se ha buscado la simplicidad en el momento de definir los componentes con los que se construir´an los modelos. Se ha procurado minimizar el n´umero de comnponentes necesarios hasta reducirlos a un total de 5: •Lugar: se ha definido un ´unico tipo de lugar que tiene asociada una cantidad real que act´ua como n´umero de marcas contenidas en el mismo. Cada lugar tiene asociado adem´as un nombre que sirve para referenciar el n´umero de marcas contenidas en su interior. Se representa como un c´ırculo con el n´umero de marcas escrito en su interior. •Transici´on discreta: este tipo de transici´on se dispara si se cumple las condiciones impuestas por los arcos de entrada durante un determinado tiempo al que denominaremos Retraso. Cada transici´on discreta tiene dos propiedades asociadas que se pueden editar. La primera es el nombre, que sirve a efectos de identificaci´on. La segunda es la funci´on de retraso, cuyo valor instant´aneo proporciona el valor . Se representa con un rect´angulo de color negro. •Transici´on continua: este tipo de transici´on se encuentra activa siempre que se cumplan las condiciones de flujo impuestas por los arcos de entrada. Tiene asociadas dos propiedades que se pueden editar. La primera es el nombre, que sirve a efectos de identificaci´on. La segunda es la funci´on de flujo, cuyo valor instant´aneo proporciona el valor de flujo. Se representa con un rect´angulo de color blanco. •Arco: su funci´on es la de imponer las condiciones de entrada a las transiciones o el resultado de salida de las mismas a trav´es del valor de la propiedadPeso. Para ello cuenta con dos propiedades editables. La primera es el nombre, cuya misi´on es la de identificaci´on, y la segunda es la funci´on peso, cuyo valor instant´aneo define la variable . Se representa como una flecha de color negro. •Arco inhibidor: se diferencia del anterior en que establece un tope a trav´es de la propiedad Peso que no debe superarse para que se pueda validar la transici´on hacia la que se dirige. Por tanto, s´olo tiene sentido como arco de entrada. Nuevamente, se pueden editar las propiedades Nombre y Funci´on Peso. Se representa como una linea con un peque˜no c´ırculo blanco superpuesto. Para acceder a la edici´on de las propiedades de los diversos componentes basta con hacer doble clic sobre ellos. El programa dispone de una opci´on de guardado y recuperado de archivos xml con estructuras de red de Petri creadas por el programa. 2.4.1 Funciones admisibles Una de las caracter´ısticas especiales del programa que aqu´ı presentamos es la de incluir funciones en los pesos de los arcos, el flujo y el retraso de las transiciones. Las expresiones que las caracterizan pueden emplear las siguientes funciones: •SQR(X): elevar al cuadrado X. •SIN(X): seno de X. •COS(X): coseno de X. •ATAN(X): arcotangente de X. •SINH(X): seno hiperb´olico de X. •COSH(X: coseno hiperb´olico de X. •EXP(X): exponencial de X. •LN(X): logaritmo neperiano de X. •LOG(X): logaritmo en base 10 de X. •LOGN(X,Y): calcula el logaritmo de Y en base X. •SQRT(X): ra´ız cuadrada de X. •ABS(X): valor absoluto de X. •TRUNC(X): elimina la parte decimal de X. •CEIL(X): redondea hacia el siguiente entero mayor X. •FLOOR(X): redondea hacia el siguiente entero menor X. •RND(X): genara un n´umero aleatorio entre 0 y X. •INTPOW(X,Y): calcula XY, donde Y debe ser un n´umero entero. •MAX(X,Y): devuelve el n´umero mayor de los dos. •MIN(X,Y): devuelve el n´umero menor de los dos. •IF(BOOL,X,Y): si BOOL es diferente de 0, devuelve Y. En caso contrario devuelve X. En las anteriores expresiones X o Y pueden ser expresiones. El ´unico requisito es que el resultado procedente de evaluarlas sea un n´umero real. Por si todo este elenco de funciones a nuestra disposici´on no fuera suficiente, veremos en la pr´oxima secci´on como usar Matlab para implementar funciones propias. 2.4.2 Comunicaci´on con Matlab Es evidente que el programa matem´atico de mayor difusi´on en el ´ambito de la ingenier´ıa es Matlab. El repertorio de herramientas de este programa es tan extenso que resulta muy interesante establecer alg´un tipo de compatibilidad con el mismo. Habida cuenta de que el prop´osito fundamental del programa es el de servir para labores de simulaci´on y control, es requisito que la comunicaci´on pueda establecerse en tiempo real entre ambos programas. Para llevar a cabo esta tarea de comunicaci´on existen dos alternativas b´asicas: COM (Component Object Model) o DDE (Dynamic Data Exchange). De estas dos, se ha elegido la ´ultima opci´on como medio de comunicaci´on, ya que es la que m´as facilita la comunicaci´on bidireccional entre MATLAB y el simulador. Dynamic Data Exchange es una tecnolog´ıa de comunicaci´on entre varias aplicaciones que puede funcionar en Windows y OS/2. B´asicamente, lo que DDE permite es establecer sesiones entre dos aplicaciones y enviar comandos o recibir respuestas en una arquitectura cliente servidor. Se trata de un sistema de comunicaci´on un tanto superado ya por OLE y COM automation. De hecho, Mathworks no realiza nuevos desarrollos para DDE con Matlab desde la versi´on 5.1. No obstante, es muy sencillo de implementar y la funcionalidad que ofrece es m´as que suficiente para nuestras necesidades. En la pr´actica, la forma en la que ambos programas se integran requiere ejecutarlos en paralelo. Desde un archivo .m de Matlab se pueden ejecutar las siguientes acciones: ID = ddeinit(’Simulador’, ’DDETema’): con esta instrucci´on se establece la comunicaci´on con entre Matlab y el simulador. Es recomendable que ´este tenga cargado ya la PN que se simular´a. ddeexec(ID,’ORDEN’): donde ORDEN es una de las siguientes instrucciones: •SET NOMBREVARIABLE VALOR: establece VALOR como valor de NOMBREVARIABLE. •GET NOMBREVARIABLE VALOR: lee el valor de NOMBREVARIABLE. •START: inicia la simulaci´on del simulador. •STOP: detiene el simulador. Con este sencillo juego de instrucciones es suficiente para realizar multitud de aplicaciones de control desde Matlab. La ´unica restricci´on viene impuesta por el car´acter as´ıncrono del sistema de comunicaci´on empleado, que exige no saturar al servidor DDE con excesivas peticiones. Por tanto, se recomienda esperar un peque˜no tiempo entre instrucciones, que ir´a en funci´on del equipo empleado. A modo indicativo, podr´ıamos exigir 5 cent´esimas de segundo como periodo m´ınimo entre instrucciones. 3 EJEMPLO DE APLICACI ´ ON Con el fin de demostrar las bondades del simulador realizado, se ha realizado una peque˜na demostraci´on. El ejemplo en s´ı no es excesivamente sofisticado, pero en ´el se dan cita la mayor´ıa de las caracter´ısticas que lo hacen diferente. El sistema modelado es un cruce regulado por sem´aforos. Por simplicidad se ha supuesto que los coches circulan en un ´unico sentido en cada uno de las dos v´ıas del cruce. Figura 1: Cruce modelado como red de Petri. En la figura correspondiente puede observarse que hay dos fuentes que modelan la llegada aleatoria de los veh´ıculos. En concreto se han escogido dos variables aleatorias de tipo rectangular para modelar el n´umero de veh´ıculos que llegan por segundo. Estos veh´ıculos entran en sendos lugares que modelan la cola que se forma ante el sem´aforo. En el centro de la red hay un lugar que modela el sem´aforo. Una marca en su interior abre el sem´aforo para la v´ıa de la izquierda, mientras que la ausencia de ´esta lo abre para la de la derecha. Las transiciones responsables del paso por el cruce tienen funciones de retraso asociadas variables en el tiempo, de forma que se tiene en cuenta que la n´umero de veh´ıculos que atraviesa el cruce depende de forma no lineal del tiempo que el sem´aforo permanece abierto. La dependencia temporal escogida es una exponencial negativa. Finalmente, hay dos lugares que representan la salida de los coches una vez franqueado el cruce. Figura 2: Resultados demo en Matlab. Figura 3: Resultados demo programa. En la demo se ejecutan dos versiones del sistema presentado, una que se corresponde con el sistema real y otra, con una din´amica 100 veces m´as r´apida, que hace lo propio con el sistema simulado. Decimos versiones porque ambas tienen par´ametros de modelado ligeramente diferentes. La idea es emplear los datos de la versi´on simulada para realizar un control de la real lo m´as eficiente posible. El control lo realiza el Matlab, que cada 5 segundos estudia la evoluci´on del sistema simulado a partir de los datos proporcionados por el sistema real y calcula de acuerdo con una funci´on de coste la conveniencia o no de tener el sem´aforo abierto. En cierto modo, estamos aplicando un control predictivo, aunque no tanto por la notaci´on como por el esp´ıritu. Los resultados de ejecutar la demo se muestran mediante dos figuras, una realizada con Matlab y otra extra´ıda desde el programa realizado, que cuenta con una opci´on de representaci´on gr´afica de todas las variables que se est´an manejando. En estas gr´aficas se representan la cantidad de coches en cola para atravesar el cruce. Matlab decide qu´e carril permanece abierto a la circulaci´on bas´andose en las predicciones realizadas en el simulador de redes de Petri. Respecto a la gr´afica generada por el propio simulador, cabe destacar que, aunque la subaplicaci´on de representaci´on gr´afica no es excesivamente potente, permite al programa proporcionar una soluci´on autocontenida para el trabajo con redes Petri h´ıbridas. Referencias [1] Jan Lunze. (2002) What is a Hybrid System?. Modelling, Analysis and Design of Hybrid Systems. Springer Verlag. [2] John Lygeros.() Lecture Notes on Hybrid Systems. [3] R Drath.2005 Description of Hybrid Systems by Modified Petri Nets. Modelling, Analysis and Design of Hybrid Systems. [4] R. David and H. Alla. (2005) Discrete, Continuous and Hybrid Petri Nets. Springer Verlag. [5] Jensen y Rosenberg. (1991) High Level Petri Nets: Theory and Application. SpringerVerlag, New York. [6] R. David and H. Alla.(2005) Petri Nets for Modeling of Dynamic SystemsA Survey.Automatica Vol. 30. No 2. pp. 175-202. [7] Ralf Wieting.(1996) Hybrid High-Level Nets. Proceedings of the 1996 Winter Simulation Conference. [8] I. Demongodin and N.T. Koussoulas. (1998) Modelling of Hybrid Control Systems using Petri Nets. Proc. 3rd Int. Conf. ADPM’98.