Desarrollo de laboratorios virtuales con aplicación a la ense

Anuncio
Desarrollo de laboratorios virtuales con aplicación a la enseñanza
del control usando Modelica
Carla Martı́n-Villalba, Alfonso Urquı́a y Sebastián Dormido
Departamento de Informática y Automática, UNED
Juan del Rosal 16, 28040 Madrid, España
{carla, aurquia, sdormido}@dia.uned.es
Resumen
Se propone una metodologı́a para el desarrollo
de laboratorios virtuales, que facilita su programación, reutilización y mantenimiento. Se
fundamenta en posibilitar que el desarrollador pueda describir completamente el laboratorio virtual empleando el lenguaje de modelado Modelica. Con este fin: (1) se ha propuesto un procedimiento sistemático para adaptar
cualquier modelo escrito en Modelica para su
uso como modelo interactivo de un laboratorio
virtual; y (2) se ha programado una librerı́a
en Modelica, denominada VirtualLabBuilder,
que permite describir la vista del laboratorio
virtual de manera muy versátil y sencilla, y
enlazar las variables del modelo con los atributos gráficos y controles de la vista. A partir de la descripción en Modelica del laboratorio virtual, su código ejecutable es generado de
manera automática por el entorno de simulación Dymola. Una vez generado dicho código,
el laboratorio puede ser ejecutado sin necesidad de disponer del entorno Dymola. En este
artı́culo se presenta este nuevo enfoque para el
desarrollo de laboratorios virtuales y se ilustra
mediante un caso de estudio: el laboratorio virtual de un evaporador industrial.
1.
Introducción
Un laboratorio virtual es un entorno distribuido de herramientas de simulación y animación,
cuyo propósito es realizar la simulación interactiva de un modelo matemático. Los laboratorios virtuales proporcionan un método flexi-
ble y amigable para definir los experimentos
que se llevan a cabo sobre el modelo, siendo
por ello herramientas útiles para la enseñanza.
Tı́picamente, la definición de un laboratorio virtual incluye las tres partes siguientes: la
introducción, el modelo y la vista. La introducción es la documentación (frecuentemente un
conjunto de páginas HTML) donde se exponen los conceptos y fenómenos ilustrados por
el laboratorio virtual, se explica cómo experimentar con el laboratorio, y se proponen actividades y ejercicios. La vista es la interfaz entre
el usuario y el modelo. Su objetivo es proporcionar una representación visual del comportamiento dinámico del modelo y facilitar las
acciones interactivas del usuario sobre aquél.
Las propiedades gráficas de los elementos de
la vista se enlazan a las variables del modelo,
produciendo un flujo bidireccional de información entre la vista y el modelo.
Modelica [1] es una lenguaje de modelado
orientado a objetos, disponible gratuitamente,
que facilita el paradigma de modelado fı́sico.
Los modelos se describen matemáticamente
por ecuaciones algebraico diferenciales (DAE)
y discretas. Modelica facilita una descripción
declarativa (no causal) del modelo. Por tanto,
el uso de Modelica reduce considerablemente
el esfuerzo de modelado y permite una mejor
reutilización de los modelos.
Modelica está orientado al modelado multidominio. Actualmente existen gran número de
librerı́as de componentes gratuitos y comerciales en diferentes dominios [1], incluyendo los
dominios eléctrico, mecánico, termo-fluido y
fı́sico-quı́mico. Modelica es un lenguaje adecuado para describir el tipo de modelos multidominio empleados en el ámbito del control
automático.
Sin embargo, ni el lenguaje Modelica ni los
entornos de simulación que soportan Modelica
(Dymola [2], OpenModelica [3], etc.) posibilitan la simulación interactiva. Por ello, extender las capacidades de Modelica para facilitar la simulación interactiva (es decir, la implementación de laboratorios virtuales) es un
campo de investigación abierto.
El objetivo del trabajo presentado en este
artı́culo es posibilitar la descripción de laboratorios virtuales empleando el lenguaje Modelica. Para conseguir este objetivo, se han completado las dos tareas siguientes:
1. Se ha propuesto una metodologı́a sistemática para transformar cualquier modelo o librerı́a de modelos en Modelica a una
formulación adecuada para la simulación
interactiva, posibilitando de esta manera
que sean usados como modelos de laboratorios virtuales. Esta metodologı́a es susceptible de ser automatizada, si bien por
el momento no se ha desarrollado ninguna
herramienta software a tal fin.
2. Se ha diseñado y programado una librerı́a en Modelica, denominada VirtualLabBuilder, que contiene modelos de elementos gráficos interactivos (contenedores, formas geométricas animadas y controles interactivos). Estos modelos permiten al usuario componer la vista y enlazar las propiedades visuales de la vista
con las variables del modelo. La interfaz
gráfica interactiva se genera automáticamente durante el proceso de inicialización
del modelo. Los componentes de la librerı́a contienen el código necesario para realizar la comunicación entre la vista y el
modelo.
2.
Desarrollo de laboratorios virtuales en lenguaje Modelica
A continuación, se describe brevemente cada
uno de los pasos a seguir para el desarrollo de
laboratorios virtuales siguiendo la metodologı́a
propuesta.
2.1.
Modelo del laboratorio virtual
El modelo en Modelica tiene que ser adaptado para la simulación interactiva siguiendo la
metodologı́a descrita en [4]. Las variables interactivas pueden escogerse entre las variables
de estado, los parámetros y las variables de entrada al modelo. Esencialmente, esta metodologı́a impone que aquellos parámetros y variables de entrada del modelo que quieran hacerse
interactivas deben ser redefinidas como variables de estado constantes (es decir, con derivada nula). Asimismo, debe añadirse al modelo
el código necesario (cláusulas when) para modificar en tiempo de ejecución el valor de las
variables interactivas en respuesta a las acciones del usuario sobre la vista del laboratorio.
2.2.
Vista del laboratorio virtual
La descripción en Modelica de la vista del
laboratorio virtual se realiza extendiendo y
conectando los componentes gráficos necesarios de la librerı́a VirtualLabBuilder (véase la
Figura 1). La clase Modelica que describe la
vista debe ser una subclase de la clase PartialView (véase la Figura 1a). La clase PartialView contiene un componente predefinido: el
elemento raı́z para la descripción de la vista.
Las clases que describen los componentes gráficos se encuentra dentro de los paquetes InteractiveControls, Drawables y Containers de la librerı́a
VirtualLabBuilder (véanse las Figuras 1b, 1c y
1d respectivamente) [4]. Los componentes gráficos deben conectarse por el programador del
laboratorio virtual formando una estructura.
Las conexiones entre los componentes gráficos
determinan la topologı́a de la vista del laboratorio virtual.
2.3.
Composición del laboratorio
La descripción en Modelica del laboratorio virtual tiene que incluir una instancia de la clase
VirtualLab, que se encuentra en la librerı́a VirtualLabBuilder (véase la Figura 1a). El usuario
debe proporcionar el nombre de las clases del
b)
a)
c)
d)
Figura 1: Librerı́a VirtualLabBuilder: a) Estructura general; y clases dentro de los paquetes siguientes:
b) InteractiveControls; c) Drawables; y d) Containers.
modelo y de la vista. Estas dos clases se han
programado en los pasos 2.1 y 2.2 respectivamente. Además, el diseñador del laboratorio
debe especificar, escribiendo las ecuaciones necesarias, cómo se conectan las variables de las
clases del modelo y de la vista.
2.4.
Traducción y ejecución del laboratorio virtual
El desarrollador del laboratorio virtual necesita traducir usando Dymola [2] una instancia
de la clase Modelica definida en el paso 2.3 a
un fichero ejecutable (dymosim.exe). El laboratorio virtual se lanza ejecutando este fichero.
2.5.
Generación automática del código y
ejecución
Al inicio de la ejecución de la simulación, se
realizan algunos cálculos para resolver el modelo en el instante inicial. Se evalúan ası́ las
secciones iniciales (initial sections) del modelo
Modelica que describe el laboratorio.
En particular, se ejecutan las secciones iniciales de los objetos gráficos interactivos que
componen la clase de la vista y de PartialView.
Esta secciones iniciales contienen llamadas a
funciones Modelica, que encapsulan llamadas
a funciones C externas. Estas funciones C son
generadores de código Java.
Como resultado, durante la inicialización del
modelo, el código Java de la vista se genera automáticamente, se compila y empaqueta en un
fichero jar. También se establece automáticamente el procedimiento de comunicación entre
la vista y el modelo. Esta comunicación se basa
en una arquitectura cliente-servidor: el programa C generado por Dymola [2] es el servidor y
el programa Java (que se ha creado automáticamente durante la inicialización del modelo)
es el cliente.
Una vez se ejecuta el fichero jar, se muestra la vista del laboratorio virtual y se establece la comunicación cliente-servidor. Durante la ejecución de la simulación, hay un flujo
bidireccional de información entre la vista y el
modelo.
Figura 2: Diagrama de la descripción en Modelica de la vista del laboratorio virtual del evaporador.
3.
Evaporador
Este laboratorio virtual pretente ilustrar el
comportamiento dinámico de un evaporador
industrial bajo dos estrategias de control diferentes: manual y PID descentralizado.
3.1.
Modelo del laboratorio virtual
El modelo matemático del evaporador industrial se ha extraı́do de [5]. La entrada de agua
se encuentra en la parte baja del evaporador,
y la salida de vapor en su parte superior. En
el interior del evaporador se encuentra un calentador. Este modelo se ha compuesto usando
componentes de JARA 2i [6], una versión de la
librerı́a JARA [7] que ha sido adaptada para
la simulación interactiva aplicando la metodologı́a propuesta en [4].
3.2.
Vista del laboratorio virtual
La descripción Modelica de la vista del laboratorio virtual (véase la Figura 2) genera la
interfaz gráfica interactiva mostrada en la Figura 3. La relación entre la descripción en Modelica y la correspondiente interfaz gráfica se
explica brevemente a continuación.
El modelo Modelica que describe la vista debe extender la clase PartialView, que contiene
un elemento gráfico predefinido: root. Al componente root se han conectado tres elementos:
mainFrame, dialog y dialog1. Los componentes
mainFrame y dialog generan las dos ventanas
mostradas en la Figura 3. El componente mainFrame alberga tres contenedores: drawingPanel,
panelNorth y panelSouth. El elemento drawingPanel contiene un diagrama animado de la planta.
Dicho diagrama se compone usando elementos
ubicados en el paquete Drawables de la libre-
Figura 3: Vista del laboratorio virtual del evaporador.
Figura 4: Evolución temporal del algunas variables seleccionadas del laboratorio virtual del evaporador.
rı́a VirtualLabBuilder (véase la Figura 1c). Los
contenedores panelNorth y panelSouth albergan
controles interactivos. Estos controles interactivos permiten al usuario seleccionar la estrategia de control (manual o automática), cambiar el flujo de entrada de la bomba y el flujo
de calor del calefactor cuando se selecciona la
estrategia de control manual, cambiar los valores de consigna del volumen de agua y flujo de
vapor, modificar los valores de los parámetros
y variables del evaporador.
Los dos botones situados en la parte superior del elemento mainFrame (véase la Figura 3) permiten al usuario parar y reanudar la
simulación y mostrar una ventana con la información sobre el laboratorio virtual. El contenedor dialog1 genera la interfaz gráfica mostrada en la Figura 4. Ese contenedor alberga
componentes de la clase PlottingPanel que contiene elementos de la clase Trail. Estos elementos generan trazas que muestran la evolución
temporal de algunas variables relevantes del
sistema (véase la Figura 4).
3.3.
Descripción del laboratorio virtual y
ejecución
Como se explicó en la Sección 2, el laboratorio en Modelica se traduce a código ejecutable
usando Dymola. Cuando se ejecuta el laboratorio virtual, se muestra la vista del laboratorio virtual (véase la Figura 3).
La respuesta dinámica del evaporador a un
cambio escalón en la consigna del flujo de salida de vapor se muestra en la Figura 4. Este
cambio ha sido realizado interactivamente por
el usuario del laboratorio virtual en el instante
243 s. El evaporador está operando en modo
automático. Los cuatro gráficos siguientes se
muestran en la Figura 4: (1) valores del flujo
de vapor y su consigna; (2) el flujo de calor
generado por la calefacción; (3) el valor del
volumen de agua contenido dentro del evaporador, y su valor de consigna; y (4) la tasa de
flujo de lı́quido generada por la bomba.
4.
Conclusión
Se ha propuesto un enfoque novedoso para el
desarrollo de laboratorios virtuales usando el
lenguaje Modelica, que permite sacar partido
de las capacidades de Modelica para el desarrollo y reutilización de modelos, y describir la
vista del laboratorio de forma sencilla y versátil. Para ello, se ha propuesto una metodologı́a sistemática para la adecuación de cualquier modelo en Modelica a su empleo en un
laboratorio virtual y se ha desarrollado la librerı́a VirtualLabBuilder. Este enfoque se ha
aplicado con éxito al desarrollo del laboratorio
virtual de un evaporador industrial.
Agradecimientos
Este trabajo ha sido realizado bajo la subvención del CICYT en el marco del Proyecto
DPI2004-01804 y del IV PRICIT bajo el marco del Proyecto S-0505/DPI/0391.
Referencias
[1] Modelica
Association
http://www.modelica.org/
website:
[2] Dynasim AB, Dymola. User’s Manual,
Lund, Sweden, 2006.
[3] OpenModelica
Project
website:
http://www.ida.liu.se/ pelab/modelica/
OpenModelica.html
[4] Martin, C., Urquia, A., and Dormido, S.,
An Approach to Virtual-lab Implementation using Modelica, In: Proc. 20th European Simulation and Modelling Conference, 2006, pp. 137–141.
[5] Ramirez, W. Computational Methods for
Process Simulation, Butterworths Publishers, Boston, 1989.
[6] Martin C, Urquia A, Dormido S. JARA
2i - A Modelica Library for Interactive Simulation of Physical-Chemical Processes.
In: Proc. European Simulation and Modelling Conference, 2004, pp. 128–132.
[7] Urquia, A. and Dormido, S., 2003,
Object-Oriented Design of Reusable Model Libraries of Hybrid Dynamic Systems.
Mathematical and Computer Modelling of
Dynamical Systems, 9(1), pp. 65–118.
Descargar