DE EVENTOS DISCRETOS
Mayo, 2004
Contenidos
i
Contenidos
ii
Contenidos
iii
Contenidos
iv
TEMA 1
Los Sistemas Discretos son sistemas dinámicos que, a diferencia de los sistemas
continuos, cambian de estado en instantes periódicos de tiempo, marcados por un reloj.
Por ejemplo, los sistemas secuenciales y los sistemas digitales son casos particulares de
sistemas discretos. Pero en esta asignatura nos interesaremos principalmente por el
modelado de Sistemas de Eventos Discretos, aquellos en los que los cambios de estado
se producen como consecuencia de eventos aleatorios.
Con esta definición tan amplia, cualquier fuente potencial de datos puede, en efecto,
considerarse un sistema. Algunos ejemplos de sistema son:
• El sistema planetario formado por los planetas ligados por las fuerzas
gravitatorias que se ejercen entre ellos y el Sol.
1
Introducción al modelado de sistemas discretos
2
Introducción al modelado de sistemas discretos
Los seres humanos, en nuestra vida cotidiana, empleamos continuamente modelos para
comprender y predecir el comportamiento de sistemas. Por ejemplo, considerar que
alguien es “amable” constituye un modelo del comportamiento de esa persona. Este
modelo nos ayuda a responder, por ejemplo, a la pregunta: ¿cómo reaccionará si le
pedimos un favor? También disponemos de modelos de los sistemas técnicos que están
basados en la intuición y en la experiencia. Por ejemplo, aprender a conducir un coche
consiste parcialmente en desarrollar un modelo mental de las propiedades de la
conducción del coche. Asimismo, un operario trabajando en determinado proceso
industrial sabe cómo el proceso reacciona ante diferentes acciones, y mediante el
entrenamiento y la experiencia, ha desarrollado un modelo del proceso. Todos estos
modelos, que son una representación informal de un cierto aspecto de la realidad, se
llaman modelos mentales. Son muy valiosos porque permiten recoger la experiencia de
los especialistas en el problema correspondiente y constituyen el punto de partida en
muchos procesos de modelado.
Otro tipo de modelos son los modelos verbales, en los cuales el comportamiento del
sistema se describe mediante palabras: si se aprieta el freno, entonces la velocidad del
coche se reduce. Los sistemas expertos son ejemplos de modelos verbales formalizados.
Es importante diferenciar entre los modelos mentales y los verbales. Por ejemplo,
nosotros usamos un modelo mental de la dinámica de la bicicleta cuando la
conducimos, sin embargo no es sencillo convertirlo a un modelo verbal.
Además de los modelos mentales y verbales, existe otro tipo de modelos que tratan de
imitar al sistema real. Son los modelos físicos, como las maquetas a escala que
construyen los arquitectos, diseñadores de barcos o aeronaves para comprobar las
propiedades estéticas, aerodinámicas, etc.
Finalmente, existe un cuarto tipo de modelos, los modelos matemáticos. En ellos, las
relaciones entre las cantidades que pueden ser observadas del sistema (distancias,
velocidades, flujos, etc.) están descritas mediante relaciones matemáticas. En este
sentido, la mayoría de las leyes de la naturaleza son modelos matemáticos. Por ejemplo,
para el sistema “masa puntual”, la Ley de Newton del movimiento describe la relación
entre la fuerza y la aceleración. Asimismo, para el sistema “resistencia eléctrica”, la Ley
de Ohm describe la relación entre la caída de tensión y el flujo de corriente.
En algunos casos, las relaciones matemáticas que constituyen los modelos son
relativamente sencillas y se pueden resolver analíticamente, obteniendo soluciones
generales bajo una forma simbólica. Cualquier solución particular se puede obtener
reemplazando los valores simbólicos por sus valores numéricos. Sin embargo, en la
mayoría de los casos, los modelos son más complejos y no se pueden resolver
analíticamente. En ellos es imposible llegar a una solución general y lo que se buscan
son soluciones particulares aplicando métodos numéricos, con ayuda del computador.
Este tipo de experimentos numéricos realizados sobre un modelo matemático quedan
claramente dentro del ámbito de la simulación.
3
Introducción al modelado de sistemas discretos
inherente al comportamiento del mismo, sino más bien como una falta de metodología y
de herramientas que permitan especificar y formalizar el conocimiento que se tiene del
sistema con el objetivo de desarrollar un modelo que presente un comportamiento
similar al del sistema real. Algunos sistemas, que en el pasado habían sido considerados
complejos, ya no reciben tal consideración en la actualidad.
Puede decirse que el modelado representa la única actividad central que unifica toda la
conducta científica e ingenieril. Mientras la finalidad del científico es simplemente
observar y comprender el mundo que nos rodea, el ingeniero necesita modificarlo para
lograr determinados beneficios. Básicamente la ciencia es análisis y la ingeniería
diseño. Dentro de este contexto, el modelado se puede utilizar no sólo para el análisis
(el llamado problema directo) sino también para el diseño (llamado problema inverso).
La finalidad de un estudio de simulación (es decir, las preguntas que debe responder)
condiciona las hipótesis empleadas en la construcción del modelo, y éstas a su vez
determinan qué tipo de modelo resulta más adecuado al estudio. De hecho, un mismo
sistema puede ser modelado de múltiples formas, empleando diferentes tipos de
modelos, dependiendo de la finalidad perseguida en cada caso.
Determinista o Estocástico
4
Introducción al modelado de sistemas discretos
Dinámico o Estático
Un modelo de tiempo continuo está caracterizado por el hecho de que el valor de sus
variables de estado puede cambiar infinitas veces (es decir, de manera continua) en un
intervalo finito de tiempo. Por ejemplo, el nivel de agua en un depósito. Los modelos de
este tipo se describen generalmente por conjuntos de ecuaciones algebraicas y
diferenciales.
5
Introducción al modelado de sistemas discretos
Los modelos de tiempo discreto pueden ser también versiones discretizadas de sistemas
continuos. Este es un hecho bastante común. Por ejemplo, si se aproxima (empleando el
método de Euler) la siguiente derivada, que describe un modelo de tiempo continuo
dx
= f(x, u, t)
dt
x k +1 − x k
≅ f(x k , u k , t k ) → x k +1 ≅ x k + ∆t f(x k , u k , t k )
∆t
También se pueden definir modelos con algunas de sus variables de estado de tiempo
continuo y las restantes de tiempo discreto. Este tipo de modelos, con parte de tiempo
continuo y parte de tiempo discreto, se conocen como modelos híbridos.
Si todas las variables de estado del modelo pueden tomar cualquier valor intermedio en
sus respectivos rangos de variación, se dice que el modelo es de variables continuas. En
cambio si las variables de estado están cuantificadas o sólo pueden tomar ciertos
valores, pertenecientes a un conjunto finito de valores, se dice que el modelo es de
estados o eventos discretos. Un caso particular de modelo de estados discretos son las
máquinas secuenciales, también denominadas autómatas finitos. Pero en el modelado de
ciertos sistemas puede ser necesario utilizar variables de ambos tipos, continuas y
discretas, entonces se dice que el modelo es mixto.
6
Introducción al modelado de sistemas discretos
pensamiento científico). Pero por otro lado, la tecnología moderna ha permitido que el
hombre intente analizar, intente modelar o haya creado otros sistemas dinámicos que no
pueden ser descritos fácilmente por medio de ecuaciones diferenciales ordinarias o
parciales. Como ejemplos de tales sistemas podemos mencionar: una comisaría de
policía, un hospital, un taller de mantenimiento, un aeropuerto, un banco, un servidor
informático, una línea de producción o de ensamblado, una red de computadores, una
red de comunicaciones, un sistema de control tráfico aéreo o terrestre, etc.
En estos modelos suelen intervenir ocho tipos de componentes (las entidades, sus
atributos, las variables, los recursos, las colas, los contadores estadísticos, los eventos,
las actividades), que se describen brevemente a continuación. Para mayor claridad
iremos haciendo referencia al siguiente ejemplo (extraído de Urquía 2003): “Oficina de
atención al público, en la que trabaja un único empleado”.
7
Introducción al modelado de sistemas discretos
Entidades
Las entidades son objetos dinámicos en la simulación, que son creados y se mueven por
el sistema, cambiando el valor de sus atributos, afectados por otras entidades y por el
estado del sistema. Las entidades pueden estar durante un intervalo de tiempo en el
sistema (entidades temporales) o bien permanecer indefinidamente circulando en él
(entidades permanentes). En el ejemplo anterior de la oficina, existe un único tipo de
entidad: “cliente”. Cada cliente que se encuentra en la oficina es una realización (o
instanciación, como se prefiera) de este tipo de entidad, que es creada a su llegada,
circula a través del sistema y es destruida cuando el cliente abandona la oficina. Si en el
modelo se hubieran definido diferentes tipos de clientes, que requirieran procesos de
atención diferentes o a los que se asignara diferente prioridad, cada tipo de cliente se
representaría como un tipo diferente de entidad o con la misma entidad pero distinto
atributo.
Atributos
Variables
Las variables representan características del sistema que son independientes de los tipos
de entidades o del número de realizaciones existentes en determinado instante. Por
tanto, las variables no están asociadas a entidades en concreto, sino que pertenecen al
conjunto del sistema. Son accesibles desde todas las entidades y pueden ser modificadas
por todas las entidades. Puede considerarse que cada variable es como una pizarra
colgada en la pared, en la que se escribe el valor de la variable. Todas las entidades
pueden leer la pizarra, y también pueden borrar el valor escrito y escribir uno nuevo.
Algunas de las variables son intrínsecas a los elementos del modelo y, por ello surgen
en casi todos los modelos de simulación. Algunas de estas son: el número de entidades
(en nuestro caso, clientes) que hay en cada instante en cada cola, el número de recursos
(en nuestro caso, empleados) ocupados, el estado (ocupado o libre) de cada recurso, el
valor del reloj de la simulación (variable que va registrando el tiempo simulado), etc.
Por el contrario, otras variables surgen debido a necesidades concretas del modelo en
cuestión y se convierten en parámetros. Por ejemplo, supóngase que cada cliente tiene
que ser atendido consecutivamente por dos empleados diferentes, situados a cierta
distancia, y que el tiempo que emplea la entidad en ir de un empleado a otro se
considera fijo. Entonces, el valor de este tiempo de “tránsito” sería un parámetro del
modelo. Los parámetros permiten adaptar el modelo a sus diferentes aplicaciones. Por
ejemplo, mediante la modificación del tiempo de tránsito entre los dos puntos de
atención, puede adaptarse un mismo modelo para representar diferentes situaciones.
8
Introducción al modelado de sistemas discretos
Asimismo, las variables pueden representar magnitudes cuyo valor cambie durante el
curso de la simulación. Por ejemplo: el número total de clientes que esperan, que están
siendo atendidos y que se encuentran en tránsito entre los dos puntos de atención.
Recursos
Los recursos pueden ser el personal (en nuestro caso, “el empleado”), las máquinas (por
ejemplo, si las entidades son piezas que deben ser procesadas), el espacio (por ejemplo,
en un almacén), etc. Una entidad captura un recurso cuando éste está disponible, a fin de
obtener un servicio de él, y lo libera una vez ha terminado.
Colas
Cuando una entidad no puede circular, debido tal vez a que necesita usar una unidad de
un recurso que en ese momento no se encuentra disponible, entonces la entidad necesita
un sitio donde esperar. Este es el propósito de la cola (colección de entidades asociadas
temporalmente o permanentemente y ordenadas de una manera lógica; por prioridad,
por tiempos de llegada, etc.), que normalmente está asociada a su correspondiente
recurso.
Acumuladores estadísticos
A fin de calcular el valor de las variables de salida, es preciso calcular durante el curso
de la simulación el valor de determinadas variables intermedias. Estas se llaman
acumuladores estadísticos. Algunos ejemplos son: el número total de clientes atendidos
hasta ese momento, la suma de los tiempos de espera en cola de los clientes hasta ese
momento, el número total de clientes que han comenzado a ser atendidos hasta ese
momento, el mayor tiempo de espera en cola hasta ese momento, etc. Los contadores
son inicializados a cero al comenzar la simulación. Cuando “algo sucede” en la
simulación (es decir, se ejecuta un evento), los contadores estadísticos afectados deben
ser convenientemente actualizados.
Eventos
En los modelos de eventos discretos, los atributos, las variables y los acumuladores
estadísticos sólo pueden cambiar a consecuencia de la ejecución de los eventos. Los
9
Introducción al modelado de sistemas discretos
cambios en sus valores se producen en los instantes en que son activados los eventos,
manteniéndose constantes durante el intervalo de tiempo entre eventos sucesivos.
Actividades
Las actividades son las tareas o acciones que tienen lugar en el sistema. Toda actividad
está siempre delimitada por dos eventos, el de comienzo y el de fin de la actividad, por
tanto tiene una duración temporal y, normalmente, precisa del uso de recursos.
Ejemplos de actividades son: la reparación de una máquina, el procesado de una pieza,
el transporte de un cliente, etc.
10
Introducción al modelado de sistemas discretos
Como las variables de estado del sistema son discretas a tiempo continuo, el modelo
matemático tiene que ser un modelo dinámico de eventos discretos. Pero además en la
mayoría de los DEDS intervienen variables de entrada cuyo comportamiento es
aleatorio, luego el modelo tiene que ser de naturaleza estocástica.
Las características de las dos variables de entrada quedarán definidas en las hipótesis de
modelado, por ejemplo podemos suponer que ambos “tiempos” son independientes del
instante de tiempo simulado y responden a una distribución de probabilidad concreta.
Sin embargo también sería fácil, y más realista, suponer que la afluencia de cliente es
mayor en ciertas horas del día “horas punta” que a otras “horas valle”. Del mismo modo
sería factible suponer que, según avanza la jornada laboral, aumenta el cansancio del
empleado, con lo cual aumenta el tiempo servicio. Pero también hubiera sido una
hipótesis aceptable suponer que según avanza la jornada laboral, el empleado es más
impaciente y despacha a los clientes en menor tiempo. Lo normal es realizar la hipótesis
de que ninguno de estos aspectos, u otros similares, son relevantes y que por tanto
ambos “tiempos” responden a una distribución de probabilidad conocida.
En ciertas condiciones es preciso distinguir entre dos tipos de DEDS: los de topología
fija y los de topología dinámica. Las interacciones entre los componentes de una
topología fija se pueden describir por un grafo en el cual los nodos representan los
componentes y los arcos representan los caminos posibles de interacción. Tales sistemas
se suelen representar como redes de colas en las que hay un conjunto fijo de estaciones
y clientes que se mueven de estación a estación. Las rutas posibles de clientes son fijas
(por ejemplo, sistemas de manufactura y redes de comunicación). En sistemas de
11
Introducción al modelado de sistemas discretos
Todos estos formalismos respetan las siguientes propiedades (Guasch y col., 2002):
• El formalismo debe ser independiente de los constructores y herramientas que
ofrecen los entornos de simulación.
• El modelo formalizado debe poder ser analizado para determinar relaciones entre
componentes y evaluar alternativas que permitan la simplificación del modelo.
• El formalismo debe permitir una fácil transformación a las representaciones
soportadas por los entornos de simulación.
• Algunos aspectos del modelo pueden dejarse sin especificar, sin que ello dificulte
la transformación a otras representaciones.
• El modelo debe poder ser definido en términos que no restrinjan su codificación a
un mecanismo particular de actualización del reloj del simulador.
Los formalismos que van a recibir una especial atención en esta asignatura son:
• Las Redes de Petri (Tema 2).
• El GRAFCET (Tema 3).
• El formalismo DEVS (Tema 4).
Las Redes de Petri (a las que usualmente nos referiremos a lo largo del texto como
RdP) permiten describir gráficamente los sistemas de eventos discretos (Silva, 1985)
(Guasch y col., 2002). Aunque las RdP no son el único formalismo que maneja los
eventos y actividades (muy importantes en los DEDS), suele ser de los más utilizados
porque permite representarlos de una forma más natural que otros formalismos y porque
es el único que representa de manera formal los conceptos de paralelismo/concurrencia
y sincronización.
12
Introducción al modelado de sistemas discretos
El formalismo DEVS (Discrete EVents dynamic Systems) fue propuesto por Zeigler en
1976 como una representación formal para los sistemas de eventos discretos (Zeigler y
col., 2000). Permite una descripción modular de los fenómenos a modelar
(aproximación modular) y ataca la complejidad usando una aproximación jerárquica.
Otros métodos formales empleados, pero que no veremos en esta asignatura son por
ejemplo:
• Las redes de colas, que permiten describir las tareas realizadas por el sistema
mediante un conjunto de estaciones de trabajo. Cada estación de trabajo tiene su
propio conjunto de servidores, que atienden las peticiones que llegan a la estación,
y una cola de espera. El flujo de actividades se formaliza mediante la notación de
colas, interconectando las distintas estaciones y otros elementos pasivos
característicos de los sistemas orientados a eventos discretos (Guasch y col.
2002).
Modelado y simulación están muy unidos, sobre todo en sistemas de eventos discretos
debido a la complejidad comentada en el apartado 1.2. En esta asignatura abordaremos
ambos aspectos: desde la formulación del modelo (modelo conceptual) hasta su
programación en un entorno de simulación y la posterior validación.
13
Introducción al modelado de sistemas discretos
para servir a los objetivos específicos del estudio. A grandes rasgos, la metodología de
modelado podría ser la siguiente:
• Escoger las variables de salida, lo cual resulta relativamente sencillo una vez
definido el objetivo de estudio.
• Identificar qué componentes del sistema afectan a las variables de salida y decidir,
para cada uno de ellos, si deber ser incluido en el modelo o si debe ser
considerado parte del entorno del modelo. En este último caso, el componente es
representado mediante entradas al modelo.
• Determinar y representar las relaciones funcionales entre los componentes, es
decir, la lógica del modelo.
Una buena práctica consiste en realizar el modelo de manera iterativa: comenzar con un
modelo muy simple, cuya complejidad puede posteriormente ir aumentándose
fácilmente. Para ello, el modelo debe realizarse de manera modular y jerárquica,
dividiendo el sistema en submodelos y modelando todos ellos con un nivel semejante de
complejidad. Este modelo inicial puede construirse muy rápido y puede servir de punto
de discusión sobre posteriores refinamientos en el modelado (se entiende por
“refinamiento” del modelo el aumento en su nivel de detalle). Añadiendo
progresivamente los refinamientos al modelo, y comparando los resultados obtenidos
con los del modelo más sencillo, puede estimarse el impacto de cada conjunto de
refinamientos sobre la respuesta del modelo. En determinado punto de este proceso de
aumento gradual de la complejidad del modelo, los refinamientos añadidos tienen un
efecto pequeño, es decir, influyen despreciablemente en las conclusiones del estudio,
con lo cual se concluirá que no es preciso incorporarlos.
Con el fin de poder reutilizar parte del código, se desarrollaron bibliotecas de funciones,
que realizaban algunas de las tareas rutinariamente requeridas en una simulación y que
podían ser invocadas desde el programa de simulación. Sin embargo, los modelos
debían ser programados prácticamente desde el principio cada vez que se introducían en
ellos modificaciones importantes. En resumen, la simulación era una técnica muy
costosa y especializada, sólo al alcance de empresas capaces de realizar grandes
inversiones económicas.
14
Introducción al modelado de sistemas discretos
15
Introducción al modelado de sistemas discretos
Sin embargo, cuando los resultados de la simulación nos parecen “extraños” o erróneos,
no siempre está claro si es debido a que nos hemos equivocado al traducir el modelo o a
que las hipótesis de modelado no son las adecuadas.
Verificación
Entre otros, pueden usarse los siguientes procedimientos para verificar el modelo:
• Verificación manual de la lógica. Consiste en ejecutar la simulación durante un
periodo de tiempo corto y comprobar manualmente los resultados obtenidos.
• Comprobación submodelo a submodelo. Se trata de verificar individualmente que
cada submodelo produce los resultados esperados para todos los posibles tipos de
entradas.
• Comprobación con soluciones conocidas. Consiste en ajustar el modelo de modo
que represente un sistema de solución conocida y comparar ésta con los resultados
de la simulación.
• Test de sensibilidad. Puede modificarse el valor de un parámetro, dejando los
demás fijos, con el fin de medir la sensibilidad del modelo respecto a ese
parámetro. La comparación de la sensibilidad observada en las simulaciones, con
la que sería de esperar en el sistema real, puede proporcionar pistas útiles.
Validación
Puede considerarse que la validación del modelo tiene tres vertientes diferentes.
Consiste en determinar:
• Si el modelo representa adecuadamente al sistema real (comprobación de la
estructura del modelo).
• Si los datos generados de la simulación del modelo reproducen de forma adecuada
el comportamiento del sistema real (comprobación del comportamiento del
modelo).
• Si el usuario del modelo tiene confianza en los resultados obtenidos de las
simulaciones (comprobación de la confianza del usuario en el modelo). Involucrar
al usuario final en todas las fases del diseño y la construcción del modelo
generalmente hace que este aspecto de la validación del modelo sea mucho más
sencillo.
Puesto que el modelo se construye para un propósito específico, la validez sólo puede
ser evaluada con relación a este propósito. La validación del modelo es un proceso
continuo durante su diseño, desarrollo y uso. Existen diferentes grados de validación: la
confianza en el modelo va acumulándose según el modelo va superando pruebas y se
van encontrando más puntos de coincidencia entre el comportamiento del modelo y el
del sistema real. La verificación y la validación de un modelo son procesos que
realmente nunca finalizan.
En todo este proceso de validación, no debe perderse de vista que el objetivo del
ingeniero dedicado al modelado es la realización de modelos útiles, en un tiempo
razonable y con un coste razonable. Por este motivo, más que preguntarse en qué
medida se ajusta el comportamiento simulado al comportamiento real del sistema, es
más adecuado preguntarse en qué medida las diferencias entre el modelo y el sistema
son lo suficientemente significativas como para afectar a las conclusiones derivadas del
uso del modelo.
16
Introducción al modelado de sistemas discretos
Un parámetro: tiempo de atención (que puede ser constante o responder a algún tipo
de distribución probabilística)
La llegada de una persona al cine provoca una acción diferente según el estado de la
taquilla. Si (taquilla=0) la taquilla está libre, la persona pasa a ser atendida, con lo
17
Introducción al modelado de sistemas discretos
cual la taquilla pasa a estar ocupada (taquilla=1). Pero si (taquilla=1) la taquilla está
ocupada, la persona pasa a engrosar la cola (n=n+1).
La salida de una persona de la taquilla provoca una acción diferente según el estado
de la cola. Si (n=0) no nay nadie en la cola, la taquilla pasa a estar libre (taquilla=0).
Pero si (n>0) hay alguien en la cola, la primera persona de la cola pasa a la taquilla,
disminuyendo la cola en una unidad (n=n-1).
El evento externo se activa de forma aleatoria, pues la llegada de una persona al cine
es totalmente aleatoria. Mientras que el evento interno (la salida de una persona de la
taquilla) sólo se produce cuando la taquilla ha estado ocupada (taquilla=1) un
intervalo de tiempo igual al tiempo de atención.
Una posible medida del comportamiento del sistema podría venir dada por el “tiempo
medio que necesita una persona para conseguir sus entradas”. Para determinarlo (pero
no es la única forma de hacerlo) habría que incorporar a la única entidad del sistema, la
persona, dos atributos: el instante de tiempo en el que llega al cine y el instante de
tiempo en el que abandona la taquilla. Al primer atributo se le asignaría el valor
instantáneo del reloj, cuando se disparara el evento externo (llegada de la persona al
cine), y al segundo atributo se le asignaría el valor instantáneo del reloj cuando se
disparara el evento interno (la persona abandona la taquilla). Los dos atributos habría
que combinarlos con dos acumuladores estadísticos; uno que vaya contando el número
de personas que han pasado por el cine y otro que vaya acumulando el tiempo que ha
tardado cada persona en conseguir sus entradas (es decir, la diferencia entre el segundo
y el primer atributo). El cociente entre el segundo acumulador y el primer acumulador
nos daría la medida que andábamos buscando.
Este sistema, que es muy simple, se podría complicar algo si se incorporan otra serie de
consideraciones, como por ejemplo que:
C1. El cine expende localidades para varias salas, con horarios uniformemente
distribuidos en el tiempo.
C2. Algunas personas desisten de conseguir una localidad, bien en el momento que
llegan por el tamaño que tiene la cola o después de haber permanecido un
tiempo en la cola, pues piensan que ya no van a conseguir la localidad deseada.
C3. Hay dos taquillas, y las entradas se pueden comprar indistintamente en
cualquiera de ellas.
Mientras que una taquilla aislada, atendiendo a una sola proyección, se vería obligada a
atender a casi todas las personas en los intervalos de tiempo previos a la función. La
existencia de varias salas (consideración C1), haría que la taquilla tuviera una actividad
bastante continua si los horarios de las funciones están bien distribuidos en el tiempo.
18
Introducción al modelado de sistemas discretos
El sistema consta de una máquina a la que van llegando piezas para ser procesadas. Las
piezas aguardan en una cola si la máquina no está libre y salen del sistema una vez que
han sido procesadas. Es un ejemplo muy parecido al anterior, las entidades son las
“piezas”, el recurso es “la máquina” y la actividad “el procesado de piezas”, pero por
tratarse de un sistema productivo se presta a incorporar más medidas de las prestaciones
del sistema. Para representarlo se necesitan:
El comportamiento del sistema podría venir dado por las siguientes medidas:
• El número total de piezas procesadas.
• El número de piezas en la cola.
• El tiempo medio de espera de las piezas en la cola.
• Tiempo medio de procesado.
• Porcentaje de ocupación de la máquina.
19
Introducción al modelado de sistemas discretos
Pero también es importante definir en qué condiciones se quiere evaluar al sistema, que
quedan especificadas por los siguientes datos de la simulación:
• Estados de la máquina (libre) y de la cola (vacía) al inicio de la simulación.
• Instantes de llegadas de todas y cada una de las piezas.
• Tiempo de procesado para todas y cada una de las piezas.
• Duración del experimento.
Supongamos un semáforo de peatones con dos luces (roja y verde) para controlar el
paso de peatones por una calle bastante transitada por vehículos (Deschamps y Ángulo,
1989). La situación normal del semáforo es con la luz verde encendida, para dejar paso
a los vehículos. Cuando un peatón desea cruzar la calle, aprieta un pulsador y durante
un periodo de tiempo, el semáforo se pone en rojo para los vehículos; luego vuelve a la
situación normal. En este sistema, como en los dos ejemplos anteriores, hay un único
recurso “el semáforo” pero compartido simultáneamente por todos los peatones (el
único tipo de entidad del sistema) que se disponen a cruzar, sin necesidad de guardar
cola. El semáforo realiza su función “la regulación del tráfico” combinando dos
actividades complementarias “el paso de vehículos” y “el paso de peatones”. El sistema
se puede modelar con:
Tres variables lógicas de estado, aunque se podrían utilizar sólo dos (una para el
semáforo y otra para el pulsador):
V : para indicar que el semáforo está en “verde” (V=1) o no lo está (V=0).
R : para indicar que el semáforo está en “rojo” (R=1) o no lo está (R=0).
P : para indicar el estado del pulsador, P = 0 indica que no hay petición de
ningún peatón y P = 1 para indicar que se ha recibido una petición
El evento externo (la pulsación de un peatón) provoca una acción diferente según el
estado del pulsador. Si (P=0) porque en ese momento no hay ninguna petición
pendiente, la petición es atendida (P=1). Pero si ya había una petición (P=1), P
permanece en el valor 1, ya que, a diferencia de los dos ejemplos anteriores en los
que había cola de espera, no es necesario acumular la nueva petición.
El primero de los eventos internos (cambio a rojo) provoca una activación del estado
“rojo” (R=1) y una desactivación del estado “verde” (V=0). Pero también debe
provocar la desactivación (P=0) de la petición del peatón para indicar que ésta ya ha
sido atendida.
20
Introducción al modelado de sistemas discretos
El segundo de los eventos internos (cambio a verde) provoca una activación del
estado “verde” (V=1) y una desactivación del estado “rojo” (R=0). Pero también
debe provocar la desactivación (P=0) de la petición del peatón, por si hubiera habido
alguna mientras que el semáforo estuvo en rojo.
Este semáforo es poco realista, pues por simplicidad se ha supuesto que sólo tiene dos
luces cuando lo normal es un semáforo tenga tres (verde, ámbar y rojo) para los coches
y dos (rojo y verde) para los peatones. Pero además desde el punto de vista funcional, el
sistema presenta un problema: los coches no tienen asegurado un tiempo de paso
mínimo. Esto ocurre porque la petición del peatón se atiende inmediatamente, luego se
puede dar el caso de que la llegada escalonada (pero frecuente) de peatones provoque
que el semáforo esté con mucho frecuencia en “rojo” para los coches, no haciendo bien
la función de regulación de tráfico para la que estaba pensado.
Supongamos un carro C, tal como se describe en el apartado 1.3.3 del libro de M. Silva
(1985), capaz de moverse por un tramo de raíl desde un extremo A al extremo B y
viceversa gracias a la acción de dos motores, véase figura 1.1. Un motor hace que el
carro se mueva hacia la derecha y el otro motor hace que se mueva hacia la izquierda. El
carro está inicialmente en el extremo A y se pone en marcha, hacía la derecha, si se
pulsa el botón M; en caso contrario el carro permanecerá parado. Al llegar al extremo B,
el carro cambía de sentido y empieza a moverse hacia la izquierda. Cuando el carro
vuelve al extremo A, se para si el botón M no está pulsado; en caso contrario comienza
un nuevo ciclo. La presencia del carro en cualquiera de los extremos se detecta gracias a
dos contactos eléctricos.
i d
M
C
A B
El comportamiento del sistema se puede describir con el estado (M) del botón y los tres
estados del carro {R, D, I}. Donde:
• M = 0 representa que el botón no está pulsado (impidiendo el movimiento hacia
la derecha del carro) y M = 1 que sí lo está (permitiendo el movimiento hacia la
derecha del carro).
21
Introducción al modelado de sistemas discretos
El carro deja de moverse hacia la derecha para hacerlo hacia la izquierda (cambio de
D a I) cuando alcanza el extremo B con independencia del estado del botón.
Tal como se ha planteado el ejemplo, se trata de un sistema con única identidad “el
carro” que tiene sus estados de reposo y de movimiento hacia la derecha a hacia la
izquierda condicionados por un botón. Pero la entidad siempre está presente, nunca
abandona el sistema, pues realmente es el componente que da significado a éste. No se
puede hablar de recursos en este sistema, pero el carro se podría considerar como el
único recurso si sus movimientos entre los extremos A y B se aprovecharan para
transportar algún tipo de material.
22
Introducción al modelado de sistemas discretos
se utiliza como apoyo gráfico a la descripción de modelos atómicos DEVS, que se verán
en el tema 4.
La figura 1.2 recoge los organigramas para las acciones asociadas a los dos eventos de
la “taquilla del cine”. En cambio, la figura 1.3 recoge un organigrama del sistema total
“taquilla del cine” bajo la metodología de “Modelado orientado a los procesos”, es
decir, describe el flujo de las entidades (“las personas”, en este caso). En el organigrama
de la figura 1.3 se observa claramente que:
• La llegada de una persona al cine puede provocar que ésta pase a ser atendida
inmediatamente porque la taquilla está libre o que pase a la cola para ser atendida
más tarde.
• Mientras haya personas en la cola, se irán atendiendo por orden de llegada y la
taquilla permanecerá ocupada.
• Cuando la cola se vacía, la taquilla queda libre y así estará hasta que llegue otra
persona al cine.
NO SÍ NO SÍ
Taquilla libre Cola vacía
Figura 1.2 Flujos de acciones asociadas a los eventos de la “taquilla del cine”.
23
Introducción al modelado de sistemas discretos
NO SÍ
Taquilla libre
La persona pasa
La persona se
a la taquilla
pone a la cola
La persona
permanece un tiempo
en taquilla
La persona abandona
la taquilla
SÍ NO
Cola vacía
Inicialización de variables:
cpp = 0
cpc = 0
actp = 0
actc = 0
reloj = 0
24
Introducción al modelado de sistemas discretos
25
Introducción al modelado de sistemas discretos
El sistema “semáforo de peatones con dos luces” se puede modelar como un autómata
finito con:
• Una entrada lógica, la correspondiente al pulsador. Que podemos llamar x, con
dos posibles valores, x = 0 para indicar que no hay petición de ningún peatón y x
= 1 para indicar que se ha recibido una petición.
• Dos salidas lógicas, que podemos llamar y0 e y1, para representar en “0” y “1”
respectivamente el estado “apagada” o “encendida” de las dos luces (verde y
roja) que tiene el semáforo.
• Dos estados internos; uno representado por la letra V para indicar que el
semáforo está en “verde” y otro, representado por la letra R, para indicar que el
semáforo está en “rojo”. El estado V es estable, el semáforo permanecerá en él
indefinidamente mientras no haya petición de un peatón, mientras que el estado
R es transitorio, el semáforo permanecerá en él el tiempo estimado para que los
peatones crucen la calle.
26
Introducción al modelado de sistemas discretos
x
V
10
señal de entrada
C
x V y0
señales de x
salida
R y1
R
01
27
Introducción al modelado de sistemas discretos
• El carro deja de moverse hacia la derecha para hacerlo hacia la izquierda (cambio
de D a I), con salidas d=0 e i=1, cuando se alcanza el extremo B (A = 0, B = 1)
con independencia del estado del botón.
• El carro cambia de sentido (cambio de I a D) cuando alcanza el extremo A si el
botón está pulsado (M = 1, A = 1, B = 0), en caso contrario, para la combinación
(M = 0, A = 1, B = 0), se para (cambio de I a R), con salidas d=0 e i=0.
A diferencia del diagrama de estados del semáforo, donde sólo había una entrada con
dos posibles valores, en el diagrama de estados del carro hay determinadas
combinaciones de entrada que no se pueden presentar (por ejemplo; A y B no pueden
tomar simultáneamente el valor lógico 1 pues el carro no puede estar en los dos
extremos al mismo tiempo).
M A B
R
00
M A B
D
M A B 10
A B
A
M A B
I
01
El diagrama de estados, así concebido, refleja todos los posibles estados globales del
sistema y todas las posibles evoluciones del sistema. Por tanto se trata de una
descripción exhaustiva del sistema. Su utilización es poco aconsejable en sistemas
complejos porque cuando aumenta el número de variables de entrada, aumentan
considerablemente el número de combinaciones de entrada y las transiciones a
considerar, pero además (el ejemplo del carro es bastante representativo) porque en
estos sistemas es habitual que un gran número de combinaciones de entrada no tengan
sentido físico en determinados estados.
Por ejemplo, en el caso del carro que va y viene, con tres estados {R, D, I} posibles, la
única condición lógica que lo puede sacar del estado R es que se pulse el botón, pero
28
Introducción al modelado de sistemas discretos
además como sólo puede estar parado en el extremo izquierdo A, cuando abandona el
estado R lo hace moviéndose hacia la derecha, es decir, pasando al estado D. La única
condición lógica que puede sacar al carro del estado D es que haya alcanzado el
extremo derecho B, y lo hace cambiando el sentido de su marcha, es decir, pasando al
estado I. Por último la única condición lógica que puede sacar al carro del estado I es
que haya alcanzado el extremo A, y lo hace cambiando el sentido de su marcha (paso al
estado D) si el pulsador está pulsado o parándose (paso al estado R) si el pulsador no
está pulsado.
En la figura 1.6 (a) puede verse el grafo reducido resultante, respecto al diagrama de
estados sólo han desaparecido las tres transiciones que hacían al carro permanecer en
uno de sus tres estados y las salidas asociadas a los estados, pero el grafo aún se puede
reducir más si consideramos que como la permanencia en el estado R está condicionado
por el estado del pulsador, el paso de I a D cuando el botón está pulsado se puede
realizar pasando (con tiempo de permanencia infinitesimal) por el estado R. El grafo
reducido definitivo es entonces el representado en la figura 1.6 (b). Donde además
aparecen diferenciadas (Zeigler y col., 2000) las transiciones de estado internas,
provocadas por el propio carro cuando alcanza los extremos A y B, en trazo discontinuo
de la transición de estado externa, provocada por el botón, en trazo continuo.
R R
M M
A
M A D D
B M A B
I I
(a) (b)
El grafo reducido para el “semáforo de peatones” puede quedar como muestra la figura
1.7. Donde está recogida la transición de V a R, indicada por trazo continuo,
condicionada a la petición del peatón, que no es necesario explicitar porque es la única
entrada que tiene el sistema. Y la transición de R a V, indicada por trazo discontinuo,
para indicar que se trata de una transición interna del sistema, que no está condicionada
por la entrada del sistema sino por el tiempo de permanencia en el estado R.
V R
29
Introducción al modelado de sistemas discretos
La “taquilla del cine” se puede describir mediante el grafo reducido de la figura 1.8.
Donde ha sido necesario acudir a una representación bidimensional, puesto que el
comportamiento del sistema depende del estado de la taquilla, representado en el eje de
ordenadas, y del estado de la cola, representado en el eje de abscisas. Las llegadas de las
personas están recogidas en las transiciones con trazo continuo, y las salidas están
recogidas en las transiciones con trazo discontinuo.
Ocupada
Libre
0 1 2 3 Personas en la cola
Figura 1.8 Grafo reducido para la taquilla del cine.
1.6.3.1 “Carros que van y vienen por raíles diferentes, sincronizados en los
extremos”
Se propone modelar con un GR el comportamiento de dos carros, que van y vienen por
raíles diferentes, a diferentes velocidades, pero sincronizados en los extremos izquierdos
y derechos. La política de sincronización obliga a que un carro no pueda cambiar de
dirección hasta que el otro no haya llegado y por tanto que ambos carros partan a la vez
de sus respectivos extremos izquierdos o derechos. El sistema dispone además de un
pulsador M para hacer (si no está pulsado) que ambos carros permanezcan en reposo en
los extremos izquierdos respectivos (A y C) y para conseguir (si está pulsado) que
ambos carros se muevan hacia la derecha.
El comportamiento del sistema, véase la figura 1.9, se puede describir con los siguientes
siete estados internos:
1 Ambos carros están en reposo en sus respectivos extremos izquierdos (el carro 1
en el extremo A y el carro 2 en el extremo C).
2 Ambos carros están moviéndose hacia la derecha.
3 El carro 1 ha llegado al extremo B y el carro 2 aún está moviéndose hacia la
derecha.
4 El carro 2 ha llegado al extremo D y el carro 1 aún está moviéndose hacia la
derecha.
5 Ambos carros están moviéndose hacia la izquierda.
6 El carro 1 ha llegado al extremo A y el carro 2 aún está moviéndose hacia la
izquierda.
7 El carro 2 ha llegado al extremo C y el carro 1 aún está moviéndose hacia la
izquierda.
30
Introducción al modelado de sistemas discretos
1→2 Cuando se pulsa el botón estando ambos carros en sus extremos izquierdos.
2→3 Cuando el carro 1 alcanza el extremo B.
2→4 Cuando el carro 2 alcanza el extremo D.
2→4 Cuando el carro 2 alcanza el extremo D.
4→5 Cuando el carro 1 alcanza el extremo B.
5→6 Cuando el carro 1 alcanza el extremo A.
5→7 Cuando el carro 2 alcanza el extremo C.
6→1 Cuando el carro 2 alcanza el extremo C.
7→1 Cuando el carro 1 alcanza el extremo A.
i1 d1
1
M
C1
2
A B B D
M i2 d2
C 3 4 A
C2
D B
5
C D A C
6 7
Figura 1.9 Esquema y grafo reducido del sistema compuesto por dos carros que van y vienen.
Por tanto existen 16 (4x4) posibles combinaciones de estados individuales, de los cuales
sólo siete estados son posibles físicamente y han tenido su consideración en el grafo
reducido.
31
Introducción al modelado de sistemas discretos
RI1 RD2 Estado imposible según el enunciado, pues los carros se esperan en los
extremos izquierdo o derecho para reanudar la respectiva marcha a la
vez.
RI1 I2 Se ha considerado como estado 6.
RD1 RI2 Estado imposible según el enunciado, pues los carros se esperan en los
extremos izquierdo o derecho para reanudar la respectiva marcha a la
vez.
RD1 D2 Se ha considerado como estado 3.
RD1 RD2 Estado que no es necesario según el enunciado, pues el primer carro
que llega al extremo derecha espera al otro y reanudan
inmediatamente la marcha, sin que en ningún momento los dos estén
en reposo.
RD1 I2 Estado imposible según el enunciado, pues ambos carros reanudan su
marcha hacia la izquierda al mismo tiempo.
En definitiva, la principal diferencia del grafo reducido de la figura 1.9 con el grafo
reducido de la figura 1.6 (b) es que los estados utilizados en la descripción representan
estados globales del sistema, son combinaciones de los estados parciales de sus dos
componentes (el carro 1 y el carro 2). Además, mientras en el grafo reducido de la
figura 1.6 (b) sólo existe una posible secuencia de estados, que pueda describir cómo el
carro que ha partido del reposo puede volver a estar parado: R – D – I – R. En el grafo
reducido de la figura 1.9 existen cuatro posibles secuencias para representar un mismo
fenómeno “los dos carros que han partido del reposo vuelven a estar parados en sus
respectivos extremos izquierdos”:
32
Introducción al modelado de sistemas discretos
33
Introducción al modelado de sistemas discretos
trate de analizar qué cambios tendría que introducir en el grafo de la figura 1.9 si
en el enunciado de los “dos carros que van y vienen sincronizados” se dice que “el
carro 1 está obligado a permanecer como mínimo un cierto tiempo parado en el
extremo B antes de cambiar de sentido”. ¿Hubiera sido más rápido plantear un
nuevo grafo?
1 FT11 FT2
FT1 FT2 5 3
2 3 FT12
FT2 FT11
2 6
FT2 FT1
4 FT12
FT2
4
(a) (b)
34
Introducción al modelado de sistemas discretos
EJERCICIO 1.1
Este ejercicio está sacado de un ejemplo que se analiza extensamente en el apartado 5.4
de Urquía 2003. Se remite a los alumnos a ese apartado si quieren ver la solución,
aunque no es necesario que consulten todos los detalles. Sólo los tres eventos “pedido
de cliente”, “llegada de producto” y “evaluación del inventario”, que permiten
representar al sistema, y las acciones asociadas a cada uno de ellos.
EJERCICIO 1.2
a) En este sistema no hay entidades temporales, hay dos entidades permanentes: el carro
1 y el carro 2. Que además son del mismo tipo y para las que se puede considerar un
único atributo; el “estado de la entidad”. Que puede tomar tres valores: R=“reposo”,
D=“moviéndose hacia la derecha” e I=“moviéndose hacia la izquierda”. Los raíles
podrían tener la consideración de recursos, pero como cada carro se mueve por un raíl
diferente y no compiten por ello, no es necesario considerar ningún recurso en el
sistema. Los posibles eventos son:
35
Introducción al modelado de sistemas discretos
AE2. Cuando el carro 1 alcanza el extremo B pueden ocurrir dos cosas, que se pare a
esperar a que el carro 2 llegue al extremo D, o que deje de moverse hacia la derecha
para hacerlo hacia la izquierda (cambio de D a I) si el carro 2 ya estaba en el extremo
D. En esta segunda situación, el carro 2 dejará de estar parado y comenzará a
moverse hacia la izquierda.
AE4. Cuando el carro 1 alcanza el extremo A pueden ocurrir tres cosas. 1) Que se
pare a esperar a que el carro 2 llegue al extremo C. 2) Que deje de moverse hacia la
izquierda para hacerlo hacia la derecha (cambio de I a D) si el carro 2 ya estaba en el
extremo C y el botón está pulsado. En esta segunda situación, el carro 2 dejará de
estar parado y comenzará a moverse hacia la derecha. 3) Que se pare porque, aunque
el carro 2 ya estaba en el extremo C, el botón está sin pulsar.
36
Introducción al modelado de sistemas discretos
NO
El botón está
pulsado
SÍ
El carro 1 ha
SÍ llegado a B
NO
El carro 2 ha NO
llegado a D
SÍ
El carro 1 se El carro 2 se
para en B para en D
El carro 2 ha NO El carro 1 ha NO
llegado a D llegado a B
SÍ SÍ
El carro 2 se El carro 1 se
para en D para en B
El carro 1 ha
llegado a A
SÍ
NO
El carro 2 ha NO
llegado a C
SÍ
El carro 1 se El carro 2 se
para en A para en C
El carro 2 ha NO El carro 1 ha NO
llegado a C llegado a A
SÍ SÍ
El carro 2 se El carro 1 se
para en C para en A
Se observa una total analogía entre el organigrama de la figura 1.11 y el grafo reducido
de la figura 1.9, pero además se observa que es más fácil trazar el grafo reducido aunque
haya que complementarlo con información sobre el significado de los estados y de los
eventos.
37
Introducción al modelado de sistemas discretos
EJERCICIO 1.3
a) Una oficina de información turística está formada por un grupo de tres trabajadores.
A esta oficina llegan pidiendo información dos tipos de turistas: unos que solamente
necesitan mapas o folletos informativos, con lo que el tiempo de atención por parte de
los informadores es pequeño, y otros que piden información más detallada y se precisa
más tiempo para atenderlos. ¿Qué componentes son necesarios para describir este
sistema? Enumere los eventos, las acciones asociadas y las condiciones de activación.
b) El director de la oficina ha decidido contratar a estudiantes de turismo para que
puedan realizar prácticas. Pero a diferencia de los trabajadores, los estudiantes sólo
pueden trabajar media jornada. ¿Qué componentes son necesarios para describir el
nuevo sistema si el director ha decidido mantener la funcionalidad pero utilizando sólo
un trabajador y el resto estudiantes?
38
Introducción al modelado de sistemas discretos
por el trabajador que acaba de atender al otro turista, disminuyendo la cola en una
unidad (n=n-1).
b) Según el enunciado podemos suponer que los estudiantes tienen la misma capacidad
de atención que los trabajadores luego cada trabajador se puede sustituir por un
estudiante. Pero además, como los estudiantes trabajan a media jornada, para cubrir la
jornada de trabajo completa se necesitan un estudiante con turno de mañana y otro
estudiante con turno de tarde. En definitiva, para mantener la funcionalidad con un
trabajador y el resto estudiantes, el director debe contratar cuatro estudiantes, dos con
turno de mañana y dos con turno de tarde. Para describir la nueva situación vale el texto
anterior, salvo que “trabajador” se puede interpretar como recurso (trabajador o
estudiante) y sólo habría que incluir un nuevo evento (“el cambio de turno”), que se
activaría siempre a la misma hora del día. Las acciones asociadas a este evento son: los
estudiantes del turno de tarde ocupan los puestos de los estudiantes del turno de mañana
si éstos estaban libres, si alguno estaba “ocupado” la sustitución se aplaza el tiempo
necesario hasta que el turista es atendido.
EJERCICIO 1.4
a) En este sistema las entidades son las “personas”, con un atributo (el motivo que le ha
llevado a la oficina) que tiene dos valores “denuncia” o “ratificación”. Los recursos son
los dos policías (policia_D y policia_R) que atienden la oficina, uno especializado en
las “denuncias” y otro en las “ratificaciones”, pero ambos capacitados para atender las
dos modalidades. Se contemplan dos colas, la “cola de las denuncias” y “la cola de las
ratificaciones”. En principio podemos pensar que sólo existen dos eventos: “la llegada
de un ciudadano” a la oficina y “la salida” de la comisaría después de haber sido
39
Introducción al modelado de sistemas discretos
La llegada de una persona a la oficina provoca una acción diferente según el motivo
que le ha llevado a la oficina y la situación de los recursos:
• Si “denuncia” y el policía especializado en denuncias está libre, la persona pasa a
ser atendida inmediatamente, con lo cual el policia_D pasa a estar ocupado.
• Si “denuncia” y el policia_D está ocupado, habrá que dirigirlo al policia_R si éste
está libre o a la cola de denuncias si el policia_R está ocupado.
• Si “ratificación” y el policia_R está libre, la persona pasa a ser atendida
inmediatamente, con lo cual el policia_R pasa a estar ocupado.
• Si “ratificación” y el policia_R está ocupado, habrá que dirigirlo al policia_D si
éste está libre o a la cola de ratificaciones si el policia_D está ocupado.
40
Introducción al modelado de sistemas discretos
Denuncia Ratificación
Denuncia o
ratificación
NO NO NO La persona pasa
Policia_D libre Policia_R libre Policia_D libre
a la cola_R
SÍ SÍ SÍ
NO SÍ
Policia_R libre
La persona pasa a La persona pasa a
ser atendida durante ser atendida durante
La persona pasa La persona pasa a un tiempo t_R un tiempo t_R La persona pasa a
a la cola_D ser atendida durante ser atendida durante
un tiempo t_D un tiempo t_D
SÍ NO SÍ NO
cola_R vacía cola_D vacía
41
Introducción al modelado de sistemas discretos
EJERCICIO 1.5
En el primer autómata no hay eventos internos, el siguiente grafo reducido recoge las
dos posibles transiciones (de S1 a S2 y de S2 a S1) debidas a un evento externo (flecha
continua).
S1 S2
LA LE
El grafo reducido que permite representar al contador módulo 5 es muy similar a los
grafos anteriores, pues sólo hay transiciones debidas a eventos externos entre un número
de estados finitos (en este caso cinco, representados por los digitos 0, 1, 2, 3 y 4).
0 2
4 3
A diferencia de los cuatro sistemas anteriores, en los que sólo había eventos externos, en
este sistema se produce un evento interno (temporizado) desde el estado “ocupado”
representado por una flecha discontinua. Los dos eventos, el externo y el interno,
42
Introducción al modelado de sistemas discretos
conforman un proceso cíclico entre los dos estados del sistema. En el estado “ocupado”
también se pueden representar eventos externos, pero no es necesario considerarlos en
el grafo reducido puesto que, al no ser atendidos por el sistema, no ocasionan ninguna
transición de estado.
espera ocupado
espera en
verde
verde
ocupado
ámbar
rojo
EJERCICIO 1.6
Si suponemos que cada semáforo puede estar en uno de sus tres estados posibles
(“rojo”, “ámbar” y “verde”), llegaremos a que el conjunto de dos semáforos podría estar
en uno cualquiera de los nueve estados (las nueve combinaciones de estados
individuales) que están representados en la tabla 1.2. Sin embargo un análisis
pormenorizado de estas nueve combinaciones nos lleva a la siguiente conclusión: tan
sólo 5 de esas combinaciones deberían estar permitidas si queremos que el conjunto de
dos semáforos realice la función (regulación de tráfico) para la que está diseñado, las
43
Introducción al modelado de sistemas discretos
Pero si queremos combinar esos cinco estados de forma cíclica nos encontramos que el
orden de la tabla 1.2 presenta una situación bastante crítica; el paso instantáneo de la 3ª
fila (“ámbar” y “rojo”) a la 4ª fila (“rojo” y “verde”) podría provocar colisiones debido
a que los conductores tratarán de apurar el paso cuando su semáforo esté en “ámbar”.
Luego es prudente y recomendable incluir en el tránsito entre esos dos estados el paso
por el estado más seguro, el estado (“rojo” y “rojo”). En definitiva, el comportamiento
básico de un conjunto de dos semáforos de tráfico encargados de regular un cruce se
puede modelar con un autómata cíclico con los seis estados representados en la tabla
1.3. En dicha tabla están también asignados los tiempos de permanencia en cada estado,
basándonos en los tiempos del ejercicio anterior se ha considerado asignar 60 segundos
en los estados donde uno de los semáforos está en verde y de 10 segundos en el resto de
los casos. El ciclo completo dura 160 segundos que se podría reducir algo si a la
situación de ambos semáforos en “rojo” se le asigna menos tiempo.
44
Introducción al modelado de sistemas discretos
EJERCICIO 1.7
Dos carros transportan, como muestra la figura 1.13, cierto material desde dos puntos
de carga A y E hasta un punto de descarga D. Cada carro tiene su propio botón para
permitir el movimiento cíclico de ida y vuelta (A-D-A y E-D-E) respectivamente pero
con las siguientes características:
• Hay un punto de espera eventual (B en el caso del primer carro y F en el caso
del segundo carro) hasta que el tramo común (C-D) de la trayectoria de ambos
carros esté libre
• En caso de demanda simultánea del tramo común (recurso compartido), el
segundo carro siempre tiene prioridad
• No se consideran despreciables los tiempos de carga y descarga.
a) Enumere los eventos, las acciones asociadas y las condiciones de activación que
describen este sistema.
b) Evaluar cuántos estados serían necesarios para representar el comportamiento
individual de los carros y el comportamiento del sistema mediante un grafo reducido.
i1 d1
M1 C1
A
i2 d2
B C D
M2 C2 F
Figura 1.13 Carros que van y vienen por raíles con un tramo común.
Las acciones asociadas a los eventos y sus condiciones de activación quedan recogidas a
continuación:
AE2. La pulsación del botón M2 provoca las acciones reciprocas del evento anterior.
45
Introducción al modelado de sistemas discretos
AE3. El carro 1 puede alcanzar el punto intermedio B cuando está moviéndose hacia
la derecha (hacia el extremo común D) o cuando está moviéndose hacia la izquierda
(hacia el extremo A). En el primer caso pueden ocurrir dos cosas, que continúe
moviéndose hacia la derecha porque el tramo común está libre o que se pare a
esperar a que el carro 2 abandone el tramo común. En el segundo caso el carro debe
continuar moviéndose hacia la izquierda.
AE5. Cuando uno de los carros, que está moviéndose hacia la derecha en el tramo
común C-D, alcanza el extremo D deben ocurrir dos cosas, que se pare el tiempo
necesario para efectuar la descarga y que transcurrido ese tiempo reanude su marcha
en dirección contraria (hacia la izquierda).
AE6. Cuando el carro 1, que está moviéndose hacia la izquierda en el tramo propio
A-B, alcanza el extremo A pueden ocurrir dos cosas, en función del estado del botón
M1, que se pare indefinidamente en el extremo A hasta que el botón sea pulsado o
puesto que el botón está pulsado, se pare sólo el tiempo necesario para efectuar la
carga y que transcurrido ese tiempo reanude su marcha en dirección contraria (hacia
la izquierda).
RPI1 DTC2
RPI1 REC2
RPI1 ITC2
Algo similar ocurre con el carro 2, que sólo puede estar parado en el punto intermedio si
el carro 1 está ocupando el tramo común. Por tanto las siguientes siete combinaciones
de estados individuales
46
Introducción al modelado de sistemas discretos
RPI1 REI2
RPI1 DTP2
RPI1 RPI2
RPI1 ITP2
REI1 RPI2
DTP1 RPI2
ITP1 RPI2
47
Introducción al modelado de sistemas discretos
48
TEMA 2
Redes de Petri
Las Redes de Petri (a las que usualmente nos referiremos a lo largo del tema como RdP)
son una herramienta matemática que permite modelar comportamientos de sistemas de
muy distinta naturaleza. Los principales campos de aplicación de este formalismo
matemático son los sistemas legales, los sistemas operativos, la descripción de software
en general, la descripción de hardware de computadores y de sistemas discretos de
control con evoluciones concurrentes, la descripción de automatismos lógicos y de los
lenguajes formales. No obstante en nuestro caso concreto, las Redes de Petri serán
utilizadas fundamentalmente para la descripción de sistemas de eventos discretos.
Una RdP es un grafo orientado en el que intervienen dos tipos de nodos unidos
alternativamente mediante arcos, estos son:
49
Redes de Petri
Una característica fundamental de las RdP es que dos nodos del mismo tipo nunca
pueden ir unidos mediante un arco. Desde el punto de vista de la descripción funcional
del sistema que se quiere modelar, las transiciones o nodos transición se asocian a los
eventos que pueden aparecer en la dinámica del sistema y los lugares o nodos lugar se
asocian a las distintas actividades, o acciones, que realiza el sistema.
Donde:
La RdP así definida es una RdP ordinaria y marcada, donde el estado del sistema viene
totalmente determinado por el número de marcas que hay en todo momento en cada
nodo lugar, luego se puede describir a través del vector P. Por tanto, cada nodo lugar de
la RdP sirve para describir tanto las colas de espera que presenta el sistema, como las
condiciones impuestas sobre el estado del sistema en el que se encuentran los elementos
que constituyen dicha cola de espera. El número de marcas en el interior de un nodo
lugar representa el número de elementos que están en una cola de espera determinada
del sistema y también, el estado de una condición concreta en caso de que dicha
condición se cumpla en ese nodo. Por otro lado, los arcos que conectan los nodos
transición con los nodos lugar suelen llevar asociados un peso que describe el número
de condiciones necesarias para que un determinado evento representado por una
transición de la RdP pueda ser activado.
Para analizar, representar y estudiar una RdP dada, es necesario definir las funciones
E(Tj) y S(Tj), que representan respectivamente las funciones de los conjuntos de
entrada y salida de una transición dada Tj. Matemáticamente:
50
Redes de Petri
P1 P4
P2 P5 M0 = [1, 0, 0, 1, 0, 0]T
t2 t4
1 marca en P1 y P4
P3 P6
0 marcas en P2, P3, P5 y P6
t3 t5
51
Redes de Petri
En este apartado vamos a comentar las propiedades más significativas asociadas a las
Redes de Petri (Guasch y col., 2002), las cuales son de gran utilidad a la hora de
representar un modelo de un sistema con este tipo de formalismo.
52
Redes de Petri
P1 P4
t1
Vector de marcado actual de la red
P2 P5
M = [0, 1, 0, 0, 1, 0]T
t2 t4
1 marca en P2 y P5
P3 P6 0 marcas en P1, P3, P4 y P6
t3 t5
Figura 2.2 Ejemplo de marcado de la RdP de la figura 2.1 tras disparar t1.
P1 P2 P1 P2
3 1 3 1
t1 t1
2 3 2 3
P3 P4 P3 P4
53
Redes de Petri
Conocidas tanto las condiciones de marcado de una RdP como las condiciones de
disparo de sus transiciones, lo que nos va a interesar es saber cómo evoluciona, o cómo
es posible que lo haga, una RdP dada. Para describir la evolución del marcado y el
disparo de las transiciones de una RdP dada, se utiliza lo que se conoce como árbol de
cobertura de la RdP, mediante el cual se describe el conjunto de vectores de marcado
por los que pasa la evolución de la red, o lo que es lo mismo, los posibles caminos que
la evolución de la red podría seguir en función de las transiciones factibles de ser
disparadas y disparadas en realidad.
El principal objetivo del estudio de la evolución de una RdP, o lo que es lo mismo, del
análisis del modelo que representa, consiste en determinar su comportamiento
dinámico. Ahora bien, para llevar a cabo un análisis exhaustivo de la red, el cual
permite a su vez verificar y validar el modelo que se está representando con ella, es
imprescindible:
• Encontrar los posibles caminos de alcanzar el estado final de la red partiendo del
estado inicial, así como establecer el coste de cada uno de esos posibles caminos.
• Obtener el conjunto de posibles estados a los que se puede llegar a partir del
estado inicial de la red.
Los tres puntos que acabamos de comentar están totalmente relacionados y se deducen
fácilmente de la observación del árbol de cobertura asociado a la RdP objeto de estudio.
La construcción del árbol de cobertura de una RdP dada consiste en determinar el
conjunto de estados o vectores de marcado M a los que se puede acceder desde el estado
o marcado inicial M0, Para lo cual, se establecen las siguientes reglas de construcción
del árbol:
• Para cada uno de los nodos del árbol se generan tantos hijos como transiciones
activadas o sensibilizadas haya. Por lo que los nodos hijos son los vectores de
marcado de la red una vez disparadas las transiciones correspondientes. Los arcos
que conectan un nodo padre con uno hijo se marcan con el nombre de la
transición que se ha disparado.
• Cuando se genera un nodo hijo que ya existe en algún otro nivel anterior del árbol,
se enlaza con él y este camino ya ha terminado.
54
Redes de Petri
P1
[0, 1, 0 ]
t1
t2
P2
[0, 0, 1 ]
t2
t4
t3
P3
[1, 0, 0 ]
t3 t4
t1
De la observación de figura 2.4, con ese marcado inicial es posible establecer que la
transición t2 está habilitada porque su nodo lugar de entrada P2 tiene una marca y el
arco que une P2 con t2 tiene un peso unidad. El resto de las transiciones de la figura
inicialmente no están habilitadas porque sus nodos de entrada están vacíos y sus arcos
de conexión tienen el peso unidad. Si se dispara la transición t2 lo que se hace es borrar
la marca del nodo lugar P2 y poner una marca en el nodo lugar P3, de esta forma el
vector de marcado quedaría como M = [0 0 1]T. En esta nueva situación hay dos
transiciones posibles de ser disparadas (t3 y t4), aunque sólo una de ellas puede ser
disparada porque el nodo lugar P3 no tiene suficientes marcas para disparar ambas a la
vez. Se presentan pues dos posibles caminos en la RdP, dependiendo de la transición
que se dispare en un momento concreto. Si se dispara la transición t3, el siguiente
marcado de la red sería M = [0 1 0] T = M0, es decir, regresamos al estado de partida.
Por el contrario si se dispara la transición t4 el siguiente marcado de la red sería M = [1
0 0]T. Habiendo disparado t3 hemos vuelto a la posición inicial por lo que la evolución
de la red comenzaría a repetirse, lo que significa que esta rama de la RdP ya está
explorada dado que el comportamiento del sistema se repite. No obstante si se ha
disparado t4, se tiene una nueva situación que no se había tenido hasta ahora. En esa
nueva posición la única transición posible de ser disparada sería t1 y al dispararse
volveríamos también al marcado inicial. Por tanto el árbol de cobertura de la RdP de la
figura 2.4 es el que se muestra en esa misma figura y cuya evolución acabamos de
describir.
Se puede observar que para dar por finalizado el árbol de cobertura se debe llegar a un
punto en el cual regresemos al estado de partida o bien se llegue a una situación donde
55
Redes de Petri
no haya ninguna transición más factible de ser disparada. Si esto último ocurriera,
indicaría problemas en el modelado del sistema objeto de estudio.
Otro ejemplo de árbol de cobertura de una RdP es el que se muestra en la figura 2.5, que
hace referencia a la RdP mostrada en la figura 2.1 y que es algo más complejo que el
que acabamos de describir. La RdP que ahora vamos a analizar consta de 6 nodos lugar,
por lo que su vector de marcado tiene seis componentes. Inicialmente los nodos P1 y P4
tienen una marca y el resto ninguna y los pesos de todos los arcos de conexión entre
lugares y transiciones son la unidad.
A partir del marcado inicial M0 = [1 0 0 1 0 0]T la única transición habilitada es t1, dado
que los dos nodos lugar de entrada a ella tienen una marca, por tanto sólo hay un posible
camino para el árbol. Si se dispara, desaparecen las marcas en P1 y P4 y aparecen
nuevas marcas en P2 y P5, concretamente una en cada nodo. El nuevo marcado sería
M1 = [0 1 0 0 1 0]T. Ahora se pueden disparar dos transiciones, la t2 y la t4. Si se
dispara t2, que representa la rama de la izquierda en la red desaparece la marca de P2 y
se coloca en P3, dando lugar al siguiente vector de marcado M2 = [0 0 1 0 1 0]T. Por el
contrario si se dispara t4 desaparece la marca de P5 y se coloca en P6, dando lugar al
siguiente vector de marcado M3 = [0 1 0 0 0 1]T. De esta forma tenemos representado
hasta el tercer nivel del árbol de cobertura de la figura 2.5.
M0 [1, 0, 0, 1, 0, 0 ]
t1
M1 [0, 1, 0, 0, 1, 0 ] t4
t2
M2 [0, 0, 1, 0, 1, 0 ] M3 [0, 1, 0, 0, 0, 1 ]
t3 t4 t2 t5
M6 [1, 0, 0, 0, 0, 1 ] M7 [0, 0, 1, 1, 0, 0 ]
t5 t3
56
Redes de Petri
A continuación vamos a analizar que ocurre cuando se parte de estos dos nuevos
últimos marcados M6 y M7. En M6 sólo se puede disparar la transición t5 y al hacerlo
llegamos al marcado M0. En M7 sólo se puede disparar la transición t3 y al hacerlo
también llegamos a M0, por lo que hemos agotado estas dos nuevas ramas del árbol.
Volviendo de nuevo al tercer nivel del árbol de cobertura habíamos dejado un marcado
sin explorar que se correspondía con el marcado M3 = [0 1 0 0 0 1]T. En este marcado
hay dos transiciones factibles de disparar t2 y t5. Si se dispara t2 se borra una marca de
P2 y se pone una en P3 llegando de nuevo a M5 = [0 0 1 0 0 1]T, marcado ya definido y
cuya evolución ya se conoce. Si se dispara t5 se borra una marca de P6 y se pone una en
P4 llegando a un nuevo marcado M8 = [0 1 0 1 0 0]T. Estando en este nuevo marcado,
sólo se puede disparar t2 y si se hace se llega de nuevo a M7 = [0 0 1 1 0 0]T, que es
conocido y se conoce su evolución, por lo que el árbol de cobertura de la red estaría
completo.
57
Redes de Petri
P1 P1 (c)
t1
P2 t1 t2
t1 t2
t2
P3 (b)
P1 (d)
(a)
• Nodo O, se denomina de esta forma a una estructura en la que un nodo lugar tiene
varios arcos de entrada entradas y/o varios arcos de salida. (Ver figura 2.6 (b)).
Este hecho lleva consigo dos posibles configuraciones a su vez:
• Nodo Y, se denomina de esta forma a una estructura en la que una transición tiene
varios arcos de entrada o varios arcos de salida (ver figura 2.7 (a)). Este tipo de
configuración permite la creación o extinción de las evoluciones simultáneas en
una RdP. Al igual que lo que ocurría con la estructura de Nodo O, esta nueva
configuración presenta dos posibles configuraciones a su vez:
58
Redes de Petri
(b)
t1
P1 P2
t2 t3
P1 P2
t1
(a) (c)
Se dice que una transición de una RdP dada es viva para un marcado M0 inicial, si para
todo marcado M al que se puede acceder a partir del marcado inicial M0, existe un
marcado M’ sucesor de M, a partir del cual se puede disparar esa transición. Como
consecuencia de que una transición sea viva, se dice que una RdP es viva para un
marcado M0 inicial dado, si todas sus transiciones son vivas para ese marcado. Es decir,
para ese marcado M0 inicial dado, si en las posibles evoluciones de la RdP todas las
transiciones que contiene son susceptibles de poder ser disparadas en algún momento.
Por el contrario, se dice que una RdP no es viva, para un marcado M0 inicial dado, si en
las posibles evoluciones de la RdP se llega a una situación en la que no se puede
disparar al menos una de las transiciones que constituyen dicha RdP. Cuando se
producen este tipo de situaciones es posible sospechar que el sistema objeto de estudio
es incorrecto o presenta algún problema de modelado. Simplemente modificando el
marcado inicial de una RdP, ésta puede pasar de ser viva a no serlo y a la inversa.
Una RdP es binaria, si el número máximo de marcas en cada uno de los nodos lugar
que la forman es uno. En una red de este tipo los nodos lugar estarán marcados con una
marca o bien, estarán sin marcar.
59
Redes de Petri
Una RdP es limitada, si el número de marcas en cada uno de los nodos lugar que la
forman no crece indefinidamente. Por el contrario, una RdP es no limitada cuando el
marcado de alguno de sus nodos lugar puede crecer de forma indefinida tras la
activación de una o más de sus transiciones. En general este tipo de redes, al igual que
lo ocurría con las RdP no vivas, suelen responder a modelos incorrectos.
P1 P2 P3
t1 t2
Teniendo en cuenta la definición general de un RdP dada en el apartado 2.1, una RdP
ordinaria no marcada Q, se define como la siguiente cuádrupla
(http://ttt.upv.es/jldiez/curso_aui):
Donde:
60
Redes de Petri
Decir que la RdP es ordinaria implica que sus funciones de incidencia sólo pueden
tomar los valores 0 y 1 (De ahí la definición anterior). Y el hecho de que la RdP sea no
marcada implica que no se incluya en su definición el vector de marcado inicial.
61
Redes de Petri
t1 t2 t3 t4 t5
P1 P4
-1 0 1 0 0 P1
t1
1 -1 0 0 0 P2
P2 P5
U= 0 1 -1 0 0 P3
t2 t4 -1 0 0 0 1 P4
1 0 0 -1 0 P5
P3 P6
0 0 0 1 -1 P6
t3 t5
t1 t2 t3 t4 t5 t1 t2 t3 t4 t5
0 0 1 0 0 P1 1 0 0 0 0 P1
1 0 0 0 0 P2 0 1 0 0 0 P2
Post =
0 1 0 0 0 P3 Pre = 0 0 1 0 0 P3
0 0 0 0 1 P4 1 0 0 0 0 P4
1 0 0 0 0 P5 0 0 0 1 0 P5
0 0 0 1 0 P6 0 0 0 0 1 P6
Figura 2.9 Ejemplo de una RdP ordinaria no marcada y su matriz de incidencia asociada.
Del análisis de la matriz de incidencia de una RdP, se puede establecer también cuál es
el comportamiento dinámico o evolución de la red. Por ejemplo mirando la matriz de
incidencia de la figura 2.9 podemos establecer que es lo que pasa cuando se dispara una
transición cualquiera, suponiendo por supuesto que dicha transición estuviese
habilitada. Si por ejemplo se dispara la transición t2, para ver que es lo que ocurriría en
la red debemos mirar la segunda columna de la matriz de incidencia donde vemos que la
fila correspondiente a P2 lleva asociado un –1 y la correspondiente a P3 un 1. El resto
de las filas de esa columna tienen un valor de 0. Lo que me están indicando estos
valores es que se debe quitar una marca en el nodo lugar P2 y poner una marca en el
nodo lugar P3 si se dispara la transición t2, el resto de los nodos lugar de la red ante este
disparo no varían dado que no guardan relación alguna con la transición disparada tal y
como informa la matriz de incidencia asociada a la red. Si se observa el dibujo de la red
se ve que efectivamente eso es lo que debería ocurrir.
62
Redes de Petri
Mk = M0 + U s
Lo que estamos indicando con el vector de marcado es que en la citada red inicialmente
sólo los nodos lugar P3 y P4 tendrán una marca y el resto tendrán cero marcas. Por otro
lado, con la información del vector característico se está estableciendo que a lo largo de
la evolución de la red que se quiere analizar se va a disparar a una vez la transición t1,
una vez la transición t2 y dos veces la transición t3. El resto de las transiciones no se
dispararán nunca. Por tanto utilizando la formulación que acabamos de definir, la
ecuación fundamental, que representa la evolución de la RdP de la figura 2.9 para ese
vector de marcado inicial y la secuencia de disparos representada en el vector
característico, quedaría como sigue:
0 - 1 0 1 0 0 1
0 1 1
-1 0 0 0 1 0
1 0 1 -1 0 0 0
+ 2 =
1 - 1 0 0 0 1 0
0 1 0 0 -1 0 0 1
0
0 0 0 0 1 - 1 0
63
Redes de Petri
ts
P1 Pn+1
Pn Pn+m
tt
Tal y como ya se comentó anteriormente, se dice que dos transiciones de una RdP son
concurrentes si son casualmente independientes. En la figura 2.10 se muestra un
ejemplo de dos transiciones concurrente dentro de una misma red. Se ve en ella como el
disparo de la transición ts conlleva el marcado de los nodos lugar P1 y Pn+1. Otro
concepto relacionado con el de concurrencia es el de evolución concurrente, cuyo
ejemplo se muestra también en la figura 2.10. Las dos transiciones de la red que se
representan tienen evoluciones concurrentes entre ellas, por un lado está el camino que
se recorre desde P1 a Pn y por otro el que se recorre de Pn+1 a Pn+m. Lo único que
64
Redes de Petri
Pi Pk
tt
Pj Pl
ti tk
Pr
tj tl
65
Redes de Petri
como indica la marca en el nodo P1, hasta que se pulsa el botón (P) y
consiguientemente se dispara la transición t1, haciendo que el carro se mueva hacia la
derecha. El nodo lugar P2 al que se ha llegado representa el movimiento hacia la
derecha que no cesa hasta llegar al extremo B. La llegada a B se representa con el
disparo de la transición t2 de la red, provocando el cambio de sentido, ahora el carro se
moverá camino de A, o sea, hacia la izquierda. El movimiento hacia la izquierda se
representa con el nodo lugar P3, el cual puede habilitar dos transiciones distintas. La
transición t3 representa que el carro sigue en movimiento porque ha llegado a A estando
el botón pulsado, o sea que va al nodo lugar P2. La transición t4 indica que el carro ha
llegado a A pero como el botón no está pulsado, regresa al estado inicial.
P1
P t1 [1, 0, 0 ]Reposo
t1
P2
[0, 1, 0 ]Derecha
t2
B t2
[0, 0, 1 ]Izquierda
P3
t3 t4
P-A t3 P-A t4
Las RdP son una herramienta de modelado que ofrece el formalismo necesario para
representar tanto el estado de cada uno de los componentes que constituyen el sistema
como la secuencia de eventos que se pueden desencadenar a partir de cada estado del
sistema. No obstante, las RdP no permiten especificar el flujo de información que suele
reflejarse mediante datos asignados a entidades cuyos valores cambian en función de los
eventos que aparecen. Estas entidades en las RdP coloreadas se reflejarían como marcas
de distintos colores en los correspondientes nodos lugar de la red.
Las RdP coloreadas permiten construir modelos más compactos y paramétricos, lo que
facilita considerablemente su mantenimiento y su posterior codificación. Estos modelos
requerirían de estructuras con un número elevado de componentes si fueran
desarrollados con el formalismo de las RdP (Guasch y col., 2002).
La principal diferencia que aportan las RdP coloreadas frente a las RdP ordinarias es la
capacidad de asociar a cada marca de un nodo lugar un tipo de datos concreto
denominado color de la marca. El uso de colores en las RdP es equivalente al uso de
distintos tipos de datos en los lenguajes de programación, lo cual dota a las RdP
coloreadas de la potencia necesaria para formalizar el modelo de cualquier sistema, por
complejo que éste sea. Matemáticamente, una RdP coloreada puede definirse a partir de
la siguiente tupla:
66
Redes de Petri
Donde:
• ∑ = {C1, C2, ...., Cn} es el conjunto finito y no vacío de colores. Con ellos
se permite especificar los atributos que deben
definirse para cada tipo de entidad (tipo de datos en
los lenguajes de programación).
67
Redes de Petri
• Los colores de las marcas pueden ser inspeccionados mediante las expresiones de
arco de llegada a las transiciones, lo que permite activarlas no sólo en función del
número de marcas en los nodos lugar de entrada a las transiciones sino en función
del color de las marcas disponibles en dichos nodos lugar. Al mismo tiempo estas
expresiones modelan también los efectos de salida de la transición modificando
los colores de las marcas de los nodos lugar de salida.
• Las guardas son muy similares a las expresiones de arco, aunque son expresiones
booleanas que imponen ciertos valores a los colores de las marcas, que pueden ser
seleccionados para activar una transición dada.
• Cada nodo lugar sólo podrá tener marcas de un mismo color o tipo de entidad.
• Las técnicas de análisis presentadas para las RdP siguen siendo válidas, aunque
ahora los vectores de marcado además del número de marcas en cada nodo,
necesitan los distintos valores de los colores de cada una de las marcas.
Quizás la ventaja más destacable de las RdP coloreadas es que como las expresiones de
arco permiten parametrizar las transiciones, éstas se pueden codificar para representar
de forma sencilla una clase de eventos en lugar de uno único como ocurría con las RdP
convencionales. Algunos ejemplos representativos del uso de las RdP coloreadas se
pueden encontrar en el libro de (Guasch y col., 2002).
68
Redes de Petri
Otra característica importante de las RdP es que con ellas se puede formalizar cualquier
tipo de sincronización de forma muy básica, tal y como se ha comentado con
anterioridad, representando esto una de las mayores ventajas del formalismo.
Por último comentar que las RdP coloreadas reducen la dimensión del modelo porque
aumentan su abstracción, permitiendo que las marcas lleven asociada una información
que hemos denominado color.
69
Redes de Petri
EJERCICIO 2.1
El comportamiento de la lámpara se puede modelar con dos estados que nos indiquen
cuando la lámpara en cuestión se encuentra encendida o apagada. Cada uno de estos
estados estaría asociado a las distintas actividades que la RdP puede llevar a cabo. Por
otro lado, los eventos que vamos a representar en la red irán asociados a las distintas
pulsaciones del interruptor que enciende y apaga la lámpara. La RdP asociada es la que
se muestra en la figura 2.14.
En respuesta al apartado (b) del ejercicio, se puede decir que efectivamente la RdP
mostrada como solución del apartado (a) en la figura 2.14, también sería válida para este
apartado. No obstante, si inicialmente se considera que la lámpara está encendida en
lugar de apagada, la RdP que representa el comportamiento sería la misma sólo que P1
tendría el significado de P2 y a la inversa, y lo mismo para las transiciones.
Otra forma de resolverlo es simplemente teniendo en cuenta que serviría la misma red,
basta que inicialmente se tuviese el marcado inicial [0 1]T, en lugar del marcado inicial
[1 0]T que es el que se muestra en la figura 2.14. La RdP funcionaría de la misma
manera que antes, de encendida pasaría a apagada y a la inversa, según las pulsaciones
del interruptor.
EJERCICIO 2.2
70
Redes de Petri
b) Ampliar dicha RdP permitiendo también la desconexión del sistema desde un agente
externo.
Considerando la RdP solución del ejercicio anterior (ver figura 2.14), la posibilidad de
que el sistema de encendido y apagado de la lámpara se pudiese conectar desde un
agente externo trae consigo la necesidad de un nuevo estado en la RdP (un nuevo estado
inicial), que implemente esta función.
La RdP resultante es la que se muestra en la figura 2.15. Dicha RdP incorpora un nuevo
estado y una nueva transición para representar al agente externo de conexión del
sistema. El resto de estados (P2 y P3), y de transiciones (t2 y t3) son las mismas del
ejercicio anterior, aunque con distinta numeración.
t3
t3: Evento de pulsar en interruptor en dirección de apagado.
Considerando la propuesta del apartado (b) del ejercicio hace que la RdP se complique
aún más. Se trata de permitir que la RdP mostrada en la figura 2.15 regrese al estado P1
en lugar de a P2, una vez que se ha realizado el primer ciclo de apagado y encendido de
la lámpara. La RdP asociada sería entonces la mostrada en la figura 2.16. Tanto los
estados P1, P2 y P3 como las transiciones t1, t2 y t3 tienen exactamente el mismo
significado que en la red de la fiura 2.15. La única diferencia que aporta la red solución
de este apartado, figura 2.16, es la incorporación de la transición t4, que sólo debe ser
disparada cuando se desee desconectar el sistema. No obstante, la RdP de la figura 2.16
presenta la limitación de que sólo se puede desconectar cuando la lámpara está
encendida.
71
Redes de Petri
P1
t1
P2
t2
P3
t3 t4
Si se quisiese que la lámpara también fuera posible desconectarla cuando está apagada,
la secuencialidad de P2 a P3 debe romperse y P2 debe presentar dos caminos de salida.
Por un lado el actual, de P2 a P3 disparando t2 (pulsado del interruptor en dirección de
encendido) y por otro lado el camino de P2 a P1 disparando una nueva transición t5,
cuya funcionalidad es la misma que la de la transición t4. Con esta consideración se
propone la siguiente RdP como solución al apartado (b) del ejercicio, mostrada en la
figura 2.17.
P1
t1
P2
t2 t5
P3
t3 t4
72
Redes de Petri
[1, 0, 0 ]
t1
[0, 1, 0 ]
t2
t5
[0, 0, 1 ]
t3 t4
EJERCICIO 2.3
El comportamiento del sistema que queremos modelar es muy similar al del ejercicio
anterior. La diferencia fundamental está en el número de estados del sistema que ahora,
en lugar de los dos anteriores (encendido -- apagado) son tres (verde – ámbar – rojo).
Pero además, el evento que produce el cambio de color en el semáforo no es una acción
externa como antes sino que es temporizada. Cuando se incluyen este tipo de eventos en
las RdP, a estas se las suele denominar RdP temporizadas. La RdP solución del
ejercicio será la que se muestra en la figura 2.19.
t3
t3: Evento temporizado que pasa el semáforo de rojo a verde.
73
Redes de Petri
dispararse llegaría al nodo lugar P1, y ya el resto de la red sería el mismo que acabamos
de representar y comentar.
EJERCICIO 2.4
74
Redes de Petri
P1 P6
t1
P2
t2
P3 P4
t3
P5
t4
t3: Evento temporizado que representa el paso del semáforo 2 de verde a ámbar.
t4: Evento temporizado que representa el paso del semáforo 2 de ámbar a rojo y el del
semáforo 1 de rojo a verde. Para que la transición se dispare se deben cumplir ambas
cosas, que el semáforo 2 esté en ámbar y que el 1 esté en rojo.
La RdP propuesta (veasé figura 2.20) simula el cruce de dos semáforos con cambio de
colores simultáneo entre los dos semáforos, de forma que cuando uno pasa a estado de
color rojo, el otro pasa automáticamente a color verde. En un cruce real esto no debe
hacerse así, sino que durante un periodo de tiempo breve los dos semáforos deben
permanecer en rojo para evitar choques entre los coches que están cruzando y los que
van a cruzar. Vea el ejercicio 1.6.
Este problema no se presenta en la siguiente RdP (veasé figura 2.21) donde la transición
t2 se ha desglosado en dos transiciones (t21 y t22) y el estado P3, que representaba la
permanencia del primer semáforo en rojo, también se ha descompuesto en otros dos
(P31, P32). A continuación se comentan los nuevos estados y transiciones de la RdP de
la figura 2.21 que no existen en la anterior RdP mostrada (figura 2.20):
P31: Estado que representa que el semáforo 1 está rojo y al cual sólo se accede cuando
también está en rojo el semáforo 2.
75
Redes de Petri
P32: Estado que representa la permanencia en rojo del semáforo 1 mientras el semáforo
2 realiza el ciclo de colores.
P1 P62
t1
P2
t21
P31
t22
P32 P4
t3
P5
t41
P61
t42
P61: Estado que representa que el semáforo 2 está rojo y al cual sólo se accede cuando
también está en rojo el semáforo 1.
P62: Estado que representa la permanencia en rojo del semáforo 2 mientras el semáforo
1 realiza el ciclo de colores.
76
Redes de Petri
En relación con el árbol de cobertura pedido en el apartado (b) del ejercicio vamos a
hacer el de esta última RdP (figura 2.21), que es más completa que la anterior (figura
2.20). El marcado inicial responde a la situación de que el primer semáforo está en
verde (nodo lugar P1 con una marca) y el segundo semáforo está en rojo. Teniendo en
cuenta la diferenciación de rojos que se ha hecho para el modelo de la red, el rojo inicial
del segundo semáforo debe ser un rojo permanente que permita que el primer semáforo
lleve a cabo su ciclo de colores, por tanto el nodo lugar P62 debe ser marcado. El resto
de los nodos lugar que componen la red estarán sin marcar. Por tanto, si M = [P1 P2
P31 P32 P4 P5 P61 P62]T representa el vector de marcado, M0 = [1 0 0 0 0 0 0 1]T
es el marcado inicial. El árbol de cobertura de la red es el que se muestra en la figura
2.22.
[1, 0, 0, 0, 0, 0, 0, 1]
t1
[0, 1, 0, 0, 0, 0, 0, 1]
t21
[0, 0, 1, 0, 0, 0, 0, 1]
t22
[0, 0, 0, 1, 1, 0, 0, 0]
t3
[0, 0, 0, 1, 0, 1, 0, 0]
t41
[0, 0, 0, 1, 0, 0, 1, 0]
t42
Figura 2.22 Árbol de cobertura de Red de Petri solución ampliada del ejercicio 2.4.
77
Redes de Petri
EJERCICIO 2.5
La RdP que se propone como solución es la que se muestra en la figura 2.23, donde el
conjunto (P3, P4, P5, t4, t5, t6) representa un ciclo de colores de un semáforo
convencional, como el descrito en el ejercicio 2.3.
P1: Estado inicial, que representa la espera para la puesta en marcha del semáforo.
P2: Estado que representa que el semáforo está en verde de forma permanente hasta
que se desconecte o un peatón pida el paso.
P3: Estado que representa que el semáforo está en verde pero que va a pasar a
comenzar un ciclo de colores para permitir el paso del peatón que ha activado t3.
78
Redes de Petri
t6: Evento temporizado que representa el paso de rojo a verde una vez que el peatón a
pasado.
Se puede observar que en la red intervienen dos tipos de eventos bien diferenciados. Por
un lado están los que hemos llamado temporizados, y que se corresponden con los del
modelo del semáforo convencional (t4, t5 y t6). Tal y como indica su nombre estos
eventos se producen en un instante de tiempo determinado previamente conocido, o
establecido, una vez que estamos en el ciclo de colores del semáforo. Por otro lado
tenemos una serie de eventos no temporizados que representan eventos convencionales
y que sólo se producen por la acción de un operador externo (t1, t2 y t3), pero de los
cuales no sabemos a priori cuando se van a producir.
Por último, considérese como ejercicio la posibilidad de que el semáforo pudiese ser
desconectado o apagado en cualquier momento durante su funcionamiento (y no sólo
desde el estado P2 como ocurre en la RdP de la figura 2.23). Y diseñe la RdP necesaria
para ello.
EJERCICIO 2.6
Si suponemos que inicialmente el montacargas está a pie de calle, y parado, hasta que se
le ordene comenzar a subir. Cuando se pulse este botón (que asociaremos a un evento)
el montacargas comenzará a subir hasta que llegue al tejado. Evidentemente en realizar
está subida tardará un tiempo que para nosotros será conocido. Llegado al tejado el
montacargas parará, hasta que se le ordene bajar mediante otro evento, representado por
el pulsado de otro botón. De esta forma realizará la misma acción que en la subida pero
descendiendo. Una posible RdP que representa el proceso que acabamos de describir es
la que se muestra en la figura 2.24.
P1: Estado inicial, que representa la espera en planta de calle del montacargas.
P3: Estado que representa la espera en el tejado del montacargas a que se pulse la tecla
de bajada.
79
Redes de Petri
P1
t1: Evento no temporizado que representa la puesta en
marcha en dirección de subida del montacargas, debido al
t1 pulsado del botón de subida.
P4
t4
80
Redes de Petri
pulsase la petición de subida cuando el montacargas aún esta bajando, de este modo P2
tendría una marca y en el momento que P1 fuese marcado desde t4, comenzaría a subir
de forma inmediata. Para evitar la posibilidad de que el montacargas suba y baje de
forma indefinida sin posibilidad de cargarlo, es necesario introducir en la RdP de la
figuar 2.25 dos nuevos estados, P7 y P8. P7 representa que el montacargas ha llegado al
tejado y está siendo cargado o descargado. Y P8 representa que el montacargas ha
llegado a pie de calle y está siendo cargado o descargado. Las transiciones t7 y t8
representan eventos temporizados del tiempo empleado en la carga y descarga del
montacargas. Cuando se produce alguno de estos dos eventos, la RdP alcanza un estado
a partir del cual si la tecla de subida/bajada ha sido pulsada comenzará de nuevo a
moverse.
P1 P5
t1
P2
t2
P7
t7
P3 P6
t3
P4
t4
P8
t8
81
Redes de Petri
EJERCICIO 2.7
La RdP que se propone como solución es la mostrada en la figura 2.27. En ella se tiene
un único estado P5 para gestionar las subidas y otro P6 para gestionar las bajadas, tanto
de peticiones cursadas desde fuera como desde dentro del ascensor. Ambos estados
serán marcados desde una cola que gestiona las peticiones de subida y bajada
incorporando en el estado respectivo, tantas marcas como pisos se desean subir o bajar
en cada petición. Es decir, el número de marcas a introducir en el estado
correspondiente será igual al valor absoluto de la diferencia entre el número del piso al
que se quiere ir (pulsación desde dentro del ascensor), o bien el número del piso desde
el que se solicita el ascensor (pulsación desde planta), menos el número del piso en el
cual se encuentra el ascensor cuando se dispone a atender la petición cursada.
P0: Estado inicial, que representa la espera en planta de calle del ascensor.
Ps1: Estado que representa la subida desde la planta calle al primer piso.
Ps2: Estado que representa la subida desde el primer piso al segundo piso.
82
Redes de Petri
Ps3: Estado que representa la subida desde el segundo piso al tercer piso.
Ps4: Estado que representa la subida desde el tercer piso al cuarto piso.
P0
t8 ts1
Pb0 Ps1
tb0 t1
P1
t7 ts2
Pb1 Ps2
P6 P5
tb1 t2
P2
t6
ts3
Pb2
Ps3
tb2 t3
P3
t5 ts4
Pb3 Ps4
tb3 t4
P4
83
Redes de Petri
t1: Evento temporizado que representa que el ascensor ha llegado al primer piso desde
la planta calle.
ts2: Evento no temporizado que representa la petición de subida del ascensor del primer
piso al segundo piso. Para poder disparar esta transición es necesario que el ascensor
esté en el primer piso (una marca en P1) y que en el pulsador de subidas (P5) haya al
menos una marca.
t2: Evento temporizado que representa que el ascensor ha llegado al segundo piso desde
el primer piso.
ts3: Evento no temporizado que representa la petición de subida del ascensor del
segundo piso al tercer piso. Para poder disparar esta transición es necesario que el
ascensor esté en el segundo piso (una marca en P2) y que en el pulsador de subidas (P5)
haya al menos una marca.
t3: Evento temporizado que representa que el ascensor ha llegado al tercer piso desde el
segundo piso.
ts4: Evento no temporizado que representa la petición de subida del ascensor del tercer
piso al cuarto piso. Para poder disparar esta transición es necesario que el ascensor esté
en el tercer piso (una marca en P3) y que en el pulsador de subidas (P5) haya al menos
una marca.
t4: Evento temporizado que representa que el ascensor ha llegado al cuarto piso desde el
tercer piso.
tb3: Evento no temporizado que representa la petición de bajada del ascensor del cuarto
piso al tercer piso. Para poder disparar esta transición es necesario que el ascensor esté
en el cuarto piso (una marca en P4) y que en el pulsador de bajadas (P6) haya al menos
una marca.
t5: Evento temporizado que representa que el ascensor ha llegado al tercer piso desde el
cuarto piso.
tb2: Evento no temporizado que representa la petición de bajada del ascensor del tercer
piso al segundo piso. Para poder disparar esta transición es necesario que el ascensor
esté en el tercer piso (una marca en P3) y que en el pulsador de bajadas (P6) haya al
menos una marca.
t6: Evento temporizado que representa que el ascensor ha llegado al segundo piso desde
el tercer piso.
tb1: Evento no temporizado que representa la petición de bajada del ascensor del
segundo piso al primer piso. Para poder disparar esta transición es necesario que el
ascensor esté en el segundo piso (una marca en P2) y que en el pulsador de bajadas (P6)
haya al menos una marca.
t7: Evento temporizado que representa que el ascensor ha llegado al primer piso desde
el segundo.
84
Redes de Petri
tb0: Evento no temporizado que representa la petición de bajada del ascensor del primer
piso a la planta calle. Para poder disparar esta transición es necesario que el ascensor
esté en el primer piso (una marca en P1) y que en el pulsador de bajadas (P6) haya al
menos una marca.
t8: Evento temporizado que representa que el ascensor ha llegado a la planta calle desde
el primer piso.
La nomenclatura se ha dispuesto de tal manera que para subir una planta se utilizan un
conjunto (tsn, Psn, tn, Pn) de nodos lugar y transición y para bajarla se utiliza un
conjunto similar de nodos lugar y transiciones para representar la bajada.
Teniendo en cuenta estas consideraciones y que el vector de marcado es: M = [P0 Pb0
Ps1 P1 Pb1 Ps2 P2 Pb2 Ps3 P3 Pb3 Ps4 P4 P5 P6] T, el marcado inicial de la red
sería: M0 = [1 0 0 0 0 0 0 0 0 0 0 0 0 0 0]T.
Se puede observar que aunque el formato del árbol es secuencial, el árbol es mucho más
complejo debido al mayor número de nodos lugar y transición de la red.
85
Redes de Petri
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] [0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 2]
llamada desde el tercer piso tb2
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0] [0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1]
ts1 t6
[0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0] [0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1]
t1 tb1
[0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0] [0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
ts2 t7
[0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0]
t2 llamada desde el cuarto piso
[0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0]
ts3
[0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0]
t3
[0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 2]
ts2
tb3
[0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1]
t2
t5
[0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 2, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]
ts3
tb2
[0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0]
[0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0]
t3
t6
[0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0]
ts4
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0]
t4
Figura 2.28 Árbol de cobertura de la Red de Petri solución del ejercicio 2.7.
86
Redes de Petri
EJERCICIO 2.8
Parece claro, que para que el sistema comience a funcionar lo primero que debemos
tener son piezas dispuestas a ser manufacturas, es decir, piezas en el almacén A1.
Además es necesario que la máquina M1 esté dispuesta para comenzar a funcionar y
que el robot R1 esté libre para que pueda transportar la pieza. Cuando se den estas dos
circunstancias se pondrá en funcionamiento el proceso y por lo tanto el robot R1
transportará la primera pieza desde A1 a M1. Cuando la pieza llega a M1 comenzará a
ser procesada, lo cual tardará un determinado tiempo, y el robot R1 quedará libre.
Finalizado el proceso, la pieza esperará en M1, hasta que el robot R2 llegue a por ella y
la traslade. Hasta aquí habríamos descrito el funcionamiento del primer subsistema del
modelo global, que modelaba el comportamiento de la máquina M1. Por tanto, con lo
expuesto hasta ahora el modelo de este subsistema vendría representado por la RdP de
la figura 2.29.
P1: Estado que representa el almacén A1. El número de marcas que contenga se
corresponderá con el número de piezas que quedan por manufacturar.
P3: Estado que representa que el robot R1 está libre y por lo tanto dispuesto a comenzar
a transportar piezas.
P4: Estado que representa el transporte de la pieza en cuestión, por parte del robot R1,
desde el almacén A1 hasta la máquina M1.
P6: Estado que representa que la máquina M1 está ocupada con una pieza procesada que
está esperando a ser transportada por el segundo robot R2 hacia la máquina M2 para
finalizar su manufacturación.
87
Redes de Petri
P1 P2 P3
t1: Evento que indica que el comienzo del
t1
proceso. Esta transición es disparada cuando
la máquina M1 está operativa, hay piezas en
A1 dispuestas a ser tratadas y el robot R1
P4 está libre.
P8: Estado que representa que el robot R2 está libre y por lo tanto dispuesto a comenzar
a transportar piezas.
P9: Estado que representa el transporte de la pieza en cuestión, por parte del robot R2,
desde la máquina M1 a la máquina M2.
P11: Estado que representa que la máquina M2 está ocupada con una pieza procesada
que está esperando a ser transportada por el robot R2 hacia el almacén de recogida A2.
P12: Estado que representa el transporte de la pieza por parte del robot R2 desde M2 a
A2.
88
Redes de Petri
Por último la RdP global del proceso será la unión de las dos anteriores (figuras 2.29 y
2.30) a través de los nodos lugar que tienen en común. Dicha RdP es la que se muestra
en la figura 2.31.
Se debe observar que con el marcado inicial elegido en la figura 2.31, la segunda pieza
podrá comenzar a procesarse cuando la marca que represente a la primera se pase al
estado P10, es decir, cuando se dispare la transición t5. Esto quiere decir que
dependiendo del número de piezas y de los tiempos de manufactura y transporte las dos
máquinas podrán estar procesando al mismo tiempo.
89
Redes de Petri
P7 P8
P1 P2 P3 t4
P9
t1
P4 t5
t2 P10
t6
P5
P11
t3
t7
P6
P12
t8
P13
EJERCICIO 2.9
1. Para una pieza del tipo a el proceso comienza en la máquina M1. Finalizada
la operación, se emplea C1 para transportar la pieza a M2 y tras ser
procesada sale del sistema.
2. Para una pieza del tipo b el proceso es el mismo que para la pieza tipo a
pero empleando C2 en el transporte.
3. Las máquinas no pueden realizar operaciones consecutivas sobre el mismo
tipo de pieza.
4. Para que M1 quede libre una vez finalizado el proceso de una pieza tipo a es
necesario que C1 se encuentre al lado de la máquina.
5. Para que M1 quede libre una vez finalizado el proceso de una pieza tipo b es
necesario que C2 se encuentre al lado de la máquina.
90
Redes de Petri
Con estas consideraciones vamos a ver como se formalizaría la RdP solución a este
problema. En primer lugar suponemos un estado P1 para representar que la máquina M1
está procesando una pieza tipo a. La liberación de esta máquina por parte de la pieza se
produce cuando la pieza ha sido procesada y el palet C1 está a su lado (restricción 4,
supongamos que estar cerca de M1 es estar en posición superior y cerca de M2 en
posición inferior), estado representado por el nodo lugar P2. Esto supone el disparo de
una transición que podría ser t1. Disparada la transición, el palet C1 comienza el
transporte hasta llegar al estado que represente que dicho palet está en la posición
inferior (P3). Por otro lado, la máquina M1 comienza a procesar una pieza del tipo b
(P4).
Por tanto, resumiendo lo que acabamos de comentar los nodos lugar y transición de la
RdP solución (veasé figura 2.32) tendrán el siguiente significado:
P4: Estado que representa a la máquina M1 procesando una pieza del tipo b.
P5: Estado que representa a la máquina M2 procesando una pieza del tipo b.
91
Redes de Petri
P6: Estado que representa a la máquina M2 procesando una pieza del tipo a
t1: Evento que indica el fin de procesamiento de la pieza a por parte de la máquina M1 y
el comienzo del transporte de la pieza a por parte de C1 desde la máquina M1 a la
máquina M2.
t2: Evento que indica el fin de procesamiento de la pieza b por parte de la máquina M2
y la disponibilidad de C1 cerca de la máquina M2 con una pieza del tipo a pendiente de
ser procesada por la máquina M2, así como su regreso a la posición superior.
t3: Evento que indica el fin de procesamiento de la pieza b por parte de la máquina M1
y el comienzo del transporte de la pieza b por parte de C2 desde la máquina M1 a la
máquina M2.
t4: Evento que indica el fin de procesamiento de la pieza a por parte de la máquina M2 y
la disponibilidad de C2 cerca de la máquina M2 con una pieza del tipo b pendiente de
ser procesada por la máquina M2, así como su regreso a la posición superior.
P1 P2
t1
P7 P4 P3 P5
t3 t2
P8 P6
t4
Para representar el árbol de cobertura de la RdP mostrada en la figura 2.32 con las
consideraciones de marcado inicial comentadas en el apartado (b) del enunciado, el
vector de marcado inicial de la red, sería el mismo que está plasmado en la figura 2.32,
es decir, M0 = [1 1 0 0 1 0 1 0]T. Por tanto el árbol de cobertura sería el que se muestra
en la figura 2.33.
92
Redes de Petri
[1, 1, 0, 0, 1, 0, 1, 0]
t1
[0, 0, 1, 1, 1, 0, 1, 0]
t3 t2
[1, 0, 1, 0, 1, 0, 0, 1] [0, 1, 0, 1, 0, 1, 1, 0]
t2
t3
[1, 1, 0, 0, 0, 1, 0, 1]
t4 t1
[0, 0, 1, 1, 0, 1, 0, 1]
t4
Figura 2.33 Árbol de cobertura de la Red de Petri solución del ejercicio 2.9.
EJERCICIO 2.10
Modelar la siguiente línea de producción mediante una RdP. El sistema consta de dos
máquinas (M1 y M2), dos manipuladores para transportar una pieza cada uno de
forma independiente. Se tienen dos tipos de piezas (a y b) que deben ser para ser
procesadas, según las siguientes especificaciones:
Una posible RdP solución de este problema puede ser la que se muestra en la figura
2.34, donde la parte izquierda de la red describe el tratamiento de la pieza de tipo a y la
parte derecha el tratamiento de la pieza de tipo b. Por ello, ambas subredes son muy
93
Redes de Petri
P1 P2 P6 P7
t1 t4
P3
P4 P8
t2 t5
P5 P9
t3 t6
P1 y P6: Estados que representa el límite de piezas de tipo a (P1) y de tipo b (P6), que
hay en todo momento en la RdP.
P2 y P7: Estados que representan que la máquina M1 (P2) y la máquina M2 (P7) están
libres y por lo tanto dispuestas a operar.
P4 y P8: Estados que representan el procesamiento de una pieza de tipo a por parte de la
máquina M1 (P4) y el procesamiento de una pieza de tipo b por parte de la máquina M2
(P8).
P5 y P9: Estados que representan el procesamiento de una pieza de tipo a por parte de la
máquina M2 (P5) y el procesamiento de una pieza de tipo b por parte de la máquina M1
(P9).
94
Redes de Petri
pieza de tipo b en la máquina M1 (t4). Para que estas transiciones se puedan disparar
debe ocurrir que la máquina con la que se quiere trabajar esté libre, que haya en los
almacenes piezas del tipo correcto para ser procesadas y que haya manipuladoras de
transporte libres para poder transportar las piezas de una máquina a otra en la parte
central del proceso de manufactura.
t2 y t5: Eventos que indican el transporte y cambio de máquina de la pieza de tipo a (t2)
y de la pieza de tipo b (t5). Para que estas transiciones se disparen la máquina M1 debe
haber acabado su trabajo sobre la pieza de tipo a (t2) y la máquina M2 debe de haber
acabado su trabajo sobre la pieza de tipo b (t5). Para que estas transiciones se puedan
disparar debe ocurrir también que la máquina con la que se quiere trabajar esté libre. Al
dispararse cada una de ellas conlleva que la máquina que acaba de llevar a cabo el
trabajo sobre la pieza en cuestión vuelve a quedar libre y por tanto disponible para
realizar un nuevo trabajo.
t3 y t6: Eventos que indica el fin de procesamiento de la pieza de tipo a por parte de la
máquina M2 (t3) y el fin de procesamiento de la pieza de tipo b por parte de la máquina
M1 (t6). Al dispararse cada una de estas transiciones conlleva que la máquina que acaba
de llevar a cabo el trabajo sobre la pieza en cuestión vuelve a quedar libre, que la
manipuladora de transporte utilizada en el proceso también quede libre y que las piezas
de tipo a y b regresen a sus lugares de origen respectivos.
95
Redes de Petri
96
TEMA 3
Diseño e implementación de
automatismos
A partir de estas ideas, los trabajos efectuados por las comisiones de AFCET
(Association Française pour la Cybernétique Economique et Technique) y de ADEPA
(Agence Nationale pour le Developpment de la Production Automatisée) iniciados en la
década de los setenta, han dado como resultado la definición de un diagrama funcional
denominado GRAFCET (Graphe de Comands Etape/Transition). Este tema se dedica al
diseño e implementación de automatismos utilizando GRAFCET.
97
Diseño e implementación de automatismos
Los principios básicos que inspiraron la creación del GRAFCET se pueden resumir
como sigue (ver figura 3.1):
• Todo sistema automático tendrá dos partes, una de control y otra operativa. La
primera comprende todo lo relacionado con la automatización del proceso y la
segunda el resto del sistema. Finalmente, todo el conjunto debe ser capaz de
comunicarse con el mundo exterior.
98
Diseño e implementación de automatismos
DEF. MACROETAPAS
FASE DE
DISEÑO
SIMULACIÓN IMPLEMENTACIÓN
IMPLEMENTACIÓN PRUEBAS
FASE DE MANTENIMIENTO
EXPLOTACIÓN
• Un conjunto de Etapas, o estados, a los que van asociados las acciones del
proceso.
99
Diseño e implementación de automatismos
En el diseño del automatismo con GRAFCET se debe tener siempre presente que
cuando se recorra el gráfico de evolución resultante, por cualquier camino posible, se
debe alternar siempre una etapa y una transición. La regla básica de sintaxis del
GRAFCET es que entre dos etapas debe existir una y sólo una condición de transición.
Cada ETAPA del GRAFCET representa uno de los estados posibles del sistema y se
debe corresponder con las distintas situaciones factibles del sistema, en las que todo o
parte del órgano de mando del mismo es invariante respecto del conjunto de entradas y
salidas del sistema automatizado. En toda etapa, la relación entre sus entradas y sus
salidas es puramente combinacional, por tanto puede ser representada mediante puertas
lógicas.
10 10 10
Figura 3.2 Representación de una etapa cualquiera, una etapa activa y una etapa inicial con GRAFCET.
Se denomina etapa inicial a aquella en la que arranca el sistema por primera vez (ver
apartado 3.1.2), y gráficamente se suele representar con un cuadrado de línea doble (ver
figura 3.2, etapa situada más a la derecha en la figura).
En un momento concreto y según la evolución del proceso una etapa dada puede estar
activa o inactiva. Teniendo en cuenta que el conjunto de las etapas activas definen la
situación en la que se encuentra el proceso, se puede decir que una etapa está activa
cuando el proceso está realizando la acción que lleva asociada, e inactiva en caso
contrario. Gráficamente la etapa activa se representa como una etapa cualquiera con una
marca distintiva, por ejemplo un punto, dentro del cuadrado que representa la etapa (ver
figura 3.2, etapa situada en el centro de la figura).
100
Diseño e implementación de automatismos
Las TRANSICIONES representan las condiciones lógicas necesarias para que finalice
la actividad de una etapa y se inicie la de la etapa o etapas inmediatamente consecutivas.
Toda transición representa una barrera que asocia al menos dos etapas consecutivas y
cuyo franqueamiento hace posible la evolución del sistema. Por tanto, se dice que una
transición indica la posibilidad de evolución entre etapas, cuando se consuma, al
producirse de esta forma lo que se conoce como el franqueo de la transición. El
franqueo de una transición provoca el paso del proceso desde una situación dada a otra
distinta, la cual vendrá descrita por la nueva etapa (o etapas) que se activa al franquear
la transición.
En la figura 3.3 se muestran las dos formas descritas para representar una transición. En
ambos casos la transición entre las etapas 10 y 11 del GRAFCET, que ha sido
identificada mediante la etiqueta “(1)”.
10 10
(1) (1)
11 11
Una transición puede estar validada o no validada. Se dice que lo está cuando todas las
etapas inmediatamente anteriores a esta transición están activadas.
Las condiciones lógicas asociadas a las distintas transiciones del GRAFCET se obtienen
por combinación de unas variables denominadas receptividades. Estas variables son
proposiciones lógicas que pueden ser verdaderas o falsas, y son función de las entradas
y de las variables internas del proceso. Gráficamente las receptividades suelen ir escritas
de forma literal, o simbólica, a la derecha del símbolo de la transición. Ahora bien, si
van en forma simbólica será necesaria una tabla de correspondencia entre los símbolos
del grafo funcional y las condiciones asociadas a las transiciones. Si no hay condición
asociada a una transición dada, se dice que la receptividad es verdadera siempre, y se
suele representar con un –1, o sin ningún símbolo.
101
Diseño e implementación de automatismos
10 11
Tn
12 13
Gráficamente una macroetapa se representará tal y como se muestra en la figura 3.5 (el
diagrama tiene representadas las etapas 6 y 7 del GRAFCET y la macroetapa M1),
teniendo en cuenta que todo diagrama descrito por una macroetapa comenzará y
finalizará en una etapa y nunca en una transición.
102
Diseño e implementación de automatismos
T6
M1
T7
2. En una etapa hay dos estados posibles: etapa activa o etapa inactiva. Si la
variable de estado de la etapa vale 1 se dice que está activa y si vale 0 que está
inactiva (ver figura 3.6).
5. En una ejecución normal del proceso una etapa no inicial se activa cuando la
etapa anterior esté activada y se cumplan las condiciones lógicas de la transición
existente entre ambas.
103
Diseño e implementación de automatismos
Inactiva 4 4 Inactiva
Franqueada T1 T1 Franqueada
Activa 5 5 Inactiva
Validada T2 T2 Franqueada
Activable 6 6 Activa
No validada T3 T3 Validada
7. Una transición puede estar en cuatro posibles situaciones (ver figura 3.6):
11. Al franquear una transición se desactivan de forma inmediata todas las etapas
inmediatamente anteriores.
104
Diseño e implementación de automatismos
Como es sabido, las tres funciones lógicas básicas en función de las cuales se puede
implementar cualquier circuito combinacional son las puertas: <<Y>>, <<O>> y
<<NO>>. Pues bien, debido al paralelismo que existe entre los circuitos secuenciales y
el tipo de procesos que se pueden implementar en el GRAFCET, es posible representar
todos ellos utilizando sólo estructuras de este tipo. Por ello, las estructuras básicas a
implementar en GRAFCET se pueden resumir en las siguientes:
• Convergencia en <<O>>.
• Divergencia en <<O>>.
• Convergencia en <<Y>>.
• Divergencia en <<Y>>.
• En cada tramo lineal sólo una etapa debe estar activa en un momento
determinado, lo contrario establecería una incoherencia en el diseño del diagrama.
105
Diseño e implementación de automatismos
Dependiendo del proceso es posible que sea necesario realizar dos o más secuencias
lineales en paralelo. En un diseño con GRAFCET esto es posible combinando diversas
secuencias lineales, tal y como se muestra en la siguiente figura 3.7. De esta forma se
produce una activación de secuencias simultáneas, aunque las evoluciones de las etapas
activas en cada una de las secuencias son independientes.
4 7
T1 T3
5 8
T2 T4
6 9
106
Diseño e implementación de automatismos
8 9
T8 T9
10
En la figura 3.8 para poder activar la etapa 10, debe estar activa la etapa 8 y cumplirse
la condición lógica de la transición T8, o bien, debe estar activa la etapa 9 y cumplirse
la condición lógica de la transición T9, pero nunca deben suceder las dos cosas al
mismo tiempo.
T8 T9
8 9
Debido a que los procesos que se representan en un GRAFCET han de ser cerrados,
siempre que se produzca una divergencia en <<O>> deberá existir una convergencia en
<<O>> en algún lugar del grafo y a la inversa.
107
Diseño e implementación de automatismos
8 9
T10
10
T7
8 9
Al igual que ocurría con las bifurcaciones en <<O>>, debido a que los procesos que se
representan en un GRAFCET han de ser cerrados, siempre que se produzca una
divergencia en <<Y>> deberá existir una convergencia en <<Y>> en algún lugar del
grafo, y a la inversa.
El salto de etapas permite saltar una o varias etapas de una secuencia dada, por ejemplo,
cuando las acciones a efectuar en estas etapas lleguen a ser inútiles, o no tengan ningún
108
Diseño e implementación de automatismos
4 4
T1 T1
5 5
Ts Ts
T2 T2
6 6
T3 T3
7 7
Salto Bucle
3.1.4 Ejemplos
La etapa E0, que estará activa cuando el carro se encuentre parado en el extremo A y el
botón esté sin pulsar, se desactivará en el momento que se pulse el botón. Esta acción
está representada en el GRAFCET mediante la transición P. Cuando se franquea esta
transición se desactiva la etapa inicial y se activa la siguiente etapa del diagrama, E1.
Por tanto, esta etapa lleva asociada la acción de desplazamiento a la derecha del carro,
que se representa en el diagrama con la acción D. La única forma de salir de la etapa E1
es llegar al punto B, que se representa en el diagrama con la transición B, y que debe
109
Diseño e implementación de automatismos
franquearse para pasar de la etapa E1 a la E2, etapa que lleva asociada la acción de
desplazamiento a la izquierda del carrito, representada con la acción I. Una vez en la
etapa E2 pueden ocurrir dos cosas para salir de ella, que se llegue de nuevo al punto A y
el motor se pare, representado con la transición AP , o que el carrito llegue al punto A y
vuelva otra vez a desplazarse hacia la derecha en dirección al punto B, representado por
la transición AP. En el primer caso, la etapa siguiente a la E2 es la etapa inicial E0 y en
el segundo caso la etapa siguiente a E2 es la etapa E1.
E0
E1 D
E2 I
AP AP
Si recuperamos el ejemplo de los “carros que van y vienen por raíles diferentes”,
representado en la figura 1.9 pero suponemos que sólo están sincronizados en el
extremo izquierdo como consecuencia del botón. La descripción con la metodología
GRAFCET nos lleva al diagrama de la figura 3.14, donde se ha supuesto que el carrito 1
puede moverse entre los puntos A1 y B1 en ambos sentidos, y el carrito 2 entre dos
puntos A2 y B2. Cuando un carrito se mueve hacia la derecha significa que se desplaza
desde Ai hacia Bi y cuando se mueve hacia la izquierda, entonces se traslada desde Bi
hacia Ai. La etapa inicial E0, representa que ambos carros están parados en los
respectivos extremos A1 y A2, mientras que las demás etapas representan estados
individuales de cada uno de los carros. E1 y E3 representan los dos estados en
movimiento del carro 1, E5 el estado de llegada al extremo A1 del carro 1. E2, E4 y E6
representan los dos estados similares del carro 2.
110
Diseño e implementación de automatismos
E0
E1 D1 E2 D2
B1 B2
E3 I1 E4 I2
A1 A2
E5 E6
A1 A2 P A1 A2 P
Figura 3.14 Diagrama GRAFCET de los carros que van y vienen sincronizados en el extremo izquierdo.
Igual que ocurría en el ejemplo anterior, la única forma de salir de estas dos etapas es
que el carrito1 llegue al punto B1 y comience a desplazarse hacia la izquierda en
dirección a A1 y que el carrito2 llegue al punto B2 y comience a desplazarse hacia la
izquierda en dirección a A2. La llegada al punto B1 del primer carrito se representa con
la transición B1 y la llegada al punto B2 del segundo carrito se representa con la
transición B2. La transición B1 se activará para que el primer carrito pase de la etapa E1
a la etapa E3 y la transición B2 para que el segundo carrito pase de la etapa E2 a la
etapa E4. Ambas etapas llevan asociadas la acción de desplazamiento del carrito
correspondiente hacia la izquierda, lo que para el primer carrito lo representamos como
la acción I1 y para el segundo como la acción I2.
Igual que ocurría en el ejemplo de un solo carrito, una vez situados en este tipo de
etapas pueden ocurrir dos cosas para salir de ellas, que se llegue de nuevo al
correspondiente punto A y el motor se pare, o que se llegue a ese mismo punto pero que
el motor no se pare. La problemática con la que nos encontramos ahora, que no existía
en el anterior ejemplo, es que como los puntos de retorno son los mismos para ambos
carritos, se necesita diseñar una estructura de convergencia en <<Y>> para poder
111
Diseño e implementación de automatismos
Una vez realizado el GRAFCET del proceso que se desea controlar, el paso siguiente
consiste en obtener las condiciones de activación de las distintas etapas que lo
componen y de las acciones asociadas a esas etapas, es decir, llevar a cabo lo que se
conoce como la implementación del GRAFCET. Con este propósito se realiza un
proceso de normalización del GRAFCET, en el cual se irán obteniendo a partir del grafo
las condiciones booleanas de activación de cada una de sus etapas y de las acciones que
en ellas se realizan. Para obtener estas condiciones de activación se han de tener en
cuenta dos premisas:
112
Diseño e implementación de automatismos
T4
E3
AND
4 T4 MEMORIA E4
E5 OR
AND T5
Entradas Salida
activación E4
Memoria AND
Binaria 5 T5 MEMORIA E5
E6 OR
OR
Entradas T6
desactivación
T4
E5
AND
6 T6 MEMORIA E6
E7 OR
T7
Q t + ∆t = S + R Q t Q t + ∆t = R (S + Q t )
113
Diseño e implementación de automatismos
En-1
Tn-1
En
Tn
En+1
S = E n−1Tn−1 R = E n+1
Por lo que la ecuación de conexión y desconexión entre etapas para este diagrama
podría expresarse de cualquiera de las dos siguientes maneras:
En En - 1 En - 2
Tn - 1 Tn - 2
Tn + 1 Tn + 2
En + 1 En + 2
En
Las ecuaciones de conexión que representan estas cuatro estructuras lógicas siguiendo
el mismo criterio que antes, son las siguientes:
114
Diseño e implementación de automatismos
E n = E n−1Tn−1 + En+1En+ 2E n
S = E n−1Tn−1 R = E n+1 E n+ 2
En En - 1 En - 2
Tn
Tn-1
En + 1 En + 2 En
115
Diseño e implementación de automatismos
El término Ci en una ecuación de conexión / desconexión de una etapa dada implica que
dicha etapa es una etapa inicial del diagrama GRAFCET, lo que significa que el
momento de la inicialización el resto de las etapas del diagrama se encuentran
desactivadas y que la etapa en cuestión es activada por un agente externo y no por una
transición ocurrida entre etapas.
3.2.3 Ejemplos
Ejemplo 3.2.3.1: Se pide analizar las funciones lógicas de cada una de las etapas y
acciones que se presentan en el diagrama GRAFCET de la figura 3.19.
E0
E1 L
El GRAFCET de la figura 3.19 tiene dos etapas E0 y E1, y una acción asociada a la
etapa E1, representada con una L. La etapa E0 representa la etapa inicial del diagrama,
que debe poder ser activada de forma externa, aunque en el caso concreto del ejemplo el
diagrama representa un bucle que permite volver a la etapa E0 cuando estando activada
la etapa E1 se franquea la transición B. Todo esto debe tenerse en cuenta a la hora de
establecer la función lógica que representa la etapa en cuestión. La etapa E1 es una
etapa sencilla, que se encuentra en una estructura lineal del diagrama GRAFCET por lo
que su función lógica dependerá, tal y como se ha visto en la parte teórica, de cómo
están en un momento determinado de la evolución del diagrama sus etapas
inmediatamente anterior y posterior. En cuanto a la acción L se activa cuando lo hace la
etapa E1, por lo que su función lógica será muy sencilla.
Teniendo presente lo dicho las funciones lógicas de E0, E1 y L son las que se muestran
a continuación:
116
Diseño e implementación de automatismos
E0 = E1 B + E1 E0 + ∑E
∀n
n = E1 B + E1 E0 + E0 + E1
E1 = E0 A + E0 E1 L = E1
Ejemplo 3.2.3.2: Se pide analizar las funciones lógicas de cada una de las etapas y
acciones que se presentan en el diagrama GRAFCET de la figura 3.13.
E 0 = E 2 A P + E1 E 0 + ∑E
∀n
n = E 2 A P + E1 E 0 + E 0 + E1 + E 2
E1 = E 0 P + E 2 AP + E 2 E1 E 2 = E1 B + E0 E1 E 2
D = E1 I = E2
En este ejemplo se puede ver como la función lógica de la etapa E0 viene representada
por la función lógica una etapa inicial típica. La función lógica de la etapa E1 viene
representada por la función lógica de una estructura de convergencia en <<O>>. Y la
función lógica de la etapa E2 viene representada por la función lógica de una estructura
de divergencia en <<O>>.
Ejemplo 3.2.3.3: Se pide analizar las funciones lógicas de cada una de las etapas y
acciones que se presentan en el diagrama GRAFCET de la figura 3.14.
Las funciones lógicas asociadas a cada etapa, así como las funciones lógicas de las
acciones asociadas se muestran a continuación:
E0 = E5E6 A1 A2 P + ( E1 + E2 ) E0 + ∑E
∀n
n = E5E6 A1 A2 P + ( E1 + E2 ) E0 + E0 + E1 + E2 + E3 + E4 + E5 + E6
E3 = E1 B1 + E5 E3 E4 = E2 B2 + E6 E4
E5 = E3 A1 + E0 (E1 + E2 ) E5 E6 = E4 A2 + E0 (E1 + E2 ) E6
D1 = E1 D2 = E 2 I1 = E3 I2 = E4
Al igual que en el ejemplo anterior, la etapa inicial viene representada por E0. En esta
etapa es donde comienza a funcionar el diagrama GRAFCET, pero también se regresa a
ella cuando finaliza el movimiento de los dos carros, de modo que es posible inicializar
de nuevo el funcionamiento del mismo. Cuando se activa la transición P, es decir, se
ponen en funcionamiento los dos carros, se desactiva la etapa E0 y se activan de forma
117
Diseño e implementación de automatismos
Del camino relativo al carro1 se deduce que para activar la etapa E3 es necesario
franquear la transición B1 y desactivar la etapa E1. Del mismo modo, el camino del
carrito2 la activación de la etapa E4 conlleva franquear la transición B2 y desactivar la
etapa E2. La activación de las etapas E3 y E4 lleva asociada la ejecución de las acciones
I1 e I2.
Una vez activadas las etapas E5 y E6 para proseguir existen dos caminos. O bien se
activa la transición A1A2P y se regresa al punto del diagrama donde está la estructura
de divergencia en <<Y>> antes comentada, o bien, se activa la transición A1 A 2 P y se
regresa a la etapa inicial.
118
Diseño e implementación de automatismos
Algunas de las complicaciones más significativas que suelen presentar los problemas de
automatización, y que se suelen identificar fácilmente con las distintas partes a diseñar
en las que se va a descomponer el sistema inicial, son entre otras las que se enumeran a
continuación:
Cada una de estas partes será comentadas con un mayor detalle en apartados posteriores,
donde se pondrá de manifiesto las causas más significativas por las cuales es necesario y
útil, la estructuración de un problema de cara a obtener la mejor solución para él.
Se define como modos de marcha a los distintos modos de funcionamientos en los que
pueden operar los sistemas automatizados, los cuales fundamentalmente se pueden
agrupar en tres:
119
Diseño e implementación de automatismos
M o d o s d e M a rc h a
M a rc h a s a u to m á tic a s M a rc h a s d e
In te rv e n c ió n
F u n c io n a m ie n to F u n c io n a m ie n to
se m ia u to m á tic o a u to m á tic o
A continuación vamos a pasar a describir con más detalle los dos tipos de
funcionamiento en los que se subdividen los clasificados como modos de marcha
automáticos, y que se pueden ver reflejados en el esquema de la figura 3.20.
• Funcionamiento ciclo a ciclo, que implica que en cada ejecución del ciclo de
funcionamiento del proceso se evalúa si está activado el arranque del ciclo (en la
figura 3.21 se representa mediante la transición AC) y si las condiciones iniciales
del mismo (en la figura 3.21 se representa mediante la transición Ci) son
adecuadas para comenzar dicha ejecución. Este tipo de funcionamiento se engloba
en lo que anteriormente llamamos modo de marcha uno a uno, en el cual era
necesaria la autorización de puesta en marcha inicial del proceso por parte del
operador (es decir, en la figura 3.21 franquear las transiciones AC y Ci), cada vez
que se ejecuta un nuevo ciclo en dicho proceso. La representación del
funcionamiento se muestra en la figura 3.21.
120
Diseño e implementación de automatismos
AC-Ci
FIN
• Funcionamiento ciclo único, que implica que el proceso sólo se ejecutará una vez
debido a que la condición de repetición del ciclo es la contraria a la que lo activa
(ver figura 3.22). En la representación de la figura 3.22 se debe tener en cuenta
que la transición AC es la inversa de la transición AC.
AC-Ci
FIN
AC
121
Diseño e implementación de automatismos
Ci-E20
10 parada
AC-pciclo
MARCHA
20
AUTOMÁTICA
pciclo
FIN
122
Diseño e implementación de automatismos
AC - Ci
FIN- AUTO
3.3.3 Seguridad
Se define como seguridad la ausencia de peligro tanto para personas como para
instalaciones. Para conseguir alcanzar unas condiciones de seguridad adecuadas es
necesario hacer reaccionar al automatismo de forma conveniente ante posibles fallos, o
defectos, en algunos de sus componentes, teniendo en cuenta que estos objetivos de
seguridad no se consiguen asegurando la fiabilidad, o distintas probabilidades de
funcionamiento del proceso, o la disponibilidad o ausencia de paradas existentes en el
mismo.
Son aspectos básicos a tener en cuenta para alcanzar unos objetivos de seguridad
analizar los posibles riesgos que éste puede correr, especificando la probabilidad y la
gravedad de estos riesgos, así como tener siempre presente el cumplimiento de la
normativa legal dentro del tipo de proceso del cual se desea asegurar su funcionamiento.
123
Diseño e implementación de automatismos
ALARMAS
LOCALES GENERALES
A AZ
BZ BZ
A AZ
En cuanto a las emergencias, se pueden establecer de dos tipos, con secuencia o sin
secuencia:
124
Diseño e implementación de automatismos
• Modo de marcha.
• Seguridad.
• Producción.
Existen distintos tipos de órdenes de forzado que pueden clasificarse en las siguientes:
• Forzado por impulso. De esta forma se considera el forzado como una acción
impulsional que activará la, o las, etapas forzadas por el diagrama GRAFCET
principal. El GRAFCET forzado evolucionará mientras esté activa la etapa del
diagrama GRAFCET principal que lo forzó. Su representación gráfica es tal como
la que se muestra en la figura 3.26.
125
Diseño e implementación de automatismos
F/GF:{0}*
• Forzado por nivel. De esta forma se considera el forzado como una acción de
nivel que se mantendrá activa siempre que la etapa correspondiente al diagrama
GRAFCET principal lo esté. Por lo tanto, el GRAFCET forzado no evolucionará
hasta que deje de ser forzado. Su representación gráfica es tal como la que se
muestra en la figura 3.27.
F/GF:{0}
Existen distintas reglas de evolución del forzado, que son de utilidad para llevar a cabo
su implementación en un diagrama GRAFCET dado. A continuación se comentan las
más significativas:
• El forzado es una orden interna, distinta de las salidas del diagrama GRAFCET,
consecuencia de la evolución del proceso. Por lo tanto, los diagramas GRAFCET
forzados han de alcanzar de forma inmediata las situaciones impuestas por el
propio diagrama.
Existen también una serie de características que sirven para identificar una orden de
forzado, las cuales se comentan a continuación:
126
Diseño e implementación de automatismos
diagrama GRAFCET parcial sólo puede ser forzado por un único diagrama
GRAFCET parcial.
E5 = E5 E6 + E 6 P + ∑E
∀n
n E0 = (E0 E1 + E1 Y) E 6 + E 6
E 6 = E 6 E5 + E5P E1 = (E1 E0 + E0 X) E 6
E5 E0
P X
E6 F/GF:{0}* E1 LUZ
P Y
Si el forzado es por nivel, usando el mismo ejemplo que para el anterior, todo es muy
similar, lo único que en el diagrama forzado, la etapa E0 de este diagrama debe ser una
etapa inicial. Atendiendo a las ecuaciones, la diferencia más significativa entre ambos es
127
Diseño e implementación de automatismos
E 5 = E5 E6 + E 6 P + ∑E
∀n
n E 0 = (E 0 E1 + E1 Y + ∑E
∀n
n ) E6 + E6
E 6 = E 6 E5 + E 5 P E1 = (E1 E0 + E 0 X) E 6
E5 E0
P X
E6 F/GF:{0} E1 LUZ
P Y
128
Diseño e implementación de automatismos
EJERCICIO 3.1
El comportamiento de la lámpara se puede modelar con dos etapas que nos indiquen
cuando la lámpara en cuestión se encuentra encendida o apagada, según el siguiente
diagrama GRAFCET (ver figura 3.30).
E0
E1 L
Las ecuaciones lógicas asociadas al diagrama GRAFCET de la figura 3.30 son las
siguientes:
_
E 0 = E1 I + E1 E 0 + ∑E
∀n
n E1 = E 0 I + E0 E1
L = E1
Siguiendo las reglas comentadas a lo largo del capítulo, la ecuación lógica de toda etapa
función de su condición de activación (etapa precedente y transición que se debe activar
129
Diseño e implementación de automatismos
Se puede observar que de las ecuaciones lógicas se concluye que la etapa E0 se activa,
es decir, la lámpara estará en su posición de apagado cuando se comience a operar con
el sistema, puesto que es la etapa inicial (tercer término de la ecuación), o cuando
estando encendida previamente se pulse el interruptor en la dirección de apagado
(primer término de la ecuación). La ecuación de la etapa E1, que representa la lámpara
encendida estará activa cuando habiendo estado la lámpara previamente apagada se
pulse el interruptor en la dirección de apagado y se garantice que la lámpara está
apagada.
EJERCICIO 3.2
E2
E0
C I
E1 L
C I
130
Diseño e implementación de automatismos
Por otro lado en cualquier momento el sistema podría ser desconectado y regresar por
tanto a la etapa inicial de espera de conexión E2. Para representar este comportamiento,
a la salida de las etapas E0 y E1 de apagado y encendido de la lámpara se debe
incorporar la posibilidad de continuar por el camino que teníamos reflejado en el
GRAFCET de la figura 3.30, o bien, regresar a la etapa inicial E2, franqueando para ello
la transición C , que representa la desconexión del sistema. Esta configuración incorpora
a la salida de estas dos etapas una estructura de divergencia en <<O>>, lo que implica la
necesidad de dos estructuras de convergencia en <<O>> en el diagrama para que éste
quede cerrado. Dichas estructuras, tal y como se muestra en la figura se dan a la entrada
de las etapas E2 y E0, respectivamente.
Las condiciones lógicas para cada etapa y acción del diagrama GRAFCET de la figura
3.31 son las siguientes:
_
E 0 = E 2C + E1 I + E1 E 2 E 0 E1 = E 0 I + E0 E 2 E1
__ __
E 2 = E 0 C + E1 C + E0 E 2 + ∑E
∀n
n
L = E1
Las condiciones lógicas de cada una de las etapas tienen las mismas dependencias que
hemos comentado en el ejercicio 3.1, tan sólo considerar que la etapa E0 se ve afectada
a la entrada por una estructura de convergencia en <<O>> y a la salida por otra de
divergencia en <<O>>. La etapa E1 se ve afectada a la salida por una estructura de
divergencia en <<O>> y la etapa E2 representa la etapa inicial y a su entrada se ve
afectada por una estructura de convergencia en <<O>>. Todas estas estructuras se han
reflejado en las ecuaciones lógicas que describen cada una de las etapas del diagrama
GRAFCET mostrado en la figura 3.31.
Se puede observar que de las ecuaciones lógicas se concluye que la etapa E0 se activa,
es decir, la lámpara estará en su posición de apagado cuando se conecte el sistema y,
una vez conectado cuando estando encendida previamente se pulse el interruptor en la
dirección de apagado. En todo momento el hecho de que la lámpara esté apagada debe
garantizar que no está encendida y que el sistema está conectado y funcionando. La
ecuación de la etapa E1, que representa la lámpara encendida estará activa cuando
habiendo estado la lámpara previamente apagada se pulse el interruptor en la dirección
de apagado y se garantice que la lámpara está apagada y que el sistema está conectando
y funcionando adecuadamente. La última etapa, etapa E2 que representa la desconexión
del sistema estará activa cuando se pide la desconexión del mismo desde cualquiera de
131
Diseño e implementación de automatismos
las otras dos etapas, cuando comience a funcionar el diagrama dado que es la etapa
inicial y al igual que ocurría en las otras etapas, el estar en esta situación significa que la
lámpara está desconectada es decir ni en posición de apagado ni en posición de
encendido.
EJERCICIO 3.3
El comportamiento del sistema que queremos es muy similar al del ejercicio anterior. El
sistema necesita tres etapas que son: verde – ámbar – rojo. Cada una de ellas provoca
una acción que es la de colorear la luz del semáforo con el color adecuado. De nuevo el
diagrama GRAFCET solución de este problema tendrá una relación directa con la RdP
que se ha dado como solución para este mismo problema en el tema 2 (ver figura 2.19).
V
E0 CV
TV
A
E1
CA
TA
R
E2
CR
TR
De esta forma, el GRAFCET (ver figura 3.32) comenzará en la etapa E0 que representa
el verde del semáforo (y por lo tanto lleva consigo la acción V) y permanece en esa
etapa, hasta que se cumple el tiempo que debe permanecer el semáforo en verde. La
etapa lleva asociada un contador cuya función es establecer el tiempo que el semáforo
debe permanecer en ella. De este modo la primera etapa del GRAFCET lleva asociadas
dos acciones la (V) que hace que el color del semáforo sea verde y la (CV) que pone en
marcha el contador del tiempo que debe permanecer en esa etapa. Cuando se cumple el
tiempo que el semáforo debe estar en verde se franquea la transición TV, el semáforo
cambia a ámbar, se activa la etapa E1 del GRAFCET y se desactiva la E0. La etapa E1
representa el semáforo en ámbar y realiza igual que la anterior dos acciones. Una
primera acción A que lo que hace es poner la luz del semáforo en ámbar y una segunda
132
Diseño e implementación de automatismos
Las ecuaciones lógicas asociadas al diagrama GRAFCET de la figura 3.32 son las
siguientes:
E 0 = E 2 TR + E1 E 0 + ∑E
∀n
n E1 = E 0 TV + E 2 E1
E 2 = E1 TA + E 0 E 2
V = E0 A = E1 R = E2
CV = E 0 CA = E1 CR = E 2
De las ecuaciones se puede interpretar que el semáforo estará en verde (etapa E0)
cuando comience a funcionar el diagrama (etapa inicial del mismo) o después de haber
permanecido en rojo el tiempo correspondiente a ese color. Del mismo modo se debe
garantizar que mientras está en verde no se pasa al siguiente color que representa el
ámbar. En cuanto a la permanencia del semáforo en ámbar (etapa E1) se produce
después de haber permanecido en verde el tiempo correspondiente a ese color, y del
mismo modo que antes se debe garantizar que mientras está en ámbar no se pasa al
siguiente color que representa el rojo. Por último, en cuanto a la permanencia del
semáforo en rojo (etapa E2) se produce después de haber permanecido en ámbar el
tiempo correspondiente a ese color, y del mismo modo que antes se debe garantizar que
mientras está en rojo no se pasa al siguiente color que representa el verde.
EJERCICIO 3.4
133
Diseño e implementación de automatismos
etapas del ciclo de colores del segundo semáforo con E5, E6 y E7 En ambos las
secuencias son verde-ámbar-rojo.
Se debe considerar que en un cruce real durante un periodo de tiempo breve los dos
semáforos estarán en rojo al mismo tiempo para no permitir un choque entre los coches
que están cruzándose. La estructura del GRAFCET solución de este ejercicio (ver figura
3.33) es muy similar a la RdP mostrada como solución de este mismo ejercicio en el
tema 2 (ver figura 2.21), por lo que se necesita una etapa de permanencia en rojo para el
segundo semáforo cuando el primero realiza el ciclo de colores (etapa representada en el
diagrama por E3) y otra etapa de permanencia en rojo del primer semáforo para cuando
el segundo realiza el ciclo de colores (etapa representada en el diagrama por E4).
La primera vez que se da esta situación en el cruce es cuando el primer semáforo acaba
de realizar su ciclo de colores y el segundo está en rojo. En este momento los dos
semáforos están en rojo y transcurrido el tiempo de permanencia del primer semáforo en
rojo, se valida la transición TR (permanencia en rojo de un semáforo), pero en lugar de
poner de nuevo el primer semáforo en verde como ocurría en el ejercicio anterior, se
deja en rojo y se activa el ciclo de colores del semáforo 2. De cara a la construcción del
diagrama esto conlleva a colocar en la transición TR una estructura de convergencia en
<<Y>> y una estructura de divergencia en <<Y>>.
La parte inferior del GRAFCET de la figura 3.33 se comporta igual que la superior, sólo
que ahora el ciclo de colores en el semáforo se da en el segundo semáforo y la
permanencia en rojo es para el primer semáforo. Para cerrar el diagrama de nuevo hay
una estructura de convergencia en <<Y>> y otra de divergencia en <<Y>> entorno a la
transición TR, que regresan el GRAFCET a su posición inicial.
134
Diseño e implementación de automatismos
V1 R2
E0 CV E3
TV
A1
E1
CA
TA
R1
E2
CR
TR
V2
R1 E5
E4 CV
CA
A2
E6
CA
CR
R2
E7
CR
TR
Las ecuaciones lógicas asociadas al GRAFCET de la figura 3.33 son las siguientes:
135
Diseño e implementación de automatismos
E 0 = E 4 E 7 TR + E1 E 0 + ∑E
∀n
n E1 = E 0 TV + E 2 E1
E 2 = E1 TA + ( E 4 + E 5 ) E 2 E 3 = E 4 E 7 TR + ( E 4 + E5 ) E 3 + ∑E
∀n
n
E 4 = E 2 E 3 TR + ( E 0 + E3 ) E 4 E 5 = E 2 E 3 TR + E 6 E 5
E 6 = E 5 TV + E 7 E 6 E 7 = E 6 TA + ( E 0 + E3 ) E 7
V1 = E 0 A1 = E1 R 1 = E2 + E4 V2 = E 5 A2 = E 6 R2 = E 7 + E 3
CV = E 0 + E 5 CA = E1 + E 6 CR = E 2 + E 7
Las ecuaciones relativas a E4, E5, y E6 tienen la misma interpretación que las de E0, E1
y E2 pero referidas al segundo semáforo.
EJERCICIO 3.5
136
Diseño e implementación de automatismos
E0 E1
CS
E2 S
E3 C
PB
E4 E5
E5
CB
E6 B
PC
E7 C
PS
137
Diseño e implementación de automatismos
E 0 = E 7 PS + E 2 E 0 + ∑E
∀n
n E1 = E 2 E1 + ∑E
∀n
n
E 2 = E 0 E1 CS + E3 E 2 E3 = E 2 T + E4 E3
E 4 = E 3 PB + E 6 E 4 E 5 = E6 E 5 + ∑E
∀n
n
E 6 = E 4 E 5 CB + E 7 E 6 E 7 = E 6 PC + E 0 E 7
S = E2 C = E3 + E7 B = E6
138
Diseño e implementación de automatismos
EJERCICIO 3.6
El diagrama GRAFCET que se muestra en la figura 3.35 realiza las siguientes acciones.
Se consideran dos etapas iniciales que son E0 y E1. La primera representa el
procesamiento por parte de M1 de una pieza de tipo a (por tanto esta etapa lleva
asociada la acción M1_a), y la segunda el posicionamiento por parte del palet C1 en la
parte superior, esperando a transportar una pieza de tipo a desde M1 a M2 (por tanto
esta etapa lleva asociada la acción C1_S). Cuando M1 finaliza el proceso de la pieza de
tipo a y siempre y cuando C1 esté a la espera para transportar esa pieza, se franquea la
transición M1a_TC1a. Esta transición representa exactamente el fin del procesamiento
de una pieza del tipo a por parte de M1 y el transporte desde M1 a M2 de esa pieza por
parte del palet C1. El franqueo de esta transición conlleva desactivar las etapas E0 y E1
y activar las etapas E2 y E3. La etapa E2 representa el procesamiento por parte de M1
de una pieza de tipo b (por tanto esta etapa lleva asociada la acción M1_b), y la etapa
E3 el posicionamiento por parte del palet C1 en la parte inferior, esperando a poder
cargar la pieza a transportada en la máquina M2 para su procesamiento (esta etapa lleva
asociada la acción C1_Ia).
Para poder continuar procesando, mientras M1 esté procesando una pieza de tipo b
(etapa E2 activa), el palet C2 debe colocarse en posición superior a la espera de poder
transportar esa pieza cuando finalice su proceso por parte de M1. Esto se representa en
el diagrama mediante la etapa E4, que lleva asociada la acción C2_S. Cuando tanto E2
como E4 están activas es el momento de franquear la transición M1b_TC2b, una vez
139
Diseño e implementación de automatismos
En la otra rama del diagrama, teníamos el palet C1 en la posición inferior con una pieza
de tipo a, a la espera de ser procesada por la máquina M2 (etapa E3 activa tras el
franqueo de M1a_TC1a). Por tanto, para poder llevar acabo este proceso se necesita de
una nueva etapa E5, que represente el procesamiento en M2 de una pieza del tipo b (esta
etapa llevará asociada la acción M2_b), que cuando finalice y libere esta pieza pasará a
procesar la pieza de tipo a que tiene el palet C1. Cuando tanto E3 como E5 están activas
es el momento de franquear la transición M2b_TC1, una vez que M2 finalice con el
proceso de la pieza de tipo b que la ocupa. El franqueo de dicha transición conlleva la
desactivación de esas dos etapas, el comienzo del procesamiento de una pieza de tipo a
por parte de M2 (etapa E7 que lleva asociada la acción M2_a) y el regreso de C1 a la
posición superior pero sin pieza, es decir, vacío (activación de nuevo de la etapa E1).
M1_a E0 E1 C1_S
M1a_TC1a
M1b_TC2b M2b_TC1
C2_Ib E6 E7 M2_a
M2a_TC2
140
Diseño e implementación de automatismos
Por último cuando las etapas E6 y E7 están activas, significa que M2 está procesando
una pieza de tipo a que ya ha sido procesada por M1 y que el palet C2 está cargado con
una pieza de tipo b que espera ser procesada por M2 pero que ya lo ha sido por M1.
Cuando M2 finaliza el procesamiento de la pieza de tipo a que la mantiene ocupada es
el momento de franquear la transición M2a_TC2, que representa el fin del
procesamiento de M2 de la pieza de tipo a, la carga de la pieza de tipo b a la espera en
M2 y el transporte de C2 hacia la posición superior pero ahora sin pieza alguna. Por
tanto, el franqueo de la transición conlleva la desactivación de las etapas E6 y E7 del
GRAFCET y la activación de nuevo de E4 (palet C2 en posición superior y sin pieza) y
E5 (máquina M2 procesando una pieza de tipo b).
Las ecuaciones asociadas a las etapas y acciones del GRAFCET de la figura 3.35 se
muestran a continuación:
E 0 = E 6 E 7 M2a_TC2 + (E 2 + E3 ) E 0 + ∑E
∀n
n
E1 = E 6 E 7 M2a_TC2 + (E 2 + E3 ) E1 + ∑E
∀n
n
E 2 = E 0 E1 M1a_TC1a + (E 0 + E 6 ) E 2
E 3 = E 0 E1 M1a_TC1a + (E1 + E 7 ) E 3
E 4 = E 6 E 7 M2a_TC2 + (E 0 + E 6 ) E 4 + ∑E
∀n
n
E 5 = E 6 E 7 M2a_TC2 + (E1 + E 7 ) E 5 + ∑E
∀n
n
E 6 = E 2 E 4 M1b_TC2b + (E 4 + E5 ) E 6
E 7 = E 3 E 5 M2b_TC1 + (E 4 + E5 ) E 7
141
Diseño e implementación de automatismos
142
TEMA 4
El formalismo DEVS (Zeigler y col., 2000) es una teoría de sistemas que va más allá
del modelado de sistemas de eventos discretos, considera que cualquier sistema está en
todo momento en un estado, s ∈ S. Pero que puede cambiar a otro estado s’ ∈ S como
consecuencia de que el tiempo de permanencia en el estado s ya se ha consumido
(cambio de estado que se conoce como transición interna), o como consecuencia de que
se ha producido un evento (cambio de estado que se conoce como transición externa).
También considera que el sistema recibe información de su entorno o de otros sistemas
a través de sus entradas, en forma de eventos. Mientras que genera información para su
entorno o eventos para otros sistemas a través de sus salidas. La llegada de eventos
puede ocurrir en cualquier instante de tiempo, mientras que la generación de salidas sólo
se produce como consecuencia de haber agotado el tiempo de permanencia en un
estado.
143
Formalismo DEVS (Discrete EVents dynamic Systems)
144
Formalismo DEVS (Discrete EVents dynamic Systems)
x2
Eventos de
entrada
x1
t1 t2 t
s4
s7
s2
s5
Variable de
estado s1 s6
s3 s8
Tiempo
transcurrido
Eventos de y7
salida ta(s7)
ta(s1) y2 y5 e6
ta(s5)
ta(s2) y3 e4
y1 ta(s3)
Por facilitar el ejemplo se han considerado los ocho estados tabulados mediante valores
reales, como muestra la tabla 4.1, con los correspondientes tiempos de permanencia y
una función de salida igual a la identidad, de manera que el sistema genera como evento
de salida el valor real asociado al estado en el que estaba anteriormente. Además se ha
considerado que todas las transiciones ya sean internas o externas son cíclicas, de
manera que del estado s1 siempre se pasa al s2 y así sucesivamente, hasta el estado s8
que se utiliza para volver al estado s1.
145
Formalismo DEVS (Discrete EVents dynamic Systems)
s2 s3
s1 s4
s8 s5
s7 s6
En la figura 4.3 se muestran las cinco transiciones internas y las dos transiciones
externas que se han disparado en el modelo en las condiciones presentadas por el
cronograma de la figura 4.1. En color gris se ha marcado el estado inicial s1.
s2 s3
s1 s4
s8 s5
s7 s6
Figura 4.3 Transiciones de estados que han ocurrido en el cronograma de la figura 4.1.
146
Formalismo DEVS (Discrete EVents dynamic Systems)
En todos los modelos programados en ARENA, véanse los ejercicios del Anexo, se ha
utilizado al menos un bloque del tipo Create encargado de generar los eventos externos
(llegada de entidades) que nos permite analizar el comportamiento del sistema que se
está modelando. Por tanto ese bloque, denominado Generador en la mayoría de los
modelos, juega un papel auxiliar pero muy importante. A continuación vamos a ver que
un generador de eventos es en sí mismo un sistema de eventos discretos y que se puede
modelar con el formalismo DEVS.
activo
El intervalo de tiempo entre las transiciones puede tener un valor fijo, el periodo del
generador, y tendríamos así un generador de eventos periódico. Pero también puede
variable, por ejemplo siguiendo una determinada distribución estadística, si queremos
que la generación de eventos sea aleatoria (aperiódica).
147
Formalismo DEVS (Discrete EVents dynamic Systems)
Tiempo
transcurrido
periodo
Salida
amplitud
El bloque generador así definido se puede modelar con una variable de estado, de
nombre “estado”, y dos parámetros, su periodo y la amplitud (el valor) del evento de
salida, de ahí que lo representemos como muestra la figura 4.6.
Generador periódico
salida
estado
periodo amplitud
De acuerdo con el formalismo DEVS, una posible descripción del bloque generador de
eventos periódico podría ser la siguiente.
148
Formalismo DEVS (Discrete EVents dynamic Systems)
En este modelo formal, que tendrá que ser interpretado por el correspondiente lenguaje
de simulación, se han distinguido varias partes bien diferenciadas:
• El nombre del bloque
• El número y tipo de entrada y de salida
• La variable de estado con su único valor posible
• Los parámetros del bloque por su nombre y por su tipo (ambos números reales
positivos)
• El estado en el que se encontrará el generador cuando se arranque la simulación
(estado inicial)
• Las acciones propias de las funciones de transición externa e interna, y las
asignaciones propias de la función de salida y de la función de avance de tiempo.
También se han incluido una serie de comentarios para facilitar la comprensión del
modelo. Por el contrario, algo bastante normal en el formalismo DEVS, no se ha
incluido nada respecto a cómo avanza el tiempo en la simulación puesto que el avance
del tiempo dependerá de la secuencia de eventos que tengan lugar.
Una variante del bloque generador periódico es el bloque, representado en la figura 4.7,
con una sola entrada pero con una doble función; poner al generador en marcha si
estaba parado y pararlo si estaba generando señal. En ese caso sí que es obligatorio
considerar dos valores “parado” y “activo” para la variable de estado, el primero con
tiempo de permanencia infinito y el segundo con tiempo de permanencia igual al
periodo del generador, y se necesita una función de transición externa que dependiendo
del estado “parado” o “activo” del generador desencadene que esté se ponga a generar
en las mismas condiciones del ejemplo anterior o se detenga hasta recibir una nueva
orden (evento) de puesta en marcha. La figura 4.8 muestra su grafo reducido, con las
dos transiciones externas y la misma transición interna del generador anterior. La figura
4.9 muestra un cronograma representativo de este tipo de bloque. El generador, que
estaba parado, se ha puesto en marcha en el instante t1 y se ha parado en el instante t2,
como consecuencia de sendos eventos de entrada. Entre esos dos instantes de tiempo el
bloque ha generado los eventos de salida con la misma periodicidad del bloque anterior.
entrada salida
estado
periodo amplitud
parado activo
149
Formalismo DEVS (Discrete EVents dynamic Systems)
Entrada
“activo”
Variable de
estado
“parado” “parado”
t1 t2 t
Tiempo
transcurrido
periodo
Salida
150
Formalismo DEVS (Discrete EVents dynamic Systems)
if estado == “parado”
estado = “activo”
else
estado = “parado”
end
Si estamos pensando en un bloque elemental que recibe entidades por su entrada y las
deja pasar tal cual a su salida (hace la función de transmisor) o como resultado de un
procesamiento (es un procesador). Podemos suponer que el bloque va a introducir un
retraso en la transmisión o va a emplear un tiempo en el procesado y considerar a este
retraso o tiempo de procesamiento como un parámetro del bloque, con la ventaja en ese
caso de considerarlo fijo.
Lo más parecido a este tipo de bloque en ARENA es el bloque Process con la opción
Delay únicamente, que se ha utilizado con diversos fines (para la visualización de
eventos y para garantizar la permanencia del sistema en un estado concreto durante un
tiempo determinado) en los modelos del Anexo. Así por ejemplo se ha utilizado para
representar el tiempo que un carro está moviéndose hacia la derecha o hacia la izquierda
y por tanto se ha trasladado desde un punto a otro, y para representar los distintos
estados “verde”, “ámbar” y “rojo” de un semáforo. Por tanto estamos hablando de un
bloque muy importante en la descripción de sistemas de eventos discretos. A
continuación vamos a ver cómo se puede modelar con el formalismo DEVS un
transmisor o procesador.
En el ejercicio 1.5 del tema 1 ya se propuso el grafo reducido de la figura 4.10 para
describir el comportamiento de un autómata con dos estados, S1=“espera” y
S2=“ocupado”, que arranca en el estado “espera” y cambia al estado “ocupado” cada
vez que recibe un evento externo, permaneciendo en este estado un tiempo fijo después
del cual vuelve al estado “espera”. Este mismo tipo de comportamiento es el que debe
tener un transmisor o procesador, por tanto se puede modelar con el formalismo DEVS
utilizando una función de transición externa que provoca el cambio de “espera” a
“ocupado” por la transmisión o por el procesamiento y una función de transición interna
que provoca el cambio de “ocupado” a “espera”.
espera ocupado
De acuerdo con el formalismo DEVS, un posible modelo del bloque transmisor, con un
pequeño inconveniente que se subsanará más adelante y pensando más en la transmisión
de información (datos) que en la transmisión de entidades, podría ser el siguiente.
151
Formalismo DEVS (Discrete EVents dynamic Systems)
Salida: Transmite el dato (tal como se recibió) a la salida después de haber estado
ocupado el tiempo necesario para su transmisión.
λ (“ocupado”,dato) = dato
if estado == “espera”
estado = “ocupado”
dato = x
end
152
Formalismo DEVS (Discrete EVents dynamic Systems)
La descripción mejorada es pues la siguiente, donde hay que prestar especial atención a
la segunda sentencia de la función de transición externa:
Salida: Transmite el dato (tal como se recibió) a la salida después de haber estado
ocupado el tiempo necesario para su transmisión.
153
Formalismo DEVS (Discrete EVents dynamic Systems)
λ (“ocupado”,sigma,dato) = dato
Transmisor
entrada salida
estado sigma dato
tiempo_transmision
Entrada
Dato no transmitido
t
“ocupado”
estado
“espera”
Tiempo
transcurrido
tiempo_transmision
Salida
t
Figura 4.12 Cronograma de un transmisor, donde se observa el retraso en la transmisión y que uno de los
datos recibidos no se ha transmitido.
154
Formalismo DEVS (Discrete EVents dynamic Systems)
Un posible modelo del bloque procesador sólo diferirá del modelo transmisor en la
función de salida; en lugar de transmitir el dato tal como se recibió, transmitirá el
resultado de operar con él. La operación a realizar por el procesador se podría incluir en
la función de salida o definirla como un parámetro del bloque.
El bloque “almacén expendedor” tiene una entrada “petición” y una salida “entrega”, tal
que la entrega se produce como consecuencia de una petición, siempre y cuando haya
algún elemento en el almacén, y consume un tiempo fijo “tiempo de preparación”.
En la figura 4.13 se muestra el símbolo que servirá para representarlo y en la figura 4.14
se muestra un posible grafo reducido. En el símbolo se observan los dos parámetros
representativos del bloque; la “capacidad” para indicar el número máximo de elementos
que caben en el almacén, y el “tiempo de preparación”, medido como el tiempo medio
que el almacén tarda en localizar y servir el elemento. Otro parámetro podría ser la
política de entrega, aunque en general supondremos que se entrega siempre el elemento
que más tiempo lleva en el almacén.
Almacén expendedor
petición entrega
estado nº elementos elementos sigma elemento
tiempo_preparacion capacidad
155
Formalismo DEVS (Discrete EVents dynamic Systems)
ocupado
espera
0 1 2 3 Elementos en el almacén
Figura 4.14 Grafo reducido de un almacén expendedor.
El bloque “almacén receptor” tiene una entrada “recepción” y un contador interno del
número de elementos en el almacén. Se puede suponer que la colocación de éstos en el
almacén requiere un tiempo fijo “tiempo de colocación”. En la figura 4.15 se muestra el
símbolo que servirá para representarlo y en la figura 4.16 se muestra un posible grafo
reducido. En el símbolo se observan los dos parámetros representativos del bloque; la
“capacidad” que indica el número máximo de elementos que caben en el almacén, y el
“tiempo de colocación”, medido como el tiempo medio que se tarda en localizar un
hueco y depositar el elemento.
Almacén receptor
recepción
estado nº elementos elementos sigma
tiempo_colocacion capacidad
156
Formalismo DEVS (Discrete EVents dynamic Systems)
ocupado
espera
0 1 2 3 Elementos en el almacén
El bloque “almacén de tipo cola” tiene dos entradas; la primera “entrada” para recibir a
los elementos y la segunda “petición” para atender peticiones de elementos. Además
tiene una salida “entrega”. En la figura 4.17 se muestra el símbolo que servirá para
representarlo y en la figura 4.18 se muestra un posible grafo reducido, fusión de los dos
grafos anteriores. En el símbolo se observan los dos parámetros representativos del
bloque; la “capacidad” que indica el número máximo de elementos que puede
almacenar la cola, y el “tiempo de preparación”, medido como el tiempo medio que
tarda la “cola” en colocar un elemento recibido o en entregar un elemento solicitado.
Otro parámetro adicional podría ser el tipo de cola: FIFO (el dato que llega en primer
lugar es el primero en salir, y así sucesivamente) o LIFO (el último dato en llegar es el
primero en salir). Aunque lo habitual es que la cola sea de tipo FIFO.
157
Formalismo DEVS (Discrete EVents dynamic Systems)
ocupado
petición petición petición petición
0 1 2 3 Elementos en el almacén
δext(“espera”,nelementos<capacidad,velementos,sigma,elemento,e,x1) =
(“ocupado”,nelementos+1,carga(velementos,x1),tiempo_preparacion,elemento)
/* si está en “espera”, llega un elemento y hay sitio, */
158
Formalismo DEVS (Discrete EVents dynamic Systems)
δext(“espera”,capacidad,velementos,sigma,elemento,e,x1) =
(“espera”,capacidad,velementos,sigma-e,elemento)
/* si está en “espera”, llega un elemento y no hay sitio, */
/* no puede recibirlo */
δext(“espera”,nelementos>0,velementos,sigma,elemento,e,x2) =
(“ocupado”,nelementos-1,descarga(velementos,
velementos(1)),tiempo_preparacion,velemento(1))
/* si está en “espera”, se le solicita un elemento y hay disponibilidad, */
/* saca el primer elemento de la cola y se prepara para entregarlo */
δext(“espera”,0,velementos,sigma,elemento,e,x2) =
(“ocupado”,0,velementos,sigma-e,elemento)
/* si está en “espera”, se le solicita un elemento y no hay disponibilidad, */
/* no se atiende la petición */
δext(“ocupado”,nelementos,velementos,sigma,elemento,e,x1) =
(“ocupado”,nelementos,velementos,sigma-e,elemento)
/* si está “ocupado” y llega un elemento, éste no se recepciona */
δext(“ocupado”,nelementos,velementos,sigma,elemento,e,x2) =
(“ocupado”,nelementos,velementos,sigma-e,elemento)
/* si está “ocupado” y se le solicita un elemento, no se atiende la petición */
La figura 4.19 muestra el cronograma de un almacén tipo cola con capacidad igual o
superior a tres elementos, que inicialmente estaba vacío y ha recibido 5 elementos
(etiquetados con las letras E1 a E5) y 4 peticiones (todas del mismo valor, aunque éste
159
Formalismo DEVS (Discrete EVents dynamic Systems)
E5
Recepción E1
E3
E2
E4
Petición
Estado
3 t
tiempo_preparacion
2
Nº de
elementos 1 1
E1
E3
Entrega E2
E4
t
Figura 4.19 Ejemplo de cronograma en un almacén tipo cola que ha recibido 5 elementos y ha atendido 4
peticiones.
160
Formalismo DEVS (Discrete EVents dynamic Systems)
E5
E1
Recepción E3
E2
E4
peticiones no
Petición atendidas
Estado
3 t
tiempo_preparacion
2
Nº de
elementos 1 1
E1
E3
Entrega E2
E4
t
Figura 4.20 Ejemplo de cronograma en un almacén tipo cola que ha recibido 5 elementos y 6 peticiones,
pero sólo ha atendido 4 peticiones.
El bloque almacén tipo cola descrito anteriormente puede venir muy bien para modelar
cualquier almacén de productos en el que la recepción o la entrega de elementos
consume un tiempo considerable en el proceso que se desea simular. Incluso podría
servir cuando el tiempo de recepción y el tiempo de entrega son distintos, bastaría con
sustituir el parámetro “tiempo_preparacion” por dos parámetros “tiempo_recepcion” y
“tiempo_entrega” y asignar adecuadamente el que corresponda en la transición interna.
Pero se puede simplificar si lo que se desea modelar es una cola de elementos, por
ejemplo la cola de clientes en una oficina de atención al público, donde la entrada en la
cola y la salida de ella se producen en un tiempo infinitesimal o despreciable frente a
otros eventos en el sistema. La primera simplificación es que el parámetro
“tiempo_preparacion” desaparece del símbolo de la figura 4.17, dando lugar al bloque
de la figura 4.21. Otras simplificaciones y modificaciones funcionales, que se pueden
observar comparando el grafo reducido de la figura 4.22 con el de la figura 4.18, son las
siguientes:
• Se mantiene una transición interna para poder generar el evento de salida (el
acto de salida de la cola).
• El estado “ocupado” ha pasado a ser un estado transitorio de “entrega” pues le
asignaremos un tiempo de permanencia igual a cero.
• La transición externa asociada a la recepción tiene un efecto inmediato en la cola
(aumenta el número de elementos en una unidad).
• Se ha considerado oportuno que la transición externa asociada a la petición no
tenga el efecto inmediato en la cola (descuenta una unidad en el número de
elementos) sino que este efecto tenga lugar cuando se produce la entrega
efectiva a la salida del bloque.
• Se han incorporado dos transiciones externas más cuando la cola esta vacía, con
ello se pretende conseguir que cuando llega una petición, estando la cola vacía,
ésta pase al estado “entrega” por un tiempo indefinido, para que cuando llegue
161
Formalismo DEVS (Discrete EVents dynamic Systems)
Cola de elementos
recepción
entrega
estado nº elementos elementos sigma elemento
petición
capacidad
recepción
entrega
0 1 2 3 Elementos en cola
Figura 4.22 Grafo reducido de una cola de elementos.
δext(“espera”,nelementos<capacidad,velementos,sigma,elemento,e,x1) =
162
Formalismo DEVS (Discrete EVents dynamic Systems)
(“espera”,nelementos+1,carga(velementos,x1),sigma,elemento)
/* si está en “espera”, llega un elemento y hay sitio en la cola, */
/* lo carga inmediatamente */
δext(“espera”,capacidad,velementos,sigma,elemento,e,x1) =
(“espera”,capacidad,velementos,sigma,elemento)
/* si está en “espera”, llega un elemento y no hay sitio en la cola, */
/* no lo puede recibir */
δext(“entrega”,0,velementos,sigma,elemento,e,x1) =
(“entrega”,1,velementos,0,x1)
/* si está en “entrega” porque tiene pendiente una petición, y llega */
/* un elemento, se prepara para entregarlo inmediatamente */
δext(“espera”,nelementos>0,velementos,sigma,elemento,e,x2) =
(“ocupado”,nelementos,descarga(velementos, velementos(1)),0,velemento(1))
/* si está en “espera”, se le solicita un elemento y hay disponibilidad */
/* en la cola, saca el primer elemento de la cola y se prepara para */
/* entregarlo inmediatamente*/
δext(“espera”,0,velementos,sigma,elemento,e,x2) =
(“entrega”,0,velementos,∞,elemento)
/* si está en “espera”, se le solicita un elemento y no hay elementos */
/* en la cola, se prepara para que cuando llegue el elemento */
/* lo pueda entregar inmediatamente*/
La figura 4.23 muestra el cronograma de una cola con capacidad para 5 elementos, que
inicialmente estaba vacía y ha recibido 5 elementos (etiquetados con las letras E1 a E5)
y 5 peticiones. En la tercera gráfica se observa como el paso por el estado “entrega” ha
sido fugaz en cuatro ocasiones, las que corresponden a cuatro entregas inmediatas
porque había elementos en la cola, mientras que en la segunda petición no había
163
Formalismo DEVS (Discrete EVents dynamic Systems)
E5
E1
Recepción E3
E2
E4
Petición
“entrega” t
Estado
“espera”
2 t
Nº de 1 1
elementos
t
E5
E1
Entrega E3
E2
E4
t
Figura 4.23 Ejemplo de cronograma en la cola de elementos como consecuencia de 5 llegadas y 5
peticiones.
164
Formalismo DEVS (Discrete EVents dynamic Systems)
Repartidor de tareas
tarea tarea para p1
salida p1 estado p1
estado sigma tarea
estado p2 tarea para p2
salida p2
tiempo_reparto
δext(“recepción”,“libre”,estado p2,sigma,tarea,e,x1) =
(“transmisión”,“libre”,estado p2,tiempo_reparto, x1)
/* si estaba en “recepción” esperando una tarea y el procesador p1 */
/* está libre, se prepara para la transmisión */
165
Formalismo DEVS (Discrete EVents dynamic Systems)
δext(“recepción”,“ocupado”,“libre”,sigma,tarea,e,x1) =
(“transmisión”,“ocupado”,“libre”,tiempo_reparto, x1)
/* si estaba en “recepción” esperando una tarea y el procesador p1 */
/* está ocupado pero el p2 está libre, se prepara para la transmisión */
δext(“recepción”,“ocupado”,“ocupado”,sigma,tarea,e,x1) =
(“transmisión”,“ocupado”,“ocupado”,sigma-e, x1)
/* si estaba en “recepción” esperando una tarea y los procesadores */
/* están ocupados, la tarea que ha llegado no se transmite*/
δext(estado,“ocupado”,estado p2,sigma,tarea,e,x2) =
(estado,“libre”,estado p2, sigma-e,tarea)
/* si el bloque sabía que el procesador p1 estaba “ocupado” y recibe */
/* un evento por la segunda entrada, interpreta que éste ha quedado “libre” */
δext(estado,estado p1,“ocupado”,sigma,tarea,e,x3) =
(estado,estado p1,“libre”, sigma-e,tarea)
/* si el bloque sabía que el procesador p2 estaba “ocupado” y recibe */
/* un evento por la tercera entrada, interpreta que éste ha quedado “libre” */
δint(“transmisión”,“libre”,estado p2,sigma,tarea) =
(“recepción”,“ocupado”,estado p2,∞,tarea)
/* si ha transmitido la tarea al procesador 1, coloca su status en ocupado */
/* y se prepara para recibir la siguiente tarea */
δint(“transmisión”,“ocupado”,“libre”,sigma,tarea) =
(“recepción”,“ocupado”, “ocupado”,∞,tarea)
/* si ha transmitido la tarea al procesador 2, coloca su status en ocupado */
/* y se prepara para recibir la siguiente tarea */
166
Formalismo DEVS (Discrete EVents dynamic Systems)
Procesador
tiempo_procesamiento
Figura 4.26 Ejemplo de modelo acoplado: Repartidor de tareas con dos procesadores.
En varios ejemplos anteriores hemos visto como los modelos atómicos se pueden
conectar para formar un modelo funcionalmente más complejo, a continuación vamos a
ver como contempla estas conexiones el formalismo DEVS. Se habla de modelo
acoplado o multicomponente como aquel modelo obtenido de conectar varios modelos
atómicos, y se especifica como una estructura matemática de la siguiente forma:
167
Formalismo DEVS (Discrete EVents dynamic Systems)
168
Formalismo DEVS (Discrete EVents dynamic Systems)
El formalismo DEVS Paralelo difiere del formalismo estándar en que permite que
cualquier número de componentes pueda tener una transición simultánea y por tanto los
componentes receptores deben estar preparados para recibir eventos simultáneos en
varias de sus entradas e interpretarlos adecuadamente. En la conexión de modelos
paralelos se sigue el mismo procedimiento que en los modelos acoplados, pero no se
necesita la función de selección. El medio de intercambio de información en el
formalismo DEVS Paralelo son los mensajes, compuestos básicamente de pares de
entrada y valor, es decir el valor de la variable y el nombre de la entrada a la que va
dirigido. Todo modelo atómico paralelo se especifica como una estructura matemática
de la siguiente forma:
169
Formalismo DEVS (Discrete EVents dynamic Systems)
• La cola de elementos de la figura 4.21 tiene una sola entrada de petición, pues está
pensada para servir a un procesador en la configuración mostrada en la figura
4.24. ¿Qué ocurre si esta cola de elementos la ponemos al servicio de dos o más
procesadores independientes o conectados en paralelo? Pues que, conectando la
salida de la cola a los procesadores y las salidas de los procesadores a la entrada
“petición” de la cola, podríamos llegar a tener funcionalidad sin necesidad de
utilizar un repartidor de tareas entre la cola y los procesadores, bastaría con
indicar el orden de prioridad de los procesadores. No obstante la funcionalidad no
está garantizada, porque si por cualquier motivo dos o más procesadores quedarán
libres en el mismo instante de tiempo, la cola de elementos recibiría por su
entrada “petición” dos eventos y sólo atendería uno de ellos. Definiendo la cola
de elementos como un modelo paralelo se resuelve este problema, pues sería
capaz de atender cualquier número de peticiones simultáneas por su entrada
“petición” siempre que hubiera elementos disponibles y también sería capaz de
recibir cualquier número de elementos simultáneamente por su entrada
“recepción”.
170
Formalismo DEVS (Discrete EVents dynamic Systems)
EJERCICIO 4.1
s2 s3
s1 s4
s8 s5
s7 s6
Figura 4.27 Transiciones de estados que han ocurrido en el sistema como consecuencia de los dos
eventos de entrada.
171
Formalismo DEVS (Discrete EVents dynamic Systems)
x2
Eventos de
x1
entrada
0 5 10 15
t2 t
t1
s4
s2
s5
Variable de
estado s1 s6
s8 s3
0 5 10 15
t
Tiempo
transcurrido
0 5 10 15
t
Eventos de
salida ta(s5) = 2.5 y5 = 0.5
y8 = 0.2 y1 = 0.3
ta(s8) = 3 ta(s3) = 3 y3 = 0.2
0 ta(s1) = 1 5 10 15
t
Figura 4.28 Cronograma para el sistema con ocho estados de la Tabla 4.1.
EJERCICIO 4.2
172
Formalismo DEVS (Discrete EVents dynamic Systems)
Figura 4.29 Bloque generador de eventos periódico con entradas de arranque y de parada.
arranque
parado activo
parada
Para describirlo con el formalismo DEVS nos vamos a fijar en la descripción del
“generador con arranque/parada” (el bloque que tiene la funcionalidad más parecida) y
la descripción del “almacén tipo cola” (porque ha sido el primer componente descrito
con formalismo DEVS que tiene dos entradas). El resultado es la siguiente descripción,
donde los comentarios son suficientemente aclaratorios: observe que ha sido necesario
incluir la variable de estado sigma, por las mismas razones que en el bloque
“Transmisor”.
173
Formalismo DEVS (Discrete EVents dynamic Systems)
EJERCICIO 4.3
La conexión de la figura 4.31 es correcta, pues la salida del generador es un valor real,
igual que la entrada del procesador, y la salida del procesador también toma valores
reales como la entrada del generador.
174
Formalismo DEVS (Discrete EVents dynamic Systems)
EJERCICIO 4.4
δext(“espera”,nelementos>0,velementos,sigma,elemento,e,x) =
(“ocupado”,nelementos-1,descarga(velementos,
velementos(1)),tiempo_preparacion,velemento(1))
/* si está en “espera”, se le solicita un elemento y hay disponibilidad, */
/* saca el primer elemento de la cola y se prepara para entregarlo */
δext(“espera”,0,velementos,sigma,elemento,e,x) =
(“espera”,0,velementos,sigma-e,elemento)
175
Formalismo DEVS (Discrete EVents dynamic Systems)
δext(“ocupado”,nelementos,velementos,sigma,elemento,e,x) =
(“ocupado”,nelementos,velementos,sigma-e,elemento)
/* si está “ocupado” y se le solicita un elemento, no se atiende la petición */
δext(“espera”,nelementos<capacidad,velementos,sigma,elemento,e,x) =
(“ocupado”,nelementos+1,carga(velementos,x1),tiempo_colocacion,0)
/* si está en “espera”, llega un elemento y hay sitio en el almacén, */
/* se prepara para colocar el elemento que ha llegado */
δext(“espera”,capacidad,velementos,sigma,elemento,e,x) =
(“espera”,capacidad,velementos,sigma-e,elemento)
/* si está en “espera”, llega un elemento y no hay sitio en el almacén, */
/* éste no se recepciona */
176
Formalismo DEVS (Discrete EVents dynamic Systems)
δext(“ocupado”,nelementos,velementos,sigma,elemento,e,x) =
(“ocupado”,nelementos,velementos,sigma-e,elemento)
/* si está “ocupado” y llega un elemento, éste no se recepciona */
EJERCICIO 4.5
Proponer un símbolo y una descripción para un modelo atómico DEVS del “carro que
va y viene” analizado en el tema 1.
177
Formalismo DEVS (Discrete EVents dynamic Systems)
δext(0,“R”,sigma,e,x) = (1,“D”,tamaño_raíl/vel_D)
/* si el botón no está pulsado pasa a estarlo y si el carro está en*/
/* reposo, se pone en movimiento hacia la derecha */
δext(1,carro,sigma,e,x) = (0,carro,sigma-e)
/* si el botón está pulsado deja de estarlo con independencia de */
/* cual sea el estado del carro */
Transición interna: El carro deja de moverse hacia la derecha para hacerlo hacia la
izquierda cuando alcanza el extremo B con independencia del estado del botón. El
carro cambia de sentido (cambio de I a D) cuando alcanza el extremo A si el botón
está pulsado, en caso contrario se para.
δint(0,“I”,sigma) = (0,“R”,∞)
/* provoca la parada en el extremo A si el botón no está pulsado */
178
Formalismo DEVS (Discrete EVents dynamic Systems)
EJERCICIO 4.6
δext(“libre”,0,vpersonas,sigma,persona,e,x) =
(“ocupada”,0,vpersonas,tiempo_atencion,x)
/* si la taquilla está “libre”, llega una persona, */
/* ésta pasa a ocupar la taquilla */
δext(“ocupada”,npersonas,vpersonas,sigma,persona,e,x) =
(“ocupada”,npersonas+1,carga(vpersonas,x),sigma-e,persona)
/* si la taquilla está “ocupada”, llega una persona, */
179
Formalismo DEVS (Discrete EVents dynamic Systems)
δint(“ocupada”,npersonas>0,vpersonas,sigma,persona) =
(“ocupada”,npersonas-1,descarga(vpersonas,vpersonas(1)),
tiempo_atencion,vpersona(1))
/* si quedan personas en la cola, la salida de una persona, */
/* provoca que la primera de la cola pase a la taquilla */
δint(“ocupada”,0,vpersonas,sigma,persona) =
(“libre”,0,vpersonas,vpersonas,∞,persona)
/* si no quedan personas en la cola, la salida de una persona, */
/* provoca que la taquilla quede libre*/
llegada recepción
entrega salida salida
estado nº elementos elementos sigma elemento estado sigma dato
petición
capacidad tiempo_procesamiento
180
Formalismo DEVS (Discrete EVents dynamic Systems)
EJERCICIO 4.7
Describir mediante un modelo atómico DEVS los “carros que van y vienen
sincronizados en los extremos” analizados en el tema 1. Si tuviera que describirlos
mediante un modelo acoplado DEVS ¿cómo modificaría el bloque propuesto en el
ejercicio 4.5 para el “carro que va y viene”, cómo serían las conexiones y la
descripción?
181
Formalismo DEVS (Discrete EVents dynamic Systems)
δext(1,carros,sigma,e,x) = (0,carros,sigma-e)
/* si el botón está pulsado deja de estarlo con independencia de */
/* cuales sean los estados de los carros */
Transición interna: El carro 1 deja de moverse hacia la derecha para hacerlo hacia
la izquierda cuando alcanza el extremo B si el carro 2 ya había alcanzado el extremo
D, pero si no es así el carro 1 se tiene que parar en el extremo B. Algo similar ocurre
cuando el carro 2 alcanza el extremo D. El carro 1 cambia de sentido (cambio de I a
D) cuando alcanza el extremo A si el botón está pulsado y el carro2 ya había
alcanzado el extremo C, en caso contrario se para. Algo similar ocurre cuando el
carro 2 alcanza el extremo I.
182
Formalismo DEVS (Discrete EVents dynamic Systems)
183
Formalismo DEVS (Discrete EVents dynamic Systems)
Avance de tiempo: Los tiempos de permanencia en los siete posibles estados del
conjunto vienen determinado en todo momento por el valor de sigma; igual ∞ si los
carros están en reposo, calculado en función de los parámetros del sistema si el
conjunto de carros está en cualquier otro estado del sistema y no se esperan
pulsaciones, y se recalcula si llega alguna pulsación mientras haya algún carro en
movimiento.
ta(botón,carros,sigma) = sigma
184
Formalismo DEVS (Discrete EVents dynamic Systems)
El bloque elemental descrito en el ejercicio 4.5 no nos vale para describir el conjunto de
los dos carros pues mientras “el carro que va y viene” sólo presenta tres posibles estados
(“R”, “D” e “I”), cada uno de los carros que van y vienen puede presentar cuatro
posibles estados (“RI”, “D”, “RD” e “I”). Pero no basta con ampliar en un estado más,
el de reposo en el extremo derecho, sino que también hay que ampliar la información
que el carro recibe de su entorno, pues antes sólo recibía eventos asociados con el botón
y ahora debe recibir eventos asociados con el otro carro. El bloque resultante debe
quedar como muestra la figura 4.35. Y su descripción va a continuación.
Figura 4.35 Símbolo para el carro que va y viene combinado con otro carro.
δext(0,“RI”,“RI”,sigma,e,x1) = (1,“D”,“D”,tamaño_raíl/vel_D)
/* si el botón no está pulsado pasa a estarlo y si los carros están en*/
/* reposo, el carro se pone en movimiento hacia la derecha */
/* y considera que el otro carro también */
185
Formalismo DEVS (Discrete EVents dynamic Systems)
δext(boton,“D”,“D”,sigma,e,x3) = (boton,“RD”,“D”,sigma-e)
/* toma nota de que el otro carro ha llegado antes al extremo derecho */
δext(boton,“D”,“RD”,sigma,e,x3) = (boton,“I”,“I”,tamaño_raíl/vel_I)
/* como estaba esperando la llegada del otro carro al extremo derecho */
/* se pone en marcha hacia la izquierda y considera que el otro también */
δext(boton,“I”,“I”,sigma,e,x2) = (boton,“RI”,“I”,sigma-e)
/* toma nota de que el otro carro ha llegado antes al extremo izquierdo */
δext(0,“I”,“RI”,sigma,e,x2) = (boton,“RI”,“RI”,∞)
/* como estaba esperando la llegada del otro carro al extremo izquierdo */
/* pero el botón no está pulsado, se queda parado */
/* y considera que el otro también */
δext(1,“I”,“RI”,sigma,e,x2) = (1,“D”,“D”,tamaño_raíl/vel_D)
/* como estaba esperando la llegada del otro carro al extremo izquierdo */
/* y el botón está pulsado, se pone en marcha hacia la derecha */
/* y considera que el otro también */
Transición interna: El carro deja de moverse hacia la derecha para pararse o para
moverse hacia la izquierda cuando alcanza el extremo B, dependiendo del estado del
otro carro pero con independencia del estado del botón. El carro cambia de sentido
(cambio de I a D) cuando alcanza el extremo A si el botón está pulsado y el otro
carro lo estaba esperando, en cualquier otro caso se para.
λ (botón,“D”,“D”,sigma) = (0,1)
/* moviéndose a la derecha ha alcanzado el extremo B */
/* antes que el otro carro el suyo */
186
Formalismo DEVS (Discrete EVents dynamic Systems)
λ (botón,“I”,“I”,sigma) = (1,0)
/* moviéndose a la izquierda ha alcanzado el extremo A */
/* antes que el otro carro el suyo */
λ (0,“RI”,“I”,sigma) = (1,0)
/* moviéndose a la izquierda ha alcanzado el extremo A */
/* después que el otro carro el suyo */
Conectando dos bloques como el descrito anteriormente, véase figura 4.36, se consigue
la funcionalidad deseada. La descripción del modelo acoplado va a continuación.
Figura 4.36 Modelo acoplado para los carros que van y vienen.
/* Dos componentes del mismo tipo y por tanto el mismo modelo DEVS */
187
Formalismo DEVS (Discrete EVents dynamic Systems)
188
ANEXO
Pero si además se desea tener una visualización gráfica de los instantes en que se
producen los eventos, se recomienda utilizar un bloque Process con la opción Delay
únicamente (denominado Visualizador en la figura A.2) y elegir un valor del retardo
muy pequeño en relación con el intervalo entre eventos. De esta forma se consigue que
los eventos ocupen un tiempo despreciable del procesador y por tanto que la evolución
189
Ejercicios para programar en ARENA
Se recomienda al alumno que haga uso de la ayuda del entorno de ARENA así como de
los manuales que le acompañan, en especial el capítulo “Getting Started” de la guía
“Arena Standard Edition. User’s Guide”. También se le recomienda que consulte el
Tema 6 de Simulación (Urquía, 2003) y la solución a los problemas de este tema.
190
Ejercicios para programar en ARENA
Programar un autómata con dos estados (“S1” y “S2”) que cambie de estado de forma
cíclica cada vez que reciba un evento.
Estado = Estado = = 0
En el modelo anterior se puede incluir visualización gráfica de los instantes en los que
se han generado los eventos y del estado instantáneo en que se encuentra el autómata.
191
Ejercicios para programar en ARENA
Figura A.4 Modelo del autómata con visualización gráfica del estado y de los eventos.
192
Ejercicios para programar en ARENA
1.a) El modelo de autómata cíclico con dos estados tiene una aplicación inmediata: se
propone adaptarlo para que simule el encendido y apagado de una lámpara mediante
el correspondiente pulsador. Se recomienda aprovechar este ejercicio para practicar
con un tipo de animación más compleja que la del autómata y más apropiada para el
fenómeno que se está simulando. Por ejemplo, utilizando el siguiente esquema de
circuito eléctrico con dos elementos interruptor y lámpara, cada uno con dos estados
posibles; el interruptor puede estar “abierto” o “cerrado” y la lámpara puede estar
“apagada” o “encendida”. O bien utilizando dos esquemas eléctricos diferentes.
Tabla A.1 Elementos utilizados para animar el esquema eléctrico de encendido y apagado de un
lámpara.
193
Ejercicios para programar en ARENA
Figura A.5 Aspecto del esquema eléctrico cuando la lámpara está apagada (izquierda) y cuando la
lámpara está encendida (derecha).
1.b) El modelo de autómata cíclico se puede modificar para que funcione como un
autómata de n estados (contador módulo n).
Estado = AMOD(Generador.NumberOut,n)
Se podría utilizar el mismo objeto animado pero con tantos colores como valores pueda
tomar la variable de estado.
Véase como ejemplo el archivo “ej_contador.doe”, que aunque valdría para cualquier
contador, contiene animación y visualización dimensionada para un contador de módulo
menor o igual que 5.
en el bloque Automata, se han incorporado cinco valores (‘0’, ‘1’, ‘2’, ‘3’ y ‘4’) con los
correspondientes colores en el objeto circular animado, se ha ampliado a [-1 5] el
escalado de la gráfica de la derecha para dar cabida a los cinco valores del Estado, y se
ha asignado el valor 5 a la variable n para que el autómata esté en concordancia con la
animación.
194
Ejercicios para programar en ARENA
195
Ejercicios para programar en ARENA
Estado=AMOD(Generador.NumberOut,3)
tpermanencia=10*(Estado==0)+60*(Estado==1)+60*(Estado==2)
con la primera sentencia se lleva la cuenta del estado (con valores ‘0’, ‘1’ y ‘2’), y con
la segunda sentencia se consigue asignar a la variable tiempo de permanencia el valor
que corresponde al siguiente estado. Es decir, que después del estado en “verde”
representado por el valor ‘0’, el tiempo de permanencia debe valer 10 segundos (el
tiempo que debe permanecer en el próximo estado, que es el “ámbar”. La animación se
ha realizado a través de un único objeto con valor igual al Estado, que tiene asociado
los tres iconos mencionados anteriormente.
Figura A.7 Modelo en Arena del semáforo y resultados de la simulación después de 600 segundos.
196
Ejercicios para programar en ARENA
Estado_S1=2*(Estado==0)+0*(Estado==1)+1*(Estado==2)+2*(Estado=
=3)+2*(Estado==4)+2*(Estado==5)
Estado_S2=2*(Estado==0)+2*(Estado==1)+2*(Estado==2)+2*(Estado=
=3)+0*(Estado==4)+1*(Estado==5)
tpermanencia= 60*(Estado==0)+10*(Estado==1)+10*(Estado==2)+
60*(Estado==3)+10*(Estado==4)+10*(Estado==5)
Con la primera sentencia se lleva la cuenta de los seis estados (con valores ‘0’, ‘1’, ‘2’,
‘3’, ‘4’ y ‘5’) que intervienen en el ciclo, en el mismo orden de la tabla 1.3, y con la
cuarta sentencia se consigue asignar a la variable tiempo de permanencia el valor que
corresponde al siguiente estado. Es decir, que después del estado (“rojo” y “rojo”)
representado por el valor ‘0’, el tiempo de permanencia debe valer 60 segundos (el
tiempo que debe permanecer en el próximo estado, que es el (“verde” y “rojo”). La
animación se ha realizado con dos objetos idénticos al ejercicio anterior, con valores
iguales al Estado_S1 y al Estado_S2. De ahí la segunda y la tercera sentencia, que se
han incluido en el bloque Semaforo con el objetivo de discriminar el estado individual
de cada uno de los semáforos al partir del Estado del conjunto.
Figura A.8 Modelo en Arena de dos semáforos que regulan un cruce y resultados de la simulación
después de 600 segundos.
197
Ejercicios para programar en ARENA
espera ocupado
provocando por tanto un cambio de valor lógico en la variable Estado, mientras que el
segundo (denominado Permanencia en el estado S2 en la figura A.9) es un bloque
Process con la opción Delay únicamente, con un valor del retardo igual al tiempo de
permanencia en el estado S2. El primer cambio de estado, de “espera” a “ocupado” se
produce cuando llega un evento y el segundo cambio de estado, de “ocupado” a
“espera” se produce cuando el evento ha permanecido el tiempo correspondiente en el
estado S2.
Figura A.9 Modelo de un autómata con visualización gráfica y animación del diagrama de transición de
estados.
198
Ejercicios para programar en ARENA
Figura A.10 Ampliación del modelo de autómata de dos estados para que no reciba eventos cuando está
ocupado.
199
Ejercicios para programar en ARENA
200
Ejercicios para programar en ARENA
Figura A.12 Modelo en Arena de un semáforo con pulsador de peatones y resultados de la simulación
después de 600 segundos.
Los posibles estados del montacargas son: “parado en la calle”, “parado en el tejado”,
“subiendo” al tejado, “bajando” a la calle. Para su operación se necesitan dos botones;
un botón de subir, al que hará caso si el montacargas está en ese momento en la calle, y
201
Ejercicios para programar en ARENA
un botón de bajar, al que hará caso si el montacargas está en ese momento en el tejado.
Además se puede suponer que siempre tarda lo mismo en realizar el recorrido de subida
y de bajada. Por tanto el grafo reducido es el siguiente, donde se observan dos
transiciones externas (provocadas por las peticiones “subir” y “bajar”) y dos
transiciones internas (provocadas por el propio montacargas cuando llega al tejado o a
la calle):
subir
parado en la
calle subiendo
parado en el
tejado
bajando
bajar
La figura A.14 muestra el resultado de una simulación con tiempo de recorrido igual a 5
minutos tanto en la subida como en la bajada; después de 30 minutos se observa como
el montacargas, que estaba inicialmente en el estado de “parado en la calle” ha
completado un ciclo debido a una primera petición de subida (que se produjo a los 2
minutos) y a una primera petición de bajada (que se produjo a los 10 minutos). Después,
a los 12 minutos cuando estaba “bajando” se produjo la segunda petición de subida, que
no fue atendida. Sí fue atendida la tercera petición de subida que se produjo a los 22
minutos. Y tampoco se atendió la segunda petición de bajada que se produjo a los 25
minutos. En los bloques receptores se puede confirmar que de las 5 peticiones
generadas, se han atendido 2 peticiones de subida (las que han llegado al Receptor 1),
se ha desatendido 1 petición de subida (la que ha llegado al Receptor2), se ha atendido
1 petición de bajada (la que ha llegado al Receptor3) y se ha desatendido una petición
de bajada (la que ha llegado al Receptor4).
202
Ejercicios para programar en ARENA
203
Ejercicios para programar en ARENA
Solución: El encendido y apagado de una lámpara se puede modelar con la Red de Petri
comentada en el apartado (a) del ejercicio 2.1.
204
Ejercicios para programar en ARENA
- El esquema eléctrico con los dos objetos animados (interruptor y lámpara) para
acompañar al modelo con la misma animación en la variante 1.a.
- Con el fin de animar la red de Petri se han incluido las dos variables binarias (P1 y
P2) que representan el estado “no marcado” o “marcado” de los dos lugares de la
Red de Petri, y se han añadido más sentencias en los bloques de asignación
(combinadas con el cambio de estado) para realizar el desmarcado y el marcado
oportuno. Por ejemplo, el bloque Apaga realiza las siguientes asignaciones:
Estado=0 Para indicar el paso a lámpara “apagada”
P1=1 Para marcar el lugar P1
P2=0 Para desmarcar el lugar P2
- La animación se ha hecho sobre un gráfico fijo en el que sólo cambian las dos
marcas, una por cada lugar, de la forma siguiente: ausencia de objeto cuando la
variable P1 ó P2 que tiene asociada toma el valor cero y objeto circular de color
rojo cuando la variable P1 ó P2 que tiene asociada toma el valor uno.
205
Ejercicios para programar en ARENA
Figura A.15 Modelo sobre el encendido y apagado de una lámpara con estructura de Red de Petri.
206
Ejercicios para programar en ARENA
Sin embargo los dos fenómenos tienen otros rasgos diferenciales que no están
reflejados en la red de Petri. Mientras el encendido y apagado de la lámpara
(transiciones T1 y T2 de la red) están asociados a un pulsador y por tanto el paso de
“encendida” a “apagada” o viceversa es totalmente aleatorio, el cambio de dirección
en el movimiento del carro se produce periódicamente (bajo condiciones ideales del
raíl y suponiendo velocidades iguales y constantes en ambos sentidos) cada vez que éste
alcanza el extremo correspondiente. Tales rasgos diferenciales sí tienen influencia al
implementar el modelo en Arena. ¿Qué estructura de bloques propondría para modelar
el movimiento del carro?
207
Ejercicios para programar en ARENA
- Un registro gráfico para visualización del estado del carro, representado por la
variable Estado con los valores: “1” = “moviéndose hacia la derecha” o “2”=
“moviéndose hacia la izquierda”.
- La red de Petri animada; con este fin se han incluido las dos variables binarias (P1
y P2) que representan el estado “no marcado” o “marcado” de los dos lugares de
la Red de Petri, y se han añadido más sentencias en los bloques de asignación
(combinadas con el cambio de estado) para realizar el desmarcado y el marcado
oportuno. Por ejemplo, en el bloque Cambia a derecha
Figura A.16 Modelo sobre el carro que va y viene de derecha a izquierda con estructura de Red de Petri.
208
Ejercicios para programar en ARENA
Una comparación entre los diagramas de bloque de la figura A.15 y de la figura A.16
permite comprobar que es difícil, por no decir imposible, establecer una traducción
directa de una red de Petri a ARENA o cualquier otro lenguaje de modelado.
Tras 600 segundos de simulación se observa como el semáforo, que estaba en el estado
de “espera” ha pasado de forma cíclica por los cuatro estados posibles, completando tres
ciclos y acabando en el estado “rojo”, debido a las tres peticiones de los peatones. Por
tanto con la red marcada en P4.
209
Ejercicios para programar en ARENA
Figura A.17 Modelo en Arena con estructura de Red de Petri para el semáforo con pulsador de peatones y resultados de la simulación después de 600 segundos.
210
Ejercicios para programar en ARENA
Se propone ampliar la red de Petri y el modelo del ejercicio 4 de este anexo para
contemplar que el movimiento del carro está controlado por un botón en el extremo
izquierdo del raíl, véase figura 1.1. Con dicho botón se consigue: a) que el carro no
empiece a moverse hacia la derecha hasta que el botón esté “pulsado”, y b) que
cuando el carro, moviéndose hacia la izquierda, alcance el extremo izquierdo cambiará
de dirección si y sólo si el botón está “pulsado”, pues en caso contrario se parará
hasta que se pulse el botón, evento que dará lugar a un nuevo movimiento de ida y
vuelta.
En la figura A.18 se puede observar la red de Petri que modela el comportamiento del
carro que va y viene de derecha a izquierda controlado por un pulsador. Respecto a la
red de Petri representada en la figura A.16 ha habido que cambiar la interpretación de la
transición T2, añadir un lugar más y dos transiciones con la siguiente interpretación:
Una característica de la red, que no está presente en los ejercicios anteriores, es que
presenta un punto de toma de decisión, ya que el disparo de T2 implica la desactivación
de T3 y viceversa (a través del lugar P2). Esta toma de decisión hace la función de
control del botón comentada como (b) en el enunciado, es decir, cuando el carro llega al
extremo izquierdo se producirá el disparo de T2 (cambio de dirección de izquierda a
derecha) si el botón está “pulsado” y en caso contrario se producirá el disparo de T3
(que provoca la parada del carro). La otra función de control del botón, comentada
como (a) en el enunciado, se logra con la transición T4 que pone en marcha el carro si
éste estaba parado, marca en el lugar P3, cuando se pulsa el botón.
Otra característica de la red es que integra dos secuencias cíclicas, que también se
detectaron en el tema 2 al hacer su árbol de cobertura, la que ya teníamos de dos
estados, representada por los lugares P1 y P2, y la nueva de tres estados, representada
por los lugares P1, P2 y P3. Pero sólo puede estar activa una de ellas, dependiendo del
estado del botón. Ambas secuencias aparecen anidadas en el diagrama de bloques de la
figura A.18, siendo el bloque Decide denominado Debe esperar el que realiza la toma
de decisión en función del estado del botón.
211
Ejercicios para programar en ARENA
Para guardar información del estado del botón se ha utilizado un bloque Assign,
denominado Atiende el pulsador en la figura A.18, de forma similar a como se hizo el
autómata cíclico de dos estados (véase el ejercicio 1 de este anexo). Y para encaminar la
pulsación se ha utilizado otro bloque Decide, denominado Esta en reposo, de manera
que la pulsación sólo se envía al bloque Match1 que lleva implícita la transición T3 si el
carro está esperando en el extremo izquierdo.
En el modelo se ha incorporado visualización gráfica tanto del estado del carro como
del botón, en la figura A.18 se puede ver el resultado de una simulación de 600
segundos. Se observa como el carro, que inicialmente estaba parado (Estado=’0’) ha
arrancado cuando el botón ha pasado del valor ‘0’ al valor ‘1’, ha repetido cuatro veces
el ciclo de movimiento a derecha e izquierda, ha vuelto a parar porque se encontró que
el botón estaba a ‘0’ cuando llegó al extremo izquierdo y ha vuelto a arrancar repitiendo
de nuevo el ciclo hasta llegar al estado ‘moviéndose hacia la derecha’ reflejado por la
marca en P1 cuando acabo la simulación.
212
Ejercicios para programar en ARENA
Figura A.18 Modelo en Arena con estructura de Red de Petri para el carro que va y viene con botón y resultados de la simulación después de
600 segundos.
213
Ejercicios para programar en ARENA
Se propone programar un nuevo modelo con estructura de Red de Petri para simular el
funcionamiento del montacargas, que ya se planteó en la variante 2.b del ejercicio 2 de
este anexo.
- Dos bloques Process, denominados Sube y Baja en la figura A.19, con la opción
Delay de manera que el montacargas permanezca subiendo (lugar P2) o bajando
(lugar P4) el tiempo necesario (representado por la variable trecorrido) para que
alcance el tejado o el suelo.
214
Ejercicios para programar en ARENA
- Tres registros gráficos. Uno para visualización del estado del montacargas,
representado por la variable Estado con los valores: “1” = “parado en la
calle”=“esperando a subir”, “2”= “subiendo”, “3” = “parado en
tejado”=“esperando a bajar”, “4”= “bajando”.
La figura A.19 muestra el resultado de una simulación con tiempo de recorrido igual a 5
minutos tanto en la subida como en la bajada; después de 30 minutos se observa como
el montacargas, que estaba inicialmente en el estado de “parado en la calle”, ha
completado un ciclo debido a una primera petición de subida (que se produjo a los 2
minutos) y a una primera petición de bajada (que se produjo a los 10 minutos). Entre
ambas peticiones el montacargas ha tenido tiempo para hacer el recorrido de subida y
esperar a que se produjera la petición de bajada. Después, a los 12 minutos cuando
estaba “bajando” se produjo la segunda petición de subida, que no fue atendida en ese
momento pero quedó memorizada y fue atendida inmediatamente después de que el
montacargas alcanzó el suelo. El montacargas tuvo tiempo para llegar al tejado, donde
estuvo parado un cierto tiempo hasta que se recibió la petición de bajada (segunda
petición en la gráfica, a los 25 minutos), comenzó a bajar y acabó la simulación cuando
estaba bajando (marca en P4). La marca en P5 se debe a que antes de que llegara la
segunda petición de bajada, cuando el montacargas estaba parado en el tejado, se recibió
la tercera petición de subida, que aún no se ha podido atender.
Existe una diferencia importante entre el modelo con estructura de autómata, presentado
en la variante 2.b, y el modelo con estructura de red de Petri. En el autómata no se
atendían todas las peticiones mientras que en la red de Petri se atienden todas las
peticiones y las que no ha dado tiempo a atender, por la duración limitada de la
simulación, están guardadas en una cola.
La solución alternativa hubiera sido generar una petición “ficticia” de bajada para hacer
que el montacargas llegará al suelo y pudiera atender la petición “real” de subida. Pero
esto será posible si la red de Petri se acompaña de un gestor de peticiones.
215
Ejercicios para programar en ARENA
216
Ejercicios para programar en ARENA
Se propone modelar con una red de Petri el comportamiento de dos carros que van y
vienen de derecha a izquierda por dos tramos rectos independientes, véase figura 1.9.
Entre los carros existe la política de que el primero que llegue a un extremo (izquierdo
o derecho) deberá esperar a que llegue el otro carro para reanudar simultáneamente la
marcha en dirección contraria. Además existe un botón, que afecta por igual a los dos
carros, permitiendo que éstos se pongan en marcha hacia la derecha o puedan
reanudar este tipo de marcha después de que ambos hubieran alcanzado el extremo
izquierdo.
La red es una combinación de dos redes muy similares a la del ejercicio 6 del anexo,
véase la figura A.18, donde:
- A los tres lugares que permiten modelar el movimiento de cada carro ha habido
que añadir dos lugares más, para representar que los dos carros pueden llegar a
parar en el extremo derecho debido a que el otro carro aún no ha llegado.
- A las cuatro transiciones temporizadas de final de recorrido (dos por cada carro)
se han sumado las transiciones que realizan las labores de sincronización cuando
los dos carros han alcanzado el mismo extremo y se encuentran en disposición
de reanudar la marcha en sentido contrario o, como están en el extremo
izquierdo, la reanudación de la marcha está afectada por el estado del botón.
Luego en ella se pueden observar claramente los ejemplos de concurrencia y
sincronización analizados en el apartado 2.4 del tema 2, basta comparar con las
figuras 2.10 y 2.11.
217
Ejercicios para programar en ARENA
del pulsador y sincronizados a través de los tres bloques de tipo Match. La disposición
de estos bloques hace que un bucle no pueda evolucionar si el otro no ha avanzado lo
suficiente.
En el modelo se ha incorporado visualización gráfica del estado del botón y del estado
de los carros, empleando dos variables Estado1 y Estado2 (con la misma codificación:
0= “carro parado en el extremo izquierdo”, 1= “carro moviéndose hacia la derecha”,
2=“carro parado en el extremo derecho” y 3=“carro moviéndose hacia la izquierda”).
En la figura A.20 se puede ver el resultado de una simulación de 600 segundos, bajo el
supuesto de que ambos carros tiene tiempos de recorrido fijos pero distintos
(trecorrido1 = 30 segundos y trecorrido2 = 20 segundos). Se observa como los dos
carros, que inicialmente estaban parados han arrancado hacia la derecha cuando el
pulsador ha pasado del valor ‘0’ al valor ‘1’. Repitiendo cuatro veces el ciclo de
movimiento a derecha e izquierda, con una diferencia muy manifiesta en la evolución
de los dos estados, pues como se ha supuesto que el carro 2 es más rápido, siempre tiene
que esperar en los extremos al carro 1, que ha estado moviéndose continuamente. Los
dos carros han parado porque se encontraron que el pulsador estaba a ‘0’ cuando
coincidieron después de cuatro ciclos en el extremo izquierdo y ha vuelto a arrancar
repitiendo de nuevo el ciclo hasta llegar al estado ‘moviéndose hacia la derecha’
reflejado por la marcas en P1 y P2 cuando se agotó el tiempo de simulación.
En la figura A.21 se puede ver el resultado de una simulación de 600 segundos en las
mismas condiciones del modelo anterior. De nuevo se repite cuatro veces el ciclo de
movimiento a derecha e izquierda en ambos carros, pero ahora se observa como el carro
2, que es más rápido, siempre espera en el extremo izquierdo al carro 1, que ha estado
moviéndose continuamente.
218
Ejercicios para programar en ARENA
Figura A.20 Modelo en Arena con estructura de Red de Petri para los dos carros que van y vienen con pulsador común y resultados de la simulación después de 600
segundos.
219
Ejercicios para programar en ARENA
Figura A.21 Modelo en Arena con estructura de Red de Petri para los dos carros que van y vienen con sincronización y pulsador común en el extremo izquierdo.
220
Ejercicios para programar en ARENA
A.2.7 Ejercicio 9: Sistema de producción con dos robots, dos máquinas y dos
almacenes
- Cinco bloques Create, denominados Genera pieza, Genera R1, Genera M1,
Genera R2 y Genera M2 en la figura A.22. Los últimos cuatro bloques para dar
entrada en el sistema, desde el instante inicial, a los cuatro elementos activos (los
dos robots y las dos máquinas) que participan en él. Estos elementos son
realmente recursos, pero por ahora los vamos a considerar como otras entidades
que también fluyen por el sistema. El primero para generar la primera de las
entidades “pieza” que va a fluir por el sistema.
Con el fin de probar el modelo se han elegido los siguientes parámetros en minutos
221
Ejercicios para programar en ARENA
En la figura A.22 se puede ver el resultado de una simulación de 120 minutos. Trate de
reproducirlo paso a paso, observando cómo fluyen los recursos (R1, R2, M1 y M2) y las
piezas por las colas de los bloques Match (de forma similar al marcado de la red de
Petri) y poniendo especial atención a cómo avanza el reloj de la simulación, asociado a
los siguientes eventos:
222
Ejercicios para programar en ARENA
223
Ejercicios para programar en ARENA
Figura A.22 Modelo en Arena del sistema de producción con dos robots, dos máquinas y dos almacenes.
224
Ejercicios para programar en ARENA
Entre los sistemas físicos hay algunos que son muy simples de modelar pues generan
poca información. Por ejemplo “la lámpara y su sistema eléctrico” deben generar
peticiones de apagado o de encendido pero no necesitan informar sobre el estado de la
lámpara, puesto que el sistema de encendido/apagado conoce siempre el estado en el
que ésta se encuentra. Sin embargo otros sistemas físicos requieren un modelado más
preciso. Por ejemplo en “el carro que va y viene” intervienen leyes físicas de
movimiento y la presencia de otros elementos (el botón en el extremo izquierdo del raíl
y los posicionadores en ambos extremos) que suministran información al automatismo
para que éste pueda tomar las acciones oportunas.
225
Ejercicios para programar en ARENA
VI = VI = = 0
La lógica de control es otro bloque Assign que reproduce las ecuaciones lógicas (véase
la justificación en la resolución del ejercicio 3.1)
_
E 0 = E 1 I + E1 E 0 + E 0 + E 1 E1 = E 0 I + E 0 E1
L = E1
mediante las sentencias
VIN=VI==0
E0N=E0==0
E1N=E1==0
E0=( E1 && VIN ) || ( E1N && E0) || ((E0 || E1) == 0)
E0N=E0==0
E1=( E0 && VI ) || ( E0N && E1 )
E1N=E1==0
L=E1
Donde se han utilizado variables lógicas auxiliares VIN, E0N y E1N para representar la
negación del estado del interruptor (VI) y de las dos etapas (E0 y E1) del GRAFCET. Y
donde es importante recalcar la secuencialidad en la activación de las etapas; el valor
lógico de E1 no se actualiza con el valor de E0 del ciclo anterior sino con el valor de E0
previamente calculado en el mismo ciclo.
226
Ejercicios para programar en ARENA
- Tres registros gráficos para mostrar la evolución temporal del estado del
interruptor y de las dos etapas del GRAFCET.
A.3.2 Ejercicio 11: Automatismo para el control del carro que va y viene
Solución: El GRAFCET que modela el comportamiento del carro que va y viene por un
raíl, con botón de parada en el extremo izquierdo, se presentó en la figura 3.13 del tema
3, y las ecuaciones lógicas que debe incorporar el automatismo encargado de su control
se presentaron en el ejemplo 3.2.3.2. Este modelo se puede reproducir en ARENA
mediante la estructura de bloques de la figura A.25, ver el archivo
“ej_auto_carro.doe”. Los tres bloques de la parte superior representan una parte del
sistema físico, la relacionada con el pulsador, los tres bloques de en medio representan
la otra parte del sistema físico, la relacionada con el movimiento del carro y los tres
bloques de la parte inferior representan al automatismo. El flujo de información entre
los elementos físicos del sistema y el automatismo, véase la figura A.24, se produce a
través de las siguientes variables del sistema:
227
Ejercicios para programar en ARENA
VI , variable lógica para indicar que el carro debe moverse hacia la izquierda
Pulsador Carro
VP VA VB VD VI
Automatismo
Figura A.24 Flujo de información entre las tres partes del sistema “carro que va y viene”.
El bloque Pulsador de la figura A.25 tiene características de autómata cíclico con dos
estados, como el interruptor del ejercicio anterior, y se ha programado utilizando un
bloque Assign con la sentencia
VP = VP = = 0
El bloque Carro de la figura A.25 incluye la dinámica que describe el movimiento del
carro y la detección de su presencia en los extremos del raíl. En su modelado se ha
buscado generalidad, por lo que se ha supuesto que el carro se puede mover a distintas
velocidades constantes (vel_D y vel_I) a derecha y a izquierda, debido a dos motores
independientes (activados por la variables lógicas respectivas VD y VI), luego la
velocidad neta del carro viene dada en todo momento por la expresión
d x(t)
= vel_D VD - vel_I VI
dt
donde x(t) representa la posición relativa del carro respecto al extremo izquierdo del
raíl. Y aproximando la derivada por Euler, se llega a la siguiente expresión discretizada,
que nos da la posición instantánea del carro en t+∆t conocida su posición en el instante t
Como además se ha supuesto que el raíl tiene una longitud finita L y que se necesitan
variables lógicas que informen de la presencia o no del carro en los extremos, el modelo
dinámico se debería completar con las siguientes sentencias:
Si x ≤ 0
x=0
VA = 1
VB = 0
Si 0 < x < L
VA = 0
VB = 0
Si x ≥ L
x=L
VA = 0
228
Ejercicios para programar en ARENA
VB = 1
posicion=posicion+delta_t*(vel_D*VD-vel_I*VI)
VA=posicion <= 0
VB=posicion >= L
posicion=(VA==1)*0+(VA==0)*(VB==0)*posicion+(VB==1)*L
La Lógica de control de la figura A.25 es otro bloque Assign que reproduce las
ecuaciones lógicas (véase la justificación en el ejemplo 3.2.3.2)
E 0 = E 2 A P + E1 E 0 + E 0 + E1 + E 2
E1 = E 0 P + E 2 AP + E 2 E1 E 2 = E1 B + E0 E1 E 2
D = E1 I = E2
VPN=VP==0
E0N=E0==0
E1N=E1==0
E2N=E2==0
E0=( E2 && VA && VPN ) || ( E1N && E0) || ((E0 || E1 || E2) == 0)
EON=E0==0
E1=( E0 && VP ) || ( E2 && VA && VP) || ( E2N && E1 )
E1N=E1==0
E2=( E1 && VB ) || ( E0N && E1N && E2 )
VD=E1
VI=E2
229
Ejercicios para programar en ARENA
totalmente en rojo indica que el carro está en el extremo izquierdo, las otras
posibilidades representan posiciones intermedias del carro en el raíl.
230
Ejercicios para programar en ARENA
231
Ejercicios para programar en ARENA
A.3.3 Ejercicio 12: Automatismo para el control de los dos carros que van y vienen,
sincronizados en el extremo izquierdo
Se propone programar y comprobar el automatismo para los dos carros que van y
vienen por un raíl, con pulsador de arranque/parada y sincronización en el extremo
izquierdo.
Solución: El GRAFCET que modela el comportamiento de los carros que van y vienen
por un raíl, con botón de parada en el extremo izquierdo y sincronización (un carro
espera al otro) en ese mismo extremo, se presentó en la figura 3.14 del tema 3, y las
ecuaciones lógicas que debe incorporar el automatismo encargado de su control se
presentaron en el ejemplo 3.2.3.3. Este modelo se puede reproducir en ARENA
mediante la estructura de bloques de la figura A.26, ver el archivo
“ej_auto_carros.doe”. La principal novedad respecto al de la figura A.25 es la
reutilización de los tres bloques del carro para modelar tanto al carro 1 como al carro 2,
cada uno con sus propios parámetros. Respecto al flujo de información entre los
elementos físicos del sistema y el automatismo, es similar al representado en la figura
A.24, donde en lugar de un carro aparecen dos, pero éstos no intercambian información
entre sí sino a través del automatismo lógico.
La Lógica de control de la figura A.26 es otro bloque Assign que reproduce las
ecuaciones lógicas (véase la justificación en el ejemplo 3.2.3.3)
E 0 = E 5 E 6 A1 A 2 P + ( E1 + E 2 ) E 0 + E 0 + E1 + E 2 + E 3 + E 4 + E 5 + E 6
E 1 = E 0 P + E 5 E 6 A1 A 2 P + E 3 E 1 E 2 = E 0 P + E 5 E 6 A1 A 2 P + E 4 E 2
E 3 = E1 B1 + E 5 E 3 E 4 = E 2 B2 + E 6 E 4
E 5 = E 3 A1 + E 0 (E1 + E 2 ) E 5 E 6 = E 4 A 2 + E 0 (E1 + E 2 ) E 6
D1 = E1 D2 = E2 I1 = E 3 I2 = E 4
VPN=VP==0
E0N=E0==0
E1N=E1==0
E2N=E2==0
E3N=E3==0
E4N=E4==0
E5N=E5==0
E6N=E6==0
E0=( E5 && E6 && VA1 && VA2 && VPN ) || ( (E1N || E2N) && E0)
|| ((E0 || E1 || E2 || E3 || E4 || E5 || E6) == 0)
EON=E0==0
E1=( E0 && VP ) || ( E5 && E6 && VA1 && VA2 && VP)
|| ( E3N && E1 )
E1N=E1==0
232
Ejercicios para programar en ARENA
Los carros, que estaban inicialmente parados en los extremos izquierdos, se han puesto
en marcha (hacia la derecha) como consecuencia de la primera pulsación en el minuto 1.
Con posterioridad se han producido siete pulsaciones que han ido cambiando el estado
del pulsador, pero que sólo han tenido efecto sobre los movimientos de los carros
(mandándolos parar) cuando éstos han llegado al extremo izquierdo. La posición del
carro 1, el más lento, ha descrito mismo diente de sierra del modelo anterior, pero la
posición del carro 2, el más rápido ha descrito un diente de mayor frecuencia
(concretamente el doble) y más truncado porque ha tenido que permanecer dos veces
parado en el extremo izquierdo hasta que llegará el carro 1. Las diferentes posiciones
finales de los carros se ponen claramente de manifiesto en las barras horizontales, pero
para ver el sentido del movimiento hay que consultar las variables de estado de los
motores o el valor de las etapas del GRAFCET, concretamente el carro 1 está
moviéndose hacia la derecha mientras que el carro 2 lo está haciendo hacia la izquierda,
están marcadas (a valor lógico 1) las etapas E1 y E4 del GRAFCET.
233
Ejercicios para programar en ARENA
Figura A.26 Automatismo para el control de los carros que van y vienen.
234
Ejercicios para programar en ARENA
A.3.4 Ejercicio 13: Automatismo para el control de tráfico en un cruce con dos
semáforos
Cada bloque contador tiene un parámetro asociado, el valor de la cuenta que debe
realizar, una entrada lógica de activación y una salida lógica para indicar el final de la
cuenta. Por ejemplo, el contador encargado de temporizar el tiempo que va a estar
encendida la luz “verde” se ha programado en ARENA con un bloque Assign y las
siguientes sentencias
cuentaV=duracion_verde*(ECV==0)+(0*(cuentaV==0)+
(cuentaV>=1)*(cuentaV-1))*(ECV==1)
VTV=cuentaV == 0
La primera de las dos sentencias anteriores nos permite tener cargado el contador
cuando no está activo (ECV=“0”) y que esté dispuesto a iniciar la cuenta atrás en
cualquier momento, contar hacia atrás cuando está activado (ECV=“1”) y que nunca se
pase del cero en la cuenta atrás. La segunda de las sentencias sirve para comunicar a la
lógica de control, poniendo a “1” la variable lógica VTV, que la cuenta ha terminado.
Las dos sentencias están particularizadas para la luz verde, los otros bloques contadores
incluyen sentencias similares. Como en ningún momento se puede dar la situación de
que dos contadores estén activos a la vez, sino que se van secuenciando como muestra
el GRAFCET del ejercicio para dar lugar al ciclo completo del primer semáforo y luego
el ciclo completo del segundo semáforo, se podía haber utilizado un único contador.
Pero por simplicidad en el modelo se ha preferido utilizar tres contadores distintos, uno
por cada luz, aunque eso sí los tres se utilizan tanto para el primer semáforo como para
el segundo.
La Lógica de control de la figura A.27 reproduce las ecuaciones lógicas del ejercicio
3.4, mediante las sentencias:
E1N=E1==0
E2N=E2==0
E4N=E4==0
E5N=E5==0
E6N=E6==0
E7N=E7==0
E0=( E4 && E7 && VTR ) ||
235
Ejercicios para programar en ARENA
236
Ejercicios para programar en ARENA
Figura A.27 Automatismo para el control de tráfico en un cruce con dos semáforos.
237
Ejercicios para programar en ARENA
LV1
E0 E4
EBP
VP
LV1
E1
ECV
VTV
LA1
E2
ECA
VTA
LR1
E3
ECR
VTR
Por tanto las ecuaciones lógicas que debe incorporar el automatismo son las siguientes:
E 0 = E 3 VTR + E1 E 0 + E 0 + E 1 + E 2 + E 3 + E 4
E 4 = E1 E 4 + E 0 + E 1 + E 2 + E 3 + E 4
E 1 = E 0 E 4 VP + E 2 E 1
E 2 = E 1 VTV + E 3 E 2
E 3 = E 2 VTA + E 0 E 3
LV1 = E 0 + E 1 EBP = E 0 ECV = E 1
LA1 = E 2 ECA = E 2 LR1 = E 3 ECR = E 3
E1N=E1==0
E0=( E3 && VTR ) || ( E1N && E0) || ((E0 || E1 || E2 || E3) == 0)
238
Ejercicios para programar en ARENA
239
Ejercicios para programar en ARENA
Como parámetros del modelo se ha supuesto que todos los relojes van al mismo periodo
de 1 segundo que la lógica de control, que los tiempos de permanencia en el ciclo
normal del semáforo son 60 segundos para el verde, 10 segundos para el ámbar y 60
segundos para el rojo. En el modelo “ej_auto_semaforopeatones.doe” se incluyen
también seis registros temporales (no recogidos en figura A.29) para poder analizar las
peticiones de los peatones, generadas aleatoriamente por el bloque Generador de
peticiones, y la evolución temporal de las cinco etapas del GRAFCET. En la figura
A.30 se muestra un ejemplo de resultados, donde se observa (comparando la llegada de
las peticiones con la evolución de la etapa E1) que en los 10 minutos que ha durado la
simulación se recibieron un total de 7 peticiones, pero sólo se atendieron tres. Que
provocaron tres ciclos (E1=“verde”, E2=“ámbar” y E3 =“rojo”), de los cuales se
completaron los dos primeros y estaba a punto de completarse el tercero (semáforo en
rojo, véase figura A.29) cuando acabó la simulación.
240
Ejercicios para programar en ARENA
Figura A.30 Resultados de simulación con el automatismo para control del semáforo de peatones.
241
Ejercicios para programar en ARENA
242
BIBLIOGRAFÍA
R. J. PAUL: “Activity Cycle Diagrams and the Three Phase Approach”. Proceedings of
the 1993 Winter Simulation Conference, 1993.
243
Bibliografía
244