SciELO - Scientific Electronic Library Online

 
vol.13 issue52Un adiós a nuestro editor Federico GenoletThe spanish textile industry before the sector’s liberalization: An analysis based on the technical efficiency and the size of the firms author indexsubject indexarticles search
Home Pagealphabetic serial listing  

Services on Demand

Journal

Article

Indicators

Related links

Share


Universidad, Ciencia y Tecnología

Print version ISSN 1316-4821On-line version ISSN 2542-3401

uct vol.13 no.52 Puerto Ordaz Sept. 2009

 

Sistema de control en tiempo real para una Planta piloto compacta usando software libre

Alfonsi, Alfonso;  Pérez, Jesús

El MSc. Alfonso S. Alfonsi es Profesor Asociado del Dpto. de Computación y Sistemas de la UDO, Núcleo de Anzoátegui, Barcelona, Edo. Anzoátegui, Venezuela, telef. 58-281-4203257, correo electrónico asas@cantv.net.ve.

El Dr. Jesús A. Pérez es Profesor Titular del Instituto Universitario Tecnológico de la Victoria, Edo. Aragua y del Postgrado en Instrumentación de la Facultad de Ciencias de la Universidad Central de Venezuela, Venezuela. telef. 58-212-6051198, correo electrónico jesusperez@gmail.com.

Resumen: Un sistema de control en tiempo real se desarrolla en una planta piloto integrada por componentes industriales con fines académicos y de investigación, utilizando la metodología HOOD, Linux/Ubuntu como sistema operativo y Ada 2005 como soporte de ejecución. En el diseño lógico, hay nueve descomposiciones jerárquicas para el control individual y multivariable en lazo abierto y cerrado, de tres lazos: caudal, presión en la bomba y nivel en el tanque 2, con controladores deadbeat. En el diseño físico, se utiliza un planificador guiado por prioridades, y se aplica los análisis basados por utilización y en tiempo de respuesta, manifestando que las tareas tienen sus plazos garantizados, siendo esta condición necesaria y suficiente. Para el diseño detallado se generan paquetes, funciones, procedimientos y tareas. Finalmente en la fase de pruebas, se hacen experiencias en lazo abierto y cerrado. Las variables fueron validadas lógica y temporalmente. El sistema presenta un error en estado permanente y componente oscilatoria entre instantes de muestreo despreciables, existiendo los efectos del retardo computacional. Los códigos del sistema, son un aporte para el diseño de sistema de control en tiempo real asistido por computadora utilizando software libre.

Palabras Clave: Sistemas de control discreto/ Sistemas de tiempo real/ Software libre.

Real-time control system for a compact pilot plant using open source software

Abstract: A real-time control system is developed in a pilot plant integrated by industrial components with academic aims and of investigation. Using HOOD methodology, Linux/Ubuntu like operating system and like run supports Ada 2005. In the logical design, there are nine hierarchical decompositions for the individual control and multivariable in open and closed loop, of three loops: flow, pressure in the bomb and level in the tank 2, with deadbeat controllers. In the physical design, a scheduler is used guided by priorities, applying the based analyses for utilization and in response time, manifesting that the tasks have their guaranteed terms, being this necessary and enough condition. For the detailed design packages, features, procedures and tasks are generated. Finally in the phase of tests, experiences in open and closed loop become. The variables were validate logics and temporarily. The system presents an error in permanent state and oscillatory component among worthless sampling instants, the effects existing of the computational delay. The codes of the system are a contribution for the design of control system of real time computer-aided using open source software.

Keywords: Discrete Control system/ Open Source Software/ Real Time System.

Manuscrito finalizado en Barcelona, Edo. Anzoátegui, Venezuela el 2009/02/16, recibido el 2009/03/23, en su forma final (aceptado) el 2009/05/27.

I. INTRODUCCIÓN

Los sistemas de control por computadora son definidos de tiempo real por el hecho de realizarse con herramientas computacionales tradicionales, cualquier lenguaje de programación y/o por minimizar el tiempo de respuesta de un conjunto de procedimientos. Entonces es necesario utilizar las condicionantes en la implementación de este tipo de sistemas en los que el tiempo es fundamental.

En esta entrega se desarrolla un sistema capaz de manejar en tiempo real, lazos individuales y multivariable de una Planta Piloto Compacta (PPC) construida con componentes industriales [1], que sirve como contribución a la educación e investigación en el área de control e instrumentación, Fig. 1, usando metodologías y herramientas computacionales acordes con este tipo de sistemas y de libre distribución.

En la literatura se consiguen aportes en esta dirección. Balbastre [2] puntualiza la integración del tiempo real y el control industrial atacando la línea del análisis del retardo de un sistema de control. Torres [3] utiliza a HOOD para el diseño de una planta piloto de ensamblaje. Un trabajo interesante está en [4], que hace un acercamiento del control y tiempo real desde el punto de vista del codiseño. Seto [5] perfila uno de los primeros trabajos en esta área del conocimiento integrando la planificación de tareas a un sistema de control. En [6] se desarrolla un sistema de control en tiempo real que permite la simulación de los lazos involucrados en una planta piloto.

El artículo está estructurado como sigue: En la sección siguiente, el desarrollo del sistema con HOOD y las herramientas computacionales utilizadas, los resultados para luego hacer la discusión de los mismos, culminando con las conclusiones y las respectivas referencias.

II. DESARROLLO

Se siguen los pasos sugeridos en el método de diseño orientado a objetos estructurados para sistemas de tiempo real estricto HRT-HOOD [7], proceso iterativo centrado en la etapa de diseño (Fig. 2) de amplia utilización en esta área.

En las aplicaciones en tiempo real se considera el soporte debido al sistema operativo, siendo la base el Ubuntu, basado en Debian [8]. Como soporte sobre la ejecución específica se escoge el Ada 2005, debido a que incluye en su definición librerías para tiempo real, y otros requisitos como concurrencia, manejo de excepciones, gestión de tiempo, acceso a interfaces, portabilidad, gestión de interrupciones (acceso a bajo nivel) y modelo de datos orientado a objetos y agentes [9]. Como compilador se usa, el GNAT GPL (acrónimo de GNU New York University Ada Translator) [10].

1. Requisitos

Se definen los funcionales y no funcionales, tomando como caso de estudio la PPC [1] manejada por una computadora Pentium III de 450 MHz. Tiene una aplicación en LabViewTM bajo WindowsTM, ubicada en el Laboratorio de Instrumentación de la Facultad de Ciencias de la Universidad Central de Venezuela. Consta de dos tanques (T1 y T2), dos bombas a la salida de cada uno de ellos (B1 y B2), varios equipos de medición y tres válvulas neumáticas para las acciones de control (FCV-01, PCV-03 y LCV-04). Todas las salidas de los medidores pasan por acondicionadores de señal y entran a la computadora, donde está el programa de aplicación con instrumentos virtuales que contempla: manejo manual de la planta, determinación de la respuesta al escalón y uso de instrumentos de medición.

1.1 Requisitos funcionales

Se puede dividir en dos componentes: operación real e interacción con el operador. Todos los eventos deben ser almacenados en un archivo de datos y recuperados cuando así lo requiera el operador, para su posterior estudio, utilizando un computador Pentium IV de 1,2 GHz.

Operación Real. Permitirá la operación en tiempo real de los diferentes lazos abiertos o cerrados (individual o multivariable) que conforman la planta: caudal en la tubería, presión en B1, nivel en T2. También se encuentra el control de seguridad de las bombas. Para operar físicamente el sistema se debe realizar programas puentes entre las dos computadoras, como instrumentos virtuales, funciones o procedimientos que permitan esta comunicación.

Con respecto a los controladores se utilizan los pasos desarrollados en [11], quedando las funciones de transferencia:

Caudal

Presión B1:

Nivel en T2:

Con respecto al control de bombas, no deben salir de los límites de seguridad y se encuentran en los diferentes lazos de operación. Así será su operación: Para T1, se verifica que está abierta la válvula FCV-02 y PCV-03, entonces la Bomba B1 estará en funcionamiento. Para T2, se compara el nivel de T2 obtenido por LTI-04 con el nivel máximo y mínimo, si es verdadera la operación, y está abierta la válvula LCV-04, entonces la Bomba B2 estará en funcionamiento.

Interacción con el Operador. Todo el sistema es monitoreado por un operador quien podrá manipular todos los elementos que conforman la PPC en tiempo real.

La relación entre el sistema y los dispositivos externos se muestra en la Fig. 3.

1.2 Requisitos no funcionales Para estos requisitos se toman los temporales, períodos y tiempo de cómputo, dejando para otra entrega la confiabilidad. La operación sobre dispositivos es realizada por manejadores implementados como tareas, definidas siguiendo el patrón presentado en [12], Tabla I.

2. Arquitectura del Sistema

El diseño de la arquitectura se define en dos fases, la primera el diseño de la arquitectura lógica [7] que se avoca a la definición de compromisos con los requisitos funcionales, y la segunda, la arquitectura física donde se incorporan los requisitos temporales y la planificación.

2.1 Arquitectura lógica

Descomposición de primer nivel. Los requisitos funcionales sugieren nueve (9) subsistemas, según se muestra en la Fig. 4.

Subsistema Consola. Responsable de la interfaz con el operador, al invocar Opreal. Llama a las operaciones: RL_Abierto de rlazo_abierto y RL_Cerrado de rlazo_cerrado

Subsistema r_lazo_abierto y r_lazo_cerrado. Aquí se encuentran las tareas periódicas necesarias para operar físicamente los diferentes lazos de la PPC, y están los controladores discretos de los tres lazos planteados.

Otros Subsistemas. El subsistema control_bombas es el responsable del procedimiento de seguridad para el funcionamiento de las bombas B1 y B2. El Subsistema apertura_val es el responsable de establecer los porcentajes de apertura en las diferentes válvulas de control; tiene tres operaciones: Xcaudal, XPresion y XNivel. El Subsistema setpoint es el responsable para establecer los puntos de operación de la PPC en lazo cerrado, tiene tres operaciones: REFECaudal, REFEPresion y REFENivel. El Subsistema vars es el responsable de alojar las variables que se utilizan en el sistema, debe ser protegido y tiene veinte (20) operaciones. El Subsistema medidas es el responsable de las lecturas a los diferentes dispositivos instalados en la PPC, aquí se desarrolla los manejadores de los puertos de comunicación. El Subsistema actuador es el responsable de enviar la señal de las aperturas de las válvulas de control (LVC-04, PVC-03, FVC-02) y de accionar el encendido apagado de las bombas. Aquí se desarrollan los manejadores del puerto de comunicación. Tiene siete operaciones agrupadas en la configuración del puerto de entrada (abrir o cerrar) y la transmisión de la magnitud de la señal de control tanto individual como multivariable.

2.2 Arquitectura Física

La operación del sistema es realizada por paquetes y tareas definidas en la Tabla I, siendo sus requisitos temporales: tiempos de cómputo y períodos.

Tiempos de cómputo y períodos. Los tiempos de cómputo se obtienen analizando el código ejecutable. El código se descompone en bloques secuenciales, calculando el tiempo de ejecución de cada uno de ellos, y tomando el mayor, usando las funciones del paquete Calendar y Real_Time, librerías básicas de Ada de tiempo real, específicamente el procedimiento Split y la función To_Duration [9]. En cuanto a los períodos, se resolvió guiar sus magnitudes por el período de muestreo y sincronización de los computadores asociados al proyecto; hay transmisión de datos desde los sensores de la PPC hasta que ingresan en los arreglos respectivos en el computador donde se hospeda el sistema.

Prioridades. Ada permite la programación prioridades y se declara con la directriz de compilación pragma [9].

Implementación de las tareas. La planificación se realiza usando un planificador guiado por prioridades, dándole más prioridad a las tareas de lectura. Para la comunican de las variables entre las tareas se implementa el método de variables compartidas, que permite un mecanismo de exclusión mutua en secciones críticas con objetos protegidos.

Análisis de planificabilidad del sistema. Primero se utiliza la condición suficiente de planificabilidad de un sistema en tiempo real con las restricciones monotónicas de frecuencia, es decir, planificador expulsivo con asignación de mayor prioridad a las tareas más frecuentes, tareas periódicas e independientes y plazos iguales a los períodos [13]. U(n) representa la utilización máxima para que la planificabilidad de un sistema de n tareas esté garantizada.

Luego se aplica la ecuación del tiempo de respuesta [13], siendo la suma del tiempo de cómputo más la interferencia que sufre por la ejecución de tareas más prioritarias que se puedan ejecutar o activar al mismo tiempo, que se resuelve mediante la siguiente relación de recurrencia:

3. Diseño Detallado En esta fase se codifican los paquetes, funciones y procedimientos para la operación de la PPC en lazo abierto o lazo cerrado, para así cumplir con los objetivos planteados, siguiendo las descomposiciones jerárquicas de la arquitectura. Se presentaran a continuación los paquetes necesarios en lazo cerrado. Todos los códigos del sistema se encuentran en [12].

El paquete Con_Sim ofrece un ingreso a la operación real con la PPC, por el procedimiento Opreal. El paquete R_lazo_cerrado tiene la función de ofrecer tareas que ejecuten los diferentes lazos cerrados (individuales o multivariables), su acceso es por la tarea OP_PRIN_C, dando entrada por RL_Cerrado. A continuación se muestra un trozo de la especificación de lazo_cerrado.ads, referente al caudal.

package r_lazo_cerrado is

task OP_PRIN_C is

entry RL_Cerrado; -- Entrada a lazo cerrado

end OP_PRIN_C;

…

task C_CAUDAL is

pragma Priority (system.Priority'_last);

entry C_Flujo;

end C_CAUDAL;

task REAL_RQ is

pragma Priority (system.Priority'_last-1);

entry Caudal_rr;

end REAL_RQ;

task CTRLR_CAUDAL is

pragma Priority (system.Priority'_last-2);

entry CR_Caudal;

end CTRLR_CAUDAL;

…

end r_lazo_cerrado;

La tarea CTRLR_CAUDAL es donde se implementa el controlador digital, su código puede ser modificado para adaptarlo a otro algoritmo de control, sin necesidad de cambiar todo el sistema. A continuación se presenta el cuerpo de esta tarea:

task body CTRLR_CAUDAL is

Qct, SPQC, e1Q, e0Q, S1Q, S0Q: Float:= 0.0;

Proxima_Vez: Time;

begin

accept CR_Caudal; -- Entrada de la tarea

Fin:= Var.RSALIR;

while (Fin=false) loop

Var.LeerCaudal (Qct);-- Leer caudal de la PPC

SPQC:=Var.retor_RQ; -- Leer el setpoint indicado

e1Q:= SPQC - Qct; -- Magnitud del error

-- Controlador lazo de caudal --

S1Q:= S0Q + 263.1578*e1Q - 261.10526*e0Q;

S0Q:= S1Q;

e0Q:= e1Q;

Var.Apertura_Q (S1Q); -- Nueva apertura FCV-02

Visor.Escribe_Dato (S1Q);new_line;

Proxima_Vez:=Clock + Intervalo; -- Próximo período

delay until Proxima_Vez; -- Esperar

Fin:= Var.RSALIR;

end loop;

end CTRLR_CAUDAL;

El paquete VARS implementa la comunicación de variables mencionada anteriormente. A continuación se muestra un trozo de la especificación del paquete.

package VARS is

protected type VARIABLES is

procedure PonerCaudal (valor: in float);

procedure LeerCaudal (valor: out float);

…

private

Qs,PB1s,NT2s:float;

…

end VARIABLES;

end VARS;

Otros paquetes del sistema. Se desarrollan paquetes siguiendo la descomposición jerárquica de primer nivel presentado en la Fig 4.

4. Resultados

De los requisitos no funcionales, los períodos y cálculos temporales se presentan en la Tabla II. Como ejemplo de cálculo, un bloque de 8 códigos arroja un tiempo de cómputo aproximado de 0,168 ms.

Aplicando el análisis basado en la utilización con 12 tareas, el cálculo usando (4) es:

En la Fig. 5 se muestra el diagrama temporal de ejecución, y en la Tabla III se presenta el cálculo del tiempo respuesta, usando (5).

Fase de Pruebas Se ejecutaron diferentes experiencias en la obtención de las señales de salida del caudal, presión en la bomba 1 y nivel en el tanque 2 de la PPC, realizando pruebas de funcionamiento controlados a cada lazo, tanto abierto como cerrado.

Prueba de Lazo Abierto. El procedimiento es el siguiente: Ejecutar la aplicación del computador bajo Linux. Invocando a main desde el Terminal y el sistema guía al operador. Se ingresa la apertura de la válvula FCV-02, en este caso 40%. Luego enciende la bomba y el sistema entra en ejecución. En la Fig. 6 se muestra la salida del sistema. También se realizan pruebas del lazo de presión y nivel.

Prueba de Lazo Cerrado. El procedimiento es similar al anterior, sólo que pide ingresar la referencia de caudal, en este caso 19,41 LPM. Luego enciende la bomba y el sistema entra en ejecución. Se presenta la salida de la respuesta de este lazo y la entregada por simulación de [6], Fig. 7. La respuesta del lazo de presión y nivel se muestra en las Figuras 8 y 9.

5. Discusión de resultados

Del análisis por utilización, se extrae que el sistema no es planificable. Ello no significa que si el sistema tiene una mayor utilización no pueda ser planificable, sino que es suficiente comprobar la inecuación (4) para asegurar que el sistema es planificable bajo rate monotonic. En la Fig. 5 se demuestra que las tareas cumplen sus plazos, debido a la armonicidad de sus períodos, y los resultados de la Tabla III lo confirman, ya que este tiempo es la suma del tiempo de cómputo más la interferencia que sufre por la ejecución de tareas más prioritarias que se puedan activar al ejecutar o activar al mismo tiempo, siendo ésta una condición suficiente y necesaria.

Del diseño detallado, se recoge que se realizaron nueve paquetes activos en Ada, y se ejecutaron según la planificación basada en prioridades. Las tareas utilizan un recurso compartido para almacenar las variables del proceso, usando paquetes protegidos y privados evitando el bloqueo.

Las experiencias realizadas arrojan lo siguiente: el manejo en lazo abierto del caudal, con una apertura de FCV-02 de 40% llega a 19,41 LPM, Fig. 6. También se realizaron pruebas con la presión, abriendo la PCV-03 en 40% y la FCV-02 en 0%, alcanzando 27.68 psi; el nivel por su parte, con una apertura de LVC-04 de 40% y FCV-02 en 0%, el sistema monitores una disminución pasando por 20 cm en el tiempo previsto para ello. Es decir, el sistema maneja lógica y temporalmente la PPC.

De las Figuras 7, 8 y 9 se desprende que el comportamiento en lazo cerrado es el esperado, observándose que las salidas presentan un error debido a la comunicación del dato, y el error en estado permanente y el componente oscilatorio es despreciable, alcanzando las referencias aportadas por el operador.

En la literatura hay propuestas y aplicaciones que utilizan metodologías y herramientas propias en el desarrollo de sistemas en tiempo real, la gran mayoría en forma parcial como el ofrecido en [2] en el que se utiliza a HOOD sólo en el diseño de la arquitectura, y otras en las que se apoya la utilización total, como en [16] que usan herramientas para el desarrollo de sistemas de control de libre distribución, como COMEDI, Scilab y el sistema operativo de tiempo real RTAI. El aporte del presente trabajo utiliza a HOOD en todas sus etapas de diseño, confeccionando luego los subsistemas en Ada 2005, lenguaje con directrices de tiempo real, bajo el sistema operativo Linux/Ubuntu, herramientas de libre distribución. Como próxima entrega se utilizará un núcleo de sistema operativo en tiempo real, ya sea RTAI o MaRTE, con el propósito de cubrir completamente los requerimientos temporales del sistema y el análisis de confiabilidad.

III. CONCLUSIONES

1. Se entregan nueve descomposiciones jerárquicas que se transformaron en código para desarrollar los procedimientos, funciones y tareas del sistema.

2. Se aplicó el análisis basado por el factor de utilización y el tiempo de respuesta, dando como resultado que las tareas cumplen con sus plazos de finalización, siendo ésta una condición necesaria y suficiente para validar la planificabilidad.

3. Finalmente en la fase de pruebas, se desarrollan las experiencias en lazo abierto y cerrado, desde el punto de vista lógico y temporal, arrojando resultados favorables debido a la garantía que ofrece los períodos de activación y tiempo de respuesta de cada tarea.

4. Entonces se dispone de un programa en tiempo real, con códigos generados en Ada 2005, que puede ser utilizado como plantilla para generar otras situaciones, siendo éste un aporte en el diseño de sistemas de control en tiempo real utilizando software libre.

IV. REFERENCIAS

1. García, A. Desarrollo y construcción de una Planta Piloto manejada por computadora. Trabajo Especial de Grado Maestría. Caracas, Facultad de Ciencias, UCV, octubre de 2004. 181p.        [ Links ]

2. Balbastre, P., Lluesma, M. y Ripio, I. Análisis y compensación de los retardos de planificación en sistemas de control. Rev. Iberoamericana de Automática e Informática Industrial, vol. 3, Nº 2, abril 2006, pp. 40-49.        [ Links ]

3. Torres, D. y Romero, C. Diseño de una planta piloto de ensamblaje automotriz a partir de un estilo de diseño topdown. Rev. Colombiana de Tecnologías de Avanzada. (on line). 2003, vol. 1, (citado el 12 de diciembre de 2008). Disponible en: http://www.waset.org/pwaste/v21/v21-10.pdf        [ Links ]

4. Martínez, D. et al. Codiseño de un sistema de control en una red para regular la velocidad de un motor DC. El hombre y la máquina. (on line). julio 2005, Nº 25, (citado el 17 de abril 2008), pp. 44-50. Disponible en: http://redalyc.uaemex.mx/redalyc/pdf/478/47802505.pdf        [ Links ]

5. Seto D. et al. On Task schedulability in real-time control systems. In: Proceedings 17th IEEE Real-Time Systems Symphosium, Washington, 1996, pp. 13-21.        [ Links ]

6. Alfonsi, A. y Pérez, J. Modelo y control de tiempo real. Caso: Planta Piloto Compacta-UCV. In: CD Memorias del XIII Congreso Latinoamericano de Control Automático/VI Congreso Venezolano de Automatización y Control. Mérida, Venezuela. noviembre 2008, pp. 298-304.        [ Links ]

7. Burns, A. and Wellings, A. HRT-HOOD. A Structured Design Method for Real-Time Systems. Journal Real- Time Systems, Vol 6, Nº 1, 1994, pp. 73-114.        [ Links ]

8. Ubuntu. “Ubuntu Feisty Fawn ver. 7.04”. Oficial Page of Ubuntu. April 2007. Available in: http://www.ubuntu.com        [ Links ]

9. ISO/IEC. Ada Reference Manual. ISO/IEC 8652:200y(E).Ed 3, 2006. Available in: http://www.adaic.com/standards/05rm/html/RM-TTL.html        [ Links ]

10.GNAT GPL. GNAT GPL user’s guide. AdaCore. Free Software Foundation, ver. 2007. (30/03/07), (2007). Available in: http://www.adaic.com/standards/05rm/html/RM-TTL.html        [ Links ]

11. Alfonsi, A. y Pérez, J. Modelo y control asistido por computadora de un sistema industrial. Caso: Planta Piloto Compacta-UCV”. Revista UCT, Vol 13, Nº 50, marzo 2009, 43-50.        [ Links ]

12. Alfonsi, A. y Pérez, J. Control de tiempo real aplicado a la Planta Piloto Compacta-UCV. Trabajo de Grado de Maestría. Caracas, Facultad de Ciencias, UCV, mayo 2008, pp. 304.        [ Links ]

13. Buttazzo, G. Rate Monotonic vs. EDF: Judgment day. Real-Time Systems, Vol. 6, Nº 29, 2005, pp. 5- 26.        [ Links ]

14. Flores, J., Díaz, E. y Cabezas, Y. Simulación y control en cascada de una planta POMTM en tiempo real con RTAILAB. In: CD Memorias del XIII Congreso Latinoamericano de Control Automático/VI Congreso Venezolano de Automatización y Control. Mérida, Venezuela. noviembre 2008, pp. 852-859.        [ Links ]

Creative Commons License All the contents of this journal, except where otherwise noted, is licensed under a Creative Commons Attribution License