Mario Emanuel Serrano, Sebastián Alejandro Godoy, María Nadia Pantano, María Cecilia Fernández, María Fabiana Sardella y Gustavo Scaglia
CONICET, Instituto de Ingeniería Quıímica, San Juan, Argentina
Nota de los autores.
Este trabajo ha sido financiado por CONICET, Argentina. Los autores agradecen al instituto de Ingeniería Química de la Facultad de Ingeniería de la Universidad Nacional de San Juan.
Nota del editor. El artículo aquí publicado fue originalmente presentado por los autores en el Congreso de Automatización llevado a cabo en noviembre de 2018 en Buenos Aires, en el marco de la Semana de Control Automático AADECA ‘18.
Figura 1. Esquema de comunicación entre los dispositivos del sistema
En este trabajo se presenta un sistema de sensado y control de temperatura desarrollado principalmente para evaluar el desempeño de estrategias de control en procesos típicos de la industria química. El equipo desarrollado está basado en la plataforma Arduino y brinda la flexibilidad necesaria para el monitoreo y control de temperatura en diferentes procesos. Con el objetivo de facilitar la configuración y operación, se desarrolló una interfaz gráfica de usuario en Qt Creator que corre bajo la plataforma Windows. Se incluyen pruebas experimentales llevadas a cabo en un tanque de calentamiento, que demuestran su buen desempeño.
Palabras clave: Control de temperatura. Desarrollo en Arduino. Interfaz gráfica. Control de procesos.
Introducción
El desarrollo de nuevas estrategias de control que permitan seguir perfiles de operación en los procesos industriales no es una tarea sencilla y es una problemática actual estudiada ampliamente en la bibliografía [1]–[3]. Antes de ser implementadas, las nuevas leyes de control son evaluadas y contrastadas con otras existentes en la bibliografía a fin analizar ventajas y desventajas. Entonces, resulta conveniente contar con equipamiento adecuado para llevar a cabo experimentaciones a escala de laboratorio y piloto. Poner a punto estas plantas para este propósito requiere de un sistema de control específico que permita programar las metodologías propuestas. Generalmente, los sistemas comerciales de control no admiten programar leyes de control diseñadas por el usuario ya que cuentan con estructuras de control clásicas programadas, las cuales el usuario solo puede configurar. Esto representa una gran limitación para los investigadores y desarrolladores que se encargan de formular nuevas estrategias de control y desean evaluar su desempeño.
El desarrollo de sistemas que permitan evaluar el comportamiento de los controladores diseñados en la teoría de control es un desafío en la actualidad. Estos sistemas deben ser flexibles para poder ser aplicados en diferentes procesos (reactores, tanques de calentamientos, fermentadores, etc.). Además, como generalmente las metodologías deben ser validadas y contrastadas con otras estructuras clásicas de control (como el controlador proporcional integral derivativo, PID) los sistemas deben contar con la posibilidad de configurar estas estructuras a fin de comparar su funcionamiento.
Figura 2. Esquema de control
El objetivo de este trabajo es presentar el diseño e implementación de un sistema de sensado y control de temperatura aplicable a sistemas típicos de la industria química. El sistema se ha desarrollado con el propósito de ser utilizado como medio de implementación y evaluación de nuevas leyes de control de temperatura desarrolladas en el área de control de procesos. Adicionalmente, el sistema permite asegurar el nivel máximo y mínimo de líquidos en recipientes que contienen el producto al que se le desea controlar la temperatura. El equipo desarrollado cuenta con cuatro sensores que permiten monitorear la temperatura durante el proceso. Además, se ha instalado un sensor ultrasonido que permite medir el nivel de producto en algún recipiente en caso de ser necesario mantener un volumen determinado. Algunas de las opciones de configuración más destacadas con las que cuenta el sistema es la posibilidad que se le brinda al usuario de cambiar el tiempo de muestreo que se desea utilizar y la posibilidad de elegir entre diferentes estructuras de control a la hora de operar en la planta (PID y cualquier ley de control propuesta por el usuario).
Otro de los aportes de este trabajo es el desarrollo de una interfaz gráfica en el entorno de Qt Creator que facilita la configuración del equipo. Esta interfaz gráfica permite obtener información visual del proceso en tiempo real, por lo cual el usuario podrá detener la operación ante cualquier eventualidad. Para demostrar su buen desempeño se han realizado pruebas de funcionamiento en un tanque de calentamiento. Este representa un sistema ampliamente utilizado en la industria química.
El trabajo está organizado de la siguiente manera: descripción del diseño del sistema, descripción general del equipo desarrollado, resultados experimentales y, finalmente, las conclusiones y futuras mejoras.
Figura 3. Esquema de conexión entre los dispositivos del sistema
Diseño del sistema
En esta sección se analiza el sistema de sensado y control de temperatura desarrollado (figura 1).
El sistema consiste en una placa principal Arduino Mega, un módulo de ultrasonido, cuatro sensores de temperatura DS18B20 aptos para su inmersión en fluidos, un módulo de cuatro relés Arduino y un relé de estado sólido. La placa se comunica con los diferentes elementos conectados a ella para poder sensar el nivel de líquido en algún recipiente (reactor batch, tanque de calentamiento, etc.), sensar la temperatura en hasta cuatro puntos de interés, controlar el nivel de fluido mediante el comando de electroválvulas conectadas al módulo de relé y seguir un perfil de temperatura deseado regulando el suministro de energía por medio del relé de estado sólido. Además, la placa cuenta con la posibilidad de comunicarse con un ordenador para realizar el monitoreo de los sensores en tiempo real y la configuración del equipo mediante una interfaz gráfica de usuario (GUI) que se ejecuta en el entorno Windows.
El desarrollo obtenido brinda flexibilidad para poder controlar diferentes sistemas en donde se desea seguir un perfil de temperatura, o bien donde se requiere mantener la temperatura en un valor fijo y el nivel de material dentro de un reactor o tanque. Como característica principal, el sistema permite seleccionar entre dos diferentes estructuras de control: PID y control programado por el usuario. Esto permite contrastar el desempeño de las estrategias desarrolladas por el usuario con una de las estructuras de control más utilizadas en la industria. Entonces, el equipo desarrollado puede ser utilizado con fines educativos, de investigación o en el ámbito productivo.
Figura 4. Diagrama de funcionamiento
Descripción general
En esta sección se muestran los detalles principales de la implementación del sistema de sensado y control de temperatura.
El funcionamiento del sistema se puede resumir con el diagrama de flujo que se muestra en la figura 2.
La temperatura de referencia es ingresada por el usuario utilizando cualquiera de las dos posibilidades disponibles: enviando un archivo mediante la GUI que contenga el perfil de temperatura que se desea seguir o bien por medio del el teclado matricial adosado al equipo, este perfil puede ser o no variable en el tiempo. La placa que coordina el funcionamiento del sistema diseñado es una tarjeta Arduino Mega 2560, a ella se conectaron todos los módulos empleados en este proyecto. Arduino se enlaza con la PC a través de una interfaz UART nativa. Dicha comunicación se emplea para la transmisión de datos de configuración e información en forma bidireccional con la interfaz de usuario. Los datos de configuración son necesarios para el funcionamiento del sistema, como por ejemplo el tipo de controlador a usar, la temperatura de referencia, etc. Estos datos se envían desde la PC o se configuran manualmente mediante el teclado matricial. La placa Arduino envía a la computadora datos de las mediciones que luego son graficados en la GUI, estos son los valores medidos en los cuatro sensores, la temperatura de referencia, y la acción de control calculada por el microcontrolador según el algoritmo de control seleccionado.
Los actuadores asociados al sistema se dividen en dos partes. Por un lado, dos salidas conectadas a dos electroválvulas permiten manipular el ingreso y egreso de fluido a un tanque o algún recipiente, estas electroválvulas pueden ser adaptadas para acoplarse al sistema a controlar. Estas son las encargadas de mantener el nivel de fluido o producto del proceso en un valor deseado. La acción de control que comanda cada válvula se implementó con un control del tipo on-off y es independiente del control de temperatura. Por otro lado, el sistema de control cuenta con un relé de estado sólido encargado de suministrar la energía necesaria al proceso con el fin de aumentar la temperatura de salida. El sistema fue diseñado, principalmente, para su implementación directa en procesos donde el elemento que produce cambios de temperatura es una resistencia (horno, reactores, tanque, calentadores, etc.). Sin embargo, al ser un relé el que controla la energía suministrada al proceso, es posible la adaptación del equipo a otros sistemas mediante el desarrollo de hardware (manejar apertura y cierre de una válvula de gas por ejemplo). Los sensores DS18B20 junto con el módulo ultrasonido son los encargados de realimentar el lazo de controlador mediante el sensado de temperatura y nivel de líquido. Entre las características principales del sensor de temperatura DS18B20 se encuentran su rango de medición que va desde -55 grados centígrados a los 125, precisión de 0,5 grados aproximadamente.
Placa Arduino
Figura 5. Interfaz de usuario
La placa principal Arduino Mega 2560 es quien gobierna todos los periféricos y módulos utilizados en este trabajo. Además, es la encargada de administrar las comunicaciones, realizar cálculos y ejecutar las decisiones. Un esquema de conexión se observa en la figura 3.
El sistema emplea varios protocolos de comunicación para interactuar con los diferentes módulos y la PC. Para los sensores de temperatura, se emplea el protocolo 1-wire, la tarjeta de memoria microSD emplea el protocolo SPI para un flujo bidireccional de información a altas velocidades de transferencia. Con respecto al display y al reloj de tiempo real DS3231, ambos usan un bus de comunicaciones I2C, que permite conectar dispositivos por solo dos hilos, la señal de reloj y de datos. Por otra parte, se encuentran los módulos de relés, ultrasonido y teclado, los cuales se comandan con pines digitales de la placa Arduino.
El sistema posee en total cinco actuadores. El módulo de control de potencia es el encargado de suministrar la energía necesaria para que funcionen los actuadores. Este módulo está compuesto por el relé de estado sólido y un módulo Arduino con cuatro relés de menor potencia. Las señales que gobiernan el control de potencia provienen del Arduino Mega 2560. El relé de estado sólido suministra la energía eléctrica proveniente de la red de 220 volts a la planta, por lo tanto, al relé se debe conectar la resistencia que entrega energía térmica al proceso. La placa genera una señal modulada en ancho de pulso PWM para regular el tiempo de encendido del relé y de esta manera controlar la energía suministrada. El módulo relé de Arduino se encuentra disponible para comandar cualquier acción de control extra que el proceso requiera. Para el caso implementado en este trabajo, se utilizaron dos para comandar de forma independiente las electroválvulas encargadas del ingreso y egreso de líquido al reactor, permitiendo, además, el mantenimiento del nivel de líquido a un nivel deseado.
El funcionamiento lógico del sistema ha sido esquematizado en la figura 4. Cuando enciende el sistema en la placa Arduino, se realiza una inicialización de variables y la verificación de los sensores. La función principal se encarga de actualizar la fecha, ya que esta se muestra por la pantalla y se utiliza para nombrar a los archivos de medición guardados en una memoria SD. Luego, el sistema verifica que se hayan configurado los parámetros necesarios para realizar el control del proceso (tiempo de muestreo, tipo de controlador, perfiles a seguir, etc). A continuación, el sistema lee el sensor de nivel y en función de la configuración de nivel mínimo y/o máximo controla la apertura de las electroválvulas para el llenado de un tanque o recipiente. Un instante después realiza el control de temperatura, para lo cual se calcula una acción de control en función de la temperatura actual, la temperatura deseada y la estructura de control seleccionada. Este proceso se repite en cada tiempo de muestreo hasta que se verifica que el archivo de perfil deseado de temperatura haya llegado a su fin o que se haya presionado la tecla de finalización desde el tablero de control o desde la interfaz de usuario. Dado que el sistema requiere de tiempos mínimos de procesamiento, el tiempo de muestreo no puede ser menor a 0,5 segundos.
Figura 6. Planta piloto y las instalaciones
Controlador
El software permite, básicamente, dos modos de control, PID o un algoritmo de control discreto determinado por el usuario. El usuario del sistema debe seleccionar el modo antes de comenzar a operar. Cualquiera sea el modo de control seleccionado, se puede configurar una temperatura fija de referencia o bien ingresar un perfil de temperatura deseado. En el primer caso, se ingresa el valor de referencia mediante la GUI o bien utilizando la pantalla y el teclado matricial. En el segundo caso, el usuario envía un archivo .txt, con el perfil de temperatura que se desea seguir, desde la GUI. En el modo PID se programó el diseño digital del controlador PID discreto de lazo cerrado. Se empleó una aproximación rectangular, por lo que la acción de control en cada instante (un) se obtiene según:
En la fórmula (1), TS representa el tiempo de muestreo. Los valores de u(t) de tiempo discreto dado t = nTS, donde n Є {0, 1, 2, 3, • • •} se representan por un, en = yref,n − yn representa el error de seguimiento dado por la diferencia entre el valor de temperatura de referencia que se desea seguir y el valor actual de temperatura.
En el modo controlador definido por el usuario, se programa la acción de control que se desea evaluar en una sección predefinida del código Arduino. Por tal motivo, se ha denotado con asteriscos, en los correspondientes comentarios, el espacio donde debe introducirse el código con el cálculo a ejecutar. Así también, se encuentran especificados los nombres de las variables que deben utilizarse.
Para ambos modos de control la salida calculada, un, es una señal con rango de cero a cien. Esta representa el porcentaje de tiempo que se mantiene activa la salida, luego, este porcentaje se modula por ancho de pulso (PWM), y se envía hacia el relé de estado sólido regulando, de esta manera, la energía entregada al elemento resistivo. PWM es una técnica que logra producir el efecto de una señal analógica sobre una carga, a partir de la variación de la frecuencia y ciclo de trabajo de una señal digital. La frecuencia queda determinada por el tiempo de muestreo TS, con el cual trabaja el sistema y es elegido por el usuario al inicio del programa. El ciclo de trabajo determina la cantidad de tiempo que la señal está en un estado lógico alto (salida activada), como un porcentaje del tiempo total que esta toma para completar un ciclo completo. La salida del controlador un modificará el porcentaje del ciclo de trabajo de la señal PWM que se envía al relé de estado sólido para así controlar el tiempo de encendido y apagado de las resistencias de calentamiento, logrando de esta manera alcanzar y mantener una temperatura deseada.
Figura 7. Perfil de temperatura de referencia y temperatura de los sensores
Experimentación
Para evaluar el desempeño del sistema desarrollado, se montó una planta piloto en el Instituto de Ingeniería Química de la Universidad Nacional de San Juan. El tanque de calentamiento montado representa un sistema típico de la industria química. La planta, figura 6, se compone de un tanque con tubería larga, en su interior aloja algún líquido al cual se le desea controlar su temperatura (para las pruebas se colocó agua en su interior). El sistema admite la posibilidad de controlar la temperatura del tanque o bien la temperatura de salida de la tubería. En este trabajo, se controla la temperatura en el interior del tanque. Para elevar la temperatura del líquido, se usan dos resistencias que se encuentran instaladas en el fondo del tanque. Además, posee dos electroválvulas del tipo abierto/cerrado que controlan el ingreso y egreso del fluido.
Por último, un conjunto de sensores se encargan de medir la temperatura en cuatro puntos (dos sensores ubicados en la entrada y salida de la cañería, respectivamente, y dos en el interior del tanque) mientras que el nivel del líquido se mide con un sensor de ultrasonido Arduino ubicado en la parte superior. Si bien se instalaron todos los sensores de temperatura disponibles, el objetivo en este trabajo es controlar la temperatura en el interior, realimentando el valor de temperatura registrado por uno de los sensores únicamente. Los otros sensores solo se instalaron con el fin de verificar su correcto funcionamiento.
Para conseguir buenos resultados en el desempeño del sistema se hicieron algunas pruebas piloto con distintos valores de parámetros del controlador, los valores adoptados fueron: KP = 10, KD = 1 y KI = 2. El tiempo de muestreo seleccionado fue de dos segundos en todo momento. El tiempo de muestreo y los parámetros del controlador PID fueron elegidos mediante pruebas empíricas realizadas con anterioridad.
Luego, se realizaron dos pruebas de funcionamiento, la primera sin ingreso y egreso de fluido y la segunda, manteniendo un flujo constante de entrada y salida de agua.
Figura 8. Acción de control en el tiempo
Prueba sin entrada y salida de fluido
En la primera experiencia se utilizó una referencia de temperatura fija compuesta por dos valores de referencia, primero con una temperatura de referencia, de 45 grados, luego se aumentó la referencia a sesenta grados (60 °C), una vez estabilizada en este valor la temperatura del sensor de salida, se agregó agua a cinco grados (5 °C) al sistema, simulando una perturbación brusca en t = 1.260 s. Los cuatro sensores de temperatura se colocaron distribuidos en la planta estratégicamente. Un sensor se coloco en la entrada de la planta con el fin de registrar la temperatura con la que entra fluido (entrada). Otro sensor se colocó en la salida en la planta embutido al final de una tubería de PVC de diez metros. Los restantes dos sensores se agregaron en el interior del tanque de calentamiento en alturas diferentes. El control de temperatura se realizó solo sobre el sensor de salida.
Las temperaturas adquiridas por cada sensor durante todo el proceso descripto anteriormente se puede observar en la figura 7. La acción de control aplicada en cada instante se observa en la figura 8. Se puede apreciar cómo las temperaturas registradas aumentan conforme se entrega energía a la resistencia de calentamiento.
Prueba con entrada y salida de fluido
En la segunda prueba se establece un flujo constante de entrada y salida de fluido. El objetivo de esta experiencia es verificar el funcionamiento del controlador PID operando en condiciones más realistas. La temperatura de referencia se configuró en diferentes valores: 30, 45, 60, 30, 50 y por último 60 grados centígrados. Los valores de temperatura de referencia se pueden observar en línea roja continua de la figura 9.
Figura 9. Temperatura de referencia y temperatura de los sensores
En la figura 9 se muestran los valores de temperatura adquiridos por los sensores durante la prueba. Se observa que, cuando el sistema tiene una referencia de sesenta grados (60 °C) y luego pasa a ser de treinta (30 °C), el sistema responde lentamente sin poder alcanzar, en un corto plazo, este último valor. Esto se debe a que el sistema carece de posibilidad de una acción de control negativa, es decir, de la posibilidad de enfriar el líquido. La baja en la temperatura solo responde a pérdidas del sistema y al líquido que ingresa con menor temperatura al interior del tanque para reponer el líquido que sale de allí. La acción de control se muestra en la figura 10.
También en la figura 9 se observa la variación escalonada de la temperatura de los sensores que se encuentran dispuestos en el interior del tanque. Esto se debe a que el ingreso de nuevo líquido al tanque produce un descenso de temperatura en su interior. Por otro lado, se observa cómo aumenta la temperatura de salida del tanque (línea de color verde) con un retraso de tiempo considerable, ocasionado por la longitud de la tubería de salida.
Conclusiones
En este trabajo se presentó un sistema de sensado y control de temperatura. El sistema permite trabajar con dos tipos de controladores, control PID y control definido por el usuario. Además, se ha diseñado una interfaz gráfica de usuario para facilitar la operación con el equipo. Gracias a la flexibilidad con la que se ha estructurado su diseño, el sistema puede ser aplicado a una gran variedad de sistemas (reactores, fermentadores, tanques de calentamiento, etc.). La plataforma se ha diseñado utilizando software libre (Qt Creator) y hardware basado en Arduino. Estas características hacen de la plataforma una herramienta valiosa, económica y eficiente.
Figura 10. Acción de control en el tiempo
El comportamiento y el funcionamiento del dispositivo se ha demostrado mediante los resultados obtenidos de las experiencias llevadas a cabo en el laboratorio del Instituto de Ingeniería Química. Los resultados sobre equipos de laboratorio comprueban que el sistema puede alcanzar y seguir valores de temperatura deseados con un buen desempeño. Dichos resultados comprueban que la implementación de metodologías de control de tiempo discreto desarrolladas por el usuario es sencilla, brindando al investigador la posibilidad de contrastar el desempeño de sus estrategias con otras de la bibliografía.
Finalmente, este sistema de control permitirá facilitar a los integrantes del Instituto la evaluación de los algoritmos de control desarrollados en diferentes sistemas en los que el objetivo principal sea seguir un perfil de temperatura. Además, con este nuevo dispositivo, los estudiantes de la Facultad de Ingeniería podrán aplicar los conocimientos adquiridos en cátedras relacionadas al control de procesos. Como futuros aportes se prevé mejorar la GUI para que el usuario pueda programar desde ese entorno su ley de control sin la necesidad de tener que modificar el código Arduino.
Referencias
(1) Bauer y Dicks. “Control of malolactic fermentation in wine. A review”, en South African Journal of Enology and Viticulture, 25(2):74–88, 2017.
(2) Benítez González, Rivas Pérez, Feliu Batlle y Castillo García. “Temperature control based on a modified smith predictor for injectable drug formulations” en IEEE Latin America Transactions, 13(4):1041–1047, 2015.
(3) Liu, Wei, Wang, Yang y Li. “Data-based neuro-optimal temperature control of water gas shift reaction” en Adaptive Dynamic Programming with Applications in Optimal Control, páginas 571–590, Springer, 2017.