Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Simuador Hibrido Tiempo ReaI
Simuador Hibrido Tiempo ReaI
interactúa con una persona, como por ejemplo en Formalmente un modelo DEVS está descripto por
los simuladores de vuelo). dos clases de componentes, modelos atómicos y
modelos acoplados.
Las restricciones impuestas por este tipo de
simulación abren una serie de problemas de Un modelo atómico representa la unidad “mole-
relativa complejidad que involucran cuestiones cular” de procesamiento, en el sentido que es la
de sistema operativo, entrada–salida de datos, pieza fundamental y más básica. Formalmente un
interrupciones, etc. Por esto, el desarrollo de una modelo atómico esta conformado por la 7-upla
herramienta de simulación de propósito general
(X, Y, S, δint , δext , λ, ta) donde:
de tiempo real es una tarea compleja, pero que
a su vez tiene una aplicabilidad muy importante Cada posible estado s (s ∈ S) tiene asociado
y amplia. un Avance de Tiempo calculado por la Función
de Avance de Tiempo ta(s). Luego, si el estado
En este trabajo, presentamos entonces el desa-
toma el valor s1 en el tiempo t1 , tras ta(s1 )
rrollo de una nueva plataforma de simulación
unidades de tiempo (o sea, en tiempo ta(s1 )+t1 ) el
en tiempo real, consistente esencialmente en la
sistema realiza una transición interna yendo a un
adaptación de PowerDEVS a un sistema operativo
nuevo estado s2 . El nuevo estado se calcula como
de tiempo real –Linux RTAI (Mantegazza et al.,
s2 = δint (s1 ). La función δint se llama Función de
2000)– y a la incorporación de todas las funcio-
Transición Interna.
nalidades que se requieren de un simulador de
tiempo real. De esta manera, teniendo en cuenta Cuando el estado va de s1 a s2 se produce también
las simulitudes entre PowerDEVS y Simulink, un evento de salida con valor y1 = λ(s1 ). La
la herramienta resultante tiene cierta semejanza función λ (λ : S → Y ) se llama Función de
con el Real Time Workshop de Simulink (aunque Salida. Ası́, las funciones ta, δint y λ definen el
nuevamente basado en principios de simulación comportamiento autónomo de un modelo DEVS.
diferentes). El desarrollo realizado fue parte de
Cuando llega un evento de entrada el estado
una Tesina de Licenciatura en Ciencias de la
cambia instantáneamente. El nuevo valor del
Computación de la UNR (Bergero, 2008).
estado depende no sólo del valor del evento
El trabajo está organizado como sigue: en la de entrada sino también del valor anterior de
Sección 2 describimos los principios del forma- estado y del tiempo transcurrido desde la última
lismo DEVS y algunos conceptos de simulación en transición. Si el sistema llega al estado s3 en el
tiempo real. Luego, en la Sección 3 presentamos instante t3 y luego llega un evento de entrada
el grueso del trabajo realizado y por último, en en el instante t3 + e con un valor x1 , el nuevo
la Sección 4 mostramos algunas aplicaciones y estado se calcula como s4 = δext (s3 , e, x1 ) (notar
resultados experimentales obtenidos usando esta que ta(s3 ) > e). En este caso se dice que el
nueva herramienta. sistema realiza una transición externa. La función
δext se llama Función de Transición Externa.
Durante una transición externa no se produce
ningún evento de salida.
2. MODELOS DEVS, SIMULACIÓN Y
TIEMPO REAL La descripción de un sistema puede ser (formal-
mente hablando) completamente realizada uti-
Presentaremos en esta sección algunos conceptos lizando modelos atómicos, aunque esto resulta
teóricos, sobre el lenguaje formal DEVS y sobre un poco incómodo y confuso. Para abordar este
el simulado de modelos DEVS, tanto formalmente problema, el formalismo DEVS introduce lo que
como llevado a la práctica en tiempo real. se llaman modelos acoplados que es una forma de
agrupar modelos DEVS y generar nuevos modelos
a partir de este agrupamiento.
Los modelos DEVS pueden acoplarse de forma
2.1 Formalismo DEVS
equivalente a los diagramas de bloques, a través
de puertos de entrada y salida. Los modelos
DEVS es un formalismo para modelar y analizar acoplados son en sı́ mismo modelos DEVS válidos,
sitemas de eventos discretos(es decir, sistemas en formalmente el acoplamiento es una operación
los cuales en un lapso finito de tiempo, ocurren cerrada sobre el conjunto de modelos DEVS.
una cantidad finita de cambios). Acoplar modelos DEVS forma nuevos modelos
Un modelo DEVS puede ser visto como un DEVS.
autómata que procesa una serie de eventos de Por lo tanto, los modelos DEVS pueden acoplarse
entrada y genera una serie de eventos de salida. de manera jerárquica, es decir, los modelos acopla-
Este procesamiento está regido por la estructura dos pueden a su vez acoplarse con otros modelos
interna de cada uno de las partes que componen acoplados y/o atómicos.
el modelo general.
AADECA 2008 - Semana del Control Automático - XXIo Congreso Argentino de Control Automático
1 al 3 de Septiembre de 2008 - Buenos Aires, Argentina.
2.2 Simuladores de Modelos DEVS continuos y discretos (es decir, sistemas hı́bridos)
de una manera muy simple y eficiente.
La simulación de modelos DEVS puede ser llevada
a cabo fácilmente en cualquier computadora. Para
simular el funcionamiento de un sistema DEVS
sólo debemos realizar los siguientes pasos: 2.4 Sistemas Operativos de Tiempo Real
• Buscar el modelo (pertenciente al modelo
acoplado raı́z), que de acuerdo a su función Los sistemas operativos de tiempo real son sis-
de avance ta y el tiempo transcurrido, es el temas operativos que ofrecen las herramientas
próximo a realizar una transición interna. A básicas para poder implementar tareas con res-
este modelo, lo llamaremos d∗ y tn al tiempo tricciones temporales. Un sistema opreativo debe
de su próxima transición interna. ofrecer métodos de expresar las restricciones tem-
• Avazamos el tiempo de simulación t a tn porales de cada tarea, métodos de comunicación
y “ejecutamos” la transición interna del entre estas tareas y manejo de los recursos de
modelo d∗ . bajo nivel de la computadora (memoria, inte-
• Luego, propagamos el evento de salida produ- rrupciones, puertos, etc). Entre los más populares
cido por la transición interna recién realizada encontramos QNX (Hildebrand, 1992), VxWorks
por d∗ a los modelos conectados a d∗ , (Wehner, 2006), Drops (Härtig et al., 1998), RT-
ejecutando la transición externa de cada uno Linux (Barabanov, 1997), RTAI (Mantegazza et
de estos. al., 2000).
• Finalmente volvemos a realizar el ciclo desde
Entre estos sistemas, RT-Linux y RTAI nos
el primer paso
resultaron los más apropiados, ya que son una
extensión del kernel de Linux, es decir todo
2.3 PowerDEVS el software desarrollado para GNU/Linux corre
sobre este sistema. Esto representa una ventaja ya
PowerDEVS (Pagliero et al., 2003) es un entorno que existen muchas aplicaciones, documentación,
de simulación de modelos DEVS de propósito y una gran comunidad de usuarios. La empresa
general. Fue desarrollado originalmente en la que desarrolla RT-Linux (FMSLabs) libera una
Facultad de Ciencias Exactas, Ingenierı́a y Agri- versión gratis (RT-Free) y otra paga. Pero impone
mensura de la Universidad Nacional de Rosario restricciones de uso sobre la versión libre.
como proyecto final. Por esta razón nuestra elección fue utilizar RTAI,
La implementación de esta herramienta está ya que el desarrollo no deberı́a tener restricciones
dividida en dos módulos bien heterogéneos. de uso ni de distribución.
Cuando uno simula algo, espera analizar los resul- 3.5 Librerı́a de Tiempo Real
tados con algún fin. Evidentemente la simulación
debe dejar o mostrar los resultados por algún Para utilizar todas las ventajas de tiempo real de
medio al usuario. En la versión de Windows una forma más simple y sencilla agregamos a la
de PowerDEVS esto se logra a través de salida liberı́a de PowerDEVS varios bloques elementales
escritas a un archivo o por algún medio gráfico para incluir directamente en los modelos.
(de plotting).
RTWait: Este atómico tiene como objetivo sin-
Esto es una necesidad básica para el motor de cronizar todos los eventos que pasan por él. Ası́
simulación por lo cual la versión de tiempo real de un modelo desarrollado a la vieja usanza (sin
PowerDEVS debe incluir algun método como los sincronización) puede ser fácilmente convertido
de la versión de Windows. Aunque parezca simple, en un modelo que sincronize los eventos en
el problema surge debido a que los procesos tiempo real. El atómico debe ser puesto en la
de tiempo real no pueden utilizar llamdas al conexión sobre la cual se quiere sincronizar los
kernel de Linux, privándolo ası́ del uso del file eventos. El atómico tiene un parámetro para
system, entorno gráficos, etc. RTAI ofrece métodos elegir qué clase de sincronización se desea rea-
de comunicación entre procesos (IPC). En base lizar, precisa o normal (ver 3.1). Este atómico
a estos métodos de IPC, implementamos una es simplemente un filtro, en el cual los eventos
interfaz al file system de Linux. Funciona de la de entrada se emiten (instantáneamente) pero
siguiente manera como eventos sincronizados.
• Al inicar la simulación se crea un proceso en RTClock: Este modelo es un modelo tipo filtro.
Linux (es decir no en tiempo real) Cuando recibe un evento externo, emite ins-
• Se crea un pipe desde el proceso de tiempo tantáneamente un evento que tiene como valor
real al proceso en Linux (la dirección indica el tiempo real. Utiliza los servicios que ofrece el
quien escribe y quien lee en el pipe). módulo de medición de tiempo real.
• Cuando el proceso de tiempo real (el que GNUPlot: Este modelo permite reproducir de
ejecuta la simulación) requiere escribir algo al forma gráfica los resultados de la simulacion.
file system, lo escribe en el pipe y su trabajo ToDisk: Este modelo escribe los eventos re-
está realizado. En RTAI esto se realiza sin cibidos a un archivo en disco en formato
retardos ni demoras (como si sucederı́a bajo CSV(Comma Separated Values).
Linux). IRQDetector: Este modelo es la interface de
• Cuando el proceso de Linux es ejecutado usuario con el módulo de interrupciones de Po-
(cuando no hay nada que hacer en tiempo werDEVS. Emite un evento cuando ha ocurrido
real), lee del pipe (si es que hay datos) y los la interrupción correspondiente.
AADECA 2008 - Semana del Control Automático - XXIo Congreso Argentino de Control Automático
1 al 3 de Septiembre de 2008 - Buenos Aires, Argentina.
Utilizando esta método obtuvimos latencias de 4.4 Control de Motor de Corriente Continua
interrupción de 20µs.
Otra aplicación que implementamos fue la del
control de un motor de corriente continua. Para
llevar a cabo este experimento, diseñamos un dis-
4.3 Audio por Puerto Paralelo positivo de hardware (ver Fig.6), compuesto por
un motor y un encoder (implementado utilizando
La primera aplicación que realizamos fue la de un mouse de PC). Los pulsos del encoder se
emitir sonido a través del puerto paralelo. Lo que introducen en el bit STO del puerto paralelo, lo
nos propusimos es producir una onda de sonido que provoca interrupciones en la PC. Por otro
modulada mediante PWM, utilizando ası́ un sólo lado, el actuador, consistente en un amplificador
bit de salida del puerto. La onda la formamos implementado con un transistor y un filtro de
sumando tres senoidales de distinta frecuencia, lo salida, toma la tensión de un pin de datos del
que formarı́a un acorde (ver Fig.3). El modelo de puerto paralelo.
PowerDEVS se muestra en la Fig.4. Al simular
el modelo, capturamos además el sonido con
un micrófono, obteniendo una forma de onda
bastante similar a la original como puede verse
en la Fig.5.
5. CONCLUSIONES
90
cionamos es totalmente gratuita) puede descargar
80
del sitio: www.fceia.unr.edu.ar/lsd/powerdevs.
70
60
50
40
REFERENCIAS
30
Barabanov, Michael (1997). A linux-based real-
20
time operating system. Master’s thesis. New
10
Mexico Institute of Mining and Technology.
0
New Mexico.
-10
0 2 4 6 8 10
Bergero, Federico (2008). Desarrollo de una
Fig. 8. Velocidad de referencia plataforma de simulación en tiempo real por
eventos discretos. Tesina de Grado. FCEIA –
80
UNR.
Bovet, Daniel and Marco Cesati (2002). Unders-
70
tanding the Linux Kernel. O’ Reilly.
60
Cellier, Francois E. and Ernesto Kofman (2006).
50
Continuous System Simulation. Springer. New
40 York.
30 Filippi, Jean-Baptiste and Paul Bisgambiglia
20
(2004). Jdevs: an implementation of a devs
based formal framework for environmental mo-
10
delling. Environmental Modelling & Software
0
0 2 4 6 8 10 19(3), 261–274.
Fig. 9. Velocidad medida Härtig, Hermann, Robert Baumgartl, Martin
Borriss, Claude-Joachim Hamann, Micheal
Hohmuth, Frank Mehnert, Lars Reuther, Se-
Esta herramienta puede ser utilizada en muchı́simas bastian Schönberg and Jean Wolter (1998).
aplicaciones principalmente de ingenierı́a (proce- Drops: Os support for distributed multimedia
samiento de señales, implementación de control, applications. In: Proceedings of the 8th ACM
de observadores, detección de fallas, etc.). SIGOPS European workshop on Support for
La herramienta garantiza una latencia máxima composing distributed applications. pp. 203–209.
del orden de 2 µs (4 órdenes de magnitud de Hildebrand, Dan (1992). An architectural over-
mejora frente a lo que se puede obtener utilizando view of qnx. In: Proceedings of the Workshop on
Windows). De esta manera, podrı́amos emitir Micro-kernels and Other Kernel Architectures.
eventos a una frecuencia de 500 KHz (suponiendo Berkeley, CA, USA. pp. 113–126.
que el Hardware tiene velocidad suficiente para Mantegazza, P., E. L. Dozio and S. Papacha-
realizar los cáculos involucrados) ralambous (2000). Rtai: Real time application
interface. Linux Journal.
Mediante varios ejemplos de aplicación, verifica- Pagliero, Esteban, Marcelo Lapadula and Ernesto
mos el correcto funcionamiento de la herramienta Kofman (2003). PowerDEVS. Una Herramienta
y su aplicabilidad en casos reales (particularmente Integrada de Simulación por Eventos Discretos.
en el caso del control del motor de corriente In: Proceedings de RPIC 2003. Vol. 1. San
continua) . Nicolas, Argentina. pp. 316–321.
Actualmente estamos trabajando en utilizar esta Wainer, Gabriel (2002). Cd++: a toolkit to
herramienta como base de distintas aplicaciones develop devs models. Software: Practice and
prácticas, particularmente para el procesamiento Experience 32(13), 1261–1306.
asincrónico de señales en tiempo real y para el Wehner, Christof (2006). Tornado and VxWorks.
desarrollo de una plataforma de prueba para sis- BoD.
temas de control de movimiento (y de electrónica Zeigler, Bernard and Hessam Sarjoughian
de potencia en general). (2000). Introduction to DEVS Modeling
and Simulation with JAVA: A Simplified
Ponemos especial énfasis en las aplicaciones de Approach to HLA-Compliant Distributed
control de electrónica de potencia ya que los Simulations. Arizona Center for Integrative
métodos de QSS que utiliza PowerDEVS tienen Modeling and Simulation. Available at
una gran eficiencia para la simulación en tiempo http://www.acims.arizona.edu/.
real de esta clase de sistemas. Zeigler, Bernard, Tag Gon Kim and Herbert
En este momento estamos también finalizando Praehofer (2000). Theory of Modeling and
una versión distribuible de la herramienta con Simulation. Second edition. Academic Press.
el sistema operativo de tiempo real completo. New York.
Actualmente, la herramienta (que como ya men-